.union-brand-logo {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.union-brand-logo--minimal {
    max-height: 2.35rem;
}

.union-brand-logo--icon {
    max-height: 3rem;
    max-width: 3rem;
}

.union-brand-logo--login {
    max-height: 3.25rem;
    max-width: min(100%, 17.5rem);
    margin-left: auto;
    margin-right: auto;
}

.brand .brand-logo {
    display: block;
    max-width: calc(100% - 2.5rem);
    padding: 0 0.35rem;
    line-height: 0;
}

.brand .union-brand-logo--minimal {
    max-height: 2rem;
    width: 100%;
}

.panel-login__logo-img {
    display: block;
}

.client-login-card__brand--logo {
    width: auto;
    height: auto;
    background: transparent;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
    margin-bottom: 1.25rem;
}

.client-login-card__brand--logo .union-brand-logo--icon {
    max-height: 4.5rem;
    max-width: 4.5rem;
    margin: 0 auto;
}

/* —— Login logo animation system —— */
@keyframes union-logo-enter {
    0% {
        opacity: 0;
        transform: translateY(42px) scale(0.76);
    }

    55% {
        opacity: 1;
        transform: translateY(-8px) scale(1.05);
    }

    78% {
        transform: translateY(2px) scale(0.98);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes union-logo-float {
    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-9px);
    }
}

@keyframes union-logo-shine {
    0%,
    72% {
        transform: translateX(-130%) skewX(-18deg);
        opacity: 0;
    }

    78% {
        opacity: 1;
    }

    92% {
        transform: translateX(130%) skewX(-18deg);
        opacity: 0;
    }

    100% {
        transform: translateX(130%) skewX(-18deg);
        opacity: 0;
    }
}

@keyframes union-logo-shadow-pulse {
    0%,
    100% {
        opacity: 0.85;
        transform: scaleX(1);
    }

    50% {
        opacity: 0.55;
        transform: scaleX(0.88);
    }
}

.union-brand-logo-3d {
    display: block;
    line-height: 0;
}

.union-brand-logo-3d__tilt {
    display: block;
    transform: rotateX(calc(11deg + var(--tilt-y, 0deg))) rotateY(var(--tilt-x, 0deg));
    transform-origin: 50% 88%;
    transform-style: preserve-3d;
    will-change: transform;
}

.union-brand-logo-3d__float {
    display: block;
    position: relative;
    animation:
        union-logo-enter 1.2s cubic-bezier(0.22, 1.15, 0.36, 1) forwards,
        union-logo-float 5.2s ease-in-out 1.2s infinite;
}

.union-brand-logo-3d__shine {
    position: absolute;
    inset: -4% -2%;
    z-index: 2;
    pointer-events: none;
    overflow: hidden;
    -webkit-mask-image: var(--union-logo-url);
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-image: var(--union-logo-url);
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
}

.union-brand-logo-3d__shine::after {
    content: "";
    position: absolute;
    top: -20%;
    bottom: -20%;
    left: 0;
    width: 45%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255, 255, 255, 0.08) 35%,
        rgba(255, 255, 255, 0.42) 50%,
        rgba(255, 255, 255, 0.08) 65%,
        transparent 100%
    );
    animation: union-logo-shine 5.5s ease-in-out 1.8s infinite;
}

.union-brand-logo-3d__surface {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    filter: drop-shadow(0 20px 36px rgba(0, 0, 0, 0.55));
    transition: filter 0.45s ease;
}

.panel-login__brand-logo {
    position: relative;
}

.panel-login__brand-logo .union-brand-logo-3d {
    perspective: 760px;
    perspective-origin: 50% 58%;
}

.panel-login__brand-logo::after {
    content: "";
    position: absolute;
    left: 8%;
    right: 8%;
    bottom: -0.15rem;
    height: 0.55rem;
    background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.45) 0%, transparent 72%);
    filter: blur(5px);
    pointer-events: none;
    animation: union-logo-shadow-pulse 5.2s ease-in-out 1.2s infinite;
}

.panel-login__brand-logo:hover .union-brand-logo-3d__surface {
    filter: drop-shadow(0 26px 44px rgba(0, 0, 0, 0.62));
}

.panel-login__brand-logo.is-active .union-brand-logo-3d__float {
    animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
    .union-brand-logo-3d__float {
        animation: none;
        opacity: 1;
        transform: none;
    }

    .union-brand-logo-3d__shine::after {
        animation: none;
        display: none;
    }

    .panel-login__brand-logo::after {
        animation: none;
    }

    .union-brand-logo-3d__tilt {
        transform: rotateX(11deg);
    }
}
