/*!
 * BITMarketing 웹사이트 스타일
 * 글꼴: 나눔스퀘어 네오 (c) 2022 NAVER Corp., 나눔바른고딕 (c) 2013 NHN Corporation
 *       네이버 나눔글꼴 라이선스(SIL OFL 1.1 기반). 웹용으로 KS X 1001 한글 2,350자 + 영문·숫자·기호만 남김.
 *       라이선스 전문: assets/fonts/LICENSE-Nanum.txt
 */
@font-face{font-family:"NanumSquareNeo";font-weight:400;font-display:swap;src:url("../fonts/nanumsquareneo-400.woff2") format("woff2")}
@font-face{font-family:"NanumSquareNeo";font-weight:700;font-display:swap;src:url("../fonts/nanumsquareneo-700.woff2") format("woff2")}
@font-face{font-family:"NanumSquareNeo";font-weight:800;font-display:swap;src:url("../fonts/nanumsquareneo-800.woff2") format("woff2")}
@font-face{font-family:"NanumBarunGothic";font-weight:400;font-display:swap;src:url("../fonts/nanumbarungothic-400.woff2") format("woff2")}
@font-face{font-family:"NanumBarunGothic";font-weight:700;font-display:swap;src:url("../fonts/nanumbarungothic-700.woff2") format("woff2")}

