/* ==============================================
   ShopVibe Preloader
   ============================================== */

#shopvibe-preloader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 999999;
display: flex;
align-items: center;
justify-content: center;
background-color: var(--preloader-bg, #ffffff);
transition: opacity 0.5s ease, visibility 0.5s ease;
opacity: 1;
visibility: visible;
}

/* When page loaded - JS adds this class */
#shopvibe-preloader.preloader-hide {
opacity: 0;
visibility: hidden;
}

/* ---- Style 1: Spinner ---- */
#shopvibe-preloader.preloader-style-spinner .preloader-inner {
width: 50px;
height: 50px;
border: 5px solid rgba(0, 0, 0, 0.1);
border-top-color: var(--preloader-color, #e74c3c);
border-radius: 50%;
animation: preloader-spin 0.8s linear infinite;
}

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

/* ---- Style 2: Bouncing Dots ---- */
#shopvibe-preloader.preloader-style-dots .preloader-inner {
display: flex;
gap: 10px;
align-items: center;
}

#shopvibe-preloader.preloader-style-dots .preloader-inner span {
display: inline-block;
width: 14px;
height: 14px;
border-radius: 50%;
background-color: var(--preloader-color, #e74c3c);
animation: preloader-bounce 1.2s infinite ease-in-out;
}

#shopvibe-preloader.preloader-style-dots .preloader-inner span:nth-child(1) { animation-delay: -0.32s; }
#shopvibe-preloader.preloader-style-dots .preloader-inner span:nth-child(2) { animation-delay: -0.16s; }
#shopvibe-preloader.preloader-style-dots .preloader-inner span:nth-child(3) { animation-delay: 0s; }

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

/* ---- Style 3: Progress Bar ---- */
#shopvibe-preloader.preloader-style-bar .preloader-inner {
width: 220px;
height: 4px;
background: rgba(0, 0, 0, 0.1);
border-radius: 4px;
overflow: hidden;
}

#shopvibe-preloader.preloader-style-bar .bar-fill {
height: 100%;
width: 0;
background-color: var(--preloader-color, #e74c3c);
border-radius: 4px;
animation: preloader-bar 1.5s ease-in-out infinite;
}

@keyframes preloader-bar {
0%   { width: 0%;  margin-left: 0; }
50%  { width: 75%; margin-left: 0; }
100% { width: 0%;  margin-left: 100%; }
}
