/* 시안 「index.html」의 <style> 그대로(scripts/sian-extract.mjs 가 만듦 · 손으로 고치지 않음) */
/* 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}
}

: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}

/* ── 첫 화면 (휴대폰 먼저) ── */
.hero{position:relative;background:#fff}
/* 흰 판 = 한 줄(무슨 일을 하는 곳인지) → [시공 상담] → 근거 줄. 단추 아래 높이(--rh)는 틀JS 가 재서 넣고,
   단추 아래끝이 고정 바 12px 위에 오도록 첫 화면 높이를 맞춥니다 (스크립트가 없으면 줄 셋 높이로 어림) */
.hg{position:relative;display:grid;grid-template-columns:var(--pad) minmax(0,1fr) var(--pad);--rh0:182px;
  grid-template-rows:calc(var(--hh) + 16px) auto auto auto minmax(150px,1fr) 20px auto auto 14px auto;
  grid-template-areas:". . ." ". tg ." ". ttl ." ". sub ." ". . ." ". . ." ". hl ." ". btn ." ". . ." ". row .";
  min-height:calc(max(540px,100vh) - var(--cb) - 12px + var(--rh,var(--rh0)));
  min-height:calc(max(540px,100svh) - var(--cb) - 12px + var(--rh,var(--rh0)))}
/* 사진 — 거실 사진을 칸 가득(위 1/3 이 흰 천장). 가로 42% — 휴대폰에서 등(펜던트)이 제목 오른쪽에 서게.
   밝은 막은 글(--wg1) 끝까지 .64 이상, --wg2 에서 걷힘 — 두 값은 틀JS 가 글 높이를 재서 넣음 (부제 대비 5.6:1 안팎) */
.hph{grid-column:1/-1;grid-row:1/7;position:relative;overflow:hidden;z-index:0;background:#ECEDEE}
.hph img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:42% 50%}
.hph::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.82) 0,rgba(255,255,255,.64) var(--wg1,46%),rgba(255,255,255,0) var(--wg2,62%))}
.tg,.ttl,.sub,.hl,.hb2,.hrow{position:relative;z-index:2}
.tg{grid-area:tg}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags li{font-size:15px;font-weight:600;line-height:1;padding:9px 13px;border:1px solid var(--ink);border-radius:999px;background:rgba(255,255,255,.4)}
.ttl{grid-area:ttl;margin-top:18px;font-size:clamp(32px,9.2vw,38px);font-weight:800;letter-spacing:-.03em;line-height:1.25}
.sub{grid-area:sub;margin-top:12px;font-size:18px;font-weight:500;line-height:1.45;color:var(--ink2);text-wrap:pretty}   /* pretty — 긴 부제(1안 「부제길게」)의 끝 낱말이 홀로 줄을 차지하지 않게 */
.hpbg{grid-column:1/-1;grid-row:6/-1;background:#fff;border-radius:14px 14px 0 0;z-index:1}
.hrow{grid-area:row}
.hrow .ln{min-height:56px}
.hrow .ln .lb{flex:0 0 106px;min-width:0}
.hrow .ln b{font-size:18px;font-variant-numeric:tabular-nums}
.hrow .ln b .vat{display:inline-block;margin-left:6px;font-size:15px;font-weight:500;color:var(--mute);white-space:nowrap}
@media (max-width:339px){.hrow .ln{flex-wrap:wrap;row-gap:2px}.hrow .ln .lb{flex-basis:100%}}
.hb2{grid-area:btn;margin-top:12px;display:flex;gap:10px}
.hb2 .btn{flex:1 1 0}
.hb2 .htel{display:none}
.hl{grid-area:hl;font-size:17px;line-height:1.6;color:var(--ink2)}

/* 좁은 휴대폰(360 등) · 키가 낮은 휴대폰 — 딱지는 알약 대신 한 줄 글로 (「·」 는 앞 낱말에 붙여 줄 머리에 안 오게) */
@media (max-width:374px), (max-width:1023px) and (max-height:740px){
  .tags{display:block;line-height:1.5}
  .tags li{display:inline;padding:0;border:0;border-radius:0;background:none;line-height:1.5;white-space:nowrap;letter-spacing:-.02em}
  .tags li:not(:last-child)::after{content:"\00a0·"}
}
@media (max-width:374px){
  .sub{font-size:17px}
}
/* 키가 낮은 휴대폰(높이 740 이하 — 갤럭시 크롬 701~729 · 375×667 · 360×640 포함) — 부제를 흰 판 첫 줄로, 그 아래 단추 → 한 줄 → 근거 줄.
   한 줄을 단추 아래로 둔 것은 사진을 180px 넘게 남기려고 — 전에는 높이 650 이하만 그랬지만, 부제가 네 줄로 길어져(2026-10-02)
   651~740 에서도 한 줄이 단추 위에 있으면 단추가 전화 바 뒤로 들어감(375×667 · 360×651 에서 잼) */
@media (max-width:1023px) and (max-height:740px){
  .hg{--rh0:290px;grid-template-rows:calc(var(--hh) + 12px) auto auto minmax(150px,1fr) 18px auto auto 12px auto auto;
    grid-template-areas:". . ." ". tg ." ". ttl ." ". . ." ". . ." ". sub ." ". btn ." ". . ." ". hl ." ". row ."}
  .hph{grid-row:1/6}
  .hpbg{grid-row:5/-1}
  .ttl{margin-top:10px}
  .sub{margin-top:0;color:var(--ink)}
  .hl{margin-top:0;padding-bottom:10px}
}
@media (min-width:768px) and (max-width:1023px){
  .ttl{font-size:52px}
  .hb2 .htel{display:inline-flex}
}

/* ── 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 (max-width:1023px){
  .wk .wa:last-of-type .wl{border-bottom:0}
  .wk .more{margin-top:0}
  .ct{display:flex;flex-direction:column}
  .ct .cr{order:-1;margin-top:0}
  .ct>.rv:first-child{margin-top:48px}
}
@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 .hero .ml>*{animation:mlUp .85s var(--ez) both}
html.js .hero .tg>*{animation-delay:.05s}
html.js .hero .ttl .ml:nth-child(1)>*{animation-delay:.13s}
html.js .hero .ttl .ml:nth-child(2)>*{animation-delay:.21s}
html.js .hero .sub .ml>*{animation-delay:.29s}
html.js .hero .sub .ml:nth-child(2)>*{animation-delay:.35s}
html.js .hph img{animation:fadeIn .8s ease both}
html.js .hpbg,html.js .hl,html.js .hrow,html.js .hb2{animation:panelUp .7s var(--ez) .3s both}
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){
  .hg{grid-template-columns:minmax(var(--pad),1fr) minmax(0,792px) 400px minmax(var(--pad),1fr);
    grid-template-rows:calc(var(--hh) + clamp(36px,6vh,64px)) auto auto auto auto auto minmax(28px,1fr) 92px 92px;
    grid-template-areas:". . . ." ". tg . ." ". ttl . ." ". sub . ." ". hl . ." ". btn . ." ". . . ." ". . row ." ". . row .";
    min-height:816px}
  .hph{grid-row:1/9}
  .hph img{object-position:50% 34%}
  .hph::after{background:linear-gradient(180deg,rgba(255,255,255,.55) 0,rgba(255,255,255,0) 150px),
    linear-gradient(90deg,rgba(255,255,255,.88) 0,rgba(255,255,255,.78) calc(50% - 140px),rgba(255,255,255,0) calc(50% + 300px))}
  .tags li{padding:10px 15px}
  .ttl{margin-top:22px;font-size:clamp(52px,5vw,64px);letter-spacing:-.035em;line-height:1.16}
  .sub{margin-top:18px;font-size:22px;max-width:560px}   /* 560 — 긴 부제가 흰 막(왼쪽 .78 이상) 안에서 꺾이게: 1280 · 1440 · 1920 대비 6.4 이상 (792 폭이면 첫 줄 끝이 사진 위라 2.9) */
  .hl{margin-top:10px;padding:0;font-size:18px}
  .hb2{margin-top:30px}
  .hb2 .btn{flex:0 0 auto}
  .hb2 .htel{display:inline-flex}
  .hpbg{grid-area:row;border-radius:8px;box-shadow:0 0 0 1px var(--line),0 24px 48px -24px rgba(31,34,37,.32)}
  .hrow{grid-area:row;align-self:stretch;padding:20px 28px}
  .hrow .ln{min-height:64px}
  .hrow .ln:first-child::before{opacity:0}
  .hrow .ln.opc{display:flex}
  .hrow .lst>.ln:last-child,.hrow .ln.end{border-bottom:0}
  html.js .hph{animation:clipIn .85s var(--ez) both}
  html.js .hph img{animation:none}
  html.js .hl{animation:panelUp .7s var(--ez) .37s both}
  html.js .hb2{animation:panelUp .7s var(--ez) .45s both}
  html.js .hpbg,html.js .hrow{animation:panelUp .7s var(--ez) .5s both}

  #bio{padding-top:64px}
  .bio{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:64px;align-items:start}
  .bio .bh{grid-row:1/3}
  .bio .more{grid-column:2;margin-top:0}

  .tox .th{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:64px;align-items:end}
  .tox .th>p{margin-top:0}
  .cert{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:64px;align-items:start}
  .cert .sh{grid-row:1/3}
  .cert .more{grid-column:2;margin-top:40px}

  .wk{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px;grid-template-rows:auto auto auto auto auto}
  .wk .sh{grid-column:1/3;grid-row:1;align-self:start;padding-bottom:0}
  .wa.wp .wph{aspect-ratio:2/1}
  .wa{margin-top:0;display:grid;grid-template-rows:subgrid;grid-row:2/span 3}
  .wa.wp{grid-row:1/span 4}
  .wk .more{grid-column:1/-1;grid-row:5;margin-top:40px}

  .ct{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:72px;align-items:start}
  .cr{margin-top:0}
}
@media (min-width:1024px) and (max-width:1279px){
  .wk{column-gap:28px}
}
@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}
}

