.tvf-form-wrap {
	--tvf-primary: #0050FD;
	--tvf-button: #0050FD;
	--tvf-button-text: #fff;
	--tvf-button-hover: #003FCC;
	--tvf-container-bg: #fff;
	--tvf-border: #E7EAF0;
	--tvf-text: #101828;
	--tvf-label: #344054;
	--tvf-input-bg: #fff;
	--tvf-input-text: #101828;
	--tvf-placeholder: #98A2B3;
	--tvf-container-radius: 14px;
	--tvf-input-radius: 10px;
	--tvf-button-radius: 10px;
	--tvf-border-width: 1px;
	--tvf-input-height: 52px;
	--tvf-font-size: 15px;
	--tvf-label-size: 14px;
	--tvf-button-size: 15px;
	--tvf-padding: 36px;
	--tvf-gap: 18px;
	--tvf-columns: 2;
	--tvf-shadow: 0 18px 55px rgba(16, 24, 40, .08);
	--tvf-font: "Onest", sans-serif;
	--tvf-label-font: var(--tvf-font);
	width: 100%;
	margin: 0 auto;
	font-family: var(--tvf-font);
	color: var(--tvf-text);
}

.tvf-form-wrap *, .tvf-form-wrap *::before, .tvf-form-wrap *::after { box-sizing: border-box; }

.tvf-form {
	position: relative;
	background: var(--tvf-container-bg);
	border: var(--tvf-border-width) solid var(--tvf-border);
	border-radius: var(--tvf-container-radius);
	box-shadow: var(--tvf-shadow);
	padding: var(--tvf-padding);
	overflow: visible;
}

.tvf-form::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 4px;
	background: var(--tvf-primary);
}

