/* W-Shop Forms — frontend feedback styles.
   Deliberately generic so the plugin works on any page layout. */

.wsf-msg {
	display: none;
	margin: 14px 0 0;
	padding: 14px 16px;
	border-radius: 8px;
	font-size: 0.95rem;
	line-height: 1.5;
	border: 1px solid transparent;
}

.wsf-msg.is-visible {
	display: block;
}

.wsf-msg--success {
	background: #eef7f0;
	border-color: #bfe0c8;
	color: #1a5c2e;
}

.wsf-msg--error {
	background: #fdf0f0;
	border-color: #f0c6c6;
	color: #8f2323;
}

.wsf-msg--info {
	background: #f5f2ec;
	border-color: #e2d9c8;
	color: #5b5145;
}

.wsf-field-error {
	display: block;
	margin-top: 6px;
	font-size: 0.82rem;
	font-weight: 600;
	color: #b32d2e;
	letter-spacing: 0;
	text-transform: none;
}

.wsf-invalid,
input.wsf-invalid,
textarea.wsf-invalid,
select.wsf-invalid {
	border-color: #b32d2e !important;
	box-shadow: 0 0 0 3px rgba(179, 45, 46, 0.12) !important;
}

/* Honeypot: hidden from humans, present for bots. */
.wsf-hp-wrap {
	position: absolute !important;
	left: -9999px !important;
	top: auto !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

/* Submitting state */
form.wsf-busy {
	position: relative;
}

form.wsf-busy [type="submit"] {
	opacity: 0.65;
	cursor: progress;
}

.wsf-spinner {
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-left: 8px;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	vertical-align: -2px;
	animation: wsf-spin 0.7s linear infinite;
}

@keyframes wsf-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.wsf-spinner {
		animation-duration: 2s;
	}
}

.wsf-legal {
	margin-top: 12px;
	font-size: 0.75rem;
	line-height: 1.5;
	opacity: 0.75;
}
