
:root{
  --main:#2f3a4a;
  --dark:#1e2632;
  --acc:#7f97b8;
  --warm:#e8a33d;
  --main-s:color-mix(in srgb, var(--main) 62%, #fff);
  --main-t:color-mix(in srgb, var(--main) 9%, #fff);
  --main-t2:color-mix(in srgb, var(--main) 17%, #fff);
  --acc-s:color-mix(in srgb, var(--acc) 26%, #fff);
  --acc-d:color-mix(in srgb, var(--acc) 74%, #0a1017);
  --dark-2:color-mix(in srgb, var(--dark) 82%, #000);
  --dark-l:color-mix(in srgb, var(--dark) 88%, #fff);
  --ink:#171c22;
  --ink2:#586471;
  --ink3:#8a949f;
  --line:#e4e2dd;
  --line2:#efedE8;
  --paper:#faf8f5;
  --paper2:#f2efe9;
  --white:#fff;
  --sw:264px;
  --sh1:0 4px 18px rgba(18,22,28,.07);
  --sh2:0 16px 44px rgba(18,22,28,.14);
  --sh3:0 30px 74px rgba(18,22,28,.22);
  --ez:cubic-bezier(.16,1,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Pretendard','Noto Sans KR','Apple SD Gothic Neo','Malgun Gothic',sans-serif;color:var(--ink);background:var(--paper);line-height:1.72;word-break:keep-all;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;color:inherit}
.ic{width:1em;height:1em;fill:currentColor;flex:none}
.in{max-width:1080px;margin:0 auto;padding:0 46px;width:100%}
.sec{padding:112px 0;position:relative}
.eyeb{display:inline-flex;align-items:center;gap:11px;font-size:11.5px;font-weight:900;letter-spacing:3.6px;color:var(--main);text-transform:uppercase}
.eyeb:before{content:'';width:26px;height:2px;background:var(--acc-d)}
.stit{font-size:clamp(26px,3.6vw,40px);font-weight:900;line-height:1.28;letter-spacing:-1.1px;margin-top:16px}
.stit em{font-style:normal;color:var(--main)}
.sdesc{margin-top:15px;color:var(--ink2);font-size:clamp(15px,1.5vw,16.8px);max-width:720px}
.rv{opacity:0;transform:translateY(30px);transition:opacity .85s var(--ez),transform .85s var(--ez)}
.rv.on{opacity:1;transform:none}
.d1{transition-delay:.09s}.d2{transition-delay:.18s}.d3{transition-delay:.27s}
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:16px;padding:15px 26px;border-radius:4px;transition:transform .25s var(--ez),box-shadow .25s,background .25s,color .25s;white-space:nowrap}
.btn:hover{transform:translateY(-3px)}
.btn-a{background:var(--acc);color:var(--dark);box-shadow:0 12px 30px rgba(10,16,24,.28)}
.btn-w{background:var(--warm);color:#2a1c00;box-shadow:0 12px 30px rgba(10,16,24,.24)}
.btn-m{background:var(--main);color:#fff;box-shadow:0 12px 30px rgba(10,16,24,.2)}
.btn-o{border:2px solid rgba(255,255,255,.6);color:#fff}
.btn-o:hover{background:rgba(255,255,255,.16);border-color:#fff}

/* ============ 사이드 내비 (변형 E 시그니처 골격) ============ */
.side{position:fixed;left:0;top:0;bottom:0;width:var(--sw);z-index:130;background:var(--dark);color:#fff;display:flex;flex-direction:column;padding:30px 26px 26px;border-right:1px solid rgba(255,255,255,.09)}
.side:after{content:'';position:absolute;right:0;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,transparent,color-mix(in srgb, var(--acc) 60%, transparent),transparent)}
.blogo{display:flex;align-items:center;gap:12px}
.bmk{width:42px;height:42px;border-radius:12px;background:linear-gradient(145deg,var(--acc),var(--main));display:flex;align-items:center;justify-content:center;box-shadow:0 8px 22px rgba(6,12,20,.4);flex:none}
.bmk svg{width:21px;height:21px;color:#fff}
.btx b{display:block;font-size:21px;font-weight:900;letter-spacing:-.7px;line-height:1.15;white-space:nowrap}
.btx b em{font-style:normal;color:var(--acc-s)}
.btx span{display:block;font-size:11px;font-weight:700;letter-spacing:.6px;color:rgba(255,255,255,.55);white-space:nowrap}
.snav{margin-top:44px;display:flex;flex-direction:column;gap:2px;flex:1}
.snav a{display:flex;align-items:center;gap:13px;padding:11px 4px;font-size:15px;font-weight:700;color:rgba(255,255,255,.66);transition:color .3s var(--ez),transform .3s var(--ez)}
.snav a i{display:block;width:20px;height:2px;background:rgba(255,255,255,.3);transition:width .35s var(--ez),background .35s}
.snav a:hover{color:#fff;transform:translateX(3px)}
.snav a.on{color:#fff}
.snav a.on i{width:38px;background:var(--acc)}
.sfoot{margin-top:22px}
.scall{display:flex;align-items:center;gap:10px;background:var(--acc);color:var(--dark);font-weight:900;font-size:17px;padding:14px 16px;border-radius:5px;justify-content:center;white-space:nowrap;transition:transform .25s var(--ez),box-shadow .25s}
.scall:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(6,12,20,.4)}
.scall svg{width:18px;height:18px}
.snote{margin-top:14px;font-size:11.8px;line-height:1.66;color:rgba(255,255,255,.5)}
.sprog{position:absolute;left:0;top:0;width:3px;height:0;background:linear-gradient(to bottom,var(--acc),var(--warm));transition:height .12s linear}
.mbtn{display:none;width:44px;height:44px;background:none;border:0;cursor:pointer;flex:none}
.mbtn i{display:block;width:23px;height:2px;margin:5px auto;background:#fff;border-radius:2px;transition:transform .32s var(--ez),opacity .25s}
.side.open .mbtn i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.side.open .mbtn i:nth-child(2){opacity:0}
.side.open .mbtn i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ============ 본문 컬럼 ============ */
.main{margin-left:var(--sw);background:var(--paper);min-height:100vh;position:relative}

/* ============ 히어로 : 풀블리드 + 좌하단 정렬 ============ */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--dark);color:#fff}
.hero video,.hero .hposter{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.08) brightness(1.12) contrast(1.02)}
/* 밝기규칙 : 가장 진한 좌하단 합성 지점도 0.62 */
.hero:before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(22deg,rgba(8,13,20,.62) 0%,rgba(8,13,20,.34) 42%,rgba(8,13,20,.06) 74%,transparent 100%)}
.hcont{position:relative;z-index:2;width:100%;padding:150px 0 96px;text-shadow:0 2px 18px rgba(6,12,20,.55)}
.hflag{display:inline-flex;align-items:center;gap:10px;padding:9px 18px;border-radius:3px;font-size:13.4px;font-weight:700;border:1px solid rgba(255,255,255,.42);background:rgba(255,255,255,.12);backdrop-filter:blur(7px)}
.hflag i{width:7px;height:7px;border-radius:50%;background:var(--acc);box-shadow:0 0 12px var(--acc);animation:blip 2s infinite}
@keyframes blip{0%,100%{opacity:1}50%{opacity:.3}}
.hero h1{margin-top:24px;font-size:clamp(31px,4.6vw,54px);font-weight:900;line-height:1.22;letter-spacing:-1.7px;max-width:14em}
.hero h1 em{font-style:normal;color:var(--acc-s)}
.hlead{margin-top:20px;font-size:clamp(15.5px,1.7vw,18.5px);color:rgba(255,255,255,.93);max-width:640px}
.hbtns{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.htag{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px;max-width:680px}
.htag span{padding:7px 14px;border-radius:3px;font-size:12.8px;font-weight:700;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);backdrop-filter:blur(5px)}
.hcue{position:absolute;right:46px;bottom:44px;z-index:3;display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:2.6px;font-weight:700;color:rgba(255,255,255,.8)}
.hcue u{display:block;width:56px;height:1px;background:rgba(255,255,255,.4);position:relative;text-decoration:none;overflow:hidden}
.hcue u:after{content:'';position:absolute;left:0;top:0;width:22px;height:1px;background:var(--acc);animation:slid 2.2s infinite}
@keyframes slid{0%{transform:translateX(-24px)}100%{transform:translateX(58px)}}

/* ============ 기본정보 스트립 ============ */
.strip{background:var(--dark-2);color:rgba(255,255,255,.82)}
.strip .in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 30px;padding-top:19px;padding-bottom:19px}
.strip span{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600}
.strip svg{width:16px;height:16px;color:var(--acc)}
.strip a{font-weight:900;font-size:16.5px;color:var(--warm);white-space:nowrap}

/* ============ 소개 ============ */
.about{background:var(--white)}
.abx{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-top:50px;align-items:start}
.abtx p{color:var(--ink2);font-size:15.6px;margin-top:15px}
.ablead{font-size:clamp(17.5px,1.9vw,20.5px);font-weight:800;color:var(--ink);line-height:1.56}
.abnote{margin-top:26px;padding:20px 22px;background:var(--paper2);border-left:3px solid var(--main)}
.abnote b{display:block;font-size:12.5px;font-weight:900;letter-spacing:1.4px;color:var(--main);margin-bottom:6px}
.abnote p{margin:0;font-size:14.5px;color:var(--ink2)}
.abpic{position:relative}
.abpic img{display:none}
.abpic img:nth-child(1){display:block;width:100%;aspect-ratio:4/5;object-fit:cover;filter:brightness(1.08) saturate(1.04);box-shadow:var(--sh2)}
.abpic img:nth-child(2){display:block;position:absolute;right:-26px;bottom:-30px;width:52%;aspect-ratio:1/1;object-fit:cover;border:7px solid #fff;filter:brightness(1.08) saturate(1.04);box-shadow:var(--sh3)}
.rsl{margin-top:60px;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
.rsi{padding:26px 22px 8px 0;border-right:1px solid var(--line);counter-increment:rsc}
.rsi:last-child{border-right:0}
.rsl{counter-reset:rsc}
.rsi u:before{content:counter(rsc,decimal-leading-zero)}
.rsi u{display:block;font-size:12px;font-weight:900;letter-spacing:1.6px;color:var(--acc-d);text-decoration:none;margin-bottom:10px}
.rsi b{display:block;font-size:16.4px;font-weight:900;letter-spacing:-.4px}
.rsi p{margin-top:7px;font-size:13.6px;color:var(--ink2);line-height:1.62}

/* ============ 서비스 : 세로 리스트 + 우측 대형 프리뷰 ============ */
.svc{background:var(--paper)}
.svx{display:grid;grid-template-columns:1.02fr .98fr;gap:52px;margin-top:48px;align-items:start}
.svlist{border-top:1px solid var(--line);counter-reset:svc}
.svi{position:relative;display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:24px 16px 24px 60px;cursor:pointer;counter-increment:svc;transition:background .3s var(--ez),padding .3s var(--ez)}
.svi:before{content:counter(svc,decimal-leading-zero);position:absolute;left:14px;top:27px;font-size:12.5px;font-weight:900;letter-spacing:1px;color:var(--ink3);transition:color .3s}
.svi:after{content:'';position:absolute;left:0;top:-1px;bottom:-1px;width:3px;background:var(--acc);transform:scaleY(0);transform-origin:top;transition:transform .4s var(--ez)}
.svi h3{font-size:19.5px;font-weight:900;letter-spacing:-.5px;transition:color .3s}
.svi .sdsc{margin-top:7px;font-size:14.3px;color:var(--ink2);line-height:1.66}
.svi .sdet{max-height:0;overflow:hidden;transition:max-height .5s var(--ez),opacity .4s;opacity:0}
.svi .sdet p{padding-top:13px;margin-top:13px;border-top:1px dashed var(--line);font-size:13.5px;color:var(--ink2);line-height:1.7}
.svi:hover{background:var(--white)}
.svi.on{background:var(--white);box-shadow:var(--sh1)}
.svi.on:before{color:var(--acc-d)}
.svi.on:after{transform:scaleY(1)}
.svi.on h3{color:var(--main)}
.svi.on .sdet{max-height:340px;opacity:1}
.svstage{position:sticky;top:34px;overflow:hidden;background:var(--dark);box-shadow:var(--sh2)}
.svfr{position:relative;aspect-ratio:4/5}
.svfr img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:brightness(1.08) saturate(1.04);transition:opacity .7s var(--ez),transform 1.4s var(--ez);transform:scale(1.04)}
.svfr img.vis{opacity:1;transform:none}
.svcap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:44px 22px 20px;background:linear-gradient(transparent,rgba(8,13,20,.62));color:#fff;text-shadow:0 2px 12px rgba(6,12,20,.5)}
.svcap b{display:block;font-size:17px;font-weight:900;letter-spacing:-.4px}
.svcap span{font-size:12.6px;color:rgba(255,255,255,.82);font-weight:700}
.svhint{margin-top:14px;font-size:12.8px;color:var(--ink3);display:flex;align-items:center;gap:8px}
.svhint svg{width:15px;height:15px;color:var(--acc-d)}

/* ============ 시그니처 : 하자 증상 진단 셀렉터 ============ */
.diag{background:var(--dark);color:#fff;overflow:hidden}
.diag:before{content:'';position:absolute;left:-160px;top:-140px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb, var(--acc) 20%, transparent),transparent 68%)}
.diag .in{position:relative;z-index:1}
.diag .eyeb{color:var(--acc-s)}
.diag .eyeb:before{background:var(--acc)}
.diag .stit em{color:var(--acc-s)}
.diag .sdesc{color:rgba(255,255,255,.8)}
.dgb{display:flex;flex-wrap:wrap;gap:9px;margin-top:40px}
.dgb button{display:inline-flex;align-items:center;gap:9px;padding:13px 19px;border-radius:4px;border:1px solid rgba(255,255,255,.26);background:rgba(255,255,255,.07);color:rgba(255,255,255,.86);font-size:14.4px;font-weight:700;cursor:pointer;transition:all .3s var(--ez)}
.dgb button svg{width:17px;height:17px;color:var(--acc-s);transition:color .3s}
.dgb button:hover{border-color:var(--acc);color:#fff;transform:translateY(-2px)}
.dgb button.on{background:var(--acc);border-color:var(--acc);color:var(--dark)}
.dgb button.on svg{color:var(--dark)}
.dgp{display:none;margin-top:28px}
.dgp.on{display:block;animation:dgIn .55s var(--ez)}
@keyframes dgIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.dgsym{display:flex;align-items:flex-start;gap:14px;padding:22px 24px;background:rgba(255,255,255,.09);border-left:3px solid var(--acc)}
.dgsym svg{width:24px;height:24px;color:var(--acc-s);margin-top:3px}
.dgsym b{display:block;font-size:18px;font-weight:900;letter-spacing:-.5px}
.dgsym p{margin-top:5px;font-size:14.2px;color:rgba(255,255,255,.8)}
.dgc{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}
.dgcard{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);padding:24px 22px 26px;transition:background .3s,border-color .3s}
.dgcard:hover{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.3)}
.dgcard h4{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:900;letter-spacing:1.6px;color:var(--acc-s);margin-bottom:14px}
.dgcard h4 svg{width:16px;height:16px}
.dgcard li{list-style:none;position:relative;padding-left:16px;font-size:14px;line-height:1.68;color:rgba(255,255,255,.86);margin-bottom:9px}
.dgcard li:before{content:'';position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--acc);opacity:.85}
.dgcard.fix{background:color-mix(in srgb, var(--main) 40%, transparent);border-color:color-mix(in srgb, var(--acc) 45%, transparent)}
.dgend{margin-top:16px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;background:rgba(255,255,255,.09);border:1px dashed rgba(255,255,255,.3)}
.dgend b{display:block;font-size:16.5px;font-weight:900;letter-spacing:-.4px}
.dgend p{font-size:13.8px;color:rgba(255,255,255,.78);margin-top:5px;max-width:640px}

/* ============ 시공 절차 ============ */
.proc{background:var(--white)}
.prl{position:relative;margin-top:50px;padding-left:78px;counter-reset:prc}
.prl:before{content:'';position:absolute;left:25px;top:14px;bottom:34px;width:2px;background:var(--line)}
.prl .fill{position:absolute;left:25px;top:14px;width:2px;height:0;background:linear-gradient(to bottom,var(--main),var(--acc));transition:height 1.7s var(--ez) .15s}
.prl.on .fill{height:calc(100% - 48px)}
.pst{position:relative;padding:22px 0 26px;border-bottom:1px dashed var(--line);opacity:0;transform:translateY(18px);transition:opacity .6s var(--ez),transform .6s var(--ez);counter-increment:prc}
.prl.on .pst{opacity:1;transform:none}
.prl.on .pst:nth-child(2){transition-delay:.15s}
.prl.on .pst:nth-child(3){transition-delay:.42s}
.prl.on .pst:nth-child(4){transition-delay:.69s}
.prl.on .pst:nth-child(5){transition-delay:.96s}
.prl.on .pst:nth-child(6){transition-delay:1.23s}
.pst:last-child{border-bottom:0}
.pst:before{content:counter(prc,decimal-leading-zero);position:absolute;left:-78px;top:20px;width:52px;height:52px;border-radius:50%;background:var(--white);border:2px solid var(--main-t2);color:var(--main);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:900;transition:background .3s,color .3s,border-color .3s}
.pst:hover:before{background:var(--main);color:#fff;border-color:var(--main)}
.pst b{display:block;font-size:19px;font-weight:900;letter-spacing:-.5px}
.pst p{margin-top:7px;font-size:14.6px;color:var(--ink2);max-width:760px}

/* ============ 전화 CTA 밴드 ============ */
.band{position:relative;overflow:hidden;color:#fff;padding:100px 0}
.band .bgi{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;filter:brightness(1.14) saturate(1.06)}
.band:before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,color-mix(in srgb, var(--dark) 62%, transparent),color-mix(in srgb, var(--dark) 30%, transparent))}
.band .in{position:relative;z-index:2;text-shadow:0 2px 14px rgba(6,12,20,.55)}
.band h2{font-size:clamp(24px,3.3vw,36px);font-weight:900;letter-spacing:-1px;line-height:1.32}
.band h2 em{font-style:normal;color:var(--warm)}
.band p{margin-top:13px;font-size:16px;color:rgba(255,255,255,.92);max-width:640px}
.band .hbtns{margin-top:28px}

/* ============ 갤러리 : 탭 + 세로 마소너리 ============ */
.gal{background:var(--paper)}
.gtabs{display:flex;flex-wrap:wrap;gap:7px;margin-top:32px}
.gtabs button{border:1px solid var(--line);background:var(--white);color:var(--ink2);font-size:14px;font-weight:800;padding:11px 19px;border-radius:3px;cursor:pointer;transition:all .26s var(--ez);white-space:nowrap}
.gtabs button:hover{border-color:var(--main);color:var(--main)}
.gtabs button.on{background:var(--main);border-color:var(--main);color:#fff}
.ggrid{column-count:3;column-gap:14px;margin-top:26px}
.gi{break-inside:avoid;position:relative;margin-bottom:14px;cursor:pointer;overflow:hidden;background:var(--main-t2);display:block}
.gi img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;filter:brightness(1.06);transition:transform .6s var(--ez)}
.gi:nth-child(4n+1) img{aspect-ratio:3/4}
.gi:nth-child(4n+3) img{aspect-ratio:1/1}
.gi:hover img{transform:scale(1.06)}
.gi figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 12px;background:linear-gradient(transparent,rgba(8,13,20,.85));color:#fff;font-size:12.6px;font-weight:700;opacity:0;transition:opacity .3s}
.gi:hover figcaption{opacity:1}
.gi.hide{display:none}
.gmore{display:block;margin:28px auto 0;background:var(--main);color:#fff;border:0;font-size:15px;font-weight:800;padding:15px 40px;border-radius:3px;cursor:pointer;transition:background .3s,transform .25s var(--ez)}
.gmore:hover{background:var(--dark);transform:translateY(-2px)}
.lb{position:fixed;inset:0;z-index:300;background:rgba(6,10,16,.95);display:none;align-items:center;justify-content:center}
.lb.on{display:flex}
.lb img{max-width:90vw;max-height:78vh;object-fit:contain}
.lb .cap{position:absolute;left:0;right:0;bottom:26px;text-align:center;color:#fff;font-size:14px;font-weight:700}
.lb button{position:absolute;background:rgba(255,255,255,.12);border:0;color:#fff;cursor:pointer;border-radius:50%;transition:background .2s}
.lb button:hover{background:rgba(255,255,255,.28)}
.lb .x{top:20px;right:22px;width:46px;height:46px;font-size:23px}
.lb .p{left:22px;top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:26px}
.lb .n{right:22px;top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:26px}

/* ============ 시공 지역 ============ */
.area{background:var(--white)}
.arx{display:grid;grid-template-columns:1.15fr .85fr;gap:46px;margin-top:44px;align-items:start}
.dlist{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line)}
.dlist span{display:flex;align-items:center;gap:10px;padding:14px 8px;border-bottom:1px solid var(--line);font-size:15.2px;font-weight:700;transition:color .25s,padding-left .25s var(--ez)}
.dlist span:hover{color:var(--main);padding-left:14px}
.dlist svg{width:15px;height:15px;color:var(--acc-d);flex:none}
.arside{background:var(--dark);color:#fff;padding:30px 28px}
.arside h3{font-size:14px;font-weight:900;letter-spacing:1.4px;color:var(--acc-s);margin-bottom:14px}
.arside h3+div{margin-bottom:26px}
.nbs{display:flex;flex-wrap:wrap;gap:8px}
.nbs span{border:1px solid rgba(255,255,255,.3);padding:8px 14px;font-size:13.6px;font-weight:700;border-radius:3px}
.lmks li{list-style:none;position:relative;padding-left:16px;font-size:14.2px;color:rgba(255,255,255,.86);margin-bottom:8px}
.lmks li:before{content:'';position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--warm)}
.arhq{border-top:1px solid rgba(255,255,255,.16);padding-top:20px;font-size:13.4px;line-height:1.7;color:rgba(255,255,255,.75)}
.arhq b{display:block;color:#fff;font-size:15px;margin-bottom:6px}
.arside .btn{margin-top:18px;width:100%;justify-content:center}

/* ============ FAQ : 좌측 번호 인덱스 아코디언 ============ */
.faq{background:var(--paper)}
.fqs{margin-top:44px;border-top:1px solid var(--line);counter-reset:fqc}
.fq{border-bottom:1px solid var(--line);counter-increment:fqc;transition:background .3s}
.fq.open{background:var(--white);box-shadow:var(--sh1)}
.fq button{display:grid;grid-template-columns:76px 1fr 34px;align-items:start;gap:12px;width:100%;background:none;border:0;cursor:pointer;text-align:left;padding:24px 20px}
.fq button .idx{font-size:24px;font-weight:900;letter-spacing:-1px;color:var(--line);line-height:1.15;transition:color .35s}
.fq button .idx:before{content:counter(fqc,decimal-leading-zero)}
.fq.open button .idx{color:var(--acc-d)}
.fq button .q{font-size:16.6px;font-weight:800;letter-spacing:-.4px;line-height:1.5;padding-top:3px}
.fq.open button .q{color:var(--main)}
.fq button .sgn{position:relative;width:26px;height:26px;margin-top:4px;justify-self:end}
.fq button .sgn:before,.fq button .sgn:after{content:'';position:absolute;left:50%;top:50%;background:var(--ink2);transition:transform .38s var(--ez),background .3s}
.fq button .sgn:before{width:15px;height:2px;transform:translate(-50%,-50%)}
.fq button .sgn:after{width:2px;height:15px;transform:translate(-50%,-50%)}
.fq.open button .sgn:before,.fq.open button .sgn:after{background:var(--main)}
.fq.open button .sgn:after{transform:translate(-50%,-50%) scaleY(0)}
.fq .ans{max-height:0;overflow:hidden;transition:max-height .45s var(--ez)}
.fq.open .ans{max-height:560px}
.fq .ans p{padding:0 20px 26px 108px;font-size:15px;color:var(--ink2)}

/* ============ 클로징 + 푸터 ============ */
.close{background:var(--main);color:#fff;padding:88px 0}
.close h2{font-size:clamp(22px,3vw,32px);font-weight:900;letter-spacing:-.9px;line-height:1.36;max-width:20em}
.close p{margin-top:13px;color:rgba(255,255,255,.9);font-size:15.6px}
.close .hbtns{margin-top:28px}
footer{background:var(--dark);color:rgba(255,255,255,.7);padding:62px 0 96px;font-size:14px}
.fgrid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:34px}
footer h4{color:#fff;font-size:15px;font-weight:900;margin-bottom:13px}
footer li{list-style:none;margin-bottom:8px}
footer a:hover{color:var(--acc-s)}
.fbrand b{display:block;color:#fff;font-size:19px;font-weight:900}
.fbrand p{margin-top:12px;line-height:1.76}
.fbot{margin-top:34px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:12.6px;color:rgba(255,255,255,.5)}
/* 사업자정보 — 사업자등록증 표기와 일치(광고 검수 대응) */
.bizinfo{border-top:1px solid rgba(255,255,255,.13);margin-top:24px;padding:20px 0 2px}
.bizinfo h5{font-size:12px;font-weight:800;letter-spacing:1.6px;opacity:.6;margin:0 0 11px}
.bizinfo ul{list-style:none;display:flex;flex-wrap:wrap;gap:7px 28px;margin:0;padding:0;font-size:13.5px;line-height:1.7;opacity:.86}
.bizinfo li{display:flex;gap:8px;align-items:baseline;margin:0}
.bizinfo li b{font-weight:700;opacity:.64;flex:none}
.mobar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:150;background:var(--dark-2);padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:9px}
.mobar a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:4px;padding:14px 0;font-size:15.5px;font-weight:900}
.mobar .c1{background:var(--acc);color:var(--dark)}
.mobar .c2{background:rgba(255,255,255,.14);color:#fff}

/* ============ 반응형 ============ */
@media (max-width:1400px){
  :root{--sw:236px}
  .in{padding:0 40px}
}
@media (max-width:1200px){
  :root{--sw:212px}
  .in{padding:0 32px}
  .sec{padding:92px 0}
  .snav a{font-size:14.2px}
  .scall{font-size:15.5px;padding:13px 10px}
  .svx{gap:34px}
  .dgc{grid-template-columns:1fr}
}
/* 1100 이하 : 사이드바 → 상단 헤더 */
@media (max-width:1100px){
  .side{right:0;bottom:auto;width:auto;height:66px;flex-direction:row;align-items:center;padding:0 20px;border-right:0;border-bottom:1px solid rgba(255,255,255,.1)}
  .side:after{display:none}
  .blogo{flex:1}
  .btx b{font-size:19px}
  .snav{position:fixed;left:0;right:0;top:66px;margin:0;padding:14px 20px 24px;background:var(--dark);gap:0;flex:none;transform:translateY(-118%);opacity:0;pointer-events:none;transition:transform .38s var(--ez),opacity .3s;box-shadow:0 20px 40px rgba(6,12,20,.4)}
  .side.open .snav{transform:none;opacity:1;pointer-events:auto}
  .snav a{padding:13px 2px;font-size:16px;border-bottom:1px solid rgba(255,255,255,.09)}
  .sfoot{margin:0 12px 0 0}
  .snote{display:none}
  .scall{font-size:14.6px;padding:11px 15px}
  .scall svg{width:16px;height:16px}
  .mbtn{display:block}
  .sprog{top:auto;bottom:0;left:0;width:0;height:3px;transition:width .12s linear}
  .main{margin-left:0;padding-top:66px}
  .hero{min-height:calc(100svh - 66px)}
  .hcont{padding:110px 0 84px}
  .hcue{right:32px;bottom:32px}
  .abx{grid-template-columns:1fr;gap:56px}
  .abpic img:nth-child(2){right:0;bottom:-24px;width:44%}
  .rsl{grid-template-columns:1fr 1fr;margin-top:44px}
  .rsi:nth-child(2n){border-right:0}
  .rsi:nth-child(n+3){border-top:1px solid var(--line)}
  .svx{grid-template-columns:1fr;gap:24px}
  .svstage{position:relative;top:0;order:-1}
  .svfr{aspect-ratio:16/9}
  .arx{grid-template-columns:1fr;gap:34px}
}
@media (max-width:900px){
  .sec{padding:74px 0}
  .in{padding:0 24px}
  .prl{padding-left:60px}
  .prl:before,.prl .fill{left:19px}
  .pst:before{left:-60px;width:40px;height:40px;font-size:13px}
  .ggrid{column-count:2}
  .dlist{grid-template-columns:1fr}
  /* 하단 고정 전화바가 나오는 구간이므로 상단 전화칩은 접어 헤더 줄바꿈·잘림을 막는다 */
  .sfoot{display:none}
  .side{padding:0 16px}
  .fgrid{grid-template-columns:1fr 1fr}
  .mobar{display:flex}
  footer{padding-bottom:104px}
  .fq button{grid-template-columns:52px 1fr 28px;padding:20px 14px}
  .fq button .idx{font-size:19px}
  .fq .ans p{padding:0 14px 22px 68px}
}
@media (max-width:640px){
  .in{padding:0 18px}
  .sec{padding:60px 0}
  .hcont{padding:96px 0 70px}
  .hcue{display:none}
  .rsl{grid-template-columns:1fr}
  .rsi{border-right:0;border-top:1px solid var(--line);padding-right:0}
  .rsi:first-child{border-top:0}
  .abpic img:nth-child(2){display:none}
  .ggrid{column-count:2;column-gap:9px}
  .gi{margin-bottom:9px}
  .fgrid{grid-template-columns:1fr}
  .dgend{flex-direction:column;align-items:flex-start}
  .lb .p{left:8px}.lb .n{right:8px}
  .band{padding:74px 0}
  .btn{font-size:15px;padding:14px 20px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
  .rv{opacity:1;transform:none}
  .prl .pst{opacity:1;transform:none}
  .svfr img.vis{transform:none}
}
/* 헤더 줄바꿈 방지 */
.side a[href^="tel"],.blogo b,.blogo span{white-space:nowrap}
