/* CF7 Visual Form Builder — frontend appearance */

.cfb-enhanced {
	--cfb-primary: #3858e9;
	--cfb-primary-hover: color-mix(in srgb, var(--cfb-primary) 88%, #000);
	--cfb-primary-soft: color-mix(in srgb, var(--cfb-primary) 12%, #fff);
	--cfb-danger: #d63638;
	--cfb-text: #1d2327;
	--cfb-muted: #646970;
	--cfb-border: #dcdcde;
	--cfb-surface: #ffffff;
	--cfb-surface-2: #f6f7f7;
	--cfb-radius: 10px;
	--cfb-form-width: 640px;
	--cfb-field-gap: 22px;
	--cfb-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 8px 24px rgba(0, 0, 0, 0.06);
	box-sizing: border-box;
}

.cfb-enhanced *,
.cfb-enhanced *::before,
.cfb-enhanced *::after {
	box-sizing: border-box;
}

.cfb-enhanced .wpcf7-form {
	position: relative;
	max-width: var(--cfb-form-width);
	margin: 0 auto;
	font-size: 15px;
	line-height: 1.5;
	color: var(--cfb-text);
}

/* Card shell (modern / bordered themes) */
.cfb-theme-modern .wpcf7-form,
.cfb-theme-bordered .wpcf7-form {
	background: var(--cfb-surface);
	border: 1px solid var(--cfb-border);
	border-radius: calc(var(--cfb-radius) + 4px);
	box-shadow: var(--cfb-shadow);
	padding: 28px 28px 24px;
}

.cfb-theme-minimal .wpcf7-form {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 8px 0 0;
}

.cfb-theme-bordered .wpcf7-form {
	border-width: 2px;
}

/* Field rows */
.cfb-enhanced .wpcf7-form > p,
.cfb-enhanced .wpcf7-form .cfb-step-panel > p,
.cfb-enhanced .wpcf7-form .cfb-step-group > p {
	margin: 0 0 var(--cfb-field-gap);
}

.cfb-enhanced .wpcf7-form label {
	display: block;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.35;
	color: var(--cfb-text);
	margin-bottom: 8px;
}

.cfb-enhanced .wpcf7-form label .wpcf7-form-control-wrap {
	display: block;
	margin-top: 0;
	font-weight: 400;
}

/* Required asterisk inline with label */
.cfb-enhanced .wpcf7-form abbr[title],
.cfb-enhanced .wpcf7-form .wpcf7-required {
	display: inline !important;
	margin-left: 3px;
	color: var(--cfb-danger);
	text-decoration: none;
	border: 0;
	font-weight: 700;
	vertical-align: baseline;
}

.cfb-enhanced .wpcf7-form p > abbr[title] {
	display: inline !important;
	margin: 0 0 0 3px;
}

/* Inputs */
.cfb-enhanced .wpcf7-form input[type="text"],
.cfb-enhanced .wpcf7-form input[type="email"],
.cfb-enhanced .wpcf7-form input[type="tel"],
.cfb-enhanced .wpcf7-form input[type="url"],
.cfb-enhanced .wpcf7-form input[type="number"],
.cfb-enhanced .wpcf7-form input[type="date"],
.cfb-enhanced .wpcf7-form input[type="file"],
.cfb-enhanced .wpcf7-form select,
.cfb-enhanced .wpcf7-form textarea {
	width: 100%;
	max-width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--cfb-border);
	border-radius: var(--cfb-radius);
	background: var(--cfb-surface);
	color: var(--cfb-text);
	font: inherit;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.cfb-enhanced .wpcf7-form textarea {
	min-height: 120px;
	resize: vertical;
}

.cfb-enhanced .wpcf7-form input:focus,
.cfb-enhanced .wpcf7-form select:focus,
.cfb-enhanced .wpcf7-form textarea:focus {
	outline: none;
	border-color: var(--cfb-primary);
	box-shadow: 0 0 0 3px var(--cfb-primary-soft);
}

.cfb-a11y-focus .wpcf7-form input:focus,
.cfb-a11y-focus .wpcf7-form select:focus,
.cfb-a11y-focus .wpcf7-form textarea:focus {
	outline: 2px solid var(--cfb-primary);
	outline-offset: 2px;
}

.cfb-spacing-compact .wpcf7-form > p,
.cfb-spacing-compact .wpcf7-form .cfb-step-panel > p,
.cfb-spacing-compact .wpcf7-form .cfb-step-group > p {
	margin-bottom: var(--cfb-field-gap);
}

.cfb-radius-none {
	--cfb-radius: 0;
}

.cfb-radius-small {
	--cfb-radius: 6px;
}

.cfb-radius-large {
	--cfb-radius: 16px;
}

/* Submit (native CF7 — hidden on multistep except last step) */
.cfb-enhanced .wpcf7-form input[type="submit"] {
	min-height: 44px;
	padding: 0 22px;
	border-radius: var(--cfb-radius);
	border: 1px solid var(--cfb-primary);
	background: var(--cfb-primary);
	color: #fff;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.cfb-enhanced .wpcf7-form input[type="submit"]:hover {
	background: var(--cfb-primary-hover);
	border-color: var(--cfb-primary-hover);
}

/* Multistep panels */
.cfb-step-panel,
.cfb-step-group {
	display: block;
}

.cfb-step-panel[hidden],
.cfb-step-group[hidden] {
	display: none !important;
}

.cfb-step-panel.cfb-step-active {
	display: block;
}

.cfb-step-invalid {
	outline: 2px solid var(--cfb-danger);
	outline-offset: 2px;
	border-radius: var(--cfb-radius);
}

/* Progress */
.cfb-step-progress {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 1.5rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--cfb-border);
}

.cfb-theme-minimal .cfb-step-progress {
	border-bottom: 0;
	padding-bottom: 0;
}

.cfb-step-label {
	font-size: 13px;
	font-weight: 500;
	color: var(--cfb-muted);
	letter-spacing: 0.01em;
}

.cfb-step-label strong {
	color: var(--cfb-text);
	font-weight: 600;
}

.cfb-step-progress-bar {
	width: 100%;
	height: 6px;
	background: var(--cfb-surface-2);
	border-radius: 999px;
	overflow: hidden;
}

.cfb-step-progress-fill {
	height: 100%;
	background: linear-gradient(90deg, var(--cfb-primary), color-mix(in srgb, var(--cfb-primary) 70%, #fff));
	border-radius: 999px;
	transition: width 0.3s ease;
}

.cfb-progress-style-bar .cfb-step-dots,
.cfb-progress-style-bar .cfb-step-heading {
	display: none !important;
}

.cfb-progress-style-minimal .cfb-step-dots,
.cfb-progress-style-minimal .cfb-step-heading,
.cfb-progress-style-minimal .cfb-step-progress-bar {
	display: none !important;
}

/* Step pills / stepper */
.cfb-step-dots {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 8px;
	margin-top: 4px;
	position: relative;
}

.cfb-step-dots::before {
	content: "";
	position: absolute;
	top: 15px;
	left: 28px;
	right: 28px;
	height: 2px;
	background: var(--cfb-border);
	z-index: 0;
}

.cfb-step-dot-wrap {
	position: relative;
	z-index: 1;
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	min-width: 0;
	max-width: 140px;
}

.cfb-step-dot {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 2px solid var(--cfb-border);
	background: var(--cfb-surface);
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	color: var(--cfb-muted);
	transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease, transform 0.15s ease;
}

.cfb-step-dot:hover {
	border-color: var(--cfb-primary);
	color: var(--cfb-primary);
}

.cfb-step-dot.is-active {
	border-color: var(--cfb-primary);
	background: var(--cfb-primary);
	color: #fff;
	transform: scale(1.05);
	box-shadow: 0 2px 8px color-mix(in srgb, var(--cfb-primary) 35%, transparent);
}

.cfb-step-dot.is-done {
	border-color: var(--cfb-primary);
	background: var(--cfb-primary-soft);
	color: var(--cfb-primary);
}

.cfb-step-dot-label {
	font-size: 12px;
	line-height: 1.3;
	text-align: center;
	color: var(--cfb-muted);
	word-break: break-word;
}

.cfb-step-dot-wrap.is-active .cfb-step-dot-label {
	color: var(--cfb-primary);
	font-weight: 600;
}

.cfb-step-heading {
	margin: 4px 0 0;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--cfb-text);
}

.cfb-step-heading:empty {
	display: none;
}

/* Navigation */
.cfb-step-nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--cfb-border);
}

