/* 웹폰트(Pretendard) 오기 전 대체 글꼴을 같은 폭·높이로 맞춰 교체 순간 표·줄이 밀리지 않게(CLS).
   기준: Noto Sans CJK KR 대비 Pretendard 폭 한글 94%·숫자 100% → 95%, 높이 0.95/0.24em */
@font-face{font-family:"Pretendard Fallback";font-weight:100 599;src:local("Noto Sans CJK KR"),local("NotoSansCJKkr-Regular"),local("Noto Sans KR"),local("NotoSansKR-Regular"),local("Apple SD Gothic Neo"),local("AppleSDGothicNeo-Regular"),local("Malgun Gothic");size-adjust:95%;ascent-override:100%;descent-override:25.3%;line-gap-override:0%}
@font-face{font-family:"Pretendard Fallback";font-weight:600 900;src:local("Noto Sans CJK KR Bold"),local("NotoSansCJKkr-Bold"),local("Noto Sans KR Bold"),local("NotoSansKR-Bold"),local("Apple SD Gothic Neo Bold"),local("AppleSDGothicNeo-Bold"),local("Malgun Gothic Bold");size-adjust:95%;ascent-override:100%;descent-override:25.3%;line-gap-override:0%}
:root{color-scheme:light;
  /* 앱(src/app.css)과 같은 네이비 1색 팔레트 · 예전 파란 팔레트(#2B59F0/#5B8CFF)는 지웠다 */
  --bg:#f3f4f6; --surface:#ffffff; --surface-2:#f8f9fa; --surface-3:#f1f3f5; --border:#e3e6ea; --divider:#eef0f2; --text-1:#14171c; --text-2:#474f5b; --text-3:#5c6573; --brand:#1f3a87; --brand-soft:#eaeef6; --on-brand:#ffffff; --focus:#1f3a87; --ok-ink:#1f3a87; --ok-soft:#eaeef6; --warn-ink:#a15c07; --warn-soft:#fff5e6; --risk-ink:#b9440a; --risk-soft:#ffeee2; --gr-A:#4a5260;
  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-full:999px;
  --font:"Pretendard Variable",Pretendard,"Pretendard Fallback",-apple-system,BlinkMacSystemFont,system-ui,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif;
}


