.home-logo {
    width: clamp(160px, 18vw, 230px);
    height: auto;
}

.home-acesso-card {
    display: block;
    text-decoration: none;
    border-radius: 18px;
    transition: transform 0.2s ease;
}

.home-acesso-card:hover {
    transform: translateY(-6px);
}

.home-acesso-card .card {
    border-radius: 18px;
    overflow: hidden;
    transition: box-shadow 0.2s ease;
    cursor: pointer;
}

.home-acesso-card:hover .card {
    box-shadow: 0 16px 40px rgba(0,0,0,0.38) !important;
}

.home-acesso-card--empresa {
    background: linear-gradient(180deg, #1565C0 0%, #0D47A1 100%);
}

.home-acesso-card--cliente {
    background: linear-gradient(180deg, #00897B 0%, #00695C 100%);
}

.home-acesso-card--posto {
    background: linear-gradient(180deg, #555 0%, #222 100%);
}

.home-acesso-svg-area {
    display: grid;
    width: 100%;
    line-height: 0;
}

.home-acesso-svg-area > * {
    grid-row: 1;
    grid-column: 1;
}

.home-acesso-svg-area svg {
    width: 100%;
    height: auto;
    display: block;
}

/* Override: .waves-effect img { z-index: -1 } do Materialize */
.home-acesso-svg-area .home-acesso-empresa-logo {
    width: 65%;
    height: auto;
    align-self: center;
    justify-self: center;
    pointer-events: none;
    user-select: none;
    position: relative;
    z-index: 2;
}

.home-acesso-info {
    padding: 10px 16px 20px !important;
    background-color: rgba(0,0,0,0.25) !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.home-acesso-icon {
    font-size: 1.8rem;
    color: #ffffff !important;
    flex-shrink: 0;
}

.home-acesso-label {
    font-size: 1rem;
    color: #ffffff;
    margin: 0;
    letter-spacing: 0.06em;
}

@media (max-width: 600px) {
    body.mainLogin {
    height: auto !important;
    min-height: 100vh;
    justify-content: flex-start !important;
    padding-top: 1.5rem;
    padding-bottom: 2rem;
    overflow-y: auto;
    background: none !important;
    }
    body.mainLogin::before {
    content: '';
    position: fixed;
    inset: 0;
    background: linear-gradient(to top right, rgb(0, 15, 45), rgb(0, 30, 115));
    z-index: 0;
    pointer-events: none;
    }
}

/* === Window blink animations === */
@keyframes ha-win-blink-a {
    0%, 100% { opacity: 1; }
    45% { opacity: 0.2; }
}
@keyframes ha-win-blink-b {
    0%, 100% { opacity: 0.5; }
    60% { opacity: 1; }
}
@keyframes ha-win-blink-c {
    0%, 55% { opacity: 0.75; }
    80% { opacity: 0.12; }
}
.ha-win-a { animation: ha-win-blink-a 3.4s ease-in-out infinite; }
.ha-win-b { animation: ha-win-blink-b 2.8s ease-in-out infinite 0.5s; }
.ha-win-c { animation: ha-win-blink-c 4.2s ease-in-out infinite 1.1s; }

/* === Floating dots === */
@keyframes ha-float-up {
    0%, 100% { transform: translateY(0); opacity: 0.5; }
    50% { transform: translateY(-8px); opacity: 1; }
}
.ha-float-1 { animation: ha-float-up 3s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.ha-float-2 { animation: ha-float-up 4.1s ease-in-out infinite 0.9s; transform-box: fill-box; transform-origin: center; }
.ha-float-3 { animation: ha-float-up 3.6s ease-in-out infinite 1.7s; transform-box: fill-box; transform-origin: center; }

/* === Dashed line flow === */
@keyframes ha-dash-flow {
    to { stroke-dashoffset: -28; }
}
.ha-dash { stroke-dashoffset: 0; animation: ha-dash-flow 1.4s linear infinite; }
.ha-dash-rev { stroke-dashoffset: 0; animation: ha-dash-flow 1.7s linear infinite reverse; }

/* === Map pin bob === */
@keyframes ha-pin-bob {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-7px); }
}
.ha-pin-bob {
    animation: ha-pin-bob 2.8s ease-in-out infinite;
    transform-box: fill-box;
    transform-origin: center bottom;
}