/* layout: corporate one-page, 1200 grid, left-aligned heads, section rhythm white > gray > navy > white > black */
:root{
  --blue:#105499; --blue-dark:#0C4279; --blue-text:#105499;
  --sky:#5B9BFF; --teal:#2FC4B6;
  --navy:#0F1A2E; --navy-card:#16243D; --navy-line:#24375A; --navy-fg:#E8EEF8; --navy-sub:#A9B6CC;
  --bg:#FFFFFF; --fg:#111111; --sub:#666666; --line:#DDDDDD; --gray-bg:#F5F5F5;
  --card2-bg:#FFFFFF; --card2-fg:#111111; --card4-bg:#E3ECF6; --card4-fg:#111111; --img-panel:#FFFFFF;
  --charcoal:#333333; --footer:#191919; --footer-sub:#8E8E8E;
  --modal-bg:#FFFFFF; --input-line:#111111; --error:#C9362F;
  --f-head:"NanumSquareNeo","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --f-body:"NanumBarunGothic","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --wrap:1200px; --hero-img:url("../img/hero.jpg"); --hh:72px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --blue-text:#7FB4EE; --bg:#121821; --fg:#ECEFF3; --sub:#A3ABB7; --line:#2C3542; --gray-bg:#18202B;
  --card2-bg:#1F2833; --card2-fg:#ECEFF3; --card4-bg:#22344B; --card4-fg:#ECEFF3; --img-panel:#FFFFFF;
  --modal-bg:#1A212C; --input-line:#C9CFD8; --error:#F07A72; color-scheme:dark}}
:root[data-theme="dark"]{
  --blue-text:#7FB4EE; --bg:#121821; --fg:#ECEFF3; --sub:#A3ABB7; --line:#2C3542; --gray-bg:#18202B;
  --card2-bg:#1F2833; --card2-fg:#ECEFF3; --card4-bg:#22344B; --card4-fg:#ECEFF3; --img-panel:#FFFFFF;
  --modal-bg:#1A212C; --input-line:#C9CFD8; --error:#F07A72; color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hh) + env(safe-area-inset-top,0px))}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:16px;line-height:1.7;word-break:keep-all;overflow-wrap:break-word;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--f-head);margin:0;text-wrap:balance;letter-spacing:-.02em}
p{margin:0}
a{color:inherit}
button,input,select,textarea{font-family:var(--f-body)}
:focus-visible{outline:2px solid var(--sky);outline-offset:3px}
.wrap{width:100%;max-width:calc(var(--wrap) + 80px);margin-inline:auto;padding-inline:40px}
.eyebrow{font-family:var(--f-head);font-weight:700;font-size:15px;color:var(--blue-text);letter-spacing:.02em;margin-bottom:12px}
.sec-title{font-size:36px;line-height:1.35;font-weight:700}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 24px;border-radius:4px;border:1px solid transparent;font-family:var(--f-head);font-weight:700;font-size:15px;cursor:pointer;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;white-space:nowrap}
.btn-blue{background:var(--blue);color:#fff}
.btn-blue:hover{background:var(--blue-dark)}
.btn-line{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.btn-line:hover{background:rgba(255,255,255,.1);border-color:#fff}

/* header */
.header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--bg);border-bottom:1px solid transparent;transition:border-color .2s}
.header.scrolled{border-bottom-color:var(--line)}
.header .wrap{height:var(--hh);display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{font-family:var(--f-head);font-size:27px;font-weight:400;text-decoration:none;color:var(--fg);letter-spacing:-.03em;line-height:1}
.logo{display:inline-flex;align-items:center}
.logo-svg{display:block;height:37.4px;width:auto;color:var(--fg);overflow:visible}
.nav{display:flex;gap:40px}
.nav a{font-family:var(--f-head);font-size:16px;font-weight:700;text-decoration:none;color:var(--sub);padding:8px 0;border-bottom:2px solid transparent;transition:color .15s}
.nav a:hover{color:var(--fg)}
.nav a.active{color:var(--fg);font-weight:800;border-bottom-color:var(--blue)}
.header .btn{height:40px;padding:0 18px;font-size:14px}

/* hero */
.hero{position:relative;height:600px;display:flex;align-items:center;color:#fff;background-color:#0B1E3D;background-image:linear-gradient(90deg,rgba(10,25,50,.75) 0%,rgba(10,25,50,.6) 40%,rgba(10,25,50,0) 75%),var(--hero-img);background-size:cover;background-position:center center;overflow:hidden}
.hero-inner{max-width:900px}
.hero-en{font-family:var(--f-head);font-weight:800;font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:var(--sky);margin-bottom:18px}
.hero h1{font-size:52px;line-height:1.25;font-weight:800;letter-spacing:-.03em;max-width:15em}
.hero-sub{margin-top:24px;font-size:20px;line-height:1.6;color:rgba(255,255,255,.88)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}
@media (min-width:1101px){.hero-sub{white-space:nowrap}}

/* services */
.services{background:var(--gray-bg);padding-block:120px}
.svc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:56px}
.svc-head p{color:var(--sub);max-width:26em;font-size:15px}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.card{border-radius:8px;padding:32px 24px 32px;display:flex;flex-direction:column;min-width:0;transition:transform .2s ease}
.card:hover{transform:translateY(-4px)}
.card .img{width:160px;height:160px;max-width:100%;border-radius:8px;background:var(--img-panel);display:flex;align-items:center;justify-content:center;margin-bottom:32px;flex:none}
.card .img img{width:auto;height:auto;max-width:100%;display:block}
.card .num{font-family:var(--f-head);font-weight:700;font-size:13px;opacity:.7;margin-bottom:8px;font-variant-numeric:tabular-nums}
.card h3{font-size:20px;line-height:1.4;font-weight:700;margin-bottom:12px}
.card p{font-size:15px;line-height:1.7}
.c1{background:var(--blue);color:#fff}
.c1 p{color:rgba(255,255,255,.86)}
.c2{background:var(--card2-bg);color:var(--card2-fg);border:1px solid var(--line)}
.c2 p{color:var(--sub)}
.c2 .img{background:var(--gray-bg)}
.c3{background:var(--charcoal);color:#fff}
.c3 p{color:rgba(255,255,255,.8)}
.c4{background:var(--card4-bg);color:var(--card4-fg)}
.c4 p{color:var(--card4-fg);opacity:.8}

/* intro video */
.vid{background:var(--bg);padding-block:120px;border-top:1px solid var(--line)}
.vid-head{margin-bottom:48px}
.player-wrap{max-width:960px;margin-inline:auto}
.player{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#FDF6E6}
.player video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#FDF6E6;cursor:pointer}
.pbar{display:flex;align-items:center;gap:14px;padding:10px 16px 10px 10px;background:#191919}
.pbtn{flex:none;width:36px;height:36px;border:0;border-radius:4px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
.pbtn:hover{background:var(--blue-dark)}
.pbtn svg{display:block}
.ptrack{flex:1;height:4px;border-radius:2px;background:#3A3A3A;overflow:hidden}
.pfill{height:100%;width:0;background:var(--sky)}
.pstate{flex:none;font-family:var(--f-head);font-weight:700;font-size:12px;color:#BDBDBD;min-width:52px;text-align:right}

/* cases */
.cases{background:var(--navy);color:var(--navy-fg);padding-block:120px}
.cases-grid{display:grid;grid-template-columns:minmax(0,380px) minmax(0,720px);justify-content:space-between;gap:64px;align-items:start}
.cases .eyebrow{color:var(--sky)}
.cases .sec-title{color:#fff}
.cases-lead{margin-top:20px;color:var(--navy-sub);font-size:16px}
.channels{margin-top:40px;display:grid;gap:16px}
.channel{border-top:1px solid var(--navy-line);padding-top:16px}
.channel strong{display:block;font-family:var(--f-head);font-weight:800;font-size:16px;margin-bottom:4px}
.channel span{font-size:14px;color:var(--navy-sub)}
.ch-cd{color:var(--sky)}.ch-bn{color:var(--teal)}
.scn-note{font-size:13px;color:var(--navy-sub);margin-bottom:16px}
.scn-screen{position:relative;height:520px;overflow:hidden;-webkit-mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent)}
.scn-track{display:flex;flex-direction:column;gap:16px;animation:scnroll 70s linear infinite}
.scn-screen:hover .scn-track,.scn-screen:focus-within .scn-track{animation-play-state:paused}
@keyframes scnroll{from{transform:translateY(0)}to{transform:translateY(calc(-50% - 8px))}}
.scn-item{background:var(--navy-card);border:1px solid var(--navy-line);border-radius:8px;padding:24px 28px}
.scn-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:var(--navy-sub)}
.chip{font-family:var(--f-head);font-weight:700;padding:3px 10px;border-radius:99px;font-size:12px}
.chip.cd{background:rgba(91,155,255,.15);color:var(--sky)}
.chip.bn{background:rgba(47,196,182,.15);color:var(--teal)}
.scn-item h3{margin-top:12px;font-size:19px;line-height:1.45;font-weight:700;color:#fff}
.scn-item p{margin-top:8px;font-size:15px;line-height:1.75;color:var(--navy-sub)}

/* contact */
.contact{padding-block:120px;background:var(--bg)}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.contact h2{font-size:36px;line-height:1.35;font-weight:700}
.cta-art{background:var(--img-panel);border:1px solid var(--line);border-radius:8px;padding:24px 24px 16px}
.cta-ill{display:block;width:100%;max-width:520px;height:auto;margin-inline:auto}
.contact-lead{margin-top:16px;color:var(--sub);font-size:16px}
.contact .btn{margin-top:32px}
.contact-box{background:var(--gray-bg);border-radius:8px;padding:40px 40px 32px}
.contact-box dl{margin:0;display:grid;gap:24px}
.contact-box dt{font-family:var(--f-head);font-weight:700;font-size:13px;color:var(--sub);margin-bottom:4px}
.contact-box dd{margin:0;font-family:var(--f-head);font-weight:800;font-size:24px;letter-spacing:-.01em;user-select:all}
.contact-box small{display:block;margin-top:24px;font-size:13px;color:var(--sub)}
.todo{color:var(--error);font-size:.75em;font-weight:700;user-select:none;border:1px dashed currentColor;border-radius:3px;padding:0 5px;margin-left:4px;white-space:nowrap}

/* footer */
.footer{background:var(--footer);color:#fff;padding-block:64px;overflow:hidden}
.foot-top{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap}
.foot-mark{font-family:var(--f-head);font-weight:800;font-size:40px;line-height:1;letter-spacing:-.04em;color:#5A5A5A;user-select:none;white-space:nowrap}
.foot-logo{display:block;height:37.4px;width:auto;overflow:visible}
.foot-contact span{display:block;font-family:var(--f-head);font-size:20px;line-height:1.8;user-select:all}
.foot-contact .todo{font-size:12px;color:#E59B95;user-select:none}
.biz{font-size:13px;line-height:1.8;color:var(--footer-sub);text-align:right}
.biz-name{font-weight:700;color:#D6D6D6}
.biz .todo{font-size:inherit;color:#E59B95}
.links{margin-top:12px;font-weight:700;color:#EDEDED}
.links a{text-decoration:none;color:#EDEDED}
.links a:hover{text-decoration:underline}
.links i{font-style:normal;color:#555;margin:0 8px}
.copy{margin-top:8px}
.wordmark{margin:56px 0 -0.18em;font-family:var(--f-head);font-weight:800;font-size:clamp(56px,13vw,160px);line-height:1;letter-spacing:-.04em;color:#262626;user-select:none;white-space:nowrap;text-align:center}
.wordmark b{color:#13325A;font-weight:800}

/* modal */
.dim{position:fixed;inset:0;background:rgba(5,12,24,.6);z-index:100;display:none;align-items:flex-start;justify-content:center;overflow-y:auto;padding:max(40px,env(safe-area-inset-top,0px)) 16px 40px}
.dim.open{display:flex}
.modal{width:560px;max-width:100%;background:var(--modal-bg);color:var(--fg);border-radius:8px;animation:pop .2s ease-out}
@keyframes pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.modal-bar{display:flex;justify-content:space-between;align-items:center;height:56px;padding:0 8px 0 24px;border-bottom:1px solid var(--line);font-family:var(--f-head);font-weight:700;font-size:15px}
.x{width:40px;height:40px;border:0;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;color:var(--fg)}
.x:hover{background:var(--gray-bg)}
.modal-body{padding:40px 48px 48px}
.modal h2{font-size:28px;line-height:1.4;font-weight:800;color:var(--blue-text);margin-bottom:24px}
.guide{background:var(--gray-bg);border-radius:8px;padding:20px 24px;margin-top:28px}
.guide p{color:var(--sub);font-size:15px;line-height:1.7}
.guide strong{display:block;margin-top:8px;font-family:var(--f-head);font-size:20px;font-weight:800;color:var(--fg)}
.field{margin-bottom:24px}
.field label,.field .lab{display:flex;align-items:center;gap:4px;font-size:15px;color:var(--sub);margin-bottom:4px}
.req::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--error);display:inline-block;margin-left:3px;position:relative;top:-5px}
.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1px solid var(--input-line);border-radius:0;height:40px;font-size:16px;background:transparent;color:var(--fg);padding:0}
.field textarea{height:auto;min-height:104px;resize:vertical;padding:8px 0;line-height:1.6}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--sub) 50%),linear-gradient(135deg,var(--sub) 50%,transparent 50%);background-position:calc(100% - 10px) 18px,calc(100% - 5px) 18px;background-size:5px 5px;background-repeat:no-repeat;cursor:pointer}
.field select option{color:#111;background:#fff}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom:2px solid var(--blue)}
.phone{display:flex;align-items:center;gap:8px}
.phone input{width:72px;text-align:center}
.count{text-align:right;font-size:12px;color:var(--sub);margin-top:4px;font-variant-numeric:tabular-nums}
.field .err{display:none;color:var(--error);font-size:13px;margin-top:6px}
.field.invalid .err{display:block}
.field.invalid input,.field.invalid textarea,.field.invalid select{border-bottom-color:var(--error)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:22px;margin:8px 0 6px}
.consent input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--blue);flex:none}
.consent details{margin-top:4px;color:var(--sub);font-size:13px}
.consent summary{cursor:pointer;text-decoration:underline}
.consent-err{display:none;color:var(--error);font-size:13px;margin:0 0 6px 28px}
.consent-wrap.invalid .consent-err{display:block}
.submit-row{margin-top:20px}
.submit-row .btn{width:100%}
.btn[disabled]{opacity:.55;cursor:default}
.form-msg{margin-top:16px;font-size:14px;color:var(--error)}
.done{padding:16px 0 4px}
.done h3{margin:16px 0 8px;font-size:22px;font-weight:800}
.done p{color:var(--sub);margin-bottom:24px}

/* spam guard */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.captcha{margin-top:20px}

/* consent alert */
.alert-dim{position:fixed;inset:0;z-index:140;background:rgba(5,12,24,.45);display:none;align-items:center;justify-content:center;padding:16px}
.alert-dim.open{display:flex}
.alert{width:360px;max-width:100%;background:var(--modal-bg);color:var(--fg);border-radius:8px;padding:28px 24px 20px;animation:pop .18s ease-out}
.alert h3{font-size:18px;font-weight:800;margin-bottom:8px}
.alert p{font-size:15px;color:var(--sub);line-height:1.6}
.alert .btn{width:100%;margin-top:20px}

/* reveal */
.rv{transition:opacity .6s ease,transform .6s ease}
.js .rv.pre{opacity:0;transform:translateY(12px)}

@media (max-width:1100px){
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nav{gap:28px}
  .cases-grid{grid-template-columns:minmax(0,1fr);gap:40px}
  .vid-head{margin-bottom:32px}
  .contact-grid{grid-template-columns:minmax(0,1fr);gap:40px}
  .hero h1{font-size:44px}
}
@media (max-width:860px){.nav{display:none}}
@media (max-width:768px){
  :root{--hh:64px}
  .wrap{padding-inline:20px}
  .logo-svg{height:30.8px}
  .hero{height:480px;background-image:linear-gradient(rgba(10,25,50,.7),rgba(10,25,50,.7)),var(--hero-img);background-position:70% center}
  .hero-en{font-size:12px;margin-bottom:12px}
  .hero h1{font-size:30px}
  .hero-sub{font-size:15px;margin-top:16px}
  .hero-cta{margin-top:28px}
  .services,.cases,.contact,.vid{padding-block:72px}
  .sec-title,.contact h2{font-size:26px}
  .eyebrow{font-size:13px}
  .svc-head{flex-direction:column;align-items:flex-start;margin-bottom:32px;gap:12px}
  .cards{grid-template-columns:minmax(0,1fr);gap:16px}
  .card h3{font-size:19px}
  .card p,.scn-item p{font-size:15px}
  .scn-screen{height:480px}
  .scn-item{padding:20px}
  .scn-item h3{font-size:17px}
  .contact-box{padding:28px 24px}
  .contact-box dd{font-size:20px}
  .biz{text-align:left}
  .modal-body{padding:32px 20px 36px}
  .modal h2{font-size:23px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .scn-track{animation:none}.scn-screen{overflow-y:auto}
  .rv,.card{transition:none}.js .rv.pre{opacity:1;transform:none}
}
