
.vb-form {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 20px;
	padding: 24px;
	box-shadow: var(--shadow);
}

.vb-form--flat {
	box-shadow: none;
}

.vb-form.vb-form--bare {
	background: none;
	border: 0;
	border-radius: 0;
	padding: 0;
}

.vb-field {
	margin-bottom: 18px;
}

.vb-field > label {
	display: block;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.2;
	margin-bottom: 7px;
	color: var(--navy);
}

.vb-field__hint {
	font-weight: 400;
	color: var(--ink-soft);
	font-size: 12.5px;
	margin-left: 4px;
}

.vb-field input,
.vb-field select,
.vb-field textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--line);
	border-radius: 10px;
	font-size: 14.5px;
	font-family: inherit;
	background: var(--bg-soft);
	color: var(--navy);
	transition: border-color 0.15s, background 0.15s;
}

.vb-field textarea {
	resize: vertical;
	min-height: 96px;
}

.vb-field input:focus,
.vb-field select:focus,
.vb-field textarea:focus {
	border-color: var(--purple-500);
	background: #fff;
}

.vb-field .wpcf7-form-control-wrap {
	display: block;
}

.vb-field-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0 14px;
}

.vb-types {
	border: 0;
	padding: 0;
	margin: 0 0 22px;
	min-width: 0;
}

.vb-types__legend {
	padding: 0;
	font-size: 13.5px;
	font-weight: 600;
	margin-bottom: 12px;
	color: var(--navy);
}

.vb-types .wpcf7-radio {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
}

.vb-types .wpcf7-list-item {
	display: block;
	margin: 0;
}

.vb-types .wpcf7-list-item label {
	display: block;
	height: 100%;
	cursor: pointer;
}

.vb-types input[type="radio"] {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.vb-types .wpcf7-list-item-label {
	display: block;
	height: 100%;
	border: 1.5px solid var(--line);
	border-radius: 12px;
	padding: 14px 10px;
	text-align: center;
	font-size: 13px;
	font-weight: 600;
	color: var(--ink-soft);
	transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.vb-types .wpcf7-list-item-label::before {
	content: "";
	display: block;
	width: 22px;
	height: 22px;
	margin: 0 auto 8px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 22px 22px;
}

.vb-types .wpcf7-list-item-label::after {
	content: none;
}

.vb-types .wpcf7-list-item:nth-child(1) .wpcf7-list-item-label::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a6ef0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 16l20-8-8 20-2-9-9-3z'/%3E%3C/svg%3E");
}

.vb-types .wpcf7-list-item:nth-child(2) .wpcf7-list-item-label::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a6ef0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4 4-6 8-6s8 2 8 6'/%3E%3C/svg%3E");
}

.vb-types .wpcf7-list-item:nth-child(3) .wpcf7-list-item-label::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a6ef0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='2'/%3E%3Cpath d='M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E");
}

.vb-types .wpcf7-list-item:nth-child(4) .wpcf7-list-item-label::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a6ef0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 20l-5-2V6l5 2m0 12l6-2m-6 2V8m6 10l5 2V6l-5-2m0 12V6m0 0L9 8'/%3E%3C/svg%3E");
}

.vb-types input[type="radio"]:checked + .wpcf7-list-item-label {
	border-color: var(--purple-600);
	background: var(--purple-100);
	color: var(--purple-700);
}

.vb-types input[type="radio"]:focus-visible + .wpcf7-list-item-label {
	outline: 3px solid var(--purple-500);
	outline-offset: 2px;
}

.vb-note {
	display: flex;
	gap: 12px;
	background: var(--purple-100);
	border: 1px solid var(--purple-300);
	border-radius: 12px;
	padding: 16px;
	margin-bottom: 22px;
	font-size: 13.5px;
	color: var(--purple-700);
	line-height: 1.6;
}

.vb-note .vb-icon {
	flex: none;
	margin-top: 2px;
}

.vb-form .vb-btn--block {
	width: 100%;
}

.vb-form__note {
	text-align: center;
	font-size: 12.5px;
	color: var(--ink-soft);
	margin: 14px 0 0;
}

