.nwforms-form-wrapper {
	max-width: 100%;
	margin-bottom: 1.5em;
}

.nwforms-form-error-summary {
	background: #fbeaea;
	border: 1px solid #d63638;
	color: #7a1c1c;
	padding: 10px 14px;
	border-radius: 4px;
	margin-bottom: 16px;
	font-size: 0.95em;
}

.nwforms-confirmation {
	background: #eafaf0;
	border: 1px solid #46b450;
	color: #1e5631;
	padding: 14px 18px;
	border-radius: 4px;
	max-width: 500px;
}

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

.nwforms-field label {
	display: block;
	font-weight: 600;
	margin-bottom: 6px;
}

.nwforms-required {
	color: #d63638;
}

.nwforms-field-description {
	font-size: 0.85em;
	color: #666;
	margin: 0 0 6px;
}

.nwforms-input,
.nwforms-field select,
.nwforms-field textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 8px 10px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 1em;
}

.nwforms-field select.nwforms-input {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	padding: 12px 36px 12px 10px;
	min-height: 46px;
	line-height: 1.4;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath fill='none' stroke='%23666' stroke-width='2' d='M1 1l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
}

.nwforms-field-error .nwforms-input,
.nwforms-field-error select,
.nwforms-field-error textarea {
	border-color: #d63638;
}

.nwforms-field-error-message {
	display: block;
	color: #d63638;
	font-size: 0.85em;
	margin-top: 4px;
}

/* Small/Medium size caps are percentage-based, which only makes sense once
   there's enough width to differentiate — below this, every field (however
   it's sized) fills the full width rather than looking cramped on a phone. */
@media (min-width: 600px) {
	.nwforms-size-small .nwforms-input { max-width: 25%; }
	.nwforms-size-medium .nwforms-input { max-width: 60%; }
}
.nwforms-size-large .nwforms-input { max-width: 100%; }

.nwforms-name-split {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

@media (min-width: 600px) {
	.nwforms-size-small .nwforms-name-split { max-width: 25%; }
	.nwforms-size-medium .nwforms-name-split { max-width: 60%; }
}
.nwforms-size-large .nwforms-name-split { max-width: 100%; }

.nwforms-name-sub {
	flex: 1 1 160px;
}

/* Size classes constrain the overall Name field width above, not each
   First/Last input individually — otherwise the two inputs shrink and end
   up with a large gap between them instead of sitting close together. */
.nwforms-field .nwforms-name-sub .nwforms-input {
	max-width: 100%;
}

.nwforms-name-sub label {
	font-weight: 400;
	font-size: 0.8em;
	color: #666;
	margin-top: 4px;
}

.nwforms-choice-list {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.nwforms-choice {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 400;
}

.nwforms-choice input {
	width: auto;
}

.nwforms-hp-wrap {
	position: absolute !important;
	left: -9999px !important;
	top: -9999px !important;
	height: 0;
	width: 0;
	overflow: hidden;
}

.cf-turnstile,
.g-recaptcha {
	margin-bottom: 18px;
}

.nwforms-submit-button {
	background: var(--primary, #2271b1);
	color: #fff;
	border: none;
	border-radius: 4px;
	padding: 10px 22px;
	font-size: 1em;
	cursor: pointer;
}

.nwforms-submit-button:hover {
	filter: brightness(0.85);
}
