/* ===============================
   VEE TELECOM ORBIT - FLEXLOADER BASE STYLES
   =============================== */

/* ============================================
   MAIN LOADER CONTAINER
   ============================================ */

#vtowp-loader {
    position: fixed;
    inset: 0;
    background: rgba(245, 245, 245, 0.15);
    backdrop-filter: blur(2px);
    z-index: 999999999;
    display: flex;
    align-items: center;
    justify-content: center;
    visibility: visible;
    opacity: 1;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* ============================================
   LOADER CIRCLE
   ============================================ */

.vtowp-circle {
    position: relative;
    width: 100px;
    height: 100px;
    z-index: 100;
    transform: translateZ(0);
}

/* Pseudo-elements for loader rings */
.vtowp-circle::before,
.vtowp-circle::after {
    content: '';
    position: absolute;
    box-sizing: border-box;
}

/* Logo image inside loader */
.vtowp-circle img {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 52px !important;
    height: auto !important;
    z-index: 9999 !important;
    background: transparent !important;
    border-radius: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    pointer-events: none !important;
}

/* ============================================
   LOADER STATES
   ============================================ */

/* Hidden state after page load */
body.vtowp-loaded #vtowp-loader {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* Checkout page loader styling */
body.vtowp-checkout-page #vtowp-loader {
    background: rgba(245, 245, 245, 0.15);
    backdrop-filter: blur(1px);
}

/* Checkout page loader visible state */
body.loaded.vtowp-checkout-page #vtowp-loader {
    opacity: 1;
    visibility: visible;
}

/* ============================================
   ANIMATION KEYFRAMES
   ============================================ */

/* Standard spin animation */
@keyframes vtowp-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Reverse spin animation */
@keyframes vtowp-spin-reverse {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(-360deg); }
}

/* Square spin animation */
@keyframes vtowp-spin-square {
    0% { transform: rotate(45deg); }
    100% { transform: rotate(405deg); }
}

/* Square reverse spin animation */
@keyframes vtowp-spin-square-reverse {
    0% { transform: rotate(-45deg); }
    100% { transform: rotate(-405deg); }
}

/* WebKit spin animation (browser compatibility) */
@-webkit-keyframes vtowp-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* WebKit reverse spin animation (browser compatibility) */
@-webkit-keyframes vtowp-spin-reverse {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(-360deg); }
}

/* ============================================
   RESPONSIVE LOADER SIZE
   ============================================ */

/* Desktop default is 100px, 52px logo (already set above) */

/* ============================================
   TABLET SIZE (≤768px)
   ============================================ */

@media (max-width: 768px) {
    /* Circle size for tablet */
    .vtowp-circle {
        width: 80px !important;
        height: 80px !important;
    }
    
    /* Logo size for tablet (~52% of circle width) */
    .vtowp-circle img {
        width: 42px !important;
    }
    
    /* Border thickness for tablet */
    .vtowp-circle::before,
    .vtowp-circle::after {
        border-width: 4px !important;
    }
}

/* ============================================
   MOBILE SIZE (≤480px)
   ============================================ */

@media (max-width: 480px) {
    /* Circle size for mobile */
    .vtowp-circle {
        width: 65px !important;
        height: 65px !important;
    }
    
    /* Logo size for mobile (~52% of circle width) */
    .vtowp-circle img {
        width: 34px !important;
    }
    
    /* Border thickness for mobile */
    .vtowp-circle::before,
    .vtowp-circle::after {
        border-width: 3px !important;
    }
}

/* ============================================
   MOBILE ADJUSTMENTS (LAUNCH SKIP BUTTON)
   ============================================ */

@media (max-width: 768px) {
    .vtowp-launch-skip {
        bottom: 20px;
        right: 20px;
        padding: 8px 16px;
        font-size: 12px;
    }
}