/**
 * Forminator theming for Bet Bounty.
 *
 * Depends on bb-front.css for the :root token block — declared as a stylesheet
 * dependency so the variables always resolve.
 *
 * A note on !important: Forminator ships its own design system and uses
 * !important on many of its own declarations, with selectors like
 * .forminator-ui.forminator-custom-form[data-design="default"] .forminator-input.
 * Matching that specificity for every rule would be unreadable, so !important is
 * used deliberately here. It is scoped entirely inside .forminator-ui and cannot
 * leak into the rest of the site.
 *
 * Setting the form's Appearance → Design Style to "None" in Forminator removes
 * most of what we're fighting and makes this file mostly redundant. These rules
 * are written to work either way.
 */

/* ── Container ── */

.forminator-ui.forminator-custom-form,
.forminator-ui.forminator-custom-form[data-design] {
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
	font-family: inherit !important;
}

.forminator-ui .forminator-row { margin-bottom: 20px !important; }
.forminator-ui .forminator-row:last-of-type { margin-bottom: 0 !important; }

/* ── Labels ── */

.forminator-ui .forminator-label,
.forminator-ui .forminator-label--sub,
.forminator-ui legend.forminator-label {
	display: block !important;
	color: var(--bb-dim) !important;
	font-family: inherit !important;
	font-size: 10px !important;
	font-weight: 800 !important;
	text-transform: uppercase !important;
	letter-spacing: .14em !important;
	margin-bottom: 8px !important;
}

.forminator-ui .forminator-required,
.forminator-ui .forminator-label .forminator-required {
	color: var(--bb-accent) !important;
	margin-left: 3px;
}

.forminator-ui .forminator-description,
.forminator-ui .forminator-description span {
	color: var(--bb-faint) !important;
	font-size: 12px !important;
	line-height: 1.6 !important;
	margin-top: 7px !important;
	font-family: inherit !important;
}

/* ── Text inputs and textareas ── */

.forminator-ui .forminator-input,
.forminator-ui .forminator-textarea,
.forminator-ui input[type="text"],
.forminator-ui input[type="email"],
.forminator-ui input[type="url"],
.forminator-ui input[type="tel"],
.forminator-ui input[type="number"],
.forminator-ui input[type="password"],
.forminator-ui input[type="date"],
.forminator-ui textarea,
.forminator-ui select {
	width: 100% !important;
	background-color: var(--bb-surface) !important;
	background-image: none !important;
	border: 1px solid var(--bb-line) !important;
	border-radius: var(--bb-r-s) !important;
	color: var(--bb-text) !important;
	font-family: inherit !important;
	font-size: 15px !important;
	line-height: 1.6 !important;
	padding: 13px 15px !important;
	height: auto !important;
	min-height: 0 !important;
	box-shadow: none !important;
	transition: border-color .15s ease, background-color .15s ease;
}

.forminator-ui .forminator-textarea,
.forminator-ui textarea {
	min-height: 140px !important;
	resize: vertical !important;
}

