/* ============================================================
   traffic 섹션 전용 확장 — body.traffic-p2  (P3 Humanize)
   phase1.css + pain-p2.css(공용 P2 editorial 시스템) 위에 얹힌다.
   페이지별 스코프: t-index / t-process / t-insurance / t-faq
   style.css / phase1.css / pain-p2.css는 수정하지 않는다.
   전역 FAQ component는 건드리지 않고 .t2-flat 스코프로만 재정의.
   ============================================================ */

/* ------------------------------------------------------------
   공통 밀도·타이포 보정 (1440 기준)
   body 17~19px · H2 38~45px · 세로 여백 15~25% 축소
   ------------------------------------------------------------ */
body.traffic-p2 .section-pad{padding:64px 0}
body.traffic-p2 .section-pad-sm{padding:52px 0}
body.traffic-p2 .section-pad-sm.pad-tight{padding:40px 0}
body.traffic-p2 .head-block{margin-bottom:30px}
body.traffic-p2 .p1-co h4{font-size:1.18rem;min-width:150px}
body.traffic-p2 .p1-co p{font-size:1.05rem}
body.traffic-p2 .p1-co > *{padding:17px 4px}
body.traffic-p2 .p1-links a{font-size:1.1rem;padding:15px 4px}
/* 섹션을 배경 교차 대신 hairline으로 구분 */
body.traffic-p2 .t2-rule{border-top:1px solid var(--line)}

/* 좌 제목축 + 우 본문 2열 편집 (eyebrow→H2→본문 세로 반복 해체) */
.t2-side-head{display:grid;grid-template-columns:minmax(210px,340px) 1fr;gap:26px clamp(36px,4.5vw,96px);align-items:start}
.t2-side-head .sh h2{font-size:clamp(1.7rem,2.7vw,2.4rem);line-height:1.28;letter-spacing:-.025em}
.t2-side-head .sh .eyebrow{margin-bottom:10px}
.t2-side-head .sh .more{display:inline-flex;gap:8px;align-items:center;margin-top:18px;font-weight:650;color:var(--olive-800)}
.t2-side-head .sh .more:hover{color:var(--charcoal)}
@media(max-width:900px){.t2-side-head{grid-template-columns:1fr;gap:20px}}

/* 한글 제목·문장 리스트: 어절 단위 줄바꿈 */
body.traffic-p2 h1,body.traffic-p2 h2,body.traffic-p2 h3,body.traffic-p2 h4,
body.traffic-p2 .t2-statement,body.traffic-p2 .t2-sym li,body.traffic-p2 .t2-check li,
body.traffic-p2 .t2-qidx a,body.traffic-p2 .faq-q{word-break:keep-all}

/* FAQ flat 변형 — 전역 component 비수정, traffic 스코프 재정의만
   (phase1 body.p1 .faq-item(0-2-1)보다 특이도 높게) */
body.traffic-p2 .t2-flat .faq-item{background:transparent;border:none;border-radius:0;margin:0;box-shadow:none;border-bottom:1px solid var(--line-soft)}
body.traffic-p2 .t2-flat .faq-item:first-of-type{border-top:1px solid var(--line)}
body.traffic-p2 .t2-flat .faq-q{padding:19px 4px;font-size:1.14rem}
body.traffic-p2 .t2-flat .faq-a{padding:0 4px;font-size:1.06rem}
body.traffic-p2 .t2-flat .faq-item.open .faq-a{max-height:600px;padding:2px 4px 20px}

/* ============================================================
   traffic/index — statement-first
   ============================================================ */
body.t-index .page-hero{padding:110px 0 60px}
.t2-hero-grid{display:grid;grid-template-columns:7fr 5fr;gap:30px clamp(40px,5vw,120px);align-items:end;margin-top:20px}
body.t-index .page-hero h1{font-size:clamp(2.4rem,3.6vw,3.25rem)}
body.traffic-p2 .page-hero .t2-statement{font-size:clamp(1.9rem,3.1vw,2.8rem);line-height:1.32;font-weight:700;letter-spacing:-.03em;color:var(--charcoal);margin:24px 0 16px;max-width:15em}
.t2-statement em{font-style:normal;color:var(--olive-700)}
body.traffic-p2 .page-hero .t2-hero-lead{font-size:1.14rem;color:var(--text-soft);max-width:560px;line-height:1.8}
.t2-hero-side{border-left:1px solid var(--line);padding-left:clamp(26px,2.6vw,48px)}
.t2-hero-side p{font-size:1.08rem;line-height:1.85;color:var(--ink-soft);margin-bottom:13px;max-width:640px}
.t2-hero-side p:last-child{margin-bottom:0}
@media(max-width:900px){
  .t2-hero-grid{grid-template-columns:1fr;align-items:start;gap:24px}
  .t2-hero-side{border-left:none;border-top:1px solid var(--line);padding:20px 0 0}
}

