/* =========================================================================
   page-proof-wire.css — Proof IA-B 스켈레톤 (2026-08-25)
   목적: 레이아웃 시스템 확정. 규칙은 단 3개 —
     ① 컨테이너 하나(--pfw-max 1280 / --pfw-px 40, 모바일 24) → 좌우 여백 전 섹션 동일
     ② 섹션 리듬 하나(--pfw-sec 96, 모바일 64) → 상하 여백 전 섹션 동일
     ③ 배경 밴드는 장 단위(soft·흰·soft·흰·다크)
   콘텐츠 스타일은 여기 없음 — 확정 후 컴포넌트 CSS를 이 시스템 위에 얹는다.
   ========================================================================= */

.pfw {
  --pfw-max: var(--container-max, 1280px);
  --pfw-px: 40px;
  --pfw-sec: 96px;
  --pfw-ink: var(--color-heading, #0F1130);
  --pfw-muted: var(--color-text-muted, #6B7280);
  --pfw-rule: var(--color-border, #E5E7EB);
  --pfw-soft: var(--color-surface-subtle, #F7F8FB);
  --pfw-blue: var(--color-primary, #1A6FFF);
  --pfw-blue-d: var(--color-primary-hover, #1458D4);
  --pfw-mono: var(--font-mono, 'JetBrains Mono', ui-monospace, monospace);
  font-family: var(--font-sans, 'Manrope', 'Pretendard', system-ui, sans-serif);
  color: var(--pfw-ink);
  background: #fff;
  word-break: keep-all;
}
.pfw *, .pfw *::before, .pfw *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ① 단일 컨테이너 — 모든 섹션이 이것만 쓴다 */
.pfw-wrap {
  max-width: var(--pfw-max);
  margin: 0 auto;
  padding-left: var(--pfw-px);
  padding-right: var(--pfw-px);
}

/* ② 단일 섹션 리듬 */
.pfw-sec { padding: var(--pfw-sec) 0; }
.pfw-hero { padding-top: calc(var(--pfw-sec) + 56px); } /* 헤더 높이 보정 */
.pfw-index { padding: 44px 0; }                          /* 색인은 밴드(예외 1) */

/* ③ 장 배경 밴드 */
.pfw-sec--soft { background: var(--pfw-soft); }
.pfw-sec--dark { background: var(--color-bg-dark, #0F1130); }

#evidence, #verified, #recognized, #faq { scroll-margin-top: 88px; }

/* ── 섹션 식별 태그 (와이어 전용) ── */
.pfw-tag {
  display: inline-block;
  font-family: var(--pfw-mono); font-size: 11px; letter-spacing: .08em;
  color: var(--pfw-blue-d); background: #fff;
  border: 1px solid var(--pfw-rule); border-radius: 999px;
  padding: 4px 12px; margin-bottom: 22px;
}
.pfw-tag--light { background: transparent; color: rgba(255,255,255,.75); border-color: rgba(255,255,255,.25); }

/* ── 텍스트 자리 바 ── */
.pfw-bar { background: #E3E6EE; border-radius: 6px; }
.pfw-bar--eyebrow { width: 140px; height: 14px; margin-bottom: 20px; }
.pfw-bar--h1 { width: min(560px, 80%); height: 52px; margin-bottom: 12px; }
.pfw-bar--h1b { width: min(400px, 60%); }
.pfw-bar--sub { width: min(460px, 70%); height: 16px; margin-top: 14px; }
.pfw-bar--desc { width: min(420px, 70%); height: 14px; margin-top: 12px; background: #E9ECF2; }

/* ── KPI 자리 ── */
.pfw-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 48px; }

/* ── 장 헤더 — 이 페이지 히어로 아이브로우와 동일 문법(2026-08-25): block 모노 eyebrow + 좌측 h2. pill·가운데정렬 금지 ── */
.pfw-ch { margin-bottom: 40px; max-width: 62ch; margin-left: auto; margin-right: auto; text-align: center; }
.pfw-ch-tag {
  display: block;
  font-family: var(--pfw-mono);
  font-size: 12.5px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .1em;
  color: var(--pfw-blue-d); margin-bottom: 16px;
}
html[lang^="ko"] .pfw-ch-tag { font-family: var(--font-sans, 'Manrope', sans-serif); letter-spacing: .04em; }
.pfw-ch-t {
  font-size: clamp(28px, 3.4vw, 40px);
  font-weight: 700; line-height: 1.14; letter-spacing: -.03em;
  color: var(--pfw-ink); margin: 0 0 14px;
  word-break: keep-all; text-wrap: balance;
}

/* ── 서브블록 라벨 — 홈 섹션 eyebrow 문법(mono 11 muted uppercase) ── */
.pfw-sub { margin: 48px 0 14px; }
.pfw-sub:first-of-type { margin-top: 0; }
.pfw-sublabel {
  font-family: var(--pfw-mono); font-size: 11px; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--pfw-muted);
}
html[lang^="ko"] .pfw-sublabel { font-family: var(--font-sans, sans-serif); letter-spacing: 0.02em; }

/* ── 플레이스홀더 박스 ── */
.pfw-ph {
  display: flex; align-items: center; justify-content: center;
  border: 1.5px dashed #C3C9D6; border-radius: 14px;
  background: rgba(255,255,255,.6); color: var(--pfw-muted);
  font-family: var(--pfw-mono); font-size: 12px; letter-spacing: .02em;
  text-align: center; padding: 12px;
}
.pfw-sec--soft .pfw-ph { background: rgba(255,255,255,.55); }
.pfw-ph--kpi    { min-height: 96px; }
.pfw-ph--idx    { min-height: 64px; gap: 12px; text-decoration: none; }
.pfw-ph--idx b  { font-family: var(--pfw-mono); font-size: 16px; color: var(--pfw-ink); }
.pfw-ph--idx span { font-size: 12.5px; color: var(--pfw-ink); font-family: var(--font-sans, sans-serif); font-weight: 600; }
.pfw-ph--idx i  { font-style: normal; font-weight: 700; color: var(--pfw-blue-d); }
.pfw-ph--strip  { min-height: 44px; margin-top: 12px; }
.pfw-ph--filter { min-height: 48px; margin-bottom: 12px; }
.pfw-ph--cases  { min-height: 520px; }
.pfw-ph--badges { min-height: 88px; }
.pfw-ph--table  { min-height: 380px; }
.pfw-ph--rows   { min-height: 320px; }
.pfw-ph--cards  { min-height: 200px; }
.pfw-ph--faq    { min-height: 300px; }
.pfw-ph--cta    { min-height: 200px; border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.05); color: rgba(255,255,255,.65); }

.pfw-idx { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }

/* ── 모바일 ── */
@media (max-width: 768px) {
  .pfw { --pfw-px: 24px; --pfw-sec: 64px; }
  .pfw-hero { padding-top: 56px; padding-bottom: 0; }
  .pfw-kpis { grid-template-columns: 1fr; gap: 16px; }
  .pfw-idx { grid-template-columns: 1fr; }
  .pfw-ph--cases { min-height: 360px; }
  .pfw-ph--table, .pfw-ph--rows { min-height: 240px; }
}

/* 옛 page-proof.css가 functions 쪽에서 함께 로드될 때 id 규칙(#verified 등)이
   섹션 리듬을 덮는 것 방지 — id+class로 재선언해 리듬 단일화 유지 */
#verified.pfw-sec, #recognized.pfw-sec { padding-bottom: var(--pfw-sec); }

/* ═══ 히어로 — cubig.ai/proof 정합 (2026-08-25): 2컬럼 좌 카피 / 우 stats 헤어라인 ═══
   폰트는 캡슐 Manrope, 강조색은 브랜드 블루(공홈 serif·바이올렛 → 캡슐 시스템으로 치환). */
/* 히어로 상단 여백 = 다른 페이지(제품·아키텍처 .s1-hero)와 동일 정본 (2026-08-25).
   하단은 로고 마퀴가 바로 따르므로 제거 → 마퀴 위/아래 여백을 대칭(마퀴 margin 64/64)으로. */
.pfw-hero { padding-top: clamp(64px, 7vw, 104px); padding-bottom: 0; }
.pfw-hero-cols { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(40px, 5vw, 80px); align-items: stretch; }
.pfw-hero-main { min-width: 0; }

.pfw-eyebrow {
  display: block; font-family: var(--pfw-mono);
  font-size: 12.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: var(--pfw-blue-d); margin-bottom: 16px;
}
html[lang^="ko"] .pfw-eyebrow { font-family: var(--font-sans, 'Manrope', sans-serif); letter-spacing: .04em; }
.pfw-h1 {
  font-size: clamp(34px, 4.3vw, 52px); line-height: 1.12; letter-spacing: -.03em;
  font-weight: 700; max-width: 17ch; word-break: keep-all;
}
/* 2문장 헤드라인 — 각 문장을 블록으로(줄 분리), 2번째만 블루 강조 */
.pfw-h1-l1, .pfw-h1-accent { display: block; }
.pfw-h1-accent { color: var(--pfw-blue); }
.pfw-desc { font-size: clamp(15.5px, 1.6vw, 17.5px); line-height: 1.7; color: var(--pfw-muted); max-width: 560px; margin-top: 24px; }

/* stats — 가로 정렬(좌 큰 값 / 우 라벨·부연), 헤어라인 구분 (공홈 hero-stat 이식) */
/* stats 컬럼 = 좌측 카피 블록과 같은 높이로 스트레치, 3행이 균등 분배 (2026-08-31) */
.pfw-hero-stats { display: flex; flex-direction: column; max-width: 460px; margin-left: auto; width: 100%; height: 100%; }
.pfw-hstat { display: flex; flex: 1; align-items: center; gap: 18px; padding: 16px 0; border-top: 1px solid var(--pfw-rule); }
.pfw-hstat:last-child { border-bottom: 1px solid var(--pfw-rule); }
.pfw-hs-after {
  flex: 0 0 150px; white-space: nowrap;
  font-family: var(--pfw-mono); font-size: 26px; font-weight: 700; letter-spacing: -.02em;
  color: var(--pfw-blue-d); line-height: 1.05;
}
.pfw-hs-info { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pfw-hs-label { font-size: 13.5px; font-weight: 600; color: var(--pfw-ink); }
.pfw-hs-from { font-size: 12.5px; color: var(--pfw-muted); line-height: 1.45; }

@media (max-width: 900px) {
  .pfw-hero-cols { grid-template-columns: 1fr; gap: 40px; }
  .pfw-hero-stats { max-width: 100%; margin-left: 0; }
  .pfw-hs-after { flex-basis: 120px; font-size: 22px; }
}

/* ── 고객사 로고 마퀴 — 솔루션 히어로(.svm) 정합: 로고만 흐름, 라인·배경·타일·타이틀 없음 ── */
/* 마퀴 위 여백만(히어로↔마퀴 붙임) · 아래는 바로 밴드가 이어지므로 0 — 밴드 자체 padding(96)이 단일 여백.
   (이전엔 마퀴 margin-bottom 93 + 밴드 padding 96이 겹쳐 189px 이중 여백으로 떠 보였다.) */
.pfw-marq { margin-top: clamp(40px, 5vw, 64px); margin-bottom: clamp(40px, 5vw, 64px); overflow-x: clip; }
.pfw-marq-logos {
  width: 100%; max-width: 100%; overflow-x: clip; overflow-y: visible;
  -webkit-mask: linear-gradient(90deg, transparent 0, #000 110px, #000 calc(100% - 110px), transparent 100%);
          mask: linear-gradient(90deg, transparent 0, #000 110px, #000 calc(100% - 110px), transparent 100%);
}
.pfw-marq-track { display: flex; width: max-content; animation: pfw-marq 48s linear infinite; }
.pfw-marq-logos:hover .pfw-marq-track { animation-play-state: paused; }
@keyframes pfw-marq { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.pfw-marq-row { display: flex; align-items: center; gap: 72px; padding-right: 72px; }
.pfw-marq-logo { height: 110px; width: auto; object-fit: contain; } /* 솔루션 .svm__logo와 동일(공홈 정합) */
@media (prefers-reduced-motion: reduce) {
  .pfw-marq-track { animation: none; flex-wrap: wrap; justify-content: center; width: 100%; }
  .pfw-marq-row[aria-hidden] { display: none; }
  .pfw-marq-row { flex-wrap: wrap; justify-content: center; gap: 24px 44px; padding-right: 0; width: 100%; }
  .pfw-marq-logos { -webkit-mask: none; mask: none; }
}
@media (max-width: 640px) {
  .pfw-marq-logo { height: 60px; }
  .pfw-marq-row { gap: 44px; padding-right: 44px; }
  .pfw-marq-logos {
    -webkit-mask: linear-gradient(90deg, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%);
            mask: linear-gradient(90deg, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%);
  }
}

/* ═══════════════ 실물 컴포넌트 (2026-08-25) — 가독성 우선 ═══════════════
   원칙: 위계 명료(제목 vs muted 메타), 행 단위 스캔, 본문 14.5/1.65,
   색은 브랜드 블루 + 상태 semantic 최소. */

/* ── 공용: 도트·서브라벨 뒤 본문 간격 ── */
.pfw-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; display: inline-block; }
.pfw-dot--blue  { background: var(--pfw-blue); }
.pfw-dot--teal  { background: #14867B; }
.pfw-dot--amber { background: #C98A1A; }
.pfw-dot--coral { background: #D46A5A; }
.pfw-dot--all   { background: linear-gradient(90deg, var(--pfw-blue), #14867B, #C98A1A); }
.pfw-sub p { font-size: 13.5px; color: var(--pfw-muted); margin-top: 6px; max-width: 60ch; }
.pfw-sub { margin: 56px 0 18px; }
.pfw-ch + .pfw-sub, .pfw-ch ~ .pfw-sub:first-of-type { margin-top: 0; }
/* 장 lead — 솔루션 __lead 값 */
.pfw-ch-d { font-size: clamp(15px, 1.1vw, 16.5px); color: var(--color-text, #3a3d5e); max-width: 60ch; margin: 0 auto; line-height: 1.65; }

/* ── A장 · 필터 ── */
/* ── 필터 — 세그먼티드 컨트롤 (2026-08-25 v2): 한 컨테이너, 활성=흰 카드 부상 ── */
.pfw-filter {
  display: flex; gap: 2px; width: max-content; max-width: 100%;
  margin: 0 auto 20px; padding: 4px;
  background: #EAEDF4; border-radius: 999px;
  overflow-x: auto; scrollbar-width: none;
}
.pfw-filter::-webkit-scrollbar { display: none; }
.pfw-filter-btn {
  display: inline-flex; align-items: center; gap: 7px; white-space: nowrap;
  border: 0; background: transparent; cursor: pointer;
  font-family: inherit; font-size: 13px; font-weight: 600; color: var(--pfw-muted);
  padding: 8px 15px; border-radius: 999px;
  transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.pfw-filter-btn:hover { color: var(--pfw-ink); }
.pfw-filter-btn.is-active {
  background: #fff; color: var(--pfw-ink);
  box-shadow: 0 1px 3px rgba(15,17,48,.12), 0 1px 1px rgba(15,17,48,.06);
}
.pfw-filter-n {
  font-family: var(--pfw-mono); font-size: 11px; font-weight: 700;
  color: var(--pfw-muted); background: rgba(15,17,48,.06);
  padding: 1.5px 7px; border-radius: 999px; font-variant-numeric: tabular-nums;
}
.pfw-filter-btn.is-active .pfw-filter-n { color: var(--pfw-blue-d); background: var(--color-accent-green-tint,#E0EEFF); }

.pfw-cases { display: flex; flex-direction: column; gap: 12px; }
.pfw-case {
  background: #fff; border: 1px solid var(--pfw-rule); border-radius: 14px;
  overflow: hidden; transition: border-color .15s ease, box-shadow .15s ease;
}
.pfw-case:hover { border-color: var(--color-primary-soft, #85B3FF); box-shadow: 0 8px 24px -14px rgba(26,111,255,.35); }
.pfw-case.is-hidden { display: none; }
/* ── 케이스 헤더 행 (2026-08-25 v2): 한 줄 — 번호 · 산업 배지(컬러 틴트) · 제목 ─ 토글 ── */
.pfw-case-hd {
  display: grid; grid-template-columns: auto auto minmax(0,1fr) auto; gap: 14px;
  align-items: center; padding: 18px 24px; cursor: pointer; user-select: none;
}
.pfw-case-hd:focus-visible { outline: 2px solid var(--pfw-blue); outline-offset: -2px; }
.pfw-case-no {
  font-family: var(--pfw-mono); font-size: 12px; font-weight: 700;
  color: var(--pfw-muted); font-variant-numeric: tabular-nums;
}
.pfw-case.is-open .pfw-case-no { color: var(--pfw-blue-d); }
/* 산업 배지 — 컬러 틴트로 산업 구분을 1차 시각 신호로 */
.pfw-cbadge {
  display: inline-flex; align-items: center;
  font-size: 12px; font-weight: 700; letter-spacing: -.005em;
  padding: 5px 12px; border-radius: 999px; white-space: nowrap;
}
.pfw-cbadge--blue  { background: var(--color-accent-green-tint,#E0EEFF); color: var(--pfw-blue-d); }
.pfw-cbadge--teal  { background: #D9EEE9; color: #0C6152; }
.pfw-cbadge--amber { background: #F5E9D2; color: #8A5E0E; }
.pfw-cbadge--coral { background: #F8E2DC; color: #A8442F; }
.pfw-case-title {
  min-width: 0; font-size: 16px; font-weight: 700; letter-spacing: -.01em;
  line-height: 1.4; color: var(--pfw-ink);
}

/* toggle: 원형 +/× (열리면 블루 채움 + 45° 회전) */
.pfw-case-toggle {
  position: relative; width: 30px; height: 30px; border-radius: 50%;
  border: 1px solid var(--pfw-rule); flex: 0 0 auto;
  transition: background .15s ease, border-color .15s ease, transform .2s ease;
}
.pfw-case-toggle::before, .pfw-case-toggle::after {
  content: ""; position: absolute; top: 50%; left: 50%; background: var(--pfw-muted);
  transform: translate(-50%,-50%); transition: background .15s ease;
}
.pfw-case-toggle::before { width: 11px; height: 1.6px; }
.pfw-case-toggle::after  { width: 1.6px; height: 11px; }
.pfw-case:hover .pfw-case-toggle { border-color: var(--pfw-blue); }
.pfw-case.is-open .pfw-case-toggle { background: var(--pfw-blue); border-color: var(--pfw-blue); transform: rotate(135deg); }
.pfw-case.is-open .pfw-case-toggle::before,
.pfw-case.is-open .pfw-case-toggle::after { background: #fff; }

/* 아코디언 펼침 애니메이션 (2026-08-31): JS가 max-height=실측 높이 셋, CSS는 트랜지션만.
   display 토글 불가·grid 0fr 미붕괴 회피. 초기 max-height:0(닫힘)에서 JS가 열린 카드만 높이 부여. */
/* 아코디언 펼침 애니메이션 (2026-08-31): JS가 max-height=뷰포트별 실측 높이 셋(모바일 세로스택 클립 없음),
   CSS는 트랜지션만. is-open 규칙(3000px)은 JS 실행 전 열린 카드 FOUC 방지용 fallback(JS가 정확값으로 덮음). */
.pfw-case-body { overflow: hidden; max-height: 0; opacity: 0;
  transition: max-height .34s cubic-bezier(.4,0,.2,1), opacity .26s ease; }
.pfw-case.is-open .pfw-case-body { max-height: 3000px; opacity: 1; }
.pfw-case-inner { padding: 4px 24px 26px; }
@media (prefers-reduced-motion: reduce) { .pfw-case-body { transition: none; } }

/* ── 전환 스토리: 이전 → 이후 (2단 대비) ── */
.pfw-xform { display: grid; grid-template-columns: 1fr auto 1fr; gap: 14px; align-items: stretch; margin-top: 4px; }
.pfw-xcol { border-radius: 12px; padding: 18px 20px; border: 1px solid var(--pfw-rule); }
.pfw-xcol--before { background: #FBF3F1; border-color: #EFD8D1; }
.pfw-xcol--after  { background: #EFF7F3; border-color: #CFE7DD; }
.pfw-xhead { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.pfw-xlabel {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--pfw-mono); font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em; margin-right: 2px;
}
.pfw-xlabel::before { content: ""; width: 7px; height: 7px; border-radius: 50%; }
.pfw-xlabel--warn { color: #A8442F; }
.pfw-xlabel--warn::before { background: #C9573F; }
.pfw-xlabel--good { color: #0C6152; }
.pfw-xlabel--good::before { background: #12876F; }
/* 상태 pill = 상태(강조) + 라벨(보조) 2부 구성 */
.pfw-xstate {
  display: inline-flex; align-items: baseline; gap: 6px;
  font-size: 11.5px; padding: 4px 11px; border-radius: 999px;
  background: #fff; border: 1px solid transparent;
}
.pfw-xstate strong { font-weight: 800; letter-spacing: -.01em; }
.pfw-xstate em { font-style: normal; font-weight: 500; color: var(--pfw-muted); }
.pfw-xstate--warn { border-color: #EBCFC7; }
.pfw-xstate--warn strong { color: #A8442F; }
.pfw-xstate--good { border-color: #C4E2D6; }
.pfw-xstate--good strong { color: #0C6152; }
.pfw-xtext { font-size: 14.5px; line-height: 1.65; color: var(--color-text,#141414); margin: 0; }
.pfw-xtext strong { font-weight: 700; color: var(--pfw-ink); }
.pfw-xarrow {
  align-self: center; color: var(--pfw-blue); display: flex;
  width: 36px; height: 36px; border-radius: 50%; align-items: center; justify-content: center;
  background: var(--color-accent-green-tint,#E0EEFF);
}

/* ── 신뢰 경계 — 파선 레일 사이 캡션 (경계 은유: Flow/Bridge, Bible-safe) ── */
.pfw-xbound { display: flex; align-items: center; gap: 14px; margin-top: 12px; }
.pfw-xbound::before, .pfw-xbound::after { content: ""; flex: 1; border-top: 1px dashed var(--color-primary-soft,#9CC1FF); }
.pfw-xbound span {
  font-family: var(--pfw-mono); font-size: 11px; font-weight: 600;
  letter-spacing: .02em; color: var(--pfw-blue-d); white-space: normal; text-align: center;
}
html[lang^="ko"] .pfw-xbound span { font-family: var(--font-sans,'Manrope',sans-serif); }

/* ── 무엇이 달라졌나 (콜아웃) ── */
.pfw-changed {
  margin-top: 14px; padding: 16px 20px; border-radius: 12px;
  background: var(--color-accent-green-tint,#E0EEFF);
}
.pfw-changed-label { display: block; font-family: var(--pfw-mono); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--pfw-blue-d); margin-bottom: 7px; }
.pfw-changed-text { font-size: 14.5px; line-height: 1.65; color: var(--pfw-ink); margin: 0; }
.pfw-changed-text strong { font-weight: 700; }

/* ── 동작 방식 (가로 스텝 카드) ── */
.pfw-steps { margin-top: 24px; }
.pfw-steps-label, .pfw-repro-label, .pfw-arts-label { display: block; font-family: var(--pfw-mono); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--pfw-muted); margin-bottom: 12px; }
.pfw-steplist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px,1fr)); gap: 10px; }
.pfw-step {
  display: flex; gap: 11px; align-items: flex-start; padding: 14px 15px;
  background: #fff; border: 1px solid var(--pfw-rule); border-radius: 12px;
}
.pfw-stepn {
  flex: 0 0 24px; width: 24px; height: 24px; border-radius: 50%;
  background: var(--color-accent-green-tint,#E0EEFF); color: var(--pfw-blue-d);
  font-family: var(--pfw-mono); font-size: 12px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
}
.pfw-step-body { min-width: 0; display: flex; flex-direction: column; gap: 4px; padding-top: 2px; }
.pfw-step-label { font-size: 13.5px; font-weight: 700; color: var(--pfw-ink); letter-spacing: -.01em; }
.pfw-step-text { font-size: 12.5px; line-height: 1.55; color: var(--pfw-muted); }

/* ── 재현 + 근거 (푸터 2단) ── */
.pfw-repro {
  margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--pfw-rule);
  display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); gap: 28px; align-items: start;
}
.pfw-repro-main:only-child { grid-column: 1 / -1; }
.pfw-repro-text { font-size: 13.5px; line-height: 1.65; color: var(--color-text,#141414); margin: 0; }
.pfw-arts-list { display: flex; flex-wrap: wrap; gap: 7px; }
.pfw-art {
  font-family: var(--pfw-mono); font-size: 10.5px; font-weight: 600; padding: 6px 11px;
  background: var(--pfw-soft,#F7F8FB); border: 1px solid var(--pfw-rule); border-radius: 999px; color: var(--color-text,#3a3d5e);
}

/* ── B/C장 · 배지 스트립 ── */
/* ── 인증 카드 그리드 (2026-08-25 v2: 배지 → 카드, kicker·meta·desc 복원) ── */
.pfw-certs { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; }
.pfw-cert {
  background: var(--pfw-soft,#F7F8FB); border: 1px solid var(--pfw-rule);
  border-radius: 12px; padding: 18px 20px;
  display: flex; flex-direction: column; gap: 0;
  transition: border-color .15s ease;
}
.pfw-cert:hover { border-color: var(--color-primary-soft,#9CC1FF); }
.pfw-cert-kicker { font-family: var(--pfw-mono); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--pfw-blue-d); }
html[lang^="ko"] .pfw-cert-kicker { font-family: var(--font-sans,'Manrope',sans-serif); letter-spacing: .02em; }
.pfw-cert-short { font-size: 16.5px; font-weight: 800; letter-spacing: -.01em; color: var(--pfw-ink); margin-top: 8px; }
.pfw-cert-meta { font-family: var(--pfw-mono); font-size: 10.5px; line-height: 1.55; color: var(--pfw-muted); margin-top: 7px; }
.pfw-cert-desc { font-size: 13px; line-height: 1.6; color: var(--color-text,#3a3d5e); margin: 10px 0 0; }
.pfw-certs-foot { display: flex; justify-content: flex-end; margin-top: 14px; }

.pfw-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.pfw-badge {
  font-family: var(--pfw-mono); font-size: 13px; font-weight: 600; color: var(--pfw-ink);
  padding: 12px 22px; border: 1px solid var(--pfw-rule); border-radius: 999px;
  background: #fff; box-shadow: 0 1px 2px rgba(15,17,48,.04);
}
.pfw-trustlink {
  display: inline-flex; align-items: center; gap: 6px; margin-left: 6px;
  font-size: 14px; font-weight: 600; color: var(--pfw-blue-d);
  text-decoration: none; transition: gap .18s ease;
}
.pfw-trustlink:hover { gap: 10px; }

/* ── B/C장 · 행 리스트 (특허·논문·수상·보도 공용 컨테이너) ── */
.pfw-list { background: #fff; border: 1px solid var(--pfw-rule); border-radius: 14px; overflow: hidden; }
.pfw-list--mb { margin-bottom: 28px; }
.pfw-row { display: grid; gap: 18px; padding: 20px 26px; align-items: start; }
.pfw-row + .pfw-row { border-top: 1px solid var(--pfw-rule); }
.pfw-row--patent { grid-template-columns: 44px minmax(0,1fr) 190px; transition: background .15s ease; }
.pfw-row--patent:hover, .pfw-row--pub:hover { background: color-mix(in srgb, var(--pfw-blue) 3%, #fff); }
.pfw-row--pub    { grid-template-columns: 150px minmax(0,1fr); }
.pfw-row--award  { grid-template-columns: 84px minmax(0,1fr) auto; align-items: center; }
.pfw-row--press  { grid-template-columns: 200px minmax(0,1fr) auto; text-decoration: none; color: var(--pfw-ink); transition: background .15s ease; }
.pfw-row--press:hover { background: color-mix(in srgb, var(--pfw-blue) 3%, #fff); }
.pfw-row--press:hover .pfw-row-title { color: var(--pfw-blue-d); }
.pfw-row-n { font-family: var(--pfw-mono); font-size: 12px; font-weight: 600; color: var(--pfw-muted); padding-top: 3px; }
.pfw-row-venue {
  font-family: var(--pfw-mono); font-size: 10.5px; font-weight: 700; color: var(--pfw-blue-d);
  background: var(--color-accent-green-tint,#E0EEFF); border-radius: 999px;
  padding: 4px 11px; justify-self: start; align-self: start; margin-top: 2px; white-space: nowrap;
}
.pfw-row-year { font-family: var(--pfw-mono); font-size: 15px; font-weight: 700; color: var(--pfw-ink); }
.pfw-row-main { min-width: 0; display: block; }
.pfw-row-title { display: block; font-size: 15.5px; font-weight: 600; letter-spacing: -.01em; line-height: 1.42; transition: color .15s ease; }
.pfw-row-meta { display: block; font-family: var(--pfw-mono); font-size: 11px; color: var(--pfw-muted); margin-top: 6px; line-height: 1.6; }
.pfw-row--award .pfw-row-meta { font-family: inherit; font-size: 13px; }
.pfw-row-meta--src { margin-top: 3px; }
.pfw-row-desc { display: block; font-size: 13.5px; color: var(--color-text, #141414); line-height: 1.62; margin-top: 8px; }
.pfw-row--press .pfw-row-desc { color: var(--pfw-muted); margin-top: 6px; }
.pfw-arr { color: var(--pfw-blue); font-weight: 700; }
.pfw-row-side { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.pfw-status {
  font-family: var(--pfw-mono); font-size: 11px; font-weight: 600; line-height: 1;
  padding: 6px 11px; border-radius: 999px; white-space: nowrap;
}
.pfw-status--reg  { background: var(--color-accent-green-tint, #E0EEFF); color: var(--pfw-blue-d); }
.pfw-status--pend { background: var(--pfw-soft); color: var(--pfw-muted); border: 1px solid var(--pfw-rule); }
.pfw-status--fast { background: color-mix(in srgb, #C98A1A 12%, #fff); color: #8A5E0E; }
.pfw-status--sub  { background: transparent; color: var(--pfw-muted); border: 1px dashed var(--pfw-rule); }
.pfw-kind {
  font-family: var(--pfw-mono); font-size: 10.5px; font-weight: 600; white-space: nowrap;
  padding: 5px 10px; border-radius: 999px; background: var(--pfw-soft);
  border: 1px solid var(--pfw-rule); color: var(--pfw-muted); align-self: center;
}
.pfw-group-label {
  font-family: var(--pfw-mono); font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .07em; color: var(--pfw-blue-d);
  margin: 22px 0 10px;
}
/* 논문 more 디스클로저 */
.pfw-more { margin-top: 4px; }
.pfw-more summary {
  display: inline-flex; align-items: center; gap: 9px; cursor: pointer; list-style: none;
  font-size: 13.5px; font-weight: 600; color: var(--pfw-blue-d);
  padding: 10px 0; user-select: none;
}
.pfw-more summary::-webkit-details-marker { display: none; }
.pfw-more-plus {
  width: 22px; height: 22px; border-radius: 50%; flex: none;
  border: 1px solid var(--color-primary-soft,#9CC1FF); color: var(--pfw-blue-d);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 500; transition: transform .2s ease;
}
.pfw-more[open] .pfw-more-plus { transform: rotate(45deg); }
.pfw-more-note { font-size: 13.5px; line-height: 1.65; color: var(--color-text,#3a3d5e); max-width: 72ch; margin: 2px 0 0; padding-left: 31px; }
.pfw-footnote { font-size: 12.5px; color: var(--pfw-muted); margin-top: 16px; }

/* ── C장 · 파트너 카드 ── */
.pfw-cards { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.pfw-card {
  background: #fff; border: 1px solid var(--pfw-rule); border-radius: 14px; padding: 22px 24px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.pfw-card:hover { border-color: var(--color-primary-soft, #85B3FF); box-shadow: 0 8px 24px -14px rgba(26,111,255,.35); }
.pfw-card-kicker { font-family: var(--pfw-mono); font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--pfw-blue-d); }
.pfw-card-title { font-size: 16px; font-weight: 700; margin-top: 10px; letter-spacing: -.01em; }
.pfw-card-meta { font-family: var(--pfw-mono); font-size: 11px; color: var(--pfw-muted); margin-top: 5px; }
.pfw-card-desc { font-size: 13.5px; line-height: 1.62; color: var(--color-text, #141414); margin-top: 10px; }

/* ── FAQ ── */
.pfw-sub--faq { margin-top: 0; }
.pfw-faq-t { font-size: clamp(24px, 2.6vw, 32px); font-weight: 600; letter-spacing: -.02em; margin-top: 10px; }
.pfw-faq { margin-top: 26px; border-top: 1px solid var(--pfw-rule); }
.pfw-faq-item { border-bottom: 1px solid var(--pfw-rule); }
.pfw-faq-q {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  width: 100%; text-align: left; background: none; border: 0; cursor: pointer;
  padding: 20px 4px; font-family: inherit; font-size: 15.5px; font-weight: 600;
  color: var(--pfw-ink); letter-spacing: -.01em; line-height: 1.4;
}
.pfw-faq-q:hover span:first-child { color: var(--pfw-blue-d); }
.pfw-faq-ic { font-size: 20px; font-weight: 300; color: var(--pfw-muted); transition: transform .2s ease; flex: none; }
.pfw-faq-ic.is-open { transform: rotate(45deg); }
.pfw-faq-a { display: none; }
.pfw-faq-a.is-open { display: block; }
.pfw-faq-a-in { padding: 0 4px 22px; font-size: 14.5px; line-height: 1.7; color: var(--color-text, #141414); max-width: 72ch; }

/* ── CTA ── 솔루션 최종 CTA 정본(sol-cta) 이식: 밝은 배경 + 블루 radial 글로우,
   가운데 정렬 720 inner, 주=솔리드 블루 / 보조=블루 아웃라인 (2026-08-31) */
.pfw-cta {
  background:
    radial-gradient(620px 300px at 14% -8%, rgba(26, 111, 255, 0.13), transparent 62%),
    radial-gradient(700px 340px at 88% 108%, rgba(82, 144, 255, 0.15), transparent 62%),
    #fff;
}
.pfw-cta-inner { max-width: 720px; margin: 0 auto; text-align: center; }
.pfw-cta-h {
  font-size: clamp(26px, 3.2vw, 36px); font-weight: 700; line-height: 1.2;
  letter-spacing: -.02em; color: var(--pfw-ink); margin-bottom: 14px;
  word-break: keep-all; text-wrap: balance;
}
.pfw-cta-d {
  font-size: 15.5px; color: var(--pfw-muted); max-width: 620px;
  margin: 0 auto 26px; line-height: 1.7; word-break: keep-all;
}
.pfw-cta-btns { display: flex; gap: 12px; justify-content: center; align-items: center; flex-wrap: wrap; }
.pfw .pfw-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 22px; border-radius: 8px; border: 1px solid transparent;
  font-family: inherit; font-weight: 600; font-size: 15px; line-height: 22px;
  text-decoration: none; transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.pfw .pfw-btn--invert { background: var(--pfw-blue); color: #fff; }
.pfw .pfw-btn--invert:hover { background: var(--pfw-blue-d); }
.pfw .pfw-btn--ghost { background: transparent; color: #1458D4; border-color: var(--color-primary-soft, #85B3FF); }
.pfw .pfw-btn--ghost:hover { background: #EAF2FF; border-color: var(--pfw-blue); color: #0F43A8; }

/* ── 모바일 ── */
@media (max-width: 768px) {
  .pfw-case-hd { padding: 16px 18px; grid-template-columns: auto auto minmax(0,1fr) auto; row-gap: 10px; }
  .pfw-case-hd .pfw-case-title { grid-column: 1 / -1; grid-row: 2; }
  .pfw-case-inner { padding: 4px 18px 22px; }
  .pfw-xform { grid-template-columns: 1fr; gap: 10px; }
  .pfw-xarrow { transform: rotate(90deg); justify-self: center; }
  .pfw-repro { grid-template-columns: 1fr; gap: 18px; }
  .pfw-row { padding: 16px 18px; }
  .pfw-row--patent { grid-template-columns: 28px minmax(0,1fr); }
  .pfw-row--patent .pfw-row-side { grid-column: 2; flex-direction: row; flex-wrap: wrap; margin-top: 10px; }
  .pfw-row--pub { grid-template-columns: 1fr; gap: 6px; }
  .pfw-row--award { grid-template-columns: 1fr; gap: 6px; }
  .pfw-row--award .pfw-kind { justify-self: start; }
  .pfw-row--press { grid-template-columns: 1fr; gap: 6px; }
  .pfw-row--press .pfw-kind { justify-self: start; }
  .pfw-cards { grid-template-columns: 1fr; }
  .pfw-badges { gap: 8px; }
  .pfw-badge { padding: 10px 16px; font-size: 12px; }
}

/* ═══════════════════════════════════════════════════════════════════════
   pf3·pf4 캡슐 정합 오버라이드 (2026-08-31)
   page-proof.css는 origin/main 순정(라이브 1:1)이라 수정 안 함. 대신 이 블록이
   순정 뒤에 로드되어 ① 폰트·색 토큰을 캡슐 시스템(Manrope·브랜드 블루)으로 매핑
   ② 라이브 Framer 외부 배경 이미지(bgyoo-gif.github.io) 제거 → 깔끔한 배경.
   ═══════════════════════════════════════════════════════════════════════ */
.pf3-root, .pf4-root {
  --f-display:      var(--font-sans, 'Manrope', 'Pretendard', system-ui, sans-serif);
  --f-mono:         var(--font-mono, 'JetBrains Mono', ui-monospace, monospace);
  --c-primary:      var(--color-primary, #1A6FFF);
  --c-primary-dark: var(--color-primary-hover, #1458D4);
  --c-primary-soft: var(--color-surface-accent, #E0EEFF);
  --c-ink:          var(--color-heading, #0F1130);
  --c-ink-soft:     var(--color-text, #3a3d5e);
  --c-muted:        var(--color-text-muted, #6B7280);
  --c-rule:         var(--color-border, #E5E7EB);
  --c-bg:           #fff;
  --c-bg-soft:      var(--color-surface-subtle, #F7F8FB);
  --c-teal:         #14867B;
  --c-teal-dark:    #0E6B62;
}
/* 외부 텍스처 배경 제거 — 특허=흰 배경 / 파트너=플랫 소프트 밴드 */
.pf3-patents { background-image: none !important; background-color: #fff !important; }
.pf3-patents::before { display: none !important; }
.pf4-partners-section { background-image: none !important; background: var(--color-surface-subtle, #F7F8FB) !important; }
.pf4-partners-section::before { display: none !important; }

/* 하이브리드: pf3-card 그리드를 우리 챕터 구조(pfw-sec 밴드) 안에 넣을 때 —
   pf3-root의 흰 배경이 밴드를 덮지 않도록 투명화. 카드 token/container-type은 유지. */
.pfw-sec .pf3-root { background: transparent !important; }
.pfw-sec .pf3-grid { margin-top: 14px; }
.pfw-sec .pf3-grid--mb { margin-bottom: 24px; }
/* 연구 그룹 라벨 (라이브 pf3-sub-title 대신 우리 sublabel 톤) */
.pfw-glabel { display:block; font-family: var(--pfw-mono); font-size: 12px; font-weight: 700; letter-spacing:.02em; color: var(--pfw-blue-d); margin: 20px 0 2px; }
html[lang^="ko"] .pfw-glabel { font-family: var(--font-sans,'Manrope',sans-serif); }

/* ── B/C 소섹션·카드 디벨롭 (2026-08-31, 현세 피드백) ─────────────────────
   ① 소섹션 헤딩 = 진짜 소제목(설명문 제거, mono 라벨 → sans bold)
   ② 소섹션 간격 확대 ③ Trust CTA = 가운데 버튼
   ④ 카드 내부: 제목 승격 + 메타/본문 헤어라인 분리로 가독성 ── */
.pf3-root .pfw-sub { margin: 72px 0 20px; }
.pf3-root .pfw-sub:first-child { margin-top: 0; }
.pf3-root .pfw-sublabel {
  font-family: var(--font-sans, 'Manrope', sans-serif);
  font-size: 18px; font-weight: 800; letter-spacing: -.01em;
  text-transform: none; color: var(--pfw-ink);
}
.pf3-root .pfw-glabel { margin: 26px 0 4px; }

/* Trust Center CTA — 사이트 버튼 정본(홈 히어로 .p1-btn ghost 문법) 그대로:
   pill(999)·15/600·padding 14 26·화살표는 ::after. 폰트만 캡슐 sans. */
.pfw .pfw-trust-cta { display: flex; justify-content: center; margin-top: 36px; }
.pfw .pfw-trustbtn {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-sans, 'Manrope', sans-serif);
  font-size: 15px; font-weight: 600; line-height: 1;
  padding: 14px 26px; border-radius: 999px;
  background: #fff; color: var(--pfw-ink);
  border: 1px solid var(--pfw-rule); text-decoration: none;
  transition: transform .2s, border-color .2s, color .2s;
}
.pfw .pfw-trustbtn:hover { border-color: var(--pfw-blue); color: var(--pfw-blue); transform: translateY(-2px); }

/* 카드 내부 가독성 — 순정 pf3-card(제목 14.5·메타 10.5·본문 13/1.55) 승격 */
.pfw-sec .pf3-card { padding: 24px; gap: 0; }
.pfw-sec .pf3-badge { font-size: 10.5px; letter-spacing: .05em; }
.pfw-sec .pf3-card-title { font-size: 16px; line-height: 1.42; margin-top: 10px; letter-spacing: -.01em; }
.pfw-sec .pf3-card-title a { color: inherit; text-decoration: none; }
.pfw-sec .pf3-card-title a:hover { color: var(--pfw-blue-d); }
.pfw-sec .pf3-card-meta { font-size: 11px; line-height: 1.65; margin-top: 8px; }
.pfw-sec .pf3-card-body {
  font-size: 14px; line-height: 1.68; margin-top: 14px; padding-top: 14px;
  border-top: 1px solid var(--pfw-rule);
}

/* ── 라벨 레일 블록 (2026-08-31): 좌 sticky 소제목 / 우 카드 그리드.
   블록 사이 헤어라인 = 라이브 선 느낌. pf3-root 리셋보다 특이도 우위(.pfw). ── */
.pfw .pfw-block {
  display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 32px;
  align-items: start; padding: 44px 0; border-top: 1px solid var(--pfw-rule);
}
.pfw .pfw-block:first-child { border-top: 0; padding-top: 0; }
.pfw .pfw-block:last-child { padding-bottom: 0; }
.pfw .pfw-block-side { position: sticky; top: 96px; }
.pfw .pfw-block-label {
  font-family: var(--font-sans, 'Manrope', sans-serif);
  font-size: 18px; font-weight: 800; letter-spacing: -.01em;
  color: var(--pfw-ink); margin: 0;
}
.pfw .pfw-block-body { min-width: 0; }
.pfw .pfw-block-body .pfw-trust-cta { margin-top: 28px; }
.pfw .pfw-block-body .pfw-glabel { margin: 0 0 14px; }
.pfw .pfw-block-body .pf3-grid--mb + .pfw-glabel { margin-top: 32px; }
.pfw .pfw-block-body .pfw-footnote { margin-top: 14px; }
@media (max-width: 900px) {
  .pfw .pfw-block { grid-template-columns: 1fr; gap: 16px; padding: 36px 0; }
  .pfw .pfw-block-side { position: static; }
}

/* 라벨 레일 상단 정렬 fix (2026-08-31): 블록 안 그리드의 옛 margin-top 14 제거 +
   라벨 line-height를 낮춰 카드 상단 보더와 옵티컬 정렬 */
.pfw .pfw-block-body .pf3-grid { margin-top: 0; }
.pfw .pfw-block-label { line-height: 1.1; padding-top: 2px; }

/* FAQ — 사이트 정본(홈 .cap-faq) 정합 (2026-08-31): 가운데 720px 좁은 컬럼 +
   질문 15/600·행 패딩 17. 라이브 pf4 아코디언 동작은 유지, 배치·밀도만 사이트 문법. */
.pfw #faq .pf4-faq { max-width: 720px; margin: 0 auto; }
.pfw #faq .pf4-faq-q { padding: 17px 4px; font-size: 15px; font-weight: 600; }
.pfw #faq .pf4-faq-body-in { padding: 0 4px 18px; font-size: 14.5px; line-height: 1.7; }
.pfw #faq .pfw-ch { margin-bottom: 28px; }

/* FAQ 아이콘 — 홈(.cap-faq) 셰브론 정합 (2026-08-31): 15px muted, 열림 시 180° 회전
   (순정 pf4의 '+' 45° 회전 오버라이드) */
.pfw #faq .pf4-faq-ic { font-size: 0; display: inline-flex; transition: transform .2s ease; }
.pfw #faq .pf4-faq-ic svg { width: 15px; height: 15px; color: var(--pfw-muted); }
.pfw #faq .pf4-faq-ic--open { transform: rotate(180deg); }
