/* Custom CSS for AccuLynx Lead Capture Form Plugin */

.acculynx-lead-form-container {
	max-width: 650px;
	margin: 40px auto;
	padding: 40px;
	background: rgba(255, 255, 255, 0.75);
	backdrop-filter: blur(12px) saturate(180%);
	-webkit-backdrop-filter: blur(12px) saturate(180%);
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: 16px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05), 0 1px 3px rgba(0, 0, 0, 0.02);
	font-family: 'Outfit', 'Inter', -apple-system, sans-serif;
	box-sizing: border-box;
}

.acculynx-lead-form-container * {
	box-sizing: border-box;
}

/* Header Styling */
.acculynx-form-header {
	text-align: center;
	margin-bottom: 35px;
}

.acculynx-form-title {
	font-size: 28px;
	font-weight: 700;
	margin: 0 0 10px 0;
	background: linear-gradient(135deg, #1e3a8a, #2563eb);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	letter-spacing: -0.5px;
}

.acculynx-form-description {
	font-size: 15px;
	color: #64748b;
	margin: 0;
	line-height: 1.5;
}

/* Grid Layout */
.acculynx-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-bottom: 20px;
}

.acculynx-form-grid-inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 15px;
}

.acculynx-full-width {
	grid-column: span 2;
}

.acculynx-form-address-title {
	grid-column: span 2;
	font-size: 14px;
	font-weight: 600;
	color: #94a3b8;
	text-transform: uppercase;
	letter-spacing: 1px;
	margin: 15px 0 5px 0;
}

/* Floating Label Inputs */
.acculynx-form-group {
	position: relative;
	margin-bottom: 5px;
}

.acculynx-input-wrapper {
	position: relative;
	width: 100%;
}

.acculynx-input-wrapper input,
.acculynx-input-wrapper textarea {
	width: 100%;
	padding: 16px;
	font-size: 15px;
	color: #1e293b;
	background-color: rgba(248, 250, 252, 0.8);
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	outline: none;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.01);
}

.acculynx-input-wrapper textarea {
	resize: vertical;
	min-height: 100px;
}

/* Focus and active styles */
.acculynx-input-wrapper input:focus,
.acculynx-input-wrapper textarea:focus {
	border-color: #2563eb;
	background-color: #ffffff;
	box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12), inset 0 2px 4px rgba(0, 0, 0, 0.01);
}

/* Float logic */
.acculynx-input-wrapper label {
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 15px;
	color: #94a3b8;
	pointer-events: none;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	transform-origin: 0 0;
	background: transparent;
	padding: 0;
}

.acculynx-input-wrapper textarea ~ label {
	top: 24px;
}

/* Float active rules */
.acculynx-input-wrapper input:focus ~ label,
.acculynx-input-wrapper input:not(:placeholder-shown) ~ label,
.acculynx-input-wrapper textarea:focus ~ label,
.acculynx-input-wrapper textarea:not(:placeholder-shown) ~ label {
	top: 0;
	transform: translateY(-50%) scale(0.85);
	color: #2563eb;
	background: #ffffff;
	padding: 2px 6px;
	border-radius: 4px;
	left: 10px;
}

/* Submit Button & Animations */
.acculynx-submit-wrapper {
	text-align: right;
	margin-top: 25px;
}

.acculynx-form-submit {
	position: relative;
	background: linear-gradient(135deg, #1d4ed8, #2563eb);
	color: #ffffff;
	border: none;
	border-radius: 8px;
	padding: 16px 32px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(37, 99, 235, 0.3);
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	overflow: hidden;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.acculynx-form-submit:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(37, 99, 235, 0.4);
	background: linear-gradient(135deg, #1e40af, #1d4ed8);
}

.acculynx-form-submit:active {
	transform: translateY(0);
	box-shadow: 0 4px 10px rgba(37, 99, 235, 0.3);
}

/* Button Loading State */
.acculynx-form-submit.loading {
	pointer-events: none;
	background: #93c5fd;
	box-shadow: none;
}

.acculynx-form-submit .btn-spinner {
	display: none;
	width: 20px;
	height: 20px;
	border: 3px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	border-top-color: #ffffff;
	animation: acculynx-spin 0.8s linear infinite;
	margin-left: 10px;
}

.acculynx-form-submit.loading .btn-spinner {
	display: inline-block;
}

/* Animations */
@keyframes acculynx-spin {
	to { transform: rotate(360deg); }
}

/* Response Messages */
.acculynx-form-response {
	margin-top: 20px;
	padding: 16px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 500;
	display: none;
	animation: acculynx-fade-in 0.4s ease-out;
}

.acculynx-form-response.success {
	background-color: #f0fdf4;
	color: #15803d;
	border: 1px solid #bbf7d0;
	display: block;
}

.acculynx-form-response.error {
	background-color: #fef2f2;
	color: #b91c1c;
	border: 1px solid #fecaca;
	display: block;
}

@keyframes acculynx-fade-in {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: translateY(0); }
}

/* Responsive Grid */
@media (max-width: 600px) {
	.acculynx-lead-form-container {
		padding: 24px;
		margin: 20px;
	}
	.acculynx-form-grid {
		grid-template-columns: 1fr;
	}
	.acculynx-full-width {
		grid-column: span 1;
	}
	.acculynx-form-address-title {
		grid-column: span 1;
	}
	.acculynx-form-submit {
		width: 100%;
	}
}
