.ffvc-configurator {
	margin: 1.5rem 0;
	padding: 1.25rem;
	border: 1px solid #d8dfd7;
	border-radius: 8px;
	background: #f8faf7;
}

.ffvc-configurator > h3 {
	margin: 0 0 .35rem;
}

.ffvc-intro {
	margin: 0 0 1.25rem;
}

.ffvc-group {
	margin: 0 0 1.25rem;
	padding: 0;
	border: 0;
}

.ffvc-group legend {
	margin-bottom: .55rem;
	font-weight: 700;
}

.ffvc-choices {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: .55rem;
}

.ffvc-choice {
	display: flex;
	position: relative;
	flex-direction: column;
	gap: .2rem;
	padding: .75rem .8rem .75rem 2.25rem;
	border: 1px solid #cfd8ce;
	border-radius: 6px;
	background: #fff;
	cursor: pointer;
}

.ffvc-choice:hover,
.ffvc-choice.is-selected {
	border-color: #416b49;
	box-shadow: 0 0 0 1px #416b49;
}

.ffvc-choice input {
	position: absolute;
	top: .9rem;
	left: .75rem;
}

.ffvc-choice-label {
	font-weight: 600;
}

.ffvc-choice-price {
	font-size: .9em;
	color: #47634b;
}

.ffvc-group.has-error {
	padding: .75rem;
	border: 2px solid #b81c23;
	border-radius: 6px;
}

.ffvc-design-details {
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid #d8dfd7;
}

.ffvc-design-details label {
	display: block;
	margin-bottom: .3rem;
	font-weight: 600;
}

.ffvc-design-details input,
.ffvc-design-details select,
.ffvc-design-details textarea {
	width: 100%;
	max-width: none;
}

.ffvc-price-summary {
	margin-top: 1.25rem;
	padding: 1rem;
	border-left: 4px solid #416b49;
	background: #fff;
}

.ffvc-price-lines p {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin: .35rem 0;
}

.ffvc-price-lines .ffvc-due-now {
	padding: .55rem 0;
	border-top: 1px solid #d8dfd7;
	border-bottom: 1px solid #d8dfd7;
	font-size: 1.08em;
}

@media (max-width: 560px) {
	.ffvc-configurator {
		padding: 1rem;
	}

	.ffvc-choices {
		grid-template-columns: 1fr;
	}

	.ffvc-price-lines p {
		align-items: flex-start;
		flex-direction: column;
		gap: .1rem;
	}
}

