/*
 * Fluoron CRM — Lead Form Styles
 *
 * Type: Manrope (body/inputs + form heading) — matches Fluoron theme.
 *
 * Brand palette (Spectrum Advanced / Fluoron):
 *   --fl-navy        #174b73   industrial deep navy (primary)
 *   --fl-navy-deep   #0f3553   hover/pressed
 *   --fl-teal        #2d9caf   cyan/teal accent
 *   --fl-teal-soft   #5fb8c8
 *   --fl-charcoal    #1a2330   text
 *   --fl-steel       #4a5a6e   secondary text
 *   --fl-silver      #cbd4dc   borders
 *   --fl-mist        #eef2f6   subtle surface
 *   --fl-snow        #ffffff
 *
 * Scoped to .fluoron-form-card / .fluoron-lead-form so it never leaks into
 * the wp-admin or unrelated theme components.
 */

@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');

.fluoron-form-card {
	--fl-navy: #174b73;
	--fl-navy-deep: #0f3553;
	--fl-teal: #2d9caf;
	--fl-teal-soft: #5fb8c8;
	--fl-charcoal: #1a2330;
	--fl-steel: #4a5a6e;
	--fl-silver: #cbd4dc;
	--fl-mist: #eef2f6;
	--fl-snow: #ffffff;
	--fl-danger: #b3261e;
	--fl-success: #166b4a;

	box-sizing: border-box;
	max-width: 720px;
	margin: 20px auto;
	padding: 24px 28px 22px;
	background: var(--fl-snow);
	color: var(--fl-charcoal);
	border: 1px solid var(--fl-silver);
	border-radius: 14px;
	box-shadow:
		0 1px 2px rgba(15, 53, 83, 0.04),
		0 12px 32px -12px rgba(15, 53, 83, 0.18);
	font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, "Helvetica Neue", Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
}

.fluoron-form-card *,
.fluoron-form-card *::before,
.fluoron-form-card *::after {
	box-sizing: border-box;
}

.fluoron-form-card .fluoron-lead-form {
	margin: 0;
}

/* Header */
.fluoron-form-card .fluoron-form-header {
	margin: 0 0 18px;
	padding: 0 0 14px;
	border-bottom: 1px solid var(--fl-mist);
}

.fluoron-form-card .fluoron-form-heading {
	margin: 0;
	font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	font-size: 1.5rem;
	line-height: 1.2;
	font-weight: 700;
	letter-spacing: -0.022em;
	color: var(--fl-navy);
}

.fluoron-form-card .fluoron-form-subheading {
	margin: 8px 0 0;
	font-size: 0.98rem;
	line-height: 1.5;
	color: #3a4658;
}

/* Grid layout: two columns desktop, single column mobile.
 * Row gap is just slightly larger than the label-to-field gap so each
 * question still reads as its own block without floating labels far from
 * their fields. */
.fluoron-form-card .fluoron-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px 16px;
}

/* Structural: a field block is a tight flex column where the gap between
 * label, control, and helper is owned by the flex container — not by
 * margins on children. The gap is intentionally small (3px) so the
 * question and its input read as a single unit; row gap on .fluoron-grid
 * provides the separation between distinct fields. This makes it
 * impossible for any other rule (theme, block library, plugin) to push
 * the label away from its input by setting a margin on the label, input,
 * helper, or paragraph element. */
.fluoron-form-card .fluoron-field {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
	gap: 3px;
	min-width: 0;
	margin: 0;
	padding: 0;
}

.fluoron-form-card .fluoron-field--span2 {
	grid-column: 1 / -1;
}

@media (max-width: 600px) {
	.fluoron-form-card {
		margin: 14px auto;
		padding: 16px 14px 16px;
		border-radius: 12px;
	}
	.fluoron-form-card .fluoron-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}
	.fluoron-form-card .fluoron-form-heading {
		font-size: 1.25rem;
	}
	.fluoron-form-card .fluoron-field > label {
		font-size: 0.95rem;
	}
}

