/* ============================================================
   KeduPass — 공유 디자인 시스템 (Figma 1차 디자인 기준)
   https://www.figma.com/design/zdBCW6ktSpBty4SW1N1LqT/kedupass
   ============================================================ */
:root{
  --blue:#0E46FF;        /* 링크·배지·포인트 */
  --btn:#385EDD;         /* CTA 버튼·스텝 라벨 */
  --navy:#283D83;        /* 카드 타이틀 */
  --ink:#121212;         /* 본문 검정 */
  --muted:#676A77;       /* 보조 텍스트 */
  --grey:#7F7F7F;        /* 푸터 텍스트 */
  --card-blue:#E9F0FF;   /* 스텝 카드 */
  --band:#F6F7FA;        /* 회색 밴드 */
  --cream:#F9F5E4;       /* 공식 링크 카드 */
  --hero-from:#F4F7FF;   /* 히어로 그라데이션 시작 */
  --footer:#1F1F1F;
  --line:#ECEEF3;
  --header-h:98px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Pretendard Variable',Pretendard,'Inter',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  color:var(--ink);background:#fff;line-height:1.5;font-size:16px;
  letter-spacing:-0.02em;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}

/* ---------- 언어 분리 (KO | VI) ----------
   쌍이 있는 카피는 <span class="ko">/<span class="vi"> 로 병기하고
   body[data-lang] 이 한쪽만 보여준다. 블록 요소에는 .b 를 함께 지정. */
