.vsw-form {
	max-width: 32rem;
}
.vsw-form label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.25em;
}
.vsw-form input[type="text"],
.vsw-form input[type="email"],
.vsw-form select {
	width: 100%;
	box-sizing: border-box;
	padding: 0.6em;
	font-size: 1rem;
}
.vsw-form .vsw-row {
	display: flex;
	gap: 0.75em;
}
.vsw-form .vsw-row > span {
	flex: 1;
}
.vsw-form .vsw-check label {
	font-weight: 400;
	display: flex;
	gap: 0.5em;
	align-items: flex-start;
}
.vsw-form .vsw-check input {
	margin-top: 0.3em;
}
.vsw-form button {
	padding: 0.7em 1.4em;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
}
.vsw-error {
	padding: 0.75em 1em;
	border-left: 4px solid #b32d2e;
	background: rgba(179, 45, 46, 0.08);
}
.vsw-success {
	padding: 0.75em 1em;
	border-left: 4px solid #1a7f37;
	background: rgba(26, 127, 55, 0.08);
}
.vsw-legal {
	font-size: 0.8em;
	opacity: 0.8;
	margin-top: 2em;
}
.vsw-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.vsw-winners {
	width: 100%;
	border-collapse: collapse;
}
.vsw-winners th,
.vsw-winners td {
	text-align: left;
	padding: 0.5em;
	border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}