/* Labels — direct, sentence-case questions sitting tight to their field.
 * .fluoron-resources-option overrides this for checkbox row labels. */
.fluoron-form-card label {
	display: block;
	margin: 0 0 4px;
	padding: 0;
	font-size: 0.98rem;
	line-height: 1.25;
	font-weight: 600;
	letter-spacing: normal;
	text-transform: none;
	color: var(--fl-charcoal);
}

.fluoron-form-card .fluoron-required {
	color: var(--fl-teal);
	font-weight: 700;
	margin-left: 2px;
}

/* Inputs / textarea */
.fluoron-form-card input[type="text"],
.fluoron-form-card input[type="email"],
.fluoron-form-card input[type="tel"],
.fluoron-form-card input[type="url"],
.fluoron-form-card input[type="number"],
.fluoron-form-card textarea,
.fluoron-form-card select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	width: 100%;
	min-height: 42px;
	padding: 9px 12px;
	font: inherit;
	font-size: 16px;
	line-height: 1.35;
	color: var(--fl-charcoal);
	background-color: var(--fl-snow);
	background-image: none;
	border: 1px solid var(--fl-silver);
	border-radius: 8px;
	box-shadow: inset 0 1px 0 rgba(15, 53, 83, 0.02);
	transition:
		border-color 120ms ease,
		box-shadow 120ms ease,
		background-color 120ms ease;
}

.fluoron-form-card textarea {
	min-height: 92px;
	resize: vertical;
	line-height: 1.45;
}

.fluoron-form-card input::placeholder,
.fluoron-form-card textarea::placeholder {
	color: #6e7c8e;
	opacity: 1;
}

.fluoron-form-card input:hover,
.fluoron-form-card textarea:hover,
.fluoron-form-card select:hover {
	border-color: #9fb1c2;
}

.fluoron-form-card input:focus,
.fluoron-form-card textarea:focus,
.fluoron-form-card select:focus,
.fluoron-form-card input:focus-visible,
.fluoron-form-card textarea:focus-visible,
.fluoron-form-card select:focus-visible {
	outline: none;
	border-color: var(--fl-teal);
	box-shadow:
		0 0 0 3px rgba(45, 156, 175, 0.22),
		inset 0 1px 0 rgba(15, 53, 83, 0.02);
	background-color: var(--fl-snow);
}

.fluoron-form-card input:invalid:not(:placeholder-shown),
.fluoron-form-card textarea:invalid:not(:placeholder-shown) {
	border-color: var(--fl-danger);
}

.fluoron-form-card input:disabled,
.fluoron-form-card textarea:disabled {
	background-color: var(--fl-mist);
	color: var(--fl-steel);
	cursor: not-allowed;
}

/* Honeypot — keep hidden from users but reachable to bots */
.fluoron-form-card .fluoron-hp {
	position: absolute !important;
	left: -10000px !important;
	top: auto !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0);
}

/* Actions */
.fluoron-form-card .fluoron-actions {
	margin-top: 18px;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 10px;
}

.fluoron-form-card .fluoron-submit,
.fluoron-form-card button[type="submit"] {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 46px;
	padding: 11px 24px;
	font: inherit;
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--fl-snow);
	background: linear-gradient(180deg, var(--fl-navy) 0%, var(--fl-navy-deep) 100%);
	border: 1px solid var(--fl-navy-deep);
	border-radius: 10px;
	cursor: pointer;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.18) inset,
		0 4px 14px -4px rgba(15, 53, 83, 0.45);
	transition:
		transform 80ms ease,
		box-shadow 160ms ease,
		background 160ms ease,
		filter 160ms ease;
}

.fluoron-form-card .fluoron-submit:hover,
.fluoron-form-card button[type="submit"]:hover {
	background: linear-gradient(180deg, #1d5f8e 0%, var(--fl-navy) 100%);
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.22) inset,
		0 8px 22px -6px rgba(15, 53, 83, 0.55);
}

