.hero {
    grid-template-columns: 1.05fr .95fr;
    gap: 60px;
    padding-top: 45px;
}
.hero-visual {
    position: relative;
    min-height: 625px;
    align-self: stretch;
}
.hero-photo {
    width: 100%;
    height: 570px;
    object-fit: cover;
    object-position: 62% center;
    border-radius: 28px;
    display: block;
    box-shadow: 0 24px 60px #123f3228;
}
.hero-visual .result-card {
    position: absolute;
    left: -48px;
    right: 28px;
    bottom: -8px;
    padding: 25px;
    border-radius: 20px;
    box-shadow: 0 24px 60px #123f3255;
}
.hero-visual .result-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    margin: 18px 0 14px;
    font-size: 20px;
}
.hero-visual .result-card h2 { font-size: 23px; }
.hero-visual .result-card p { font-size: 14px; line-height: 1.45; }
.hero-visual .result-button { margin: 12px 0; padding: 13px 17px; }

@media (max-width: 800px) {
    .hero { grid-template-columns: 1fr; gap: 30px; }
    .hero-visual { min-height: auto; }
    .hero-photo { height: 430px; object-position: 62% center; }
    .hero-visual .result-card { position: relative; left: auto; right: auto; bottom: auto; margin: -60px 16px 0; }
}