.rl-hero{display:block;margin:14px 0 22px;padding:18px 20px;border:1.5px solid var(--brand,#1f3a87);border-radius:16px;background:var(--surface,#fff);color:inherit;text-decoration:none}.rl-hero small{color:var(--text-3,#8b95a1);font-size:13px}.rl-hero b{display:block;font-size:20px;line-height:1.4;margin:4px 0 10px;letter-spacing:-.02em}.rl-hero ol{margin:0 0 10px;padding-left:20px;line-height:1.65;font-size:14.5px}.rl-go{font-weight:700;color:var(--brand,#1f3a87);font-size:14px}
.rlist{display:flex;flex-direction:column;gap:10px;margin:14px 0 18px}.rlist .zl{display:flex;flex-direction:column;gap:4px}.rlist .zl b{font-size:16px;line-height:1.45}.rl-new{border-color:var(--brand,#1f3a87)!important}
.sum3{margin:18px 0;padding:16px 18px;border-radius:14px;background:var(--surface-2,#f5f6f8);border:1px solid var(--border,#e3e6ea)}.sum3 b{display:block;margin-bottom:6px}.sum3 ol{margin:0;padding-left:20px}.sum3 li{margin:4px 0;line-height:1.6}
.ov th{width:34%;text-align:left;font-weight:600;color:var(--text-2);vertical-align:top}.ov td{word-break:keep-all;overflow-wrap:anywhere}.ov td,.ov th{padding:8px 10px;border-bottom:1px solid var(--border);font-size:14.5px}.ov{width:100%;min-width:0!important;border-collapse:collapse;table-layout:fixed}.shot{margin:18px auto;max-width:400px}.shot img{width:100%;height:auto;display:block;border-radius:14px}.shot figcaption{font-size:13px;color:var(--text-3);text-align:center;margin-top:6px}.hbox{margin:16px 0;padding:14px 16px;border:1px solid var(--border,#e5e7eb);border-left:4px solid var(--brand,#1f3a87);border-radius:10px;font-size:15px;line-height:1.75}.hbox b{display:block;font-size:13px;color:var(--brand,#1f3a87);margin-bottom:4px}.qsum li{margin:0 0 14px}.qsum li a{font-weight:700}.qsum li p{margin:4px 0 0;font-size:14px;line-height:1.6;color:var(--text-2)}.znote{font-size:15.5px;line-height:1.75}.tw.ax{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.tw.ax table{min-width:520px}.hx{border-collapse:collapse;width:100%}.hx th,.hx td{padding:8px 10px;border-bottom:1px solid var(--border,#e5e7eb);font-size:14px;text-align:left;word-break:keep-all;vertical-align:top}.byline{font-size:13px;color:var(--text-3);margin:-4px 0 16px}.gx{margin-top:28px;padding-top:6px;border-top:1px dashed var(--border,#e5e7eb)}.meta-list{font-size:14.5px;line-height:1.8}.big-mail{font-size:20px;font-weight:700}.zstory p{font-size:15.5px;line-height:1.8;margin:0 0 12px}.steps.tl li span{font-weight:400}.srcs{margin:10px 0;font-size:14px}.srcs summary{cursor:pointer;color:var(--text-2)}.srcs li{margin:6px 0;line-height:1.55}main figure,article figure{margin:18px 0}figure svg{display:block;width:100%;height:auto}@media(max-width:600px){main figure:has(svg){overflow-x:auto;-webkit-overflow-scrolling:touch}main figure svg{min-width:600px}main figure:has(svg)::before{content:"옆으로 밀어서 보기 →";display:block;position:sticky;left:0;text-align:right;font-size:12.5px;color:var(--text-3);margin-bottom:4px}}figure figcaption{font-size:13px;color:var(--text-3);margin-top:6px;line-height:1.55}
.hbars.w .hb{grid-template-columns:118px 1fr 54px}.hbars.w .hb-l{font-size:13.5px}.hbars{margin:12px 0 18px}.hb{display:grid;grid-template-columns:110px 1fr 32px;gap:10px;align-items:center;margin:6px 0;font-size:14px}.hb-t{height:12px;border-radius:6px;background:var(--surface-2,#eef0f3);overflow:hidden}.hb-t i{display:block;height:100%;background:var(--brand,#1f3a87);border-radius:6px}.hb b{text-align:right;font-variant-numeric:tabular-nums}
.mean{margin:10px 0;padding:12px 14px;border-left:3px solid var(--brand,#1f3a87);background:var(--surface-2,#f7f8fa);border-radius:0 10px 10px 0}.mean h3{margin:0 0 4px;font-size:15px}.mean p{margin:0;line-height:1.65}
.zcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin:12px 0}.zcard{padding:14px 16px;border:1px solid var(--border,#e3e6ea);border-radius:14px;background:var(--surface,#fff)}.zc-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}.zc-h h3{margin:0;font-size:16px}.zc-s{margin:6px 0 4px;font-size:13px}.zc-k{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.zc-k div{padding:8px 10px;border-radius:10px;background:var(--surface-2,#f5f6f8)}.zc-k span{display:block;font-size:11px;color:var(--text-3,#8b95a1);line-height:1.3}.zc-k b{font-size:15px;font-variant-numeric:tabular-nums}.zc-bw{margin:6px 0;font-size:13px;color:var(--brand)}.zc-bw.no{color:var(--risk-ink)}.zc-a{margin:8px 0 0;font-size:13px}
@media (max-width:420px){.zcards{grid-template-columns:1fr}.hb{grid-template-columns:96px 1fr 28px}}
.ad{margin:28px 0 8px;min-height:118px;text-align:center}.ad-l{display:block;text-align:left;font-size:11px;color:var(--text-3,#8b95a1);margin-bottom:2px}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;background:var(--bg)}
body{color:var(--text-1);font-family:var(--font);font-size:15px;line-height:1.7;letter-spacing:-.01em;word-break:keep-all;overflow-wrap:anywhere;-webkit-text-size-adjust:100%}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:2px}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}
.top{background:var(--surface);border-bottom:1px solid var(--border)}
.top .in{max-width:880px;margin:0 auto;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.logo{font-weight:800;color:var(--text-1);font-size:16px}
.logo span{color:var(--brand)}
.top nav{display:flex;gap:14px;font-size:14px;flex-wrap:wrap}
.top nav a{color:var(--text-2)}
.top nav a[aria-current]{color:var(--brand);font-weight:700}
main{max-width:880px;margin:0 auto;padding:28px 16px 64px}
.eyebrow{font-size:13px;color:var(--brand);font-weight:700;letter-spacing:.02em}.eyebrow a{display:inline-block;line-height:24px}
h1{font-size:clamp(24px,5vw,32px);line-height:1.3;margin:8px 0 10px;text-wrap:balance;letter-spacing:-.02em}
h2{font-size:20px;line-height:1.4;margin:36px 0 10px;text-wrap:balance}
h3{font-size:16px;margin:22px 0 6px}
p{margin:8px 0}
.lede{color:var(--text-2);font-size:16px;max-width:66ch}
.meta{color:var(--text-3);font-size:13px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 20px;margin:14px 0}
.kpis{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.kpis>.kpi{flex:1 1 170px}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:12px 14px;min-width:0}
.kpi span{display:block;font-size:12.5px;color:var(--text-3)}
.kpi b{display:block;font-size:clamp(17px,5vw,22px);line-height:1.3;word-break:keep-all;font-variant-numeric:tabular-nums;margin-top:2px}
.kpi small{display:block;font-size:12px;color:var(--text-3);margin-top:2px}
.tw{overflow-x:auto;margin:12px 0;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:14px;min-width:560px}
th,td{padding:9px 12px;border-bottom:1px solid var(--divider);text-align:left;vertical-align:top}
th{background:var(--surface-2);font-weight:700;white-space:nowrap;color:var(--text-2);font-size:13px}
tbody tr:last-child td{border-bottom:0}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pill{display:inline-block;font-size:12px;font-weight:700;padding:2px 8px;border-radius:var(--r-full);white-space:nowrap}
.p-ok{background:var(--ok-soft);color:var(--ok-ink)}
.p-warn{background:var(--warn-soft);color:var(--warn-ink)}
.p-mute{background:var(--surface-3);color:var(--text-3)}
.note{font-size:13.5px;color:var(--text-2);background:var(--surface-2);border-radius:var(--r-md);padding:12px 14px;margin:12px 0}
.disc{font-size:12.5px;color:var(--text-3);border-top:1px solid var(--border);margin-top:40px;padding-top:14px}
.cta{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:var(--r-md);font-weight:700;font-size:14.5px;border:1px solid var(--border);background:var(--surface);color:var(--text-1)}
.btn.primary{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
.btn:hover{text-decoration:none;border-color:var(--brand)}
ul.links{padding-left:1.1em}
ul.links li{margin:3px 0}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px}
.zl{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px;color:var(--text-1);min-width:0}
.zl small{display:block;color:var(--text-3);font-size:12.5px}
.chart svg{width:100%;height:auto;display:block}
.chart{overflow-x:auto}
.chart .ax{fill:var(--text-3);font-size:12.5px}
.chart .bar{fill:var(--gr-A)}
.chart .bar.hi{fill:var(--brand)}
.chart .lab{fill:var(--text-1);font-size:12.5px;font-weight:700}
.chart .grid{stroke:var(--divider)}
select{font:inherit;font-size:15px;padding:8px 10px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-1);max-width:100%}
label{font-weight:700;font-size:14px;display:block;margin:12px 0 6px}
.steps{list-style:none;padding:0;margin:10px 0}
.steps li{display:flex;gap:10px;padding:7px 0;border-bottom:1px dashed var(--divider)}
.steps li b{min-width:7.5em}
.steps li span{color:var(--text-3);font-variant-numeric:tabular-nums}
.steps li.cur b{color:var(--brand)}
foot,footer{display:block}
footer.f{border-top:1px solid var(--border);padding-top:16px;margin-top:24px;max-width:880px;margin:0 auto;padding:0 16px 40px;font-size:13px;color:var(--text-3)}
footer.f a{color:var(--text-2)}
/* 좁은 화면: 표를 카드로 (td의 data-l을 앞에 붙임) */
@media (max-width:600px){
  .tw.cards{border:0;background:none}
  .tw.cards table{min-width:0}
  .tw.cards thead{display:none}
  .tw.cards tr{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:8px 12px;margin:8px 0}
  .tw.cards td{display:flex;justify-content:space-between;gap:12px;border:0;padding:4px 0;text-align:right}
  .tw.cards td::before{content:attr(data-l);color:var(--text-3);font-size:12.5px;text-align:left;flex:0 0 auto}
  .tw.cards td.t{display:block;text-align:left;font-weight:700;font-size:15px;padding-bottom:6px}
  .tw.cards td.t::before{content:none}
  .tw.cards.compact tr{display:flex;flex-wrap:wrap;gap:2px 10px;padding:8px 12px}
  .tw.cards.compact td{display:inline;padding:0;font-size:13.5px}
  .tw.cards.compact td::before{content:none}
  .tw.cards.compact td.t{flex:1 1 100%;font-size:14.5px;padding:0 0 2px}
}
dl.gl{margin:8px 0;font-size:13.5px;color:var(--text-2)}
dl.gl dt{font-weight:700;color:var(--text-1);display:inline}
dl.gl dd{display:inline;margin:0}
dl.gl div{margin:3px 0}
.mbline{font-size:14px;background:var(--brand-soft);color:var(--text-1);border-radius:var(--r-md);padding:12px 14px;margin:14px 0}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.logo{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--text-1)}
/* 디자이너 2차 검수 반영 */
.logo span{color:var(--text-1)}
.mean{border-left:0!important;padding-left:14px}
.zc-bw b{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--brand-soft);color:var(--text-1)}
.zc-bw.no b{background:var(--risk-soft);color:var(--risk-ink)}
.shot-txt{margin:12px 0;padding:10px 12px;border-left:3px solid var(--brand);background:color-mix(in srgb,var(--brand) 6%,transparent);font-size:14px;line-height:1.6}.shot-txt b{margin-right:6px}

/* 재개픽 로고(앱 헤더와 같은 모양) */
.logo{display:inline-flex;align-items:center;gap:8px;text-decoration:none!important}.logo-i{width:28px;height:28px;border-radius:7px;flex:none}.logo .logo-t{font-size:19px;font-weight:800;letter-spacing:-.04em;color:var(--text-1)}.logo .logo-s{font-size:12px;font-weight:600;color:var(--text-3);letter-spacing:-.01em}.logo .logo-en{margin-left:-3px;font-size:13px;font-weight:700;letter-spacing:.03em;color:var(--brand);align-self:center;line-height:1;padding-top:2px}@media (max-width:640px){.logo-i{width:26px;height:26px}.logo .logo-s{font-size:11.5px;white-space:nowrap}}

/* 문단·목록 안 링크는 밑줄(색만으로 구분하지 않게 · axe link-in-text-block) */
main p a:not(.btn):not(.zl):not(.rl-hero),main li a:not(.btn):not(.zl),main td a,.ov a,.lede a,.note a,.meta a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,currentColor 55%,transparent)}
main p a:not(.btn):hover,main li a:not(.btn):hover{text-decoration-color:currentColor}
.qsum li a{text-decoration:none}
/* 구역 위치 지도(정적 SVG) */
.mm svg{display:block;width:100%;height:auto;border-radius:14px;border:1px solid var(--border,#e3e6ea)}
.mm .meta{margin-top:6px}
main figure.mm{overflow:visible}main figure.mm svg{min-width:0}main figure.mm::before{content:none!important;display:none}
.zc-k span small{display:block;font-size:10px}
/* 머리 검색: 정적 페이지에서 바로 구역 검색 → /?q= 로 앱 검색 열기 */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.top .tsr{display:block;margin:0}.top .tsr input{width:100%;height:40px;padding:0 12px 0 34px;border:1px solid var(--border);border-radius:999px;background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 12px 50%;color:var(--text-1);font:500 15px var(--font);-webkit-appearance:none;appearance:none}.top .tsr input::placeholder{color:var(--text-3)}.top .tsr input:focus{outline:2px solid var(--focus);outline-offset:1px;border-color:transparent}
/* 좁은 화면: 로고 옆 남는 칸을 검색창으로(높이 40px 터치 대상) · 메뉴는 아래 줄 */
@media (max-width:859.98px){.top .in{gap:8px 12px;padding:10px 16px}.top .logo{flex:none}.top .tsr{order:2;flex:1 1 0;min-width:112px;max-width:320px;margin-left:auto}.top nav{order:3;flex:1 1 100%}}
@media (max-width:380px){.top .logo .logo-s{display:none}}
@media (min-width:860px){.top .in{flex-wrap:nowrap}.top nav{flex-wrap:nowrap;white-space:nowrap}.top .tsr{flex:0 1 200px;min-width:140px}.top .tsr input{height:36px;font-size:14px}}
/* 구역 정식 이름(제목은 앱과 같은 짧은 이름) */
.formal{margin:-4px 0 12px;font-size:13.5px;color:var(--text-3);line-height:1.5}
/* 구역 페이지 첫 화면: 앱 구역 상세와 같은 3숫자(지금 필요한 돈 · 입주까지 현금 · 언제 입주/입주권) + 신뢰 한 줄 (tools/zpages.py key3_html) */
.zk{margin:14px 0 18px}
.zk-hd{margin:10px 0 0;padding:0;font-size:13px;line-height:1.45;color:#4E5968}.zk-md{margin-left:auto;font-size:13px;font-weight:700;color:var(--brand)}
.zk-nl{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 10px;font-size:14px;color:var(--text-2)}
.zk-nl b{font-size:16px;color:var(--text-1)}
.zk-st{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:12.5px;font-weight:700}
.zk-k{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.zk-i{display:flex;flex-direction:column;align-items:flex-start;padding:11px 16px 12px;border-top:1px solid var(--divider)}
.zk-i:first-child{border-top:0}
.zk-l{font-size:13px;font-weight:600;color:var(--text-2)}
.zk-v{margin-top:1px;font-size:28px;font-weight:700;line-height:1.15;letter-spacing:-.02em;color:var(--text-1);font-variant-numeric:tabular-nums}
.zk-v.zk-eta{font-size:24px}
.zk-s{margin-top:3px;font-size:13px;line-height:1.45;color:var(--text-2);word-break:keep-all;overflow-wrap:anywhere}
.zk-s.zk-alt{color:var(--text-1);font-weight:600}
main a.zk-my{display:inline-flex;align-items:center;min-height:40px;font-size:14px;font-weight:700;color:var(--brand);text-decoration:none}
.zk-ip{display:inline-flex;align-items:center;height:30px;margin-top:6px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:700}
.zk-ip.ok{background:var(--ok-soft);color:var(--ok-ink)}.zk-ip.no{background:var(--risk-soft);color:var(--risk-ink)}.zk-ip.warn{background:var(--warn-soft);color:var(--warn-ink)}
main a.zk-tr{display:flex;align-items:center;gap:8px;min-height:44px;margin:8px 0 0;padding:8px 12px;border-radius:12px;background:var(--surface-2);color:var(--text-2);font-size:13px;line-height:1.4;text-decoration:none}
.zk-tc{flex:none;padding:2px 8px;border-radius:999px;border:1px solid var(--text-3);font-size:12px;font-weight:700}
.zk-tr.na .zk-tc{border-color:transparent;background:var(--risk-soft);color:var(--risk-ink)}
.zk-tt{flex:1 1 auto;min-width:0}.zk-tt b{color:var(--text-1)}
.zk-tr.lo .zk-tt b,.zk-tr.md .zk-tt b{color:var(--brand,#1f3a87)}
.zk-tr i{font-style:normal;font-size:20px;color:var(--text-3)}
tr#trust{scroll-margin-top:80px}
tr#trust:target th,tr#trust:target td{background:var(--brand-soft)}
.zk-rep{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:18px 0 0;font-size:13px;color:var(--text-2)}
main a.zk-rb{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text-1);font-weight:700;text-decoration:none}
.zk-ad{user-select:all;-webkit-user-select:all;font-weight:600;color:var(--text-1)}
.zk-cap{margin:6px 2px 0;font-size:12.5px;color:var(--text-3)}.zk-reach{margin:8px 2px 0;font-size:14px;line-height:1.45;color:#333D4B;word-break:keep-all}.zk-reach b{font-weight:700;color:#191F28}
@media (min-width:760px){.zk-k{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.zk-i{border-top:0;border-left:1px solid var(--divider)}.zk-i:first-child{border-left:0}}
/* 설치한 앱(standalone)으로 연 정적 페이지: 웹 푸터 링크 목록은 숨긴다(앱 아래 탭으로 오간다) */
@media (display-mode:standalone),(display-mode:fullscreen),(display-mode:minimal-ui){footer.f,.site-foot{display:none!important}}
/* 푸터 링크 사이 '·'는 숨기고 간격으로만 구분(줄 머리에 '·'가 오지 않게) */
footer.f p:first-child{font-size:0}
footer.f p:first-child a{font-size:13px}
/* 26차: 표 머리칸 글자가 값 위로 넘치던 것(white-space:nowrap 상속) → 머리칸 안에서 줄바꿈 */
.ov th{white-space:normal!important;word-break:keep-all;overflow-wrap:anywhere;hyphens:none}
.ov td{white-space:normal}
/* 26차: 따로 선 링크(지도 크게 보기 · 출처 줄 · 리포트 목차 칩)는 누르기 쉬운 높이(40px 이상) */
figure figcaption a,.zrow a,.zk-rep a{display:inline-flex;align-items:center;min-height:40px}
.rp-toc a{min-height:40px!important}
/* 26차: '이 숫자가 틀렸어요'는 작은 링크 하나 */
.zk-rep{margin:12px 0 0}
main a.zk-rb.zk-rs{min-height:40px;padding:0;border:0;background:none;color:var(--text-2);font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:3px}
/* 27차: 전세 끼고는 못 사는 곳 — 칸의 큰 값은 대출 끼고 산 값 + '대출 끼고' 꼬리표(앱 상세 .dt-mode와 같은 꼴) */
.zk-mode{display:inline-flex;align-items:center;height:22px;margin-top:4px;padding:0 8px;border-radius:6px;background:var(--brand-soft);color:var(--brand);font-size:12px;font-weight:700;font-style:normal}.zk-ln{display:block;margin:4px 0 0;font-size:12px;line-height:22px;color:var(--text-2,#555);vertical-align:top}
.znum{margin:-4px 0 14px}
.gnote{font-size:15.5px;line-height:1.8}
/* 26차 성능: 첫 화면 아래 덩이는 화면에 올 때 그린다(글꼴이 바뀔 때마다 긴 페이지 전체를 다시 배치하던 것) */
main>figure,main>table,main>.ov,main>ul.steps,main>h2~nav,footer.f,main>details,main>.zstory{content-visibility:auto;contain-intrinsic-size:auto 420px}
.zk-s.zk-ex{color:var(--warn-ink,#8a5a00);font-weight:600}
/* 27차: 리포트·표 안 링크(구역 이름·원문)도 누르는 높이 40px */
main table td a,main table th a{display:inline-flex;align-items:center;min-height:40px}
/* 27차: 설치한 앱(standalone)으로 연 정적 페이지는 누를 때 파란 하이라이트 없음(앱 화면과 같게) */
@media (display-mode:standalone),(display-mode:fullscreen),(display-mode:minimal-ui){html,a,button,summary,label{-webkit-tap-highlight-color:transparent}}
/* 설치 앱에서 연 정적 페이지: Chrome '당겨서 새로고침' 막기(웹처럼 보이던 것 · 브라우저는 그대로) */
@media (display-mode:standalone),(display-mode:fullscreen),(display-mode:minimal-ui){html,body{overscroll-behavior-y:none}}
/* 27차 성능: 웹 글꼴 조각이 다 오기 전에는 같은 크기로 맞춘 대체 글꼴로(조각마다 페이지를 다시 배치하지 않게) · 다 오면 html.fo(static_tabs.py FONTJS) */
html:not(.fo){--font:"Pretendard Fallback",-apple-system,BlinkMacSystemFont,system-ui,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif}
/* 28차: 리포트·목록 속 링크도 터치 높이 40px(표 밖 · 시간표·구역 카드 제목·읽을거리 목록) */
main .rp-tl li a,main .rp-w li a,main .zc-h a,main ul.links>li>a,main .rp-src li>a{display:inline-block;min-width:40px;padding:11px 0;margin:-11px 0;line-height:18px}
main .rp-w li,main ul.links>li{margin:0;padding-top:11px;padding-bottom:11px}main .rp-tl li{padding-top:11px;padding-bottom:11px}
/* 28차: 리포트 차례 — 폰에서는 화면 위에 붙는 한 줄(옆으로 밀기 · 40px 칩) */
@media (max-width:980px){main .rp-toc{position:sticky;top:0;z-index:5;flex-wrap:nowrap;overflow-x:auto;margin:14px -16px 4px;padding:6px 16px;background:var(--bg);border-bottom:1px solid var(--divider,var(--border));scrollbar-width:none;-webkit-overflow-scrolling:touch}main .rp-toc::-webkit-scrollbar{display:none}main .rp-toc a{flex:none;min-height:40px}main h2[id]{scroll-margin-top:64px}}

/* 30차: 가이드 목록 제목 링크도 누르는 자리 40px · 구역 페이지 출처 줄의 짧은 링크(RSS)도 너비 40px */
.qsum li>a{display:inline-flex;align-items:center;min-height:40px}
.zrow a{min-width:40px;justify-content:center}
/* 7차: 남은 작은 링크도 누르는 자리 40px — /gu RSS · 리포트 카드 '구역 페이지·내 돈으로 계산' · 표 '원문' 폭 · 가이드 '함께 보면 좋은 질문' · /faq '출처·계산 방법' */
main table td a{min-width:40px;justify-content:center}
main p.meta a[href*="feed/"],main .zc-a a,main .fq-more a,main .fq-a a,main h2+ul:not([class])>li>a{display:inline-block;min-width:40px;text-align:center;padding:11px 0;margin:-11px 0;line-height:18px}
main h2+ul:not([class])>li{margin:0;padding-top:11px;padding-bottom:11px}
/* 설치 앱(홈 화면 앱·안드로이드 TWA = display-mode standalone 등)에서 연 정적 페이지: 아래 탭에 '지금 여기' 표시를 하지 않는다(리포트·가이드를 MY로 표시하던 것) · 첫 탭 '찾기'는 앱과 같은 '홈'(그림·이름) · 새 소식 표시는 앱 첫 화면과 같은 작은 빨간 점 — 브라우저 화면은 그대로 */
@media (display-mode:standalone),(display-mode:fullscreen),(display-mode:minimal-ui){.zp-tabs a[aria-current="page"]{color:var(--text-2,#4e5968)!important;font-weight:400!important}.zp-tabs a[href="/"]>svg,.zp-tabs a[href="/"]>span{display:none!important}.zp-tabs a[href="/"]::before{content:"";width:22px;height:22px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M4 10.5 12 4l8 6.5V19a1.5 1.5 0 0 1-1.5 1.5H15v-6H9v6H5.5A1.5 1.5 0 0 1 4 19z'/%3E%3C/svg%3E") center/22px 22px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M4 10.5 12 4l8 6.5V19a1.5 1.5 0 0 1-1.5 1.5H15v-6H9v6H5.5A1.5 1.5 0 0 1 4 19z'/%3E%3C/svg%3E") center/22px 22px no-repeat}.zp-tabs a[href="/"]::after{content:"홈"}.zp-tabs .nb-dot{width:8px!important;height:8px!important;top:4px!important;left:calc(50% + 8px)!important;font-size:0!important;color:transparent!important;background:#EF5E47!important}}
/* ---- 리뉴얼 A3·A4·F10 (renew-content): 푸터 무관 문장 · 자동 계산/사람 대조 범례 · 정적 광고 자리 · 운영자 소개 · 오류 수정 기록 · 용어집 ---- */
:root{--pin-y:#F5C33B}
footer.f .f-d,footer#contact .f-d{margin:10px 0 0;font-size:12.5px;line-height:1.6;color:var(--text-3);max-width:66ch}
.zp-legend{display:block;margin:8px 0 14px;padding:0;border-radius:var(--r-md);background:var(--surface-2);font-size:13px;line-height:1.75;color:var(--text-2)}
.zp-legend>summary{display:flex;align-items:center;flex-wrap:wrap;gap:4px 0;min-height:40px;padding:4px 12px;cursor:pointer;list-style:none}.zp-legend>summary::-webkit-details-marker{display:none}.zp-legend .lg-q{margin-left:auto;font-size:12.5px;color:var(--brand);font-weight:600}.zp-legend[open] .lg-q{opacity:.6}.zp-legend>p{margin:0;padding:0 12px 10px}
.zp-legend .lg{display:inline-flex;align-items:center;gap:5px;height:22px;margin:0 6px 0 0;padding:0 8px;border-radius:var(--r-full);font-size:12px;font-weight:700;vertical-align:1px}
.zp-legend .lg-a{background:var(--surface-3);color:var(--text-2)}
.zp-legend .lg-h{background:var(--brand-soft);color:var(--brand)}
.zp-legend .lg-h::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--pin-y)}
.zp-legend .lg-h{margin-left:4px}
.zp-legend a{font-weight:600;white-space:nowrap}
/* 광고 자리: 승인 전에는 hidden(크기 0). 채워지면 위아래로 본문과 32px 이상 띄우고 '광고' 라벨 */
main .ad-slot{display:block;margin:32px 0;padding:8px 0 0;border-top:1px solid var(--divider);min-height:118px;text-align:center}
main .ad-slot[hidden]{display:none}
main .ad-slot::before{content:"광고";display:block;text-align:left;font-size:11px;line-height:16px;color:var(--text-3);margin-bottom:2px}
@media (display-mode:standalone),(display-mode:fullscreen),(display-mode:minimal-ui){main .ad-slot{display:none!important}}
@media print{main .ad-slot{display:none!important}}
/* 운영자 소개·편집 원칙(about) */
.op{margin:18px 0 8px;padding:18px 18px 8px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface)}
.op-h{display:flex;align-items:center;gap:12px;margin:0 0 10px}
.op-av{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#1F3A87}
.op-av svg{width:20px;height:28px}
.op-h b{display:block;font-size:17px;line-height:1.3}
.op-h small{display:block;color:var(--text-3);font-size:13px}
.op dl{margin:8px 0 10px;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:14px}
.op dt{color:var(--text-3);font-weight:600}
.op dd{margin:0}
ol.flow{counter-reset:f;list-style:none;padding:0;margin:12px 0}
ol.flow li{counter-increment:f;position:relative;padding:0 0 14px 40px;line-height:1.7}
ol.flow li::before{content:counter(f);position:absolute;left:0;top:1px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-weight:800;font-size:13px}
ol.flow li:not(:last-child)::after{content:"";position:absolute;left:12.5px;top:30px;bottom:2px;width:1px;background:var(--border)}
/* 오류 수정 기록 */
.cx{list-style:none;padding:0;margin:14px 0 22px}
.cx>li{margin:0 0 12px;padding:14px 16px;border:1px solid var(--border);border-left:4px solid var(--brand);border-radius:var(--r-md);background:var(--surface)}
.cx .cx-d{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 4px;font-size:12.5px;color:var(--text-3);font-variant-numeric:tabular-nums}
.cx .cx-k{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:6px;background:var(--brand-soft);color:var(--brand);font-weight:700;font-size:11.5px}
.cx h3{margin:2px 0 6px;font-size:16px;line-height:1.45}
.cx p{margin:4px 0;font-size:14.5px;line-height:1.7}
.cx .cx-w{color:var(--text-3);font-size:13px}
/* 용어집 */
.gl-nav{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 18px;padding:0;list-style:none}
.gl-nav a{display:inline-flex;align-items:center;min-height:40px;padding:0 12px;border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface);font-size:13.5px;font-weight:600;color:var(--text-1)}
.gl-nav a:hover{border-color:var(--brand);text-decoration:none}
.gl-sec{margin-top:34px}
.gl-sec>h2{display:flex;align-items:center;gap:8px}
.gl-sec>h2::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--pin-y);flex:none}
.term{margin:12px 0;padding:14px 16px 10px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);scroll-margin-top:72px}
.term:target{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
.term h3{margin:0 0 4px;font-size:17px;line-height:1.4}
.term h3 small{margin-left:6px;font-size:12.5px;font-weight:600;color:var(--text-3)}
.term .t-def{margin:2px 0 8px;font-weight:600;color:var(--text-1);line-height:1.65}
.term p{margin:6px 0;font-size:14.5px;line-height:1.75;color:var(--text-2)}
.term .t-ex{padding:8px 10px;border-radius:var(--r-sm);background:var(--surface-2);font-size:14px}
.term .t-ex b{color:var(--text-1)}
.term .t-law{font-size:12.5px;color:var(--text-3)}
.term .t-rel{display:flex;flex-wrap:wrap;gap:2px 10px;margin:8px 0 0;font-size:13px}
.term .t-rel span{color:var(--text-3)}
.next-read{margin:36px 0 8px;padding:16px 18px;border-radius:var(--r-lg);background:var(--brand-soft)}
.next-read h2{margin:0 0 8px;font-size:17px}
.next-read ul{margin:0;padding-left:18px}
.next-read li{margin:6px 0;line-height:1.6}
/* 사이클 2: /z 눈에 보이는 이동 경로(BreadcrumbList와 같은 길) */
.zp-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:0 6px;margin:0 0 2px;font-size:13px;line-height:1.4}.zp-crumb a{display:inline-flex;align-items:center;min-height:32px;color:var(--text-2);font-weight:600}.zp-crumb a:hover{color:var(--brand)}.zp-crumb span{color:var(--text-3)}