body[data-lang="vi"] .ko{display:none!important}
body[data-lang="ko"] .vi{display:none!important}
body[data-lang="vi"] .vi.b,body[data-lang="ko"] .ko.b{display:block!important}
.lang-sw{display:inline-flex;border:1px solid var(--line);border-radius:99px;overflow:hidden}
.lang-sw button{
  border:none;background:#fff;padding:8px 13px;cursor:pointer;
  font-family:'Inter',sans-serif;font-weight:700;font-size:12.5px;color:var(--muted);
}
.lang-sw button.on{background:var(--ink);color:#fff}


/* ---------- Header ----------
   · CI(로고)는 좌측, Checklist 버튼은 우측 끝에 고정 — 브라우저 폭과 무관
   · 메뉴는 뷰포트 정중앙 고정 (absolute + left:50%)
   · 스크롤을 내리면 헤더가 위로 숨고, 올리면 다시 나타남 (glovis 방식) */
.site-header{
  position:sticky;top:0;z-index:100;background:#fff;
  border-bottom:1px solid var(--line);height:var(--header-h);
  transition:transform .3s ease;
}
body.hdr-hidden .site-header{transform:translateY(-100%)}
.site-header .inner{
  height:100%;display:flex;align-items:center;justify-content:space-between;
  padding:0 40px;gap:20px;
}
.site-header .logo img{height:20px;width:auto}
.gnav{
  display:flex;gap:26px;align-items:center;
  font-family:'Inter',sans-serif;font-weight:600;font-size:15px;letter-spacing:0;
  position:absolute;left:50%;transform:translateX(-50%);
}
.gnav a{color:var(--ink);white-space:nowrap;padding:8px 2px}
.gnav a:hover{color:var(--blue)}
.gnav a.cur{color:var(--blue)}
.btn-cta{
  background:var(--btn);color:#fff;border:none;cursor:pointer;
  font-family:'Inter',sans-serif;font-weight:700;font-size:16px;letter-spacing:0;
  height:42px;padding:0 24px;border-radius:12px;display:inline-flex;align-items:center;
  transition:background .15s ease;
}
/* #25 오버 시 그림자 표현 */
.btn-cta{transition:background .15s ease,box-shadow .15s ease,transform .15s ease}
.btn-cta:hover{background:var(--blue);box-shadow:0 8px 18px rgba(14,70,255,.28);transform:translateY(-1px)}
.hamb{display:none;border:1px solid var(--line);background:#fff;border-radius:10px;width:40px;height:40px;font-size:18px;cursor:pointer}
@media(max-width:1080px){
  .gnav{display:none}
  .hamb{display:block}
  .site-header .inner{padding:0 20px}
}
/* ---- 모바일 GNB (Figma 283:1990): 로고 + 햄버거만, 높이 68px ---- */
@media(max-width:760px){
  :root{--header-h:68px}
  .site-header .inner{padding:0 24px}
  .site-header .logo img{height:18px}
  .site-header .btn-cta,.site-header .lang-sw{display:none}
  .hamb{border:none;font-size:22px;width:36px;height:36px}
}
/* 모바일 드로어 */
/* 드로어 — Figma 308:66 (풀스크린) */
.mdrawer{position:fixed;inset:0;background:rgba(18,18,18,.5);z-index:200;display:none}
.mdrawer.open{display:block}
.mdrawer .panel{
  position:absolute;top:0;right:0;bottom:0;width:min(420px,100vw);background:#fff;
  padding:0 24px 24px;overflow-y:auto;display:flex;flex-direction:column;
}
.mdrawer .bar{display:flex;align-items:center;justify-content:space-between;height:68px;flex:0 0 auto}
.mdrawer .lang2{display:inline-flex;align-items:center;gap:2px}
.mdrawer .lang2 img{margin-right:8px}
.mdrawer .lang2 button{
  border:none;background:none;padding:4px 5px;cursor:pointer;font-family:inherit;
  font-weight:800;font-size:13px;letter-spacing:.02em;color:#B7BDCB;
}
.mdrawer .lang2 button.on{color:#121212}
.mdrawer .close{border:none;background:none;font-size:22px;cursor:pointer;color:#121212;width:36px;height:36px}
.mdrawer .menu{display:flex;flex-direction:column;align-items:center;margin-top:10px}
.mdrawer .menu a{
  display:block;padding:16px 4px;font-weight:800;font-size:24px;letter-spacing:-0.01em;
  color:#000;text-align:center;
}
.mdrawer .menu a.cur{color:var(--blue)}
.mdrawer .drawer-cta{
  align-self:center;width:auto;min-width:218px;height:44px;margin-top:32px;
  justify-content:center;font-size:15px;
}
.mdrawer .illust{display:block;width:116px;height:126px;margin:auto auto 24px;padding-top:40px;box-sizing:content-box}

/* ---------- Hero (서브페이지 공통) ---------- */
.subhero{position:relative;text-align:center;overflow:hidden}
.subhero::before{
  content:"";position:absolute;left:0;right:0;top:0;height:290px;
  background:linear-gradient(180deg,var(--hero-from) 0%,#fff 100%);z-index:-1;
}
.subhero .badge{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--blue);color:#fff;border-radius:42px;height:40px;padding:0 18px;
  font-weight:900;font-size:18px;margin-top:61px;
}
.subhero h1{
  font-weight:900;font-size:24px;line-height:32px;letter-spacing:-0.02em;
  margin:22px 0 0;color:#000;
}
.subhero .illust{display:block;margin:24px auto 0;width:min(800px,92vw);height:auto}

/* ---------- 섹션 공통 ---------- */
.section-title{
  font-weight:800;font-size:38px;letter-spacing:-0.02em;text-align:center;color:#000;
}
section.block{padding:64px 0 0}
/* 모바일 주요 타이틀 — Figma 모바일 프레임 공통(폭 312 · 32px/45px).
   페이지별 <style> 이 site.css 보다 뒤에 오므로 body 를 붙여 특이도를 올린다. */
@media(max-width:760px){
  body .sec-title,body .sc-title,body .doc-title,body .sup-title,body .page-title{
    font-size:32px;line-height:45px;padding:0 24px;
  }
  /* 히어로 바로 다음 타이틀은 디자인상 일러스트에서 24px 아래(y=447) */
  body .subhero + .sec-title,body .subhero + .sc-title,
  body .subhero + .doc-title,body .subhero + .sup-title{margin-top:24px}
  .section-title{font-size:28px}
  .subhero h1{font-size:20px;line-height:29px;padding:0 20px}
}

/* ---------- 스텝 카드 (5단계 프로세스) ---------- */
.steps{
  display:flex;align-items:center;justify-content:center;gap:6px;
  margin-top:44px;flex-wrap:nowrap;
}
.step-card{
  flex:0 0 208px;height:160px;border-radius:20px;background:var(--card-blue);
  padding:20px 26px;position:relative;display:block;
  transition:transform .15s ease,box-shadow .15s ease;
}
.step-card:hover{transform:translateY(-3px)}
.step-card.active,.step-card:hover{
  background:#fff;border:1px solid #E7ECF3;
  box-shadow:0 14px 34px rgba(40,61,131,.16);
}
.step-card .pill{
  display:inline-block;background:#fff;border-radius:48px;padding:7px 8px 6px;
  font-family:'Inter',sans-serif;font-weight:700;font-size:12px;letter-spacing:-0.02em;color:var(--btn);
  line-height:1;
}
.step-card.active .pill,.step-card:hover .pill{background:var(--card-blue)}
.step-card h3{font-weight:800;font-size:22px;line-height:1.3;letter-spacing:-0.02em;color:var(--navy);margin:12px 0 0}
.step-card .more{
  position:absolute;left:26px;bottom:20px;
  font-weight:500;font-size:14px;letter-spacing:-0.02em;color:var(--blue);text-decoration:underline;
}
.step-card .ic{position:absolute;right:22px;bottom:20px;height:28px;width:auto}
.step-arrow{flex:0 0 24px;width:24px;height:24px}
@media(max-width:1120px){
  .steps{flex-wrap:wrap;gap:14px}
  .step-arrow{display:none}
  .step-card{flex:1 1 180px;max-width:240px}
}
/* ---- 모바일: 스텝카드 풀폭 세로 스택 + 아래 화살표 (Figma 283:2154) ---- */
@media(max-width:560px){
  .steps{flex-direction:column;align-items:stretch;gap:10px;padding:0 24px}
  .step-card{flex:1 1 auto;max-width:none;height:auto;min-height:128px;padding:20px 24px}
  .step-arrow{display:block;width:24px;height:24px;transform:rotate(90deg);align-self:center}
  .subhero h1{display:none} /* 모바일: 히어로 카피 삭제 (Figma 코멘트 08-27, 공통) */
  /* 모바일 히어로 실측: 밴드 290 · 배지 y=112 · 일러스트 y=183(h240) · 타이틀 y=447 */
  .subhero .badge{margin-top:44px}
  /* 일러스트는 800x240 원본 안에 캐릭터가 실제 크기(약 150x165)로 들어 있다.
     폭에 맞춰 줄이면 캐릭터가 작아지므로, 디자인처럼 원본 크기를 유지하고
     좌우를 잘라 낸다(.subhero 가 overflow:hidden). */
  .subhero .illust{
    width:800px;max-width:none;height:240px;
    margin:31px 0 0 50%;transform:translateX(-50%);
  }
  .section-title{font-size:24px;padding:0 24px}
}

/* ---------- 회색 밴드 (3열 정보) ---------- */
.band{
  background:var(--band);border-radius:24px;margin-top:44px;
  display:grid;grid-template-columns:repeat(3,1fr);
  padding:44px 0 40px;
}
.band .cell{
  text-align:center;padding:0 28px;position:relative;
}
.band .cell + .cell::before{
  content:"";position:absolute;left:0;top:8px;bottom:8px;width:1px;background:#E3E6ED;
}
.band .cell .ic{height:62px;width:auto;margin:0 auto 30px}
.band .cell h3{font-weight:800;font-size:22px;letter-spacing:-0.02em;color:#000}
.band .cell p{font-weight:500;font-size:16px;line-height:22px;letter-spacing:-0.02em;color:var(--muted);margin-top:11px}
@media(max-width:860px){
  .band{grid-template-columns:1fr;gap:36px}
  .band .cell + .cell::before{display:none}
}

/* ---------- 공식 링크 카드 ---------- */
.linkcards{display:grid;grid-template-columns:repeat(3,1fr);gap:42px;margin-top:77px}
.linkcard{
  background:var(--cream);border-radius:18px;height:117px;padding:29px 30px;
  position:relative;display:block;transition:transform .15s ease,box-shadow .15s ease;
}
.linkcard:hover{transform:translateY(-6px);box-shadow:0 18px 36px rgba(0,0,0,.12)}
.linkcard h3{font-weight:700;font-size:22px;letter-spacing:-0.02em;color:#000}
.linkcard .url{
  display:inline-block;margin-top:8px;
  font-weight:500;font-size:16px;line-height:22px;letter-spacing:-0.02em;color:var(--blue);text-decoration:underline;
}
.linkcard .ic{position:absolute;right:26px;top:50%;transform:translateY(-50%);width:40px;height:40px}
@media(max-width:960px){.linkcards{grid-template-columns:1fr;gap:16px}}

/* ---------- Footer ---------- */
.site-footer{background:var(--footer);color:var(--grey);margin-top:96px;padding:26px 0 40px}
.site-footer .top-row{
  display:flex;align-items:center;gap:24px;padding:0 40px 22px;
}
.site-footer .top-row .logo img{height:20px;width:auto}
.site-footer .flinks{display:flex;align-items:center;gap:14px;font-weight:600;font-size:14px;margin-left:12px}
.site-footer .flinks a{color:var(--grey)}
.site-footer .flinks a.hl,.site-footer .flinks a:hover{color:#fff}
.site-footer .flinks .bar{width:1px;height:13px;background:#4a4a4a}
.site-footer .top-btn{
  margin-left:auto;border:none;background:none;cursor:pointer;color:#fff;
  font-size:12px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:4px;
}
.site-footer .top-btn img{height:22px;width:auto}
.site-footer .divider{height:1px;background:#3A3A3A}
.site-footer .info-row{
  display:flex;justify-content:space-between;align-items:flex-start;gap:30px;
  padding:33px 40px 0;font-size:14px;line-height:20px;font-weight:600;
}
.site-footer .info-row .txt span{white-space:nowrap}
.site-footer .info-row .txt .bar{display:inline-block;width:1px;height:13px;background:#4a4a4a;margin:0 12px;vertical-align:-1px}
.site-footer .related{position:relative;flex:0 0 180px}
.site-footer .related button{
  width:180px;height:38px;background:#343434;border:none;color:#fff;cursor:pointer;
  font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:space-between;
  padding:0 15px;
}
.site-footer .related .menu{
  display:none;position:absolute;bottom:100%;left:0;width:180px;background:#343434;
  border-bottom:1px solid #4a4a4a;
}
.site-footer .related.open .menu{display:block}
.site-footer .related .menu a{display:block;padding:9px 15px;font-size:13px;color:#ccc}
.site-footer .related .menu a:hover{background:#3e3e3e;color:#fff}
.site-footer .bottom-row{
  display:flex;flex-direction:column;align-items:flex-start;gap:11px;padding:44px 40px 0;
}
/* CI 워드마크 — Figma 원본에 opacity .49636 이 포함되어 있어 추가 투명도 없음 */
.site-footer .bottom-row img{height:28px;width:auto}
.site-footer .bottom-row p{font-size:14px;line-height:16px}
@media(max-width:860px){
  .site-footer .top-row{flex-wrap:wrap;padding:0 24px 20px;gap:14px}
  .site-footer .info-row{flex-direction:column;padding:22px 24px 0}
  .site-footer .info-row .txt span{white-space:normal}
  .site-footer .bottom-row{padding:30px 24px 0}
}
/* ---- 모바일 푸터 (Figma 283:3004): 회사정보 한 항목당 한 줄, 관련사이트 풀폭 ---- */
@media(max-width:560px){
  .site-footer .flinks{gap:10px;font-size:13px}
  .site-footer .info-row .txt span{display:block;margin-bottom:6px}
  .site-footer .info-row .txt span > span{display:inline;margin:0}
  .site-footer .info-row .txt .bar{display:none}
  .site-footer .related{width:100%;flex:none}
  .site-footer .related button,.site-footer .related .menu{width:100%}
}

@media (prefers-reduced-motion: reduce){
  .site-header{transition:none}
}
