/* ===== 칼럼 페이지 (새 디자인) ===== */
.post-hero { position: relative; color: #fff; background: linear-gradient(120deg, #2f2e2b 0%, #4a4640 45%, #8a8073 100%); padding: 176px 0 64px; }
.post-crumb { font-size: 14px; color: rgba(255,255,255,.72); display: flex; gap: 8px; align-items: center; }
.post-crumb a { color: rgba(255,255,255,.72); }
.post-crumb a:hover { color: #fff; }
.post-hero h1 { font-size: clamp(30px, 3.6vw, 44px); font-weight: 700; line-height: 1.3; letter-spacing: -.03em; margin-top: 16px; max-width: 820px; text-wrap: balance; }
.post-hero .lead { font-size: 17px; line-height: 1.8; color: rgba(255,255,255,.85); margin-top: 20px; max-width: 760px; font-weight: 300; }
.post-byline { margin-top: 28px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.2); font-size: 14px; color: rgba(255,255,255,.72); display: flex; gap: 18px; flex-wrap: wrap; }
.post-byline strong { color: #fff; font-weight: 600; }

.post-layout { display: grid; grid-template-columns: minmax(0, 720px) 260px; justify-content: space-between; gap: 64px; padding-top: 64px; padding-bottom: 96px; }
.post-main { min-width: 0; }

/* 본문 */
.post-body { font-size: 17px; line-height: 1.9; color: #1f2329; word-break: keep-all; overflow-wrap: break-word; }
.post-body > * + * { margin-top: 24px !important; }
.post-body > h2 { margin-top: 64px !important; }
.post-body > h3 { margin-top: 36px !important; }
.post-body > h2 + p, .post-body > h3 + p { margin-top: 12px !important; }
.post-body h2 { font-size: 25px; font-weight: 700; letter-spacing: -.02em; line-height: 1.4; margin-top: 64px; padding-top: 22px; border-top: 2px solid #111827; scroll-margin-top: 24px; }
.post-body h3 { font-size: 19px; font-weight: 700; letter-spacing: -.01em; line-height: 1.5; margin-top: 36px; }
.post-body h2 + p, .post-body h3 + p { margin-top: 12px; }
.post-body p { margin-bottom: 0; }
.post-body strong { font-weight: 600; color: #111827; }
.post-body a { color: #2f2e2b; text-decoration: underline; text-underline-offset: 3px; }
.post-body ul, .post-body ol { padding-left: 1.2em; }
.post-body li { margin: 6px 0; }
.post-body li::marker { color: #8a8f98; }

/* 핵심 요약 */
.post-body blockquote { margin: 0; background: #f5f5f3; padding: 24px 28px; font-size: 16px; line-height: 1.85; color: #1f2329; }
.post-body blockquote strong:first-child { display: block; font-size: 13px; letter-spacing: .02em; color: #6b7280; font-weight: 600; margin-bottom: 4px; }
.post-body blockquote strong:first-child + br { display: none; }

/* 표 */
.post-body .table-scroll { overflow-x: auto; }
.req-table { width: 100%; border-collapse: collapse; font-size: 15.5px; line-height: 1.7; border-top: 2px solid #111827; }
.req-table th { text-align: left; font-weight: 600; font-size: 14px; color: #6b7280; padding: 12px 14px; border-bottom: 1px solid #d9d9d6; background: #fafaf9; }
.req-table td { padding: 14px; border-bottom: 1px solid #e5e5e3; vertical-align: top; }
.req-table--kv td:first-child { font-weight: 600; color: #111827; width: 30%; }
.req-table col.c1 { width: 30%; }

/* 본문 안 안내 줄 */
.soft-cta { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; font-size: 15px; color: #6b7280; padding: 14px 0; border-top: 1px solid #e5e5e3; border-bottom: 1px solid #e5e5e3; }
.post-body .soft-cta a { color: #2f2e2b; font-weight: 600; text-decoration: none; }

/* 버튼 공통 */
.post-main .btn { display: inline-flex; align-items: center; justify-content: center; height: 48px; padding: 0 24px; font-size: 15px; font-weight: 600; text-decoration: none; border-radius: 0; border: none; cursor: pointer; font-family: inherit; }
.post-main .btn-gold { background: #2f2e2b; color: #fff; }
.post-main .btn-gold:hover { background: #4a4640; }
.post-main .btn-kakao { background: transparent; color: #111827; border-bottom: 1px solid #111827; height: auto; padding: 0 0 2px; font-weight: 500; }
.post-main .btn-ghost { background: transparent; color: #111827; height: auto; padding: 0 0 2px; border-bottom: 1px solid #111827; font-weight: 500; }

/* 자가진단 */
.self-check { border: 1px solid #d9d9d6; padding: 28px; }
.self-check .sc-label { font-size: 13px; color: #6b7280; font-weight: 600; }
.self-check h3 { margin-top: 4px !important; }
.self-check .sc-sub { font-size: 14px; color: #6b7280; margin: 6px 0 16px !important; }
.sc-item { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-top: 1px solid #efefed; font-size: 16px; cursor: pointer; }
.sc-item input { width: 18px; height: 18px; margin-top: 5px; accent-color: #2f2e2b; flex: none; }
.sc-result { display: none; margin-top: 18px; padding: 20px; background: #f5f5f3; }
.sc-result.on { display: block; }
.sc-score { font-weight: 700; color: #111827; }
.sc-msg { font-size: 15.5px; margin: 8px 0 16px !important; }

/* 중간 상담 안내 */
.mid-cta { background: #f5f5f3; padding: 28px; }
.mid-cta h3 { margin-top: 0 !important; font-size: 19px; }
.mid-cta p { font-size: 15.5px; color: #4b5260; margin-top: 6px !important; }
.mid-cta .btns { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; margin-top: 18px; }

/* 하단 상담 폼 */
.consult-block { margin-top: 72px; border-top: 2px solid #111827; padding-top: 28px; }
.consult-block h3 { font-size: 24px; font-weight: 700; letter-spacing: -.02em; }
.consult-block .cb-sub { font-size: 15.5px; color: #4b5260; line-height: 1.8; margin-top: 8px; max-width: 640px; }
.cform { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; margin-top: 24px; }
.cform .fl { font-size: 13px; font-weight: 500; color: #4b5260; display: block; margin-bottom: -8px; }
.cform input[type="text"], .cform select, .cform textarea { width: 100%; padding: 12px 14px; font-size: 15px; font-family: inherit; color: #111827; background: #fff; border: 1px solid #cfd2d6; border-radius: 0; outline: none; }
.cform input:focus, .cform select:focus, .cform textarea:focus { border-color: #2f2e2b; }
.cform textarea { min-height: 120px; resize: vertical; }
.cform > .fl:nth-of-type(1), .cform > #cf-name { grid-column: 1; }
.cform > .fl:nth-of-type(2), .cform > #cf-phone { grid-column: 2; }
.cform > .fl:nth-of-type(3), .cform > #cf-field, .cform > .fl:nth-of-type(4), .cform > #cf-msg, .cform-agree, .cform > button { grid-column: 1 / -1; }
.cform > .fl:nth-of-type(1) { grid-row: 1; } .cform > #cf-name { grid-row: 2; }
.cform > .fl:nth-of-type(2) { grid-row: 1; } .cform > #cf-phone { grid-row: 2; }
.cform-agree { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; color: #6b7280; line-height: 1.6; }
.cform-agree input { margin-top: 3px; accent-color: #2f2e2b; }
.cform-agree a { color: #2f2e2b; text-decoration: underline; }
.cform > button { justify-self: start; min-width: 200px; }
.cb-alt { display: flex; gap: 24px; align-items: center; margin-top: 22px; }

/* 출처·관련 글 */
.post-refs { margin-top: 56px; font-size: 14.5px; color: #4b5260; line-height: 1.8; }
.post-refs > p { border: none !important; padding: 0 !important; color: #6b7280; font-size: 13.5px; }
.post-refs h4 { font-size: 15px; font-weight: 700; color: #111827; margin: 28px 0 8px; }
.post-refs ul { list-style: none; padding: 0; }
.post-refs li { padding: 8px 0; border-bottom: 1px solid #efefed; }
.post-refs a { color: #111827; }
.post-refs a:hover { color: #2f2e2b; text-decoration: underline; text-underline-offset: 3px; }
.back-link { display: inline-block; margin-top: 40px; font-size: 14.5px; color: #111827; border-bottom: 1px solid #111827; padding-bottom: 2px; }

/* 오른쪽 목차 */
.post-aside { position: relative; }
.toc { position: sticky; top: 32px; }
.toc-title { font-size: 13px; font-weight: 700; color: #111827; padding-bottom: 10px; border-bottom: 2px solid #111827; }
.toc ol { list-style: none; padding: 0; margin: 0; }
.toc li a { display: block; padding: 10px 0; font-size: 14.5px; color: #6b7280; border-bottom: 1px solid #efefed; line-height: 1.5; }
.toc li a:hover, .toc li a.on { color: #111827; }
.toc-contact { margin-top: 28px; padding: 20px; background: #f5f5f3; font-size: 14px; color: #4b5260; line-height: 1.7; }
.toc-contact strong { display: block; font-size: 18px; color: #111827; margin-top: 4px; }
.toc-contact a.go { display: inline-block; margin-top: 10px; color: #2f2e2b; font-weight: 600; }

/* 모바일 하단 바 */
.mobile-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: none; grid-template-columns: 1fr 1fr; padding-bottom: env(safe-area-inset-bottom, 0px); background: #fff; border-top: 1px solid #e5e5e3; }
.mobile-cta a { display: flex; align-items: center; justify-content: center; height: 54px; font-size: 15px; font-weight: 600; }
.mobile-cta .m-form { background: #2f2e2b; color: #fff; }
.mobile-cta .m-tel { color: #111827; }

@media (max-width: 1000px) {
  .post-layout { grid-template-columns: minmax(0, 1fr); }
  .post-aside { display: none; }
}
@media (max-width: 760px) {
  .post-hero { padding: 140px 0 44px; }
  .post-body { font-size: 16.5px; }
  .post-body h2 { font-size: 22px; margin-top: 52px; }
  .cform { grid-template-columns: 1fr; }
  .cform > * { grid-column: 1 !important; grid-row: auto !important; }
  .mobile-cta { display: grid; }
  footer { padding-bottom: 80px; }
  .req-table--kv td:first-child { width: 34%; }
}


/* 줄 끝 정렬: 2안 (양쪽 정렬 + 단어 단위 줄바꿈) */
.post-body p, .post-body blockquote, .post-body li, .mid-cta p, .consult-block .cb-sub, .post-hero .lead { text-align: justify; word-break: normal; line-break: strict; }

/* 본문 안내 상자 (기존 금색 테두리 상자 대체) */
.note-box { border: 1px solid #d9d9d6; padding: 22px 26px; }
.note-box .note-title { font-weight: 700; color: #111827; font-size: 16.5px; margin-bottom: 6px; }
.note-box p { font-size: 16px; line-height: 1.85; }
.note-box p + p { margin-top: 6px; }

/* 글머리 안내 문단 (히어로 리드·핵심 요약 대체, 2026-10-19) */
.post-body .post-intro { background: #f5f5f3; padding: 26px 28px; }
.post-body .post-intro p { font-size: 18px; line-height: 1.85; color: #2f2e2b; font-weight: 500; letter-spacing: -.01em; text-align: left; text-wrap: pretty; }
.post-body .post-intro + h2 { margin-top: 56px !important; }
@media (max-width: 760px) {
  .post-body .post-intro { padding: 22px 20px; margin-left: -20px; margin-right: -20px; }
  .post-body .post-intro p { font-size: 17px; }
}

/* 광고 유입 모드 (utm·gclid 유입자만) — 새 디자인 이전 때 빠진 규칙 복원, 2026-10-19 */
.ad-mode .back-link { display: none; }
@media (min-width: 761px) {
  .ad-mode .mobile-cta { display: grid; left: 50%; right: auto; transform: translateX(-50%); width: min(520px, calc(100% - 48px)); bottom: 22px; border: 1px solid #e5e5e3; box-shadow: 0 10px 30px rgba(20,18,15,.18); }
  .ad-mode footer { padding-bottom: 96px; }
}

/* 표 위 작은 이름표 · 정보 기준일 · 제목 위 세부 분류 (2026-10-19) */
.post-body .table-cap { font-size: 14.5px; font-weight: 700; color: #111827; }
.post-body .table-cap + table { margin-top: 10px !important; }
.post-body table + .table-cap { margin-top: 36px !important; }
.post-refs > p.ref-basis { margin-bottom: 8px; }
.post-crumb { flex-wrap: wrap; row-gap: 2px; }

/* 본문 안 관련 글 바로가기 (2026-10-19) */
.post-body a.go-link { display: inline-block; margin-top: 6px; font-weight: 600; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 1px; }

/* ===== 읽기 쉬운 구성 (2026-10-19) ===== */
/* 소제목 위 순서 번호 */
.post-body { counter-reset: sec; }
.post-body > h2::before { counter-increment: sec; content: counter(sec, decimal-leading-zero); display: block; font-size: 13px; font-weight: 600; color: #8a8073; letter-spacing: .04em; margin-bottom: 4px; }
.post-body strong { font-weight: 700; color: #111827; }

/* 바로가기 버튼 (휴대폰·태블릿, site.js가 소제목으로 만든다) */
.m-toc { display: none; }
@media (max-width: 1000px) {
  .m-toc { display: flex; flex-wrap: wrap; gap: 8px; }
  .m-toc a { font-size: 14px; color: #111827 !important; border: 1px solid #d9d9d6; padding: 7px 12px; text-decoration: none !important; background: #fff; line-height: 1.4; }
}

/* 한눈에 보기 */
.key-facts { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 2px solid #111827; border-bottom: 1px solid #d9d9d6; }
.key-facts > div { padding: 16px 14px 16px 0; }
.key-facts > div + div { padding-left: 16px; border-left: 1px solid #e5e5e3; }
.key-facts span { display: block; font-size: 13px; color: #6b7280; }
.key-facts strong { display: block; font-size: 22px; font-weight: 700; color: #111827; letter-spacing: -.02em; margin-top: 2px; line-height: 1.3; }
.key-facts em { display: block; font-style: normal; font-size: 12.5px; color: #6b7280; margin-top: 2px; }

/* 절차 번호 단계 */
.req-table.steps tbody { counter-reset: st; }
.req-table.steps td:first-child::before { counter-increment: st; content: counter(st); display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin-right: 10px; background: #2f2e2b; color: #fff; font-size: 13px; font-weight: 700; vertical-align: 1px; }
/* 짧은 값 표: 값만 굵게 */
.req-table.compact td + td { font-weight: 700; color: #111827; }
/* 점검 목록 */
.req-table.checks td:first-child { position: relative; padding-left: 34px; }
.req-table.checks td:first-child::before { content: ""; position: absolute; left: 12px; top: 19px; width: 13px; height: 13px; border: 1.5px solid #2f2e2b; }
/* 서류 목록 */
.doc-list { list-style: none; padding: 0 !important; margin: 0 !important; display: grid; grid-template-columns: 1fr 1fr; gap: 2px 20px; }
.doc-list li { margin: 0 !important; padding: 3px 0 3px 18px; position: relative; line-height: 1.6; }
.doc-list li::before { content: ""; position: absolute; left: 0; top: 12px; width: 8px; height: 8px; background: #c9bfae; }
.doc-list.one { grid-template-columns: 1fr; }
/* 꼭 기억할 한 문장 */
.post-body .callout { border-left: 3px solid #2f2e2b; padding: 4px 0 4px 18px; font-weight: 500; color: #111827; text-align: left; }

@media (max-width: 760px) {
  .post-body p, .post-body li, .post-body blockquote, .mid-cta p, .consult-block .cb-sub { text-align: left !important; }
  /* 문장이 든 표는 위아래로 풀기 */
  .req-table--kv:not(.compact) thead { display: none; }
  .req-table--kv:not(.compact) tr { display: block; padding: 16px 0; border-bottom: 1px solid #e5e5e3; }
  .req-table--kv:not(.compact) td { display: block; border: none !important; padding: 0 !important; width: auto !important; }
  .req-table--kv:not(.compact) td:first-child { font-weight: 700; font-size: 16.5px; color: #111827; margin-bottom: 4px; }
  .req-table--kv:not(.compact) td + td { font-size: 15.5px; line-height: 1.75; color: #374151; }
  .req-table.steps td + td { padding-left: 34px !important; }
  .req-table.checks td:first-child { padding-left: 24px !important; }
  .req-table.checks td:first-child::before { left: 0; top: 6px; }
  .req-table.docs td:first-child { margin-bottom: 8px; }
  .req-table.compact td { padding: 10px 12px; }
  .doc-list { grid-template-columns: 1fr; }
  .key-facts { grid-template-columns: 1fr 1fr; }
  .key-facts > div { padding: 14px 12px 14px 0 !important; border-left: none !important; }
  .key-facts > div:nth-child(even) { padding-left: 14px !important; border-left: 1px solid #e5e5e3 !important; }
  .key-facts > div:nth-child(n+3) { border-top: 1px solid #e5e5e3; }
  .key-facts strong { font-size: 20px; }
}

/* 줄바꿈 정리 (2026-10-19): 낱글자로 끊지 않고 단어 단위로, 마지막 줄에 한두 글자만 남지 않게 */
.post-body p, .post-body blockquote, .post-body li, .mid-cta p, .consult-block .cb-sub, .post-hero .lead,
.req-table td, .req-table th, .key-facts, .post-refs li, .toc li a, .note-box p { word-break: keep-all; overflow-wrap: break-word; line-break: auto; }
.post-body p, .post-body blockquote, .mid-cta p, .consult-block .cb-sub, .note-box p { text-wrap: pretty; }
.post-body li, .req-table td, .post-body h2, .post-body h3, .mid-cta h3, .consult-block h3, .post-refs li, .toc li a, .key-facts strong { text-wrap: balance; }
@media (max-width: 760px) { .req-table.compact col.c1, .req-table.compact td:first-child { width: 50% !important; } }
.post-body li, .doc-list li, .req-table td { text-align: left !important; }
/* 양쪽 정렬은 단어 단위 줄바꿈과 함께 쓰면 글자 사이가 벌어져 왼쪽 정렬로 통일 */
.post-body p, .post-body blockquote, .mid-cta p, .consult-block .cb-sub, .post-hero .lead, .note-box p { text-align: left !important; }

/* 단계 표: '단계/내용' 머리줄은 번호가 대신하므로 모든 화면에서 숨긴다 (2026-10-19) */
.req-table.steps thead { display: none; }
.req-table.steps col.c1 { width: 32%; }
.req-table.steps td:first-child { font-weight: 600; color: #2f2e2b; }

/* 상담 신청 전송 실패 안내 (2026-10-25) */
.cform-error { margin: 20px 0 0; padding: 12px 16px; font-size: 14.5px; line-height: 1.6; color: #9a2b1f; background: #fbeeec; border-left: 3px solid #b3392b; }
.cform-error a { color: #9a2b1f; font-weight: 600; text-decoration: underline; }