#bio .vz-hub{margin-top:28px}
/* ── 입주자께 드리는 말 (#resident — 어두운 띠, 대표 지시 2026-10-03) ── */
.rsd-b .h2{color:#fff}
.rsd-b .rse{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.rsd-b .rse .vz-el{min-width:64px;min-height:84px}
.rsd-b .rse .vz-el b{font-size:22px}
.rst{margin-top:28px;color:rgba(255,255,255,.86);font-size:17px;line-height:1.75}
.rst p+p{margin-top:14px}
.rst .rs1,.rst .rs2{color:#fff;font-weight:700}
.rst .rs2{font-size:19px}
.rsc{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px!important}
.rsc .btn{flex:1 1 220px;min-height:56px}
.rsc .btn.rsg{border:1px solid rgba(255,255,255,.7);color:#fff}
.rsc .btn.rsg:hover{background:#fff;color:var(--ink)}
@media (min-width:1024px){
  .rsw{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:72px;align-items:start}
  .rst{margin-top:6px;font-size:18px}
  .rst .rs2{font-size:21px}
  .rsc .btn{flex:0 0 auto}
}
.tox .vz-bars{margin-top:36px}
.how .vz-cut{margin-top:24px}
.how .vz-cut+.chips.parts{margin-top:16px}
.wl>li.wst{padding:16px 0}
.wl .vz-step{margin-top:0}
.wl .vz-step li{padding:0 0 16px}
.wl .vz-step li:last-child{padding-bottom:0}
.wl .vz-step li::before{right:auto;height:auto;top:38px;bottom:2px}
.wl .vz-step li:last-child::before{content:none}
.wdt{display:flex;align-items:center;gap:8px}
.wdt .vz-i{color:var(--mute)}
@media (prefers-reduced-motion:no-preference){
  html.js .rv .wl .vz-step li::before{transform:scaleY(0);transform-origin:50% 0;transition:transform .5s var(--ez) calc(var(--i,0) * 90ms + .3s)}
  html.js .rv.on .wl .vz-step li::before{transform:none}
}
@media (min-width:1024px){
  .bio .bh{grid-row:auto;grid-column:1/-1}
  #bio .vz-hub{grid-column:1/-1;margin-top:48px}
  .bio .more{grid-column:2;margin-top:40px}
  .tox .vz-bars{margin-top:56px}
  .how .vz-cut{margin-top:0}
  .how .hwc{display:grid;margin-top:32px}   /* PC 만 — 방법 문장 아래 아이콘 칸 넷(2 × 2) */
}
@media (min-width:1200px){
  .tox .vz-pms{grid-template-columns:repeat(5,minmax(0,1fr))}
  .tox .vz-pv{grid-template-columns:minmax(0,1fr)}
  .tox .vz-pmr b{font-size:30px}
}