/* 증상: 1열 대형 문장 리스트 (2열 번호 그리드와 구분) */
.t2-sym{list-style:none;max-width:860px;border-top:1px solid var(--line)}
.t2-sym li{font-size:clamp(1.18rem,1.75vw,1.5rem);font-weight:600;letter-spacing:-.015em;line-height:1.5;padding:16px 4px;border-bottom:1px solid var(--line-soft);color:var(--charcoal)}
.t2-sym li em{font-style:normal;color:var(--olive-700)}

/* 진료·보험 흐름: 대형 인라인 플로우 + 정의 rows */
.t2-flow-line{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line-soft)}
.t2-flow-line:first-of-type{border-top:1px solid var(--line)}
.t2-flow-line .lab{font-size:.85rem;font-weight:750;letter-spacing:.05em;color:var(--text-mute);flex:none;width:64px}
.t2-flow-line span{font-size:clamp(1.2rem,1.9vw,1.6rem);font-weight:750;letter-spacing:-.02em;color:var(--charcoal)}
.t2-flow-line i{font-style:normal;color:var(--sand);font-size:1.1rem}
.t2-flow-line .opt{color:var(--text-mute);font-weight:600}
.t2-flow-desc{margin-top:26px}
.t2-flow-desc > div{display:grid;grid-template-columns:minmax(140px,210px) 1fr;gap:6px clamp(20px,2.5vw,44px);padding:13px 0;border-bottom:1px solid var(--line-soft)}
.t2-flow-desc h4{font-size:1.08rem}
.t2-flow-desc p{font-size:1.04rem;color:var(--text-soft);line-height:1.7;max-width:680px}
@media(max-width:700px){.t2-flow-desc > div{grid-template-columns:1fr;gap:3px}.t2-flow-line .lab{width:100%}}

/* 진료 범위: 좌 제목+사진, 우 대형 rows */
.t2-scope{border-top:1px solid var(--line)}
.t2-scope > div{display:flex;gap:22px;align-items:baseline;padding:18px 4px;border-bottom:1px solid var(--line-soft)}
.t2-scope h4{font-size:1.2rem;flex:none;min-width:150px}
.t2-scope p{font-size:1.04rem;color:var(--text-soft)}
.t2-side-photo{width:100%;max-width:340px;aspect-ratio:4/5;object-fit:cover;border-radius:10px;display:block;margin-top:26px}
@media(max-width:900px){.t2-side-photo{max-width:none;aspect-ratio:3/2}}

/* ============================================================
   traffic/process — sequence-first
   ============================================================ */
body.t-process .page-hero{padding:106px 0 54px}
.t2-hero-proc{display:grid;grid-template-columns:8fr 4fr;gap:30px clamp(40px,5vw,110px);align-items:end;margin-top:6px}
body.t-process .page-hero h1{font-size:clamp(2.3rem,3.4vw,3.1rem)}
.t2-seq{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:baseline;margin-top:30px}
.t2-seq a{font-size:clamp(1.35rem,2.1vw,1.8rem);font-weight:750;letter-spacing:-.025em;color:var(--charcoal);transition:.2s}
.t2-seq a small{font-size:.85rem;color:var(--text-mute);font-weight:600;margin-left:7px}
.t2-seq i{font-style:normal;color:var(--sand);font-size:1.2rem}
.t2-seq a:hover{color:var(--olive-800)}
/* 첫 진료 확인 checklist (hero 우측) */
.t2-check{border-top:2px solid var(--charcoal);padding-top:14px;max-width:360px}
.t2-check .lbl{font-size:.88rem;font-weight:700;color:var(--text-mute);margin-bottom:2px}
.t2-check ul{list-style:none}
.t2-check li{padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:1.05rem;font-weight:600;color:var(--charcoal)}
.t2-check li:last-child{border-bottom:none}
@media(max-width:900px){.t2-hero-proc{grid-template-columns:1fr;gap:26px}.t2-check{max-width:none}}

