/* 본문 표현 블록 공통 (pbx-*) — 카드·표·단계·체크리스트·문제해결·요약박스. 사이트 팔레트 변수를 따르고 없으면 기본값 사용 */
.pbx{--pbx-c:var(--primary,var(--slate,#1E3A8A));--pbx-a:var(--accent,var(--orange,#F97316));--pbx-bg:#f4f6f8;--pbx-line:#dfe3e8;padding:44px 0;color:var(--text,#24272A)}
.pbx.alt{background:var(--bg-light,var(--surface-alt,#f4f6f8))}
.pbx-in{max-width:1080px;margin:0 auto;padding:0 20px;box-sizing:border-box}
.pbx-eyebrow{display:block;margin:0 0 6px;color:var(--pbx-a);font-weight:700;font-size:.82rem;letter-spacing:.05em}
.pbx h2{margin:0 0 12px;font-size:clamp(1.3rem,3.4vw,1.7rem);line-height:1.35;font-weight:800;color:var(--pbx-c);word-break:keep-all}
.pbx h3{margin:22px 0 10px;font-size:1.1rem;line-height:1.4;font-weight:700;color:var(--pbx-c);word-break:keep-all}
.pbx p{margin:0 0 12px;line-height:1.75;max-width:760px}
.pbx-lead{font-size:1.05rem;color:var(--text-muted,#555)}
/* 카드 */
.pbx-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}
.pbx-cards.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pbx-cards.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pbx-card{background:#fff;border:1px solid var(--pbx-line);border-top:3px solid var(--pbx-a);border-radius:10px;padding:16px 16px 14px;min-width:0}
.pbx-card b,.pbx-card strong{display:block;margin-bottom:6px;font-size:1rem;color:var(--pbx-c)}
.pbx-card p{margin:0;font-size:.93rem;line-height:1.6;color:var(--text-muted,#555)}
.pbx-card .ic{display:block;font-size:1.4rem;margin-bottom:6px}
/* 핵심요약 / 주의 */
.pbx-point,.pbx-warn{margin:18px 0;padding:16px 18px;border-radius:10px;border-left:5px solid var(--pbx-c);background:#eef2fb;max-width:860px}
.pbx-point .t,.pbx-warn .t{display:block;margin-bottom:4px;font-weight:800;font-size:.85rem;letter-spacing:.06em;color:var(--pbx-c)}
.pbx-warn{border-left-color:#d9480f;background:#fff4ec}.pbx-warn .t{color:#d9480f}
.pbx-point p,.pbx-warn p{margin:0;line-height:1.7}
/* 표 */
.pbx-tw{margin:16px 0;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--pbx-line);border-radius:10px;background:#fff}
.pbx-table{width:100%;border-collapse:collapse;min-width:520px;font-size:.93rem}
.pbx-table caption{caption-side:top;text-align:left;padding:10px 14px;font-weight:700;color:var(--pbx-c)}
.pbx-table th,.pbx-table td{padding:10px 14px;text-align:left;border-top:1px solid var(--pbx-line);line-height:1.55;vertical-align:top}
.pbx-table thead th{background:var(--pbx-c);color:#fff;border-top:0;white-space:nowrap}
.pbx-table tbody th{background:var(--pbx-bg);white-space:nowrap}
/* 단계 */
.pbx-steps{list-style:none;margin:18px 0;padding:0;display:flex;gap:12px;counter-reset:none}
.pbx-step{flex:1 1 0;min-width:0;position:relative;background:#fff;border:1px solid var(--pbx-line);border-radius:10px;padding:14px 14px 12px}
.pbx-step .n{display:inline-block;margin-bottom:6px;font-weight:900;font-size:1.25rem;color:var(--pbx-a);line-height:1}
.pbx-step b{display:block;margin-bottom:4px;color:var(--pbx-c)}
.pbx-step p{margin:0;font-size:.9rem;line-height:1.55;color:var(--text-muted,#555)}
.pbx-step:not(:last-child)::after{content:"→";position:absolute;right:-12px;top:50%;transform:translateY(-50%);width:12px;text-align:center;color:var(--pbx-a);font-weight:700;z-index:1}
/* 체크리스트 */
.pbx-check{list-style:none;margin:14px 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;max-width:860px}
.pbx-check li{position:relative;padding:9px 12px 9px 34px;background:#fff;border:1px solid var(--pbx-line);border-radius:8px;line-height:1.5;font-size:.95rem}
.pbx-check li::before{content:"✓";position:absolute;left:12px;top:8px;font-weight:900;color:var(--pbx-a)}
/* 문제→원인→확인→해결 / 시공전→작업→후 */
.pbx-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}
.pbx-flow.f3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pbx-fi{position:relative;background:#fff;border:1px solid var(--pbx-line);border-radius:10px;padding:14px;min-width:0}
.pbx-fi .t{display:block;margin-bottom:6px;font-size:.8rem;font-weight:800;letter-spacing:.05em;color:var(--pbx-a)}
.pbx-fi p{margin:0;font-size:.92rem;line-height:1.6}
.pbx-fi:not(:last-child)::after{content:"→";position:absolute;right:-12px;top:50%;transform:translateY(-50%);width:12px;text-align:center;color:var(--pbx-a);font-weight:700;z-index:1}
/* 관련 서비스 링크 */
.pbx-links{list-style:none;margin:14px 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.pbx-links a{display:inline-block;padding:9px 14px;border:1px solid var(--pbx-line);border-radius:999px;background:#fff;color:var(--pbx-c);font-weight:600;font-size:.92rem;text-decoration:none}
.pbx-links a:hover{border-color:var(--pbx-a);color:var(--pbx-a)}
@media (max-width:900px){.pbx-cards,.pbx-cards.c4{grid-template-columns:repeat(2,minmax(0,1fr))}.pbx-flow,.pbx-flow.f3{grid-template-columns:repeat(2,minmax(0,1fr))}.pbx-flow .pbx-fi::after{display:none}}
@media (max-width:700px){.pbx{padding:32px 0}.pbx-steps{flex-direction:column;gap:18px}.pbx-step:not(:last-child)::after{content:"↓";right:auto;left:50%;top:auto;bottom:-17px;transform:translateX(-50%);width:auto}.pbx-check{grid-template-columns:1fr}.pbx-cards.c2{grid-template-columns:1fr}}
@media (max-width:480px){.pbx-cards,.pbx-cards.c4,.pbx-flow,.pbx-flow.f3{grid-template-columns:1fr}}

/* ===== 모바일 최적화 (가로 스크롤 금지 · 표→카드 · 세로 재배치) ===== */
.pbx,.pbx *{box-sizing:border-box;min-width:0}
.pbx{overflow-wrap:anywhere;max-width:100%}
.pbx img,.pbx figure,.pbx iframe{max-width:100%;height:auto}
.pbx-table td,.pbx-table th{overflow-wrap:anywhere}
@media (max-width:760px){
  /* 지역 히어로: 테마별 2열 고정을 모바일에서 1열로 */
  body[class] .hero-box .container{grid-template-columns:minmax(0,1fr)!important}
  body[class] .hero-box .container>*{order:0!important;min-width:0}
  .hero-box h1,.hero-box .lead{overflow-wrap:anywhere;word-break:keep-all}
}
@media (max-width:700px){
  .pbx-tw{overflow:visible;border:0;background:none;border-radius:0}
  table.pbx-table{min-width:0!important;width:100%!important}
  .pbx-table thead th,.pbx-table tbody th{white-space:normal}
  /* 3열 이상 표 → 세로 정보 카드 */
  table.pbx-cardtable,table.pbx-cardtable tbody,table.pbx-cardtable tr,table.pbx-cardtable td,table.pbx-cardtable th{display:block;width:100%!important;min-width:0!important}
  table.pbx-cardtable{border:0!important;background:none!important}
  table.pbx-cardtable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  table.pbx-cardtable caption{display:block;padding:0 0 8px}
  table.pbx-cardtable tr{margin:0 0 12px;border:1px solid #dfe3e8;border-radius:10px;background:#fff;overflow:hidden}
  table.pbx-cardtable td,table.pbx-cardtable th{border:0!important;padding:9px 14px!important;text-align:left;font-size:.95rem;line-height:1.55;overflow-wrap:anywhere;word-break:keep-all}
  table.pbx-cardtable td+td,table.pbx-cardtable td+th{border-top:1px solid #eef0f3!important}
  table.pbx-cardtable td::before{content:attr(data-label);display:block;margin-bottom:2px;font-size:.76rem;font-weight:800;letter-spacing:.04em;color:var(--accent,var(--orange,#F97316))}
  table.pbx-cardtable tbody th[data-label]{background:var(--primary,var(--slate,#1E3A8A));color:#fff;font-weight:800}
  table.pbx-cardtable tbody th::before{display:none}
  table.pbx-cardtable tbody td:first-child:not([data-label=""])::before{display:block}
}
@media (max-width:340px){
  .pb-header-actions{gap:8px}
  .pb-header-actions .pb-btn{padding:10px 14px}
}
@media (max-width:480px){
  .hero-box{padding:28px 12px!important}
  body[class] .hero-box .container{padding:24px 18px!important}
  .pbx-in{padding:0 16px}
}
@media (max-width:480px){
  .pbx-flow,.pbx-flow.f3{gap:20px}
  .pbx-flow .pbx-fi:not(:last-child)::after{display:block;content:"↓";right:auto;left:50%;top:auto;bottom:-19px;transform:translateX(-50%);width:auto}
}
