홈
성공사례
디지털성범죄 · 사이버
게임 통매음·모욕 불송치
통매음 · 모욕 · 전부 불송치
스타크래프트 게임 욕설 통매음 모욕죄합의 없이 두 혐의 모두 불송치로 끝낸 사례
게임 중 오간 말 한마디가 두 죄명으로 돌아왔습니다. 한쪽은 표현의 목적을, 다른 쪽은 상대를 알아볼 수 있었는지를 따져야 하는 사안이라 각각 다른 지점에서 다퉜고, 조사 현장까지 동행해 마무리한 기록입니다.
카테고리 디지털성범죄 · 사이버
결과 통매음·모욕 전부 불송치
특이점 합의 없이 종결
작성일 2026. 8.
의뢰인
게임 중 처음 만난 상대와 말다툼을 벌이다 두 죄명으로 고소당한 분
사건 발단
감정이 격해지는 과정에서 상대와 그 가족을 향한 수위 높은 욕설이 오갔고 일부 표현에 성적인 내용이 포함됨
불리한 사정
상대가 게임 도중 자신의 신상을 밝힌 정황이 있었고 문제된 표현도 한 차례가 아니라 반복된 상태
대응 전략
표현의 목적과 상대를 알아볼 수 있었는지를 각각 나눠 검토하고, 경찰조사에 동행해 진술이 맥락과 어긋나지 않도록 관리
결과
두 혐의 모두 불송치 — 상대와 합의하지 않고 종결
게임을 하다 보면 경쟁이 달아오르며 감정이 앞서고, 순간적으로 거친 말이 오가는 일이 있습니다. 문제는 그 말이 게임 안에서 끝나지 않고 고소로 이어지는 경우입니다.
오늘 전할 사건도 그랬습니다. 게임 중 벌어진 말다툼에서 성적인 표현이 섞인 욕설이 나왔고, 통신매체이용음란과 모욕 두 죄명으로 함께 고소된 사안이었습니다.
의뢰인은 다른 곳에서 합의를 생각해 보라는 이야기를 들으신 상태였습니다. 그러나 뉴로이어 법률사무소가 전체 채팅과 당시 상황을 다시 살펴본 결과 두 혐의 모두 다퉈볼 여지가 있다고 판단했고, 합의하지 않고 대응해 전부 불송치 결정을 받아냈습니다.
01사건 개요 — 한 판의 말다툼이 두 죄명으로
의뢰인은 게임을 하던 중 처음 만난 상대와 언쟁을 벌이게 됐습니다. 감정이 치솟는 과정에서 상대와 그 가족을 겨냥한 거친 말이 나왔고, 일부 표현에는 성적인 내용도 섞여 있었습니다. 결국 두 죄명으로 경찰조사를 받게 되셨습니다.
기록을 처음 받아 보고 저희도 가볍게 볼 사건은 아니라고 생각했습니다. 상대가 게임 도중 자신의 신상을 밝힌 정황이 있었고, 문제된 표현도 한 번에 그치지 않고 반복돼 있었습니다. 욕설이었을 뿐이라는 말만 되풀이해서는 두 혐의를 함께 막아 내기 어려운 상황이었습니다.
그래서 가장 먼저 한 일은 문제된 단어만 떼어 보는 것이 아니었습니다. 그 표현들이 언제 어떤 대화 끝에 나왔는지, 두 사람이 왜 다투기 시작했는지 전체 흐름을 다시 맞춰 봤습니다. 거기까지 살피고 나니 방향이 잡혔습니다. 두 죄명은 서로 전혀 다른 자리에서 다퉈야 한다는 것이었습니다.
한 문장, 두 개의 다툼
같은 말이 두 죄명으로 걸려 오면 하나의 논리로 함께 막으려 하기 쉽습니다. 그런데 각 죄명이 요구하는 것은 다릅니다. 한쪽은 그 말을 왜 했는지를 보고, 다른 쪽은 그 말이 누구를 향한 것인지 알아볼 수 있었는지를 봅니다. 방어도 그만큼 갈라서 세워야 합니다.
표현의 목적
성적인 단어가 있었다는 사정만으로 죄명이 성립하는가.
대화의 맥락
그 말이 어떤 흐름 끝에 나왔는지를 어떻게 보일 것인가.
신상 공개와 특정성
상대가 자신의 정보를 밝혔다는 사실만으로 알아볼 수 있었다고 볼 것인가.
참여자들의 인식
함께 있던 사람들이 현실의 누구인지 알 수 있었는지 어떻게 따질 것인가.
조사에서의 진술
표현 하나씩 확인받는 자리에서 맥락이 흐트러지지 않게 하려면 무엇을 준비할 것인가.
합의 여부의 판단
인정하고 합의할 사안인지 다퉈 볼 사안인지 어디서 가를 것인가.
02문제 해결 — 두 죄명을 갈라 각각 세웠습니다
먼저 성범죄 쪽에서 눈여겨본 것은 야한 낱말이 섞였느냐가 아니었습니다. 그 말을 왜 꺼내게 됐는지, 오간 대화가 어떤 결이었는지였습니다. 이 죄명은 말이 거칠거나 야하다는 이유만으로 세워지지 않고, 조문이 요구하는 속내까지 함께 따지기 때문입니다.
말다툼의 경위 복원
게임이 진행되는 동안 언쟁이 어떻게 시작됐고 문제된 표현들이 어떤 감정과 흐름에서 나왔는지를 채팅 전체와 유사 사건의 판단을 토대로 구체적으로 정리했습니다.
특정성의 재검토
모욕 쪽에서는 상대가 게임 중 신상을 공개했다는 사실만으로 곧바로 특정성이 인정되는지부터 다시 봤습니다.
인식 가능성의 분해
온라인에서 이름이나 개인 정보를 적었다는 사실과, 당시 함께 게임하던 사람들이 그 정보로 현실의 특정인을 실제로 알아볼 수 있었는지는 별개라고 봤습니다. 참여자들의 관계와 신상이 공개된 방식, 다른 이용자들이 상대를 알아볼 수 있었는지를 하나씩 짚었습니다.
조사 동행과 진술 관리
가장 긴장한 순간은 서면을 낼 때보다 조사에 들어갔을 때였습니다. 수사관은 문제된 표현을 하나씩 제시하며 어떤 뜻으로 말한 것인지 거듭 확인했습니다. 저희는 표현 하나만 떼어 설명하다 전체 맥락과 어긋나는 진술이 남지 않도록 질문의 취지를 그때그때 확인하며, 게임 중 말다툼에서 나온 표현이라는 사실관계와 실제 의도가 조서에 정확히 반영되도록 함께 대응했습니다.
사실과 요건의 분리
조사가 끝나 갈 무렵에도 야한 말을 뱉었다는 사실과 이 죄명이 갖춰야 할 요소가 한데 뒤엉키지 않도록 다시 갈라 두었습니다. 말이 거칠었다는 대목은 감추지 않았습니다. 다만 그렇다고 조문이 요구하는 속내까지 바로 채워지는 것은 아니라는 점을, 주고받은 대화를 함께 펼쳐 놓고 풀어냈습니다.
이 사건 변호의 무게중심
조사에서는 했던 말을 억지로 부인하는 것보다, 인정할 사실은 인정하되 그 사실이 곧바로 어떤 범죄의 요건까지 채우는지는 정확히 갈라 진술하는 편이 낫습니다. 부인만 하면 신빙성이 흔들리고, 뭉뚱그려 인정하면 요건까지 넘겨주게 됩니다. 그 사이를 지키는 것이 이 사건의 관건이었습니다.
주의해야 할 점
고소를 당하셨다면 대화를 지우거나 일부만 갈무리하지 마시기 바랍니다. 맥락을 보이려면 앞뒤가 함께 남아 있어야 하는데, 문제된 부분만 남으면 오히려 불리해집니다. 또 조사 전에 어떤 말을 인정하고 부인할지만 정해 두는 것으로는 부족합니다. 수사기관이 무엇을 확인하려고 묻는지부터 알고 들어가야 합니다.
03최종 결과 — 전부 불송치, 합의도 없이
저희는 조사 전에 전체 채팅과 관련 판례를 검토해 변호인의견서를 내고 조사에도 직접 동행했으며, 이후 실제 조사에서 드러난 쟁점까지 다시 정리해 추가 의견서를 제출했습니다. 그 결과 경찰은 두 혐의 모두에 대해 불송치 결정을 내렸고, 의뢰인은 상대와 별도의 합의를 하지 않은 채 사건을 마무리하실 수 있었습니다.
처음 마주 앉았을 때 의뢰인은 다른 데서 한쪽은 걸릴 수 있다는 말을 들으신 뒤라 돈을 건네고 끝내야 하나 망설이고 계셨습니다. 저희 역시 첫걸음부터 좋은 그림을 그린 것은 아니었습니다. 다만 오간 말을 처음부터 다시 읽고 두 죄명을 따로 떼어 살피니 붙들 만한 자리가 눈에 들어왔고, 그 판단을 조사실에서도 흔들지 않은 것이 결말을 만들었습니다.
"한 문장이 두 죄명으로 걸려 왔다면 방어도 둘이어야 합니다. 각각이 묻는 것이 다르기 때문입니다."
— 뉴로이어 법률사무소
게임 안에서 야한 욕을 뱉었다고 해서 모든 사안이 같은 자리에 닿지는 않습니다. 무슨 말을 했는가는 물론이고 그 말이 어떤 결에서 튀어나왔는지, 어떤 속내였는지, 상대가 누구인지 가려질 수 있었는지까지 남은 자료를 두루 봐야 합니다. 그러니 이런 일로 고소를 받으셨다면 오간 말을 되도록 통째로 지켜 두시는 편이 좋습니다.
조사 날짜가 잡히셨다면 무엇을 받아들이고 무엇을 물리칠지 정해 두는 데서 그치지 마시기 바랍니다. 저쪽이 어떤 요소를 확인하려고 그 질문을 던지는지, 그리고 그때 품었던 마음을 어떻게 어긋남 없이 풀어낼지를 먼저 다듬어야 합니다. 오간 말과 받으신 서류를 들고 오시면 어느 대목을 붙들어 볼 수 있을지 자료부터 훑어 드리겠습니다.
게임 채팅으로 고소당했을 때 점검 포인트
문제된 부분만이 아니라 대화 전체를 보존했는가
말다툼이 어떻게 시작됐는지 앞부분까지 남아 있는가
상대가 신상을 밝힌 정황과 그 방식을 확인했는가
당시 함께 있던 참여자들의 관계를 정리했는가
같은 표현이 여러 차례였다면 각각의 시점을 구분했는가
조사 전에 질문의 의도를 이해하고 진술 방향을 정했는가
관련 법리 정리
통신매체이용음란의 요건
표현이 저속하거나 성적이라는 사정만으로 성립하지 않습니다. 법이 요구하는 목적까지 함께 판단되므로, 그 말을 왜 하게 됐는지와 전체 대화의 흐름이 검토 대상이 됩니다.
모욕죄의 특정성
그 말이 누구를 향한 것인지 알아볼 수 있어야 합니다. 온라인에서 정보를 적었다는 사실과 함께 있던 사람들이 현실의 특정인을 실제로 인식할 수 있었는지는 나눠서 봐야 합니다.
사실 인정과 요건 충족의 구분
어떤 말을 했다는 사실을 인정하는 것과 그 말이 범죄의 요건까지 채운다고 받아들이는 것은 다릅니다. 조사에서 이 둘이 뒤섞이면 불리한 진술로 남을 수 있습니다.
불송치
수사기관이 사건을 검찰로 넘기지 않기로 하는 결정입니다. 재판으로 이어지기 전 단계에서 정리된다는 점에서 부담의 차이가 큽니다.
이 사건을 담당한 변호인
서면 준비와 조사 현장 대응이 함께 필요했습니다. 이 사건은 두 변호사가 나눠 수행했습니다.
CEO Lawyer
김수열 대표변호사
#디지털성범죄#명예훼손·모욕#사이버범죄
서울대학교 심리학과를 거쳐 서울대학교 법학전문대학원을 졸업했고, 법무법인 율촌을 거쳐 뉴로이어 법률사무소를 이끌고 있는 대한변호사협회 인증 형사전문변호사입니다. 온라인에서 오간 말이 문제되는 사건을 피의자 방어와 고소대리 양쪽에서 수행해 왔습니다.
서울대 총학생회장 명예훼손 사건 대법원 파기환송 승소
방송 출연자·인플루언서 악성댓글 집단 고소 성공 수행
언론사 가짜뉴스 명예훼손·업무방해 고소대리
프로필 자세히 보기 →
Partner Lawyer
이도연 파트너변호사
#(디지털)성범죄#명예훼손·모욕#외국인 사건
대한변호사협회 인증 형사전문변호사로, 충북대학교 법학전문대학원을 졸업하고 연세대학교 국제학부를 거쳤습니다. 형사 전문 로펌에서 다양한 사건을 수행해 왔으며, 통신매체이용음란 사건을 피의자 변호와 고소 대리 양쪽에서 다루고 있습니다.
공무원 통신매체이용음란죄 징계 행정처분취소청구 승소
온라인 그루밍 사건 고소 대리 및 피의자 변호
SBS 시사교양 프로그램 법률 자문 수행
프로필 자세히 보기 →
FAQ게임 통매음·모욕, 자주 묻는 질문
게임하다 성적인 욕을 하면 곧바로 통매음이 되나요?
그렇지는 않습니다. 표현이 저속하거나 성적이라는 사정만으로 성립하는 죄명이 아니고, 법이 요구하는 목적까지 함께 판단됩니다. 그래서 그 말이 어떤 흐름 끝에 왜 나왔는지가 검토 대상이 됩니다.
상대가 게임에서 신상을 밝혔으면 모욕죄가 성립하나요?
밝혔다는 사실만으로 곧바로 인정되지는 않습니다. 온라인에 정보를 적은 것과 함께 있던 사람들이 현실의 특정인을 실제로 알아볼 수 있었는지는 나눠서 봐야 합니다. 이 사건에서도 그 지점을 하나씩 짚었습니다.
합의를 하지 않고도 끝낼 수 있나요?
사안에 따라 가능합니다. 이 사건에서도 다른 곳에서 합의를 권유받은 상태였지만, 기록을 다시 검토해 다툴 지점을 찾아 합의 없이 불송치로 마무리했습니다. 다만 기록에 따라 결론이 달라지므로 먼저 검토가 필요합니다.
채팅은 문제된 부분만 캡처하면 되나요?
권하지 않습니다. 맥락을 보이려면 앞뒤가 함께 남아 있어야 합니다. 문제된 대목만 남으면 그 표현이 어떤 흐름에서 나왔는지 설명하기 어려워져 오히려 불리해질 수 있습니다.
경찰조사에 변호사가 함께 가야 하나요?
진술이 조서에 어떻게 남느냐가 결과를 가르는 사건이라면 도움이 됩니다. 표현을 하나씩 확인받는 자리에서는 맥락과 어긋나는 진술이 남기 쉬운데, 질문의 취지를 그때그때 짚어 가며 대응할 수 있기 때문입니다.
했던 말은 부인하는 편이 유리한가요?
억지로 부인하면 신빙성이 흔들립니다. 인정할 사실은 인정하되, 그 사실이 곧바로 범죄의 요건까지 채우는지는 정확히 갈라 진술하는 편이 낫습니다. 이 사건에서도 그 구분을 조사 말미까지 유지했습니다.
함께 보면 좋은 글
통매음 합의금 요구, 내용증명 한 통으로 철회시킨 방어 사례
강제추행 누명, 억울함을 자료로 바꿔 혐의없음으로 종결한 사례
네이버TV 악플 고소, 가해자 6명을 특정해 처분까지 받아낸 사례
합의부터 고민하시기 전에 기록을 보셔야 합니다
게임 채팅으로 고소를 당하셨다면 대화 전체와 고소 내용을 준비해 문의해 주세요.어떤 부분을 다퉈볼 수 있는지 기록부터 살펴 드립니다.
카카오톡 상담
070-8098-0421
홈페이지 상담 신청
모든 상담 내용은 비밀이 보장됩니다
관련 법령: 성폭력범죄의 처벌 등에 관한 특례법상 통신매체를 이용한 음란행위, 형법상 모욕 규정 (국가법령정보센터, 작성일 기준)
뉴로이어 법률사무소 · 서울 서초구 강남대로 525 세영제이타워 11층(06536) · 사업자등록번호 588-14-01388 · [email protected]
본 성공사례는 뉴로이어 법률사무소가 실제 수행한 사건을 바탕으로 작성됐으며, 의뢰인 보호를 위해 일부 사실관계를 조정했습니다. 개별 사건의 결과는 구체적 사정에 따라 달라질 수 있어, 본 글이 유사 사건에서 동일한 결과를 약속하는 것은 아닙니다.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "같은 욕설이었지만 다툴 자리는 달랐습니다, 합의 없이 두 혐의 모두 불송치로 끝낸 성공사례",
"description": "게임 중 말다툼에서 나온 욕설로 통신매체이용음란과 모욕 두 혐의로 고소당한 사건. 표현의 목적과 상대를 알아볼 수 있었는지를 각각 나눠 다투고 경찰조사에 동행해 진술을 관리한 끝에, 합의 없이 두 혐의 모두 불송치 결정을 받아낸 뉴로이어 피의자변호 성공사례입니다.",
"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=22",
"image": "https://www.newlawyer.co.kr/data/file/member/thumb-3698724248_pZntIOW8_6b0dbe4891b0e9b00606a8443eab997e72367689_460x460.png",
"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/428"
},
"about": [
"게임 통매음",
"스타크래프트 통매음",
"게임 욕설 모욕 고소",
"게임 패드립",
"통신매체이용음란 불송치",
"모욕죄 특정성"
]
}
{
"@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/428"
}
]
}
{
"@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": "사안에 따라 가능합니다. 이 사건에서도 다른 곳에서 합의를 권유받은 상태였지만, 기록을 다시 검토해 다툴 지점을 찾아 합의 없이 불송치로 마무리했습니다. 다만 기록에 따라 결론이 달라지므로 먼저 검토가 필요합니다."
}
},
{
"@type": "Question",
"name": "채팅은 문제된 부분만 캡처하면 되나요?",
"acceptedAnswer": {
"@type": "Answer",
"text": "권하지 않습니다. 맥락을 보이려면 앞뒤가 함께 남아 있어야 합니다. 문제된 대목만 남으면 그 표현이 어떤 흐름에서 나왔는지 설명하기 어려워져 오히려 불리해질 수 있습니다."
}
},
{
"@type": "Question",
"name": "경찰조사에 변호사가 함께 가야 하나요?",
"acceptedAnswer": {
"@type": "Answer",
"text": "진술이 조서에 어떻게 남느냐가 결과를 가르는 사건이라면 도움이 됩니다. 표현을 하나씩 확인받는 자리에서는 맥락과 어긋나는 진술이 남기 쉬운데, 질문의 취지를 그때그때 짚어 가며 대응할 수 있기 때문입니다."
}
},
{
"@type": "Question",
"name": "했던 말은 부인하는 편이 유리한가요?",
"acceptedAnswer": {
"@type": "Answer",
"text": "억지로 부인하면 신빙성이 흔들립니다. 인정할 사실은 인정하되, 그 사실이 곧바로 범죄의 요건까지 채우는지는 정확히 갈라 진술하는 편이 낫습니다. 이 사건에서도 그 구분을 조사 말미까지 유지했습니다."
}
}
]
}
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "게임 채팅 통매음·모욕 방어 절차",
"description": "게임 중 오간 말로 두 죄명으로 고소됐을 때 각각을 나눠 다투는 순서입니다.",
"step": [
{
"@type": "HowToStep",
"name": "말다툼 경위 복원",
"text": "언쟁이 어떻게 시작됐고 표현이 어떤 흐름에서 나왔는지 채팅 전체로 정리합니다."
},
{
"@type": "HowToStep",
"name": "특정성의 재검토",
"text": "신상 공개 사실만으로 특정성이 인정되는지부터 다시 살핍니다."
},
{
"@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;
}
}