/* ============================================================
   Phase 2 — community 카테고리 공통 (column · review)
   body.p1.community-p2 스코프. phase1.css 위에 얹혀 동작한다.
   style.css / phase1.css는 수정하지 않는다.
   방향: editorial archive — 카드 그리드가 아닌 출판물 리듬.
   ============================================================ */

body.community-p2{--p2-gutter:clamp(18px,1.4vw,32px)}
body.community-p2 .wrap{padding:0 var(--p2-gutter)}
body.community-p2 .page-hero .inner{margin-left:0}

/* ---------- 섹션 러닝헤드 (작은 번호 + 라벨, 잡지 목차 느낌) ---------- */
.cm-runhead{display:flex;align-items:baseline;gap:16px;border-top:1px solid var(--charcoal);padding-top:18px;margin-bottom:clamp(28px,4vw,52px)}
.cm-runhead .no{font-size:.85rem;font-weight:750;color:var(--olive-600);letter-spacing:.06em}
.cm-runhead h2{font-size:clamp(1.5rem,2.6vw,2.1rem);letter-spacing:-.02em}
.cm-runhead .aside{margin-left:auto;font-size:.9rem;color:var(--text-mute)}
@media(max-width:640px){.cm-runhead{flex-wrap:wrap}.cm-runhead .aside{margin-left:0;width:100%}}

/* ---------- Featured 칼럼 (큰 타이포, 비대칭 2단) ---------- */
.cm-featured{display:grid;grid-template-columns:8fr 4fr;gap:clamp(32px,5vw,80px);align-items:end;padding-bottom:clamp(36px,5vw,64px)}
.cm-featured .kicker{font-size:.9rem;font-weight:700;color:var(--olive-700);margin-bottom:16px}
.cm-featured h3{font-size:clamp(1.7rem,3.6vw,2.9rem);line-height:1.28;letter-spacing:-.03em;font-weight:800;margin-bottom:20px}
.cm-featured h3 a{color:inherit;transition:.2s}
.cm-featured h3 a:hover{color:var(--olive-800)}
.cm-featured .excerpt{font-size:clamp(1.02rem,1.4vw,1.15rem);line-height:1.8;color:var(--text-soft);max-width:640px}
.cm-featured .side{display:flex;flex-direction:column;gap:10px;font-size:.92rem;color:var(--text-mute);border-left:1px solid var(--line);padding-left:24px;padding-bottom:6px}
.cm-featured .side b{color:var(--charcoal);font-weight:700}
.cm-featured .side .go{margin-top:8px;font-weight:700;color:var(--olive-800)}
.cm-featured .side .go:hover{color:var(--charcoal)}
@media(max-width:860px){.cm-featured{grid-template-columns:1fr;gap:22px;align-items:start}.cm-featured .side{border-left:none;border-top:1px solid var(--line-soft);padding-left:0;padding-top:18px;flex-direction:row;flex-wrap:wrap;gap:8px 20px}}

/* ---------- 칼럼 아카이브 목록 (text-led rows) ---------- */
.cm-archive{border-top:1px solid var(--line)}
.cm-archive .row{display:grid;grid-template-columns:130px 1fr auto;gap:clamp(16px,3vw,48px);align-items:baseline;padding:26px 4px;border-bottom:1px solid var(--line-soft);transition:.2s}
.cm-archive .row .when{font-size:.88rem;color:var(--text-mute)}
.cm-archive .row .cat{font-size:.82rem;font-weight:700;color:var(--olive-700);margin-bottom:6px}
.cm-archive .row h4{font-size:clamp(1.1rem,1.8vw,1.4rem);font-weight:750;letter-spacing:-.02em;margin-bottom:6px;transition:.2s}
.cm-archive .row p{font-size:.97rem;color:var(--text-soft);line-height:1.7;max-width:680px}
.cm-archive .row .arrow{font-size:.92rem;color:var(--text-mute);white-space:nowrap;transition:.2s}
.cm-archive a.row:hover h4{color:var(--olive-800)}
.cm-archive a.row:hover .arrow{color:var(--charcoal)}
@media(max-width:760px){.cm-archive .row{grid-template-columns:1fr;gap:6px;padding:22px 2px}.cm-archive .row .arrow{display:none}}