.tvf-form-header { margin-bottom: 30px; }
.tvf-form-header h2 { margin: 0 0 8px; color: var(--tvf-text); font-family: inherit; font-size: clamp(24px, 4vw, 32px); line-height: 1.2; letter-spacing: -.035em; font-weight: 700; }
.tvf-form-header p { margin: 0; max-width: 610px; color: #667085; font-size: var(--tvf-font-size); line-height: 1.65; }

.tvf-fields-grid, .tvf-dynamic-fields {
	display: grid;
	grid-template-columns: repeat(var(--tvf-columns), minmax(0, 1fr));
	column-gap: var(--tvf-gap);
	row-gap: var(--tvf-gap);
}

.tvf-dynamic-fields { display: contents; }
.tvf-grid-full, .tvf-field-textarea, .tvf-field-file, .tvf-field-radio, .tvf-field-checkbox { grid-column: 1 / -1; }
.tvf-field { min-width: 0; margin: 0; }

.tvf-field > label {
	display: block;
	margin: 0 0 8px;
	color: var(--tvf-label);
	font-family: inherit;
	font-size: var(--tvf-label-size);
	font-weight: 600;
	font-family: "Onest", sans-serif !important;
	font-style: normal !important;
	letter-spacing: normal !important;
	line-height: 1.4;
}

.tvf-req { color: #E5484D; }
.tvf-control-wrap { position: relative; }
.tvf-select-wrap::after { content: ""; position: absolute; right: 18px; top: 50%; width: 8px; height: 8px; border-right: 2px solid var(--tvf-label); border-bottom: 2px solid var(--tvf-label); transform: translateY(-70%) rotate(45deg); pointer-events: none; }

.tvf-field input[type="text"], .tvf-field input[type="email"], .tvf-field input[type="tel"],
.tvf-field input[type="number"], .tvf-field input[type="date"], .tvf-field input[type="file"],
.tvf-field select, .tvf-field textarea {
	appearance: none;
	width: 100%;
	min-height: var(--tvf-input-height);
	margin: 0;
	padding: 12px 16px;
	border: var(--tvf-border-width) solid var(--tvf-border);
	border-radius: var(--tvf-input-radius);
	background: var(--tvf-input-bg);
	color: var(--tvf-input-text);
	font-family: inherit;
	font-size: var(--tvf-font-size);
	line-height: 1.4;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.tvf-field select { padding-right: 46px; cursor: pointer; }
.tvf-field-country .tvf-select-wrap::after { display: none; }
.tvf-field textarea { min-height: 124px; resize: vertical; }
.tvf-field input[type="file"] { padding: 8px; }
.tvf-field input[type="file"]::file-selector-button { height: calc(var(--tvf-input-height) - 18px); margin-right: 12px; padding: 0 14px; border: 0; border-radius: calc(var(--tvf-input-radius) - 3px); background: #EEF4FF; color: var(--tvf-primary); font-family: var(--tvf-font); font-size: 13px; font-weight: 600; cursor: pointer; }
.tvf-phone-control { display: grid; grid-template-columns: minmax(170px, 44%) 1fr; }
.tvf-phone-control .tvf-flag-select-button { border-radius: var(--tvf-input-radius) 0 0 var(--tvf-input-radius); border-right: 0; }
.tvf-phone-control .tvf-phone-number { border-radius: 0 var(--tvf-input-radius) var(--tvf-input-radius) 0; }
.tvf-phone-control .tvf-phone-country:focus, .tvf-phone-control .tvf-phone-number:focus { position: relative; z-index: 1; }
.tvf-field input::placeholder, .tvf-field textarea::placeholder { color: var(--tvf-placeholder); }
.tvf-field input:focus, .tvf-field select:focus, .tvf-field textarea:focus { outline: 0; border-color: var(--tvf-primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--tvf-primary) 13%, transparent); }

.tvf-choice-group { display: flex; flex-wrap: wrap; gap: 10px; }
.tvf-inline-choice { display: inline-flex !important; align-items: center; gap: 8px; margin: 0 !important; padding: 11px 14px; border: 1px solid var(--tvf-border); border-radius: var(--tvf-input-radius); background: var(--tvf-input-bg); color: var(--tvf-input-text); font-size: var(--tvf-font-size) !important; font-weight: 500 !important; cursor: pointer; }
.tvf-inline-choice input { width: 17px; height: 17px; accent-color: var(--tvf-primary); }

.tvf-field-submit { margin-top: 26px; }
.tvf-submit-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 13px 24px; border: 0; border-radius: var(--tvf-button-radius); background: var(--tvf-button); color: var(--tvf-button-text); font-family: inherit; font-size: var(--tvf-button-size); font-weight: 700; line-height: 1; cursor: pointer; box-shadow: 0 10px 24px color-mix(in srgb, var(--tvf-button) 24%, transparent); transition: background .2s ease, transform .2s ease, box-shadow .2s ease; }
.tvf-submit-btn:hover { background: var(--tvf-button-hover); transform: translateY(-1px); box-shadow: 0 14px 30px color-mix(in srgb, var(--tvf-button) 30%, transparent); }
.tvf-submit-btn:disabled { opacity: .65; cursor: wait; transform: none; }
.tvf-arrow { font-size: 20px; line-height: 0; }

.tvf-loading { grid-column: 1 / -1; margin: 0; padding: 16px; border: 1px dashed var(--tvf-border); border-radius: var(--tvf-input-radius); color: #667085; text-align: center; }
.tvf-response { display: none; margin-top: 18px; padding: 13px 15px; border-radius: var(--tvf-input-radius); font-size: var(--tvf-font-size); font-weight: 500; line-height: 1.5; }
.tvf-response.tvf-success { display: block; background: var(--tvf-success-bg); color: var(--tvf-success-text); }
.tvf-response.tvf-error { display: block; background: var(--tvf-error-bg); color: var(--tvf-error-text); }
.tvf-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
.tvf-form-wrap [hidden] { display: none !important; }

@media (max-width: 680px) {
	.tvf-form { padding: max(22px, calc(var(--tvf-padding) * .7)); }
	.tvf-fields-grid { grid-template-columns: 1fr; }
	.tvf-field, .tvf-grid-full { grid-column: 1; }
	.tvf-form-header { margin-bottom: 24px; }
	.tvf-phone-control { grid-template-columns: minmax(135px, 46%) 1fr; }
}
