/* 의원정보: 사진은 기존 구성을 유지하고 오른쪽 정보만 그룹별로 배치한다. */
.person-info { align-items: flex-start; gap: 18px; }
.person-info .pic-area { flex: 0 0 200px; box-sizing: border-box; padding: 14px; border-radius: 9px; }
.person-info .info-area { flex: 1 1 0; min-width: 0; }
.person-profile { color: #263247; font-size: 13px; line-height: 1.55; }
.person-profile__header { margin-bottom: 12px; }
.person-profile__name { margin: 0 0 7px; color: #202c3e; font-size: 28px; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.person-profile__foreign { margin: 0 0 8px; color: #68758a; font-size: 12px; overflow-wrap: anywhere; }
.person-profile__badges { display: flex; flex-wrap: wrap; gap: 7px; }
.person-profile__badge { display: inline-block; max-width: 100%; padding: 3px 9px; border-radius: 5px; background: #edf4ff; color: #2867cd; font-size: 12px; overflow-wrap: anywhere; }
.person-profile__badge--neutral { background: #f1f3f7; color: #59677b; }
.person-profile__groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.person-profile__group { min-width: 0; padding: 12px; border: 1px solid #e8edf4; border-radius: 9px; background: #f5f7fb; }
.person-profile__group h3 { margin: 0 0 10px; color: #263247; font-size: 13px; font-weight: 700; line-height: 1.5; }
.person-profile__fields { display: grid; gap: 8px; margin: 0; }
.person-profile__field { display: grid; grid-template-columns: 62px minmax(0, 1fr); align-items: baseline; gap: 6px; min-width: 0; }
.person-profile__field dt { color: #637087; font-size: 12px; font-weight: 400; }
.person-profile__field dd { min-width: 0; margin: 0; color: #263247; word-break: normal; overflow-wrap: anywhere; }
.person-profile__field a { color: #2867cd; text-decoration: underline; text-underline-offset: 3px; }
.person-profile__field a:hover { color: #174d9f; }
.person-profile__field--wide { grid-column: 1 / -1; }
@media (min-width: 768px) and (max-width: 1199px) {
    .person-profile__groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .person-info { gap: 16px; align-items: stretch; }
    .person-info .pic-area { flex: 0 0 auto; width: 180px; max-width: 100%; align-self: center; }
    .person-info .info-area { width: 100%; flex-basis: auto; }
    .person-profile__name { font-size: 25px; }
    .person-profile__groups { grid-template-columns: 1fr; }
    .person-profile__field { grid-template-columns: 70px minmax(0, 1fr); gap: 10px; }
}
@media (pointer: coarse) {
    .person-profile__field a { display: inline-flex; align-items: center; min-height: 44px; }
}