/* ---------- 카테고리 디렉토리 (큰 텍스트 링크) ---------- */
.cm-dir{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(32px,5vw,72px);border-top:1px solid var(--line)}
.cm-dir > *{display:flex;align-items:baseline;gap:16px;padding:20px 4px;border-bottom:1px solid var(--line-soft);font-size:clamp(1.15rem,1.9vw,1.5rem);font-weight:750;letter-spacing:-.02em;color:var(--charcoal)}
.cm-dir a{transition:.2s}
.cm-dir a:hover{color:var(--olive-800);padding-left:10px}
.cm-dir .where{margin-left:auto;font-size:.85rem;font-weight:600;color:var(--text-mute);letter-spacing:0}
.cm-dir .soon{color:var(--text-mute);font-weight:600}
.cm-dir .soon .where{color:var(--sand)}
@media(max-width:700px){.cm-dir{grid-template-columns:1fr}}

/* ---------- 외부 채널 (source mark + 줄글 목록) ---------- */
.cm-ext{display:grid;grid-template-columns:minmax(200px,3fr) 9fr;gap:clamp(28px,4vw,72px);align-items:start;padding:clamp(36px,5vw,60px) 0;border-top:1px solid var(--line)}
.cm-ext:first-of-type{border-top:none;padding-top:0}
.cm-ext .src h3{font-size:clamp(1.25rem,2vw,1.6rem);letter-spacing:-.02em;margin-bottom:10px}
.cm-ext .src p{font-size:.93rem;color:var(--text-soft);line-height:1.7;margin-bottom:18px}
.cm-ext .src .all{font-size:.92rem;font-weight:700;color:var(--olive-800)}
.cm-ext .src .all:hover{color:var(--charcoal)}
.cm-src-badge{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:750;letter-spacing:.08em;color:var(--text-mute);margin-bottom:14px}
.cm-src-badge::before{content:"";width:22px;height:1.5px;background:var(--olive-600)}
@media(max-width:860px){.cm-ext{grid-template-columns:1fr;gap:22px}}

/* 외부 최신 글: 첫 글만 썸네일 동반, 나머지는 텍스트 행 */
.cm-ext-lead{display:grid;grid-template-columns:7fr 5fr;gap:clamp(20px,3vw,40px);align-items:center;padding-bottom:22px;border-bottom:1px solid var(--line-soft);margin-bottom:6px}
.cm-ext-lead .meta{font-size:.85rem;color:var(--text-mute);margin-bottom:8px}
.cm-ext-lead h4{font-size:clamp(1.2rem,2vw,1.55rem);font-weight:750;letter-spacing:-.02em;line-height:1.4;margin-bottom:8px;transition:.2s}
.cm-ext-lead p{font-size:.95rem;color:var(--text-soft);line-height:1.7;margin-bottom:10px}
.cm-ext-lead .out{font-size:.88rem;color:var(--text-mute);transition:.2s}
.cm-ext-lead img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:8px;display:block}
.cm-ext-lead:hover h4{color:var(--olive-800)}
.cm-ext-lead:hover .out{color:var(--charcoal)}
.cm-ext-lead.noimg{grid-template-columns:1fr}
@media(max-width:640px){.cm-ext-lead{grid-template-columns:1fr}.cm-ext-lead img{order:-1;aspect-ratio:16/9}}

.cm-ext-rows{display:flex;flex-direction:column}
.cm-ext-rows a{display:grid;grid-template-columns:96px 1fr;gap:clamp(12px,2vw,28px);align-items:baseline;padding:15px 2px;border-bottom:1px solid var(--line-soft);transition:.2s}
.cm-ext-rows .when{font-size:.85rem;color:var(--text-mute)}
.cm-ext-rows h5{font-size:1.02rem;font-weight:650;letter-spacing:-.01em;line-height:1.5;transition:.2s}
.cm-ext-rows h5 .tag{font-size:.8rem;font-weight:600;color:var(--text-mute);margin-left:10px}
.cm-ext-rows a:hover h5{color:var(--olive-800)}
@media(max-width:640px){.cm-ext-rows a{grid-template-columns:1fr;gap:3px;padding:13px 2px}}

/* 외부 채널 준비중 (티스토리 등) */
.cm-ext-pending{border:1px dashed var(--line);border-radius:10px;padding:26px 28px;font-size:.95rem;color:var(--text-mute);line-height:1.7}
.cm-ext-pending b{color:var(--text-soft)}