.fluoron-form-card .fluoron-submit:active,
.fluoron-form-card button[type="submit"]:active {
	transform: translateY(1px);
	box-shadow: 0 2px 6px -2px rgba(15, 53, 83, 0.5);
}

.fluoron-form-card .fluoron-submit:focus-visible,
.fluoron-form-card button[type="submit"]:focus-visible {
	outline: none;
	box-shadow:
		0 0 0 3px rgba(45, 156, 175, 0.45),
		0 4px 14px -4px rgba(15, 53, 83, 0.45);
}

.fluoron-form-card .fluoron-submit[disabled],
.fluoron-form-card button[type="submit"][disabled] {
	background: var(--fl-steel);
	border-color: var(--fl-steel);
	cursor: progress;
	opacity: 0.85;
	box-shadow: none;
}

@media (min-width: 540px) {
	.fluoron-form-card .fluoron-actions {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 18px;
	}
	.fluoron-form-card .fluoron-submit,
	.fluoron-form-card button[type="submit"] {
		width: auto;
		min-width: 200px;
	}
}

.fluoron-form-card .fluoron-fineprint {
	margin: 0;
	font-size: 0.88rem;
	line-height: 1.45;
	color: #3a4658;
}

/* Quote Readiness meter — sits above Tier 1 and tracks completion.
 *
 * Sticky behavior: the meter pins to the top of the viewport (just under
 * the site nav) while the user scrolls down through the form, so progress
 * stays visible as fields are filled. It releases naturally once the form
 * card itself scrolls past. The IntersectionObserver in form.js toggles
 * .is-stuck so we can elevate it visually (shadow, tighter padding) only
 * when it's actually pinned — preserving the airy resting look. */
.fluoron-form-card .fluoron-quote-readiness {
	position: sticky;
	/* Nav is sticky at top:0 with height 64px, so clear it with a small gap. */
	top: 76px;
	z-index: 5;
	margin: 0 0 14px;
	padding: 10px 14px;
	background: var(--fl-mist);
	border: 1px solid var(--fl-silver);
	border-radius: 10px;
	transition:
		box-shadow 160ms ease,
		background-color 160ms ease,
		border-color 160ms ease,
		padding 160ms ease;
}

.fluoron-form-card .fluoron-quote-readiness.is-stuck {
	background: var(--fl-snow);
	border-color: #b6c4d2;
	box-shadow:
		0 1px 0 rgba(15, 53, 83, 0.04),
		0 10px 24px -14px rgba(15, 53, 83, 0.28);
}

@media (max-width: 600px) {
	.fluoron-form-card .fluoron-quote-readiness {
		/* On mobile the page nav collapses but still pins at top:0; sit
		 * just below it with a slimmer profile so it never covers a
		 * field underneath. */
		top: 60px;
		padding: 8px 12px;
	}
	.fluoron-form-card .fluoron-quote-readiness-header {
		margin-bottom: 4px;
	}
	.fluoron-form-card .fluoron-quote-readiness-track {
		height: 8px;
	}
}

/* Reduced motion: respect users who don't want the transition. */
@media (prefers-reduced-motion: reduce) {
	.fluoron-form-card .fluoron-quote-readiness,
	.fluoron-form-card .fluoron-quote-readiness-fill {
		transition: none;
	}
}

.fluoron-form-card .fluoron-quote-readiness-header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 6px;
}

.fluoron-form-card .fluoron-quote-readiness-label {
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--fl-navy-deep);
}

.fluoron-form-card .fluoron-quote-readiness-percent {
	font-size: 1rem;
	font-weight: 700;
	color: var(--fl-teal);
	font-variant-numeric: tabular-nums;
}

