/* ==========================================================================
   Page Loader Overlay
   ========================================================================== */

.ac-page-loader {
	position:        fixed;
	inset:           0;
	z-index:         99999;
	display:         flex;
	align-items:     center;
	justify-content: center;
	background:      var(--ac-color-white);
	transition:      opacity 0.5s var(--ac-ease-standard),
	                 visibility 0s 0.5s;
}

.ac-page-loader.is-hidden {
	opacity:    0;
	visibility: hidden;
}

/* Inner wrapper */
.ac-page-loader__inner {
	display:        flex;
	flex-direction: column;
	align-items:    center;
	gap:            var(--ac-space-6);
}

/* Logo — pulse animation */
.ac-page-loader__logo {
	height:     120px;
	width:      auto;
	max-width:  240px;
	object-fit: contain;
	animation:  ac-loader-pulse 1.8s ease-in-out infinite;
}

.ac-page-loader__name {
	font-size:   var(--ac-font-size-2xl);
	font-weight: var(--ac-font-weight-bold);
	color:       var(--ac-color-primary);
	animation:   ac-loader-pulse 1.8s ease-in-out infinite;
}

/* Three-dot loading indicator */
.ac-page-loader__dots {
	display: flex;
	gap:     var(--ac-space-2);
}

.ac-page-loader__dots span {
	display:       block;
	width:         8px;
	height:        8px;
	border-radius: 50%;
	background:    var(--ac-color-primary);
	animation:     ac-loader-dot 1.2s ease-in-out infinite both;
}

.ac-page-loader__dots span:nth-child(1) { animation-delay: 0s;    }
.ac-page-loader__dots span:nth-child(2) { animation-delay: 0.2s;  }
.ac-page-loader__dots span:nth-child(3) { animation-delay: 0.4s;  }

/* Keyframes */
@keyframes ac-loader-pulse {
	0%, 100% { opacity: 1;    transform: scale(1);    }
	50%       { opacity: 0.6; transform: scale(0.96); }
}

@keyframes ac-loader-dot {
	0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; }
	40%           { transform: scale(1);   opacity: 1;   }
}

/* Respect reduced-motion */
@media (prefers-reduced-motion: reduce) {
	.ac-page-loader__logo,
	.ac-page-loader__name,
	.ac-page-loader__dots span {
		animation: none;
	}
}