.vb-form__option,
.vb-form__consent {
	display: flex;
	flex-direction: column;
	gap: 3px;
	border: 1.5px solid var(--purple-300);
	background: var(--purple-100);
	border-radius: 12px;
	padding: 16px 18px;
	margin-bottom: 18px;
	transition: border-color 0.15s;
}

.vb-form__option:hover,
.vb-form__consent:hover {
	border-color: var(--purple-600);
}

.vb-form__option .wpcf7-list-item,
.vb-form__consent .wpcf7-list-item {
	margin: 0;
}

.vb-form__option .wpcf7-list-item label,
.vb-form__consent .wpcf7-list-item label {
	display: flex;
	gap: 14px;
	align-items: center;
	cursor: pointer;
}

.vb-form__consent .wpcf7-list-item label {
	align-items: flex-start;
}

.vb-form__option input[type="checkbox"],
.vb-form__consent input[type="checkbox"] {
	appearance: none;
	flex: none;
	width: 22px;
	height: 22px;
	margin: 0;
	border: 2px solid var(--purple-500);
	border-radius: 6px;
	background: #fff no-repeat center / 12px 12px;
	cursor: pointer;
	transition: background-color 0.15s, border-color 0.15s;
}

.vb-form__option input[type="checkbox"]:checked,
.vb-form__consent input[type="checkbox"]:checked {
	border-color: var(--purple-600);
	background-color: var(--purple-600);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12l5 5L20 6'/%3E%3C/svg%3E");
}

.vb-form__option input[type="checkbox"]:focus-visible,
.vb-form__consent input[type="checkbox"]:focus-visible {
	outline: 3px solid var(--purple-500);
	outline-offset: 2px;
}

.vb-form__option .wpcf7-list-item-label {
	font-size: 14.5px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--navy);
}

.vb-form__consent .wpcf7-list-item-label {
	font-size: 13px;
	font-weight: 500;
	line-height: 1.55;
	color: var(--navy);
}

.vb-form__option-hint {
	font-size: 12.5px;
	line-height: 1.25;
	color: var(--ink-soft);
	padding-left: 36px;
}

.vb-form__consent a,
.vb-form__legal a {
	text-decoration: underline;
}

.vb-form__legal {
	font-size: 12px;
	line-height: 1.5;
	color: var(--ink-soft);
	margin: 0 0 18px;
}

.vb-reveal[hidden] {
	display: none;
}

.vb-form__option .wpcf7-not-valid-tip {
	padding-left: 36px;
}

.vb-seats {
	min-width: 0;
	margin: 0 0 18px;
	padding: 2px 18px;
	border: 1px solid var(--line);
	border-radius: 12px;
	background: #fff;
}

.vb-seat {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 0;
}

.vb-seat + .vb-seat {
	border-top: 1px solid var(--line);
}

.vb-seat__label {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.25;
	color: var(--navy);
}

.vb-seat__hint {
	font-size: 12.5px;
	font-weight: 400;
	color: var(--ink-soft);
}

.vb-seat .wpcf7-form-control-wrap {
	display: flex;
	flex: none;
	flex-direction: column;
	align-items: flex-end;
}

.vb-seat input[type="number"] {
	width: 64px;
	padding: 8px 10px;
	border: 1px solid var(--line);
	border-radius: 10px;
	background: var(--bg-soft);
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	color: var(--navy);
	text-align: center;
}

.vb-stepper {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.vb-stepper input[type="number"] {
	width: 36px;
	padding: 4px 0;
	border: 0;
	border-radius: 6px;
	background: none;
	appearance: textfield;
}

.vb-stepper input[type="number"]::-webkit-inner-spin-button,
.vb-stepper input[type="number"]::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.vb-stepper__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 1.5px solid var(--purple-300);
	border-radius: 50%;
	background: #fff;
	color: var(--purple-700);
	font-size: 19px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.15s, border-color 0.15s;
}

.vb-stepper__btn:hover {
	border-color: var(--purple-500);
	background: var(--purple-100);
}

.vb-stepper__btn[aria-disabled="true"] {
	border-color: var(--line);
	background: #fff;
	color: var(--ink-soft);
	opacity: 0.55;
	cursor: not-allowed;
}

.vb-picker {
	position: relative;
	display: block;
}

