.lp-hero-grid-image {
    grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr);
    gap: 42px;
}

.lp-hero-visual {
    position: relative;
    display: grid;
    place-items: center;
    align-self: stretch;
    min-width: 0;
    margin: 0;
    isolation: isolate;
}

.lp-hero-visual::before {
    content: "";
    position: absolute;
    z-index: -2;
    width: 88%;
    aspect-ratio: 1;
    border: 1px solid rgba(240, 207, 135, .14);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(34, 132, 192, .28), rgba(14, 56, 94, .08) 58%, transparent 70%);
}

.lp-hero-image-glow {
    position: absolute;
    z-index: -1;
    bottom: 10%;
    width: 80%;
    height: 18%;
    border-radius: 50%;
    background: rgba(32, 147, 218, .34);
    filter: blur(38px);
}

.lp-hero-visual img {
    display: block;
    width: min(100%, 510px);
    height: auto;
    max-height: 585px;
    object-fit: contain;
    filter: drop-shadow(0 30px 35px rgba(0, 0, 0, .32));
    animation: legalinproHeroFloat 5s ease-in-out infinite;
}

@keyframes legalinproHeroFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-9px); }
}

@media (max-width: 980px) {
    .lp-hero-grid-image { grid-template-columns: 1fr; gap: 18px; }
    .lp-hero-visual { min-height: 430px; }
    .lp-hero-visual img { width: min(82vw, 500px); max-height: 520px; }
}

@media (max-width: 640px) {
    .lp-hero-visual { min-height: 330px; margin-top: 4px; }
    .lp-hero-visual img { width: min(92vw, 390px); max-height: 410px; }
}

@media (prefers-reduced-motion: reduce) {
    .lp-hero-visual img { animation: none; }
}
