/* Preloader moderno */
.site-preloader {
    position: fixed;
    inset: 0;
    z-index: 9999999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(165deg, #f8fafc 0%, #ecfeff 45%, #f0fdfa 100%);
    overflow: hidden;
    transition: opacity 0.55s ease, visibility 0.55s ease;
}

.site-preloader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.site-preloader__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.5rem;
}

.site-preloader__logo-wrap {
    position: relative;
    width: clamp(160px, 28vw, 220px);
    height: clamp(160px, 28vw, 220px);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.35rem;
}

.site-preloader__ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 3px solid rgba(13, 148, 136, 0.12);
    border-top-color: #0d9488;
    animation: preloader-spin 1s linear infinite;
}

.site-preloader__ring::after {
    content: "";
    position: absolute;
    inset: 10px;
    border-radius: 50%;
    border: 2px solid rgba(13, 148, 136, 0.08);
    border-bottom-color: rgba(13, 148, 136, 0.45);
    animation: preloader-spin 1.4s linear infinite reverse;
}

.site-preloader__logo {
    position: relative;
    z-index: 1;
    max-width: clamp(120px, 20vw, 168px);
    height: auto;
    background: #fff;
    border-radius: 12px;
    padding: 10px 14px;
    box-shadow: 0 12px 40px rgba(15, 23, 42, 0.12);
    animation: preloader-logo-pulse 1.6s ease-in-out infinite;
}

.site-preloader__tagline {
    margin: 0 0 1.25rem;
    font-family: "Dancing Script", cursive;
    font-size: clamp(1.35rem, 2.8vw, 1.75rem);
    font-weight: 600;
    color: #0d9488;
    letter-spacing: 0.01em;
    animation: preloader-fade 1.6s ease-in-out infinite;
}

.site-preloader__bar {
    width: min(220px, 60vw);
    height: 4px;
    border-radius: 999px;
    background: rgba(13, 148, 136, 0.12);
    overflow: hidden;
}

.site-preloader__bar span {
    display: block;
    height: 100%;
    width: 35%;
    border-radius: inherit;
    background: linear-gradient(90deg, #0d9488, #14b8a6);
    animation: preloader-bar 1.2s ease-in-out infinite;
}

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

@keyframes preloader-logo-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.03); }
}

@keyframes preloader-fade {
    0%, 100% { opacity: 0.75; }
    50% { opacity: 1; }
}

@keyframes preloader-bar {
    0% { transform: translateX(-120%); }
    100% { transform: translateX(320%); }
}

/* Sobrescrever estilos antigos do tema */
#preloader.site-preloader {
    background: linear-gradient(165deg, #f8fafc 0%, #ecfeff 45%, #f0fdfa 100%);
}

#preloader.site-preloader .loader {
    display: none;
}

@media (prefers-reduced-motion: reduce) {
    .site-preloader__ring,
    .site-preloader__ring::after,
    .site-preloader__logo,
    .site-preloader__tagline,
    .site-preloader__bar span {
        animation: none;
    }

    .site-preloader__bar span {
        width: 100%;
    }
}
