:root{--p:#1a5632;--pd:#0e3d22;--pl:#2a7a48;--a:#c8a45a;--al:#e0c87a;--dk:#1a1a1a;--g9:#222;--g7:#555;--g5:#888;--g3:#ccc;--g1:#f5f5f5;--w:#fff;--sh:0 4px 20px rgba(0,0,0,.08);--sh2:0 8px 40px rgba(0,0,0,.12);--tr:all .3s ease;--r:6px;--nh:72px}
*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:'Noto Sans KR',sans-serif;color:var(--dk);line-height:1.7;overflow-x:hidden}a{text-decoration:none;color:inherit}ul{list-style:none}img{max-width:100%;height:auto}button{font-family:inherit}.container{max-width:1280px;margin:0 auto;padding:0 20px}

/* TOP BAR */
.top-bar{background:var(--g9);color:var(--g3);font-size:13px;padding:6px 0}.top-bar .container{display:flex;justify-content:space-between;align-items:center}.top-bar a{color:var(--g3);margin-left:15px;transition:var(--tr)}.top-bar a:hover{color:var(--a)}

/* HEADER */
header{position:sticky;top:0;z-index:1000;box-shadow:0 2px 8px rgba(0,0,0,.06);background-size:cover;background-position:center;transition:all .4s ease}
header.overlay-mode{position:fixed;left:0;right:0;background:transparent!important;box-shadow:none}
header.overlay-mode .logo-t,header.overlay-mode .hdr-ph,header.overlay-mode .mob-tog{color:#fff!important}
header.overlay-mode .logo-t span{color:rgba(255,255,255,.6)!important}
header.overlay-mode .logo img{filter:brightness(0) invert(1)}
header.overlay-mode #dynNav li>a{color:#fff!important}
header.overlay-mode #dynNav li:hover>a{color:var(--a)!important}
header.overlay-mode #dynNav li>a::before{background:transparent!important}
header.overlay-mode #dynNav li:hover>a::before{background:rgba(255,255,255,.1)!important}
header.overlay-mode #dynNav li>a::after{background:var(--a)!important}
header.overlay-mode .hdr-login{background:rgba(255,255,255,.15)!important;backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.3)}
header.overlay-mode .hdr-login:hover{background:rgba(255,255,255,.3)!important}
header.overlay-mode.scrolled{background:rgba(255,255,255,.97)!important;box-shadow:0 2px 12px rgba(0,0,0,.1);backdrop-filter:blur(10px)}
header.overlay-mode.scrolled .logo-t{color:var(--p)!important}
header.overlay-mode.scrolled .logo-t span{color:var(--g5)!important}
header.overlay-mode.scrolled .hdr-ph{color:var(--p)!important}
header.overlay-mode.scrolled .mob-tog{color:var(--dk)!important}
header.overlay-mode.scrolled .logo img{filter:none}
header.overlay-mode.scrolled #dynNav li>a{color:var(--dk)!important}
header.overlay-mode.scrolled #dynNav li:hover>a{color:var(--p)!important}
header.overlay-mode.scrolled #dynNav li>a::after{background:var(--p)!important}
header.overlay-mode.scrolled #dynNav li:hover>a::before{background:rgba(26,86,50,.08)!important}
header.overlay-mode.scrolled .hdr-login{background:var(--p)!important;border:none;backdrop-filter:none}
.top-bar.overlay-tb{background:transparent!important;position:fixed;left:0;right:0;z-index:1001}
.top-bar.overlay-tb.scrolled{display:none!important}
.hdr{display:flex;align-items:center;justify-content:space-between;padding:0 20px;max-width:1280px;margin:0 auto;height:var(--nh)}
.logo{display:flex;align-items:center;gap:10px;cursor:pointer}.logo img{height:46px}.logo-t{font-size:20px;font-weight:900;letter-spacing:-1px}.logo-t span{display:block;font-size:10px;font-weight:400;letter-spacing:2px}
nav ul{display:flex}nav li{position:relative}
nav li>a{display:block;padding:24px 20px;font-size:15px;font-weight:500;transition:all .25s ease;position:relative}
nav li>a::after{content:'';position:absolute;bottom:0;left:50%;width:0;height:3px;background:var(--nav-ul-color,var(--p));transition:all .3s ease}
nav li:hover>a::after{width:calc(100% - 40px);left:20px}
nav li>a::before{content:'';position:absolute;inset:8px 6px;border-radius:var(--r);background:transparent;transition:background .25s ease;z-index:-1}
nav li:hover>a::before{background:rgba(26,86,50,.08)}
nav li:hover>a{transform:translateY(-1px)}
nav .drop{position:absolute;top:100%;left:0;min-width:210px;box-shadow:var(--sh2);opacity:0;visibility:hidden;transform:translateY(10px);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:100;border-top:3px solid var(--p);border-radius:0 0 var(--r) var(--r)}
nav li:hover .drop{opacity:1;visibility:visible;transform:translateY(0)}
nav .drop a{display:flex;align-items:center;gap:8px;padding:13px 20px;font-size:14px;border-bottom:1px solid var(--g1);transition:all .2s ease}
nav .drop a::before{content:'\f105';font-family:'Font Awesome 6 Free';font-weight:900;font-size:10px;opacity:0;transform:translateX(-8px);transition:all .2s ease}
nav .drop a:hover::before{opacity:1;transform:translateX(0)}
nav .drop a:hover{padding-left:24px}
nav .drop a:last-child{border-bottom:none}
.hdr-r{display:flex;align-items:center;gap:14px}.hdr-ph{font-size:15px;font-weight:700}.hdr-ph i{margin-right:4px}
.hdr-login{padding:8px 16px;border:none;border-radius:var(--r);font-size:13px;font-weight:600;cursor:pointer;transition:var(--tr)}.hdr-login:hover{filter:brightness(.85)}
.mob-tog{display:none;font-size:24px;cursor:pointer;background:none;border:none}