/* 절차 국면: 좌 국면 라벨 / 우 스텝 — 스텝별 밀도 상이 */
.t2-stage{display:grid;grid-template-columns:minmax(190px,300px) 1fr;gap:22px clamp(32px,4.5vw,96px);border-top:2px solid var(--charcoal);padding-top:26px;scroll-margin-top:92px}
.t2-stage + .t2-stage{margin-top:56px}
.t2-stage .ph-lbl .tag{font-size:.84rem;font-weight:750;letter-spacing:.07em;color:var(--olive-700);margin-bottom:10px}
.t2-stage .ph-lbl h3{font-size:clamp(1.5rem,2.5vw,2rem);letter-spacing:-.025em;line-height:1.3}
.t2-stage .ph-lbl p{font-size:.96rem;color:var(--text-mute);margin-top:10px;line-height:1.65;max-width:230px}
.t2-stage .steps > div{display:flex;gap:20px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line-soft)}
.t2-stage .steps > div:first-child{padding-top:2px}
.t2-stage .steps > div:last-child{border-bottom:none}
.t2-stage .num{font-size:.85rem;font-weight:750;color:var(--text-mute);flex:none;width:30px;font-variant-numeric:tabular-nums;letter-spacing:.03em}
.t2-stage .steps h4{font-size:1.28rem;margin-bottom:6px;letter-spacing:-.02em}
.t2-stage .steps p{font-size:1.06rem;color:var(--text-soft);line-height:1.78;max-width:720px}
/* 대표 스텝 (한의 치료): 치료 구성이 내부로 접힌 feature 블록 */
.t2-stage .steps > div.feat{display:block;padding:26px 0 8px}
.t2-stage .feat .fh{display:flex;gap:20px;align-items:baseline}
.t2-stage .feat h4{font-size:clamp(1.5rem,2.3vw,1.9rem)}
.t2-tx{margin:20px 0 14px 0;border-top:1px solid var(--line)}
.t2-tx > *{display:flex;gap:20px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line-soft)}
.t2-tx h5{font-size:1.1rem;font-weight:700;flex:none;min-width:170px;color:var(--charcoal)}
.t2-tx p{font-size:1rem!important;color:var(--text-soft);max-width:560px}
.t2-tx .go{margin-left:auto;color:var(--olive-700);font-weight:700;flex:none;transition:.2s}
.t2-tx a:hover .go{transform:translateX(4px)}
.t2-tx a:hover h5{color:var(--olive-800)}
.t2-tx-note{font-size:.95rem!important;color:var(--text-mute)!important;max-width:640px}
/* 스텝 내부 보조 문단 (빈도·기간) */
.t2-sub{margin-top:12px;border-left:2px solid var(--line);padding-left:18px}
.t2-sub .lbl{font-size:.88rem;font-weight:700;color:var(--olive-700);margin-bottom:4px}
.t2-sub p{font-size:1rem!important;color:var(--text-soft)}
/* 준비물 note (국면 1 내부) */
.t2-prep{margin-top:16px;background:var(--cream);border-radius:10px;padding:18px 22px;max-width:640px}
.t2-prep .lbl{font-size:.85rem;font-weight:750;color:var(--olive-800);margin-bottom:5px}
.t2-prep p{font-size:1rem!important;color:var(--ink-soft)!important}
@media(max-width:900px){
  .t2-stage{grid-template-columns:1fr;gap:14px;padding-top:22px}
  .t2-stage .ph-lbl p{max-width:none}
  .t2-stage + .t2-stage{margin-top:44px}
  .t2-tx h5{min-width:130px}
}
@media(max-width:600px){
  .t2-tx > *{flex-wrap:wrap;gap:4px 14px}
  .t2-tx .go{margin-left:0}
}

/* ============================================================
   traffic/insurance — compact document
   ============================================================ */
body.t-insurance .page-hero{padding:100px 0 34px;border-bottom:1px solid var(--line)}
.t2-hero-doc{display:grid;grid-template-columns:7fr 5fr;gap:26px clamp(40px,5vw,110px);align-items:end;margin-top:4px}
body.t-insurance .page-hero h1{font-size:clamp(2.1rem,3.1vw,2.8rem)}
body.t-insurance .page-hero .t2-hero-lead{margin-top:12px}
.t2-docidx{list-style:none;border-top:2px solid var(--charcoal);max-width:380px;justify-self:end;width:100%}
.t2-docidx a{display:flex;gap:14px;align-items:baseline;padding:10px 2px;border-bottom:1px solid var(--line-soft);font-weight:650;color:var(--ink);font-size:1.02rem;transition:.2s}
.t2-docidx .no{font-size:.78rem;font-weight:750;color:var(--text-mute);font-variant-numeric:tabular-nums;flex:none}
.t2-docidx a:hover{color:var(--olive-800)}
@media(max-width:900px){.t2-hero-doc{grid-template-columns:1fr;gap:24px}.t2-docidx{justify-self:start;max-width:420px}}

