.bsffs-form {
	--bsffs-accent: #3858e9;
	--bsffs-error: #b32d2e;
	--bsffs-muted: #646970;
	--bsffs-success: #008a20;
}

.bsffs-style-theme .bsffs-heading,
.bsffs-style-styled .bsffs-heading {
	text-wrap: balance;
}

.bsffs-style-theme .bsffs-description,
.bsffs-style-styled .bsffs-description {
	text-wrap: pretty;
}

.bsffs-style-theme .bsffs-fields,
.bsffs-style-styled .bsffs-fields {
	gap: var(--bsffs-gap, 12px);
}

.bsffs-style-theme .bsffs-email-field,
.bsffs-style-styled .bsffs-email-field {
	display: grid;
	gap: 0.35rem;
	margin-top: 12px;
}

.bsffs-style-theme .bsffs-submission-note,
.bsffs-style-styled .bsffs-submission-note {
	margin: 12px 0 0;
	color: var(--bsffs-muted, #646970);
	font-size: 0.8125rem;
	line-height: 1.5;
	text-wrap: pretty;
}

.bsffs-style-theme .bsffs-email-field input,
.bsffs-style-theme .bsffs-submit,
.bsffs-style-styled .bsffs-email-field input,
.bsffs-style-styled .bsffs-submit {
	border-radius: var(--bsffs-input-radius, 4px);
	min-height: var(--bsffs-control-height, 44px);
}

.bsffs-style-theme .bsffs-status:not(:empty),
.bsffs-style-styled .bsffs-status:not(:empty) {
	margin-block-start: var(--bsffs-gap, 12px);
}

.bsffs-style-theme .bsffs-submit,
.bsffs-style-styled .bsffs-submit {
	border-radius: var(--bsffs-button-radius, 4px);
	cursor: pointer;
	transition-property: transform, box-shadow, background-color;
	transition-duration: 150ms;
	transition-timing-function: ease-out;
}

.bsffs-style-styled {
	padding: clamp(1rem, 4vw, 2rem);
	border-radius: 12px;
	background: #fff;
	color: #1e1e1e;
	box-shadow: 0 0 0 1px rgb(0 0 0 / 6%), 0 2px 8px rgb(0 0 0 / 6%);
}

.bsffs-style-styled .bsffs-email-field input {
	padding-inline: 0.8rem;
	border: 1px solid #757575;
	background: #fff;
	color: #1e1e1e;
}

.bsffs-style-styled .bsffs-submit {
	padding-inline: 1.25rem;
	border: 1px solid var(--bsffs-accent);
	background: var(--bsffs-accent);
	color: #fff;
	font-weight: 600;
}

.bsffs-style-theme .bsffs-status.is-error,
.bsffs-style-styled .bsffs-status.is-error {
	color: var(--bsffs-error);
}

.bsffs-style-theme .bsffs-status.is-success,
.bsffs-style-styled .bsffs-status.is-success {
	color: var(--bsffs-success);
	font-weight: 600;
}

.bsffs-popup-style-theme.bsffs-popup,
.bsffs-popup-style-styled.bsffs-popup {
	padding: 0;
	border: 0;
	background: transparent;
	overflow: visible;
}

.bsffs-popup-style-theme.bsffs-popup::backdrop,
.bsffs-popup-style-styled.bsffs-popup::backdrop {
	background: rgb(0 0 0 / var(--bsffs-overlay-opacity, 0.6));
}

.bsffs-popup-fallback.bsffs-popup-style-theme,
.bsffs-popup-fallback.bsffs-popup-style-styled {
	background: rgb(0 0 0 / var(--bsffs-overlay-opacity, 0.6));
}

.bsffs-popup-style-theme .bsffs-popup-panel,
.bsffs-popup-style-styled .bsffs-popup-panel {
	padding: clamp(1rem, 5vw, 2rem);
	border-radius: 16px;
	background: #fff;
	color: #1e1e1e;
	box-shadow: 0 16px 48px rgb(0 0 0 / 20%);
}

.bsffs-popup-style-theme .bsffs-popup-close,
.bsffs-popup-style-styled .bsffs-popup-close {
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: transparent;
	color: currentcolor;
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
	transition-property: background-color, transform;
	transition-duration: 150ms;
}

.bsffs-style-theme .bsffs-submit:active,
.bsffs-style-styled .bsffs-submit:active {
	transform: scale(0.97);
}

.bsffs-style-theme :is(input, button):focus-visible,
.bsffs-style-styled :is(input, button):focus-visible,
.bsffs-popup-style-theme .bsffs-popup-close:focus-visible,
.bsffs-popup-style-styled .bsffs-popup-close:focus-visible {
	outline: 3px solid #1d4ed8;
	outline-offset: 2px;
}

.bsffs-popup-style-theme .bsffs-popup-close:hover,
.bsffs-popup-style-styled .bsffs-popup-close:hover {
	background: rgb(0 0 0 / 7%);
}

.bsffs-popup-style-theme .bsffs-popup-close:active,
.bsffs-popup-style-styled .bsffs-popup-close:active {
	transform: scale(0.96);
}

@media (prefers-reduced-motion: reduce) {

	.bsffs-style-theme .bsffs-submit,
	.bsffs-style-styled .bsffs-submit,
	.bsffs-popup-style-theme .bsffs-popup-close,
	.bsffs-popup-style-styled .bsffs-popup-close {
		transition-duration: 0.01ms;
	}
}