.vb-picker--date {
	--vb-picker-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2.5'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18M8 14h.01M12 14h.01M16 14h.01M8 17.5h.01M12 17.5h.01'/%3E%3C/svg%3E");
}

.vb-picker--time {
	--vb-picker-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

.vb-field .vb-picker__input {
	padding-right: 48px;
}

.vb-picker.is-open .vb-picker__input {
	border-color: var(--purple-500);
	background: #fff;
}

.vb-picker__toggle {
	position: absolute;
	top: 50%;
	right: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: none;
	color: var(--purple-600);
	cursor: pointer;
	transform: translateY(-50%);
	transition: background-color 0.15s;
}

.vb-picker__toggle::before {
	content: "";
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: var(--vb-picker-icon) center / contain no-repeat;
	mask: var(--vb-picker-icon) center / contain no-repeat;
}

.vb-picker__toggle:focus-visible {
	outline-offset: 0;
}

@media (pointer: coarse) {
	.vb-picker__toggle {
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		width: auto;
		height: auto;
		justify-content: flex-end;
		padding-right: 14px;
		border-radius: 10px;
		transform: none;
	}
}

.vb-picker__panel {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	z-index: 20;
	max-width: calc(100vw - 24px);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
	box-shadow: 0 24px 48px -20px rgba(36, 20, 85, 0.35), 0 2px 8px rgba(36, 20, 85, 0.06);
	color: var(--navy);
	scroll-margin: 16px;
}

.vb-picker-open .vb-fab {
	z-index: 10;
}

.vb-picker__panel--up {
	top: auto;
	bottom: calc(100% + 8px);
}

.vb-cal {
	width: 316px;
	padding: 14px 14px 10px;
}

.vb-cal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 8px;
}

.vb-cal__title {
	margin: 0;
	font-family: var(--font-head);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--navy);
}

.vb-cal__nav {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 1.5px solid var(--purple-300);
	border-radius: 50%;
	background: #fff;
	color: var(--purple-700);
	cursor: pointer;
	transition: background-color 0.15s, border-color 0.15s;
}

.vb-cal__nav::before {
	content: "";
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18l-6-6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18l-6-6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.vb-cal__nav--next::before {
	transform: scaleX(-1);
}

.vb-cal__nav[aria-disabled="true"] {
	border-color: var(--line);
	background: #fff;
	color: var(--ink-soft);
	opacity: 0.45;
	cursor: not-allowed;
}

.vb-cal__grid {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
}

.vb-cal__grid th {
	padding: 4px 0 8px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-align: center;
	color: var(--ink-soft);
}

.vb-cal__grid th:nth-child(n + 6) {
	color: var(--purple-600);
}

.vb-cal__grid td {
	padding: 1px 0;
	text-align: center;
}

.vb-cal__day {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 40px;
	aspect-ratio: 1;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
	font-size: 14px;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	line-height: 1;
	color: var(--navy);
	cursor: pointer;
	transition: background-color 0.12s, color 0.12s;
}

.vb-cal__day[hidden] {
	display: none;
}

.vb-cal__day.is-today {
	font-weight: 700;
	color: var(--purple-700);
}

.vb-cal__day.is-today::after {
	content: "";
	position: absolute;
	bottom: 5px;
	left: 50%;
	width: 4px;
	height: 4px;
	margin-left: -2px;
	border-radius: 50%;
	background: currentColor;
}

.vb-cal__day.is-selected {
	background: var(--purple-600);
	font-weight: 700;
	color: #fff;
}

.vb-cal__day:disabled {
	color: var(--ink-soft);
	opacity: 0.35;
	cursor: default;
}

.vb-cal__day:focus-visible {
	outline-width: 2px;
	outline-offset: 1px;
}

.vb-clock {
	width: 284px;
	padding: 16px 18px 18px;
}

.vb-clock__caption {
	margin: 0 0 10px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-align: center;
	color: var(--ink-soft);
}

.vb-clock__display {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin-bottom: 16px;
}

.vb-clock__part {
	min-width: 72px;
	height: 56px;
	padding: 0 10px;
	border: 1.5px solid transparent;
	border-radius: 12px;
	background: var(--bg-soft);
	font-family: var(--font-head);
	font-size: 30px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	line-height: 1;
	color: var(--navy);
	cursor: pointer;
	transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}

.vb-clock__part[aria-pressed="true"] {
	border-color: var(--purple-300);
	background: var(--purple-100);
	color: var(--purple-700);
}

.vb-clock__part[aria-disabled="true"] {
	color: var(--ink-soft);
	cursor: default;
}

.vb-clock__colon {
	font-family: var(--font-head);
	font-size: 30px;
	font-weight: 600;
	line-height: 1;
	color: var(--navy);
}

.vb-clock__dial {
	--vb-outer: 100px;
	--vb-inner: 64px;
	position: relative;
	width: 248px;
	height: 248px;
	margin: 0 auto;
	border-radius: 50%;
	background: var(--bg-soft);
	box-shadow: inset 0 0 0 1px var(--line);
}

.vb-clock__dial::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 8px;
	height: 8px;
	margin: -4px 0 0 -4px;
	border-radius: 50%;
	background: var(--purple-600);
}