/* 피드 로딩/실패 상태 */
.cm-feed-fallback{font-size:.95rem;color:var(--text-mute);padding:8px 0}
.cm-feed-fallback a{font-weight:700;color:var(--olive-800)}

/* ---------- 역할 안내 문단 (아카이브 철학, 잡지 서문 느낌) ---------- */
.cm-preface{max-width:720px;font-size:clamp(1.02rem,1.4vw,1.15rem);line-height:1.9;color:var(--ink-soft)}
.cm-preface b{color:var(--charcoal);font-weight:700}

/* ---------- 후기 아카이브 (editorial review rows) ---------- */
.cm-rev{border-top:1px solid var(--line);max-width:920px}
.cm-rev .item{padding:30px 4px;border-bottom:1px solid var(--line-soft)}
.cm-rev .item .cat{font-size:.82rem;font-weight:700;color:var(--olive-700);margin-bottom:8px}
.cm-rev .item h4{font-size:clamp(1.15rem,1.9vw,1.45rem);font-weight:750;letter-spacing:-.02em;margin-bottom:10px}
.cm-rev .item blockquote{font-size:1.02rem;line-height:1.8;color:var(--text-soft);border-left:2px solid var(--line);padding-left:18px;margin-bottom:12px;max-width:680px}
.cm-rev .item .meta{font-size:.87rem;color:var(--text-mute)}
.cm-rev .item .meta a{font-weight:700;color:var(--olive-800)}
.cm-rev .item .meta a:hover{color:var(--charcoal)}

/* ---------- 칼럼 본문 (article) ---------- */
.cm-article{max-width:760px}
.cm-article .lede{font-size:clamp(1.08rem,1.5vw,1.22rem);line-height:1.9;color:var(--ink-soft);margin-bottom:34px}
.cm-article .lede b{color:var(--charcoal)}
.cm-article h2{font-size:clamp(1.3rem,2.2vw,1.7rem);letter-spacing:-.02em;margin:52px 0 18px;padding-top:26px;border-top:1px solid var(--line-soft)}
.cm-article p{font-size:1.02rem;line-height:1.85;color:var(--ink-soft);margin-bottom:18px}
.cm-article ul{list-style:none;margin:0 0 22px;display:flex;flex-direction:column;gap:9px}
.cm-article ul li{display:flex;gap:12px;align-items:baseline;font-size:1rem;line-height:1.7;color:var(--ink-soft)}
.cm-article ul li::before{content:"—";flex:none;color:var(--olive-600)}
.cm-article .note{font-size:.9rem;color:var(--text-mute);line-height:1.7;border-top:1px solid var(--line-soft);padding-top:18px;margin-top:40px}
.cm-article .refs{font-size:.85rem;color:var(--text-mute);line-height:1.7}
.cm-article .refs li::before{content:"·"}

/* 본문 상단 메타 (날짜·카테고리·작성자) */
.cm-article-meta{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:.9rem;color:var(--text-mute);padding:16px 0;border-top:1px solid var(--charcoal);border-bottom:1px solid var(--line-soft);margin-bottom:34px}
.cm-article-meta b{color:var(--charcoal);font-weight:700}

/* 핵심 요약 박스 (AI 검색·발췌 대응 — 첫 화면에서 답을 준다) */
.cm-keybox{background:var(--cream);border-radius:10px;padding:26px 30px;margin-bottom:38px}
.cm-keybox .lbl{font-size:.82rem;font-weight:750;letter-spacing:.06em;color:var(--olive-700);margin-bottom:12px}
.cm-keybox p{font-size:1rem;line-height:1.8;color:var(--ink);margin:0}

/* 관련 진료 내부링크 */
.cm-related{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.cm-related a{font-size:.92rem;font-weight:650;color:var(--charcoal);border:1px solid var(--line);border-radius:999px;padding:9px 18px;transition:.2s}
.cm-related a:hover{border-color:var(--charcoal);background:var(--cream)}

/* 원문 출처 표시 */
.cm-origin{display:flex;align-items:baseline;gap:14px;font-size:.9rem;color:var(--text-mute);margin-top:14px}
.cm-origin a{font-weight:700;color:var(--olive-800)}
.cm-origin a:hover{color:var(--charcoal)}

/* ---------- 모바일 공통 ---------- */
@media(max-width:640px){
  .cm-featured h3{font-size:1.5rem}
  .cm-article h2{margin-top:40px}
}
