/* 시안 「contact.html」의 <style> 그대로(scripts/sian-extract.mjs 가 만듦 · 손으로 고치지 않음) */
:root{--bg:#FFFFFF;--bg2:#F4F5F6;--ink:#1F2225;--ink2:#43474C;--mute:#5C6167;--line:#DCDFE2;
  --accent:#34557A;--accent-d:#2A4664;--band:#1F2225;--on-band:#B9BDC1;--dot:#F2C230;
  --ui:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  --pad:clamp(18px,4vw,44px);--hh:56px;--cb:64px;--ez:cubic-bezier(.43,.2,.02,1)}
@media (min-width:768px){:root{--cb:24px}}
@media (min-width:1024px){:root{--hh:76px}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--hh)}
html.lock{overflow:hidden}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--ui);font-size:17px;line-height:1.65;letter-spacing:-.01em;
  word-break:keep-all;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
img,svg{display:block;max-width:100%}
h1,h2,h3,p,ul,ol,figure,table{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:inherit}
.num{font-variant-numeric:tabular-nums}
.nw{white-space:nowrap}
.in-wrap{max-width:1280px;margin:0 auto;padding:0 var(--pad)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

/* ── 단추 ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 22px;border-radius:6px;
  font-size:17px;font-weight:700;letter-spacing:-.01em;border:1px solid transparent;white-space:nowrap;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.btn.acc{background:var(--accent);color:#fff}
.btn.acc:hover{background:var(--accent-d)}
.btn.ghost{border-color:var(--ink);color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}

/* ── 구역 ── */
.sec{padding:64px 0}
.alt{background:var(--bg2)}
.lab{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700;color:var(--accent);letter-spacing:0;line-height:1.4;margin-bottom:12px}
.lab::before{content:"";width:18px;height:2px;background:currentColor;flex:0 0 18px}
.h2{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.3}
.h3{font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.4;text-wrap:balance}
.ml{display:block;overflow:hidden;overflow:clip;padding-bottom:.08em;margin-bottom:-.08em}
.ml>*{display:block}

/* ── 줄 목록 — 이 안의 부품 ── */
.ln{position:relative;display:flex;align-items:center;gap:14px;width:100%;min-height:56px;padding:12px 0;text-align:left;color:var(--ink)}
.ln::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line);transform-origin:0 50%}
.ln .lb{flex:0 0 auto;min-width:92px;font-size:15px;font-weight:500;color:var(--mute);line-height:1.4}
.ln b{flex:1 1 auto;min-width:0;font-size:19px;font-weight:700;letter-spacing:-.015em;line-height:1.35}
.ln .no{flex:0 0 auto;min-width:26px;font-size:15px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}
.ln .ar{flex:0 0 24px;width:24px;height:24px;color:var(--ink);transition:transform .25s ease}
a.ln:hover .ar,button.ln:hover .ar{transform:translateX(4px)}
.lst>.ln:last-child,.ln.end{border-bottom:1px solid var(--line)}
.more{margin-top:28px}
.more b{font-size:17px}

/* ── 머리띠 ── */
.gnb{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--hh);color:var(--ink);transition:background-color .25s ease,box-shadow .25s ease}
.gnb.solid{background:#fff;box-shadow:0 1px 0 var(--line)}
.gin{height:100%;display:flex;align-items:center;gap:20px}
.brand{display:inline-flex;align-items:center;gap:9px;min-height:48px;color:var(--ink)}
.brand .logo-mk{width:28px;height:28px;flex:0 0 28px}
.brand .wm{display:flex;flex-direction:column;line-height:1.1}
.brand .wm b{font-size:17px;font-weight:800;letter-spacing:-.02em}
.brand .wm .lt{font-weight:500}
.brand .wm small{font-size:10px;font-weight:600;letter-spacing:.16em;color:var(--mute);margin-top:3px}
.gnav,.gcta{display:none}
.mbtn{margin-left:auto;margin-right:-12px;width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink)}
.mbtn .hb{display:grid;gap:5px;width:22px}
.mbtn .hb i{display:block;height:2px;border-radius:2px;background:currentColor}

/* ── 휴대폰 메뉴 (전체 화면) ── */
.menu{position:fixed;inset:0;z-index:80;background:#fff;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;
  visibility:hidden;opacity:0;transform:translateY(-10px);
  transition:opacity .22s ease,transform .3s var(--ez),visibility 0s linear .3s}
.menu.open{visibility:visible;opacity:1;transform:none;transition:opacity .22s ease,transform .3s var(--ez),visibility 0s}
.mtop{display:flex;align-items:center;justify-content:space-between;min-height:56px;flex:0 0 auto;box-shadow:0 1px 0 var(--line)}
.mtop .gin{justify-content:space-between}
.mx{display:inline-flex;align-items:center;gap:6px;min-height:48px;min-width:48px;padding:0 6px;margin-right:-6px;font-size:16px;font-weight:600}
.mlist{width:100%;margin-top:8px}
.mlist a{display:flex;align-items:center;gap:14px;min-height:64px;border-bottom:1px solid var(--line);font-size:24px;font-weight:700;letter-spacing:-.02em}
.mlist .no{flex:0 0 26px;font-size:15px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}
.mlist .ar{margin-left:auto;color:var(--mute)}
.mcall{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}
.mnote{width:100%;margin-top:16px;padding-bottom:36px;font-size:16px;font-weight:600;color:var(--ink2);line-height:1.6}

/* ── Bio 세라믹 ── */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.chips li{font-size:15px;font-weight:600;line-height:1.3;padding:8px 12px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink2)}
.fx{margin-top:28px}

/* ── 유해물질 ── */
.th>p{margin-top:16px;color:var(--ink2)}
.tt{margin-top:36px;font-size:19px;font-weight:700;line-height:1.4}
.tt span{font-size:15px;font-weight:500;color:var(--mute);margin-left:4px}
.ttab{width:100%;margin-top:14px;border-collapse:separate;border-spacing:0}
.ttab thead{display:none}
.ttab tbody{display:grid;gap:10px}
/* 휴대폰 카드 — 이름 → 두 칸(기존 · E·N·T) → 맨 아래 비. 칸 이름은 카탈로그 5쪽 표 머리 그대로(data-l),
   검출한도는 카탈로그처럼 E·N·T 칸 안에 「(검출한도:0.04)」 */
.ttab tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"n n" "a b" "r r" "m m";column-gap:12px;row-gap:12px;
  padding:14px 16px 16px;background:#fff;border:1px solid var(--line);border-radius:8px}
.ttab th[scope=row]{grid-area:n;display:flex;align-items:baseline;gap:6px;font-size:19px;font-weight:700;text-align:left;line-height:1.3;white-space:nowrap}
.ttab th[scope=row] small{font-size:15px;font-weight:600;color:var(--mute)}
.ttab td{display:block;padding:0}
.ttab td.o{grid-area:a}.ttab td.e{grid-area:b}
.tnote a.tref{display:inline-block;padding:13px 0;margin:-13px 0;color:inherit;text-decoration:underline;text-underline-offset:3px}   /* KCL 출처 줄 → 인증 · 성적서 KCL 칸 */
.ttab td.m{grid-area:m;font-size:15px;font-weight:600;color:var(--ink2)}
.ttab td.m[data-l]::before{display:inline;margin:0 6px 0 0}   /* 시험방법 (1) — 카드 맨 아래 한 줄 */
.ttab td[data-l]::before{content:attr(data-l);display:block;margin-bottom:2px;font-size:15px;font-weight:500;color:var(--mute);letter-spacing:0;line-height:1.4}
.ttab td.v{white-space:nowrap;font-size:clamp(22px,7.2vw,26px);font-weight:800;letter-spacing:-.02em;line-height:1.25;font-variant-numeric:tabular-nums}
.ttab td .dl{display:block;margin-top:2px;font-size:16px;font-weight:500;letter-spacing:0;line-height:1.4;color:var(--ink2)}
.ttab td.r{grid-area:r;padding-top:12px;border-top:1px solid var(--line);white-space:nowrap;font-size:clamp(22px,7.2vw,26px);font-weight:800;color:var(--accent);
  font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.25}
