/**
 * Custom Preloader Public Stylesheet
 */

/* 1. Full Screen Overlay */
#wp-preloader-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	z-index: 999999; /* Ensure it is on top of all content */
	display: flex;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	margin: 0;
	padding: 20px;
	overflow: hidden;
	opacity: 1;
	pointer-events: auto;
	transition: opacity 500ms ease-in-out;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

/* 2. Inner Content Wrapper */
.wp-preloader-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
}

/* 3. Graphic Container */
.wp-preloader-graphic-container {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0 auto;
	position: relative;
}

/* 4. Built-in CSS Spinners */

/* A. Sleek Ring */
.wp-preloader-spinner.ring {
	display: inline-block;
	position: relative;
	width: var(--spinner-width, 80px);
	height: var(--spinner-height, 80px);
}
.wp-preloader-spinner.ring div {
	box-sizing: border-box;
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	border: 6px solid var(--spinner-color, #3498db);
	border-radius: 50%;
	animation: wp-preloader-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
	border-color: var(--spinner-color, #3498db) transparent transparent transparent;
}
.wp-preloader-spinner.ring div:nth-child(1) { animation-delay: -0.45s; }
.wp-preloader-spinner.ring div:nth-child(2) { animation-delay: -0.3s; }
.wp-preloader-spinner.ring div:nth-child(3) { animation-delay: -0.15s; }

@keyframes wp-preloader-ring {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

/* B. Pulsing Circle */
.wp-preloader-spinner.circle {
	display: inline-block;
	width: var(--spinner-width, 80px);
	height: var(--spinner-height, 80px);
	background-color: var(--spinner-color, #3498db);
	border-radius: 50%;
	animation: wp-preloader-circle-pulse 1.2s infinite ease-in-out;
}

@keyframes wp-preloader-circle-pulse {
	0% { transform: scale(0); opacity: 1; }
	100% { transform: scale(1); opacity: 0; }
}

/* C. Bouncing Dots */
.wp-preloader-spinner.dots {
	display: inline-flex;
	justify-content: space-between;
	align-items: center;
	width: var(--spinner-width, 80px);
	height: var(--spinner-height, 80px);
}
.wp-preloader-spinner.dots div {
	width: 24%;
	height: 24%;
	background-color: var(--spinner-color, #3498db);
	border-radius: 50%;
	animation: wp-preloader-dots-bounce 1.4s infinite ease-in-out both;
}
.wp-preloader-spinner.dots div:nth-child(1) { animation-delay: -0.32s; }
.wp-preloader-spinner.dots div:nth-child(2) { animation-delay: -0.16s; }

@keyframes wp-preloader-dots-bounce {
	0%, 80%, 100% { transform: scale(0); }
	40% { transform: scale(1); }
}

/* D. Wave Bar */
.wp-preloader-spinner.wave {
	display: inline-flex;
	justify-content: space-between;
	align-items: center;
	width: var(--spinner-width, 80px);
	height: var(--spinner-height, 80px);
}
.wp-preloader-spinner.wave div {
	background-color: var(--spinner-color, #3498db);
	height: 60%;
	width: 12%;
	border-radius: 4px;
	animation: wp-preloader-wave 1.2s infinite ease-in-out;
}
.wp-preloader-spinner.wave div:nth-child(1) { animation-delay: -1.2s; }
.wp-preloader-spinner.wave div:nth-child(2) { animation-delay: -1.1s; }
.wp-preloader-spinner.wave div:nth-child(3) { animation-delay: -1.0s; }
.wp-preloader-spinner.wave div:nth-child(4) { animation-delay: -0.9s; }
.wp-preloader-spinner.wave div:nth-child(5) { animation-delay: -0.8s; }

@keyframes wp-preloader-wave {
	0%, 40%, 100% { transform: scaleY(0.4); }
	20% { transform: scaleY(1.0); }
}

/* 5. Custom Graphics styling */
.wp-preloader-custom-graphic {
	display: block;
	user-select: none;
}

/* 6. Body styling when preloader is running to prevent scrolling */
body.wp-preloader-active {
	overflow: hidden !important;
}