.fluoron-form-card .fluoron-quote-readiness-track {
	position: relative;
	width: 100%;
	height: 10px;
	background: #d8e1ea;
	border-radius: 999px;
	overflow: hidden;
}

.fluoron-form-card .fluoron-quote-readiness-fill {
	height: 100%;
	background: linear-gradient(90deg, var(--fl-navy), var(--fl-teal));
	border-radius: 999px;
	transition: width 240ms ease;
}

/* Progressive encouragement microcopy + tier 1 success banner. */
.fluoron-form-card .fluoron-tier1-prompt {
	margin: 10px 0 14px;
	padding: 8px 12px;
	font-size: 0.95rem;
	line-height: 1.45;
	color: var(--fl-navy-deep);
	background: rgba(45, 156, 175, 0.08);
	border-left: 3px solid var(--fl-teal);
	border-radius: 4px;
}

.fluoron-form-card .fluoron-tier1-prompt[hidden] {
	display: none;
}

.fluoron-form-card .fluoron-tier1-optional {
	margin-top: 4px;
}

.fluoron-form-card .fluoron-tier1-banner {
	margin: 14px 0 0;
	padding: 10px 12px;
	font-size: 0.95rem;
	line-height: 1.45;
	color: var(--fl-success);
	background: #e8f4ef;
	border: 1px solid #b8dfcf;
	border-radius: 8px;
}

.fluoron-form-card .fluoron-tier1-banner[hidden] {
	display: none;
}

/* Tier 2/3 bridge microcopy. */
.fluoron-form-card .fluoron-tier-bridge {
	margin: 14px 0;
	padding: 8px 12px;
	font-size: 0.95rem;
	line-height: 1.45;
	color: var(--fl-steel);
	background: var(--fl-mist);
	border-left: 3px solid var(--fl-silver);
	border-radius: 4px;
}

.fluoron-form-card .fluoron-tier-bridge[data-fluoron-bridge-state="complete"] {
	color: var(--fl-navy-deep);
	background: rgba(45, 156, 175, 0.08);
	border-left-color: var(--fl-teal);
}

.fluoron-form-card .fluoron-helper-text {
	display: block;
	font-size: 0.82rem;
	line-height: 1.35;
	color: var(--fl-steel);
}

/* Three-section contact intake (Tier 1 always visible, Tier 2/3 collapsible) */
.fluoron-form-card .fluoron-section {
	margin-top: 16px;
}

.fluoron-form-card .fluoron-section:first-of-type {
	margin-top: 0;
}

.fluoron-form-card .fluoron-section--tier2,
.fluoron-form-card .fluoron-section--tier3 {
	padding-top: 14px;
	border-top: 1px dashed var(--fl-silver);
}

.fluoron-form-card .fluoron-section--tier2 .fluoron-section-header,
.fluoron-form-card .fluoron-section--tier3 .fluoron-section-header {
	margin: 0 0 12px;
}

.fluoron-form-card .fluoron-section--tier2 .fluoron-section-heading,
.fluoron-form-card .fluoron-section--tier3 .fluoron-section-heading {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: 0.005em;
	color: var(--fl-navy);
	text-transform: none;
}

.fluoron-form-card .fluoron-section--tier2 .fluoron-section-valueprop,
.fluoron-form-card .fluoron-section--tier3 .fluoron-section-valueprop {
	margin: 4px 0 0;
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--fl-steel);
}

/* "Boost your response time" / "Fastest quote path" chip — sits next to
 * the optional section heading to make the upside obvious at a glance. */
.fluoron-form-card .fluoron-collapse-boost {
	display: inline-block;
	margin-left: 6px;
	padding: 2px 8px;
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--fl-navy-deep);
	background: rgba(45, 156, 175, 0.16);
	border: 1px solid rgba(45, 156, 175, 0.35);
	border-radius: 999px;
	vertical-align: middle;
	white-space: nowrap;
}

@media (max-width: 600px) {
	.fluoron-form-card .fluoron-collapse-boost {
		display: inline-block;
		margin-left: 0;
		margin-top: 4px;
	}
}