.cfb-theme-minimal .cfb-step-nav {
	border-top: 0;
	padding-top: 0.5rem;
}

.cfb-step-nav button {
	min-height: 44px;
	padding: 0 20px;
	border-radius: var(--cfb-radius);
	border: 1px solid var(--cfb-border);
	background: var(--cfb-surface);
	font-size: 14px;
	font-weight: 600;
	color: var(--cfb-text);
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.cfb-step-nav button:hover:not(:disabled) {
	border-color: color-mix(in srgb, var(--cfb-primary) 40%, var(--cfb-border));
	background: var(--cfb-surface-2);
}

.cfb-step-nav button.cfb-next,
.cfb-step-nav button.cfb-next--submit {
	background: var(--cfb-primary);
	border-color: var(--cfb-primary);
	color: #fff;
}

.cfb-step-nav button.cfb-next:hover,
.cfb-step-nav button.cfb-next--submit:hover {
	background: var(--cfb-primary-hover);
	border-color: var(--cfb-primary-hover);
}

.cfb-step-nav button.cfb-prev {
	background: var(--cfb-surface-2);
}

.cfb-save-draft {
	background: var(--cfb-surface-2) !important;
}

/* Misc field types */
.cfb-field-hidden {
	display: none !important;
}

.cfb-rating-wrap {
	display: inline-flex;
	gap: 4px;
}

.cfb-rating-wrap button {
	border: 0;
	background: transparent;
	font-size: 1.25rem;
	cursor: pointer;
	color: #d1d5db;
}

.cfb-rating-wrap button.is-on {
	color: #f59e0b;
}

.cfb-signature-wrap canvas {
	display: block;
	width: 100%;
	max-width: 400px;
	border: 1px solid var(--cfb-border);
	border-radius: var(--cfb-radius);
	background: var(--cfb-surface);
	touch-action: none;
}

.cfb-step-panel.cfb-animate-in {
	animation: cfbSlideIn 0.25s ease;
}

@keyframes cfbSlideIn {
	from {
		opacity: 0;
		transform: translateX(10px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

.cfb-a11y-high-contrast .wpcf7-form {
	border: 2px solid #000;
}

.cfb-a11y-high-contrast input:focus,
.cfb-a11y-high-contrast textarea:focus,
.cfb-a11y-high-contrast select:focus {
	outline: 3px solid #000;
	outline-offset: 2px;
}

.cfb-conversational-active .cfb-conv-item {
	transition: opacity 0.2s ease;
}

/* Builder preview — match live form field styles */
.cfb-preview-card .wpcf7-form {
	margin: 0;
}

.cfb-enhanced .cfb-preview-field {
	margin: 0 0 var(--cfb-field-gap);
}

.cfb-enhanced .cfb-preview-label {
	display: block;
	font-weight: 600;
	font-size: 14px;
	margin-bottom: 8px;
}

.cfb-enhanced .cfb-preview-req {
	color: var(--cfb-danger);
}

.cfb-enhanced .cfb-preview-control,
.cfb-enhanced .cfb-preview-file,
.cfb-enhanced .cfb-preview-signature {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--cfb-border);
	border-radius: var(--cfb-radius);
	background: var(--cfb-surface);
	font: inherit;
	color: var(--cfb-muted);
}

.cfb-enhanced .cfb-preview-submit {
	min-height: 44px;
	padding: 0 22px;
	border-radius: var(--cfb-radius);
	border: 1px solid var(--cfb-primary);
	background: var(--cfb-primary);
	color: #fff;
	font-weight: 600;
}

@media (max-width: 600px) {
	.cfb-theme-modern .wpcf7-form,
	.cfb-theme-bordered .wpcf7-form {
		padding: 20px 16px 16px;
	}

	.cfb-step-dots::before {
		left: 20px;
		right: 20px;
	}

	.cfb-step-dot-label {
		font-size: 11px;
	}

	.cfb-step-nav {
		flex-direction: column-reverse;
		align-items: stretch;
	}

	.cfb-step-nav button {
		width: 100%;
	}
}

/* Select2 + intl-tel-input integration */
.cfb-enhanced .select2-container {
	width: 100% !important;
}

.cfb-enhanced .select2-container--default .select2-selection--single,
.cfb-enhanced .select2-container--default .select2-selection--multiple {
	min-height: 44px;
	padding: 6px 10px;
	border: 1px solid var(--cfb-border);
	border-radius: var(--cfb-radius);
	background: var(--cfb-surface);
}

.cfb-enhanced .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 30px;
	padding-left: 4px;
	color: var(--cfb-text);
}

.cfb-enhanced .select2-container--default .select2-selection--multiple .select2-selection__choice {
	background: var(--cfb-primary-soft);
	border-color: color-mix(in srgb, var(--cfb-primary) 25%, var(--cfb-border));
	color: var(--cfb-text);
}

.cfb-enhanced .select2-container--default.select2-container--focus .select2-selection--single,
.cfb-enhanced .select2-container--default.select2-container--focus .select2-selection--multiple {
	border-color: var(--cfb-primary);
	box-shadow: 0 0 0 3px var(--cfb-primary-soft);
}

.cfb-enhanced .cfb-phone-wrap .iti {
	width: 100%;
	display: block;
}

.cfb-enhanced .cfb-phone-wrap .iti__flag-container {
	border-radius: var(--cfb-radius) 0 0 var(--cfb-radius);
}

.cfb-enhanced .cfb-phone-wrap input.cfb-phone,
.cfb-enhanced .cfb-phone-wrap input[type="tel"] {
	width: 100%;
	padding-left: 52px;
}

.cfb-enhanced input.cfb-phone-dial-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Phone — legacy custom layout (fallback) */
.cfb-enhanced .cfb-phone {
	display: flex;
	align-items: stretch;
	gap: 0;
	width: 100%;
}

.cfb-enhanced .cfb-phone-code {
	position: relative;
	flex: 0 0 auto;
}

.cfb-enhanced .cfb-phone-code-trigger {
	display: flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	padding: 11px 12px;
	border: 1px solid var(--cfb-border);
	border-right: 0;
	border-radius: var(--cfb-radius) 0 0 var(--cfb-radius);
	background: var(--cfb-surface-2);
	color: var(--cfb-text);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	transition: border-color 0.15s ease, background 0.15s ease;
}

.cfb-enhanced .cfb-phone-code-trigger::after {
	content: "";
	width: 8px;
	height: 8px;
	margin-left: 2px;
	border-right: 2px solid var(--cfb-muted);
	border-bottom: 2px solid var(--cfb-muted);
	transform: rotate(45deg) translateY(-1px);
}

.cfb-enhanced .cfb-phone-code-flag {
	font-size: 1.1em;
	line-height: 1;
}

.cfb-enhanced .cfb-phone-code-panel {
	position: absolute;
	z-index: 35;
	top: calc(100% + 6px);
	left: 0;
	min-width: 280px;
	max-width: min(360px, 92vw);
	padding: 10px;
	border: 1px solid var(--cfb-border);
	border-radius: var(--cfb-radius);
	background: var(--cfb-surface);
	box-shadow: var(--cfb-shadow);
}

.cfb-enhanced .cfb-phone-code-search {
	width: 100%;
	margin: 0 0 8px;
	padding: 9px 12px;
	border: 1px solid var(--cfb-border);
	border-radius: calc(var(--cfb-radius) - 2px);
	font: inherit;
}

.cfb-enhanced .cfb-phone-code-list {
	max-height: 220px;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-y: auto;
}

.cfb-enhanced .cfb-phone-code-option {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 9px 10px;
	border-radius: calc(var(--cfb-radius) - 4px);
	font-size: 14px;
	cursor: pointer;
}

.cfb-enhanced .cfb-phone-code-option:hover,
.cfb-enhanced .cfb-phone-code-option.is-selected {
	background: var(--cfb-primary-soft);
}

.cfb-enhanced .cfb-phone-code-option-label {
	flex: 1;
	min-width: 0;
}

.cfb-enhanced .cfb-phone-code-option-dial {
	font-weight: 600;
	color: var(--cfb-muted);
}

.cfb-enhanced .cfb-phone-code-empty {
	padding: 10px;
	font-size: 13px;
	color: var(--cfb-muted);
	list-style: none;
}

.cfb-enhanced .cfb-phone input.cfb-phone-number,
.cfb-enhanced .cfb-phone input[type="tel"] {
	flex: 1;
	min-width: 0;
	border-radius: 0 var(--cfb-radius) var(--cfb-radius) 0;
}

.cfb-enhanced .cfb-phone input.cfb-phone-number:focus,
.cfb-enhanced .cfb-phone input[type="tel"]:focus {
	position: relative;
	z-index: 1;
}

/* Country — searchable combobox */
.cfb-enhanced .cfb-country {
	position: relative;
	width: 100%;
}

.cfb-enhanced .cfb-country-trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	min-height: 44px;
	padding: 11px 14px;
	border: 1px solid var(--cfb-border);
	border-radius: var(--cfb-radius);
	background: var(--cfb-surface);
	color: var(--cfb-text);
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.cfb-enhanced .cfb-country-trigger::after {
	content: "";
	flex-shrink: 0;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--cfb-muted);
	border-bottom: 2px solid var(--cfb-muted);
	transform: rotate(45deg) translateY(-2px);
	transition: transform 0.15s ease;
}

.cfb-enhanced .cfb-country-trigger[aria-expanded="true"]::after {
	transform: rotate(225deg) translateY(2px);
}

.cfb-enhanced .cfb-country-trigger--placeholder {
	color: var(--cfb-muted);
}

.cfb-enhanced .cfb-country-trigger:hover,
.cfb-enhanced .cfb-country-trigger:focus {
	outline: none;
	border-color: var(--cfb-primary);
	box-shadow: 0 0 0 3px var(--cfb-primary-soft);
}

.cfb-enhanced .cfb-country-panel {
	position: absolute;
	z-index: 30;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	padding: 10px;
	border: 1px solid var(--cfb-border);
	border-radius: var(--cfb-radius);
	background: var(--cfb-surface);
	box-shadow: var(--cfb-shadow);
}

.cfb-enhanced .cfb-country-search {
	width: 100%;
	margin: 0 0 8px;
	padding: 9px 12px;
	border: 1px solid var(--cfb-border);
	border-radius: calc(var(--cfb-radius) - 2px);
	font: inherit;
}

.cfb-enhanced .cfb-country-search:focus {
	outline: none;
	border-color: var(--cfb-primary);
	box-shadow: 0 0 0 2px var(--cfb-primary-soft);
}

.cfb-enhanced .cfb-country-list {
	max-height: 240px;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-y: auto;
}

.cfb-enhanced .cfb-country-option {
	padding: 9px 12px;
	border-radius: calc(var(--cfb-radius) - 4px);
	font-size: 14px;
	line-height: 1.35;
	cursor: pointer;
}

.cfb-enhanced .cfb-country-option:hover,
.cfb-enhanced .cfb-country-option:focus {
	background: var(--cfb-surface-2);
	outline: none;
}

.cfb-enhanced .cfb-country-option.is-selected {
	background: var(--cfb-primary-soft);
	color: var(--cfb-primary);
	font-weight: 600;
}

.cfb-enhanced .cfb-country-empty {
	padding: 12px;
	font-size: 13px;
	color: var(--cfb-muted);
	list-style: none;
}

.cfb-enhanced select.cfb-country-native {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Multi-select (checkbox list) */
.cfb-enhanced .cfb-multiselect-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 8px;
	font-size: 13px;
	line-height: 1.35;
}

.cfb-enhanced .cfb-multiselect-hint {
	color: var(--cfb-muted);
}

.cfb-enhanced .cfb-multiselect-count {
	font-weight: 600;
	color: var(--cfb-primary);
	white-space: nowrap;
}

.cfb-enhanced .wpcf7-form-control.wpcf7-checkbox.cfb-multiselect {
	display: flex;
	flex-direction: column;
	gap: 4px;
	width: 100%;
	margin: 0;
	padding: 8px;
	border: 1px solid var(--cfb-border);
	border-radius: var(--cfb-radius);
	background: var(--cfb-surface);
	box-sizing: border-box;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.cfb-enhanced .wpcf7-checkbox.cfb-multiselect.cfb-multiselect-has-value {
	border-color: color-mix(in srgb, var(--cfb-primary) 35%, var(--cfb-border));
}

.cfb-enhanced .wpcf7-checkbox.cfb-multiselect .wpcf7-list-item {
	display: block;
	margin: 0 !important;
}

.cfb-enhanced .wpcf7-checkbox.cfb-multiselect .wpcf7-list-item label {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 10px 12px;
	font-weight: 400;
	line-height: 1.4;
	cursor: pointer;
	border-radius: calc(var(--cfb-radius) - 4px);
	transition: background 0.12s ease;
}

.cfb-enhanced .wpcf7-checkbox.cfb-multiselect .wpcf7-list-item label:hover {
	background: var(--cfb-surface-2);
}

.cfb-enhanced .wpcf7-checkbox.cfb-multiselect input[type="checkbox"] {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--cfb-primary);
	cursor: pointer;
}

.cfb-enhanced .wpcf7-checkbox.cfb-multiselect input[type="checkbox"]:checked + .wpcf7-list-item-label,
.cfb-enhanced .wpcf7-checkbox.cfb-multiselect input[type="checkbox"]:checked ~ .wpcf7-list-item-label {
	font-weight: 500;
	color: var(--cfb-text);
}

.cfb-enhanced .wpcf7-checkbox.cfb-multiselect .wpcf7-list-item:has(input:checked) label {
	background: var(--cfb-primary-soft);
}

.cfb-enhanced .wpcf7-checkbox.cfb-multiselect .wpcf7-list-item-label {
	flex: 1;
}

.cfb-enhanced p.cfb-field-row:has(.cfb-multiselect) > label:first-child,
.cfb-enhanced p:has(.wpcf7-checkbox.cfb-multiselect) > label:first-child,
.cfb-enhanced p.cfb-field-country > label:first-child {
	display: block;
	margin-bottom: 8px;
	font-weight: 600;
}

/* Legacy: native select[multiple] saved before checkbox compile */
.cfb-enhanced .cfb-multiselect-fallback {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 12px 14px;
	border: 1px solid var(--cfb-border);
	border-radius: var(--cfb-radius);
	background: var(--cfb-surface);
}

.cfb-enhanced .cfb-multiselect-fallback label.cfb-multiselect-option {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-weight: 400;
	cursor: pointer;
}

.cfb-enhanced .cfb-multiselect-fallback input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: var(--cfb-primary);
}

.cfb-enhanced select.cfb-multiselect-native-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Repeater */
.cfb-repeater {
	margin: 1em 0;
	padding: 1em;
	border: 1px dashed var(--cfb-border, #c3c4c7);
	border-radius: var(--cfb-radius, 8px);
	background: var(--cfb-surface-alt, #f6f7f7);
}

.cfb-repeater-label {
	margin: 0 0 0.75em;
}

.cfb-repeater-row {
	margin-bottom: 1em;
	padding: 1em;
	border-radius: var(--cfb-radius, 8px);
	background: var(--cfb-surface, #fff);
	border: 1px solid var(--cfb-border, #dcdcde);
}

.cfb-repeater-row--hidden {
	display: none !important;
}

.cfb-repeater-row-actions {
	margin: 0.5em 0 0;
	text-align: right;
}

.cfb-repeater-actions {
	margin: 0.75em 0 0;
}

.cfb-repeater-add,
.cfb-repeater-remove {
	cursor: pointer;
}