.forminator-ui .forminator-input:hover,
.forminator-ui .forminator-textarea:hover { border-color: #37414F !important; }

.forminator-ui .forminator-input:focus,
.forminator-ui .forminator-textarea:focus,
.forminator-ui input:focus,
.forminator-ui textarea:focus,
.forminator-ui select:focus {
	outline: none !important;
	border-color: var(--bb-accent) !important;
	background-color: var(--bb-raised) !important;
	box-shadow: 0 0 0 3px rgba(76, 125, 255, .15) !important;
}

.forminator-ui ::placeholder { color: var(--bb-faint) !important; opacity: 1 !important; }

/* Chrome forces a pale autofill background that is unreadable on a dark field.
   The inset shadow is the only reliable way to repaint it. */
.forminator-ui input:-webkit-autofill,
.forminator-ui input:-webkit-autofill:hover,
.forminator-ui input:-webkit-autofill:focus,
.forminator-ui textarea:-webkit-autofill {
	-webkit-text-fill-color: var(--bb-text) !important;
	-webkit-box-shadow: 0 0 0 1000px var(--bb-surface) inset !important;
	box-shadow: 0 0 0 1000px var(--bb-surface) inset !important;
	caret-color: var(--bb-text) !important;
	transition: background-color 9999s ease-in-out 0s;
}

/* ── Selects ── */

.forminator-ui select {
	appearance: none !important;
	-webkit-appearance: none !important;
	padding-right: 40px !important;
	background-image: linear-gradient(45deg, transparent 50%, #8A93A3 50%),
	                  linear-gradient(135deg, #8A93A3 50%, transparent 50%) !important;
	background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50% !important;
	background-size: 6px 6px, 6px 6px !important;
	background-repeat: no-repeat !important;
	cursor: pointer;
}
.forminator-ui select option { background: var(--bb-surface); color: var(--bb-text); }

/* Forminator's enhanced dropdown */
.forminator-ui .forminator-select-container,
.forminator-ui .select2-container--default .select2-selection--single {
	background: var(--bb-surface) !important;
	border: 1px solid var(--bb-line) !important;
	border-radius: var(--bb-r-s) !important;
	height: auto !important;
}
.forminator-ui .select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--bb-text) !important;
	line-height: 1.6 !important;
	padding: 13px 15px !important;
}
.select2-dropdown,
.forminator-select-dropdown-container {
	background: var(--bb-raised) !important;
	border: 1px solid var(--bb-line) !important;
	color: var(--bb-text) !important;
}
.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option--highlighted {
	background: var(--bb-accent) !important;
	color: #fff !important;
}

/* ── Checkboxes and radios ── */

.forminator-ui .forminator-checkbox,
.forminator-ui .forminator-radio {
	display: flex !important;
	align-items: flex-start !important;
	gap: 10px !important;
	color: var(--bb-text) !important;
	font-family: inherit !important;
	font-size: 15px !important;
	line-height: 1.6 !important;
	margin-bottom: 10px !important;
	cursor: pointer;
}

.forminator-ui .forminator-checkbox-box,
.forminator-ui .forminator-radio-bullet {
	flex: 0 0 auto !important;
	width: 18px !important;
	height: 18px !important;
	margin-top: 2px !important;
	background: var(--bb-surface) !important;
	border: 1px solid var(--bb-line) !important;
	box-shadow: none !important;
}
.forminator-ui .forminator-checkbox-box { border-radius: 4px !important; }
.forminator-ui .forminator-radio-bullet { border-radius: 50% !important; }

.forminator-ui .forminator-checkbox input:checked + .forminator-checkbox-box,
.forminator-ui .forminator-radio input:checked + .forminator-radio-bullet {
	background: var(--bb-accent) !important;
	border-color: var(--bb-accent) !important;
}
.forminator-ui .forminator-checkbox input:focus-visible + .forminator-checkbox-box,
.forminator-ui .forminator-radio input:focus-visible + .forminator-radio-bullet {
	outline: 2px solid var(--bb-accent) !important;
	outline-offset: 2px !important;
}
.forminator-ui .forminator-checkbox-label,
.forminator-ui .forminator-radio-label { color: var(--bb-text) !important; }

/* ── Consent / GDPR ── */

.forminator-ui .forminator-consent .forminator-checkbox,
.forminator-ui .forminator-gdpr .forminator-checkbox {
	font-size: 13px !important;
	color: var(--bb-dim) !important;
}
.forminator-ui .forminator-consent a { color: var(--bb-accent) !important; }

/* ── Submit ── */

.forminator-ui .forminator-button,
.forminator-ui .forminator-button-submit,
.forminator-ui button[type="submit"] {
	background: var(--bb-accent) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: var(--bb-r-s) !important;
	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: .06em !important;
	padding: 16px 34px !important;
	height: auto !important;
	line-height: 1 !important;
	cursor: pointer !important;
	box-shadow: none !important;
	transition: background .15s ease;
}
.forminator-ui .forminator-button:hover,
.forminator-ui .forminator-button-submit:hover { background: #3D6BE8 !important; color: #fff !important; }
.forminator-ui .forminator-button:focus-visible { outline: 2px solid var(--bb-accent) !important; outline-offset: 3px !important; }
.forminator-ui .forminator-button[disabled],
.forminator-ui .forminator-button.forminator-button-onload { opacity: .55 !important; cursor: not-allowed !important; }

/* ── Validation ── */

.forminator-ui .forminator-error-message {
	color: var(--bb-loss) !important;
	background: rgba(229, 72, 77, .1) !important;
	border: 1px solid rgba(229, 72, 77, .3) !important;
	border-radius: 4px !important;
	font-size: 13px !important;
	padding: 8px 12px !important;
	margin-top: 8px !important;
	font-family: inherit !important;
}
.forminator-ui .forminator-has_error .forminator-input,
.forminator-ui .forminator-has_error .forminator-textarea,
.forminator-ui .forminator-is_invalid .forminator-input {
	border-color: var(--bb-loss) !important;
	background: rgba(229, 72, 77, .06) !important;
}

/* ── Response messages ── */

.forminator-ui .forminator-response-message,
.forminator-response-message {
	border-radius: var(--bb-r-s) !important;
	font-family: inherit !important;
	font-size: 15px !important;
	line-height: 1.6 !important;
	padding: 16px 18px !important;
	margin-bottom: 20px !important;
	border: 1px solid transparent !important;
}
.forminator-ui .forminator-success,
.forminator-response-message.forminator-success {
	background: rgba(53, 192, 138, .1) !important;
	border-color: rgba(53, 192, 138, .35) !important;
	color: var(--bb-win) !important;
}
.forminator-ui .forminator-error,
.forminator-response-message.forminator-error {
	background: rgba(229, 72, 77, .1) !important;
	border-color: rgba(229, 72, 77, .35) !important;
	color: var(--bb-loss) !important;
}
.forminator-ui .forminator-response-message p { color: inherit !important; margin: 0 !important; }

/* ── Loader ── */

.forminator-ui .forminator-loading .forminator-button::after,
.forminator-ui .forminator-icon-loader { color: #fff !important; }

/* ── File upload ── */

.forminator-ui .forminator-file-upload,
.forminator-ui .forminator-multi-upload {
	background: var(--bb-surface) !important;
	border: 1px dashed var(--bb-line) !important;
	border-radius: var(--bb-r-s) !important;
	color: var(--bb-dim) !important;
	padding: 22px !important;
}
.forminator-ui .forminator-button-upload {
	background: transparent !important;
	border: 1px solid var(--bb-line) !important;
	color: var(--bb-text) !important;
}

/* ── Date picker ── */

.forminator-calendar,
.ui-datepicker.forminator-calendar {
	background: var(--bb-raised) !important;
	border: 1px solid var(--bb-line) !important;
	color: var(--bb-text) !important;
}
.forminator-calendar .ui-datepicker-header { background: transparent !important; color: var(--bb-text) !important; border: 0 !important; }
.forminator-calendar td a, .forminator-calendar td span { color: var(--bb-text) !important; }
.forminator-calendar .ui-state-active { background: var(--bb-accent) !important; color: #fff !important; }

/* ── Captcha spacing ── */

.forminator-ui .forminator-captcha,
.forminator-ui .forminator-g-recaptcha { margin-bottom: 18px !important; }

/* ── Pagination (multi-step) ── */

.forminator-ui .forminator-pagination-steps .forminator-step-label { color: var(--bb-dim) !important; }
.forminator-ui .forminator-step.forminator-step-active .forminator-step-dot { background: var(--bb-accent) !important; }

@media (prefers-reduced-motion: reduce) {
	.forminator-ui .forminator-input,
	.forminator-ui .forminator-textarea,
	.forminator-ui .forminator-button { transition: none !important; }
}