.fluoron-form-card .fluoron-section--tier1 .fluoron-section-header {
	margin: 0 0 12px;
	padding: 0 0 10px;
	border-bottom: 1px solid var(--fl-mist);
}

.fluoron-form-card .fluoron-section--tier1 .fluoron-section-heading {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: 0.005em;
	color: var(--fl-navy);
	text-transform: none;
}

.fluoron-form-card .fluoron-section--tier1 .fluoron-section-valueprop {
	margin: 4px 0 0;
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--fl-steel);
	letter-spacing: normal;
	text-transform: none;
}

.fluoron-form-card .fluoron-section--collapsible {
	padding-top: 14px;
	border-top: 1px dashed var(--fl-silver);
}

.fluoron-form-card .fluoron-section-toggle {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	width: 100%;
	padding: 12px 14px;
	font: inherit;
	text-align: left;
	color: var(--fl-navy-deep);
	background: var(--fl-mist);
	border: 1px solid var(--fl-silver);
	border-radius: 8px;
	cursor: pointer;
	transition:
		background-color 120ms ease,
		border-color 120ms ease,
		color 120ms ease;
}

.fluoron-form-card .fluoron-section-toggle:hover {
	background: #e3eaf2;
	border-color: #b6c4d2;
}

.fluoron-form-card .fluoron-section-toggle:focus-visible {
	outline: none;
	border-color: var(--fl-teal);
	box-shadow: 0 0 0 3px rgba(45, 156, 175, 0.22);
}

.fluoron-form-card .fluoron-section-toggle-label {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	flex: 1 1 auto;
}

.fluoron-form-card .fluoron-section--collapsible .fluoron-section-heading {
	display: block;
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.005em;
	color: var(--fl-navy);
	text-transform: none;
}

.fluoron-form-card .fluoron-section--collapsible .fluoron-section-valueprop {
	display: block;
	margin: 0;
	font-size: 0.88rem;
	line-height: 1.45;
	font-weight: 500;
	letter-spacing: normal;
	text-transform: none;
	color: var(--fl-steel);
}

.fluoron-form-card .fluoron-section-toggle-icon {
	position: relative;
	flex: 0 0 auto;
	width: 14px;
	height: 14px;
	margin-left: 4px;
}

.fluoron-form-card .fluoron-section-toggle-icon::before,
.fluoron-form-card .fluoron-section-toggle-icon::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 12px;
	height: 2px;
	background: currentColor;
	border-radius: 1px;
	transform: translate(-50%, -50%);
	transition: transform 160ms ease;
}

.fluoron-form-card .fluoron-section-toggle-icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.fluoron-form-card .fluoron-section-toggle[aria-expanded="true"] .fluoron-section-toggle-icon::after {
	transform: translate(-50%, -50%) rotate(0deg);
}

.fluoron-form-card .fluoron-section-panel {
	margin-top: 14px;
}

.fluoron-form-card .fluoron-section-panel[hidden] {
	display: none;
}

.fluoron-form-card .fluoron-subsection-heading {
	margin: 18px 0 12px;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fl-steel);
}

.fluoron-form-card .fluoron-subsection-heading:first-child {
	margin-top: 0;
}

.fluoron-form-card .fluoron-recommended {
	margin-left: 4px;
	font-size: 0.82rem;
	font-weight: 500;
	letter-spacing: normal;
	text-transform: none;
	color: var(--fl-steel);
}

/* Optional roller / application details (collapsible) */
.fluoron-form-card .fluoron-details {
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px dashed var(--fl-silver);
}

.fluoron-form-card .fluoron-details-toggle {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 12px 14px;
	font: inherit;
	font-size: 0.92rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	text-align: left;
	color: var(--fl-navy-deep);
	background: var(--fl-mist);
	border: 1px solid var(--fl-silver);
	border-radius: 8px;
	cursor: pointer;
	transition:
		background-color 120ms ease,
		border-color 120ms ease,
		color 120ms ease;
}

