/* Goodplan hero: PC copy left, mobile centered copy, portrait identity. */
.main-background.goodplan-hero {
    background: #1B3155 url('/images/goodplan-hero-background.jpg') center / cover no-repeat;
    min-height: 0;
    padding: 85px 0 0;
    overflow: hidden;
}
.goodplan-hero .main-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 660px;
    gap: 32px;
    align-items: center;
    text-align: left;
}
.goodplan-hero-copy { position: relative; z-index: 2; padding: 0 0 90px; margin-top: -40px; }
.goodplan-hero .main-title { margin: 0; }
.hero-trust-badges { display: flex; align-items: center; gap: 28px; margin-top: 28px; }
.hero-trust-badges img { height: 34px; width: auto; display: block; }
@media (max-width: 1000px) {
    .goodplan-hero-copy { margin-top: 0; }
    .hero-trust-badges { justify-content: center; gap: 10px; margin-top: 20px; flex-wrap: nowrap; }
    .hero-trust-badges img { height: 22px; }
}
.goodplan-hero .title-small,
.goodplan-hero .title-large,
.goodplan-hero .title-subtitle {
    color: #fff;
    text-align: left;
    word-break: keep-all;
    letter-spacing: -.025em;
}
.goodplan-hero .title-small { font-size: 24px; margin-bottom: 20px; color: #d7dce3; }
.goodplan-hero .title-large { font-size: clamp(32px, 3vw, 44px); line-height: 1.35; margin-bottom: 16px; }
.goodplan-hero .title-subtitle { font-size: clamp(30px, 2.8vw, 40px); line-height: 1.45; margin-bottom: 0; }
.goodplan-hero .highlight-blue { color: #E2C18E; }
.goodplan-hero-lawyers { position: relative; align-self: stretch; width: 100%; min-width: 0; }
.goodplan-hero-lawyer { position: absolute; inset: auto -30px 0; height: 650px; margin: 0; transition: opacity .8s ease; overflow: hidden; }
.goodplan-hero-lawyer img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 82%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 82%, transparent 100%);
}
.goodplan-hero-lawyer figcaption {
    position: absolute;
    left: 0;
    bottom: 90px;
    padding: 0;
    color: #fff;
    text-align: left;
    background: none;
    border: 0;
    text-shadow: 0 2px 8px rgba(15,25,38,.35);
}
.goodplan-hero-lawyer span { display: block; font-size: 16px; color: #E2C18E; margin-bottom: 8px; }
.goodplan-hero-lawyer strong { font-size: 28px; font-weight: 600; letter-spacing: .03em; }
/* 변호사 경력·이름·화살표 묶음 — 메인 문구 아래, 왼쪽 정렬로 배치 (사진 위에 올리지 않음) */
.hero-lawyer-info-group {
    position: relative;
    margin-top: 120px;
}
.hero-lawyer-info {
    all: unset;
    cursor: pointer;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    color: #fff;
    text-align: left;
    text-shadow: 0 2px 8px rgba(15,25,38,.35);
}
.hero-lawyer-info.is-active {
    display: flex;
}
.hero-lawyer-badge {
    display: block;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: .01em;
    line-height: 1.3;
    word-break: keep-all;
}
.hero-lawyer-name-row {
    display: flex;
    align-items: center;
    gap: 12px;
}
.hero-lawyer-name {
    display: block;
    color: #fff;
    font-size: 30px;
    font-weight: 600;
    letter-spacing: .03em;
    line-height: 1.3;
    word-break: keep-all;
}
.hero-lawyer-more {
    font-size: 20px;
    font-weight: 700;
    color: #fff;
    text-shadow: none;
    flex-shrink: 0;
    transition: transform .2s ease, color .2s ease;
}
.hero-lawyer-info:hover .hero-lawyer-more,
.hero-lawyer-info:focus-visible .hero-lawyer-more {
    color: #E2C18E;
    transform: translateX(4px);
}
.goodplan-hero-lawyer:not(.is-active) { opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility 0s .8s; }
.goodplan-hero-lawyer.is-active { opacity: 1; visibility: visible; }
.goodplan-hero + .bottom-spacer { position: relative; z-index: 3; background: #fff; }
.goodplan-hero + .bottom-spacer .consultation-form { z-index: 4; }
@media (min-width: 1001px) and (max-width: 1250px) {
    .goodplan-hero .main-container { padding: 0 32px; gap: 16px; min-height: 610px; }
    .goodplan-hero-lawyer { height: 610px; inset-inline: -10px; }
    .goodplan-hero-lawyer figcaption { left: -6px; }
    .goodplan-hero .title-large { font-size: 38px; }
    .goodplan-hero .title-subtitle { font-size: 34px; }
    /* 좁은 PC에서는 120px 여백을 그대로 두면 기업회생 페이지(설명 문단이 있어 더 아래로 밀림)에서
       상담폼과 겹침 — 폭이 좁아지는 구간만 줄여서 겹치지 않게 함 */
    .hero-lawyer-info-group { margin-top: 64px; }
}
@media (max-width: 1000px) {
    .main-background.goodplan-hero { padding: 100px 0 0; }
    .goodplan-hero .main-container { padding: 0 24px; gap: 14px; grid-template-columns: 1fr; max-width: 620px; min-height: 0; }
    .goodplan-hero-copy { padding: 0; }
    .goodplan-hero .title-small,
    .goodplan-hero .title-large,
    .goodplan-hero .title-subtitle { text-align: center; }
    .goodplan-hero .title-small { font-size: 20px; margin-bottom: 14px; }
    .goodplan-hero .title-large { font-size: 34px; margin-bottom: 12px; }
    .goodplan-hero .title-subtitle { font-size: 30px; }
    .goodplan-hero-lawyers { height: 500px; margin-top: -24px; }
    .goodplan-hero-lawyer { height: 100%; inset: 0; }
    .goodplan-hero-lawyer figcaption { left: 6px; }
    .goodplan-hero-lawyer img[src*="lee-jonghun"] { transform: translateY(38px); }
    .goodplan-hero-lawyer img[src*="jung-byungmoo"] { transform: translateY(15px); }
}
@media (max-width: 480px) {
    .main-background.goodplan-hero { padding: 90px 0 0; }
    .goodplan-hero .main-container { padding: 0 20px; gap: 8px; }
    .goodplan-hero .title-small { font-size: 16px; margin-bottom: 12px; }
    .goodplan-hero .title-large { font-size: clamp(23px, 6.8vw, 28px); margin-bottom: 10px; }
    .goodplan-hero .title-subtitle { font-size: clamp(22px, 6.2vw, 26px); line-height: 1.4; }
    .goodplan-hero-lawyers { height: 370px; }
    .goodplan-hero-lawyer { inset-inline: -12px; }
    .goodplan-hero-lawyer figcaption { left: 6px; }
    .goodplan-hero-lawyer span { font-size: 12px; margin-bottom: 6px; }
    .goodplan-hero-lawyer strong { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) { .goodplan-hero-lawyer, .goodplan-hero-lawyer:not(.is-active) { transition: none; } }

/* PC: the hero boundary passes through the consultation card midpoint.
   The spacer is 120px tall, so a 60px relative shift aligns centers. */
@media (min-width: 1001px) {
    .goodplan-hero + .bottom-spacer {
        height: 120px;
        align-items: center;
        background: #fff;
    }
    .goodplan-hero + .bottom-spacer .consultation-form {
        bottom: 60px;
    }
}