@media (max-width:339px){.ttab tr{grid-template-columns:minmax(0,1fr);grid-template-areas:"n" "a" "b" "r" "m"}}
.tnote{margin-top:18px;display:grid;gap:4px;font-size:15px;line-height:1.55;color:var(--ink2)}
.tnote li{position:relative;padding-left:12px}
.tnote li::before{content:"";position:absolute;left:0;top:.72em;width:4px;height:4px;border-radius:50%;background:var(--mute)}

/* ── 넘김 (시공 현장) ── */
.car{margin-top:24px}
.cbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cn{font-size:15px;font-weight:600;color:var(--ink2);font-variant-numeric:tabular-nums}
.cbtn{display:flex;gap:8px}
.cbtn button{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #9AA0A6;border-radius:6px;
  background:#fff;color:var(--ink);transition:opacity .2s ease,border-color .2s ease}
.cbtn button:hover{border-color:var(--ink)}
.cbtn button[aria-disabled=true]{opacity:.4;border-color:var(--line)}
.cs{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--pad));padding:0 var(--pad) 4px;
  scroll-padding:0 var(--pad);scrollbar-width:none;overscroll-behavior-x:contain}
.cs::-webkit-scrollbar{display:none}
.cs figure{scroll-snap-align:start}
.zb{position:relative;display:block;width:100%;overflow:hidden;border-radius:8px}
.zb .zi{position:absolute;right:6px;bottom:6px;width:28px;height:28px;padding:6px;border-radius:50%;background:rgba(31,34,37,.72);color:#fff}
.crt .zb .zi{right:4px;bottom:4px}
.fs figure{flex:0 0 82%}
.fs .zb{aspect-ratio:4/3;background:var(--bg2)}
.fs img{width:100%;height:100%;object-fit:cover}
.fs .tall img{object-position:50% 34%;transform:scale(1.1);transform-origin:38% 40%}
.fs figcaption{margin-top:10px;font-size:17px;font-weight:600;line-height:1.4}
.how{margin-top:28px}
.how>p,.how>div>p{color:var(--ink2)}
.how .hwc{display:none}   /* 휴대폰 · 태블릿은 전과 같게 */
.parts{margin-top:16px}
.deep{margin-top:18px;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;font-size:17px;font-weight:600}
.deep b{font-size:28px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}

/* ── 인증 · 성적서 — 두 장 나란히 (넘김 없음) ── */
.crt{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}
.crt .crd{grid-column:1/-1}
.crt .crd .vz-rows{margin-top:4px;font-size:17px;font-weight:600;line-height:1.5}
.crt .zb{aspect-ratio:3/4;padding:10px;background:#fff;border:1px solid var(--line)}
.crt img{width:100%;height:100%;object-fit:contain}
.crt figcaption{margin-top:10px;font-size:15px;line-height:1.45;color:var(--ink2)}

/* ── 시공 금액 (이 페이지 하나뿐인 띠) ── */
.band{background:var(--band);color:#fff}
.band .lab{color:var(--on-band)}
.pp{font-size:44px;font-weight:800;letter-spacing:-.03em;line-height:1.15}
.pm{margin-top:10px;font-size:17px;color:var(--on-band)}
.pm span{display:block;white-space:nowrap}
.pm .sep{display:none;font-style:normal}
.pt{width:100%;margin-top:24px;border-collapse:collapse}
.pt th,.pt td{height:56px;padding:0;border-top:1px solid rgba(255,255,255,.14);font-size:18px}
.pt tr:last-child th,.pt tr:last-child td{border-bottom:1px solid rgba(255,255,255,.14)}
.pt th{text-align:left;font-weight:600;color:var(--on-band)}
.pt td{text-align:right;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}
.pbox{margin-top:32px;padding:26px 22px 22px;border-radius:8px;background:#fff;color:var(--ink)}
.pc{font-size:64px;font-weight:900;line-height:1;letter-spacing:-.03em;color:var(--accent);font-variant-numeric:tabular-nums}
.pd{margin-top:12px;font-size:20px;font-weight:700;line-height:1.45;text-wrap:balance}
.pbox .btn{width:100%;min-height:56px;margin-top:20px;font-size:18px}

/* ── 시공 실적 ── */
.wa{margin-top:40px}
.wph{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;border-radius:8px;margin-bottom:22px;background:var(--bg2)}
.wph img{width:100%;height:100%;object-fit:cover}
.wph .cap{position:absolute;left:10px;bottom:10px;padding:6px 11px;border-radius:4px;background:rgba(31,34,37,.78);color:#fff;font-size:15px;font-weight:600;line-height:1.3}
.wh{display:flex;align-items:baseline;gap:12px}
.wh .no{flex:0 0 auto;font-size:15px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}
.wh h3{font-size:24px;font-weight:800;letter-spacing:-.025em;line-height:1.3}
.wmeta{margin-top:6px;padding-left:38px}
.wd,.wt{font-size:15px;line-height:1.5;color:var(--mute)}
.wt{color:var(--ink2)}
.wl{margin-top:14px;border-bottom:1px solid var(--line)}
.wl li{position:relative;padding:12px 0;font-size:17px;line-height:1.6;color:var(--ink2)}
.wl li::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line);transform-origin:0 50%}

/* ── 회사 · 상담 ── */
.big .ln{min-height:72px}
.big .ln b{font-size:clamp(21px,6.9vw,28px);font-weight:800;letter-spacing:-.025em;line-height:1.25}
.cr{margin-top:40px}
.cb{display:grid;gap:10px}
.cb .btn{width:100%;min-height:60px;font-size:18px}
.cb2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
@media (max-width:1023px){
  .lst.open>.ln:last-child{border-bottom:0}
  .lst.open+.more{margin-top:0}
}
@media (min-width:768px) and (max-width:1023px){
  .gcta{display:inline-flex;margin-left:auto;min-height:44px;padding:0 16px;font-size:15px}
  .mbtn{margin-left:4px}
}

/* ── 푸터 ── */
.foot{background:var(--band);color:var(--on-band);font-size:15px;line-height:1.7;padding:48px 0 calc(80px + env(safe-area-inset-bottom))}
.foot .brand{color:#fff}
.foot .brand .wm small{color:var(--on-band)}
.fl{margin-top:20px;display:grid;gap:2px}
.fl a{display:inline-flex;align-items:center;min-height:44px;color:#fff;text-decoration:underline;text-underline-offset:3px}

/* ── 휴대폰 고정 바 ── */
.callbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:1fr 1fr 1.5fr;
  padding-bottom:env(safe-area-inset-bottom);background:var(--band)}
.callbar a{display:flex;align-items:center;justify-content:center;gap:7px;min-height:64px;color:#fff;font-size:17px;font-weight:700}
.callbar a+a{box-shadow:inset 1px 0 0 rgba(255,255,255,.14)}
.callbar a.acc{background:var(--accent);box-shadow:none}
@media (min-width:768px){.callbar{display:none}}

/* ── 크게 보기 ── */
.zoom{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;background:#141618;color:#fff}
.zoom[hidden]{display:none}
.zbar{flex:0 0 auto;display:flex;align-items:center;gap:12px;min-height:64px;padding:6px 6px 6px var(--pad)}
.zc{flex:0 0 auto;min-width:46px;font-size:15px;font-weight:600;color:#C9CDD1;font-variant-numeric:tabular-nums}
.zcap{flex:1 1 auto;min-width:0;font-size:16px;font-weight:600;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.zx{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:0 12px;font-size:16px;font-weight:600;color:#fff}
.ztrack{flex:1 1 auto;min-height:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior:contain;scrollbar-width:none}
.ztrack::-webkit-scrollbar{display:none}
.ztrack figure{flex:0 0 100%;min-width:0;scroll-snap-align:center;display:flex;align-items:center;justify-content:center;padding:6px 10px 18px}
.ztrack img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;background:#fff}
.zp,.zn{position:absolute;top:50%;margin-top:-26px;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;
  display:none;align-items:center;justify-content:center}
.zp{left:16px}.zn{right:16px}
.zp[aria-disabled=true],.zn[aria-disabled=true]{opacity:.35}
@media (max-width:767px){.zp,.zn{display:inline-flex;top:auto;bottom:calc(14px + env(safe-area-inset-bottom));margin-top:0;background:rgba(255,255,255,.18)}.ztrack figure{padding-bottom:80px}}
@media (min-width:768px){.zp,.zn{display:inline-flex}}

/* ── 나타나기 (스크립트가 있을 때만 처음에 숨김) ── */
@keyframes mlUp{from{transform:translateY(105%)}}
@keyframes fadeIn{from{opacity:0}}
@keyframes panelUp{from{opacity:0;transform:translateY(24px)}}
html.js .rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .7s var(--ez)}
html.js .rv.on{opacity:1;transform:none}
html.js .rv.m{opacity:1;transform:none}
html.js .rv.m .ml>*{transform:translateY(105%);transition:transform .8s var(--ez)}
html.js .rv.m .ml+.ml>*{transition-delay:.08s}
html.js .rv.m .lab{opacity:0;transition:opacity .5s ease}
html.js .rv.m.on .ml>*{transform:none}
html.js .rv.m.on .lab{opacity:1}
html.js .rv .ln::before,html.js .rv.ln::before,html.js .rv .wl li::before{transform:scaleX(0);transition:transform .4s ease calc(var(--i,0) * 60ms)}
html.js .rv.on .ln::before,html.js .rv.on.ln::before,html.js .rv.on .wl li::before{transform:none}
html.js .fs.rv{transform:none}

/* ── 태블릿 · PC ── */
@media (min-width:768px){
  .fs figure{flex-basis:46%}
  .crt{gap:20px}
}
@media (min-width:1024px){
  body{font-size:18px}
  .sec{padding:120px 0}
  .btn{min-height:56px;padding:0 28px}
  .h2{font-size:40px;line-height:1.25;letter-spacing:-.03em}
  .h3{font-size:36px;line-height:1.3;letter-spacing:-.03em}
  .lab{margin-bottom:16px}

  .gin{gap:28px}
  .brand .logo-mk{width:32px;height:32px;flex-basis:32px}
  .brand .wm b{font-size:19px}
  .gnav{display:flex;gap:clamp(16px,2.2vw,40px);margin:0 auto}
  .gnav a{position:relative;display:inline-flex;align-items:center;min-height:48px;font-size:16px;font-weight:600;letter-spacing:-.01em}
  .gnav a::after{content:"";position:absolute;left:0;right:0;bottom:8px;height:2px;background:var(--ink);transform:scaleX(0);transform-origin:0 50%;transition:transform .25s ease}
  .gnav a:hover::after{transform:none}
  .gcta{display:inline-flex;min-height:46px;padding:0 20px;font-size:16px}
  .mbtn,.menu{display:none}
  .fx{margin-top:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,auto);grid-auto-flow:column;column-gap:40px}
  .fx.lst>.ln:last-child{border-bottom:0}
  .fx .ln{min-height:72px}
  .tt{margin-top:56px}
  .ttab{display:table;border-collapse:collapse;background:#fff;border:1px solid var(--line)}
  .ttab thead{display:table-header-group}
  .ttab tbody{display:table-row-group}
  .ttab tr{display:table-row;padding:0;border:0;border-radius:0;background:none}
  .ttab th,.ttab td{display:table-cell;height:64px;padding:0 28px;border-top:1px solid var(--line);vertical-align:middle;text-align:right}
  .ttab thead th{height:52px;border-top:0;background:var(--bg);font-size:15px;font-weight:600;color:var(--mute)}
  .ttab thead th:first-child,.ttab th[scope=row]{text-align:left}
  .ttab th[scope=row]{display:table-cell;font-size:19px}
  .ttab th[scope=row] small{margin-left:6px}
  .ttab td::before{content:none!important}
  .ttab td.v,.ttab td.r{font-size:22px}
  .ttab td.m{font-size:17px;text-align:center}
  .ttab td.r{padding-top:0}

  .fs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;overflow:visible;margin:0;padding:0}
  .car .cbar{display:none}
  .how{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:64px;align-items:start;margin-top:40px}
  .how .parts{margin-top:0}
  .crt{margin-top:0;gap:24px}
  .crt .crd{grid-column:auto;align-self:center}
  .crt .crd .vz-rows{font-size:19px}
  .car{margin-top:40px}
  @media (prefers-reduced-motion:no-preference){
    html.js .fs.rv figure .zb{clip-path:inset(100% 0 0 0);transition:clip-path .8s var(--ez)}
    html.js .fs.rv figure:nth-child(2) .zb{transition-delay:.08s}
    html.js .fs.rv figure:nth-child(3) .zb{transition-delay:.16s}
    html.js .fs.rv figure:nth-child(4) .zb{transition-delay:.24s}
    html.js .fs.rv.on figure .zb{clip-path:inset(0)}
  }

  .pr{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:72px;align-items:center}
  .pp{font-size:72px}
  .pm span,.pm .sep{display:inline}
  .pbox{margin-top:0;padding:44px 40px 40px}
  .pc{font-size:72px;font-weight:800}
  .pd{font-size:24px}
  .wph{margin-bottom:22px}
  .wh h3{font-size:26px}
  .big .ln{min-height:96px}
  .big .ln b{font-size:40px}

  .foot{padding:64px 0 72px}
  .fl{display:flex;flex-wrap:wrap;align-items:center;gap:0 22px}
  .fl li{display:block}
}
@media (min-width:1024px) and (max-width:1279px){
  .wh h3{font-size:22px}
}
@keyframes clipIn{from{clip-path:inset(6% 4%)}to{clip-path:inset(0)}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  html.js .rv,html.js .rv.m .ml>*,html.js .rv.m .lab{opacity:1;transform:none}
  html.js .rv .ln::before,html.js .rv.ln::before,html.js .rv .wl li::before{transform:none}
}

/* ── 하위 페이지 — 지금 페이지 메뉴 ── */
.gnav a[aria-current=page]::after{transform:none}
.mlist a[aria-current=page] b{color:var(--accent)}
/* 쪽머리 없이 흰 바탕에서 시작하는 첫 구역 — <section id="top" class="sec pgtop"> (머리띠 높이만큼 내림) */
.sec.pgtop{padding-top:calc(var(--hh) + 32px)}
@media (min-width:1024px){.sec.pgtop{padding-top:calc(var(--hh) + 72px)}}

/* ── 하위 페이지 첫 화면(쪽머리) — 「요점 띠 + 길잡이」 (대표 지시 2026-10-02 저녁 「모든 서브페이지가 히어로 영역이 너무 휑하고 빈약해
   텍스트를 더 넣든지 다른 디자인 요소들을 넣던지 해서 너무 비어보이지 않게 해」)
   차례: 길잡이(홈 › 페이지 — .lab 결의 막대) → 제목 → 서브 타이틀(늘 두 줄) → 요점 칩(아이콘 + 자료 낱말) → 사진 칸 → 요점 띠
   요점 띠(.pgk) = 흰 판 하나를 칸 둘 · 셋으로 나눔(아이콘 + 큰 값 + 이름) — 사진 아래끝에 반쯤 걸쳐(휴대폰 위 44px 만
   사진 위, 나머지는 다음 구역 바탕 --pgh-end 위 — PC 는 위 80px) 다음 구역으로 이어짐. 참고자료는 숫자 대신 카탈로그 그림 작은 액자(.pkf — 수치 칸 금지).
   휴대폰 · 태블릿: 일곱 장 같은 높이(min-height — 사진 칸 1fr 이 남는 만큼 늘어남), 390×844 · 360×640 에서 한 화면 안.
   바닥값 520(검토 10-02 — 전 560): 360×640 에서도 다음 구역 첫머리가 보이게. 가장 긴 장(320 회사 소개 · 360~412 시공 안내)이 520 안에 들게
   사진 칸 최소를 20px 로(전 48 — 320 회사 소개가 516, 4px 남음) — 키 큰 폰은 74svh 가 바닥보다 커서 그대로.
   PC: 왼쪽 글 칸 640 · 요점 띠는 오른쪽 아래(넓은 사진 자리에 무게). 막은 흰 그러데이션(흐림 없음), 휴대폰은 틀JS 가 글(.pge) 끝까지 진하게 재서 깜 */
.pgh{position:relative;display:grid;grid-template-columns:var(--pad) minmax(0,1fr) var(--pad);
  grid-template-rows:calc(var(--hh) + 2px) auto auto auto auto minmax(20px,1fr) 44px auto auto 20px;
  grid-template-areas:". . ." ". pnav ." ". pttl ." ". psub ." ". pchip ." ". . ." ". pkey ." ". pkey ." ". pnote ." ". . .";
  min-height:clamp(520px,74svh,640px);background:#ECEDEE;--pgh-end:var(--bg)}
.pph{grid-column:1/-1;grid-row:1/8;position:relative;overflow:hidden;z-index:0}
.pph img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--pos,50% 50%)}
.pph::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.86) 0,rgba(255,255,255,.78) var(--wg1,58%),rgba(255,255,255,0) var(--wg2,76%))}
.pgh::after{content:"";grid-column:1/-1;grid-row:8/-1;z-index:1;background:var(--pgh-end);border-radius:14px 14px 0 0}
.pgb{grid-area:pnav;position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:center;column-gap:4px;
  font-size:15px;font-weight:600;line-height:1.4;letter-spacing:0;color:var(--mute)}
.pgb::before{content:"";flex:0 0 18px;width:18px;height:2px;margin-right:6px;background:var(--accent)}
.pgb a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:0 -11.5px 0 -15.5px;
  color:var(--ink2);transition:color .2s ease}   /* 사진 위 막(.86) — 사진이 어두워도 4.5 넘게 --ink2.
   누르는 자리 44×44(검토 10-02 — 전에는 폭 17px): 「홈」(13px)을 44px 칸 가운데에 두고 왼쪽 -15.5 · 오른쪽 -11.5 로 글 자리 · 화살 자리는 그대로 */
.pgb a:hover{color:var(--ink)}
.pgb .vz-i{flex:0 0 16px;width:16px;height:16px;color:var(--mute)}
.pgb [aria-current]{padding-left:2px;font-weight:700;color:var(--accent)}
.pgt{grid-area:pttl;position:relative;z-index:2;margin-top:2px;font-size:clamp(30px,8.6vw,36px);font-weight:800;letter-spacing:-.03em;line-height:1.25}
.pgs{grid-area:psub;position:relative;z-index:2;margin-top:12px;font-size:18px;font-weight:500;line-height:1.45;color:var(--ink2)}
@media (max-width:374px){.pgs{font-size:17px}}
.pgc{grid-area:pchip;position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.pgc>li{display:flex;min-width:0}
.pgc .pcx{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:6px 12px 6px 10px;border:1px solid var(--line);border-radius:4px;
  background:#fff;font-size:15px;font-weight:600;line-height:1.3;color:var(--ink2)}
.pgc a.pcx{min-height:44px;padding:8px 14px 8px 12px;border-color:var(--ink2);color:var(--ink);font-variant-numeric:tabular-nums;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.pgc a.pcx:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.pgc a.pcx:hover svg{color:#fff}
.pgc svg{flex:0 0 18px;width:18px;height:18px;color:var(--accent)}
.pgc .pcv{display:none}   /* 누르는 칩 끝 화살 — PC 줄 목록에서만(휴대폰은 진한 테두리가 그 몫) */
.pgc .pcl{display:flex;align-items:center;min-height:36px;padding-right:2px;font-size:15px;font-weight:700;line-height:1.3;color:var(--ink2)}   /* 칩 줄 이름 — 무슨 목록인지(자료 값 · 구역 이름) */
.pgk{grid-area:pkey;position:relative;z-index:2;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);
  background:#fff;border:1px solid var(--line);border-radius:8px}
.pgk>li{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:14px 12px 15px}
.pgk>li+li::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:1px;background:var(--line)}
.pgk .vz-i{width:22px;height:22px;color:var(--accent)}
.pgk b{display:block;margin-top:10px;font-size:clamp(18px,5.4vw,22px);font-weight:800;letter-spacing:-.02em;line-height:1.2;color:var(--ink)}
.pgk b small{font-size:15px;font-weight:700;letter-spacing:0;color:var(--ink2)}   /* 단위는 값 옆에 작게(같은 줄 — 칸이 좁으면 값 아래로 내려감) */
.pgk .pkn{display:block;margin-top:auto;padding-top:6px;font-size:15px;font-weight:600;line-height:1.35;color:var(--mute)}   /* 이름은 칸 아래끝에 맞춤(단위가 있는 칸과 없는 칸이 섞여도 이름 줄이 나란히) */
@media (max-width:374px){.pgk>li{padding:14px 10px 15px}.pgc a.pcx{padding:8px 12px 8px 10px}}   /* 360 — 회사 소개 [전화 …] [문자 보내기] 가 한 줄에(전에 3px 넘쳐 두 줄) */
@media (max-width:340px){.pgk b{font-size:17px;letter-spacing:-.03em}}   /* 320 — 세 칸 띠의 큰 값(「280~300」 · 「350만원」)이 좁은 칸에서 한 줄에 */
.pgk.pkf{justify-self:start;width:calc(var(--fn,4) * 25%)}   /* 액자 수만큼만 — 넷(참고자료)이면 꽉, 둘(인증)이면 반: 액자 크기 · 쪽머리 높이가 같게 */
.pgk.pkf>li{padding:10px}
.pgk.pkf .zb{aspect-ratio:3/4;padding:6px;background:#fff;border:1px solid var(--line);border-radius:4px}
.pgk.pkf img{width:100%;height:100%;object-fit:contain}
.pgk.pkf .zb .zi{right:4px;bottom:4px;width:24px;height:24px;padding:5px}
.pkm{grid-area:pnote;position:relative;z-index:2;margin-top:8px;font-size:15px;font-weight:500;line-height:1.4;color:var(--mute);text-align:right;
  text-wrap:balance}
@media (min-width:768px) and (max-width:1023px){.pgt{font-size:44px}}
/* PC — 왼쪽 아래를 비우지 않게(심사 10-02): 요점 칩이 흰 판 안의 「요점 줄 목록」(위 1px 선 · 44px 아이콘 칸 · 17px 굵은 글)이 되어
   요점 띠와 같은 줄에 나란히 걸침(왼쪽 줄 목록 · 오른쪽 띠, 같은 높이). 띠 칸은 이름표 → 값 차례(아이콘은 위 · 이름표와 값은 칸 아래끝 — subgrid 로 칸끼리 줄을 같이 씀).
   참고자료(칩 없음)는 액자 판이 왼쪽 아래로. 높이는 화면 높이를 따름(1024×768 568 · 1280×800 600 · 900 이상 640 — 같은 크기에서 일곱 장 같음).
   막은 글 칸(640) 끝까지만 진하고 220px 에 걸쳐 걷힘 — 오른쪽 사진이 드러나게 */
@media (min-width:1024px){
  .pgh{grid-template-columns:minmax(var(--pad),1fr) minmax(0,1192px) minmax(var(--pad),1fr);
    grid-template-rows:calc(var(--hh) + clamp(24px,5vh,56px)) auto auto auto 0 minmax(32px,1fr) 80px auto auto 0;
    min-height:clamp(560px,calc(100svh - 200px),640px);--kw:min(736px,62%)}   /* --kw 띠 폭 — 1280 이상에서 「280~300 ION/CC」 가 한 줄에 */
  .pgh::after{border-radius:0}
  .pph::after{background:linear-gradient(180deg,rgba(255,255,255,.2) 0,rgba(255,255,255,0) 80px),
    linear-gradient(90deg,rgba(255,255,255,.82) 0,rgba(255,255,255,.74) max(calc(50% + 44px),calc(var(--pad) + 640px)),
      rgba(255,255,255,0) calc(max(calc(50% + 44px),calc(var(--pad) + 640px)) + 70px))}   /* PC 만 선명하게(대표 지시 2026-10-03 「뿌옇게 보여 — PC 만」):
      위 막 .55→.2 · 글 칸 막 .9/.84→.82/.74 · 걷히는 폭 220→70px. 일곱 장 × 1024~2560 다섯 크기에서 글 대비 가장 나쁜 2% 4.76(세트/1/선명/막재기.py P6) */
  .pgb,.pgt,.pgs{max-width:640px}
  .pgt{margin-top:6px;font-size:clamp(44px,4.2vw,56px);letter-spacing:-.035em;line-height:1.18}
  .pgs{margin-top:16px;font-size:21px}
  .pgc{grid-area:7/2/9/3;align-self:stretch;justify-self:start;width:calc(100% - var(--kw) - 32px);max-width:520px;
    flex-direction:column;flex-wrap:nowrap;justify-content:center;gap:0;margin-top:0;padding:6px 24px;
    background:#fff;border:1px solid var(--line);border-radius:8px}
  .pgc>li{display:block}
  .pgc>li+li{border-top:1px solid var(--line)}
  .pgc .pcx,.pgc a.pcx{display:flex;gap:14px;min-height:60px;padding:8px 0;border:0;border-radius:0;background:none;
    font-size:17px;font-weight:700;line-height:1.35;color:var(--ink)}
  .pgc svg{flex:0 0 44px;width:44px;height:44px;padding:9px;border:1px solid var(--line);border-radius:8px;background:#fff}
  .pgc a.pcx:hover{background:none;color:var(--accent)}
  .pgc a.pcx:hover svg{color:var(--accent);border-color:var(--accent)}
  .pgc a.pcx .pcv{display:block;flex:0 0 20px;width:20px;height:20px;margin-left:auto;padding:0;border:0;border-radius:0;background:none;color:var(--mute)}   /* 누르는 줄 — 끝에 화살(검토 10-02) */
  .pgc .pcl{min-height:0;padding:14px 0 6px;font-size:15px;color:var(--mute)}
  .pgk{justify-self:end;width:var(--kw)}
  .pgk>li{padding:22px 20px 24px}
  .pgk>li+li::before{top:22px;bottom:22px}
  .pgk .vz-i{width:26px;height:26px}
  .pgk:not(.pkf){grid-template-rows:auto 1fr auto auto}   /* 칸 넷 줄(아이콘 · 빈 줄 · 이름표 · 값)을 칸끼리 같이 씀(subgrid) — 띠가 왼쪽 줄 목록 높이로 늘어나면
     빈 줄이 늘어 이름표 · 값이 칸 아래끝에 모이고, 단위가 내려가는 칸이 있어도 이름표 줄 · 큰 값 줄이 나란히(검토 10-02 — 전에는 위로 쏠림) */
  .pgk:not(.pkf)>li{display:grid;grid-row:span 4;grid-template-rows:subgrid;align-content:start}
  .pgk:not(.pkf)>li>.vz-i{grid-row:1}
  .pgk:not(.pkf)>li>.pkn{grid-row:3}
  .pgk:not(.pkf)>li>b{grid-row:4}
  .pgk .pkn{order:1;margin-top:12px;padding-top:0;font-size:16px}
  .pgk b{order:2;margin-top:8px;font-size:clamp(26px,2.4vw,30px)}   /* 값은 이름표 바로 아래 · 둘 다 칸 아래끝(위 subgrid 의 빈 줄) */
  .pgk b small{font-size:16px}
  .pgk.pkf{justify-self:start;width:min(100%,calc(var(--fn,4) * 150px))}
  .pgk.pkf.pkr{justify-self:end}   /* 칩 줄 목록이 왼쪽에 있으면(인증 · 성적서) 액자는 오른쪽 — 겹치지 않게 */
  .pgk.pkf>li{padding:14px}
  .pkm{justify-self:end;width:var(--kw)}
}
html.js .pgh .ml>*{animation:mlUp .85s var(--ez) both}
html.js .pgt .ml:nth-child(1)>*{animation-delay:.1s}
html.js .pgt .ml:nth-child(2)>*{animation-delay:.18s}
html.js .pgt .ml:nth-child(3)>*{animation-delay:.24s}
html.js .pgs .ml>*{animation-delay:.26s}
html.js .pgs .ml:nth-child(2)>*{animation-delay:.32s}
html.js .pgb{animation:fadeIn .6s ease .05s both}
html.js .pgc>li{animation:panelUp .6s var(--ez) both;animation-delay:calc(.36s + var(--i,0) * 60ms)}
html.js .pgk{animation:panelUp .7s var(--ez) .48s both}
html.js .pph img{animation:fadeIn .8s ease both}
@media (min-width:1024px){
  html.js .pph{animation:clipIn .85s var(--ez) both}
  html.js .pph img{animation:none}
  html.js .pgc{animation:panelUp .7s var(--ez) .42s both}   /* PC 는 줄 목록 판째로(띠와 같은 움직임) */
  html.js .pgc>li{animation:none}
}
/* vz parts - icons: Lucide (ISC License) */

.vz-i{display:inline-block;flex:0 0 auto;vertical-align:middle}
.vz-nw{white-space:nowrap}
.vz-ic{flex:0 0 44px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--accent)}
.vz-sw{display:inline-block;flex:0 0 12px;width:12px;height:12px;border-radius:2px;background:var(--on-band)}
.vz-sw.vz-e{background:var(--accent)}
.vz-sw.vz-lk{position:relative;flex-basis:20px;width:20px;height:2px;border-radius:1px}
.vz-sw.vz-lk::after{content:"";position:absolute;left:6px;top:-3px;width:8px;height:8px;border-radius:50%;background:inherit}
.vz-lg{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:14px;font-size:15px;font-weight:600;line-height:1.4;color:var(--ink2)}
.vz-lg li{display:inline-flex;align-items:center;gap:8px}
.vz-cap{font-size:19px;font-weight:700;line-height:1.4;color:var(--ink)}
.vz-cap span{margin-left:4px;font-size:15px;font-weight:500;color:var(--mute)}
.vz-note{margin-top:12px;font-size:15px;line-height:1.55;color:var(--ink2)}


.vz-fold{margin-top:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.vz-fold summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;font-size:16px;font-weight:700;
  color:var(--ink);cursor:pointer;list-style:none}
.vz-fold summary::-webkit-details-marker{display:none}
.vz-fa{transition:transform .25s ease}
.vz-fold[open] .vz-fa{transform:rotate(180deg)}
.vz-fb{padding:0 0 18px}
.vz-fb>p{color:var(--ink2)}
.vz-fb>*+*{margin-top:14px}


.vz-cells{display:grid;gap:10px;margin-top:20px}
.vz-cells.vz-c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.vz-cells.vz-c2>li.vz-w{grid-column:1/-1}
.vz-cells>li{position:relative;display:flex;flex-direction:column;gap:10px;min-width:0;min-height:88px;padding:14px;
  border:1px solid var(--line);border-radius:8px;background:#fff}
.vz-ct{display:flex;flex-direction:column;gap:4px;min-width:0}
.vz-cells .vz-no{position:absolute;top:12px;right:14px;font-size:15px;font-weight:700;line-height:1.4;color:var(--accent);font-variant-numeric:tabular-nums}
.vz-nm{font-size:17px;font-weight:700;line-height:1.4;letter-spacing:-.015em;color:var(--ink)}
.vz-cells.vz-big .vz-nm{font-size:19px}
.vz-d{font-size:16px;line-height:1.6;color:var(--ink2)}
.vz-d b{font-weight:700;color:var(--ink)}
.vz-cells.vz-row>li{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:14px;align-items:start}
.vz-cells.vz-row .vz-no{position:static;display:block}
.vz-cells.vz-row>li.vz-1l{min-height:0;align-items:center}
@media (min-width:768px){
  .vz-cells.vz-p2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vz-cells.vz-p3,.vz-cells.vz-p4,.vz-cells.vz-p5,.vz-cells.vz-p6{grid-template-columns:repeat(3,minmax(0,1fr))}
  .vz-cells.vz-p3>li.vz-w,.vz-cells.vz-p4>li.vz-w,.vz-cells.vz-p5>li.vz-w,.vz-cells.vz-p6>li.vz-w{grid-column:auto}
}
@media (min-width:1024px){
  .vz-cells.vz-p1{grid-template-columns:minmax(0,1fr)}
  .vz-cells.vz-p4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .vz-cells.vz-p5{grid-template-columns:repeat(5,minmax(0,1fr))}
  .vz-cells.vz-p6{grid-template-columns:repeat(6,minmax(0,1fr))}
  .vz-cells.vz-row.vz-p3>li,.vz-cells.vz-row.vz-p4>li,.vz-cells.vz-row.vz-p5>li,.vz-cells.vz-row.vz-p6>li{display:flex;flex-direction:column}
  .vz-cells>li{padding:18px}
}


.vz-kv{display:flex;align-items:center;gap:14px}
.vz-kv p{display:flex;flex-direction:column;gap:2px;min-width:0}
.vz-kl{font-size:15px;font-weight:600;line-height:1.4;color:var(--mute)}
.vz-kn{font-size:44px;font-weight:800;line-height:1.1;letter-spacing:-.03em;color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}
.vz-kn small{font-size:.42em;font-weight:700;letter-spacing:0;color:var(--ink)}
.vz-rows{display:grid;gap:8px;margin-top:12px;font-size:16px;line-height:1.5;color:var(--ink2)}
.vz-rows li{display:flex;align-items:flex-start;gap:10px}
.vz-ri{flex:0 0 20px;height:24px;display:inline-flex;align-items:center;color:var(--mute)}
.vz-cite{display:flex;gap:12px;margin:0;padding:4px 0 4px 16px;border-left:2px solid var(--accent);color:var(--ink2)}
.vz-cite .vz-i{flex:0 0 20px;margin-top:4px;color:var(--accent)}


.vz-el{position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 auto;
  min-width:56px;height:56px;padding:3px 8px 0;border:1px solid var(--line);border-radius:6px;background:#fff;overflow:hidden}
.vz-el::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--on-band)}
.vz-el.vz-e{border-color:var(--accent)}
.vz-el.vz-e::before{background:var(--accent)}
.vz-el b{font-size:20px;font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--ink);white-space:nowrap}
.vz-el.vz-nm2{height:auto;min-height:96px;padding:16px 6px 12px;gap:6px}
.vz-el.vz-nm2 b{font-size:28px}
.vz-el small{font-size:15px;font-weight:600;line-height:1.35;color:var(--ink2);text-align:center}
.vz-els{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.vz-elist{margin-top:16px;border-bottom:1px solid var(--line)}
.vz-elist li{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:14px;align-items:start;padding:14px 0}
.vz-elist li::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line);transform-origin:0 50%}
.vz-en{display:block;font-size:17px;font-weight:700;line-height:1.4}
.vz-elist p{margin-top:2px;font-size:16px;line-height:1.55;color:var(--ink2)}
.vz-plus{display:flex;align-items:stretch;gap:4px;margin-top:20px}
.vz-plus .vz-el{flex:1 1 0;min-width:0}
.vz-pl{flex:0 0 20px;display:inline-flex;align-items:center;justify-content:center;color:var(--mute)}
.vz-duo{display:grid;gap:12px;margin-top:20px}
.vz-dc{position:relative;min-width:0;padding:22px 18px 18px;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}
.vz-dc::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--on-band)}
.vz-dc.vz-e::before{background:var(--accent)}
.vz-dn{margin-bottom:12px;font-size:19px;font-weight:700;line-height:1.35}
.vz-dc>p:not(.vz-dn){color:var(--ink2)}
.vz-ph{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px;align-items:start}
.vz-ph figure{min-width:0}
.vz-pz{background:#fff;border:1px solid var(--line)}
.vz-pz img{width:100%;height:auto;aspect-ratio:var(--ar,auto);object-fit:contain}
.vz-ph figcaption{display:flex;align-items:flex-start;gap:8px;margin-top:8px;font-size:15px;font-weight:600;line-height:1.4;color:var(--ink)}
.vz-ph figcaption .vz-sw{margin-top:4px}
.vz-pdl{display:grid;gap:8px;margin-top:12px;font-size:15px;line-height:1.5;color:var(--ink2)}
.vz-pdl li{display:flex;align-items:flex-start;gap:8px}
.vz-pdl .vz-sw{margin-top:5px}
.vz-pdl b{display:block;font-weight:700;color:var(--ink)}
@media (min-width:768px){
  .vz-duo{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .vz-ph{gap:20px}
  .vz-ph figcaption{font-size:16px}
}
@media (min-width:1024px){
  .vz-kn{font-size:64px}
  .vz-plus{gap:12px;max-width:720px}
}


.vz-pm,.vz-lc,.vz-hbar,.vz-cut{background:#fff;border:1px solid var(--line);border-radius:8px}

.vz-bars{margin-top:36px}
.vz-pms{display:grid;gap:10px;margin-top:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.vz-pm{display:flex;flex-direction:column;min-width:0;padding:14px 16px 16px}
.vz-pmh{display:flex;align-items:baseline;gap:6px;font-size:19px;font-weight:700;line-height:1.3}
.vz-pmh small{font-size:15px;font-weight:600;color:var(--mute)}
.vz-pv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin-top:12px}
.vz-pv>div{min-width:0}
.vz-pv dt{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;line-height:1.35;color:var(--mute)}
.vz-pv dd{margin:4px 0 0;font-size:26px;font-weight:800;line-height:1.2;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.vz-pv dd small{display:block;margin-top:2px;font-size:15px;font-weight:500;letter-spacing:0;color:var(--mute);white-space:nowrap}
.vz-tr{display:flex;align-items:center;gap:8px;min-width:0;min-height:28px;border-left:1px solid var(--mute)}
.vz-b{flex:0 0 auto;display:block;height:14px;width:calc((100% - var(--vr,60px)) * var(--w,0));border-radius:0 4px 4px 0;
  background:var(--on-band);transform-origin:0 50%}
.vz-b.vz-e{background:var(--accent)}
.vz-b.vz-nz{min-width:1px}
.vz-v{min-width:0;font-size:17px;font-weight:700;line-height:1.3;color:var(--ink);font-variant-numeric:tabular-nums}
.vz-v small{display:block;font-size:15px;font-weight:500;color:var(--mute);white-space:nowrap}
.vz-pv{margin-bottom:14px}
.vz-pmr{display:flex;flex-direction:column;gap:2px;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}
.vz-pmr span{font-size:15px;font-weight:500;line-height:1.4;color:var(--mute)}
.vz-pmr b{font-size:34px;font-weight:800;line-height:1.15;letter-spacing:-.02em;color:var(--accent);white-space:nowrap;font-variant-numeric:tabular-nums}
@media (max-width:339px){.vz-pv{grid-template-columns:minmax(0,1fr)}}
.vz-hbar{margin-top:24px;padding:16px;--vr:52px}
.vz-rg{display:flex;flex-direction:column;align-items:flex-end;text-align:right;padding-right:calc(100% - (100% - var(--vr)) * var(--hi,1));
  font-size:15px;line-height:1.4;color:var(--ink2)}
.vz-rg b{font-size:17px;font-weight:700;color:var(--ink)}
.vz-hrs{position:relative;margin-top:10px}
.vz-band{position:absolute;top:-10px;bottom:0;left:calc((100% - var(--vr)) * var(--lo));width:calc((100% - var(--vr)) * (var(--hi) - var(--lo)));
  min-width:4px;background:var(--line);border-radius:2px}
.vz-hr{position:relative;z-index:1;padding:6px 0}
.vz-hbn{margin-bottom:4px;font-size:15px;font-weight:600;line-height:1.4;color:var(--ink2)}
.vz-hr .vz-v{font-size:19px}
@media (min-width:1024px){.vz-b{height:18px}.vz-hbar{padding:24px}}


.vz-line{margin-top:36px}
.vz-lcs{display:grid;gap:10px;margin-top:14px}
.vz-lc{min-width:0;padding:14px 16px 16px}
.vz-lct{font-size:17px;font-weight:700;line-height:1.4}
.vz-lct span{margin-left:4px;font-size:15px;font-weight:500;color:var(--mute)}
.vz-plot{position:relative;height:160px;margin-top:12px;border-bottom:1px solid var(--mute)}
.vz-plot svg{position:absolute;inset:0;width:100%;height:100%;max-width:none;overflow:visible}
.vz-ls{fill:none;stroke:var(--on-band);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.vz-ls.vz-e{stroke:var(--accent)}
.vz-pr{fill:none;stroke:#fff;stroke-width:12;stroke-linecap:round}
.vz-pt{fill:none;stroke:var(--on-band);stroke-width:8;stroke-linecap:round}
.vz-pt.vz-e{stroke:var(--accent)}
.vz-x{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));margin-top:6px;font-size:15px;line-height:1.3;color:var(--mute);
  text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}
.vz-end{width:100%;margin-top:14px;border-collapse:collapse;font-variant-numeric:tabular-nums}
.vz-end th,.vz-end td{height:38px;padding:0;border-top:1px solid var(--line);text-align:right;vertical-align:middle}
.vz-end thead th,.vz-end thead td{height:28px;border-top:0;font-size:15px;font-weight:600;color:var(--mute)}
.vz-end tbody th{text-align:left;font-size:15px;font-weight:600;color:var(--ink2);white-space:nowrap}
.vz-end tbody th .vz-sw{margin-right:10px;vertical-align:middle}
.vz-end td{width:68px;font-size:17px;font-weight:700;color:var(--ink)}
@media (min-width:768px){.vz-lcs{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}
@media (min-width:1024px){.vz-plot{height:200px}.vz-lc{padding:20px 24px 22px}}


.vz-step{margin-top:16px}
.vz-step li{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:12px;align-items:start;padding-bottom:16px}
.vz-step li:last-child{padding-bottom:0}
.vz-step li:not(:last-child)::before{content:"";position:absolute;left:17.5px;top:40px;bottom:4px;width:1px;background:var(--mute);transform-origin:50% 0}
.vz-sn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--accent);border-radius:50%;
  background:#fff;font-size:15px;font-weight:700;letter-spacing:-.02em;color:var(--accent);font-variant-numeric:tabular-nums}
.vz-st{padding-top:5px;font-size:17px;line-height:1.55;color:var(--ink)}
@media (min-width:1024px){
  .vz-step.vz-h{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);column-gap:20px}
  .vz-step.vz-h li{display:block;padding-bottom:0}
  .vz-step.vz-h li:not(:last-child)::before{left:48px;right:-8px;top:18px;bottom:auto;width:auto;height:1px;transform-origin:0 50%}
  .vz-step.vz-h .vz-st{display:block;padding-top:12px}
}


.vz-cut{max-width:640px;margin-top:24px;padding:14px 16px 16px}
.vz-cg{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:". cs ." "nl sl br";column-gap:10px;row-gap:6px;--h:120px}
.vz-cs{grid-area:cs;display:flex;color:var(--accent)}
.vz-cs .vz-i{width:28px;height:28px}
.vz-nl{grid-area:nl;display:flex;align-items:center;gap:8px;height:var(--h)}
.vz-nl i{align-self:stretch;width:8px;border:1px solid var(--ink);border-right:0;border-bottom:0}
.vz-sl{font-size:15px;font-weight:700;line-height:1.3;color:var(--ink);white-space:nowrap}
.vz-slab{grid-area:sl;position:relative;height:var(--h);border:1px solid var(--mute);border-bottom:0;background:var(--bg2)}
.vz-pen{position:absolute;left:0;right:0;top:0;height:42%;background:var(--accent)}
.vz-br{grid-area:br;align-self:start;display:flex;align-items:center;gap:8px;height:calc(var(--h) * .42)}
.vz-br i{align-self:stretch;width:10px;border:1px solid var(--ink);border-left:0}
.vz-br b{font-size:28px;font-weight:800;line-height:1;letter-spacing:-.02em;white-space:nowrap;font-variant-numeric:tabular-nums}
.vz-cut figcaption{margin-top:12px;font-size:16px;font-weight:600;line-height:1.5;color:var(--ink2)}
.vz-cut.vz-big .vz-cg{--h:150px}
@media (min-width:768px){.vz-cut.vz-big .vz-br b{font-size:36px}}
@media (min-width:1024px){.vz-cut{padding:20px 24px 24px}.vz-cg{--h:140px}.vz-cut.vz-big .vz-cg{--h:170px}}


.vz-hub{margin-top:24px}
.vz-hc{padding:16px;border:1px solid var(--accent);border-radius:8px;background:#fff;text-align:center}
.vz-hn{margin-bottom:10px;font-size:19px;font-weight:800;line-height:1.3}
.vz-hk{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.vz-hk li{padding:8px 12px;border:1px solid var(--line);border-radius:4px;font-size:16px;font-weight:700;line-height:1.3;color:var(--ink)}
.vz-hs{position:relative;margin-top:24px}
.vz-hs::before{content:"";position:absolute;left:50%;top:-24px;width:1px;height:24px;background:var(--mute)}
@media (min-width:1024px){
  .vz-hub{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:64px;align-items:center}
  .vz-hc{position:relative}
  .vz-hc::after{content:"";position:absolute;left:100%;top:50%;width:32px;height:1px;background:var(--mute)}
  .vz-hs{margin-top:0;grid-auto-rows:1fr}
  .vz-hs::before{left:-32px;height:auto;top:calc((100% - (var(--n) - 1) * 10px) / (2 * var(--n)));bottom:calc((100% - (var(--n) - 1) * 10px) / (2 * var(--n)))}
  .vz-hs>li:nth-child(odd)::before{content:"";position:absolute;left:-33px;top:50%;width:32px;height:1px;background:var(--mute)}
}


@media (prefers-reduced-motion:no-preference){
  html.js .vz-hr.rv,html.js .vz-lc.rv{opacity:1;transform:none}
  html.js .vz-hr.rv .vz-b{transform:scaleX(0);transition:transform .7s var(--ez) calc(var(--i,0) * 60ms + .1s)}
  html.js .vz-hr.rv.on .vz-b{transform:none}
  html.js .vz-lc.rv .vz-plot svg{clip-path:inset(0 100% 0 0);transition:clip-path .8s var(--ez) calc(var(--i,0) * 120ms + .1s)}
  html.js .vz-lc.rv.on .vz-plot svg{clip-path:inset(0)}
  html.js .vz-step.rv li::before{transform:scaleY(0);transition:transform .5s var(--ez) calc(var(--i,0) * 90ms + .2s)}
  html.js .vz-step.rv.on li::before{transform:none}
  html.js .vz-elist.rv li::before{transform:scaleX(0);transition:transform .4s ease calc(var(--i,0) * 60ms)}
  html.js .vz-elist.rv.on li::before{transform:none}
  html.js .vz-cut.rv .vz-pen{opacity:0;transition:opacity .6s ease .2s}
  html.js .vz-cut.rv.on .vz-pen{opacity:1}
  html.js .vz-cells.rv>li,html.js .vz-hub.rv .vz-hs>li{opacity:0;transform:translateY(10px);
    transition:opacity .5s ease calc(var(--i,0) * 60ms + .1s),transform .6s var(--ez) calc(var(--i,0) * 60ms + .1s)}
  html.js .vz-cells.rv.on>li,html.js .vz-hub.rv.on .vz-hs>li{opacity:1;transform:none}
}
@media (prefers-reduced-motion:no-preference) and (min-width:1024px){
  html.js .vz-step.vz-h.rv li::before{transform:scaleX(0)}
  html.js .vz-step.vz-h.rv.on li::before{transform:none}
}

/* ── 상담 문의 ── */
/* 첫 화면 높이는 바탕 쪽CSS(일곱 장 같은 높이 — 「요점 띠 + 길잡이」, 2026-10-02 저녁) */
@media (max-width:767px){#ask{padding-top:40px}}   /* 전화 · 문자를 첫 화면 가까이 (시공 안내 #how 와 같은 값) */
.cq{display:grid;row-gap:56px}
.cq h2.lab{margin-bottom:16px}
/* 전화 · 문자 — 전화는 폭 가득 크게 */
.cq .cb .btn{min-height:60px}
.cq .cb .tel{min-height:64px;font-size:20px;font-variant-numeric:tabular-nums}
.cq .cb .tel svg{width:22px;height:22px}
.cq .lst{margin-top:24px}
.cq .ln .lb{min-width:0;flex:0 0 92px}
.cq .ln b{font-variant-numeric:tabular-nums}
.cq .ln b small{display:inline-block;margin-left:6px;font-size:15px;font-weight:500;color:var(--mute);white-space:nowrap}
.cq .pbox{margin-top:20px;padding:22px 22px 24px;background:var(--bg2)}
.cq .pc{font-size:56px}
.cq .pd{font-size:19px}

/* 입주자께 드리는 말 — 폼 위 흰 판(위 3px 강조 띠 · 1px 선), 홈 띠보다 작고 차분하게 (대표 지시 2026-10-03) */
.cfc{display:grid;row-gap:40px;min-width:0}
.rsd{position:relative;padding:24px 20px 22px;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}
.rsd::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--accent)}
.rsd-t{font-size:20px;font-weight:800;line-height:1.45;letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
.rsd .vz-els{gap:6px;margin-top:14px}
.rsd .vz-el{min-width:48px;height:44px;padding:3px 6px 0}
.rsd .vz-el b{font-size:17px}
.rsd-g{display:grid;row-gap:10px;margin-top:16px}
.rsd-g p{font-size:16px;line-height:1.65;color:var(--ink2)}
.rsd-g .rsd-z{font-weight:700;color:var(--ink)}
.rsd .btn{width:100%;margin-top:20px}
.rsd .btn .vz-i{flex:0 0 20px;width:20px;height:20px}

/* 폼 — 갈래 탭 둘 */
.gl{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gl [role=tab]{scroll-margin-top:56px}   /* #g-1 · #g-2 로 오면 「상담 남기기」 이름까지 보이게 */
.gl .btn{min-height:56px;padding:0 10px;font-size:17px;white-space:normal;text-align:center;line-height:1.3}
.gl .btn[aria-selected=true]{background:var(--accent);color:#fff}
.gl .btn[aria-selected=false]{border-color:var(--line);color:var(--ink2);background:#fff}
.gl .btn[aria-selected=false]:hover{border-color:var(--ink);color:var(--ink);background:#fff}
.gl .btn .vz-i{flex:0 0 22px;width:22px;height:22px}
.gl .btn span{min-width:0}
.rqn{margin-top:20px;font-size:16px;font-weight:600;color:var(--ink2)}
.rq{margin-left:3px;font-style:normal;font-weight:800;color:var(--accent)}
.rqn .rq{margin-left:0}
.fp{margin:0;padding:0;border:0;min-width:0}
.fp[hidden]{display:none}
.fg{display:grid;gap:18px;margin-top:16px}
.fd{display:grid;gap:8px}
.fn{font-size:16px;font-weight:600;line-height:1.4;color:var(--ink)}
.fi{width:100%;min-height:52px;padding:12px 14px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);
  font:inherit;font-size:17px;line-height:1.4;letter-spacing:-.01em;-webkit-appearance:none;appearance:none;
  transition:border-color .2s ease}
.fi:hover{border-color:var(--mute)}
.fi:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
textarea.fi{min-height:148px;resize:vertical}
.fi[aria-invalid=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.sl{position:relative;display:block}
.sl .fi{padding-right:44px}
.sl svg{position:absolute;right:14px;top:50%;width:20px;height:20px;margin-top:-10px;pointer-events:none;color:var(--ink2)}
.er{display:block;margin-top:6px;font-size:16px;font-weight:700;line-height:1.4;color:var(--accent)}
.er[hidden]{display:none}
.hp{display:none}

/* 동의 — 줄 전체가 체크 칸(진짜 체크 칸은 줄을 덮고 투명, 보이는 네모는 .ckb) */
.ag{margin-top:28px;padding-top:4px;border-top:1px solid var(--line)}
.ck{position:relative;display:flex;align-items:center;gap:12px;min-height:56px;padding:6px 0;cursor:pointer}
.ck input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.ckb{position:relative;flex:0 0 28px;width:28px;height:28px;border:2px solid var(--ink2);border-radius:6px;background:#fff;
  transition:background-color .15s ease,border-color .15s ease}
.ckb::after{content:"";position:absolute;left:8px;top:3px;width:7px;height:13px;border:solid #fff;border-width:0 3px 3px 0;
  transform:rotate(45deg) scale(0);transition:transform .15s ease}
.ck input:checked+.ckb{background:var(--accent);border-color:var(--accent)}
.ck input:checked+.ckb::after{transform:rotate(45deg) scale(1)}
.ck input:focus-visible+.ckb{outline:3px solid var(--accent);outline-offset:2px}
.ck input[aria-invalid=true]+.ckb{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.ckt{font-size:17px;font-weight:700;line-height:1.4}
.agd summary{display:flex;align-items:center;gap:6px;min-height:44px;font-size:16px;font-weight:600;color:var(--ink2);cursor:pointer;list-style:none}
.agd summary::-webkit-details-marker{display:none}
.agd summary svg{width:20px;height:20px;transition:transform .2s ease}
.agd[open] summary svg{transform:rotate(180deg)}
.agd .lst{margin-top:4px}
.agd .ln{min-height:52px;align-items:baseline}
.agd .ln b{font-size:17px;font-weight:600}
.agl{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-top:4px;font-size:16px;font-weight:600;color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.agl svg{width:18px;height:18px}
.cq .sb{width:100%;min-height:60px;margin-top:20px;font-size:18px}
.ng{margin-top:16px;padding:20px 18px;border-radius:8px;background:var(--bg2)}
.ng[hidden]{display:none}
.ng p{font-size:17px;font-weight:700;line-height:1.5}
.ng .cb2{margin-top:14px}

/* 보낸 뒤 확인 창 */
.dlg{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:var(--pad);background:rgba(31,34,37,.62)}
.dlg[hidden]{display:none}
.dp{width:100%;max-width:480px;max-height:100%;overflow-y:auto;padding:28px 22px 22px;border-radius:8px;background:#fff;color:var(--ink)}
.dp .h3{outline:none}
.dp .lst{margin-top:18px}
.dp .ln{align-items:flex-start}
.dp .ln .lb{display:inline-flex;align-items:center;gap:6px;min-height:26px}
.dp .ln .lb .vz-i{flex:0 0 20px;width:20px;height:20px;color:var(--mute)}
.dp .ln b{font-variant-numeric:tabular-nums}
.dp .ln b small{display:block;margin:4px 0 0;font-size:16px;font-weight:500;color:var(--ink2)}
.dp .dm{margin-top:16px;font-size:17px;line-height:1.55;color:var(--ink2)}
.dp .cb2{margin-top:22px}
html.js .dlg .dp{animation:panelUp .45s var(--ez) both}
html.js .dlg{animation:fadeIn .25s ease both}
@media (prefers-reduced-motion:reduce){html.js .dlg .dp,html.js .dlg{animation:none}}

/* 태블릿 · PC */
@media (min-width:768px){
  .fg{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;row-gap:20px}
  .fw.w2{grid-column:1/-1}
  .gl .btn{font-size:18px}
  .rsd{padding:28px 28px 26px}
  .rsd .btn{width:auto;min-width:240px}
}
@media (min-width:1024px){
  .cq{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:72px;align-items:start}
  .cq .cb .tel{min-height:68px;font-size:22px}
  .cq .pbox{margin-top:24px;padding:30px 28px 28px}
  .cq .pc{font-size:64px}
  .cq .pd{font-size:21px}
  .cfc{row-gap:48px}
  .rsd{padding:32px 32px 30px}
  .rsd-t{font-size:22px}
  .rsd-g p{font-size:17px}
  .gl .btn{min-height:60px}
  .rqn{margin-top:24px}
  .fg{margin-top:20px;column-gap:24px;row-gap:24px}
  .fi{min-height:56px}
  .ag{margin-top:36px}
  .cq .sb{min-height:64px;margin-top:24px;font-size:19px}
  .dp{padding:40px 36px 32px}
}