.fluoron-form-card .fluoron-details-toggle:hover {
	background: #e3eaf2;
	border-color: #b6c4d2;
	color: var(--fl-navy-deep);
}

.fluoron-form-card .fluoron-details-toggle:focus-visible {
	outline: none;
	border-color: var(--fl-teal);
	box-shadow: 0 0 0 3px rgba(45, 156, 175, 0.22);
}

.fluoron-form-card .fluoron-details-toggle-icon {
	position: relative;
	flex: 0 0 auto;
	width: 14px;
	height: 14px;
	margin-left: 12px;
}

.fluoron-form-card .fluoron-details-toggle-icon::before,
.fluoron-form-card .fluoron-details-toggle-icon::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 12px;
	height: 2px;
	background: currentColor;
	border-radius: 1px;
	transform: translate(-50%, -50%);
	transition: transform 160ms ease;
}

.fluoron-form-card .fluoron-details-toggle-icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.fluoron-form-card .fluoron-details-toggle[aria-expanded="true"] .fluoron-details-toggle-icon::after {
	transform: translate(-50%, -50%) rotate(0deg);
}

.fluoron-form-card .fluoron-details-panel {
	margin-top: 14px;
}

.fluoron-form-card .fluoron-details-panel[hidden] {
	display: none;
}

.fluoron-form-card .fluoron-details-intro {
	margin: 0 0 16px;
	font-size: 0.94rem;
	line-height: 1.55;
	color: #3a4658;
}

/* Resource request picklist (compact 2-col desktop, 1-col mobile) */
.fluoron-form-card .fluoron-resources {
	margin-top: 16px;
	padding: 12px 14px 14px;
	background: var(--fl-mist);
	border: 1px solid var(--fl-silver);
	border-radius: 10px;
}

.fluoron-form-card .fluoron-resources-header {
	margin: 0 0 10px;
}

.fluoron-form-card .fluoron-resources-heading {
	margin: 0;
	font-size: 1.02rem;
	font-weight: 700;
	letter-spacing: 0.005em;
	color: var(--fl-navy);
	text-transform: none;
}

.fluoron-form-card .fluoron-resources-intro {
	margin: 4px 0 0;
	font-size: 0.92rem;
	line-height: 1.5;
	color: #3a4658;
}

.fluoron-form-card .fluoron-resources-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px 18px;
}

@media (max-width: 600px) {
	.fluoron-form-card .fluoron-resources {
		padding: 14px 14px 16px;
	}
	.fluoron-form-card .fluoron-resources-list {
		grid-template-columns: 1fr;
		gap: 4px;
	}
}

.fluoron-form-card .fluoron-resources-item {
	margin: 0;
	padding: 0;
	min-width: 0;
}

.fluoron-form-card .fluoron-resources-option {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	margin: 0;
	padding: 7px 6px 7px 4px;
	font-size: 0.95rem;
	line-height: 1.4;
	font-weight: 500;
	letter-spacing: normal;
	text-transform: none;
	color: var(--fl-charcoal);
	cursor: pointer;
	border-radius: 6px;
	transition: background-color 120ms ease;
}

.fluoron-form-card .fluoron-resources-option:hover {
	background: rgba(255, 255, 255, 0.6);
}

.fluoron-form-card .fluoron-resources-option input[type="checkbox"] {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	min-height: 0;
	margin: 2px 0 0;
	padding: 0;
	-webkit-appearance: auto;
	-moz-appearance: auto;
	appearance: auto;
	background: var(--fl-snow);
	border: 1px solid var(--fl-silver);
	border-radius: 3px;
	box-shadow: none;
	accent-color: var(--fl-navy);
	cursor: pointer;
}

.fluoron-form-card .fluoron-resources-option input[type="checkbox"]:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px rgba(45, 156, 175, 0.32);
}