/* 문서 본문: 단일 배경 + 번호 섹션 */
.t2-docbody{max-width:980px}
.t2-docbody .lead{font-size:clamp(1.15rem,1.6vw,1.3rem);line-height:1.85;color:var(--ink);max-width:780px}
.t2-docsec{display:flex;gap:16px;align-items:baseline;border-top:1px solid var(--charcoal);padding-top:16px;margin:52px 0 20px;scroll-margin-top:92px}
.t2-docsec .no{font-size:.88rem;font-weight:750;color:var(--text-mute);font-variant-numeric:tabular-nums;flex:none}
.t2-docsec h2{font-size:clamp(1.5rem,2.3vw,1.95rem);letter-spacing:-.02em}
.t2-docbody .prose-doc p{font-size:1.1rem;line-height:1.85;color:var(--ink-soft);max-width:760px;margin-bottom:12px}
/* 항목 rows — 문서형 대형 */
.t2-doc{border-top:none}
.t2-doc > div{display:grid;grid-template-columns:minmax(160px,250px) 1fr;gap:6px clamp(24px,3vw,52px);padding:19px 0;border-bottom:1px solid var(--line-soft)}
.t2-doc > div:first-child{border-top:1px solid var(--line-soft)}
.t2-doc h4{font-size:1.18rem;letter-spacing:-.015em}
.t2-doc p{font-size:1.06rem;color:var(--text-soft);line-height:1.8;max-width:720px}
.t2-doc .fine{display:block;margin-top:4px;font-size:.92rem;color:var(--text-mute)}
@media(max-width:700px){.t2-doc > div{grid-template-columns:1fr;gap:4px}}
/* 법적 고지: 카드 아님 — 상하 hairline 문서 노트 */
.t2-legal{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 2px;margin-top:56px;max-width:860px}
.t2-legal p{font-size:.98rem;color:var(--text-mute);line-height:1.8}
.t2-legal a{color:var(--olive-800);font-weight:650}

/* ============================================================
   traffic/faq — question-index
   ============================================================ */
body.t-faq .page-hero{padding:104px 0 56px}
body.t-faq .page-hero h1{font-size:clamp(2.3rem,3.4vw,3.1rem)}
.t2-qidx{display:grid;grid-template-columns:1fr 1fr;gap:30px clamp(44px,4.5vw,100px);margin-top:36px;max-width:1180px}
.t2-qidx .grp .cat{display:flex;gap:10px;align-items:baseline;font-size:.88rem;font-weight:750;letter-spacing:.05em;color:var(--olive-700);padding-bottom:8px;border-bottom:2px solid var(--charcoal)}
.t2-qidx a{display:flex;gap:13px;align-items:baseline;padding:11px 2px;border-bottom:1px solid var(--line-soft);font-size:1.08rem;font-weight:600;color:var(--ink);line-height:1.5;transition:.2s}
.t2-qidx .qn{font-size:.78rem;font-weight:700;color:var(--text-mute);font-variant-numeric:tabular-nums;flex:none}
.t2-qidx a:hover{color:var(--olive-800)}
@media(max-width:760px){.t2-qidx{grid-template-columns:1fr;gap:24px}}

/* 아카이브: 분류 헤더 + flat 항목 */
.t2-faq-cat{display:flex;gap:16px;align-items:baseline;border-top:2px solid var(--charcoal);padding:20px 2px 4px;margin-top:52px;scroll-margin-top:92px}
.t2-faq-cat:first-of-type{margin-top:0}
.t2-faq-cat .tag{font-size:.85rem;font-weight:750;letter-spacing:.08em;color:var(--olive-600);flex:none}
.t2-faq-cat h2{font-size:clamp(1.5rem,2.3vw,1.95rem);letter-spacing:-.02em}
.t2-faq-cat + .faq-item{margin-top:10px}
body.t-faq .t2-flat .faq-item{scroll-margin-top:92px}
body.traffic-p2.t-faq .t2-flat .faq-item:first-of-type{border-top:none}
/* 전화 안내: callout 카드 → flat 노트 */
.t2-callnote{border-top:1px solid var(--line);margin-top:48px;padding:22px 2px 0;font-size:1.06rem;color:var(--ink-soft)}
.t2-callnote a{color:var(--olive-800);font-weight:700}
