.jcfwb-callback {
	--callback-ink: #173c36;
	--callback-accent: #ca7745;
	--callback-paper: #f5efe4;
	--callback-border: #c8d4cb;
	margin-block: clamp(2rem, 5vw, 4rem);
	padding: clamp(1.25rem, 4vw, 2.5rem);
	border: 1px solid var(--callback-border);
	border-radius: 1.5rem;
	background: var(--callback-paper);
	color: var(--callback-ink);
}

.jcfwb-callback__form {
	margin-block: 1.5rem;
}

.jcfwb-callback__fields {
	display: grid;
	gap: 1.1rem;
	margin-top: 1.25rem;
}

.jcfwb-callback__fields[hidden],
.jcfwb-callback__accept[hidden] {
	display: none;
}

.jcfwb-callback__field {
	display: grid;
	gap: .4rem;
}

.jcfwb-callback__field label {
	font-weight: 700;
}

.jcfwb-callback__field input,
.jcfwb-callback__field select {
	box-sizing: border-box;
	width: 100%;
	min-height: 3rem;
	padding: .7rem .85rem;
	border: 1px solid #738b81;
	border-radius: .65rem;
	background: #fff;
	color: #152d29;
	font: inherit;
}

.jcfwb-callback__field input:focus-visible,
.jcfwb-callback__field select:focus-visible,
.jcfwb-callback__accept:focus-visible,
.jcfwb-callback__accept-fallback input:focus-visible,
.jcfwb-callback__submit:focus-visible {
	outline: 3px solid #1d5d52;
	outline-offset: 3px;
}

.jcfwb-callback__help {
	font-size: .9rem;
	line-height: 1.45;
}

.jcfwb-callback__accept,
.jcfwb-callback__submit {
	justify-self: start;
	min-height: 3rem;
	padding: .75rem 1.15rem;
	border: 0;
	border-radius: 999px;
	background: var(--callback-ink);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.jcfwb-callback__submit:hover {
	background: #24584f;
}

.jcfwb-callback__accept {
	margin-top: 1rem;
	background: var(--callback-accent);
}

.jcfwb-callback__accept:hover {
	background: #a9582f;
}

.jcfwb-callback__accept:disabled {
	cursor: default;
	opacity: .8;
}

.jcfwb-callback__accept-fallback {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin-top: 1rem;
	font-weight: 700;
}

.jcfwb-callback__accept-fallback input {
	width: 1.25rem;
	height: 1.25rem;
}

.jcfwb-callback__submit[disabled] {
	cursor: wait;
	opacity: .7;
}

.jcfwb-callback__status,
.jcfwb-callback__disclosure {
	padding: .9rem 1rem;
	border-left: .3rem solid var(--callback-accent);
	background: #fff;
}

.jcfwb-callback__status--success {
	border-left-color: #357763;
}

.jcfwb-callback__trap {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

@media (min-width: 42rem) {
	.jcfwb-callback__form {
		display: block;
	}

	.jcfwb-callback__fields {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.jcfwb-callback__field:last-of-type,
	.jcfwb-callback__submit {
		grid-column: 1 / -1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.jcfwb-callback *,
	.jcfwb-callback *::before,
	.jcfwb-callback *::after {
		scroll-behavior: auto !important;
		transition: none !important;
	}
}