.fluoron-form-card .fluoron-resources-label {
	flex: 1 1 auto;
	min-width: 0;
}

.fluoron-form-card .fluoron-resources-error {
	margin: 12px 0 0;
	padding: 8px 12px;
	font-size: 0.85rem;
	line-height: 1.4;
	color: var(--fl-danger);
	background: #fdecea;
	border: 1px solid #f3c2bd;
	border-radius: 6px;
}

.fluoron-form-card .fluoron-resources-error[hidden] {
	display: none;
}

/* Status / success / error messages */
.fluoron-form-card .fluoron-status {
	margin-top: 16px;
	padding: 0;
	font-size: 0.95rem;
	line-height: 1.5;
	min-height: 0;
}

.fluoron-form-card .fluoron-status[data-state] {
	margin-top: 18px;
	padding: 12px 14px;
	border-radius: 8px;
	border: 1px solid transparent;
}

.fluoron-form-card .fluoron-status[data-state="pending"] {
	background: var(--fl-mist);
	color: var(--fl-navy);
	border-color: var(--fl-silver);
}

.fluoron-form-card .fluoron-status[data-state="success"] {
	background: #e8f4ef;
	color: var(--fl-success);
	border-color: #b8dfcf;
}

.fluoron-form-card .fluoron-status[data-state="error"] {
	background: #fdecea;
	color: var(--fl-danger);
	border-color: #f3c2bd;
}

.fluoron-form-card .fluoron-status a {
	color: inherit;
	text-decoration: underline;
	font-weight: 600;
}

.fluoron-form-card .fluoron-status a:hover,
.fluoron-form-card .fluoron-status a:focus {
	text-decoration: none;
}

/* =========================================================
 * Structural label-to-field rule.
 *
 * Each .fluoron-field is a flex column whose gap (5px) is owned by the
 * container. Every direct child has zero margin/padding so that the
 * label-to-input distance is *only* the flex gap — no theme override,
 * block-library spacing, or paragraph margin can re-introduce a tall gap
 * between a question and its input. !important is used because some
 * theme rules (and WordPress's wp-block-library default block-spacing)
 * target generic <label>/<input>/<small>/<p> elements at the same or
 * higher specificity than ours; this is the smallest hammer that keeps
 * the field block visually one unit.
 * ========================================================= */
.fluoron-form-card .fluoron-field > label,
.fluoron-form-card .fluoron-field > .fluoron-label,
.fluoron-form-card .fluoron-field > legend,
.fluoron-form-card .fluoron-field > input,
.fluoron-form-card .fluoron-field > select,
.fluoron-form-card .fluoron-field > textarea,
.fluoron-form-card .fluoron-field > .fluoron-helper-text,
.fluoron-form-card .fluoron-field > small {
	margin: 0 !important;
}

/* Labels keep an extra-tight line-height so the rendered box height is
 * the cap-height of the text — that way the visible gap to the input
 * below is essentially just the 3px flex gap on .fluoron-field, with no
 * extra half-leading hanging below the baseline. */
.fluoron-form-card .fluoron-field > label,
.fluoron-form-card .fluoron-field > .fluoron-label,
.fluoron-form-card .fluoron-field > legend {
	display: block;
	line-height: 1.15;
	padding-bottom: 0;
}

/* Belt-and-suspenders against WordPress's wpautop filter, which liked to
 * inject a <br /> after every <label> and after some <input>s in our
 * shortcode output — producing a visible ~1em gap between the question
 * and its control. The shortcode now strips inter-tag whitespace so this
 * shouldn't happen, but if any code path re-introduces a <br> inside a
 * field, hide it so the rendered stack stays tight. */
.fluoron-form-card .fluoron-field > br,
.fluoron-form-card .fluoron-grid > br,
.fluoron-form-card .fluoron-lead-form > br {
	display: none;
}