.vb-clock__hand {
	position: absolute;
	bottom: 50%;
	left: 50%;
	width: 2px;
	height: var(--vb-outer);
	margin-left: -1px;
	background: var(--purple-600);
	transform: rotate(var(--vb-hand, 0deg));
	transform-origin: 50% 100%;
	pointer-events: none;
}

.vb-clock__dial.is-inner .vb-clock__hand {
	height: var(--vb-inner);
}

.vb-clock__hand::before {
	content: "";
	position: absolute;
	top: -4px;
	left: -3px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--purple-600);
}

.vb-clock__num {
	--vb-radius: var(--vb-outer);
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	margin: -19px 0 0 -19px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
	font-size: 14.5px;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	line-height: 1;
	color: var(--navy);
	cursor: pointer;
	transform: rotate(var(--vb-angle)) translateY(calc(-1 * var(--vb-radius))) rotate(calc(-1 * var(--vb-angle)));
	transition: background-color 0.12s, color 0.12s;
}

.vb-clock__num--inner {
	--vb-radius: var(--vb-inner);
	width: 30px;
	height: 30px;
	margin: -15px 0 0 -15px;
	font-size: 12.5px;
	color: var(--ink-soft);
}

.vb-clock__num[hidden] {
	display: none;
}

.vb-clock__num.is-selected {
	background: var(--purple-600);
	font-weight: 700;
	color: #fff;
}

.vb-clock__num:focus-visible {
	outline-width: 2px;
	outline-offset: 1px;
}

@media (hover: hover) {
	.vb-picker__toggle:hover {
		background: var(--purple-100);
	}

	.vb-cal__nav:not([aria-disabled="true"]):hover {
		border-color: var(--purple-500);
		background: var(--purple-100);
	}

	.vb-cal__day:not(:disabled):not(.is-selected):hover,
	.vb-clock__num:not(.is-selected):hover {
		background: var(--purple-100);
		color: var(--purple-700);
	}

	.vb-clock__part[aria-pressed="false"]:not([aria-disabled="true"]):hover {
		background: var(--purple-100);
	}
}

@media (prefers-reduced-motion: no-preference) {
	.vb-picker__panel:not([hidden]) {
		animation: vb-picker-in 0.16s ease-out;
	}

	.vb-picker__panel--up:not([hidden]) {
		animation-name: vb-picker-in-up;
	}

	@keyframes vb-picker-in {
		from {
			opacity: 0;
			transform: translateY(-6px);
		}

		to {
			opacity: 1;
			transform: none;
		}
	}

	@keyframes vb-picker-in-up {
		from {
			opacity: 0;
			transform: translateY(6px);
		}

		to {
			opacity: 1;
			transform: none;
		}
	}
}

.vb-form--compact .vb-form__option,
.vb-form--compact .vb-form__consent {
	padding: 8px 12px;
	border-radius: 10px;
	margin-bottom: 14px;
}

.vb-form--compact .vb-form__option .wpcf7-list-item label,
.vb-form--compact .vb-form__consent .wpcf7-list-item label {
	gap: 10px;
}

.vb-form--compact .vb-form__option input[type="checkbox"],
.vb-form--compact .vb-form__consent input[type="checkbox"] {
	width: 18px;
	height: 18px;
	border-radius: 5px;
	background-size: 10px 10px;
}