/* HERO */
.hero{position:relative;height:680px;overflow:hidden}.hero-slides{display:flex;height:100%;transition:transform .8s cubic-bezier(.25,.46,.45,.94)}.hero-slide{min-width:100%;height:100%;position:relative;background-size:cover;background-position:center}.hero-slide::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.2) 50%,transparent)}
.hero-ct{position:absolute;bottom:120px;left:80px;color:var(--w);z-index:2;max-width:600px}
.hero-cta-btn{display:inline-flex;align-items:center;gap:8px;margin-top:20px;padding:14px 30px;background:var(--a);color:var(--dk);font-size:15px;font-weight:700;border-radius:var(--r);transition:var(--tr);text-decoration:none;box-shadow:0 4px 14px rgba(0,0,0,.3);cursor:pointer}
.hero-cta-btn:hover{background:var(--al);transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.4)}.hero-ct .badge{display:inline-block;background:var(--a);color:var(--dk);font-size:12px;font-weight:700;padding:5px 16px;margin-bottom:14px;letter-spacing:1px}.hero-ct h2{font-size:44px;font-weight:900;line-height:1.2;margin-bottom:14px;text-shadow:0 2px 20px rgba(0,0,0,.3);letter-spacing:-2px}.hero-ct p{font-size:17px;font-weight:300;opacity:.9}
.hero-nav{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;gap:10px;z-index:3}.hero-nav button{width:12px;height:12px;border-radius:50%;border:2px solid var(--w);background:transparent;cursor:pointer;transition:var(--tr)}.hero-nav button.on{background:var(--a);border-color:var(--a);transform:scale(1.2)}
.hero-arr{position:absolute;top:50%;transform:translateY(-50%);width:100%;display:flex;justify-content:space-between;padding:0 20px;z-index:3;pointer-events:none}.hero-arr button{pointer-events:all;width:48px;height:48px;border:none;background:rgba(255,255,255,.15);backdrop-filter:blur(4px);color:var(--w);font-size:18px;cursor:pointer;border-radius:50%;transition:var(--tr)}.hero-arr button:hover{background:var(--p)}

/* CTA BAR */
.cta-bar{background:var(--p)}.cta-bar .container{display:grid;grid-template-columns:repeat(4,1fr)}.cta-i{display:flex;align-items:center;justify-content:center;gap:14px;padding:22px 16px;color:var(--w);cursor:pointer;transition:var(--tr);border-right:1px solid rgba(255,255,255,.12)}.cta-i:last-child{border:none}.cta-i:hover{background:var(--pd)}.cta-i i{font-size:26px;color:var(--a)}.cta-i h4{font-size:15px;font-weight:700}.cta-i p{font-size:11px;opacity:.7}

/* SECTIONS */
.sec{padding:80px 0}.sh{text-align:center;margin-bottom:48px}.sh .sub{display:inline-block;font-size:12px;font-weight:700;color:var(--a);letter-spacing:3px;text-transform:uppercase;margin-bottom:8px}.sh h2{font-size:34px;font-weight:900;letter-spacing:-1px;margin-bottom:10px}.sh p{font-size:15px;color:var(--g7);max-width:560px;margin:0 auto}.sh .bar{width:48px;height:3px;background:var(--p);margin:14px auto 0}

/* ABOUT */
.ab-g{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.ab-img{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh2)}.ab-img img{width:100%;height:380px;object-fit:cover}.ab-img .badge{position:absolute;bottom:16px;right:16px;background:var(--p);color:var(--w);padding:10px 20px;font-size:13px;font-weight:700}
.ab-t h3{font-size:26px;font-weight:800;margin-bottom:18px;color:var(--pd);line-height:1.3}.ab-t p{font-size:14px;color:var(--g7);margin-bottom:14px;line-height:1.8}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}.stat{text-align:center;padding:18px;background:var(--g1);border-radius:var(--r)}.stat .n{font-size:30px;font-weight:900;color:var(--p)}.stat .l{font-size:12px;color:var(--g7);margin-top:2px}

/* FEATURES */
.fg{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.fc{background:var(--w);padding:36px 24px;text-align:center;border-radius:var(--r);box-shadow:var(--sh);transition:var(--tr);position:relative;overflow:hidden}.fc::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--p);transform:scaleX(0);transition:transform .3s}.fc:hover::before{transform:scaleX(1)}.fc:hover{transform:translateY(-6px);box-shadow:var(--sh2)}
.fi{width:64px;height:64px;margin:0 auto 16px;background:linear-gradient(135deg,var(--p),var(--pl));border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--w);font-size:26px}.fc h4{font-size:16px;font-weight:700;margin-bottom:10px}.fc p{font-size:13px;color:var(--g7);line-height:1.7}

