/*
Theme Name: 무료양식 (pncreport)
Description: pncreport.com 전용 테마. 외부 JS·웹폰트·CDN 0(애드센스 스크립트 제외). DESIGN-ID.md 토큰 범위 안에서만.
Version: 1.0
*/
:root{
  --bg:#F6F7F4; --surface:#FFFFFF; --ink:#1C2229; --brand:#1F5F8B; --brand-deep:#164666; --line:#D9DEE5;
  --ink-2:color-mix(in srgb, var(--ink) 68%, var(--bg));
  --tint:color-mix(in srgb, var(--brand) 8%, #fff);
  --tint-2:color-mix(in srgb, var(--brand) 4%, #fff);
  --ok:#1A7F4B; --err:#B3261E; --warn:#8A5A00;
  --wrap:1120px; --prose:720px; --r:12px;
  --font:system-ui,-apple-system,"Segoe UI","Malgun Gothic","Apple SD Gothic Neo",sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:17px;line-height:1.7;overflow-wrap:break-word}
img{max-width:100%;height:auto}
a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}
a:hover{color:var(--brand-deep)}
h1,h2,h3{line-height:1.35;margin:0 0 .5em}
h1{font-size:2.25rem;letter-spacing:-.01em}
h2{font-size:1.375rem;margin-top:2rem}
h3{font-size:1.125rem;margin-top:1.5rem}
@media (max-width:760px){h1{font-size:1.75rem}body{font-size:16.5px}}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.prose{max-width:var(--prose)}
.prose h2{border-top:1px solid var(--line);padding-top:1.25rem}
.prose ul,.prose ol{padding-left:1.4em}
.prose li{margin:.25em 0}
.skip{position:absolute;left:-9999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px 12px;z-index:99;border:2px solid var(--brand);border-radius:8px}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
/* 머리·꼬리 */
.site-head{background:var(--surface);border-bottom:1px solid var(--line)}
.site-head .wrap{display:flex;align-items:center;gap:16px;min-height:64px;flex-wrap:wrap}
.brand{font-weight:800;font-size:1.25rem;color:var(--ink);text-decoration:none;letter-spacing:-.02em;display:flex;align-items:center;gap:8px;min-height:44px}
.brand:hover{color:var(--brand)}
.brand-mark{color:var(--brand)}
.nav{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}
.nav a{color:var(--ink);text-decoration:none;padding:8px 10px;border-radius:8px;font-size:15px;min-height:44px;display:inline-flex;align-items:center;transition:background-color .14s,color .14s}
.crumb a,.crumb span{display:inline-flex;align-items:center;padding:10px 6px;min-height:44px;min-width:32px;justify-content:center}
.prose a,.foot-links a{padding:2px 0}
.nav a:hover,.nav a[aria-current]{background:var(--tint);color:var(--brand-deep)}
.site-foot{margin-top:56px;background:var(--surface);border-top:1px solid var(--line);padding:28px 0 36px;font-size:14.5px;color:var(--ink-2)}
.site-foot .wrap{display:grid;gap:14px}
.foot-links{display:flex;gap:4px 14px;flex-wrap:wrap}
.foot-links a{min-height:44px;display:inline-flex;align-items:center;padding:2px 0}
.foot-notice{background:var(--tint-2);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;line-height:1.6}
/* 빵부스러기 */
.crumb{font-size:14px;color:var(--ink-2);padding:14px 0 0}
.crumb a{color:var(--ink-2)}
/* 버튼 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:11px 18px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:16px;font-weight:600;text-decoration:none;cursor:pointer;transition:background-color .14s,border-color .14s,color .14s}
.btn:hover{border-color:var(--brand);background:var(--tint);color:var(--brand-deep)}
.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}
.btn-lg{font-size:17px;padding:13px 22px}
/* 홈 */
.hero{padding:44px 0 8px}
.hero h1{max-width:14em}
.hero h1 em{font-style:normal;color:var(--brand)}
.hero-sub{font-size:1.05rem;color:var(--ink-2);max-width:36em;margin:0 0 20px}
.search-form{display:flex;gap:8px;max-width:620px;margin:0 0 12px}
.search-form input{flex:1;min-width:0;font:inherit;font-size:16px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);min-height:48px}
.search-form input:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}
.hero-cta{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 8px}
.promise-badges{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none}
.promise-badges li{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 13px;font-size:14px;color:var(--ink-2)}
.promise-badges .more{border-style:dashed;padding:0}
.promise-badges .more a{display:inline-flex;align-items:center;min-height:44px;padding:0 13px}
.sec{padding:40px 0 0}
.sec-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 16px}
.sec-head h2{margin:0}
.sec-head .more{margin-left:auto;font-size:15px;min-height:44px;display:inline-flex;align-items:center}
/* 카드 격자 */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;list-style:none;margin:0;padding:0}
.card{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);transition:border-color .16s,transform .18s}
.card:hover{border-color:var(--brand);transform:translateY(-2px)}
.card a{display:flex;gap:12px;align-items:flex-start;padding:14px;text-decoration:none;color:var(--ink);height:100%}
.card-ico{flex:none;width:40px;height:40px;border-radius:10px;background:var(--tint);color:var(--brand);display:grid;place-items:center}
.card-body{min-width:0}
.card-title{font-weight:700;display:block;margin:0 0 2px}
.card-desc{font-size:14px;color:var(--ink-2);line-height:1.5;display:block}
.card-fmt{font-size:12.5px;color:var(--ink-2);margin-top:6px;display:block;letter-spacing:.02em}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;list-style:none;margin:0;padding:0}
.cat{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:16px}
.cat h3{margin:0 0 4px;font-size:1.05rem}
.cat p{font-size:14px;color:var(--ink-2);margin:0 0 10px}
.cat a{font-weight:600;min-height:44px;display:inline-flex;align-items:center}
.subhubs{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none}
.subhubs a{font-size:13.5px;border:1px solid var(--line);border-radius:999px;padding:0 12px;min-height:44px;display:inline-flex;align-items:center;text-decoration:none;color:var(--ink-2);background:var(--tint-2)}
.subhubs a:hover{border-color:var(--brand);color:var(--brand-deep)}
/* 단계 */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;list-style:none;margin:0;padding:0;counter-reset:s}
.step{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:16px;counter-increment:s}
.step h3{margin:0 0 4px;font-size:1rem}
.step h3::before{content:counter(s);display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--brand);color:#fff;font-size:13px;margin-right:8px;vertical-align:-3px}
.step p{font-size:14.5px;color:var(--ink-2);margin:0}
/* 표 */
.tw{overflow-x:auto;margin:0 0 1.25em}
table.tbl{border-collapse:collapse;width:100%;font-size:15.5px;background:var(--surface)}
table.tbl th,table.tbl td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
table.tbl th{background:var(--tint);font-weight:700}
table.tbl td.num,table.tbl th.num{text-align:right;font-variant-numeric:tabular-nums}
/* 알림 상자 */
.box{border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:8px;background:var(--surface);padding:14px 16px;margin:0 0 1.25em}
.box h2,.box h3{margin-top:0}
.box-warn{border-left-color:var(--warn);background:color-mix(in srgb,var(--warn) 5%,#fff)}
.box dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:15.5px}
.box dt{font-weight:700;color:var(--ink-2)}
.box dd{margin:0}
/* 글 머리 */
.entry-head{padding:8px 0 4px}
.entry-meta{font-size:14px;color:var(--ink-2);display:flex;gap:12px;flex-wrap:wrap;margin:0 0 8px}
.lede{font-size:1.05rem;color:var(--ink-2);margin:0 0 20px;max-width:40em}
/* 광고 슬롯 — 예약 높이로 CLS 0 */
.ad-slot{margin:28px 0;min-height:280px;display:flex;align-items:center;justify-content:center}
.ad-slot::before{content:"";display:block}
@media (max-width:760px){.ad-slot{min-height:250px}}
/* G5: 작성 도구·미리보기·저장 버튼·결과 영역과 광고 사이를 200px 이상 띄운다(§4·본문 §2-6).
   셸 바로 뒤에 오는 슬롯에만 적용해 산문 사이 슬롯의 여백은 그대로 둔다. */
#form-shell + .ad-slot,
#form-shell ~ script + .ad-slot,
#form-shell ~ noscript + .ad-slot{margin-top:216px}
/* 목록 */
.list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.list li{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:14px 16px}
.list a{font-weight:700;text-decoration:none;font-size:1.05rem;min-height:44px;display:inline-flex;align-items:center}
.list a:hover{text-decoration:underline}
.list p{margin:4px 0 0;font-size:14.5px;color:var(--ink-2)}
.pager{display:flex;gap:8px;margin:24px 0 0;flex-wrap:wrap}
.pager a,.pager span{padding:9px 14px;border:1px solid var(--line);border-radius:8px;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.pager .current{background:var(--brand);color:#fff;border-color:var(--brand)}
/* 관련 링크 */
.related{border-top:1px solid var(--line);margin-top:32px;padding-top:16px}
.related h2{margin-top:0;font-size:1.15rem}
.related ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.related a{font-weight:600;min-height:44px;display:inline-flex;align-items:center}
/* 법정 서식 다운로드 */
.dl-row{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.dl-meta{font-size:13.5px;color:var(--ink-2);font-weight:400}
.pdf-preview{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:12px;margin:0 0 16px}
.pdf-stage{width:100%;aspect-ratio:210/297;max-width:520px;margin:0 auto;background:var(--bg);border:1px solid var(--line);display:grid;place-items:center}
.pdf-stage canvas{max-width:100%;height:auto;display:block}
/* 접근성·모션 */
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.card:hover{transform:none}}
@media print{.site-head,.site-foot,.ad-slot,.crumb,.related,.nav{display:none}body{background:#fff}}
/* 도구 2종(서명·도장) */
.ts-form{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:14px 16px;margin:0 0 16px}
.ts-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.ts-row label{font-weight:600;font-size:15px}
.ts-row input,.ts-row select{font:inherit;font-size:16px;min-height:44px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}
.ts-row input{min-width:160px}
.ts-err{color:var(--err);font-size:14.5px;margin:10px 0 0;padding:10px 12px;border:1px solid var(--err);border-radius:8px;background:color-mix(in srgb,var(--err) 6%,#fff)}
.ts-hint{font-size:14px;color:var(--ink-2);margin:8px 0 0}
.ts-stage{display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--r);padding:16px;margin:0 0 12px;
  min-height:332px;   /* 도장 300px + 패딩 — 캔버스가 그려지기 전에 자리를 잡아 CLS 0 */
  background-color:#fff;background-image:linear-gradient(45deg,#eef1f4 25%,transparent 25%),linear-gradient(-45deg,#eef1f4 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eef1f4 75%),linear-gradient(-45deg,transparent 75%,#eef1f4 75%);
  background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}
.ts-stage canvas{max-width:100%;height:auto;display:block}
.sig-stage{padding:0;overflow:hidden;min-height:0;aspect-ratio:1000/380}  /* 서명 칸은 비율로 자리를 잡는다 */
.sig-stage canvas{width:100%;height:100%;touch-action:none;cursor:crosshair;display:block}
.ts-out{margin:0 0 8px}
.ts-out h2{font-size:1.15rem}
.ts-out-notice{font-size:14px;color:var(--ink-2);margin:8px 0 0}
