:root{--ink:#16211E;--sub:#4C5A55;--muted:#66736E;--pine:#14382F;--pine2:#0D2721;--safe:#1F6E96;--safe-l:#8CC8E6;--care:#C8303A;--care-l:#F07A7F;--bg:#FFFFFF;--soft:#F3F6F5;--line:#DCE3E0;--max:1200px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.7 "Pretendard Variable",Pretendard,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;word-break:keep-all;overflow-wrap:break-word}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit}img{max-width:100%;display:block}
h1,h2,h3{letter-spacing:-.02em;line-height:1.3}
.wrap{max-width:var(--max);margin:0 auto;padding:0 40px}
.skip{position:absolute;left:12px;top:-60px;background:var(--pine);color:#fff;padding:8px 14px;z-index:50}.skip:focus{top:10px}
:focus-visible{outline:3px solid var(--safe);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
em{font-style:normal}

/* 머리글 */
.hd{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hd-in{display:flex;align-items:center;gap:40px;height:72px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-size:23px;letter-spacing:-.02em;color:var(--pine)}.logo svg{width:32px;height:32px}.logo b{color:var(--care)}
.gnb ul{display:flex;gap:32px}.gnb a{text-decoration:none;font-weight:600;font-size:16px;color:var(--sub);padding:24px 0;border-bottom:2px solid transparent}
.gnb a:hover{color:var(--pine)}.gnb a[aria-current]{color:var(--pine);border-color:var(--pine)}
.home{margin-left:auto;text-decoration:none;font-weight:600;font-size:15px;color:var(--pine)}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--pine);color:var(--pine);font:600 15px inherit;padding:7px 14px;border-radius:4px}
.mnav ul{padding:8px 20px 18px}.mnav a{display:block;padding:13px 2px;font-weight:600;font-size:18px;text-decoration:none;border-bottom:1px solid var(--line)}
.crumb{padding-top:20px;font-size:14px;color:var(--muted);display:flex;gap:8px}.crumb a{color:var(--sub)}

/* 버튼 */
.acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.btn{display:inline-flex;align-items:center;min-height:50px;padding:0 24px;border-radius:4px;border:1px solid transparent;font-weight:700;font-size:16px;text-decoration:none}
.btn-p{background:var(--pine);color:#fff}.btn-p:hover{background:var(--pine2)}
.btn-o{border-color:var(--pine);color:var(--pine);background:#fff}.btn-o:hover{background:var(--soft)}
.btn-w{background:#fff;color:var(--pine)}
.lnk{font-weight:700;color:var(--pine);text-underline-offset:4px}

/* 첫 화면 */
.hero{background:var(--pine2);color:#E6EEEA;padding:84px 0 0}
.hero-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:64px;align-items:start}
.hero-k{font-size:20px;font-weight:600;color:#C9D8D1}.hero-k b{font-weight:800}.c-safe{color:var(--safe-l)}.c-care{color:var(--care-l)}
.hero h1{font-size:64px;font-weight:800;line-height:1.16;color:#C9D8D1;margin:18px 0 28px}
.hero h1 .w-safe{color:var(--safe-l)}.hero h1 .w-care{color:var(--care-l)}
.hero-p{font-size:18px;line-height:1.8;color:#C3D1CB;max-width:34em}.hero-p+.hero-p{margin-top:12px}.hero-p b{color:#fff;font-weight:700}
.hero .btn-p{background:#fff;color:var(--pine)}.hero .btn-o{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}.hero .btn-o:hover{background:rgba(255,255,255,.08)}
.hero-map{padding-top:6px}.hm-t{font-size:15px;font-weight:700;color:#9FB6AC;margin-bottom:12px}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:72px;border-top:1px solid rgba(255,255,255,.14)}
.facts div{padding:26px 24px 34px 0;display:flex;flex-direction:column-reverse}.facts div+div{padding-left:24px;border-left:1px solid rgba(255,255,255,.14)}
.facts dd{font-size:44px;font-weight:800;color:#fff;line-height:1.1;font-variant-numeric:tabular-nums}.facts dt{font-size:15px;color:#9FB6AC;margin-top:8px}
.facts.dark{margin:0 0 40px;border-color:var(--line)}.facts.dark div+div{border-color:var(--line)}.facts.dark dd{color:var(--pine)}.facts.dark dt{color:var(--sub)}

/* 기술 지도 */
.tmap{display:flex;flex-wrap:wrap;gap:6px;height:400px;align-content:stretch}
.tm{position:relative;flex-basis:120px;min-width:0;display:flex;align-items:flex-start;padding:14px 16px;border-radius:3px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);text-decoration:none;overflow:hidden}
.tm:hover{border-color:rgba(255,255,255,.5)}
.tm-adv{position:absolute;left:0;right:0;bottom:0;background:rgba(240,122,127,.32);border-top:1px solid rgba(240,122,127,.7)}
.tm-t{position:relative;display:flex;flex-direction:column}.tm-t b{font-size:17px;color:#fff;font-weight:700}.tm-t span{font-size:14px;color:#B9CCC4;font-variant-numeric:tabular-nums}
.tmap-lg{display:flex;gap:20px;margin-top:12px;font-size:13px;color:#9FB6AC}.tmap-lg i{display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-1px;border-radius:2px}
.k-n{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3)}.k-a{background:rgba(240,122,127,.45)}
.sec:not(.hero) .tmap{height:360px}.sec .tm{background:var(--soft);border-color:var(--line)}.sec .tm:hover{border-color:var(--pine)}.sec .tm-t b{color:var(--ink)}.sec .tm-t span{color:var(--sub)}
.sec .tm-adv{background:rgba(200,48,58,.16);border-top-color:rgba(200,48,58,.55)}.sec .tmap-lg{color:var(--sub)}.sec .k-n{background:var(--soft);border-color:var(--line)}.sec .k-a{background:rgba(200,48,58,.3)}

/* 공통 구역 */
.sec{padding:96px 0}.sec.alt{background:var(--soft)}
.sh{margin-bottom:44px;max-width:46em}.sh h2{font-size:38px;font-weight:800;color:var(--pine)}.sh p{margin-top:14px;font-size:18px;color:var(--sub)}
.ph{padding:56px 0 64px;border-bottom:1px solid var(--line)}.ph h1{font-size:48px;font-weight:800;color:var(--pine)}.ph .lead{margin-top:18px;font-size:19px;color:var(--sub);max-width:42em}
.str{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}
.str div{border-top:2px solid var(--pine);padding-top:22px}.str h3{font-size:22px;font-weight:700;color:var(--pine)}.str p{margin-top:10px;color:var(--sub)}
.areas{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.area{background:#fff;border:1px solid var(--line);border-top:4px solid var(--pine);padding:26px 24px 28px}
.area.a-safe{border-top-color:var(--safe)}.area.a-care{border-top-color:var(--care)}.area.a-both{border-top-color:#6E5AA8}.area.a-ip{border-top-color:var(--pine)}.area.a-edu{border-top-color:#B7862C}
.area h3{font-size:21px;font-weight:700}.area h3 small{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-top:2px}
.area p{margin-top:12px;font-size:15.5px;color:var(--sub);line-height:1.7}.area ul{margin-top:16px;display:flex;flex-direction:column;gap:6px}.area li a{font-size:15px;font-weight:600;color:var(--pine);text-underline-offset:3px}

/* 서비스 화면 보기 */
.viewer{display:grid;grid-template-columns:240px minmax(0,1fr);gap:32px}
.vw-tabs{display:flex;flex-direction:column;border-left:1px solid var(--line)}
.vw-tabs button{all:unset;cursor:pointer;display:block;padding:11px 18px;margin-left:-1px;border-left:3px solid transparent}
.vw-tabs b{display:block;font-size:16px;font-weight:700;color:var(--sub)}.vw-tabs span{display:block;font-size:13px;color:var(--muted);line-height:1.4}
.vw-tabs button[aria-selected="true"]{border-left-color:var(--pine);background:var(--soft)}.vw-tabs button[aria-selected="true"] b{color:var(--pine)}
.vw-tabs button:focus-visible{outline:3px solid var(--safe);outline-offset:-3px}
.vw-p{display:flex;flex-direction:column;gap:22px}
.vw-shot,.svc-shot{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;box-shadow:0 12px 32px -18px rgba(13,39,33,.35)}
.vw-bar{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#EEF2F0;font-size:12.5px;color:var(--muted);border-bottom:1px solid var(--line)}.vw-bar i{width:8px;height:8px;border-radius:50%;background:#C8D2CD}.vw-bar span{margin-left:8px}
.vw-shot img{width:100%;max-height:560px;object-fit:contain;background:#F7F9F8}
.vw-txt{max-width:46em}.vw-area{font-size:14px;font-weight:700;color:var(--muted)}.vw-txt h3{font-size:26px;font-weight:800;color:var(--pine);margin:2px 0 8px}.vw-txt p{color:var(--sub)}.vw-txt .lnk{display:inline-block;margin-top:12px}

/* 검증 결과 */
.res-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.res{background:#fff;border:1px solid var(--line);padding:32px 32px 28px}
.res-svc{font-size:14px;font-weight:700;color:var(--muted)}.res h3{font-size:24px;font-weight:800;color:var(--pine);margin:4px 0 20px}
.res-num{display:flex;flex-wrap:wrap;gap:12px 28px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.res-num span{display:flex;flex-direction:column;font-size:14px;color:var(--sub)}.res-num b{font-size:30px;font-weight:800;color:var(--ink);line-height:1.2;font-variant-numeric:tabular-nums}
.res>p:not([class]){color:var(--sub)}.src{margin-top:14px;font-size:13.5px;color:var(--muted)}

.cta{background:var(--pine);color:#fff}.cta .sh h2{color:#fff}.cta .sh p{color:#C3D1CB}.cta .sh{margin-bottom:0}.cta .acts{margin-top:28px}

/* 회사소개 */
.ov{width:100%;border-collapse:collapse;border-top:2px solid var(--pine);font-size:17px}
.ov th{width:200px;text-align:left;font-weight:700;color:var(--pine);padding:18px 20px;background:var(--soft);border-bottom:1px solid var(--line);vertical-align:top}
.ov td{padding:18px 20px;border-bottom:1px solid var(--line);color:var(--ink)}
.v-main{font-size:30px;font-weight:700;line-height:1.5;color:var(--pine);max-width:30em;margin-bottom:48px}
.hist{border-left:2px solid var(--line);margin-left:6px}
.hist li{position:relative;display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:0 0 22px 28px}
.hist li::before{content:"";position:absolute;left:-7px;top:9px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--pine)}
.h-d{font-weight:700;color:var(--pine);font-variant-numeric:tabular-nums}
.greet{max-width:44em}.greet p{font-size:18px;line-height:1.9;color:var(--ink)}.greet p+p{margin-top:16px}.greet .sign{margin-top:28px;font-weight:700;color:var(--pine)}

/* 기술·특허 */
.adv{max-width:52em}.adv p:first-child{font-size:18px;line-height:1.85}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.fld{border:1px solid var(--line);padding:30px 30px 28px;scroll-margin-top:96px}
.fld header{display:flex;justify-content:space-between;align-items:baseline;gap:16px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:16px}
.fld h3{font-size:23px;font-weight:800;color:var(--pine)}.fld header p{font-size:14.5px;font-weight:600;color:var(--sub);white-space:nowrap}
.fld>p{color:var(--sub)}.fld-svc{margin-top:12px;font-size:15px}.fld-svc a{font-weight:700;color:var(--pine)}
.rep{margin-top:18px;background:var(--soft);padding:16px 18px;border-left:3px solid var(--pine)}.rep-t{font-weight:700}.rep-m{margin-top:4px;font-size:14px;color:var(--muted);line-height:1.6}
.note{color:var(--sub);max-width:52em}

/* 서비스 */
.svc{display:grid;grid-template-columns:minmax(0,1fr);gap:32px;padding:48px 0;border-top:1px solid var(--line);scroll-margin-top:80px}
.svc:first-child{border-top:0;padding-top:0}
.svc-k{font-size:14px;font-weight:700;color:var(--muted)}.svc h3{font-size:30px;font-weight:800;color:var(--pine);margin:2px 0 12px}
.svc-def{color:var(--ink)}.svc h4{margin:22px 0 8px;font-size:15px;color:var(--pine)}
.svc ul{display:flex;flex-direction:column;gap:6px}.svc li{position:relative;padding-left:16px;color:var(--sub);font-size:16px}.svc li::before{content:"";position:absolute;left:0;top:.75em;width:6px;height:2px;background:var(--pine)}
.svc-for{margin:18px 0 24px;font-size:15.5px;color:var(--sub)}.svc-for b{color:var(--ink);margin-right:8px}
.svc-shot img{width:100%;height:auto;display:block;background:#F7F9F8}

/* 문의 */
.contact{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.cbox{border-top:2px solid var(--pine);padding-top:22px}.cbox h2{font-size:16px;color:var(--muted)}.cbox .big{display:block;font-size:26px;font-weight:800;color:var(--pine);margin:8px 0 14px;word-break:break-all;text-underline-offset:5px}
.cbox p{color:var(--sub);font-size:16px}.cbox .addr{color:var(--ink);font-weight:600;margin:8px 0 18px;font-size:17px}
.doc{max-width:46em}.doc p+p{margin-top:16px}

/* 바닥글 */
.ft{background:var(--pine2);color:#B9CCC4;font-size:14.5px;padding:56px 0 32px}
.ft-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.12)}
.ft-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;font-weight:800;font-size:23px}.ft-logo svg{width:36px;height:36px}.ft-logo b{color:var(--care-l)}
.ft-brand p{margin-top:12px;font-weight:600;color:#C9D8D1}.ft-brand .w-safe{color:var(--safe-l)}.ft-brand .w-care{color:var(--care-l)}
.ft-co{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px}.ft-co dt{color:#7F9A8F;font-weight:600}.ft-co dd{color:#DCE6E1}.ft a{color:#DCE6E1;text-decoration:none}.ft a:hover{text-decoration:underline}
.ft-links{display:grid;grid-template-columns:200px minmax(0,1fr);gap:40px;padding:32px 0}.ft-links h2{font-size:14px;color:#fff;margin-bottom:10px}
.ft-links li{padding:3px 0}.ft-svc ul{columns:3;column-gap:24px}
.ft-bot{border-top:1px solid rgba(255,255,255,.12);padding-top:22px;font-size:13px;color:#7F9A8F}

@media (max-width:1060px){
  .gnb{display:none}.menu-btn{display:block}.home{margin-left:auto}.home+.menu-btn{margin-left:12px}
  .hero-in{grid-template-columns:minmax(0,1fr);gap:48px}.hero h1{font-size:50px}
  .areas{grid-template-columns:repeat(2,minmax(0,1fr))}
  .viewer{grid-template-columns:minmax(0,1fr)}.vw-tabs{flex-direction:row;overflow-x:auto;border-left:0;border-bottom:1px solid var(--line)}
  .vw-tabs button{border-left:0;border-bottom:3px solid transparent;margin:0 0 -1px;white-space:nowrap}.vw-tabs button[aria-selected="true"]{border-bottom-color:var(--pine)}
  .svc{grid-template-columns:minmax(0,1fr);gap:28px}
}
@media (max-width:720px){
  .wrap{padding:0 18px}.sec{padding:64px 0}.hero{padding-top:52px}
  .hero h1{font-size:38px}.hero-k{font-size:17px}.hero-p{font-size:16.5px}
  .tmap{height:auto}.tm{flex-basis:46%!important;min-height:86px}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:48px}.facts div{padding:20px 12px 24px 0}.facts div:nth-child(3){padding-left:0;border-left:0}.facts dd{font-size:34px}
  .sh h2{font-size:28px}.ph h1{font-size:34px}.ph .lead{font-size:17px}
  .str,.areas,.res-grid,.fields,.contact{grid-template-columns:minmax(0,1fr)}.str{gap:28px}
  .ov th{width:96px;padding:14px 12px}.ov td{padding:14px 12px}.v-main{font-size:22px}
  .hist li{grid-template-columns:minmax(0,1fr);gap:2px}
  .fld header{flex-direction:column;gap:4px}.ft-links{grid-template-columns:minmax(0,1fr)}.ft-svc ul{columns:2}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.vw-p[hidden]{display:none}.vw-noshot{display:flex;align-items:center;justify-content:center;min-height:320px;background:var(--soft);color:var(--muted);font-size:15px}
.gal{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.gal li{display:flex;flex-direction:column;gap:6px}.gal img{width:100%;height:auto;border:1px solid var(--line);border-radius:4px}
.gal span{font-size:14px;font-weight:600;color:var(--sub)}
@media (max-width:720px){.gal{grid-template-columns:minmax(0,1fr)}}
.svc .gal{display:grid;flex-direction:initial}.svc .gal li{padding-left:0}.svc .gal li::before{display:none}
.svc-shot{align-self:start}

.svc-txt{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:56px;align-items:start}
.svc-txt .svc-head{grid-column:1}.svc-txt .svc-body{grid-column:2}
.svc-txt .svc-body h4:first-child{margin-top:4px}
@media (max-width:900px){.svc-txt{grid-template-columns:minmax(0,1fr)}.svc-txt .svc-body{grid-column:1}}
.lb{position:fixed;inset:0;z-index:100;background:rgba(10,20,17,.88);display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}
.lb[hidden]{display:none}.lb img{max-width:100%;max-height:100%;width:auto;height:auto;border-radius:4px;background:#fff}
.lb button{position:absolute;top:14px;right:18px;font-size:30px;line-height:1;color:#fff;background:none;border:0;cursor:pointer;padding:6px}
a[data-lb]{cursor:zoom-in}

.advl{margin-top:40px;display:flex;flex-direction:column;gap:36px}
.advg h3{display:flex;align-items:baseline;gap:10px;font-size:20px;font-weight:800;color:var(--pine);padding-bottom:10px;border-bottom:2px solid var(--pine)}
.advg h3 span{font-size:15px;font-weight:700;color:var(--muted)}
.advt{width:100%;border-collapse:collapse;font-size:15px;background:#fff}
.advt th{text-align:left;font-size:13px;font-weight:700;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);background:var(--soft)}
.advt td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.55;color:var(--ink)}
.advt .no{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--sub);width:10.5em}
.advt .dt{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted);width:7.5em}
@media (max-width:720px){.advt thead{display:none}.advt tr{display:grid;grid-template-columns:auto 1fr;column-gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.advt td{border:0;padding:2px 0}.advt td:nth-child(2){grid-column:1/-1;order:3}.advt .no,.advt .dt{width:auto}}