/* PORTFOLIO */
.pg{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.pc{position:relative;overflow:hidden;border-radius:var(--r);box-shadow:var(--sh);cursor:pointer}.pc img{width:100%;height:260px;object-fit:cover;transition:transform .5s}.pc:hover img{transform:scale(1.06)}.po{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 55%);display:flex;flex-direction:column;justify-content:flex-end;padding:20px;opacity:0;transition:var(--tr)}.pc:hover .po{opacity:1}.po .tag{display:inline-block;background:var(--a);color:var(--dk);font-size:11px;font-weight:700;padding:2px 10px;margin-bottom:6px;width:fit-content}.po h4{color:var(--w);font-size:16px;font-weight:700}.po p{color:rgba(255,255,255,.8);font-size:12px}

/* PROCESS */
.prc-s{background:var(--pd);color:var(--w)}.prc-s .sh h2{color:var(--w)}.prc-s .sh p{color:rgba(255,255,255,.7)}.prg{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.prs{text-align:center;padding:28px 12px;position:relative}.prs .num{width:46px;height:46px;background:var(--a);color:var(--dk);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;margin:0 auto 14px}.prs h4{font-size:15px;font-weight:700;margin-bottom:6px}.prs p{font-size:12px;opacity:.7}.prs::after{content:'\f054';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;right:-6px;top:38px;color:var(--a);font-size:12px}.prs:last-child::after{display:none}

/* TECH */
.tg{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.tg img{border-radius:var(--r);box-shadow:var(--sh2);width:100%;height:380px;object-fit:cover}.tl{display:flex;flex-direction:column;gap:14px}.ti{display:flex;gap:12px;align-items:flex-start}.ti .ico{width:38px;height:38px;min-width:38px;background:var(--p);color:var(--w);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px}.ti h5{font-size:15px;font-weight:700;margin-bottom:3px}.ti p{font-size:13px;color:var(--g7)}

/* TABLE */
.ct{width:100%;border-collapse:collapse;box-shadow:var(--sh);border-radius:var(--r);overflow:hidden}.ct thead{background:var(--p);color:var(--w)}.ct th{padding:14px 18px;font-size:14px;font-weight:700;text-align:center}.ct td{padding:12px 18px;text-align:center;font-size:13px;border-bottom:1px solid var(--g1)}.ct tbody tr:hover{background:rgba(26,86,50,.04)}.ct .hl{background:rgba(26,86,50,.08);font-weight:600;color:var(--p)}

/* CONSULT */
.cs{background:linear-gradient(135deg,var(--p),var(--pd));padding:80px 0;color:var(--w);text-align:center}.cs h2{font-size:34px;font-weight:900;margin-bottom:14px}.cs>p,.cs .container>p{font-size:16px;opacity:.85;margin-bottom:36px;max-width:560px;margin-left:auto;margin-right:auto}
.cph{font-size:44px;font-weight:900;color:var(--a);margin-bottom:28px;display:flex;align-items:center;justify-content:center;gap:14px}.cbs{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.cb{display:inline-flex;align-items:center;gap:10px;padding:14px 32px;font-size:15px;font-weight:700;border:none;cursor:pointer;transition:var(--tr);border-radius:var(--r)}.cb.fl{background:var(--a);color:var(--dk)}.cb.fl:hover{background:var(--al);transform:translateY(-2px)}.cb.ol{background:transparent;color:var(--w);border:2px solid rgba(255,255,255,.35)}.cb.ol:hover{border-color:var(--w);background:rgba(255,255,255,.1)}

/* NEWS */
.ng{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.nc{background:var(--w);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);transition:var(--tr)}.nc:hover{transform:translateY(-4px);box-shadow:var(--sh2)}.nc img{width:100%;height:190px;object-fit:cover}.nb{padding:20px}.nd{font-size:11px;color:var(--g5);margin-bottom:6px}.nc h4{font-size:16px;font-weight:700;margin-bottom:8px;line-height:1.4}.nc p{font-size:13px;color:var(--g7);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* MAP */
.mg{display:grid;grid-template-columns:1fr 1fr;gap:36px}.mi h3{font-size:22px;font-weight:800;color:var(--pd);margin-bottom:20px}.mr{display:flex;gap:12px;margin-bottom:16px;align-items:flex-start}.mr i{color:var(--p);font-size:16px;width:18px;text-align:center;margin-top:3px}.mr .lbl{font-size:12px;color:var(--g5)}.mr .val{font-size:14px;font-weight:500}.me{border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);height:340px;background:var(--g1);display:flex;align-items:center;justify-content:center}

/* FOOTER */
footer{background:var(--g9);color:var(--g3);padding:48px 0 0}.ft{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:36px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.1)}.fb .fl{display:flex;align-items:center;gap:8px;margin-bottom:14px}.fb .fl img{height:36px;filter:brightness(0) invert(1)}.fb .fl span{font-size:18px;font-weight:800;color:var(--w)}.fb p{font-size:12px;line-height:1.8;margin-bottom:14px}.fs{display:flex;gap:8px}.fs a{width:34px;height:34px;background:rgba(255,255,255,.1);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--g3);transition:var(--tr)}.fs a:hover{background:var(--p);color:var(--w)}
.fco h4{color:var(--w);font-size:15px;font-weight:700;margin-bottom:16px}.fco li{margin-bottom:8px}.fco a{font-size:13px;color:var(--g3);transition:var(--tr)}.fco a:hover{color:var(--a)}.fbot{padding:16px 0;text-align:center;font-size:11px;color:var(--g5)}

/* SCROLL & KAKAO */
.stt{position:fixed;bottom:28px;right:28px;width:46px;height:46px;background:var(--p);color:var(--w);border:none;border-radius:50%;font-size:18px;cursor:pointer;opacity:0;visibility:hidden;transition:var(--tr);z-index:999;box-shadow:var(--sh)}.stt.show{opacity:1;visibility:visible}.stt:hover{background:var(--pd)}.kf{position:fixed;bottom:82px;right:28px;width:52px;height:52px;background:#FEE500;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:var(--sh);z-index:999;cursor:pointer;transition:var(--tr);font-size:24px;color:#3C1E1E}.kf:hover{transform:scale(1.1)}

/* PAGE BANNER */
.pb{height:300px;background-size:cover;background-position:center;position:relative;display:flex;align-items:center;justify-content:center}.pb::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,.55)}.pbc{position:relative;z-index:2;text-align:center;color:var(--w)}.pbc h1{font-size:38px;font-weight:900;margin-bottom:8px}.pbc .bc{font-size:14px;opacity:.8}.pbc .bc a{color:var(--a)}