.vb-form--compact .vb-form__option .wpcf7-list-item-label {
	font-size: 13px;
}

.vb-form--compact .vb-form__option-hint,
.vb-form--compact .vb-form__option .wpcf7-not-valid-tip {
	font-size: 11.5px;
	padding-left: 28px;
}

.vb-form--compact .vb-seats {
	margin-bottom: 14px;
	padding: 0 12px;
	border-radius: 10px;
}

.vb-form--compact .vb-seat {
	padding: 9px 0;
}

.vb-form--compact .vb-seat__label {
	font-size: 13px;
}

.vb-form--compact .vb-stepper__btn {
	width: 30px;
	height: 30px;
	font-size: 17px;
}

.vb-form--compact .vb-field textarea {
	min-height: 44px;
}

.vb-form__trap {
	position: absolute;
	left: -9999px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.vb-form .wpcf7-spinner {
	display: none;
}

.vb-form.vb-form--busy .wpcf7-submit {
	color: transparent;
	pointer-events: none;
	transform: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Ccircle cx='5' cy='12' r='2'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3Ccircle cx='19' cy='12' r='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 24px 24px;
}

.vb-form--busy .vb-wizard__btn {
	opacity: 0.5;
	pointer-events: none;
}

@media (prefers-reduced-motion: no-preference) {
	.vb-form.vb-form--busy .wpcf7-submit {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3'%3E%3Ccircle cx='12' cy='12' r='9' stroke-opacity='.3'/%3E%3Cpath d='M21 12a9 9 0 0 0-9-9' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='.8s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E");
		background-size: 22px 22px;
	}
}

.vb-form .wpcf7-not-valid-tip {
	color: #b3261e;
	font-size: 12.5px;
	font-weight: 500;
	margin-top: 6px;
}

.vb-form .wpcf7-not-valid {
	border-color: #b3261e;
}

.wpcf7 form.vb-form .wpcf7-response-output {
	position: relative;
	margin: 22px 0 0;
	padding: 14px 16px 14px 46px;
	border: 1px solid var(--line);
	border-radius: 12px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
	background: var(--bg-soft);
	color: var(--navy);
}

.wpcf7 form.vb-form .wpcf7-response-output:empty {
	display: none;
}

.wpcf7 form.vb-form .wpcf7-response-output::before {
	content: "";
	position: absolute;
	top: 15px;
	left: 16px;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wpcf7 form.vb-form.sent .wpcf7-response-output {
	border-color: var(--tone-green-fg);
	background: var(--tone-green-bg);
	color: #135f42;
}

.wpcf7 form.vb-form.sent .wpcf7-response-output::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12.5l2.5 2.5L16 9.5'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12.5l2.5 2.5L16 9.5'/%3E%3C/svg%3E");
}

.wpcf7 form.vb-form.invalid .wpcf7-response-output,
.wpcf7 form.vb-form.unaccepted .wpcf7-response-output,
.wpcf7 form.vb-form.payment-required .wpcf7-response-output {
	border-color: #e0a800;
	background: var(--tone-amber-bg);
	color: #7a4d05;
}

.wpcf7 form.vb-form.invalid .wpcf7-response-output::before,
.wpcf7 form.vb-form.unaccepted .wpcf7-response-output::before,
.wpcf7 form.vb-form.payment-required .wpcf7-response-output::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z'/%3E%3Cpath d='M12 9v4M12 17h.01'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z'/%3E%3Cpath d='M12 9v4M12 17h.01'/%3E%3C/svg%3E");
}

.wpcf7 form.vb-form.failed .wpcf7-response-output,
.wpcf7 form.vb-form.aborted .wpcf7-response-output,
.wpcf7 form.vb-form.spam .wpcf7-response-output,
.wpcf7 form.vb-form.vb-form--stalled .wpcf7-response-output {
	border-color: #b3261e;
	background: #fdecea;
	color: #8c1d18;
}

.wpcf7 form.vb-form.vb-form--stalled .wpcf7-response-output {
	display: block;
}

.wpcf7 form.vb-form.failed .wpcf7-response-output::before,
.wpcf7 form.vb-form.aborted .wpcf7-response-output::before,
.wpcf7 form.vb-form.spam .wpcf7-response-output::before,
.wpcf7 form.vb-form.vb-form--stalled .wpcf7-response-output::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5M12 16.5h.01'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5M12 16.5h.01'/%3E%3C/svg%3E");
}

