홈
성공사례
사이버범죄 · 개인정보
계정 무단접속 정보통신망 침입
사이버범죄 · 벌금 200만원 구약식
배우자, 수백 회 이어진 계정 무단접속, 접속자를 특정해 벌금형까지 이끈 고소대리
비밀번호를 안다는 이유로 반복된 로그인이었고, 빼낸 정보는 압박 수단으로 쓰이고 있었습니다. IP 하나에 기대지 않고 접속 시각과 상대의 동선, 의뢰인의 일정과 생체인증 기록까지 맞물려 누가 들어갔는지를 밝혀낸 과정입니다.
카테고리 사이버범죄 · 개인정보
결과 벌금 200만원 구약식 처분
죄명 정보통신망 침입
작성일 2026. 8.
의뢰인
별거 중인 배우자에게 계정을 반복적으로 침입당한 피해자
사건 발단
본인이 접속하지 않은 시간대에 결제 관련 계정과 통신사 계정의 로그인 기록이 계속 발견됐고, 확인된 횟수만 수백 회
2차 피해
계정에서 확인한 카드 사용내역이 제3자에게 전달되고, 재산 포기를 요구하는 메시지와 SNS 게시물에까지 사용됨
대응 전략
반복 등장 IP를 찾아 상대의 사업장과 연결하고, 접속 시각과 상대의 위치를 맞추는 한편 의뢰인의 접속 가능성은 하나씩 배제
결과
정보통신망 침입 혐의 인정 — 벌금 200만원 구약식 처분
연인이나 부부 사이에서 흔히 생기는 착각이 있습니다. 비밀번호를 아니까 들어가도 괜찮으리라는 생각입니다. 그러나 상대의 동의 없이 계정에 로그인하는 순간, 이는 둘 사이의 다툼이 아니라 형사사건의 영역으로 넘어갑니다.
오늘 소개할 사건은 별거 중이던 배우자가 수백 차례 계정에 들어간 사실을 밝혀내 정보통신망 침입 혐의로 벌금형을 이끌어낸 사안입니다. 무엇보다 그 사람이 직접 접속했다는 점을 어떻게 증명하느냐가 승부처였습니다.
기록에 남아 있던 수백 건의 흔적을 뉴로이어 법률사무소가 어떤 방식으로 하나의 증거로 엮었는지 말씀드리겠습니다.
01사건 개요 — 별거 중에도 멈추지 않은 로그인
의뢰인과 상대방 사이에는 이미 갈등이 이어지고 있었습니다. 그 와중에 본인이 접속하지 않은 시간대에 결제 관련 계정과 통신사 계정의 로그인 기록이 계속 발견됐고, 확인된 횟수만 해도 수백 회에 이르렀습니다.
더 심각한 문제는 계정 안에 있던 정보가 실제로 밖에서 쓰이고 있었다는 점이었습니다. 상대방은 의뢰인의 카드 사용내역 등을 제3자에게 전달했고, 이를 근거로 재산 포기를 요구하는 취지의 메시지를 보내는가 하면 이후에는 SNS에 의뢰인에 관한 내용까지 거듭 올렸습니다.
의뢰인에게 이것은 누군가 계정을 들여다본 정도의 문제가 아니었습니다. 사적인 정보가 계속 빠져나가고 있었고, 그 정보가 두 사람의 갈등 속에서 자신을 압박하는 도구로 쓰이고 있었기 때문입니다. 더는 방치할 수 없다고 판단한 의뢰인은 정보통신망 침입과 사이버범죄 사건을 다수 다뤄 온 저희를 찾아오셨습니다.
비밀번호를 안다는 것과 들어갈 권한이 있다는 것
이 두 가지는 전혀 다른 문제입니다. 과거에 비밀번호를 알게 됐다는 사정이 지금 그 계정에 접속할 정당한 권한까지 만들어 주지는 않습니다. 특히 관계가 틀어진 뒤에도 동의 없이 반복해서 들어갔다면, 예전에 알던 비밀번호를 썼다는 이유만으로 정당한 접근이라 보기 어렵습니다.
접속자의 특정
의심만으로는 부족한 상황에서 실제로 누가 들어갔는지를 어떻게 밝힐 것인가.
IP의 한계
특정 IP가 확인됐다는 사실만으로 접속자를 단정할 수 있는가.
본인 접속 가능성
의뢰인 본인이 접속했을 여지를 어떤 자료로 걷어낼 것인가.
권한의 범위
비밀번호를 알고 있었다는 항변을 어떤 법리로 반박할 것인가.
접속의 목적
호기심이 아니라 정보를 다른 공격에 쓰기 위한 접속이었음을 어떻게 보일 것인가.
지속성과 피해
반복된 기간과 실제 입은 피해의 정도를 어떻게 전달할 것인가.
02문제 해결 — IP 하나가 아니라 흐름 전체를 맞췄습니다
이런 유형은 고소대리를 여러 차례 해 보면 어디부터 봐야 하는지가 비교적 분명합니다. 상대가 했을 것 같다는 의심보다 먼저 손에 넣어야 하는 것은 로그인 시각과 IP가 담긴 접속기록입니다. 저희도 사건을 맡자마자 수백 건의 기록을 펼쳐 반복해서 등장하는 IP를 찾아냈고, 그 IP가 상대방이 운영하던 사업장과 연결되는 정황을 확인했습니다.
접속기록 확보와 IP 추출
수백 건에 달하는 로그인 기록을 다시 펼쳐 시각과 IP를 정리하고, 되풀이해 나타나는 IP를 가려냈습니다.
IP와 장소의 연결
해당 IP가 상대방이 운영하던 사업장과 이어지는 정황을 확인했습니다. 여기서 접속자를 특정할 수 있겠다는 판단이 섰습니다.
시각과 동선의 대조
사업장 IP가 나왔다는 사실만으로 접속자를 단정하기는 어려웠습니다. 그래서 그 IP에서 로그인이 이뤄진 시각과 상대방이 그 장소에 있었던 정황을 맞춰 나갔습니다.
본인 접속 가능성의 배제
반대로 의뢰인이 직접 들어갔을 가능성은 하나씩 지웠습니다. 근무 일정과 개인 일정, 휴대전화의 생체인증 기록 등을 대조하니 문제된 시간대에 의뢰인이 접속했다고 보기 어려운 사정이 드러났습니다.
접근 권한 법리 정리
비밀번호를 알고 있었는데도 침입으로 볼 수 있느냐는 문제가 남았습니다. 대법원과 하급심 판례를 다시 검토해, 과거에 비밀번호를 알게 된 것과 지금 접속할 정당한 권한이 있는 것은 별개라는 점을 짚었습니다. 갈등이 깊어진 상태에서 동의 없이 수백 차례 반복 접속했다면 정당한 접근으로 보기 어렵다는 논지였습니다.
목적과 지속성의 입증
무단으로 확인한 카드내역이 제3자에게 전달되고 압박 메시지와 SNS 게시물에 실제로 쓰인 경과를 카카오톡 메시지와 관련 문서, 게시물까지 묶어 정리했습니다. 호기심으로 한두 번 들여다본 것이 아니라 취득한 정보를 다른 공격에 쓰기 위해 반복 접속한 정황임을 부각했고, 의뢰인이 개인적으로 힘든 시기를 지나는 동안에도 접속과 주변인에 대한 허위 전달이 계속됐다는 점까지 함께 제시했습니다.
이 사건 고소대리의 무게중심
수사기관에 보이려 한 것은 이 IP가 상대의 것이라는 한 가지 사실이 아니었습니다. 접속기록과 IP, 상대의 위치, 의뢰인의 일정, 판례상 접근 권한의 범위, 접속 뒤 정보가 어떻게 쓰였는지까지 하나의 흐름으로 엮는 일이었습니다. 조각 하나로는 의심에 머물지만, 맞물린 흐름은 사실이 됩니다.
주의해야 할 점
접속기록은 시간이 지나면 확인이 어려워질 수 있습니다. 낯선 로그인 흔적을 발견하셨다면 지우거나 그냥 두지 마시고 먼저 보존해 두시기 바랍니다. 상대를 의심하는 것만으로는 부족하고, 로그인 시각과 IP 같은 객관 자료를 서둘러 확보하는 편이 결과를 좌우합니다.
03최종 결과 — 정보통신망 침입, 벌금 200만원 구약식
상대방에게는 정보통신망 침입 혐의가 인정되어 벌금 200만원의 구약식 처분이 내려졌습니다.
이 사건에서 의미 있게 본 것은 처벌이라는 결과만이 아닙니다. 처음 상담에서 의뢰인이 가장 걱정하신 것은 상대가 한 것 같다는 짐작은 있는데 그것을 어떻게 증명하느냐였습니다. 그런데 실제로 기록을 확보해 보니 접속 시각과 IP, 상대의 활동 장소, 의뢰인의 일정이 서로 맞물렸고, 그 정황을 하나씩 이어 붙이며 결국 접속자를 특정할 수 있었습니다.
"의심을 증거로 바꾸는 것은 결정적인 한 장이 아니라, 어긋나지 않는 여러 조각의 배열입니다."
— 뉴로이어 법률사무소
배우자나 연인 사이의 계정 접속 문제에서는 과거에 비밀번호를 알려 줬다는 이유만으로 지금의 접속까지 허용된 것은 아니라는 점을 기억하셔야 합니다. 반대로 피해를 입은 쪽이라면 상대를 의심하는 데서 멈추지 말고 로그인 기록과 IP 같은 객관 자료를 되도록 빨리 확보하시는 것이 중요합니다.
계정에 본인이 알지 못하는 접속기록이 남아 있거나, 계정 안의 정보가 상대의 협박이나 게시물에 쓰이고 있다면 관련 기록을 지우거나 방치하지 마시고 먼저 보존해 두시기 바랍니다. 저희는 계정 무단로그인과 정보통신망 침입을 비롯한 사이버범죄 사건을 집중적으로 다루고 있으니, 확보한 자료를 가지고 연락 주시면 상대를 특정할 수 있는 자료가 무엇인지부터 함께 살펴 드리겠습니다.
계정 무단접속이 의심될 때 점검 포인트
계정의 로그인 기록에서 시각과 IP를 확인하고 화면을 보존했는가
본인이 접속하지 않은 시간대를 일정과 대조해 표시했는가
같은 IP가 반복해서 나타나는지, 어느 장소와 연결되는지 살폈는가
휴대전화 생체인증·기기 사용 기록 등 본인 동선 자료를 모아 두었는가
계정에서 빠져나간 정보가 어디에 쓰였는지(메시지·게시물) 갈무리했는가
비밀번호를 바꾸기 전에 기존 접속기록을 먼저 확보했는가
관련 개념 정리
정보통신망 침입
정당한 접근 권한 없이 또는 허용된 범위를 넘어 정보통신망에 들어가는 행위를 금지합니다. 계정의 주인이 동의하지 않았다면 비밀번호를 알고 있었더라도 문제될 수 있습니다.
접근 권한의 범위
과거에 비밀번호를 알게 된 사정과 현재 접속할 권한이 있는지는 별개로 판단됩니다. 관계가 달라진 뒤에도 동의 없이 반복 접속했다면 정당한 접근으로 보기 어려워집니다.
접속자 특정의 자료
접속 시각과 IP, 그 IP가 연결되는 장소, 상대의 동선, 피해자 본인의 일정과 기기 사용 기록이 서로 맞물릴 때 특정이 가능해집니다. 하나의 자료만으로는 의심에 머물기 쉽습니다.
구약식 처분
공판 없이 서면 심리로 벌금형을 내려 달라고 검사가 청구하는 절차입니다. 이 사건에서는 벌금 200만원의 처분으로 이어졌습니다.
이 사건을 담당한 변호인
기록에서 증거를 만들어 내는 일과 법리로 항변을 막는 일이 함께 필요했습니다. 이 사건은 두 변호사가 나눠 수행했습니다.
CEO Lawyer
김수열 대표변호사
#사이버범죄#개인정보·정통망법#협박·스토킹
서울대학교 심리학과를 거쳐 서울대학교 법학전문대학원을 졸업했고, 법무법인 율촌을 거쳐 뉴로이어 법률사무소를 이끌고 있는 대한변호사협회 인증 형사전문변호사입니다. 정보통신망 침입과 개인정보 침해 사건의 고소대리를 다수 수행해 왔습니다.
언론사 가짜뉴스 명예훼손·업무방해 고소대리
서울대 총학생회장 명예훼손 사건 대법원 파기환송 승소
방송 출연자·인플루언서 악성댓글 집단 고소 성공 수행
프로필 자세히 보기 →
Partner Lawyer
오동현 파트너변호사
#명예훼손·모욕#기업자문#사기·보이스피싱
고려대학교 법학전문대학원을 수석입학·최우등졸업하고 고려대학교 미디어학부를 거쳤으며, 법무법인 율촌을 비롯한 국내 5대 대형로펌 출신입니다. 자료 분석과 법리 구성이 함께 필요한 사건을 폭넓게 수행합니다.
60억 투자사기 집단소송 전부승소
이커머스 기업 상대 21억 청구 전부승소
대규모 보이스피싱·전자금융거래법위반 사건 수행
프로필 자세히 보기 →
FAQ계정 무단로그인, 자주 묻는 질문
비밀번호를 알고 있었어도 무단로그인으로 처벌되나요?
알고 있었다는 사정이 접속할 권한까지 만들어 주지는 않습니다. 과거에 비밀번호를 알게 된 것과 지금 정당하게 들어갈 수 있는지는 별개의 문제이며, 동의 없이 반복 접속했다면 정당한 접근으로 보기 어렵습니다.
별거 중이거나 이혼 절차 중인 배우자의 계정 접속도 문제가 되나요?
부부 사이라도 계정의 주인이 동의하지 않았다면 문제될 수 있습니다. 오히려 갈등이 깊어진 상황에서의 반복 접속은 정당한 접근으로 인정받기 더 어려워집니다. 이 사건도 별거 중에 벌어진 일이었습니다.
상대방이 접속했다는 것을 어떻게 증명하나요?
로그인 시각과 IP를 확보하는 것이 출발점입니다. 다만 IP 하나만으로는 부족해, 그 IP가 연결되는 장소와 상대의 동선을 맞추고 본인이 접속했을 가능성은 일정과 기기 기록으로 걷어내는 작업이 함께 필요합니다.
계정에서 빼낸 정보로 협박을 당하고 있다면요?
접속 자체와 별개로 그 정보가 어떻게 쓰였는지도 함께 정리해 두시기 바랍니다. 이 사건에서도 카드내역이 제3자에게 전달되고 압박 메시지와 게시물에 사용된 경과를 묶어 제출해, 접속의 목적과 지속성을 보이는 근거로 삼았습니다.
비밀번호부터 바꾸면 되지 않나요?
변경은 필요하지만 순서가 중요합니다. 기존 접속기록을 먼저 확보한 뒤에 바꾸시기 바랍니다. 기록은 시간이 지나면 확인이 어려워질 수 있어, 보존 없이 정리해 버리면 나중에 상대를 특정할 자료가 사라집니다.
처벌 수위는 어느 정도인가요?
사안의 횟수와 기간, 취득한 정보의 사용 방식 등에 따라 달라집니다. 이 사건에서는 수백 회의 반복 접속과 정보의 활용 정황이 함께 인정되어 벌금 200만원의 구약식 처분이 내려졌습니다.
함께 보면 좋은 글
허위 근로소득 신고 개인정보보호법 위반, 벌금 300만원 구약식 고소대리 사례
커뮤니티 가짜뉴스 집단고소, 영장 기각 뒤 구약식 처분까지 받아낸 사례
직장 내 뒷담화 명예훼손, 형사 무죄에 민사 전부기각까지 받은 사례
기록이 남아 있을 때 보존하셔야 합니다
낯선 로그인 흔적을 발견하셨다면 접속기록과 관련 자료를 준비해 문의해 주세요.상대를 특정할 수 있는 자료가 무엇인지부터 함께 살펴 드립니다.
카카오톡 상담
070-8098-0421
홈페이지 상담 신청
모든 상담 내용은 비밀이 보장됩니다
관련 법령: 정보통신망 이용촉진 및 정보보호 등에 관한 법률상 정보통신망 침입 금지 규정 (국가법령정보센터, 작성일 기준)
뉴로이어 법률사무소 · 서울 서초구 강남대로 525 세영제이타워 11층(06536) · 사업자등록번호 588-14-01388 · [email protected]
본 성공사례는 뉴로이어 법률사무소가 실제 수행한 사건을 바탕으로 작성됐으며, 의뢰인 보호를 위해 일부 사실관계를 조정했습니다. 개별 사건의 결과는 구체적 사정에 따라 달라질 수 있어, 본 글이 유사 사건에서 동일한 결과를 약속하는 것은 아닙니다.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "별거 중 수백 회 이어진 계정 무단접속, 접속자를 특정해 벌금형까지 이끈 고소대리 성공사례",
"description": "별거 중이던 배우자가 결제·통신사 계정에 수백 회 무단 접속하고 빼낸 정보를 압박에 사용한 사건. 접속 시각과 IP, 상대의 동선, 의뢰인의 일정과 생체인증 기록을 맞물려 접속자를 특정하고 정보통신망 침입 혐의로 벌금 200만원 구약식 처분을 받아낸 뉴로이어 고소대리 성공사례입니다.",
"inLanguage": "ko",
"datePublished": "2026-08-12",
"dateModified": "2026-08-12",
"author": [
{
"@type": "Person",
"name": "김수열",
"jobTitle": "대표변호사",
"url": "https://newlawyer.co.kr/page/21_view?wr_id=1",
"image": "https://newlawyer.co.kr/data/file/member/thumb-238321632_UzWE7X3O_a622b2fa6778b002d58c2ddc7bdddb15cb53f084_460x460.jpg",
"knowsAbout": [
"사이버범죄",
"정보통신망 침입",
"개인정보·정통망법",
"협박·스토킹"
],
"alumniOf": {
"@type": "CollegeOrUniversity",
"name": "서울대학교 법학전문대학원"
},
"worksFor": {
"@type": "LegalService",
"name": "뉴로이어 법률사무소",
"url": "https://www.newlawyer.co.kr"
}
},
{
"@type": "Person",
"name": "오동현",
"jobTitle": "파트너변호사",
"url": "https://www.newlawyer.co.kr/page/21_view?wr_id=10",
"image": "https://www.newlawyer.co.kr/data/file/member/thumb-238321632_WqtGJiPz_afef4e1fb4bb9821d2e66a7897139c20dca081de_460x460.jpg",
"knowsAbout": [
"명예훼손·모욕",
"기업자문",
"사기·보이스피싱",
"민사소송"
],
"alumniOf": {
"@type": "CollegeOrUniversity",
"name": "고려대학교 법학전문대학원"
},
"worksFor": {
"@type": "LegalService",
"name": "뉴로이어 법률사무소",
"url": "https://www.newlawyer.co.kr"
}
}
],
"publisher": {
"@type": "LegalService",
"name": "뉴로이어 법률사무소",
"url": "https://www.newlawyer.co.kr",
"address": {
"@type": "PostalAddress",
"streetAddress": "강남대로 525 세영제이타워 11층",
"addressLocality": "서초구",
"addressRegion": "서울",
"postalCode": "06536",
"addressCountry": "KR"
},
"telephone": "+82-70-8098-0421"
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://www.newlawyer.co.kr/31/407"
},
"about": [
"계정 무단로그인",
"정보통신망 침입",
"배우자 계정 무단접속",
"정보통신망법 위반",
"무단로그인 처벌",
"로그인 기록 IP 증거"
]
}
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "홈",
"item": "https://www.newlawyer.co.kr"
},
{
"@type": "ListItem",
"position": 2,
"name": "성공사례",
"item": "https://www.newlawyer.co.kr/31"
},
{
"@type": "ListItem",
"position": 3,
"name": "사이버범죄 · 개인정보",
"item": "https://www.newlawyer.co.kr/31"
},
{
"@type": "ListItem",
"position": 4,
"name": "계정 무단접속 정보통신망 침입",
"item": "https://www.newlawyer.co.kr/31/407"
}
]
}
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "비밀번호를 알고 있었어도 무단로그인으로 처벌되나요?",
"acceptedAnswer": {
"@type": "Answer",
"text": "알고 있었다는 사정이 접속할 권한까지 만들어 주지는 않습니다. 과거에 비밀번호를 알게 된 것과 지금 정당하게 들어갈 수 있는지는 별개의 문제이며, 동의 없이 반복 접속했다면 정당한 접근으로 보기 어렵습니다."
}
},
{
"@type": "Question",
"name": "별거 중이거나 이혼 절차 중인 배우자의 계정 접속도 문제가 되나요?",
"acceptedAnswer": {
"@type": "Answer",
"text": "부부 사이라도 계정의 주인이 동의하지 않았다면 문제될 수 있습니다. 오히려 갈등이 깊어진 상황에서의 반복 접속은 정당한 접근으로 인정받기 더 어려워집니다. 이 사건도 별거 중에 벌어진 일이었습니다."
}
},
{
"@type": "Question",
"name": "상대방이 접속했다는 것을 어떻게 증명하나요?",
"acceptedAnswer": {
"@type": "Answer",
"text": "로그인 시각과 IP를 확보하는 것이 출발점입니다. 다만 IP 하나만으로는 부족해, 그 IP가 연결되는 장소와 상대의 동선을 맞추고 본인이 접속했을 가능성은 일정과 기기 기록으로 걷어내는 작업이 함께 필요합니다."
}
},
{
"@type": "Question",
"name": "계정에서 빼낸 정보로 협박을 당하고 있다면요?",
"acceptedAnswer": {
"@type": "Answer",
"text": "접속 자체와 별개로 그 정보가 어떻게 쓰였는지도 함께 정리해 두시기 바랍니다. 이 사건에서도 카드내역이 제3자에게 전달되고 압박 메시지와 게시물에 사용된 경과를 묶어 제출해, 접속의 목적과 지속성을 보이는 근거로 삼았습니다."
}
},
{
"@type": "Question",
"name": "비밀번호부터 바꾸면 되지 않나요?",
"acceptedAnswer": {
"@type": "Answer",
"text": "변경은 필요하지만 순서가 중요합니다. 기존 접속기록을 먼저 확보한 뒤에 바꾸시기 바랍니다. 기록은 시간이 지나면 확인이 어려워질 수 있어, 보존 없이 정리해 버리면 나중에 상대를 특정할 자료가 사라집니다."
}
},
{
"@type": "Question",
"name": "처벌 수위는 어느 정도인가요?",
"acceptedAnswer": {
"@type": "Answer",
"text": "사안의 횟수와 기간, 취득한 정보의 사용 방식 등에 따라 달라집니다. 이 사건에서는 수백 회의 반복 접속과 정보의 활용 정황이 함께 인정되어 벌금 200만원의 구약식 처분이 내려졌습니다."
}
}
]
}
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "계정 무단접속 접속자 특정 및 고소 절차",
"description": "계정에 낯선 로그인 기록이 발견됐을 때 접속자를 특정해 처벌까지 이끄는 대응 순서입니다.",
"step": [
{
"@type": "HowToStep",
"name": "접속기록 확보와 IP 추출",
"text": "로그인 시각과 IP를 정리해 반복 등장하는 IP를 가려냅니다."
},
{
"@type": "HowToStep",
"name": "IP와 장소의 연결",
"text": "해당 IP가 상대방의 생활 또는 사업 공간과 이어지는 정황을 확인합니다."
},
{
"@type": "HowToStep",
"name": "시각과 동선 대조",
"text": "로그인 시각과 상대방이 그 장소에 있었던 정황을 맞춰 봅니다."
},
{
"@type": "HowToStep",
"name": "본인 접속 가능성 배제",
"text": "근무·개인 일정과 기기 생체인증 기록을 대조해 본인 접속 가능성을 걷어냅니다."
},
{
"@type": "HowToStep",
"name": "권한 법리와 목적 입증",
"text": "접근 권한의 범위를 판례로 정리하고, 취득 정보가 어떻게 사용됐는지 자료로 제시합니다."
}
]
}
:root {
--nl-navy: #1f4e79;
--nl-navy-2: #2e5a8a;
--nl-navy-3: #0f2e4d;
--nl-navy-soft: #5b7ea1;
--nl-ink: #222222;
--nl-soft: #444444;
--nl-mute: #767676;
--nl-line: #e5e7eb;
--nl-line-soft: #eef0f3;
--nl-bg-soft: #f5f7fa;
--nl-bg-card: #fafbfc;
--nl-accent: #c0392b;
--nl-bg: #ffffff;
}
.nl-wrap {
font-family: "Pretendard", "Pretendard Variable", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;
color: var(--nl-ink);
line-height: 1.85;
font-size: clamp(15px, 1.05vw + 12px, 17px);
background: var(--nl-bg);
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
word-break: keep-all;
overflow-wrap: anywhere;
max-width: 880px;
margin: 0 auto;
padding: clamp(20px, 4vw, 48px) clamp(16px, 3vw, 32px);
position: relative;
font-feature-settings: "ss01", "ss02";
letter-spacing: -0.005em;
}
.nl-wrap * { box-sizing: border-box; }
.nl-wrap a { color: var(--nl-navy); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.nl-wrap a:hover { color: var(--nl-navy-3); }
.nl-crumb {
font-size: 13px;
color: var(--nl-mute);
letter-spacing: 0.01em;
margin-bottom: 24px;
padding-bottom: 14px;
border-bottom: 1px solid var(--nl-line);
}
.nl-crumb ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px 10px; }
.nl-crumb li + li::before { content: "›"; margin-right: 10px; color: var(--nl-navy-soft); }
.nl-crumb a { color: var(--nl-mute); text-decoration: none; }
.nl-crumb a:hover { color: var(--nl-navy); }
.nl-tag {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 12px;
font-weight: 600;
letter-spacing: 0.12em;
color: #ffffff;
background: var(--nl-navy);
padding: 7px 16px;
border-radius: 2px;
}
.nl-tag::before {
content: "";
width: 6px; height: 6px;
border-radius: 50%;
background: #ffffff;
}
.nl-h1 {
font-weight: 800;
font-size: clamp(24px, 3.2vw + 12px, 38px);
line-height: 1.35;
color: var(--nl-navy-3);
margin: 16px 0 14px;
letter-spacing: -0.025em;
}
.nl-h1 .nl-h1-accent { color: var(--nl-navy); }
.nl-sub {
font-size: clamp(14px, 0.6vw + 12px, 16px);
color: var(--nl-soft);
margin: 0 0 28px;
line-height: 1.75;
font-weight: 400;
}
.nl-meta {
display: flex;
flex-wrap: wrap;
gap: 14px;
font-size: 13px;
color: var(--nl-mute);
padding: 12px 0;
border-top: 1px solid var(--nl-line);
border-bottom: 1px solid var(--nl-line);
margin-bottom: 36px;
}
.nl-meta span { display: inline-flex; align-items: center; gap: 6px; }
.nl-meta strong { color: var(--nl-navy); font-weight: 600; }
.nl-author {
display: grid;
grid-template-columns: auto 1fr;
gap: 18px;
align-items: center;
background: var(--nl-bg-soft);
border-left: 4px solid var(--nl-navy);
padding: 22px 24px;
margin: 0 0 36px;
border-radius: 2px;
}
.nl-author-badge {
width: 60px; height: 60px;
border-radius: 50%;
background: var(--nl-navy);
color: #fff;
display: flex; align-items: center; justify-content: center;
font-weight: 800;
font-size: 20px;
letter-spacing: 0.02em;
}
.nl-author-name { font-weight: 700; font-size: 16px; color: var(--nl-navy-3); margin: 0 0 4px; letter-spacing: -0.01em; }
.nl-author-role { font-size: 13px; color: var(--nl-soft); line-height: 1.65; margin: 0; }
.nl-author-role b { color: var(--nl-navy); font-weight: 600; }
.nl-summary {
background: var(--nl-bg-card);
border: 1px solid var(--nl-line);
border-radius: 4px;
padding: 28px 28px 24px;
margin: 0 0 40px;
position: relative;
}
.nl-summary::before {
content: "한눈에 보기";
position: absolute;
top: -12px; left: 24px;
background: var(--nl-navy);
color: #fff;
font-size: 11px;
letter-spacing: 0.16em;
font-weight: 600;
padding: 5px 14px;
border-radius: 2px;
}
.nl-summary dl {
display: grid;
grid-template-columns: 100px 1fr;
gap: 12px 20px;
margin: 4px 0 0;
font-size: 14.5px;
}
.nl-summary dt {
color: var(--nl-mute);
font-weight: 500;
border-right: 1px solid var(--nl-line);
padding-right: 20px;
line-height: 1.7;
}
.nl-summary dd { margin: 0; color: var(--nl-ink); line-height: 1.7; }
.nl-summary dd b { color: var(--nl-navy); font-weight: 700; }
.nl-summary dd .nl-win { color: var(--nl-navy); font-weight: 700; border-bottom: 2px solid var(--nl-navy); padding-bottom: 1px; }
.nl-lead {
background: var(--nl-bg-soft);
border-left: 4px solid var(--nl-navy);
padding: 22px 26px;
margin: 36px 0;
border-radius: 2px;
}
.nl-lead p { margin: 0; font-size: 16px; line-height: 1.85; color: var(--nl-ink); }
.nl-lead p + p { margin-top: 12px; }
.nl-lead strong { color: var(--nl-navy); font-weight: 700; }
.nl-h2 {
font-weight: 800;
font-size: clamp(20px, 1.5vw + 14px, 26px);
color: var(--nl-navy-3);
margin: 64px 0 22px;
padding-bottom: 14px;
border-bottom: 2px solid var(--nl-navy);
display: flex;
align-items: baseline;
gap: 14px;
letter-spacing: -0.025em;
}
.nl-h2 .nl-h2-no {
font-size: 13px;
color: var(--nl-navy-soft);
letter-spacing: 0.2em;
font-weight: 700;
}
.nl-h3 {
font-weight: 700;
font-size: clamp(17px, 0.7vw + 14px, 19px);
color: var(--nl-navy);
margin: 36px 0 14px;
padding-left: 14px;
border-left: 3px solid var(--nl-navy);
letter-spacing: -0.015em;
}
.nl-wrap p { margin: 14px 0; }
.nl-defn {
background: var(--nl-bg-card);
border: 1px solid var(--nl-line);
border-top: 3px solid var(--nl-navy);
padding: 18px 22px;
margin: 24px 0;
border-radius: 2px;
font-size: 15px;
}
.nl-defn dt {
font-size: 12px;
letter-spacing: 0.14em;
color: var(--nl-navy);
font-weight: 700;
margin-bottom: 8px;
}
.nl-defn dd { margin: 0; color: var(--nl-ink); line-height: 1.8; }
.nl-defn dd b { color: var(--nl-navy); font-weight: 700; }
.nl-statute {
background: var(--nl-bg-soft);
border: 1px solid var(--nl-line);
border-left: 4px solid var(--nl-navy);
padding: 22px 26px;
margin: 28px 0;
border-radius: 2px;
position: relative;
}
.nl-statute::before {
content: "법령";
position: absolute;
top: 16px; right: 20px;
font-size: 10px;
letter-spacing: 0.18em;
font-weight: 700;
color: #fff;
background: var(--nl-navy);
padding: 3px 9px;
border-radius: 2px;
}
.nl-statute .nl-statute-h {
font-weight: 800;
font-size: 16px;
color: var(--nl-navy-3);
margin: 0 0 12px;
padding-right: 60px;
letter-spacing: -0.015em;
}
.nl-statute ol { padding-left: 18px; margin: 8px 0 0; }
.nl-statute li { margin-bottom: 6px; line-height: 1.85; }
.nl-statute .nl-cite { display: block; margin-top: 14px; font-size: 12px; color: var(--nl-mute); }
.nl-statute .nl-cite a { color: var(--nl-navy); }
.nl-issues {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 14px;
margin: 28px 0;
}
.nl-issue {
background: #ffffff;
border: 1px solid var(--nl-line);
border-radius: 2px;
padding: 18px 20px;
position: relative;
overflow: hidden;
transition: border-color 0.2s;
}
.nl-issue:hover { border-color: var(--nl-navy); }
.nl-issue::before {
content: "";
position: absolute;
top: 0; left: 0;
width: 4px; height: 100%;
background: var(--nl-navy);
}
.nl-issue h4 {
font-size: 15px;
color: var(--nl-navy-3);
margin: 0 0 8px;
font-weight: 700;
letter-spacing: -0.015em;
}
.nl-issue p {
font-size: 13.5px;
color: var(--nl-soft);
margin: 0;
line-height: 1.7;
}
.nl-steps {
counter-reset: nlstep;
display: grid;
gap: 12px;
margin: 28px 0;
}
.nl-step {
display: grid;
grid-template-columns: 64px 1fr;
gap: 18px;
background: #ffffff;
border: 1px solid var(--nl-line);
border-left: 4px solid var(--nl-navy);
border-radius: 2px;
padding: 18px 22px;
align-items: start;
}
.nl-step::before {
counter-increment: nlstep;
content: "STEP " counter(nlstep);
font-size: 11px;
font-weight: 700;
color: var(--nl-navy);
background: var(--nl-bg-soft);
padding: 6px 10px;
border-radius: 2px;
letter-spacing: 0.08em;
text-align: center;
line-height: 1.4;
align-self: start;
white-space: nowrap;
}
.nl-step h4 {
font-size: 16px;
color: var(--nl-navy-3);
margin: 2px 0 6px;
font-weight: 700;
letter-spacing: -0.015em;
}
.nl-step p {
font-size: 14.5px;
color: var(--nl-soft);
margin: 0;
line-height: 1.75;
}
.nl-table {
width: 100%;
border-collapse: collapse;
margin: 28px 0;
font-size: 14px;
background: #fff;
border: 1px solid var(--nl-line);
border-radius: 2px;
overflow: hidden;
}
.nl-table th, .nl-table td {
padding: 14px 16px;
border-bottom: 1px solid var(--nl-line);
border-right: 1px solid var(--nl-line);
vertical-align: top;
line-height: 1.7;
}
.nl-table th:last-child, .nl-table td:last-child { border-right: none; }
.nl-table tr:last-child td { border-bottom: none; }
.nl-table thead th {
background: var(--nl-navy);
color: #fff;
font-weight: 600;
letter-spacing: 0.02em;
text-align: left;
font-size: 13.5px;
}
.nl-table tbody th {
background: var(--nl-bg-soft);
color: var(--nl-navy-3);
font-weight: 600;
text-align: left;
width: 28%;
}
.nl-table .nl-td-good { color: var(--nl-navy); font-weight: 700; }
.nl-table .nl-td-bad { color: var(--nl-accent); font-weight: 700; }
.nl-checklist {
background: var(--nl-bg-card);
border: 1px solid var(--nl-line);
border-radius: 2px;
padding: 24px 26px;
margin: 28px 0;
}
.nl-checklist h4 {
font-size: 16px;
color: var(--nl-navy-3);
margin: 0 0 14px;
padding-bottom: 12px;
border-bottom: 1px solid var(--nl-line);
font-weight: 700;
letter-spacing: -0.015em;
}
.nl-checklist ul { list-style: none; padding: 0; margin: 0; }
.nl-checklist li {
position: relative;
padding-left: 30px;
margin-bottom: 10px;
font-size: 14.5px;
color: var(--nl-ink);
line-height: 1.75;
}
.nl-checklist li::before {
content: "";
position: absolute;
left: 0; top: 5px;
width: 18px; height: 18px;
border: 2px solid var(--nl-navy);
border-radius: 2px;
background: #fff;
}
.nl-checklist li::after {
content: "";
position: absolute;
left: 4px; top: 8px;
width: 10px; height: 5px;
border-left: 2px solid var(--nl-navy);
border-bottom: 2px solid var(--nl-navy);
transform: rotate(-45deg);
}
.nl-caution {
background: var(--nl-bg-soft);
border-left: 4px solid var(--nl-navy);
padding: 18px 22px;
margin: 28px 0;
border-radius: 2px;
}
.nl-caution h4 {
font-size: 15px;
color: var(--nl-navy-3);
margin: 0 0 8px;
font-weight: 700;
letter-spacing: -0.015em;
}
.nl-caution h4::before { content: "⚠ "; color: var(--nl-navy); }
.nl-caution p { margin: 0; font-size: 14.5px; color: var(--nl-soft); line-height: 1.75; }
.nl-law {
background: var(--nl-bg-card);
border: 1px solid var(--nl-line);
border-radius: 2px;
padding: 24px 26px;
margin: 28px 0;
}
.nl-law h4 {
font-size: 15px;
color: var(--nl-navy-3);
margin: 0 0 12px;
padding-bottom: 12px;
border-bottom: 1px solid var(--nl-line);
font-weight: 700;
letter-spacing: -0.015em;
}
.nl-law dl { margin: 0; font-size: 14px; }
.nl-law dt { color: var(--nl-navy); font-weight: 700; margin-top: 12px; }
.nl-law dt:first-child { margin-top: 0; }
.nl-law dd { margin: 4px 0 0; color: var(--nl-soft); line-height: 1.75; }
.nl-quote {
border-left: 3px solid var(--nl-navy);
padding: 8px 22px;
margin: 28px 0;
color: var(--nl-soft);
font-size: 16px;
line-height: 1.85;
}
.nl-quote p { font-style: normal; }
.nl-quote cite { display: block; font-style: normal; font-size: 13px; color: var(--nl-mute); margin-top: 8px; }
.nl-faq {
margin: 40px 0;
border-top: 2px solid var(--nl-navy);
}
.nl-faq h2 { margin-top: 24px; }
.nl-faq details {
border-bottom: 1px solid var(--nl-line);
padding: 20px 4px;
}
.nl-faq summary {
font-size: 16px;
font-weight: 700;
color: var(--nl-navy-3);
cursor: pointer;
list-style: none;
display: flex;
align-items: flex-start;
gap: 12px;
line-height: 1.55;
padding-right: 30px;
position: relative;
letter-spacing: -0.015em;
}
.nl-faq summary::-webkit-details-marker { display: none; }
.nl-faq summary::before {
content: "Q";
flex-shrink: 0;
width: 26px; height: 26px;
background: var(--nl-navy);
color: #fff;
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
font-size: 13px;
font-weight: 700;
}
.nl-faq summary::after {
content: "+";
position: absolute;
right: 0; top: 0;
font-size: 22px;
color: var(--nl-navy);
font-weight: 300;
transition: transform 0.25s;
line-height: 1;
}
.nl-faq details[open] summary::after { content: "−"; }
.nl-faq .nl-a {
margin-top: 14px;
padding-left: 38px;
font-size: 14.5px;
color: var(--nl-soft);
line-height: 1.85;
}
.nl-faq .nl-a::before {
content: "A. ";
font-weight: 800;
color: var(--nl-navy);
}
.nl-related {
background: var(--nl-bg-soft);
border: 1px solid var(--nl-line);
border-radius: 2px;
padding: 24px 26px;
margin: 32px 0;
}
.nl-related h4 {
font-size: 14px;
color: var(--nl-navy-3);
letter-spacing: 0.04em;
margin: 0 0 14px;
padding-bottom: 12px;
border-bottom: 1px solid var(--nl-line);
font-weight: 700;
}
.nl-related ul { list-style: none; padding: 0; margin: 0; }
.nl-related li {
font-size: 14px;
margin: 8px 0;
padding-left: 14px;
position: relative;
}
.nl-related li::before { content: "›"; position: absolute; left: 0; color: var(--nl-navy); font-weight: 700; }
.nl-related a { color: var(--nl-navy); text-decoration: none; }
.nl-related a:hover { text-decoration: underline; }
.nl-cta {
margin: 48px 0 24px;
background: var(--nl-navy);
color: #fff;
border-radius: 2px;
padding: 38px 32px;
text-align: center;
position: relative;
overflow: hidden;
}
.nl-cta::before {
content: "";
position: absolute;
top: 0; left: 0; right: 0;
height: 3px;
background: linear-gradient(90deg, var(--nl-navy-soft) 0%, #ffffff 100%);
}
.nl-cta-h {
font-size: clamp(20px, 1.5vw + 12px, 26px);
font-weight: 800;
margin: 0 0 8px;
position: relative;
letter-spacing: -0.025em;
}
.nl-cta-sub {
font-size: 14.5px;
color: #c5d1e0;
margin: 0 0 24px;
line-height: 1.7;
position: relative;
}
.nl-cta-buttons {
display: flex;
flex-wrap: wrap;
gap: 10px;
justify-content: center;
position: relative;
}
.nl-cta-buttons a {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 14.5px;
font-weight: 600;
padding: 14px 26px;
border-radius: 2px;
text-decoration: none;
transition: transform 0.2s, box-shadow 0.2s;
letter-spacing: 0.01em;
}
.nl-cta-buttons a:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,0.25); }
.nl-cta-kakao { background: #fee500; color: #181600; }
.nl-cta-tel { background: #ffffff; color: var(--nl-navy-3); }
.nl-cta-web { background: #ffffff; color: var(--nl-navy); border: 1.5px solid var(--nl-navy); font-weight: 700; }
.nl-cta-secret {
display: inline-flex;
align-items: center;
margin-top: 18px;
font-size: 12px;
color: #c5d1e0;
letter-spacing: 0.08em;
position: relative;
}
.nl-footer-cite {
margin-top: 40px;
padding-top: 24px;
border-top: 1px solid var(--nl-line);
font-size: 12px;
color: var(--nl-mute);
line-height: 1.8;
}
.nl-footer-cite h4 {
font-size: 12px;
letter-spacing: 0.08em;
color: var(--nl-navy);
margin: 0 0 10px;
font-weight: 700;
}
.nl-footer-cite ul { padding-left: 18px; margin: 0; }
.nl-footer-cite li { margin: 4px 0; }
.nl-footer-cite a { color: var(--nl-navy); }
.nl-disclaimer {
margin-top: 28px;
font-size: 12px;
color: var(--nl-mute);
line-height: 1.75;
padding: 14px 16px;
background: var(--nl-bg-soft);
border: 1px solid var(--nl-line);
border-radius: 2px;
}
@media (max-width: 640px) {
.nl-wrap { padding: 16px 14px; }
.nl-issues { grid-template-columns: 1fr; }
.nl-summary dl { grid-template-columns: 1fr; gap: 4px 0; }
.nl-summary dt { border-right: none; border-bottom: 1px solid var(--nl-line); padding: 0 0 4px; margin-bottom: 4px; }
.nl-author { grid-template-columns: 1fr; text-align: center; }
.nl-author-badge { margin: 0 auto; }
.nl-table thead { display: none; }
.nl-table tr { display: block; border-bottom: 2px solid var(--nl-navy); padding: 8px 0; }
.nl-table th, .nl-table td { display: block; border-right: none; padding: 8px 14px; }
.nl-table tbody th { width: 100%; }
.nl-step { grid-template-columns: 1fr; gap: 8px; }
.nl-step::before { justify-self: start; }
.nl-cta { padding: 28px 20px; }
.nl-cta-buttons a { width: 100%; justify-content: center; }
}
@media (max-width: 380px) {
.nl-wrap { padding: 14px 12px; font-size: 14.5px; }
.nl-h2 { flex-direction: column; gap: 4px; align-items: flex-start; }
.nl-h2 .nl-h2-no { font-size: 12px; }
.nl-statute, .nl-defn, .nl-checklist, .nl-related, .nl-law { padding: 16px 18px; }
}
/* ==========================================================================
[ADD-ON] 담당 변호인 카드 (nl-team) — 기존 스타일 수정 없이 추가된 블록
사용처: 성공사례 하단, CTA 상단. 1~2인 카드 배치.
========================================================================== */
.nl-team {
margin: 40px 0 36px;
}
.nl-team-h {
font-size: 15px;
font-weight: 700;
color: var(--nl-navy);
letter-spacing: -0.01em;
margin: 0 0 4px;
padding-left: 12px;
border-left: 3px solid var(--nl-navy);
line-height: 1.4;
}
.nl-team-sub {
font-size: 13.5px;
color: var(--nl-mute);
margin: 0 0 18px;
padding-left: 15px;
line-height: 1.7;
}
.nl-team-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
.nl-card {
display: grid;
grid-template-columns: 84px minmax(0, 1fr);
gap: 16px;
background: var(--nl-bg-card);
border: 1px solid var(--nl-line);
border-top: 3px solid var(--nl-navy);
border-radius: 2px;
padding: 20px 18px;
align-items: start;
}
.nl-card-photo {
width: 84px;
height: 84px;
border-radius: 2px;
overflow: hidden;
background: var(--nl-bg-soft);
border: 1px solid var(--nl-line);
}
.nl-card-photo img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.nl-card-role {
display: inline-block;
font-size: 10.5px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--nl-navy-soft);
margin: 0 0 4px;
line-height: 1.3;
}
.nl-card-name {
font-size: 16.5px;
font-weight: 800;
color: var(--nl-ink);
letter-spacing: -0.02em;
margin: 0 0 8px;
line-height: 1.35;
}
.nl-card-name a {
color: var(--nl-ink);
text-decoration: none;
}
.nl-card-name a:hover {
color: var(--nl-navy);
text-decoration: underline;
text-underline-offset: 3px;
}
.nl-card-tags {
display: flex;
flex-wrap: wrap;
gap: 5px;
margin: 0 0 10px;
padding: 0;
list-style: none;
}
.nl-card-tags li {
font-size: 11.5px;
color: var(--nl-navy);
background: rgba(31, 78, 121, 0.07);
border-radius: 2px;
padding: 2px 7px;
line-height: 1.6;
letter-spacing: -0.01em;
}
.nl-card-desc {
font-size: 13.5px;
color: var(--nl-soft);
line-height: 1.75;
margin: 0 0 10px;
letter-spacing: -0.01em;
}
.nl-card-list {
margin: 0;
padding: 0;
list-style: none;
border-top: 1px solid var(--nl-line-soft);
padding-top: 9px;
}
.nl-card-list li {
font-size: 12.5px;
color: var(--nl-mute);
line-height: 1.7;
padding-left: 10px;
position: relative;
letter-spacing: -0.01em;
}
.nl-card-list li::before {
content: "";
position: absolute;
left: 0;
top: 9px;
width: 3px;
height: 3px;
border-radius: 50%;
background: var(--nl-navy-soft);
}
.nl-card-list li b {
color: var(--nl-soft);
font-weight: 700;
}
.nl-card-link {
display: inline-block;
font-size: 12.5px;
color: var(--nl-navy);
margin-top: 10px;
text-decoration: none;
border-bottom: 1px solid var(--nl-line);
padding-bottom: 1px;
}
.nl-card-link:hover {
border-bottom-color: var(--nl-navy);
}
@media (max-width: 760px) {
.nl-team-grid { grid-template-columns: 1fr; gap: 14px; }
}
@media (max-width: 480px) {
.nl-card {
grid-template-columns: 64px minmax(0, 1fr);
gap: 13px;
padding: 17px 15px;
}
.nl-card-photo { width: 64px; height: 64px; }
.nl-card-name { font-size: 15.5px; }
.nl-card-desc { font-size: 13px; }
}
/* [ADD-ON] 1인 카드일 때 전체 폭 사용 */
.nl-team-grid:has(> .nl-card:only-child) {
grid-template-columns: minmax(0, 1fr);
}
.nl-team-grid > .nl-card:only-child {
grid-template-columns: 110px minmax(0, 1fr);
gap: 20px;
padding: 22px 20px;
}
.nl-team-grid > .nl-card:only-child .nl-card-photo {
width: 110px;
height: 110px;
}
@media (max-width: 480px) {
.nl-team-grid > .nl-card:only-child {
grid-template-columns: 64px minmax(0, 1fr);
gap: 13px;
padding: 17px 15px;
}
.nl-team-grid > .nl-card:only-child .nl-card-photo {
width: 64px;
height: 64px;
}
}