/* PAGE CONTENT */
.pcon{padding:60px 0}.pcon h2{font-size:28px;font-weight:800;margin-bottom:20px;color:var(--pd)}.pcon h3{font-size:22px;font-weight:700;margin:30px 0 14px}.pcon p{font-size:15px;color:var(--g7);line-height:1.8;margin-bottom:14px}.pcon ul{padding-left:20px;margin-bottom:14px}.pcon ul li{font-size:14px;color:var(--g7);margin-bottom:6px;list-style:disc}
.ir{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.ir img{width:100%;height:280px;object-fit:cover;border-radius:var(--r);box-shadow:var(--sh)}.ir.t3{grid-template-columns:repeat(3,1fr)}
.dc{background:var(--g1);border-radius:var(--r);padding:24px;margin:20px 0}.dc h4{font-size:17px;font-weight:700;margin-bottom:10px;color:var(--p)}
.de{width:100%;height:80vh;border:none;border-radius:var(--r);box-shadow:var(--sh2)}

/* FAQ */
.faq-tabs{display:flex;justify-content:center;gap:8px;margin-bottom:30px;flex-wrap:wrap}
.faq-tab{padding:10px 22px;border:2px solid var(--g3);border-radius:30px;font-size:13px;font-weight:600;cursor:pointer;transition:var(--tr);background:var(--w);color:var(--g7)}
.faq-tab:hover{border-color:var(--p);color:var(--p)}
.faq-tab.on{background:var(--p);color:var(--w);border-color:var(--p)}
.faq-list{max-width:860px;margin:0 auto}
.faq-item{background:#fff;border:1px solid #e0e0e0;border-radius:var(--r);margin-bottom:10px;box-shadow:var(--sh);overflow:hidden;transition:var(--tr)}
.faq-item:hover{box-shadow:var(--sh2)}
.faq-q{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;cursor:pointer;font-size:15px;font-weight:600;color:var(--dk);transition:var(--tr);gap:12px}
.faq-q:hover{color:var(--p)}
.faq-q .cat-badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;background:rgba(26,86,50,.1);color:var(--p);white-space:nowrap}
.faq-q .arrow{font-size:14px;color:var(--g5);transition:transform .3s;min-width:20px;text-align:center}
.faq-item.open .faq-q .arrow{transform:rotate(180deg);color:var(--p)}
.faq-item.open .faq-q{color:var(--p);background:rgba(26,86,50,.03)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease,padding .35s ease;padding:0 24px;font-size:14px;color:var(--g7);line-height:1.8}
.faq-item.open .faq-a{max-height:400px;padding:0 24px 20px}

/* GALLERY TABS */
.gal-tabs{display:flex;justify-content:center;gap:8px;margin-bottom:36px;flex-wrap:wrap}
.gal-tab{padding:12px 28px;border:2px solid var(--g3);border-radius:30px;font-size:14px;font-weight:600;cursor:pointer;transition:var(--tr);background:var(--w);color:var(--g7)}
.gal-tab:hover{border-color:var(--p);color:var(--p);background:rgba(26,86,50,.04)}
.gal-tab.on{background:var(--p);color:var(--w);border-color:var(--p)}
.gal-tab .cnt{display:inline-block;background:rgba(0,0,0,.1);padding:1px 8px;border-radius:10px;font-size:11px;margin-left:6px}
.gal-tab.on .cnt{background:rgba(255,255,255,.25)}

/* QUOTE FORM */
.qf{background:var(--w);padding:32px;border-radius:var(--r);box-shadow:var(--sh)}.qf h3{margin-bottom:20px;font-size:20px;font-weight:800;color:var(--pd)}
.qf label{display:block;font-size:13px;font-weight:600;margin-bottom:4px;color:var(--g7);margin-top:14px}.qf label:first-of-type{margin-top:0}
.qf input,.qf select,.qf textarea{width:100%;padding:11px;border:1px solid var(--g3);border-radius:var(--r);font-size:14px;font-family:inherit;transition:var(--tr)}.qf input:focus,.qf select:focus,.qf textarea:focus{outline:none;border-color:var(--p);box-shadow:0 0 0 3px rgba(26,86,50,.1)}.qf textarea{height:100px;resize:vertical}
.qf .row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.qf .chk-group{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.qf .chk-group label{display:flex;align-items:center;gap:6px;font-weight:400;cursor:pointer;padding:8px 14px;border:1px solid var(--g3);border-radius:var(--r);transition:var(--tr);margin:0}.qf .chk-group label:hover{border-color:var(--p);background:rgba(26,86,50,.04)}.qf .chk-group input[type=radio]:checked+span,.qf .chk-group input[type=checkbox]:checked+span{color:var(--p);font-weight:600}
.qf .chk-group input[type=radio],.qf .chk-group input[type=checkbox]{width:auto;accent-color:var(--p)}
.qf .submit-btn{width:100%;padding:14px;background:var(--p);color:var(--w);border:none;border-radius:var(--r);font-size:16px;font-weight:700;cursor:pointer;margin-top:20px;transition:var(--tr)}.qf .submit-btn:hover{background:var(--pd)}

/* LOGIN MODAL */
.mo{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:2000;display:none;align-items:center;justify-content:center}.mo.show{display:flex}.ml{background:var(--w);border-radius:12px;padding:40px;width:440px;max-width:92vw;position:relative;box-shadow:var(--sh2);max-height:90vh;overflow-y:auto}.ml-c{position:absolute;top:14px;right:18px;background:none;border:none;font-size:22px;cursor:pointer;color:var(--g5)}
.ml h2{text-align:center;font-size:24px;font-weight:800;margin-bottom:8px;color:var(--pd)}.ml .st{text-align:center;font-size:14px;color:var(--g5);margin-bottom:28px}
.sbtn{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.sb{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;border:none;border-radius:var(--r);font-size:15px;font-weight:600;cursor:pointer;transition:var(--tr);width:100%}.sb:hover{transform:translateY(-2px);box-shadow:var(--sh)}.sb.ka{background:#FEE500;color:#3C1E1E}.sb.na{background:#03C75A;color:var(--w)}.sb.go{background:var(--w);color:var(--dk);border:1px solid var(--g3)}
.dvt{text-align:center;margin:20px 0;position:relative;color:var(--g5);font-size:13px}.dvt::before,.dvt::after{content:'';position:absolute;top:50%;width:40%;height:1px;background:var(--g3)}.dvt::before{left:0}.dvt::after{right:0}
.lf label{display:block;font-size:13px;font-weight:600;margin-bottom:4px;color:var(--g7)}.lf input{width:100%;padding:12px;border:1px solid var(--g3);border-radius:var(--r);font-size:14px;margin-bottom:14px}.lf input:focus{outline:none;border-color:var(--p)}.lf button[type=submit]{width:100%;padding:14px;background:var(--p);color:var(--w);border:none;border-radius:var(--r);font-size:15px;font-weight:700;cursor:pointer}

/* ADMIN PANEL */
.aw{display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - var(--nh))}.as{background:var(--g9);color:var(--g3);padding:24px 0}.as h3{padding:0 20px;font-size:16px;color:var(--w);margin-bottom:20px}.as a{display:block;padding:12px 24px;font-size:14px;color:var(--g3);transition:var(--tr);cursor:pointer}.as a:hover,.as a.on{background:var(--p);color:var(--w)}.as a i{margin-right:8px;width:18px;text-align:center}
.am{padding:30px;background:var(--g1);overflow-y:auto}.am h2{font-size:24px;font-weight:800;margin-bottom:20px}.am h2 i{margin-right:8px}
.atb{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.btn{padding:10px 20px;border:none;border-radius:var(--r);font-size:13px;font-weight:600;cursor:pointer;transition:var(--tr)}.btn-p{background:var(--p);color:var(--w)}.btn-p:hover{background:var(--pd)}.btn-d{background:#dc3545;color:var(--w)}.btn-d:hover{background:#b02a37}
.at{width:100%;border-collapse:collapse;background:var(--w);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh)}.at th{background:var(--p);color:var(--w);padding:12px 16px;text-align:left;font-size:13px}.at td{padding:12px 16px;border-bottom:1px solid var(--g1);font-size:13px;vertical-align:middle}.at tr:hover td{background:rgba(26,86,50,.03)}.at img{height:50px;width:70px;object-fit:cover;border-radius:4px}.at .acts{white-space:nowrap}.at .acts button{padding:6px 12px;border:none;border-radius:4px;font-size:12px;cursor:pointer;margin-right:4px}.at .eb{background:#0d6efd;color:var(--w)}.at .db{background:#dc3545;color:var(--w)}.at .mb{background:#6c757d;color:var(--w);padding:6px 9px}.at .mb:hover:not(:disabled){background:#495057}.at .mb-d{background:var(--g2);color:var(--g5);cursor:not-allowed;opacity:.5}.at td.dh{width:28px;text-align:center;color:var(--g3);cursor:grab;user-select:none;padding:12px 6px}.at td.dh:hover{color:var(--p)}.at tr[draggable="true"]{transition:background .15s}.at tr.drag-source{opacity:.4;background:rgba(26,86,50,.05)}.at tr.drag-source td.dh{cursor:grabbing}.at tr.drag-over-top{box-shadow:0 -3px 0 var(--p) inset;background:rgba(26,86,50,.08)}.at tr.drag-over-bottom{box-shadow:0 3px 0 var(--p) inset;background:rgba(26,86,50,.08)}

/* ADMIN MODAL */
.adm{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:2000;display:none;align-items:center;justify-content:center}.adm.show{display:flex}.adm .ml{width:560px}.adm label{display:block;font-size:13px;font-weight:600;margin-bottom:4px;color:var(--g7);margin-top:12px}.adm input,.adm textarea,.adm select{width:100%;padding:10px;border:1px solid var(--g3);border-radius:var(--r);font-size:14px;font-family:inherit}.adm textarea{height:100px;resize:vertical}.adm .fa2{display:flex;gap:10px;margin-top:20px}.adm .fa2 button{flex:1;padding:12px;border:none;border-radius:var(--r);font-size:14px;font-weight:600;cursor:pointer}.adm .sv{background:var(--p);color:var(--w)}.adm .cn{background:var(--g3);color:var(--dk)}

/* COOKIE BANNER */
#cookieBanner{position:fixed;bottom:20px;left:20px;right:20px;max-width:760px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 12px 50px rgba(0,0,0,.25);padding:20px 24px;z-index:3000;transform:translateY(120%);transition:transform .4s cubic-bezier(.16,1,.3,1);border:1px solid var(--g3)}
#cookieBanner.show{transform:translateY(0)}
#cookieBanner .ck-inner{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
#cookieBanner .ck-msg{display:flex;align-items:flex-start;flex:1;min-width:280px}
#cookieBanner .ck-btns{display:flex;gap:8px;flex-shrink:0}
#cookieBanner button{padding:10px 20px;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:var(--tr);font-family:inherit}
#cookieBanner .ck-decline{background:var(--g1);color:var(--g7)}
#cookieBanner .ck-decline:hover{background:var(--g3)}
#cookieBanner .ck-accept{background:var(--p);color:var(--w)}
#cookieBanner .ck-accept:hover{background:var(--pd)}
@media(max-width:600px){#cookieBanner{left:10px;right:10px;bottom:10px;padding:16px}#cookieBanner .ck-btns{width:100%}#cookieBanner .ck-btns button{flex:1}}

/* ═══════════════════════════════════════════════
   RESPONSIVE — 다단계 미디어 쿼리
   1024px 이하: 태블릿 (큰 모바일)
    768px 이하: 모바일 (햄버거 메뉴 전환)
    480px 이하: 작은 모바일
    그 외: 가로 모드, 고DPI, 폼 줌 방지 등 보강
   ═══════════════════════════════════════════════ */

/* ── 1024px 이하 (태블릿) ── */
@media(max-width:1024px){
  .container{padding:0 24px}
  .fg,.pg,.ng,.vg{grid-template-columns:repeat(2,1fr)}
  .prg{grid-template-columns:repeat(3,1fr)}
  .prs:nth-child(3)::after{display:none}
  .ft{grid-template-columns:1fr 1fr;gap:28px}
  .hero{height:560px}
  .hero-ct{left:50px;bottom:90px}
  .hero-ct h2{font-size:38px}
  .ab-img img{height:340px}
  .sh h2{font-size:30px}
  .am{padding:20px}
}

/* ── 768px 이하 (모바일) ── */
@media(max-width:768px){
  .container{padding:0 16px}
  body{font-size:14px}

  /* ── HEADER ── */
  .top-bar{display:none}
  .hdr{height:60px;padding:0 16px}
  .logo{gap:8px}
  .logo img{height:34px}
  .logo-t{font-size:15px;line-height:1.1}
  .logo-t span{font-size:9px;letter-spacing:1.5px}
  .mob-tog{display:flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:22px;color:var(--dk)}
  .hdr-ph,.hdr-login{display:none}

  /* ── NAV (햄버거 메뉴) ── */
  nav{position:fixed;top:60px;left:0;right:0;background:var(--w);box-shadow:var(--sh2);transform:translateY(-120%);transition:transform .35s cubic-bezier(.4,0,.2,1);z-index:999;max-height:calc(100vh - 60px);overflow-y:auto;border-top:1px solid var(--g1)}
  nav.open{transform:translateY(0)}
  nav ul{flex-direction:column}
  nav li{border-bottom:1px solid var(--g1)}
  nav li>a{padding:16px 24px;font-size:15px;font-weight:600;color:var(--dk)}
  nav li>a::after,nav li>a::before{display:none}
  nav .drop{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border-top:none;background:var(--g1);border-radius:0}
  nav .drop a{padding:13px 40px;font-size:14px;border-bottom:1px solid #e8e8e8;color:var(--g9)}
  nav .drop a:last-child{border-bottom:none}
  nav .drop a::before{display:none}
  nav .drop a:hover{padding-left:48px}
  /* overlay-mode일 때 흰 텍스트로 바뀌는 데스크탑 규칙을 모바일에선 무효화 */
  header.overlay-mode nav li>a,
  header.overlay-mode #dynNav li>a,
  header.overlay-mode nav .drop a{color:var(--dk)!important}
  header.overlay-mode nav li:hover>a,
  header.overlay-mode #dynNav li:hover>a{color:var(--p)!important}

  /* ── HERO ── */
  .hero{height:480px}
  .hero-ct{bottom:90px;left:20px;right:20px;max-width:none}
  .hero-ct .badge{font-size:11px;padding:4px 12px;margin-bottom:10px}
  .hero-ct h2{font-size:26px;letter-spacing:-1px;margin-bottom:10px;line-height:1.25}
  .hero-ct p{font-size:14px;line-height:1.5}
  .hero-cta-btn{margin-top:14px;padding:12px 24px;font-size:14px}
  .hero-arr{padding:0 10px}
  .hero-arr button{width:38px;height:38px;font-size:14px}
  .hero-nav{bottom:18px}
  .hero-nav button{width:10px;height:10px}

  /* ── CTA BAR ── */
  .cta-bar .container{grid-template-columns:repeat(2,1fr);padding:0}
  .cta-i{flex-direction:column;gap:6px;padding:18px 8px;border-right:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);text-align:center;min-height:90px}
  .cta-i:nth-child(2n){border-right:none}
  .cta-i:nth-last-child(-n+2){border-bottom:none}
  .cta-i i{font-size:22px}
  .cta-i h4{font-size:13px;line-height:1.2}
  .cta-i p{font-size:10px}

  /* ── SECTIONS ── */
  .sec{padding:48px 0}
  .sh{margin-bottom:30px}
  .sh h2{font-size:22px;letter-spacing:-0.5px}
  .sh .sub{font-size:11px;letter-spacing:2px}
  .sh p{font-size:13px;padding:0 8px}

  /* ── ABOUT ── */
  .ab-g{grid-template-columns:1fr;gap:30px}
  .ab-img img{height:240px}
  .ab-t h3{font-size:20px;margin-bottom:14px}
  .ab-t p{font-size:13.5px}
  .stats{grid-template-columns:repeat(3,1fr);gap:10px}
  .stat{padding:14px 6px}
  .stat .n{font-size:22px}
  .stat .l{font-size:11px}

  /* ── FEATURES (1열 대신 2열로 모바일에서 더 효율적) ── */
  .fg{grid-template-columns:repeat(2,1fr);gap:14px}
  .fc{padding:22px 14px}
  .fi{width:50px;height:50px;font-size:20px;margin-bottom:12px}
  .fc h4{font-size:14px;margin-bottom:6px}
  .fc p{font-size:12px;line-height:1.5}

  /* ── PORTFOLIO/GALLERY ── */
  .pg,.ng,.vg{grid-template-columns:repeat(2,1fr);gap:12px}
  .pc img{height:140px}
  .po{opacity:1;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,transparent 70%);padding:12px}
  .po .tag{font-size:10px;padding:2px 8px}
  .po h4{font-size:13px;line-height:1.3}
  .po p{font-size:11px}

  /* ── PROCESS ── */
  .prg{grid-template-columns:repeat(2,1fr);gap:12px}
  .prs{padding:20px 8px}
  .prs::after{display:none}
  .prs .num{width:38px;height:38px;font-size:14px;margin-bottom:10px}
  .prs h4{font-size:13px}
  .prs p{font-size:11px}

  /* ── TECH ── */
  .tg{grid-template-columns:1fr;gap:24px}
  .tg img{height:240px}

  /* ── TABLE ── */
  .ct{font-size:12px}
  .ct th,.ct td{padding:8px 6px;font-size:12px}

  /* ── CONSULT ── */
  .cs{padding:48px 0}
  .cs h2{font-size:24px}
  .cs>p,.cs .container>p{font-size:14px;margin-bottom:24px}
  .cph{font-size:28px;flex-wrap:wrap}
  .cbs{flex-direction:column;align-items:stretch;gap:10px}
  .cb{width:100%;justify-content:center;padding:14px 20px;font-size:14px}

  /* ── NEWS ── */
  .ng{grid-template-columns:1fr;gap:16px}
  .nc img{height:200px}

  /* ── MAP ── */
  .mg{grid-template-columns:1fr;gap:24px}
  .mi h3{font-size:18px;margin-bottom:14px}
  .me{height:280px}

  /* ── FOOTER ── */
  .ft{grid-template-columns:1fr 1fr;gap:24px}
  .fb{grid-column:1/-1}
  .fb .fl img{height:30px}
  .fb .fl span{font-size:16px}
  .fco h4{font-size:14px;margin-bottom:12px}
  .fco a{font-size:12px}
  .fbot{padding:14px 0;font-size:10.5px;line-height:1.6}

  /* ── FLOATING ── */
  .stt{bottom:20px;right:16px;width:42px;height:42px;font-size:16px}
  .kf{bottom:70px;right:16px;width:48px;height:48px;font-size:22px}

  /* ── PAGE BANNER ── */
  .pb{height:180px}
  .pbc h1{font-size:24px}
  .pbc .bc{font-size:12px}

  /* ── PAGE CONTENT ── */
  .pcon{padding:40px 0}
  .pcon h2{font-size:22px}
  .pcon h3{font-size:18px;margin:24px 0 10px}
  .pcon p{font-size:14px}
  .ir,.ir.t3{grid-template-columns:1fr;gap:14px}
  .ir img{height:220px}
  .dc{padding:18px}
  .de{height:65vh}

  /* ── FAQ ── */
  .faq-tab{padding:8px 16px;font-size:12px}
  .faq-q{padding:14px 16px;font-size:13.5px;gap:10px}
  .faq-q .cat-badge{font-size:10px;padding:2px 8px}
  .faq-a{font-size:13px;padding:0 16px}
  .faq-item.open .faq-a{padding:0 16px 16px}

  /* ── GALLERY TABS ── */
  .gal-tab{padding:10px 18px;font-size:13px}

  /* ── QUOTE FORM ── */
  .qf{padding:22px 18px}
  .qf h3{font-size:18px;margin-bottom:16px}
  .qf label{font-size:12.5px}
  .qf input,.qf select,.qf textarea{font-size:16px;padding:12px} /* 16px = iOS 줌 방지 */
  .qf .row2{grid-template-columns:1fr;gap:0}
  .qf .submit-btn{padding:14px;font-size:15px}
  /* 라디오/체크박스 그룹: 모바일에서 세로 1열 정렬로 텍스트 잘림 방지 */
  .qf .chk-group{flex-direction:column;gap:8px}
  .qf .chk-group label{width:100%;padding:12px 14px;font-size:14px;justify-content:flex-start;white-space:normal;line-height:1.4}
  .qf .chk-group input[type=radio],.qf .chk-group input[type=checkbox]{flex-shrink:0}

  /* ── LOGIN MODAL ── */
  .ml{padding:28px 22px;border-radius:10px}
  .ml h2{font-size:20px}
  .ml .st{font-size:13px;margin-bottom:22px}
  .sb{padding:13px;font-size:14px}
  .lf input{font-size:16px;padding:11px}

  /* ── ADMIN PANEL ── */
  .aw{grid-template-columns:1fr}
  .as{display:none}
  .am{padding:16px 12px}
  .am h2{font-size:20px;margin-bottom:14px}
  .at{font-size:12px;display:block;overflow-x:auto;white-space:nowrap;border-radius:0}
  .at th,.at td{padding:10px 12px}
  .at img{height:42px;width:56px}
  .at .acts button{padding:5px 9px;font-size:11px;margin-right:2px}
  .at .mb{padding:5px 7px}
  .adm .ml{width:94vw;padding:24px 18px}

  /* ── HEADER OVERLAY MODE on MOBILE ── */
  header.overlay-mode .mob-tog{color:var(--w)!important}
  header.overlay-mode.scrolled .mob-tog{color:var(--dk)!important}
}

/* ── 480px 이하 (작은 모바일 — iPhone SE 등) ── */
@media(max-width:480px){
  .container{padding:0 14px}
  .hdr{padding:0 14px}
  .logo img{height:30px}
  .logo-t{font-size:14px}
  .logo-t span{font-size:8px}

  .hero{height:420px}
  .hero-ct{bottom:80px;left:16px;right:16px}
  .hero-ct h2{font-size:22px}
  .hero-ct p{font-size:13px}
  .hero-cta-btn{padding:11px 20px;font-size:13px}

  .cta-i{padding:14px 6px;min-height:80px}
  .cta-i h4{font-size:12px}
  .cta-i p{font-size:9.5px}

  .sec{padding:36px 0}
  .sh h2{font-size:20px}

  /* 작은 모바일에서는 갤러리/news 1열이 더 보기 좋음 */
  .pg,.ng{grid-template-columns:1fr}
  .pc img{height:220px}

  /* 특장점은 작은 모바일에서도 2열 유지 */
  .fg{grid-template-columns:repeat(2,1fr);gap:10px}
  .fc{padding:18px 10px}
  .fi{width:44px;height:44px;font-size:18px}
  .fc h4{font-size:13px}
  .fc p{font-size:11.5px}

  .ab-img img{height:200px}
  .stats{grid-template-columns:repeat(3,1fr);gap:6px}
  .stat{padding:10px 4px}
  .stat .n{font-size:18px}
  .stat .l{font-size:10px}

  .cph{font-size:22px}

  .ft{grid-template-columns:1fr;gap:20px}
  .fb{grid-column:auto}

  .pb{height:150px}
  .pbc h1{font-size:20px}

  .ml{padding:24px 18px}
}

/* ── 가로 모드 (low height) ── */
@media(max-height:500px) and (orientation:landscape){
  .hero{height:360px}
  .hero-ct{bottom:50px}
  .hero-ct h2{font-size:24px}
}

/* ── 폼 입력 iOS 자동 줌 방지 ── */
@media(max-width:768px){
  input[type="text"],input[type="email"],input[type="tel"],input[type="password"],input[type="number"],input[type="search"],textarea,select{font-size:16px!important}
}

/* ── 터치 디바이스: hover 효과 비활성 ── */
@media(hover:none){
  .fc:hover,.nc:hover,.pc:hover img{transform:none}
  nav li:hover>a{transform:none}
  .pc .po{opacity:1}
}
