/* WP Booking System - Loading Spinner */

.wpbs-loading-overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	backdrop-filter: blur(2px);
	z-index: 9999;
	justify-content: center;
	align-items: center;
}

.wpbs-loading-overlay.active {
	display: flex;
}

.wpbs-loader-container {
	text-align: center;
	background: white;
	padding: 40px;
	border-radius: 12px;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
	animation: slideInUp 0.3s ease-out;
}

@keyframes slideInUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Spinner rotatif moderne */
.wpbs-spinner {
	width: 50px;
	height: 50px;
	margin: 0 auto 20px;
	position: relative;
}

.wpbs-spinner::before,
.wpbs-spinner::after {
	content: '';
	position: absolute;
	width: 100%;
	height: 100%;
	border: 3px solid transparent;
	border-top-color: #0073aa;
	border-radius: 50%;
	animation: spin 1s linear infinite;
}

.wpbs-spinner::after {
	border-top-color: transparent;
	border-right-color: #00a0d2;
	animation: spin 1.5s linear infinite reverse;
}

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

/* Texte de chargement */
.wpbs-loader-text {
	margin: 0;
	font-size: 14px;
	color: #333;
	font-weight: 500;
	letter-spacing: 0.5px;
	animation: pulse 1.5s ease-in-out infinite;
}

@keyframes pulse {
	0%, 100% {
		opacity: 1;
	}
	50% {
		opacity: 0.7;
	}
}

/* Responsive */
@media (max-width: 600px) {
	.wpbs-loader-container {
		padding: 30px 20px;
		margin: 0 20px;
	}

	.wpbs-loader-text {
		font-size: 13px;
	}

	.wpbs-spinner {
		width: 40px;
		height: 40px;
	}

	.wpbs-spinner::before,
	.wpbs-spinner::after {
		border-width: 2px;
	}
}
