/* WP Subscribe Management - Public Styles */

.wsm-subscribe-form-wrapper {
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
}

.wsm-form-title {
	margin: 0 0 20px 0;
	font-size: 24px;
	font-weight: 600;
	color: #333;
	text-align: center;
}

.wsm-subscribe-form {
	position: relative;
}

.wsm-form-fields {
	display: flex;
	flex-direction: column;
}

.wsm-form-field {
	position: relative;
}

.wsm-input {
	display: block;
	transition: all 0.3s ease;
}

.wsm-input:hover {
	border-color: #999;
}

.wsm-input::placeholder {
	opacity: 0.6;
}

.wsm-submit-button {
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	position: relative;
}

.wsm-button-text {
	display: inline-block;
}

.wsm-button-loader {
	display: none;
}

.wsm-submit-button.loading .wsm-button-text {
	opacity: 0;
}

.wsm-submit-button.loading .wsm-button-loader {
	display: inline-block;
}

/* Spinner animation */
.wsm-spinner {
	animation: wsm-rotate 2s linear infinite;
	width: 20px;
	height: 20px;
}

.wsm-spinner .path {
	stroke: currentColor;
	stroke-linecap: round;
	animation: wsm-dash 1.5s ease-in-out infinite;
}

@keyframes wsm-rotate {
	100% {
		transform: rotate(360deg);
	}
}

@keyframes wsm-dash {
	0% {
		stroke-dasharray: 1, 150;
		stroke-dashoffset: 0;
	}
	50% {
		stroke-dasharray: 90, 150;
		stroke-dashoffset: -35;
	}
	100% {
		stroke-dasharray: 90, 150;
		stroke-dashoffset: -124;
	}
}

/* Email confirmation field - hidden */
.wsm-verify-field {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* Messages */
.wsm-form-messages {
	margin-bottom: 15px;
	padding: 12px 16px;
	border-radius: 4px;
	display: none;
	animation: wsm-slide-down 0.3s ease;
}

.wsm-form-messages.show {
	display: block;
}

.wsm-form-messages.success {
	background-color: #d4edda;
	color: #155724;
	border: 1px solid #c3e6cb;
}

.wsm-form-messages.error {
	background-color: #f8d7da;
	color: #721c24;
	border: 1px solid #f5c6cb;
}

@keyframes wsm-slide-down {
	from {
		opacity: 0;
		transform: translateY(-10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Responsive */
@media (max-width: 768px) {
	.wsm-form-title {
		font-size: 20px;
	}
	
	.wsm-input,
	.wsm-submit-button {
		font-size: 14px !important;
	}
}

/* Focus states */
.wsm-input:focus {
	box-shadow: 0 0 0 3px rgba(0, 115, 170, 0.1);
}

.wsm-submit-button:focus {
	outline: none;
	box-shadow: 0 0 0 3px rgba(0, 115, 170, 0.3);
}

/* Validation states */
.wsm-input.error {
	border-color: #dc3545 !important;
}

.wsm-input.success {
	border-color: #28a745 !important;
}