.wpcf7 form.vb-form--sent > :not(.vb-form__success) {
	display: none;
}

.wpcf7 form.vb-form--sent {
	display: flex;
	flex-direction: column;
	min-height: var(--vb-form-height, 0);
}

.vb-form__success {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-block: auto;
	padding: 50px 20px;
	text-align: center;
}

.vb-form__success[hidden] {
	display: none;
}

.vb-form__success-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin-bottom: 20px;
	border-radius: 50%;
	background: var(--tone-green-bg);
	color: var(--tone-green-fg);
}

.vb-form__success-icon::before {
	content: "";
	width: 28px;
	height: 28px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12l5 5L20 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.vb-form__success-title {
	margin: 0 0 10px;
	font-family: var(--font-head);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--navy);
}

.vb-form__success-title:focus {
	outline: none;
}

.vb-form__success-text {
	max-width: 400px;
	margin: 0;
	color: var(--ink-soft);
}

.vb-form__again {
	margin-top: 24px;
}

.vb-form--compact .vb-form__success {
	padding: 28px 8px;
}

.vb-wizard--ready .vb-wizard__panel[hidden] {
	display: none;
}

.vb-wizard__panel:focus {
	outline: none;
}

.vb-wizard__steps {
	display: flex;
	gap: 6px;
	list-style: none;
	margin: 0 0 22px;
	padding: 0;
	counter-reset: vb-wizard;
}

.vb-wizard__step {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	position: relative;
	text-align: center;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--ink-soft);
	counter-increment: vb-wizard;
}

.vb-wizard__step::before {
	content: counter(vb-wizard);
	width: 28px;
	height: 28px;
	border-radius: 999px;
	background: var(--purple-100);
	color: var(--purple-600);
	border: 1.5px solid var(--purple-300);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 700;
	position: relative;
	z-index: 1;
}

.vb-wizard__step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 13px;
	left: calc(50% + 18px);
	right: calc(-50% + 18px);
	height: 2px;
	background: var(--purple-300);
}

.vb-wizard__step.is-active,
.vb-wizard__step.is-done {
	color: var(--navy);
}

.vb-wizard__step.is-active::before,
.vb-wizard__step.is-done::before {
	background: var(--purple-600);
	border-color: var(--purple-600);
	color: #fff;
}

.vb-wizard__step.is-done::after {
	background: var(--purple-600);
}

.vb-wizard__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 4px;
}

.vb-wizard__nav .vb-btn,
.vb-wizard__nav .wpcf7-submit {
	flex: 999 1 auto;
	margin: 0;
}

.vb-wizard__nav .vb-btn--ghost {
	flex: 1 1 auto;
}

.vb-wizard__nav .vb-btn--primary,
.vb-wizard__nav .wpcf7-submit {
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 18px center;
	background-size: 15px 15px;
}

.vb-wizard__nav .vb-btn--ghost {
	padding-left: 38px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234b2fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5M11 6l-6 6 6 6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: left 16px center;
	background-size: 15px 15px;
}

@media (prefers-reduced-motion: no-preference) {
	.vb-wizard--ready .vb-wizard__panel:not([hidden]),
	.vb-form__success:not([hidden]) {
		animation: vb-form-fade 0.25s ease;
	}

	.vb-form__success:not([hidden]) .vb-form__success-icon {
		animation: vb-form-pop 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
	}

	@keyframes vb-form-fade {
		from {
			opacity: 0;
			transform: translateY(6px);
		}

		to {
			opacity: 1;
			transform: none;
		}
	}

	@keyframes vb-form-pop {
		from {
			opacity: 0;
			transform: scale(0.5);
		}

		to {
			opacity: 1;
			transform: none;
		}
	}
}

@media (min-width: 560px) {
	.vb-form {
		padding: 32px;
	}

	.vb-field-row {
		grid-template-columns: 1fr 1fr;
	}

	.vb-types .wpcf7-radio {
		grid-template-columns: repeat(4, 1fr);
	}
}

@media (min-width: 860px) {
	.vb-form {
		padding: 36px;
	}
}
