.vf-form .vf-fields { display: flex; flex-wrap: wrap; gap: 1rem; }
.vf-form .vf-field { box-sizing: border-box; min-width: 0; }
.vf-form .vf-width-full { flex: 0 0 100%; }
.vf-form .vf-width-half { flex: 0 0 calc(50% - .5rem); }
.vf-form label, .vf-form legend { display: block; }
.vf-form fieldset { border: 0; margin: 0; padding: 0; }
.vf-form .vf-choice { display: flex; align-items: flex-start; gap: .45rem; margin: .35rem 0; }
.vf-form .vf-choice input { margin-top: .2rem; }
.vf-form .vf-help, .vf-form .vf-error { display: block; margin-top: .3rem; }
.vf-form .vf-error, .vf-form .vf-message-error, .vf-form .vf-required { color: #b32d2e; }
.vf-form .vf-message-success { margin-top: 1rem; }
.vf-form .vf-message-error { margin-top: 1rem; }
.vf-form .vf-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.vf-form .vf-has-error input, .vf-form .vf-has-error select, .vf-form .vf-has-error textarea { border-color: #b32d2e; }
.vf-basic-style input[type="text"], .vf-basic-style input[type="email"], .vf-basic-style input[type="tel"], .vf-basic-style input[type="number"], .vf-basic-style input[type="url"], .vf-basic-style input[type="date"], .vf-basic-style select, .vf-basic-style textarea { box-sizing: border-box; width: 100%; padding: .7rem; border: 1px solid #8c8f94; border-radius: 3px; background: #fff; }
.vf-basic-style textarea { min-height: 8rem; resize: vertical; }
.vf-basic-style button[type="submit"] { cursor: pointer; padding: .7rem 1.2rem; }
@media (max-width: 640px) { .vf-form .vf-width-half { flex-basis: 100%; } }
