/* ============================================================
   KM Laps — 아카이브 홈 디자인 시스템 (목표 시안 기준)
   km-theme.css(토큰) 이후 로드. 색/로고는 토큰으로 화이트라벨 대응.
   ============================================================ */
:root{
  --km-navy:      #0a1b3d;
  --km-navy-2:    #13315c;
  --km-bg-soft:   #eef4ff;   /* 옅은 블루 섹션 배경 */
  --km-bg-soft2:  #f5f9ff;
  --km-star:      #f6b73c;
  --km-badge-best:#00489c;
  --km-badge-new: #f97316;
  --km-file-pdf:  #e23b3b;
  --km-file-doc:  #2b6cb0;
  --km-file-ppt:  #d97706;
  --km-file-xls:  #15803d;
  --km-maxw:      1180px;
}

/* ---- 아이콘(Lucide 인라인) ---- */
.kmIco{width:1em;height:1em;display:inline-block;vertical-align:-0.12em;stroke-width:2;}
.kmCatItem .ic .kmIco{width:24px;height:24px;}
.kmStats .it .ic .kmIco{width:26px;height:26px;}
.kmSearchTabs a .ic .kmIco{width:20px;height:20px;}
.kmMy .av .kmIco,.kmIconBtn .kmIco{width:18px;height:18px;}

/* ---- 공통 레이아웃 ---- */
.kmHome{font-family:var(--km-font);color:var(--km-ink);background:#fff;}
.kmHome *{box-sizing:border-box;}
.kmWrap{max-width:var(--km-maxw);margin:0 auto;padding:0 20px;}
.kmSection{padding:44px 0;}
.kmSection.soft{background:var(--km-bg-soft2);}
.kmSecHead{display:flex;align-items:center;justify-content:space-between;margin:0 0 20px;}
.kmSecHead h2{font-size:22px;font-weight:800;margin:0;letter-spacing:-.5px;}
.kmMore{font-size:13px;color:var(--km-ink-soft);text-decoration:none;display:inline-flex;align-items:center;gap:3px;}
.kmMore:hover{color:var(--km-primary);}
.kmMore::after{content:"›";font-size:16px;line-height:1;}

/* ---- 상단 네비 ---- */
.kmNav{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid var(--km-line);}
.kmNav .kmWrap{display:flex;align-items:center;height:68px;gap:20px;}
.kmLogo{display:flex;align-items:center;font-size:24px;font-weight:800;letter-spacing:-1px;text-decoration:none;white-space:nowrap;}
.kmLogo .a{color:var(--km-navy);} .kmLogo .b{color:var(--km-primary);margin:0 1px;} .kmLogo .c{color:var(--km-ink);}
.kmMenu{display:flex;gap:22px;margin:0;padding:0;list-style:none;flex:1;min-width:0;}
.kmMenu a{color:var(--km-ink);font-weight:700;font-size:14.5px;text-decoration:none;padding:8px 0;position:relative;white-space:nowrap;}
.kmMenu a:hover{color:var(--km-primary);}
.kmNavRight{display:flex;align-items:center;gap:14px;}
.kmSearchTop{display:flex;align-items:center;background:#f1f5fb;border:1px solid var(--km-line);border-radius:999px;padding:7px 14px;width:180px;flex:none;}
.kmSearchTop input{border:none;background:none;outline:none;padding:0;flex:1;font-size:13px;}
.kmSearchTop button{border:none;background:none;cursor:pointer;color:var(--km-muted);}
.kmIconBtn{position:relative;background:none;border:none;cursor:pointer;color:var(--km-ink-soft);font-size:18px;}
.kmIconBtn .dot{position:absolute;top:-4px;right:-6px;background:var(--km-primary);color:#fff;font-size:10px;font-weight:700;border-radius:999px;padding:1px 5px;}
.kmMy{display:flex;align-items:center;gap:7px;color:var(--km-ink);font-weight:700;font-size:14px;text-decoration:none;}
.kmMy .av{width:30px;height:30px;border-radius:50%;background:var(--km-primary-light);display:flex;align-items:center;justify-content:center;color:var(--km-primary-dark);}

/* ---- 히어로 (라이트 기본) ---- */
.kmHero{background:linear-gradient(180deg,var(--km-bg-soft) 0%,#fff 100%);overflow:hidden;}
.kmHero .kmWrap{display:flex;align-items:center;gap:30px;padding-top:54px;padding-bottom:54px;}
.kmHeroText{flex:1;min-width:0;}
.kmHeroText h1{font-size:42px;line-height:1.25;font-weight:800;margin:0 0 18px;letter-spacing:-1px;}
.kmHeroText h1 .hl{color:var(--km-primary);}
.kmHeroText p{font-size:16px;color:var(--km-ink-soft);margin:0 0 26px;line-height:1.6;}
.kmHeroBtns{display:flex;gap:12px;flex-wrap:wrap;}
.kmHeroBtns .km-btn{font-size:15px;padding:13px 24px;border-radius:10px;}
.kmHeroArt{flex:1;display:flex;align-items:center;justify-content:center;min-height:240px;}
.kmHeroArt img{max-width:100%;height:auto;}
.kmHeroArt .ph{position:relative;width:100%;height:280px;border-radius:20px;overflow:hidden;background:
   radial-gradient(160px 160px at 72% 30%, rgba(37,99,235,.16), transparent),
   linear-gradient(135deg,#dce7ff,#eef4ff);display:flex;align-items:center;justify-content:center;}
.kmHeroArt .ph .kmIco{width:104px;height:104px;color:var(--km-primary);opacity:.55;stroke-width:1.5;}
.kmHeroArt .ph::before,.kmHeroArt .ph::after{content:"";position:absolute;border-radius:14px;background:#fff;box-shadow:var(--km-shadow);}
.kmHeroArt .ph::before{width:120px;height:74px;top:34px;left:34px;transform:rotate(-8deg);opacity:.92;}
.kmHeroArt .ph::after{width:96px;height:62px;bottom:36px;right:40px;transform:rotate(7deg);opacity:.92;background:linear-gradient(135deg,#eaf1ff,#fff);}
/* 히어로 위 미니 통계 (시안 2의 카드) */
.kmHeroStats{display:flex;gap:8px;margin-top:26px;background:#fff;border:1px solid var(--km-line);border-radius:14px;padding:14px 8px;box-shadow:var(--km-shadow-sm);max-width:520px;}
.kmHeroStats .it{flex:1;text-align:center;padding:4px 6px;border-right:1px solid var(--km-line);}
.kmHeroStats .it:last-child{border-right:none;}
.kmHeroStats .lb{font-size:12px;color:var(--km-ink-soft);display:block;margin-bottom:4px;}
.kmHeroStats .vl{font-size:18px;font-weight:800;color:var(--km-primary);}

/* 다크 히어로 테마(옵션): body.kmHeroDark 일 때 */
body.kmHeroDark .kmHero{background:linear-gradient(135deg,var(--km-navy) 0%,var(--km-navy-2) 100%);}
body.kmHeroDark .kmHeroText h1{color:#fff;}
body.kmHeroDark .kmHeroText p{color:#c7d3e6;}
body.kmHeroDark .kmHeroText .eyebrow{color:#7fb0ff;}

/* ---- 검색 패널 ---- */
.kmSearchPanel{background:#fff;border:1px solid var(--km-line);border-radius:16px;box-shadow:var(--km-shadow);padding:24px 26px;margin-top:-34px;position:relative;z-index:5;}
.kmSearchPanel .row1{display:flex;align-items:center;gap:18px;}
.kmSearchPanel .q{font-size:18px;font-weight:800;white-space:nowrap;}
.kmSearchBox{flex:1;display:flex;align-items:center;border:1.5px solid var(--km-line);border-radius:12px;overflow:hidden;}
.kmSearchBox input{flex:1;border:none;outline:none;padding:14px 16px;font-size:15px;}
.kmSearchBox button{border:none;background:var(--km-primary);color:#fff;padding:0 20px;align-self:stretch;cursor:pointer;font-size:17px;}
.kmRecs{display:flex;flex-direction:column;gap:7px;min-width:230px;}
.kmRecs .lb{font-size:13px;color:var(--km-ink-soft);font-weight:700;}
.kmRecs .tags{display:flex;flex-wrap:wrap;gap:6px;}
.kmTag{font-size:12px;color:var(--km-primary-dark);background:var(--km-primary-light);border-radius:999px;padding:4px 10px;text-decoration:none;font-weight:600;}
.kmTag:hover{background:var(--km-primary);color:#fff;}
.kmSearchTabs{display:flex;gap:24px;margin-top:18px;border-top:1px solid var(--km-line);padding-top:14px;}
.kmSearchTabs a{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--km-ink-soft);font-size:13px;text-decoration:none;font-weight:600;}
.kmSearchTabs a.on,.kmSearchTabs a:hover{color:var(--km-primary);}
.kmSearchTabs a .ic{font-size:18px;}

/* ---- 과정 카드 ---- */
.kmCourseRow{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;}
.kmCourseCard{background:#fff;border:1px solid var(--km-line);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:.15s;}
.kmCourseCard:hover{box-shadow:var(--km-shadow);transform:translateY(-3px);}
.kmCourseCard .thumb{position:relative;aspect-ratio:16/10;background:#e8eefc center/cover no-repeat;display:flex;align-items:center;justify-content:center;color:#9fb3d9;font-weight:700;}
.kmCourseCard .badge{position:absolute;top:10px;left:10px;font-size:11px;font-weight:800;color:#fff;border-radius:6px;padding:3px 8px;}
.kmCourseCard .badge.best{background:var(--km-badge-best);}
.kmCourseCard .badge.new{background:var(--km-badge-new);}
.kmCourseCard .body{padding:14px;display:flex;flex-direction:column;gap:8px;flex:1;}
.kmCourseCard .cName{font-size:15px;font-weight:700;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:42px;}
.kmCourseCard .meta{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--km-ink-soft);margin-top:auto;}
.kmStar{color:var(--km-star);font-weight:800;}
.kmStar .cnt{color:var(--km-muted);font-weight:600;margin-left:2px;}

/* 캐러셀 화살표 */
.kmCarousel{position:relative;}
.kmArrow{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;background:#fff;border:1px solid var(--km-line);box-shadow:var(--km-shadow-sm);cursor:pointer;font-size:18px;color:var(--km-ink-soft);z-index:3;display:flex;align-items:center;justify-content:center;}
.kmArrow.prev{left:-19px;} .kmArrow.next{right:-19px;}

/* ---- 아카이브(자료) 카드 ---- */
.kmArchiveRow{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.kmArchiveCard{background:#fff;border:1px solid var(--km-line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:10px;text-decoration:none;color:inherit;transition:.15s;}
.kmArchiveCard:hover{box-shadow:var(--km-shadow);border-color:#cfe0ff;}
.kmArchiveCard .top{display:flex;align-items:center;justify-content:space-between;}
.kmFileTag{font-size:11px;font-weight:700;border-radius:5px;padding:3px 8px;}
.kmFileTag.doc{background:#e7f0fb;color:var(--km-file-doc);}
.kmFileTag.pdf{background:#fdeaea;color:var(--km-file-pdf);}
.kmFileTag.ppt{background:#fdf0e0;color:var(--km-file-ppt);}
.kmFileTag.xls{background:#e7f5ec;color:var(--km-file-xls);}
.kmFileTag.vid{background:#ede9fe;color:#6d28d9;}
.kmFileIco{width:34px;height:40px;border-radius:5px;background:#f1f5fb;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:var(--km-muted);}
.kmArchiveCard .aName{font-size:15px;font-weight:700;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:42px;}
.kmArchiveCard .aMeta{font-size:12px;color:var(--km-muted);display:flex;justify-content:space-between;}

/* ---- 주제별(아이콘 그리드) ---- */
.kmCatGrid{display:grid;grid-template-columns:repeat(8,1fr);gap:14px;}
.kmCatItem{background:#fff;border:1px solid var(--km-line);border-radius:12px;padding:18px 8px;text-align:center;text-decoration:none;color:var(--km-ink);transition:.15s;}
.kmCatItem:hover{border-color:var(--km-primary);box-shadow:var(--km-shadow-sm);transform:translateY(-2px);}
.kmCatItem .ic{width:46px;height:46px;margin:0 auto 8px;border-radius:12px;background:var(--km-bg-soft);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--km-primary);}
.kmCatItem .nm{font-size:13px;font-weight:700;}

/* ---- 학습 로드맵 ---- */
.kmRoadRow{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.kmRoadCard{background:#fff;border:1px solid var(--km-line);border-radius:14px;padding:22px;}
.kmRoadCard h3{margin:0 0 6px;font-size:17px;font-weight:800;color:var(--km-primary-dark);}
.kmRoadCard p{margin:0 0 18px;font-size:13px;color:var(--km-ink-soft);line-height:1.5;min-height:38px;}
.kmRoadSteps{display:flex;align-items:center;justify-content:space-between;position:relative;}
.kmRoadSteps::before{content:"";position:absolute;top:9px;left:8%;right:8%;height:2px;background:var(--km-line);}
.kmRoadSteps .st{display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;z-index:1;}
.kmRoadSteps .st .dot{width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--km-primary);}
.kmRoadSteps .st .nm{font-size:12px;color:var(--km-ink-soft);font-weight:600;}

/* ---- 통계 바 ---- */
.kmStats{background:linear-gradient(135deg,var(--km-navy),var(--km-navy-2));border-radius:16px;padding:26px 20px;display:grid;grid-template-columns:repeat(4,1fr);}
.kmStats .it{display:flex;align-items:center;gap:14px;justify-content:center;color:#fff;border-right:1px solid rgba(255,255,255,.12);}
.kmStats .it:last-child{border-right:none;}
.kmStats .it .ic{font-size:24px;opacity:.85;}
.kmStats .it .lb{font-size:13px;color:#aebfdb;display:block;margin-bottom:2px;}
.kmStats .it .vl{font-size:24px;font-weight:800;}
.kmStats .it .vl small{font-size:14px;font-weight:600;margin-left:2px;}

/* ---- 공지/커뮤니티 + 이벤트 ---- */
.kmBottomGrid{display:grid;grid-template-columns:1fr 1fr 0.8fr;gap:18px;}
.kmPanel{background:#fff;border:1px solid var(--km-line);border-radius:14px;padding:20px;}
.kmTabs{display:flex;gap:8px;margin-bottom:12px;}
.kmTabs button{border:none;background:#f1f5fb;color:var(--km-ink-soft);font-weight:700;font-size:12px;border-radius:999px;padding:5px 12px;cursor:pointer;}
.kmTabs button.on{background:var(--km-primary);color:#fff;}
.kmList{list-style:none;margin:0;padding:0;}
.kmList li{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #f1f4f8;font-size:13px;}
.kmList li:last-child{border-bottom:none;}
.kmList li a{color:var(--km-ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kmList li a:hover{color:var(--km-primary);}
.kmList li .dt{color:var(--km-muted);font-size:12px;white-space:nowrap;}
.kmEvent{background:linear-gradient(135deg,#e0ecff,#eef4ff);border:1px solid #d6e4ff;border-radius:14px;padding:24px;display:flex;flex-direction:column;justify-content:center;}
.kmEvent h3{margin:0 0 6px;font-size:18px;font-weight:800;color:var(--km-navy);}
.kmEvent p{margin:0 0 16px;font-size:13px;color:var(--km-ink-soft);}

/* ---- 목록 페이지 ---- */
.kmPageHead{background:linear-gradient(180deg,var(--km-bg-soft),#fff);padding:38px 0 26px;}
.kmPageHead .bc{font-size:12px;color:var(--km-muted);margin-bottom:8px;}
.kmPageHead h1{font-size:28px;font-weight:800;margin:0 0 6px;letter-spacing:-.5px;}
.kmPageHead p{color:var(--km-ink-soft);margin:0;font-size:14px;}
.kmFilterBar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:24px 0;padding-bottom:16px;border-bottom:1px solid var(--km-line);}
.kmChips{display:flex;gap:8px;flex-wrap:wrap;flex:1;}
.kmChip{font-size:13px;font-weight:600;color:var(--km-ink-soft);background:#fff;border:1px solid var(--km-line);border-radius:999px;padding:7px 14px;text-decoration:none;}
.kmChip:hover{border-color:var(--km-primary);color:var(--km-primary);}
.kmChip.on{background:var(--km-primary);border-color:var(--km-primary);color:#fff;}
.kmFilterBar .right{display:flex;gap:10px;align-items:center;}
.kmFilterBar select{border:1px solid var(--km-line);border-radius:8px;padding:8px 12px;font-size:13px;}
.kmCount{font-size:13px;color:var(--km-ink-soft);margin-bottom:16px;}
.kmCount b{color:var(--km-primary);}
.kmCourseGrid4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.kmEnrollBtn{margin-top:6px;width:100%;font-size:13px;padding:9px;border-radius:8px;}
.kmCourseCard .pName{font-size:12px;color:var(--km-muted);}
.kmPager{display:flex;justify-content:center;gap:6px;margin:36px 0 10px;}
.kmPager a,.kmPager span{min-width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--km-line);border-radius:8px;text-decoration:none;color:var(--km-ink-soft);font-size:13px;background:#fff;}
.kmPager a:hover{border-color:var(--km-primary);color:var(--km-primary);}
.kmPager .on{background:var(--km-primary);border-color:var(--km-primary);color:#fff;}
.kmEmpty{text-align:center;padding:60px 0;color:var(--km-muted);}

/* ---- 과정 상세 ---- */
.kmDetailHero{background:linear-gradient(180deg,var(--km-bg-soft),#fff);padding:34px 0;}
.kmDetailHero .kmWrap{display:flex;gap:30px;align-items:stretch;}
.kmDetailThumb{width:380px;flex-shrink:0;border-radius:14px;background:#e8eefc center/cover no-repeat;min-height:230px;border:1px solid var(--km-line);}
.kmDetailInfo{flex:1;display:flex;flex-direction:column;}
.kmDetailInfo .cat{display:inline-block;font-size:12px;font-weight:700;color:var(--km-primary-dark);background:var(--km-primary-light);border-radius:999px;padding:4px 12px;width:fit-content;margin-bottom:12px;}
.kmDetailInfo h1{font-size:26px;font-weight:800;margin:0 0 12px;line-height:1.35;letter-spacing:-.5px;}
.kmDetailMeta{display:flex;gap:18px;flex-wrap:wrap;color:var(--km-ink-soft);font-size:14px;margin-bottom:18px;}
.kmDetailMeta .it{display:flex;align-items:center;gap:6px;}
.kmDetailMeta .it .kmIco{width:16px;height:16px;color:var(--km-primary);}
.kmDetailBuy{margin-top:auto;display:flex;align-items:center;gap:16px;padding-top:18px;border-top:1px solid var(--km-line);}
.kmDetailBuy .price{font-size:24px;font-weight:800;color:var(--km-navy);}
.kmDetailBuy .free{font-size:22px;font-weight:800;color:var(--km-success);}
.kmDetailBuy .km-btn{font-size:16px;padding:13px 32px;border-radius:10px;}
.kmDetailBody{display:grid;grid-template-columns:1fr 300px;gap:30px;padding:40px 0;}
.kmDetailMain h2{font-size:19px;font-weight:800;margin:0 0 14px;padding-bottom:10px;border-bottom:2px solid var(--km-ink);}
.kmDetailMain .introTxt{font-size:15px;line-height:1.8;color:var(--km-ink-soft);white-space:pre-line;margin-bottom:36px;}
.kmCurri{list-style:none;margin:0 0 36px;padding:0;border:1px solid var(--km-line);border-radius:12px;overflow:hidden;}
.kmCurri li{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--km-line);font-size:14px;}
.kmCurri li:last-child{border-bottom:none;}
.kmCurri li:nth-child(even){background:#f9fbfe;}
.kmCurri li .no{width:26px;height:26px;flex-shrink:0;border-radius:50%;background:var(--km-primary-light);color:var(--km-primary-dark);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;}
.kmDetailSide{position:sticky;top:88px;align-self:start;}
.kmSideCard{background:#fff;border:1px solid var(--km-line);border-radius:14px;padding:20px;box-shadow:var(--km-shadow-sm);}
.kmSideCard .row{display:flex;justify-content:space-between;font-size:13px;padding:8px 0;border-bottom:1px solid #f1f4f8;}
.kmSideCard .row:last-of-type{border-bottom:none;}
.kmSideCard .row .k{color:var(--km-ink-soft);} .kmSideCard .row .v{font-weight:700;}

/* ---- 인증(로그인/회원) ---- */
.kmAuth{min-height:calc(100vh - 68px);background:linear-gradient(135deg,var(--km-bg-soft),#fff);display:flex;align-items:center;justify-content:center;padding:40px 20px;}
.kmAuthCard{display:flex;width:100%;max-width:860px;background:#fff;border:1px solid var(--km-line);border-radius:20px;box-shadow:var(--km-shadow-lg);overflow:hidden;}
.kmAuthArt{flex:1;background:linear-gradient(150deg,var(--km-navy),var(--km-navy-2));color:#fff;padding:44px 36px;display:flex;flex-direction:column;justify-content:center;background-size:cover;background-position:center;}
.kmAuthArt h2{font-size:26px;font-weight:800;margin:0 0 12px;line-height:1.35;}
.kmAuthArt p{font-size:14px;opacity:.85;line-height:1.6;margin:0;}
.kmAuthForm{flex:1;padding:44px 40px;display:flex;flex-direction:column;justify-content:center;}
.kmAuthForm .logo{font-size:26px;font-weight:800;color:var(--km-primary);letter-spacing:-1px;margin-bottom:6px;}
.kmAuthForm h1{font-size:20px;font-weight:800;margin:0 0 24px;}
.kmField{margin-bottom:14px;}
.kmField label{display:block;font-size:13px;font-weight:600;color:var(--km-ink-soft);margin-bottom:6px;}
.kmField input{width:100%;border:1.5px solid var(--km-line);border-radius:10px;padding:12px 14px;font-size:15px;}
.kmField input:focus{border-color:var(--km-primary);box-shadow:0 0 0 3px var(--km-primary-light);outline:none;}
.kmAuthBtn{width:100%;font-size:16px;padding:13px;border-radius:10px;margin-top:8px;}
.kmAuthLinks{display:flex;justify-content:center;gap:14px;margin-top:18px;font-size:13px;color:var(--km-ink-soft);}
.kmAuthLinks a{color:var(--km-ink-soft);text-decoration:none;}
.kmAuthLinks a:hover{color:var(--km-primary);}
.kmAuthChk{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--km-ink-soft);margin:4px 0 8px;}

/* ---- 마이페이지 ---- */
.kmMyWrap{background:var(--km-bg-soft2);min-height:60vh;padding:34px 0 50px;}
.kmMyGrid{display:grid;grid-template-columns:240px 1fr;gap:26px;}
.kmMySide{background:#fff;border:1px solid var(--km-line);border-radius:14px;padding:8px;align-self:start;position:sticky;top:88px;}
.kmMyProfile{padding:20px 16px;text-align:center;border-bottom:1px solid var(--km-line);margin-bottom:8px;}
.kmMyProfile .av{width:60px;height:60px;border-radius:50%;background:var(--km-primary-light);color:var(--km-primary-dark);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;margin:0 auto 10px;}
.kmMyProfile .nm{font-weight:800;font-size:16px;} .kmMyProfile .lv{font-size:12px;color:var(--km-muted);margin-top:2px;}
.kmMyNav{list-style:none;margin:0;padding:0;}
.kmMyNav a{display:flex;align-items:center;gap:10px;padding:11px 14px;color:var(--km-ink);text-decoration:none;border-radius:8px;font-size:14px;font-weight:600;}
.kmMyNav a .kmIco{width:18px;height:18px;color:var(--km-ink-soft);}
.kmMyNav a:hover,.kmMyNav a.on{background:var(--km-primary-light);color:var(--km-primary-dark);}
.kmMyNav a.on .kmIco{color:var(--km-primary-dark);}
.kmMyMain{}
.kmMyHead{margin-bottom:20px;}
.kmMyHead h1{font-size:24px;font-weight:800;margin:0 0 4px;}
.kmMyHead p{color:var(--km-ink-soft);margin:0;font-size:14px;}
.kmStatCards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px;}
.kmStatCard{background:#fff;border:1px solid var(--km-line);border-radius:14px;padding:20px;display:flex;align-items:center;gap:14px;}
.kmStatCard .ic{width:44px;height:44px;border-radius:12px;background:var(--km-bg-soft);display:flex;align-items:center;justify-content:center;color:var(--km-primary);}
.kmStatCard .ic .kmIco{width:22px;height:22px;}
.kmStatCard .lb{font-size:12px;color:var(--km-ink-soft);} .kmStatCard .vl{font-size:22px;font-weight:800;}
.kmMyList{background:#fff;border:1px solid var(--km-line);border-radius:14px;overflow:hidden;}
.kmMyList .hd{padding:16px 20px;font-weight:800;border-bottom:1px solid var(--km-line);display:flex;justify-content:space-between;align-items:center;}
.kmStudyRow{display:flex;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid #f1f4f8;}
.kmStudyRow:last-child{border-bottom:none;}
.kmStudyRow .th{width:84px;height:54px;border-radius:8px;background:#e8eefc center/cover no-repeat;flex-shrink:0;}
.kmStudyRow .info{flex:1;min-width:0;}
.kmStudyRow .nm{font-weight:700;font-size:14px;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kmProg{height:7px;background:#eef2f7;border-radius:999px;overflow:hidden;}
.kmProg span{display:block;height:100%;background:var(--km-primary);}
.kmStudyRow .pct{font-size:13px;font-weight:700;color:var(--km-primary);white-space:nowrap;}
.kmStudyRow .st{font-size:12px;color:var(--km-muted);margin-top:3px;}

/* ---- 게시판 ---- */
.kmBoardTabs{display:flex;gap:8px;margin:0 0 18px;}
.kmBoardTabs a{font-size:14px;font-weight:700;color:var(--km-ink-soft);background:#fff;border:1px solid var(--km-line);border-radius:999px;padding:8px 18px;text-decoration:none;}
.kmBoardTabs a.on,.kmBoardTabs a:hover{background:var(--km-primary);border-color:var(--km-primary);color:#fff;}
.kmBoardTop{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.kmBoardSearch{display:flex;gap:8px;}
.kmBoardSearch input{border:1px solid var(--km-line);border-radius:8px;padding:9px 13px;font-size:14px;min-width:220px;}
.kmTable{width:100%;border-collapse:collapse;background:#fff;border-top:2px solid var(--km-ink);border-radius:0 0 12px 12px;overflow:hidden;}
.kmTable th{font-size:13px;font-weight:700;color:var(--km-ink-soft);padding:14px 12px;border-bottom:1px solid var(--km-line);background:#f8fafc;}
.kmTable td{font-size:14px;padding:15px 12px;border-bottom:1px solid #f1f4f8;text-align:center;color:var(--km-ink-soft);}
.kmTable td.subj{text-align:left;}
.kmTable td.subj a{color:var(--km-ink);text-decoration:none;font-weight:600;}
.kmTable td.subj a:hover{color:var(--km-primary);}
.kmTable tr:hover td{background:#fafcff;}
.kmTable .pin{background:#fff7ed;}
.kmBadgeNotice{font-size:11px;font-weight:800;color:var(--km-badge-new);background:#fff1e6;border-radius:5px;padding:2px 7px;margin-right:6px;}
.kmLock{color:var(--km-muted);}
/* 상세 */
.kmView{background:#fff;border:1px solid var(--km-line);border-top:2px solid var(--km-ink);border-radius:0 0 12px 12px;}
.kmViewHd{padding:24px 26px;border-bottom:1px solid var(--km-line);}
.kmViewHd h1{font-size:22px;font-weight:800;margin:0 0 12px;line-height:1.4;}
.kmViewMeta{display:flex;gap:18px;font-size:13px;color:var(--km-muted);}
.kmViewBody{padding:30px 26px;min-height:200px;font-size:15px;line-height:1.8;color:var(--km-ink);}
.kmViewBody img{max-width:100%;height:auto;}
.kmViewFiles{padding:16px 26px;border-top:1px solid var(--km-line);background:#f8fafc;font-size:13px;}
.kmViewFiles a{color:var(--km-primary);text-decoration:none;display:inline-flex;align-items:center;gap:6px;}
.kmViewNav{margin-top:14px;border:1px solid var(--km-line);border-radius:12px;overflow:hidden;}
.kmViewNav a{display:flex;gap:14px;padding:14px 20px;text-decoration:none;color:var(--km-ink-soft);font-size:14px;border-bottom:1px solid #f1f4f8;}
.kmViewNav a:last-child{border-bottom:none;} .kmViewNav a:hover{background:#fafcff;color:var(--km-primary);}
.kmViewNav a .dir{font-weight:700;color:var(--km-muted);min-width:50px;}

/* ---- 고객지원 허브 ---- */
.kmSupportTop{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:26px 0;}
.kmContactCard{background:#fff;border:1px solid var(--km-line);border-radius:14px;padding:24px;text-align:center;}
.kmContactCard .ic{width:52px;height:52px;margin:0 auto 12px;border-radius:14px;background:var(--km-bg-soft);display:flex;align-items:center;justify-content:center;color:var(--km-primary);}
.kmContactCard .ic .kmIco{width:26px;height:26px;}
.kmContactCard .lb{font-size:13px;color:var(--km-ink-soft);margin-bottom:4px;}
.kmContactCard .vl{font-size:18px;font-weight:800;color:var(--km-navy);}
.kmContactCard .sub{font-size:12px;color:var(--km-muted);margin-top:4px;}
.kmQuickLinks{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:8px 0 30px;}
.kmQuickLink{background:#fff;border:1px solid var(--km-line);border-radius:12px;padding:20px;text-decoration:none;color:var(--km-ink);display:flex;align-items:center;gap:14px;transition:.15s;}
.kmQuickLink:hover{border-color:var(--km-primary);box-shadow:var(--km-shadow-sm);}
.kmQuickLink .ic{width:42px;height:42px;border-radius:11px;background:var(--km-primary-light);display:flex;align-items:center;justify-content:center;color:var(--km-primary-dark);}
.kmQuickLink .ic .kmIco{width:20px;height:20px;}
.kmQuickLink .t{font-weight:700;font-size:15px;} .kmQuickLink .d{font-size:12px;color:var(--km-muted);}
.kmFaq{border:1px solid var(--km-line);border-radius:14px;overflow:hidden;background:#fff;}
.kmFaqItem{border-bottom:1px solid var(--km-line);}
.kmFaqItem:last-child{border-bottom:none;}
.kmFaqQ{width:100%;text-align:left;background:none;border:none;padding:18px 22px;font-size:15px;font-weight:700;color:var(--km-ink);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.kmFaqQ .qm{color:var(--km-primary);font-weight:800;margin-right:8px;}
.kmFaqQ .ar{transition:.2s;color:var(--km-muted);}
.kmFaqItem.open .kmFaqQ .ar{transform:rotate(180deg);}
.kmFaqA{display:none;padding:0 22px 20px 48px;font-size:14px;line-height:1.7;color:var(--km-ink-soft);}
.kmFaqItem.open .kmFaqA{display:block;}

/* ---- 회사소개 ---- */
.kmAboutHero{background:linear-gradient(135deg,var(--km-navy),var(--km-navy-2));color:#fff;padding:60px 0;text-align:center;}
.kmAboutHero h1{font-size:34px;font-weight:800;margin:0 0 14px;letter-spacing:-1px;}
.kmAboutHero p{font-size:16px;opacity:.85;margin:0;line-height:1.7;}
.kmAboutBody{max-width:860px;margin:0 auto;padding:50px 20px;font-size:16px;line-height:1.9;color:var(--km-ink);}
.kmAboutBody img{max-width:100%;height:auto;border-radius:12px;margin:16px 0;}
.kmAboutBody h2,.kmAboutBody h1{font-size:24px;font-weight:800;margin:30px 0 14px;}
.kmAboutFeat{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1000px;margin:0 auto 50px;padding:0 20px;}
.kmFeatCard{text-align:center;padding:28px 20px;background:#fff;border:1px solid var(--km-line);border-radius:14px;}
.kmFeatCard .ic{width:54px;height:54px;margin:0 auto 14px;border-radius:14px;background:var(--km-bg-soft);display:flex;align-items:center;justify-content:center;color:var(--km-primary);}
.kmFeatCard .ic .kmIco{width:26px;height:26px;}
.kmFeatCard h3{font-size:17px;font-weight:800;margin:0 0 8px;} .kmFeatCard p{font-size:13px;color:var(--km-ink-soft);margin:0;line-height:1.6;}

/* ---- 관리자 사이트 설정 ---- */
.kmSetCard{background:#fff;border:1px solid var(--km-line);border-radius:14px;padding:22px 24px;margin-bottom:16px;box-shadow:0 1px 4px rgba(20,30,60,.04);}
.kmSetCard h2{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800;margin:0 0 4px;color:var(--km-ink);}
.kmSetCard h2 .kmIco{width:18px;height:18px;color:var(--km-primary);}
.kmSetCard .d{font-size:13px;color:var(--km-ink-soft);margin:0 0 16px;}
.kmSetGrid{display:grid;grid-template-columns:150px 1fr;gap:10px 14px;align-items:center;max-width:620px;}
.kmSetGrid label{font-size:14px;color:var(--km-ink-soft);font-weight:600;}
.kmSetGrid input,.kmSetGrid select{width:100%;height:40px;padding:0 12px;border:1px solid var(--km-line);border-radius:8px;font-size:14px;}
.kmSetGrid input:focus,.kmSetGrid select:focus{outline:none;border-color:var(--km-primary);box-shadow:0 0 0 3px rgba(37,99,235,.12);}
.kmModeSel{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;}
.kmModeOpt{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1.5px solid var(--km-line);border-radius:12px;cursor:pointer;transition:.12s;}
.kmModeOpt:hover{border-color:var(--km-primary);}
.kmModeOpt.on{border-color:var(--km-primary);background:#f0f5ff;}
.kmModeOpt input{accent-color:var(--km-primary);width:18px;height:18px;}
.kmModeOpt b{font-size:14px;font-weight:600;color:var(--km-ink);}
.kmSetArea{width:100%;min-height:200px;margin-top:12px;padding:14px;border:1px solid var(--km-line);border-radius:10px;font-size:14px;line-height:1.7;font-family:inherit;resize:vertical;}
.kmSetArea:focus{outline:none;border-color:var(--km-primary);box-shadow:0 0 0 3px rgba(37,99,235,.12);}
.kmSetActions{display:flex;gap:10px;align-items:center;margin:6px 0 40px;}
@media (max-width:600px){ .kmSetGrid{grid-template-columns:1fr;} .kmSetGrid label{margin-top:6px;} }

/* ---- 운영 모드 안내 스트립(홈) ---- */
.kmModeGuide{margin:22px 0 4px;border:1px solid var(--km-line);border-radius:14px;padding:16px 20px;background:#fff;display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;box-shadow:0 1px 4px rgba(20,30,60,.04);}
.kmModeGuide .gt{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--km-ink);font-size:15px;}
.kmModeGuide .gt .kmIco{width:19px;height:19px;color:var(--km-primary);}
.kmModeGuide ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 10px;}
.kmModeGuide li{font-size:13px;color:var(--km-ink-soft);background:var(--km-bg-soft);border:1px solid var(--km-line);border-radius:999px;padding:5px 13px;}
.kmModeGuide.mode-refund{border-color:#cfe0ff;} .kmModeGuide.mode-refund .gt .kmIco{color:#2554c7;}
.kmModeGuide.mode-archive{border-color:#c8ecd6;} .kmModeGuide.mode-archive .gt .kmIco{color:#1c8a52;}
@media (max-width:768px){ .kmModeGuide{flex-direction:column;align-items:flex-start;} }

/* ---- 범용 내부 페이지(서브네비 + 본문) : 소개/안내/인증 등 ---- */
.kmPageHero{background:linear-gradient(135deg,var(--km-navy),var(--km-navy-2));color:#fff;padding:46px 0;}
.kmPageHero .kmCrumb{font-size:13px;opacity:.7;margin:0 0 8px;}
.kmPageHero h1{font-size:30px;font-weight:800;margin:0;letter-spacing:-.5px;}
.kmPageWrap{max-width:1080px;margin:0 auto;padding:0 20px 60px;}
.kmSubNav{display:flex;flex-wrap:wrap;gap:6px;margin:22px 0 28px;border-bottom:1px solid var(--km-line);padding-bottom:14px;}
.kmSubNav a{display:inline-block;padding:9px 16px;border-radius:999px;font-size:14px;font-weight:600;color:var(--km-ink-soft);text-decoration:none;border:1px solid transparent;}
.kmSubNav a:hover{color:var(--km-primary);background:var(--km-bg-soft);}
.kmSubNav a.on{background:var(--km-primary);color:#fff;}
.kmPageBody{font-size:15.5px;line-height:1.9;color:var(--km-ink);}
.kmPageBody img{max-width:100%;height:auto;}
.kmPageBody h2{font-size:22px;font-weight:800;margin:30px 0 14px;}
.kmPageBody h3{font-size:18px;font-weight:700;margin:24px 0 10px;}
.kmPageBody ol,.kmPageBody ul{padding-left:22px;margin:8px 0;}
.kmPageBody li{margin:6px 0;}
.kmPageBody .titleBlue{color:var(--km-primary);font-weight:800;}
.kmPageBody .skyblue{color:#1d8cd0;} .kmPageBody .blue{color:var(--km-primary);} .kmPageBody .red{color:#c0392b;}
.kmPageBody table{width:100%;border-collapse:collapse;margin:14px 0;}
.kmPageBody table th,.kmPageBody table td{border:1px solid var(--km-line);padding:10px 12px;font-size:14px;}
.kmPageBody table th{background:var(--km-bg-soft);font-weight:700;text-align:left;}
.kmPageBody .kmTableScroll{overflow-x:auto;}
/* 레거시 내부 콘텐츠(.rule/.card/.designImage 등) 모바일 오버플로 방지 */
.kmPageBody .designImage,.kmPageBody .rule,.kmPageBody [class^="card"],.kmPageBody [class*=" card"]{width:auto!important;max-width:100%!important;padding-left:0!important;padding-right:0!important;}
.kmPageBody .designImage img,.kmPageBody .rule img{display:block;margin:10px auto;}
.kmPageBody [class^="card"] img,.kmPageBody [class*=" card"] img{max-width:100%;height:auto;}
/* 레거시 결제/강의 목록(.lecture/.lectureList) 고정폭 → 유동 */
.kmPageBody .lecture>div,.kmPageBody #contentsArea>h2,.kmPageBody #contentsArea dl{width:auto!important;max-width:100%!important;}
.kmPageBody .lectureList>li{float:none!important;width:auto!important;margin:14px 0!important;}
.kmPageBody .lectureList>li>.img{height:180px!important;}
.kmPageBody .lecture .searchForm{background-position:14px 14px!important;}
/* 정보 카드(연락처/오시는길 등) */
.kmInfoGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:18px 0;}
.kmInfoCard{background:#fff;border:1px solid var(--km-line);border-radius:14px;padding:20px 22px;}
.kmInfoCard .lb{font-size:12px;font-weight:700;color:var(--km-primary);letter-spacing:.4px;text-transform:uppercase;margin:0 0 6px;}
.kmInfoCard .vl{font-size:15px;color:var(--km-ink);margin:0;line-height:1.6;}
.kmMapBox{width:100%;border-radius:14px;overflow:hidden;border:1px solid var(--km-line);margin:8px 0 6px;}
.kmMapBox > div,.kmMapBox iframe{width:100%!important;max-width:100%!important;}
/* 비전 이미지 스택 */
.kmVision{text-align:center;}
.kmVision .vt{font-size:26px;font-weight:800;margin:8px 0;color:var(--km-ink);}
.kmVision .vp{color:var(--km-ink-soft);margin:0 0 22px;}
.kmVision img{display:block;margin:14px auto;border-radius:12px;}
@media (max-width:768px){
  .kmPageHero{padding:34px 0;} .kmPageHero h1{font-size:24px;}
  .kmSubNav a{padding:8px 13px;font-size:13px;}
  .kmVision .vt{font-size:21px;}
}

/* ---- 이용안내(가이드 스텝) ---- */
.kmSteps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:10px 0 36px;}
.kmStep{background:#fff;border:1px solid var(--km-line);border-radius:14px;padding:26px 20px;text-align:center;position:relative;}
.kmStep .num{width:36px;height:36px;border-radius:50%;background:var(--km-primary);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;font-size:15px;}
.kmStep .ic{width:48px;height:48px;margin:0 auto 12px;border-radius:13px;background:var(--km-bg-soft);display:flex;align-items:center;justify-content:center;color:var(--km-primary);}
.kmStep .ic .kmIco{width:24px;height:24px;}
.kmStep h3{font-size:16px;font-weight:800;margin:0 0 7px;}
.kmStep p{font-size:13px;color:var(--km-ink-soft);margin:0;line-height:1.6;}
.kmGuideCards{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:8px 0 30px;}
.kmGuideCard{background:#fff;border:1px solid var(--km-line);border-radius:14px;padding:24px;display:flex;gap:16px;align-items:flex-start;}
.kmGuideCard .ic{width:44px;height:44px;flex-shrink:0;border-radius:11px;background:var(--km-primary-light);display:flex;align-items:center;justify-content:center;color:var(--km-primary-dark);}
.kmGuideCard .ic .kmIco{width:22px;height:22px;}
.kmGuideCard h3{font-size:16px;font-weight:800;margin:0 0 8px;}
.kmGuideCard p{font-size:14px;color:var(--km-ink-soft);margin:0;line-height:1.7;}

/* ---- 1:1 문의 ---- */
.kmInquiryForm{background:#fff;border:1px solid var(--km-line);border-radius:14px;padding:26px;margin-top:18px;}
.kmInquiryForm .kmField textarea{width:100%;border:1.5px solid var(--km-line);border-radius:10px;padding:13px 14px;font-size:15px;font-family:var(--km-font);resize:vertical;min-height:180px;}
.kmInquiryForm .kmField textarea:focus{border-color:var(--km-primary);box-shadow:0 0 0 3px var(--km-primary-light);outline:none;}
.kmAnsBadge{font-size:11px;font-weight:800;border-radius:5px;padding:2px 8px;}
.kmAnsBadge.done{background:#e7f5ec;color:var(--km-file-xls);}
.kmAnsBadge.wait{background:#fff1e6;color:var(--km-badge-new);}

/* ---- 훈련 유의사항(규정) ---- */
.kmNotice{list-style:none;margin:0 0 36px;padding:18px 22px;background:var(--km-bg-soft);border:1px solid #dde9ff;border-radius:12px;}
.kmNotice li{position:relative;padding:7px 0 7px 20px;font-size:14px;line-height:1.65;color:var(--km-ink-soft);}
.kmNotice li::before{content:"✓";position:absolute;left:0;top:7px;color:var(--km-primary);font-weight:800;}
.kmNotice li b{color:var(--km-ink);}
.kmTypeBadge{display:inline-block;font-size:12px;font-weight:800;border-radius:6px;padding:3px 10px;margin-bottom:10px;}
.kmTypeBadge.archive{background:#ecfeff;color:#0e7490;}
.kmTypeBadge.refund{background:#eef2ff;color:#00489c;}
.kmTypeBadge.general{background:#ecfdf3;color:#15803d;}

/* ============ 내 강의실(대시보드) ============ */
.kmRoom{background:var(--km-bg-soft2);min-height:calc(100vh - 68px);}
.kmRoom .kmWrap{display:grid;grid-template-columns:240px 1fr;gap:28px;padding-top:30px;padding-bottom:50px;align-items:start;}
/* 사이드바 */
.kmRoomSide{position:sticky;top:88px;display:flex;flex-direction:column;gap:16px;}
.kmRoomNav{background:#fff;border:1px solid var(--km-line);border-radius:16px;padding:10px;}
.kmRoomNav a{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:10px;color:var(--km-ink);text-decoration:none;font-weight:700;font-size:14.5px;}
.kmRoomNav a .kmIco{width:19px;height:19px;color:var(--km-ink-soft);}
.kmRoomNav a:hover{background:var(--km-bg-soft);}
.kmRoomNav a.on{background:var(--km-primary);color:#fff;box-shadow:var(--km-shadow-sm);}
.kmRoomNav a.on .kmIco{color:#fff;}
.kmSideHelp{background:#fff;border:1px solid var(--km-line);border-radius:16px;padding:18px;}
.kmSideHelp .lb{font-size:12px;color:var(--km-muted);margin-bottom:4px;}
.kmSideHelp .tel{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:800;color:var(--km-navy);}
.kmSideHelp .tel .kmIco{width:22px;height:22px;color:var(--km-primary);}
.kmSideHelp .hr{font-size:12px;color:var(--km-ink-soft);margin-top:6px;line-height:1.5;}
.kmSideHelp.tealp{background:var(--km-bg-soft);border-color:#d6e4ff;}
.kmSideHelp .t2{font-size:14px;font-weight:800;margin-bottom:4px;}
.kmSideHelp .p2{font-size:12px;color:var(--km-ink-soft);margin-bottom:12px;}
/* 대시보드 헤더 */
.kmRoomMain{min-width:0;}
.kmRoomTop{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-bottom:14px;}
.kmRoomTop .me{display:flex;align-items:center;gap:10px;font-size:14px;}
.kmRoomTop .me .nm{font-weight:800;} .kmRoomTop .me .co{color:var(--km-muted);font-size:12px;}
.kmRoomTop .av{width:38px;height:38px;border-radius:50%;background:var(--km-primary-light);display:flex;align-items:center;justify-content:center;color:var(--km-primary-dark);font-weight:800;}
.kmRoomHead h1{font-size:28px;font-weight:800;margin:0 0 6px;letter-spacing:-.5px;}
.kmRoomHead p{color:var(--km-ink-soft);margin:0 0 20px;font-size:14px;}
/* 학습현황 대시보드 카드 */
.kmDash{background:linear-gradient(135deg,#eef4ff,#f6f9ff);border:1px solid #e1ebfb;border-radius:18px;padding:28px 30px;display:grid;grid-template-columns:1.3fr 1fr;gap:24px;margin-bottom:26px;}
.kmDash .dTitle{font-size:18px;font-weight:800;margin:0 0 18px;}
.kmDash .dTitle small{font-size:12px;color:var(--km-muted);font-weight:600;margin-left:6px;}
.kmDashStats{display:flex;align-items:center;justify-content:space-between;gap:6px;}
.kmDashStats .it{text-align:center;flex:1;position:relative;}
.kmDashStats .it .ic{width:54px;height:54px;margin:0 auto 8px;border-radius:16px;background:#fff;box-shadow:var(--km-shadow-sm);display:flex;align-items:center;justify-content:center;}
.kmDashStats .it .ic .kmIco{width:26px;height:26px;}
.kmDashStats .it .lb{font-size:13px;color:var(--km-ink-soft);}
.kmDashStats .it .vl{font-size:22px;font-weight:800;margin-top:2px;}
.kmDashStats .arrow{color:var(--km-muted);font-size:16px;flex:0 0 auto;align-self:flex-start;margin-top:22px;}
.ic.ing{color:var(--km-primary);} .ic.done{color:var(--km-success);} .ic.soon{color:var(--km-warning);} .ic.fail{color:var(--km-muted);}
.kmDashRight{border-left:1px solid #dde7f7;padding-left:24px;display:flex;align-items:center;gap:20px;}
.kmDonut{--p:65;width:128px;height:128px;border-radius:50%;flex-shrink:0;
  background:conic-gradient(var(--km-primary) calc(var(--p)*1%), #dde7f7 0);
  display:flex;align-items:center;justify-content:center;position:relative;}
.kmDonut::before{content:"";position:absolute;inset:14px;background:#fff;border-radius:50%;}
.kmDonut .v{position:relative;font-size:26px;font-weight:800;color:var(--km-primary-dark);}
.kmDonut .v small{font-size:13px;}
.kmDashRight .info{flex:1;min-width:0;}
.kmDashRight .info .lb{font-size:13px;color:var(--km-ink-soft);}
.kmDashRight .info .big{font-size:22px;font-weight:800;color:var(--km-primary);margin:2px 0 12px;}
.kmDashRight .info .cr{font-size:12px;color:var(--km-ink-soft);display:flex;justify-content:space-between;margin-bottom:5px;}
.kmDashBar{height:8px;background:#dde7f7;border-radius:999px;overflow:hidden;margin-bottom:14px;}
.kmDashBar span{display:block;height:100%;background:linear-gradient(90deg,var(--km-primary),var(--km-accent));}
/* 탭 + 정렬 */
.kmRoomTabbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--km-line);margin-bottom:18px;}
.kmRoomTabs2{display:flex;gap:26px;}
.kmRoomTabs2 a{padding:12px 2px;color:var(--km-ink-soft);font-weight:700;font-size:15px;text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;}
.kmRoomTabs2 a.on{color:var(--km-primary);border-color:var(--km-primary);}
.kmRoomTabs2 a .cnt{font-size:12px;color:var(--km-muted);}
/* 가로형 학습 카드 */
.kmStudyList2{display:flex;flex-direction:column;gap:14px;}
.kmStudyItem{background:#fff;border:1px solid var(--km-line);border-radius:14px;padding:16px;display:flex;align-items:center;gap:20px;transition:.15s;}
.kmStudyItem:hover{box-shadow:var(--km-shadow);}
.kmStudyItem .th{width:150px;height:92px;border-radius:10px;background:#e8eefc center/cover no-repeat;flex-shrink:0;}
.kmStudyItem .mid{flex:1;min-width:0;}
.kmStudyItem .badge2{display:inline-block;font-size:11px;font-weight:800;border-radius:6px;padding:3px 9px;margin-bottom:7px;}
.kmStudyItem .badge2.ing{background:var(--km-primary-light);color:var(--km-primary-dark);}
.kmStudyItem .badge2.done{background:#e7f5ec;color:var(--km-file-xls);}
.kmStudyItem .badge2.soon{background:#fff1e6;color:var(--km-badge-new);}
.kmStudyItem .badge2.fail{background:#f1f5f9;color:var(--km-muted);}
.kmStudyItem .nm2{font-size:16px;font-weight:700;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}
.kmStudyItem .meta2{font-size:12.5px;color:var(--km-muted);display:flex;gap:16px;flex-wrap:wrap;}
.kmStudyItem .meta2 .kmIco{width:14px;height:14px;vertical-align:-2px;margin-right:3px;}
.kmStudyItem .prog{width:200px;flex-shrink:0;}
.kmStudyItem .prog .top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;}
.kmStudyItem .prog .top .l{font-size:12px;color:var(--km-ink-soft);}
.kmStudyItem .prog .top .pc{font-size:18px;font-weight:800;color:var(--km-primary);}
.kmStudyItem .prog .sub{font-size:11px;color:var(--km-muted);margin-top:5px;}
.kmStudyItem .acts{display:flex;flex-direction:column;gap:8px;width:120px;flex-shrink:0;}
.kmStudyItem .acts .km-btn{font-size:13px;padding:10px;border-radius:9px;}
.kmRoomFoot{text-align:center;color:var(--km-muted);font-size:12.5px;margin-top:26px;display:flex;align-items:center;justify-content:center;gap:6px;}

/* ============ 관리자(디자인 시스템) ============ */
.kmAdmin{background:var(--km-bg-soft2);min-height:100vh;font-family:var(--km-font);color:var(--km-ink);}
.kmAdminBar{background:#0a1b3d;color:#fff;height:58px;display:flex;align-items:center;gap:18px;padding:0 22px;}
.kmAdminBar .lg{font-size:18px;font-weight:800;letter-spacing:-.5px;}
.kmAdminBar .lg b{color:#7fb0ff;}
.kmAdminBar .sp{flex:1;}
.kmAdminBar a{color:#cdd9ec;text-decoration:none;font-size:13px;}
.kmAdminBar a:hover{color:#fff;}
.kmAdminWrap{max-width:1100px;margin:0 auto;padding:26px 20px 50px;}
.kmAdminHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:12px;}
.kmAdminHead h1{font-size:24px;font-weight:800;margin:0;}
.kmAdminHead p{color:var(--km-ink-soft);margin:4px 0 0;font-size:13px;}
.kmAdminStats{display:flex;gap:10px;}
.kmAdminStat{background:#fff;border:1px solid var(--km-line);border-radius:12px;padding:10px 18px;text-align:center;}
.kmAdminStat .v{font-size:20px;font-weight:800;color:var(--km-primary);} .kmAdminStat .l{font-size:11px;color:var(--km-muted);}
.kmAdminToolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap;}
.kmAdminToolbar input,.kmAdminToolbar select{border:1px solid var(--km-line);border-radius:8px;padding:9px 12px;font-size:13px;}
.kmEditRow{background:#f8fbff;}
.kmEditForm{display:flex;gap:18px;flex-wrap:wrap;align-items:flex-end;padding:8px 0;}
.kmEditForm .fld{display:flex;flex-direction:column;gap:5px;}
.kmEditForm .fld label{font-size:11px;color:var(--km-ink-soft);font-weight:700;}
.kmEditForm .fld input,.kmEditForm .fld select{border:1px solid var(--km-line);border-radius:7px;padding:7px 10px;font-size:13px;}
.kmEditForm .seg{display:flex;border:1px solid var(--km-line);border-radius:7px;overflow:hidden;}
.kmEditForm .seg label{padding:7px 12px;font-size:12.5px;cursor:pointer;background:#fff;}
.kmEditForm .seg label.on{background:var(--km-primary);color:#fff;}
.kmEditForm .seg input{display:none;}
.kmAdminMsg{background:#e7f5ec;color:var(--km-file-xls);border:1px solid #bce3c9;border-radius:10px;padding:12px 16px;font-size:14px;margin-bottom:16px;}

/* ============ 학습 플레이어(전체화면) ============ */
.kmPlayerPage{background:#0f1420;color:#e7ecf3;min-height:100vh;font-family:var(--km-font);}
.kmPlayerBar{position:sticky;top:0;z-index:20;background:#141b2b;border-bottom:1px solid #243049;display:flex;align-items:center;gap:18px;padding:0 20px;height:58px;}
.kmPlayerBar .back{display:flex;align-items:center;gap:6px;color:#aebbd0;text-decoration:none;font-size:14px;font-weight:600;}
.kmPlayerBar .back:hover{color:#fff;}
.kmPlayerBar .ttl{font-size:16px;font-weight:700;color:#fff;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kmPlayerBar .prog{display:flex;align-items:center;gap:10px;font-size:13px;color:#aebbd0;}
.kmPlayerBar .prog .bar{width:120px;height:7px;background:#243049;border-radius:999px;overflow:hidden;}
.kmPlayerBar .prog .bar span{display:block;height:100%;background:linear-gradient(90deg,var(--km-primary),var(--km-accent));}
.kmPlayerBar .prog b{color:#fff;}
.kmPlayerWrap{display:grid;grid-template-columns:1fr 340px;gap:0;align-items:start;}
.kmPlayerMain{padding:0;}
.kmVideo{position:relative;width:100%;aspect-ratio:16/9;background:#000 center/cover no-repeat;display:flex;align-items:center;justify-content:center;}
.kmVideo .ph{text-align:center;color:#7c8aa6;}
.kmVideo .ph .ic{width:70px;height:70px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}
.kmVideo .ph .ic .kmIco{width:34px;height:34px;color:#cfe0ff;}
.kmVideo .ph .t{font-size:15px;color:#cdd9ec;font-weight:600;}
.kmVideo .ph .s{font-size:12px;color:#7c8aa6;margin-top:4px;}
.kmVideoInfo{padding:18px 24px;border-bottom:1px solid #243049;}
.kmVideoInfo .badge2{display:inline-block;font-size:11px;font-weight:800;border-radius:6px;padding:3px 9px;background:#1b2740;color:#7fb0ff;margin-bottom:8px;}
.kmVideoInfo h1{font-size:19px;font-weight:800;color:#fff;margin:0 0 6px;}
.kmVideoInfo .meta{font-size:12.5px;color:#8b99b3;display:flex;gap:16px;flex-wrap:wrap;}
.kmPlayTabs{display:flex;gap:0;border-bottom:1px solid #243049;padding:0 24px;}
.kmPlayTabs button{background:none;border:none;color:#8b99b3;font-size:14px;font-weight:700;padding:15px 16px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;}
.kmPlayTabs button.on{color:#fff;border-color:var(--km-primary);}
.kmPlayBody{padding:24px;font-size:14px;line-height:1.8;color:#c4cee0;}
.kmPlayBody .pane{display:none;} .kmPlayBody .pane.on{display:block;}
.kmPlayBody h3{font-size:15px;color:#fff;margin:0 0 10px;font-weight:700;}
.kmInfoRow{display:flex;padding:9px 0;border-bottom:1px solid #1d2740;font-size:13.5px;}
.kmInfoRow .k{width:120px;color:#8b99b3;flex-shrink:0;} .kmInfoRow .v{color:#dde6f4;}
.kmDownList{list-style:none;margin:0;padding:0;}
.kmDownList li{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;background:#161e30;border:1px solid #243049;border-radius:10px;margin-bottom:9px;}
.kmDownList li .nm{display:flex;align-items:center;gap:10px;font-size:13.5px;color:#dde6f4;}
.kmDownList li .nm .kmIco{width:18px;height:18px;color:#7fb0ff;}
.kmDownList li a{color:#7fb0ff;text-decoration:none;font-size:12.5px;display:flex;align-items:center;gap:5px;}
.kmDownEmpty{color:#7c8aa6;font-size:13px;padding:20px;text-align:center;}
/* 차시 사이드바 */
.kmChapSide{background:#141b2b;border-left:1px solid #243049;min-height:calc(100vh - 58px);position:sticky;top:58px;}
.kmChapHd{padding:18px 18px 12px;border-bottom:1px solid #243049;}
.kmChapHd .t{font-size:15px;font-weight:800;color:#fff;} .kmChapHd .s{font-size:12px;color:#8b99b3;margin-top:3px;}
.kmChapList{max-height:calc(100vh - 130px);overflow-y:auto;}
.kmChapItem{display:flex;gap:12px;padding:14px 18px;border-bottom:1px solid #1d2740;cursor:pointer;align-items:flex-start;}
.kmChapItem:hover{background:#1a2336;}
.kmChapItem.on{background:#1b2740;border-left:3px solid var(--km-primary);padding-left:15px;}
.kmChapItem.locked{opacity:.5;cursor:not-allowed;}
.kmChapItem .no{width:26px;height:26px;border-radius:8px;background:#243049;color:#aebbd0;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.kmChapItem.done .no{background:var(--km-success);color:#fff;}
.kmChapItem .ci{flex:1;min-width:0;}
.kmChapItem .cn{font-size:13.5px;color:#dde6f4;line-height:1.4;margin-bottom:5px;}
.kmChapItem .cm{font-size:11.5px;color:#8b99b3;display:flex;gap:10px;align-items:center;}
.kmChapItem .cm .st{font-weight:700;} .kmChapItem.done .cm .st{color:var(--km-success);} .kmChapItem .cm .st.ing{color:#7fb0ff;}
.kmChapItem .cbar{height:4px;background:#243049;border-radius:999px;margin-top:6px;overflow:hidden;}
.kmChapItem .cbar span{display:block;height:100%;background:var(--km-primary);}
.kmChapItem .lock .kmIco{width:16px;height:16px;color:#5b6b85;}

/* ============ 반응형 ============ */
/* 모바일 네비 기본(데스크톱: 햄버거/모바일전용 숨김) */
.kmNavToggle{display:none;width:40px;height:40px;border:none;background:none;cursor:pointer;flex-direction:column;justify-content:center;gap:5px;padding:8px;margin-left:-4px;}
.kmNavToggle span{display:block;height:2px;background:var(--km-ink);border-radius:2px;transition:.2s;}
.kmMenuMobileOnly{display:none;}
.kmNavBackdrop{display:none;position:fixed;inset:0;background:rgba(10,20,40,.4);z-index:998;}
body.kmNavOpen .kmNavBackdrop{display:block;}

/* 태블릿 ~1024 */
@media (max-width:1024px){
  :root{ --km-maxw:100%; }
  .kmWrap{padding:0 18px;}
  .kmCourseRow{grid-template-columns:repeat(3,1fr);}
  .kmCourseGrid4{grid-template-columns:repeat(3,1fr);}
  .kmArchiveRow{grid-template-columns:repeat(2,1fr);}
  .kmCatGrid{grid-template-columns:repeat(4,1fr);}
  .kmBottomGrid{grid-template-columns:1fr 1fr;}
  .kmStats{grid-template-columns:repeat(2,1fr);}
  .kmStats .it{border-right:none;}
  .kmRoadRow{grid-template-columns:1fr;}
  .kmDetailBody{grid-template-columns:1fr;}
  .kmDetailSide{position:static;}
  .kmRoom .kmWrap{grid-template-columns:1fr;}
  .kmRoomSide{position:static;flex-direction:row;flex-wrap:wrap;}
  .kmRoomNav{flex:1;min-width:240px;} .kmSideHelp{flex:1;}
  .kmDash{grid-template-columns:1fr;}
  .kmDashRight{border-left:none;border-top:1px solid #dde7f7;padding:18px 0 0;}
}

/* 모바일 ~768 */
@media (max-width:768px){
  /* 네비 → 햄버거 */
  .kmNav .kmWrap{height:58px;gap:10px;}
  .kmNavToggle{display:flex;}
  body.kmNavOpen .kmNavToggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  body.kmNavOpen .kmNavToggle span:nth-child(2){opacity:0;}
  body.kmNavOpen .kmNavToggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .kmLogo{font-size:20px;flex:1;}
  .kmMenu{position:fixed;top:0;left:0;bottom:0;width:78%;max-width:300px;background:#fff;flex-direction:column;
    gap:0;padding:70px 0 20px;box-shadow:2px 0 20px rgba(0,0,0,.15);transform:translateX(-100%);transition:transform .25s;z-index:999;overflow-y:auto;}
  body.kmNavOpen .kmMenu{transform:translateX(0);}
  .kmMenu li{width:100%;border-bottom:1px solid var(--km-line);}
  .kmMenu a{display:block;padding:15px 22px;font-size:15px;}
  .kmMenuMobileOnly{display:block;}
  .kmSearchTop{width:auto;padding:6px 10px;} .kmSearchTop input{width:90px;}
  .kmHideSm{display:none !important;}
  .kmMy .av{margin:0;}

  /* 히어로/검색 */
  .kmHero .kmWrap{flex-direction:column;padding:34px 18px;} .kmHeroArt{order:-1;width:100%;}
  .kmHeroText h1{font-size:28px;} .kmHeroStats{flex-wrap:wrap;}
  .kmHeroStats .it{flex:1 1 40%;border-right:none;}
  .kmSearchPanel{margin-top:-20px;padding:18px;}
  .kmSearchPanel .row1{flex-direction:column;align-items:stretch;gap:12px;}
  .kmRecs{min-width:0;} .kmSearchTabs{overflow-x:auto;gap:16px;padding-bottom:6px;}

  /* 그리드 → 2/1열 */
  .kmCourseRow,.kmCourseGrid4,.kmArchiveRow{grid-template-columns:repeat(2,1fr);gap:12px;}
  .kmCatGrid{grid-template-columns:repeat(3,1fr);}
  .kmBottomGrid,.kmStats,.kmSupportTop,.kmQuickLinks,.kmGuideCards,.kmSteps,.kmAboutFeat{grid-template-columns:1fr;}
  .kmStats .it{justify-content:flex-start;padding:10px 16px;}
  .kmSecHead h2{font-size:19px;}
  .kmPageHead h1{font-size:22px;} .kmPageHead{padding:26px 0 20px;}

  /* 인증 카드 */
  .kmAuthCard{flex-direction:column;max-width:420px;} .kmAuthArt{display:none;}
  .kmAuthForm{padding:32px 24px;}

  /* 마이페이지/강의실 */
  .kmMyGrid{grid-template-columns:1fr;} .kmMySide{position:static;}
  .kmStatCards{grid-template-columns:repeat(2,1fr);}
  .kmStudyRow{flex-wrap:wrap;} .kmStudyRow .th{width:64px;height:42px;}
  .kmDashStats{flex-wrap:wrap;gap:10px;} .kmDashStats .it{flex:1 1 40%;} .kmDashStats .arrow{display:none;}
  .kmDonut{width:104px;height:104px;}
  .kmStudyItem{flex-wrap:wrap;gap:12px;} .kmStudyItem .th{width:100%;height:120px;}
  .kmStudyItem .mid{flex:1 1 100%;} .kmStudyItem .prog{width:100%;} .kmStudyItem .acts{flex-direction:row;width:100%;}
  .kmStudyItem .acts .km-btn{flex:1;}
  .kmRoomTabs2{gap:14px;overflow-x:auto;white-space:nowrap;} .kmRoomTabs2 a{font-size:14px;}
  .kmRoomTop{justify-content:space-between;}

  /* 과정 상세 */
  .kmDetailHero .kmWrap{flex-direction:column;} .kmDetailThumb{width:100%;min-height:180px;}
  .kmDetailMeta{gap:10px;font-size:13px;} .kmDetailBuy{flex-wrap:wrap;}

  /* 게시판 표 → 가로 스크롤 */
  .kmTable{display:block;overflow-x:auto;white-space:nowrap;}
  .kmFilterBar{flex-direction:column;align-items:stretch;} .kmFilterBar .right{width:100%;}

  /* 푸터 */
  footer .kmWrap{flex-direction:column;gap:14px;}

  /* 학습 플레이어 → 세로 스택 */
  .kmPlayerWrap{grid-template-columns:1fr;}
  .kmChapSide{position:static;min-height:auto;border-left:none;border-top:1px solid #243049;}
  .kmChapList{max-height:380px;}
  .kmPlayerBar .ttl{font-size:14px;} .kmPlayerBar .prog .bar{width:70px;}
}

/* 소형 ~480 */
@media (max-width:480px){
  .kmCourseRow,.kmCourseGrid4,.kmArchiveRow,.kmStatCards{grid-template-columns:1fr;}
  .kmCatGrid{grid-template-columns:repeat(2,1fr);}
  .kmHeroText h1{font-size:24px;}
  .kmDashStats .it .vl{font-size:18px;}
  .km-btn{font-size:14px;}
}

/* ---- 수강후기(홈) ---- */
.kmReviewRow{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.kmReviewCard{position:relative;background:#fff;border:1px solid var(--km-line);border-radius:16px;padding:26px 24px 20px;box-shadow:var(--km-shadow);}
.kmReviewCard .q{position:absolute;top:18px;right:20px;color:var(--km-primary);opacity:.18;}
.kmReviewCard .q .kmIco{width:34px;height:34px;}
.kmReviewCard .tx{margin:0 0 16px;font-size:14px;line-height:1.75;color:var(--km-ink-soft);min-height:72px;}
.kmReviewCard .who{display:flex;flex-direction:column;gap:2px;border-top:1px dashed var(--km-line);padding-top:12px;}
.kmReviewCard .who b{font-size:13.5px;color:var(--km-ink);}
.kmReviewCard .who span{font-size:12px;color:var(--km-muted);}
@media (max-width:860px){ .kmReviewRow{grid-template-columns:1fr;} .kmReviewCard .tx{min-height:0;} }

/* ---- 스크롤 등장 애니메이션 ---- */
.kmReveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease;}
.kmReveal.kmIn{opacity:1;transform:none;}

/* ---- 서비스 소개(운영 모드별, 홈) ---- */
.kmIntroRow{display:grid;gap:14px;}
.kmIntroRow.n4{grid-template-columns:repeat(4,1fr);}
.kmIntroRow.n3{grid-template-columns:repeat(3,1fr);}
.kmIntroCard{display:flex;flex-direction:column;gap:8px;padding:22px 20px;background:#fff;border:1px solid var(--km-line);
  border-radius:14px;text-decoration:none;box-shadow:var(--km-shadow);transition:transform .16s ease,box-shadow .16s ease,border-color .16s;}
.kmIntroCard:hover{transform:translateY(-3px);border-color:var(--km-primary);box-shadow:0 10px 28px rgba(20,40,80,.10);}
.kmIntroCard .ic{display:inline-flex;width:44px;height:44px;border-radius:11px;background:#eaf1ff;color:var(--km-primary);align-items:center;justify-content:center;}
.kmIntroCard .ic .kmIco{width:22px;height:22px;}
.kmIntroCard b{font-size:15px;color:var(--km-ink);}
.kmIntroCard p{margin:0;font-size:13px;line-height:1.65;color:var(--km-ink-soft);}
@media (max-width:1000px){ .kmIntroRow.n4{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .kmIntroRow.n4,.kmIntroRow.n3{grid-template-columns:1fr;} }

/* ---- 내 강의실: 과정 유형 필터 ---- */
.kmRoomTabbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.kmTypeFilter{display:flex;gap:6px;}
.kmTypeFilter a{padding:7px 14px;border:1px solid var(--km-line);border-radius:999px;font-size:12.5px;font-weight:600;color:var(--km-ink-soft);text-decoration:none;transition:.12s;}
.kmTypeFilter a:hover{border-color:var(--km-primary);color:var(--km-primary);}
.kmTypeFilter a.on{background:var(--km-primary);border-color:var(--km-primary);color:#fff;}

/* ---- 플레이어: 평가/과제 카드 ---- */
.kmEvalBox{margin:14px 14px 4px;border:1px solid #2c3a55;background:#1b2538;border-radius:12px;padding:14px;}
.kmEvalBox .kmEvalHd{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:800;color:#fff;margin-bottom:10px;}
.kmEvalBox .kmEvalHd .kmIco{width:16px;height:16px;color:#7da7ff;}
.kmEvalBox .kmEvalHd span{margin-left:auto;font-size:11px;font-weight:600;color:#8fa3c8;}
.kmEvalItem{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px dashed #2c3a55;}
.kmEvalItem .ei{display:flex;flex-direction:column;gap:2px;}
.kmEvalItem .ei b{font-size:13px;color:#e8eefb;}
.kmEvalItem .ei .cond{font-size:11.5px;color:#8fa3c8;}
.kmEvalItem button[disabled]{opacity:.55;cursor:not-allowed;}
.kmEvalFt{margin-top:10px;font-size:11px;color:#8fa3c8;border-top:1px dashed #2c3a55;padding-top:9px;}

/* ---- 훈련 진행 유의사항(홈, 공단 점검 필수 안내) ---- */
.kmNoticeStrip{background:#fff;border:1px solid var(--km-line);border-radius:16px;padding:24px 26px;box-shadow:var(--km-shadow);}
.kmNoticeStrip .hd{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800;color:var(--km-ink);margin-bottom:14px;}
.kmNoticeStrip .hd .kmIco{width:19px;height:19px;color:var(--km-primary);}
.kmNoticeStrip ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:7px 26px;}
.kmNoticeStrip li{display:flex;gap:9px;font-size:13px;line-height:1.65;color:var(--km-ink-soft);}
.kmNoticeStrip li b{flex:none;width:20px;height:20px;border-radius:50%;background:#eaf1ff;color:var(--km-primary);font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;margin-top:1px;}
.kmNoticeStrip .ft{margin:12px 0 0;font-size:12px;color:var(--km-muted);}
.kmNoticeStrip .ft a{color:var(--km-primary);font-weight:600;}
@media (max-width:760px){ .kmNoticeStrip ol{grid-template-columns:1fr;} }

/* ============================================================
   kmK* — 메인 홈 KMA 컨셉 리뉴얼(홈 전용, 격리 프리픽스)
   화이트 베이스 + 다크 악센트 · 타이포 비비드 카드 · 탭 큐레이션
   ============================================================ */
/* ── 히어로(다크) ── */
.kmKHero{background:#101114;color:#fff;padding:46px 0 0;}
.kmKHeroIn{display:grid;grid-template-columns:300px 1fr 230px;gap:34px;align-items:center;}
.kmKPoster{position:relative;height:330px;border-radius:14px;overflow:hidden;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#ff4e9b 0%,#7b2ff7 55%,#36d1dc 110%);box-shadow:0 18px 50px rgba(123,47,247,.35);}
.kmKPoster::before{content:"";position:absolute;inset:0;background:
  radial-gradient(120px 120px at 85% 12%,rgba(255,255,255,.35),transparent),
  radial-gradient(160px 160px at 10% 90%,rgba(0,0,0,.18),transparent);}
.kmKPoster .big{position:relative;font-size:64px;line-height:1.08;font-weight:900;letter-spacing:-2px;color:#fff;
  text-shadow:0 6px 24px rgba(0,0,0,.25);transform:rotate(-4deg);text-align:center;}
.kmKPoster .tag{position:absolute;left:16px;bottom:14px;font-size:11px;font-weight:700;color:rgba(255,255,255,.85);
  background:rgba(0,0,0,.28);padding:4px 10px;border-radius:999px;}
.kmKHeroTxt h1{margin:0 0 14px;font-size:34px;line-height:1.35;font-weight:800;letter-spacing:-.5px;}
.kmKHeroTxt h1 .em{font-size:28px;}
.kmKHeroTxt p{margin:0 0 22px;font-size:15px;color:#b9bdc7;}
.kmKHeroTxt .btns{display:flex;gap:10px;}
.kmKHeroTxt .bt1{display:inline-block;background:#fff;color:#101114;font-weight:800;font-size:14px;padding:13px 22px;border-radius:10px;text-decoration:none;}
.kmKHeroTxt .bt1:hover{background:var(--km-primary);color:#fff;}
.kmKHeroTxt .bt2{display:inline-block;border:1px solid #3a3d46;color:#d6d9e0;font-weight:600;font-size:14px;padding:13px 22px;border-radius:10px;text-decoration:none;}
.kmKHeroTxt .bt2:hover{border-color:#fff;color:#fff;}
.kmKHeroSide{display:flex;flex-direction:column;gap:12px;}
.kmKHeroSide .mini{position:relative;display:flex;flex-direction:column;gap:3px;background:#1b1d22;border:1px solid #2a2d35;
  border-radius:12px;padding:16px 16px 14px;text-decoration:none;transition:.15s;overflow:hidden;}
.kmKHeroSide .mini::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--mc,#fff);}
.kmKHeroSide .mini b{color:#fff;font-size:15px;}
.kmKHeroSide .mini span{color:#9aa0ac;font-size:12px;}
.kmKHeroSide .mini i{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-style:normal;color:#6c717d;}
.kmKHeroSide .mini:hover{border-color:#4a4e59;} .kmKHeroSide .mini:hover i{color:#fff;}
.kmKHeroStats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;border-top:1px solid #26282e;
  margin-top:38px;padding:20px 0 24px;}
.kmKHeroStats div{display:flex;align-items:baseline;gap:8px;justify-content:center;}
.kmKHeroStats b{font-size:24px;font-weight:800;color:#fff;letter-spacing:-.5px;}
.kmKHeroStats span{font-size:12.5px;color:#9aa0ac;}
/* ── 섹션 헤드/탭 ── */
.kmKSec .kmKHead{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:18px;}
.kmKSec .kmKHead h2{margin:0;font-size:22px;font-weight:800;letter-spacing:-.4px;color:var(--km-ink);}
.kmKSec .kmKHead a{font-size:13px;color:var(--km-muted);text-decoration:none;font-weight:600;}
.kmKSec .kmKHead a:hover{color:var(--km-primary);}
.kmKSec .kmKHead .d{font-size:13.5px;color:var(--km-ink-soft);}
.kmKTabs{display:flex;gap:26px;border-bottom:1px solid var(--km-line);margin-bottom:22px;overflow-x:auto;}
.kmKTabs button{background:none;border:0;padding:12px 2px 13px;font-size:16px;font-weight:700;color:var(--km-muted);
  cursor:pointer;border-bottom:2.5px solid transparent;white-space:nowrap;font-family:inherit;}
.kmKTabs button.on{color:var(--km-ink);border-bottom-color:#101114;}
/* ── 과정 카드(4열, 타이포 썸네일) ── */
.kmKPane{display:none;} .kmKPane.on{display:grid;}
.kmKGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px 18px;}
.kmKCard{display:flex;flex-direction:column;text-decoration:none;border-radius:12px;overflow:hidden;
  transition:transform .16s ease,box-shadow .16s ease;background:#fff;border:1px solid var(--km-line);}
.kmKCard:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(20,30,60,.12);}
.kmKCard .th{aspect-ratio:16/10;background-size:cover;background-position:center;}
.kmKCard .th.typo{display:flex;align-items:center;justify-content:center;padding:18px;}
.kmKCard .th.typo span{font-size:21px;line-height:1.3;font-weight:900;color:#fff;letter-spacing:-.5px;
  text-shadow:0 3px 14px rgba(0,0,0,.22);text-align:left;width:100%;}
.kmKCard .bd{padding:13px 14px 15px;display:flex;flex-direction:column;gap:5px;}
.kmKCard .ct{font-size:11.5px;color:var(--km-muted);font-weight:600;}
.kmKCard .nm{font-size:14.5px;font-weight:700;color:var(--km-ink);line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:42px;}
.kmKCard .mt{font-size:12px;color:var(--km-muted);}
.kmKCard .pr{margin-top:4px;display:flex;align-items:center;gap:8px;}
.kmKCard .pr b{font-size:16px;font-weight:800;color:var(--km-ink);letter-spacing:-.3px;}
.kmKCard .pr b.fr{color:var(--km-success);} .kmKCard .pr b.rf{color:#00489c;font-size:14px;}
.kmKCard .pr .sb{font-size:12px;color:var(--km-muted);}
/* ── 다크 후기 섹션 ── */
.kmKDark{background:#101114;padding:60px 0;}
.kmKDarkIn{display:grid;grid-template-columns:260px 1fr;gap:36px;align-items:center;}
.kmKDarkTxt .ov{margin:0 0 8px;font-size:12px;font-weight:800;letter-spacing:2px;color:#7b8090;}
.kmKDarkTxt h2{margin:0 0 16px;font-size:24px;line-height:1.45;font-weight:800;color:#fff;letter-spacing:-.4px;}
.kmKDarkTxt a{font-size:13px;color:#b9bdc7;text-decoration:none;font-weight:600;}
.kmKDarkTxt a:hover{color:#fff;}
.kmKRevRow{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.kmKRev{position:relative;border-radius:14px;padding:22px 20px 18px;background:#1b1d22;border:1px solid #2a2d35;overflow:hidden;}
.kmKRev::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--rg);}
.kmKRev .tx{margin:0 0 14px;font-size:13.5px;line-height:1.75;color:#d6d9e0;min-height:70px;}
.kmKRev .who{display:flex;flex-direction:column;gap:2px;border-top:1px dashed #2f323b;padding-top:11px;}
.kmKRev .who b{font-size:13px;color:#fff;} .kmKRev .who span{font-size:11.5px;color:#8e93a0;}
/* ── 블랙 CTA 스트립 ── */
.kmKStrip{padding:8px 0 40px;}
.kmKStrip a{position:relative;display:flex;align-items:center;justify-content:center;gap:14px;background:#101114;
  border-radius:14px;padding:26px 20px;text-decoration:none;overflow:hidden;}
.kmKStrip b{color:#fff;font-size:18px;font-weight:800;letter-spacing:-.3px;}
.kmKStrip i{font-style:normal;color:#fff;font-size:18px;transition:transform .15s;}
.kmKStrip a:hover i{transform:translateX(5px);}
.kmKStrip .deco{position:absolute;border-radius:50%;}
.kmKStrip .d1{width:46px;height:46px;background:#ffd200;right:12%;top:-12px;}
.kmKStrip .d2{width:22px;height:22px;background:#3f5efb;left:14%;bottom:-6px;border-radius:4px;transform:rotate(18deg);}
.kmKStrip .d3{width:14px;height:14px;background:#ff4e9b;left:24%;top:12px;}
/* ── 인기 카테고리 ── */
.kmKCats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.kmKCats a{display:flex;flex-direction:column;gap:3px;border:1px solid var(--km-line);border-radius:10px;
  padding:18px 18px 15px;text-decoration:none;transition:.13s;background:#fff;}
.kmKCats a:hover{border-color:#101114;}
.kmKCats b{font-size:15px;color:var(--km-ink);} .kmKCats span{font-size:12px;color:var(--km-muted);}
/* ── 하단 검색 스트립 ── */
.kmKFind{background:var(--km-bg-soft);padding:44px 0;}
.kmKFindIn{display:flex;align-items:center;gap:34px;}
.kmKFindIn h2{margin:0;font-size:21px;font-weight:800;line-height:1.45;color:var(--km-ink);letter-spacing:-.4px;flex:none;}
.kmKFindIn form{display:flex;gap:8px;flex:1;flex-wrap:wrap;}
.kmKFindIn select,.kmKFindIn input{height:46px;border:1px solid var(--km-line-2,#cfd6e1);border-radius:9px;padding:0 14px;
  font-size:13.5px;background:#fff;font-family:inherit;color:var(--km-ink);}
.kmKFindIn select{flex:0 0 150px;} .kmKFindIn input{flex:1;min-width:160px;}
.kmKFindIn button{height:46px;padding:0 26px;background:#101114;color:#fff;border:0;border-radius:9px;
  font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;}
.kmKFindIn button:hover{background:var(--km-primary);}
/* ── 공지 리스트 ── */
.kmKNotice{list-style:none;margin:0;padding:0;border-top:2px solid #101114;}
.kmKNotice li a{display:flex;align-items:center;gap:14px;padding:13px 4px;border-bottom:1px solid var(--km-line);text-decoration:none;}
.kmKNotice .t{flex:1;font-size:14px;color:var(--km-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kmKNotice .d{font-size:12px;color:var(--km-muted);flex:none;}
.kmKNotice li a:hover .t{color:var(--km-primary);}
/* ── 반응형 ── */
@media (max-width:1100px){
  .kmKHeroIn{grid-template-columns:240px 1fr;gap:24px;}
  .kmKHeroSide{display:none;}
  .kmKGrid{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:860px){
  .kmKHeroIn{grid-template-columns:1fr;}
  .kmKPoster{height:220px;} .kmKPoster .big{font-size:48px;}
  .kmKHeroTxt h1{font-size:26px;}
  .kmKGrid{grid-template-columns:repeat(2,1fr);gap:16px 12px;}
  .kmKDarkIn{grid-template-columns:1fr;gap:22px;}
  .kmKRevRow{grid-template-columns:1fr;}
  .kmKCats{grid-template-columns:repeat(2,1fr);}
  .kmKFindIn{flex-direction:column;align-items:stretch;gap:16px;}
  .kmKHeroStats b{font-size:18px;} .kmKHeroStats span{font-size:11px;}
}
@media (max-width:480px){
  .kmKGrid{grid-template-columns:1fr;}
  .kmKHeroStats{grid-template-columns:repeat(2,1fr);gap:14px 8px;}
  .kmKTabs{gap:18px;} .kmKTabs button{font-size:14.5px;}
}

/* ============================================================
   kmV* — 메인 홈 v3: 밝은 톤 × 영상 강의 플랫폼(홈 전용 격리)
   라운드 크게 · 소프트 섀도 · 파스텔 포인트 · 플레이/재생시간 모티프
   ============================================================ */
/* ── 히어로 슬라이더 ── */
.kmVHero{padding:26px 0 0;background:linear-gradient(180deg,var(--km-bg-soft),#fff 80%);}
.kmVSlides{position:relative;border-radius:24px;overflow:hidden;min-height:320px;box-shadow:0 16px 44px rgba(20,40,80,.10);}
.kmVSlide{display:none;grid-template-columns:1.25fr 1fr;align-items:center;min-height:320px;padding:38px 48px;}
.kmVSlide.on{display:grid;animation:kmvFade .45s ease;}
@keyframes kmvFade{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.kmVSlide.s-blue{background:linear-gradient(120deg,#eaf2ff 0%,#dbeafe 55%,#eff6ff 100%);}
.kmVSlide.s-navy{background:linear-gradient(120deg,#062b57,#00489c);}
.kmVSlide.s-green{background:linear-gradient(120deg,#0c3b33,#11675a);}
.kmVSlide .kk{display:inline-block;font-size:12.5px;font-weight:800;letter-spacing:.4px;padding:6px 13px;border-radius:999px;margin-bottom:14px;
  background:rgba(37,99,235,.1);color:var(--km-primary-dark);}
.kmVSlide h1{margin:0 0 12px;font-size:32px;line-height:1.35;font-weight:800;letter-spacing:-.6px;color:var(--km-ink);}
.kmVSlide h1 b,.kmVSlide h1 .hl{color:var(--km-primary);}
.kmVSlide p{margin:0 0 22px;font-size:14.5px;line-height:1.7;color:var(--km-ink-soft);}
.kmVSlide .go{display:inline-block;background:var(--km-primary);color:#fff;font-weight:800;font-size:14px;
  padding:13px 24px;border-radius:12px;text-decoration:none;box-shadow:0 8px 20px rgba(37,99,235,.3);}
.kmVSlide .go:hover{background:var(--km-primary-dark);}
.kmVSlide.s-navy .kk,.kmVSlide.s-green .kk{background:rgba(255,255,255,.14);color:#fff;}
.kmVSlide.s-navy h1,.kmVSlide.s-green h1{color:#fff;}
.kmVSlide.s-navy h1 b{color:#9cc1ff;} .kmVSlide.s-green h1 b{color:#7ef0cf;}
.kmVSlide.s-navy p,.kmVSlide.s-green p{color:rgba(255,255,255,.72);}
.kmVSlide.s-navy .go{background:#fff;color:#062b57;box-shadow:none;}
.kmVSlide.s-green .go{background:#fff;color:#0c3b33;box-shadow:none;}
.kmVSlide .vis{display:flex;align-items:center;justify-content:center;}
.kmVSlide .vis img{max-width:88%;max-height:280px;}
.kmVSlide .vis.deco{position:relative;min-height:200px;}
.kmVSlide .vis.deco .c1{position:absolute;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.10);right:22%;top:8%;}
.kmVSlide .vis.deco .c2{position:absolute;width:60px;height:60px;border-radius:18px;background:rgba(255,255,255,.14);right:10%;bottom:14%;transform:rotate(14deg);}
.kmVSlide .vis.deco .c3{position:absolute;left:34%;top:50%;transform:translateY(-50%);width:84px;height:84px;border-radius:50%;
  background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;font-size:26px;color:#062b57;padding-left:6px;}
.kmVDots{position:absolute;left:0;right:0;bottom:14px;display:flex;justify-content:center;gap:7px;}
.kmVDots button{width:8px;height:8px;border-radius:999px;border:0;background:rgba(0,0,0,.18);cursor:pointer;padding:0;transition:.15s;}
.kmVSlide.s-navy ~ .kmVDots button{background:rgba(255,255,255,.3);}
.kmVDots button.on{width:22px;background:var(--km-primary);}
.kmVStats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:20px 10px 6px;}
.kmVStats div{display:flex;align-items:baseline;justify-content:center;gap:7px;}
.kmVStats b{font-size:22px;font-weight:800;color:var(--km-ink);letter-spacing:-.5px;}
.kmVStats span{font-size:12.5px;color:var(--km-muted);}
/* ── 섹션 타이틀 ── */
.kmVTitle{margin:0 0 20px;font-size:24px;font-weight:800;letter-spacing:-.5px;color:var(--km-ink);text-align:center;}
.kmVTitle u{text-decoration:none;border-bottom:3px solid var(--km-primary);padding-bottom:2px;}
/* ── 퀵패널 ── */
.kmVQuickRow{display:grid;grid-template-columns:1.7fr 1fr;gap:16px;}
.kmVQuick,.kmVCs{background:#fff;border:1px solid #eef1f5;border-radius:16px;padding:26px 28px;
  box-shadow:0 1px 2px rgba(16,24,40,.04),0 8px 24px rgba(16,24,40,.05);}
.kmVQuick{display:flex;align-items:center;gap:30px;}
.kmVQuick .qh h2{margin:0 0 6px;font-size:16px;font-weight:800;color:var(--km-ink);letter-spacing:-.3px;}
.kmVQuick .qh p{margin:0;font-size:12.5px;color:var(--km-muted);line-height:1.6;}
.kmVQuick .qi{display:flex;gap:6px;flex:1;justify-content:space-between;}
.kmVQuick .qi a{display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;font-size:12.5px;font-weight:600;color:var(--km-ink-soft);transition:.14s;}
.kmVQuick .qi .ic{width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;transition:.16s;}
.kmVQuick .qi .ic .kmIco{width:22px;height:22px;}
.kmVCs h2{margin:0 0 14px;font-size:16px;font-weight:800;color:var(--km-ink);letter-spacing:-.3px;}
.kmVCs a{display:flex;align-items:center;gap:10px;padding:13px 2px;font-size:13.5px;font-weight:600;color:var(--km-ink-soft);text-decoration:none;border-top:1px solid #eef1f5;transition:.13s;}
.kmVCs a:first-of-type{border-top:0;}
.kmVCs a .kmIco{width:17px;height:17px;color:var(--km-primary);}
.kmVCs a i{margin-left:auto;font-style:normal;color:#c2cad6;font-size:16px;transition:.13s;}
.kmVCs a:hover{color:var(--km-primary);} .kmVCs a:hover i{color:var(--km-primary);transform:translateX(3px);}
/* ── 퀵링크 4종(에디토리얼 — 화이트 카드 + 좌측 액센트 + 정제 아이콘) ── */
.kmVLinks{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.kmVLinks a{position:relative;display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #eef1f5;border-radius:14px;
  padding:20px 20px;text-decoration:none;overflow:hidden;
  box-shadow:0 1px 2px rgba(16,24,40,.03);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;}
.kmVLinks a::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--qi,var(--km-primary));opacity:0;transition:.15s;}
.kmVLinks a:hover{transform:translateY(-3px);border-color:#e2e8f1;box-shadow:0 12px 26px rgba(16,24,40,.08);}
.kmVLinks a:hover::before{opacity:1;}
.kmVLinks .tx{display:flex;flex-direction:column;gap:3px;min-width:0;}
.kmVLinks b{font-size:14.5px;font-weight:700;color:var(--km-ink);letter-spacing:-.2px;}
.kmVLinks span{font-size:12px;color:var(--km-muted);line-height:1.4;}
.kmVLinks i{flex:none;width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  margin-left:auto;background:#f1f5fb;background:color-mix(in srgb,var(--qi,var(--km-primary)) 9%,#fff);color:var(--qi,var(--km-primary));transition:.15s;}
.kmVLinks i .kmIco{width:20px;height:20px;stroke-width:1.8;}
.kmVLinks a:hover i{background:var(--qi,var(--km-primary));color:#fff;}
/* ── 영상형 카드 ── */
.kmVGrid{display:grid;grid-template-columns:repeat(4,1fr);column-gap:22px;row-gap:28px;}
.kmVCard{display:flex;flex-direction:column;text-decoration:none;}
.kmVCard .th{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background-size:cover;background-position:center;
  box-shadow:0 6px 18px rgba(20,40,80,.08);transition:transform .16s ease;}
.kmVCard:hover .th{transform:translateY(-4px);}
.kmVCard .th.typo{display:flex;align-items:center;padding:16px 18px;}
.kmVCard .th.typo .tt{font-size:18px;line-height:1.35;font-weight:900;letter-spacing:-.4px;}
.kmVCard .play,.kmVFeatTh .play{position:absolute;right:12px;bottom:12px;width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.94);box-shadow:0 4px 12px rgba(0,0,0,.18);}
.kmVCard .play::before,.kmVFeatTh .play::before{content:"";position:absolute;left:55%;top:50%;transform:translate(-50%,-50%);
  border-style:solid;border-width:6px 0 6px 10px;border-color:transparent transparent transparent #1b2433;}
.kmVCard .dur,.kmVFeatTh .dur{position:absolute;left:12px;bottom:12px;background:rgba(16,17,20,.78);color:#fff;
  font-size:11.5px;font-weight:700;padding:4px 9px;border-radius:7px;}
.kmVCard .bd{padding:12px 4px 0;display:flex;flex-direction:column;gap:4px;flex:1;}
.kmVCard .ct{font-size:11.5px;color:var(--km-muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
/* 제목 2줄 고정 높이 — 1줄/2줄 혼재로 카드 높이가 들쭉날쭉해 그리드에 빈칸 생기는 것 방지 */
.kmVCard .nm{font-size:14.5px;font-weight:700;color:var(--km-ink);line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:calc(1.45em * 2);}
/* 가격/메타 한 줄 고정(넘치면 생략) — 줄바꿈으로 인한 높이 변동 방지 */
.kmVCard .pr{display:flex;align-items:center;gap:8px;margin-top:auto;flex-wrap:nowrap;white-space:nowrap;overflow:hidden;}
.kmVCard .pr .pp{margin-left:auto;}
.kmVCard .pr b{font-size:15px;font-weight:800;color:var(--km-ink);}
.kmVCard .pr b.fr{color:var(--km-success);} .kmVCard .pr b.rf{color:#00489c;font-size:13.5px;}
.kmVCard .pr .sb,.kmVCard .pr .pp{font-size:11.5px;color:var(--km-muted);}
.kmVCard .pr .st{font-size:12px;font-weight:700;color:#f59e0b;}
/* ── 탭 ── */
.kmVTabs{display:flex;justify-content:center;gap:8px;margin-bottom:24px;flex-wrap:wrap;}
.kmVTabs button{border:1px solid var(--km-line);background:#fff;border-radius:999px;padding:9px 20px;
  font-size:14px;font-weight:700;color:var(--km-ink-soft);cursor:pointer;font-family:inherit;transition:.13s;}
.kmVTabs button.on{background:var(--km-ink);border-color:var(--km-ink);color:#fff;}
.kmVMoreWrap{text-align:center;margin-top:26px;}
.kmVMore{display:inline-block;background:var(--km-primary);color:#fff;font-weight:700;font-size:14px;
  padding:13px 34px;border-radius:999px;text-decoration:none;}
.kmVMore:hover{background:var(--km-primary-dark);}
.kmVMore.ghost{background:#fff;color:var(--km-ink-soft);border:1px solid var(--km-line);}
.kmVMore.ghost:hover{border-color:var(--km-primary);color:var(--km-primary);}
/* ── 피처드 ── */
.kmVFeat{display:grid;grid-template-columns:1.35fr 1fr .72fr;gap:26px;align-items:center;background:#fff;
  border:1px solid var(--km-line);border-radius:22px;padding:26px;box-shadow:var(--km-shadow);}
.kmVFeatTh{position:relative;display:block;aspect-ratio:16/10;border-radius:16px;overflow:hidden;background-size:cover;background-position:center;text-decoration:none;}
.kmVFeatTh.typo{display:flex;align-items:center;padding:26px;}
.kmVFeatTh.typo .tt{font-size:25px;line-height:1.4;font-weight:900;letter-spacing:-.5px;}
.kmVFeatTh .play.big{width:54px;height:54px;right:auto;left:50%;top:50%;bottom:auto;transform:translate(-50%,-50%);}
.kmVFeatBd .tg{display:flex;gap:6px;margin-bottom:10px;}
.kmVFeatBd .tg span{font-size:11.5px;font-weight:700;padding:4px 11px;border-radius:999px;}
.kmVFeatBd .t1{background:#eaf2ff;color:var(--km-primary-dark);}
.kmVFeatBd .t2{background:#f1f5f0;color:#3f6212;}
.kmVFeatBd h3{margin:0 0 14px;font-size:20px;line-height:1.45;font-weight:800;letter-spacing:-.4px;}
.kmVFeatBd h3 a{color:var(--km-ink);text-decoration:none;}
.kmVFeatBd .pts{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:7px;}
.kmVFeatBd .pts li{position:relative;padding-left:16px;font-size:13.5px;color:var(--km-ink-soft);}
.kmVFeatBd .pts li::before{content:"";position:absolute;left:0;top:7px;width:7px;height:7px;border-radius:2px;background:var(--km-primary);}
.kmVFeatBd .go{display:inline-block;font-size:13.5px;font-weight:800;color:var(--km-primary);text-decoration:none;}
.kmVFeatSide{display:flex;flex-direction:column;gap:10px;border-left:1px dashed var(--km-line);padding-left:22px;}
.kmVFeatSide a{display:flex;align-items:center;gap:11px;text-decoration:none;}
.kmVFeatSide .mth{flex:none;width:74px;aspect-ratio:16/10;border-radius:9px;background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;font-size:13px;}
.kmVFeatSide .mnm{font-size:12.5px;line-height:1.45;color:var(--km-ink-soft);font-weight:600;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.kmVFeatSide a:hover .mnm{color:var(--km-primary);}
/* ── 후기 ── */
.kmVRevRow{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.kmVRev{background:#fff;border:1px solid var(--km-line);border-radius:16px;padding:20px;box-shadow:var(--km-shadow);display:flex;flex-direction:column;}
.kmVRev .av{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;margin-bottom:12px;}
.kmVRev .tx{margin:0 0 14px;font-size:13px;line-height:1.75;color:var(--km-ink-soft);flex:1;}
.kmVRev .who{display:flex;flex-direction:column;gap:2px;border-top:1px dashed var(--km-line);padding-top:10px;}
.kmVRev .who b{font-size:13px;color:var(--km-ink);} .kmVRev .who span{font-size:11.5px;color:var(--km-muted);}
/* ── 가이드 스트립 ── */
.kmVGuide{display:flex;align-items:center;justify-content:center;gap:14px;background:linear-gradient(120deg,#fef9e7,#fdf0d5);
  border-radius:16px;padding:20px;text-decoration:none;}
.kmVGuide .bk{font-size:22px;}
.kmVGuide b{font-size:16px;color:#713f12;font-weight:800;}
.kmVGuide .ar{font-size:13px;color:#a16207;font-weight:700;}
.kmVGuide:hover .ar{text-decoration:underline;}
/* ── 소식 카드 ── */
.kmVNews{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.kmVNews a{display:flex;flex-direction:column;gap:9px;background:#fff;border:1px solid var(--km-line);border-radius:16px;
  padding:22px;text-decoration:none;box-shadow:var(--km-shadow);transition:transform .14s ease;}
.kmVNews a:hover{transform:translateY(-3px);}
.kmVNews .bd2{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:var(--km-primary);}
.kmVNews .bd2 .kmIco{width:14px;height:14px;}
.kmVNews b{font-size:15px;color:var(--km-ink);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.kmVNews p{margin:0;font-size:12.5px;color:var(--km-ink-soft);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.kmVNews .dt{font-size:11.5px;color:var(--km-muted);}
/* ── 반응형 ── */
@media (max-width:1100px){
  .kmVGrid{grid-template-columns:repeat(3,1fr);}
  .kmVFeat{grid-template-columns:1fr 1fr;}
  .kmVFeatSide{display:none;}
  .kmVRevRow{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:860px){
  .kmVSlide{grid-template-columns:1fr;padding:28px 24px 40px;}
  .kmVSlide .vis{display:none;}
  .kmVSlide h1{font-size:24px;}
  .kmVStats{grid-template-columns:repeat(2,1fr);gap:12px 6px;}
  .kmVQuickRow{grid-template-columns:1fr;}
  .kmVQuick{flex-direction:column;align-items:stretch;gap:16px;}
  .kmVLinks{grid-template-columns:repeat(2,1fr);}
  .kmVGrid{grid-template-columns:repeat(2,1fr);column-gap:14px;row-gap:24px;}
  .kmVFeat{grid-template-columns:1fr;padding:18px;}
  .kmVNews{grid-template-columns:1fr;}
}
@media (max-width:480px){
  .kmVGrid{grid-template-columns:1fr;}
  .kmVLinks{grid-template-columns:1fr;}
  .kmVRevRow{grid-template-columns:1fr;}
  .kmVTitle{font-size:20px;}
}

/* ============================================================
   kmV 디테일 강화 — 배경 무늬 · 아이콘 디테일 · 사진 프레임 · 호버
   ============================================================ */
/* ── 배경 무늬: 은은한 도트 그리드(soft 섹션) + 히어로 글로우 ── */
body.kmHome .kmSection.soft{
  background-image:radial-gradient(rgba(37,99,235,.07) 1.2px, transparent 1.2px);
  background-size:22px 22px;
  background-color:var(--km-bg-soft);}
.kmVHero{position:relative;}
.kmVHero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(420px 260px at 12% 0%, rgba(37,99,235,.10), transparent 70%),
    radial-gradient(360px 240px at 92% 18%, rgba(14,165,183,.10), transparent 70%),
    radial-gradient(rgba(37,99,235,.05) 1.2px, transparent 1.2px);
  background-size:auto,auto,26px 26px;}
.kmVHero .kmWrap{position:relative;}
.kmVSlide{position:relative;}
.kmVSlide::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:24px;
  background-image:radial-gradient(rgba(255,255,255,.16) 1px, transparent 1px);background-size:18px 18px;opacity:.4;}
.kmVSlide.s-blue::after{background-image:radial-gradient(rgba(37,99,235,.10) 1px, transparent 1px);}
.kmVSlide > *{position:relative;z-index:1;}
/* 검색 스트립에도 살짝 */
.kmKFind{background-image:radial-gradient(rgba(37,99,235,.06) 1.2px, transparent 1.2px);background-size:20px 20px;background-color:var(--km-bg-soft);}
/* ── 히어로 사진 프레임(배너 사진) ── */
.kmVSlide .vis.photo{position:relative;}
.kmVSlide .vis.photo img{width:100%;max-width:430px;max-height:265px;object-fit:cover;border-radius:18px;
  box-shadow:0 20px 44px rgba(0,0,0,.28), 0 0 0 6px rgba(255,255,255,.14);}
.kmVSlide .vis.photo::after{content:"▶";position:absolute;width:56px;height:56px;border-radius:50%;
  background:rgba(255,255,255,.95);color:#062b57;display:flex;align-items:center;justify-content:center;
  font-size:18px;padding-left:5px;box-shadow:0 8px 24px rgba(0,0,0,.3);left:50%;top:50%;transform:translate(-50%,-50%);}
.kmVSlide.s-blue .vis img{filter:drop-shadow(0 16px 30px rgba(37,99,235,.25));}
/* ── 정제 톤온톤(브랜드 네이비) — 캔디 4색 제거 ── */
.kmVQuick .qi .ic{background:#f4f7fb;border:1px solid #e7edf5;color:var(--km-primary);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);}
.kmVQuick .qi a:nth-child(n) .ic{background:#f4f7fb;color:var(--km-primary);border-color:#e7edf5;}
.kmVQuick .qi a:hover .ic{background:var(--km-primary);color:#fff;border-color:var(--km-primary);
  transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,72,156,.22);}
.kmVQuick .qi .ic .kmIco{stroke-width:1.7;}
.kmVQuick .qi a:hover{color:var(--km-primary);}
.kmVLinks i .kmIco{width:34px;height:34px;stroke-width:1.6;}
.kmVCs a .kmIco{width:18px;height:18px;}
/* ── 섹션 타이틀 장식 ── */
.kmVTitle{position:relative;}
.kmVTitle::before{content:"";display:block;width:34px;height:5px;border-radius:99px;margin:0 auto 12px;
  background:linear-gradient(90deg,var(--km-primary),#7dd3fc);}
/* ── 카드 사진/호버 디테일 ── */
.kmVCard .th{box-shadow:0 6px 18px rgba(20,40,80,.10), inset 0 0 0 1px rgba(0,0,0,.04);}
.kmVCard .th::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.22));opacity:0;transition:.18s;}
.kmVCard .th.typo::before{display:none;}
.kmVCard:hover .th::before{opacity:1;}
.kmVCard .play{transition:.18s;}
.kmVCard:hover .play{transform:scale(1.14);box-shadow:0 6px 18px rgba(0,0,0,.3);}
.kmVCard:hover .nm{color:var(--km-primary);}
.kmVFeatTh{box-shadow:0 10px 28px rgba(20,40,80,.14);}
.kmVFeatTh .play.big{transition:.18s;}
.kmVFeatTh:hover .play.big{transform:translate(-50%,-50%) scale(1.1);}
/* 후기 아바타 링 */
.kmVRev .av{box-shadow:0 0 0 3px #fff, 0 0 0 5px rgba(37,99,235,.18);}
/* 소식 카드 상단 라인 */
.kmVNews a{position:relative;overflow:hidden;}
.kmVNews a::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;
  background:linear-gradient(90deg,var(--km-primary),#7dd3fc);opacity:0;transition:.15s;}
.kmVNews a:hover::before{opacity:1;}
/* 가이드 스트립 무늬 */
.kmVGuide{position:relative;overflow:hidden;}
.kmVGuide::after{content:"";position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;
  background:rgba(255,255,255,.45);}

/* ============================================================
   kmN* — 구독형(스트리밍) 메인 히어로 + 혜택/고객센터 (홈 전용)
   ============================================================ */
.kmNHero{position:relative;min-height:520px;display:flex;align-items:center;overflow:hidden;background:#0a0c12;}
.kmNSlides{position:absolute;inset:0;}
.kmNSlide{position:absolute;inset:0;opacity:0;transition:opacity 1s ease;background-size:cover;background-position:center;background-image:var(--bg);}
.kmNSlide.on{opacity:1;}
.kmNHero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(8,10,16,.92) 0%,rgba(8,10,16,.78) 42%,rgba(8,10,16,.30) 78%,rgba(8,10,16,.55) 100%),
            linear-gradient(0deg,rgba(8,10,16,.85),transparent 45%);}
.kmNHeroIn{position:relative;z-index:2;padding:60px 0;max-width:680px;}
.kmNHeroIn .badge{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:800;letter-spacing:.3px;
  color:#dbe7ff;background:rgba(37,99,235,.22);border:1px solid rgba(120,160,255,.35);padding:7px 14px;border-radius:999px;margin-bottom:18px;}
.kmNHeroIn .badge .kmIco{width:15px;height:15px;}
.kmNHeroIn h1{margin:0 0 14px;font-size:42px;line-height:1.28;font-weight:900;letter-spacing:-1px;color:#fff;
  text-shadow:0 4px 20px rgba(0,0,0,.4);}
.kmNHeroIn h1 b{color:#7fb0ff;} .kmNHeroIn h1 .hl,.kmNHeroIn h1 .em{color:#7fb0ff;}
.kmNHeroIn p{margin:0 0 24px;font-size:16px;line-height:1.6;color:#c9cedb;text-shadow:0 2px 12px rgba(0,0,0,.4);}
.kmNSearch{display:flex;gap:8px;background:rgba(255,255,255,.10);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:9px;max-width:620px;flex-wrap:wrap;}
.kmNSearch select,.kmNSearch input{height:46px;border:0;border-radius:9px;padding:0 14px;font-size:14px;font-family:inherit;background:rgba(255,255,255,.92);color:#1b2433;}
.kmNSearch select{flex:0 0 130px;} .kmNSearch input{flex:1;min-width:160px;}
.kmNSearch button{height:46px;padding:0 22px;border:0;border-radius:9px;background:var(--km-primary);color:#fff;font-weight:800;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-family:inherit;}
.kmNSearch button .kmIco{width:16px;height:16px;}
.kmNSearch button:hover{background:var(--km-primary-dark);}
.kmNGo{display:inline-block;margin-top:18px;color:#fff;font-weight:700;font-size:14px;text-decoration:none;border-bottom:2px solid rgba(255,255,255,.4);padding-bottom:3px;}
.kmNGo:hover{border-color:#fff;}
.kmNDots{display:flex;gap:8px;margin-top:24px;}
.kmNDots button{width:9px;height:9px;border-radius:999px;border:0;background:rgba(255,255,255,.35);cursor:pointer;padding:0;transition:.15s;}
.kmNDots button.on{width:26px;background:#fff;}
/* 혜택 스트립 */
.kmNPerks{background:#12151c;}
.kmNPerks .kmWrap{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:22px 0;}
.kmNPerks .it{display:flex;align-items:center;gap:13px;padding:6px 14px;border-left:1px solid rgba(255,255,255,.08);}
.kmNPerks .it:first-child{border-left:0;}
.kmNPerks .ic{width:44px;height:44px;border-radius:12px;flex:none;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,rgba(37,99,235,.25),rgba(37,99,235,.10));color:#9cc1ff;}
.kmNPerks .ic .kmIco{width:22px;height:22px;}
.kmNPerks b{display:block;font-size:15px;color:#fff;font-weight:800;}
.kmNPerks .vlwrap b{display:inline;} .kmNPerks .vlwrap .suf{font-size:13px;color:#fff;font-weight:700;}
.kmNPerks .it span:not(.ic):not(.suf):not(.vlwrap){font-size:12px;color:#9aa2b2;}
.kmNPerks .it > div{display:flex;flex-direction:column;gap:2px;}
/* 퀵링크 3종 */
.kmVLinks.n3{grid-template-columns:repeat(3,1fr);}
/* 후기 별점 */
.kmVRev .stars{color:#f5a623;font-size:14px;letter-spacing:1px;margin-bottom:8px;}
/* 고객센터 안내 */
.kmVHelp{display:grid;grid-template-columns:1.1fr 1fr;gap:0;border:1px solid var(--km-line);border-radius:20px;overflow:hidden;box-shadow:var(--km-shadow);}
.kmVHelp .hl{display:flex;gap:18px;align-items:center;padding:34px 36px;background:linear-gradient(135deg,#062b57,#00489c);color:#fff;}
.kmVHelp .hl .ic{width:60px;height:60px;border-radius:16px;flex:none;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.14);}
.kmVHelp .hl .ic .kmIco{width:30px;height:30px;}
.kmVHelp .hl .ov{margin:0 0 5px;font-size:11px;font-weight:800;letter-spacing:2px;color:#9cc1ff;}
.kmVHelp .hl h2{margin:0 0 8px;font-size:21px;font-weight:800;}
.kmVHelp .hl .ds{margin:0;font-size:13px;line-height:1.7;color:rgba(255,255,255,.78);}
.kmVHelp .hr{padding:30px 36px;display:flex;flex-direction:column;gap:12px;justify-content:center;background:#fff;}
.kmVHelp .hr .tel{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--km-ink-soft);}
.kmVHelp .hr .tel .kmIco{width:20px;height:20px;color:var(--km-primary);}
.kmVHelp .hr .tel b{font-size:27px;font-weight:900;color:var(--km-ink);letter-spacing:-.5px;}
.kmVHelp .hr .hours{font-size:12.5px;color:var(--km-muted);line-height:1.6;}
.kmVHelp .hr .ch{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;}
.kmVHelp .hr .ch a{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--km-ink-soft);
  border:1px solid var(--km-line);border-radius:999px;padding:8px 14px;text-decoration:none;transition:.13s;}
.kmVHelp .hr .ch a .kmIco{width:15px;height:15px;color:var(--km-primary);}
.kmVHelp .hr .ch a:hover{border-color:var(--km-primary);color:var(--km-primary);}
/* ── 반응형 ── */
@media (max-width:1000px){
  .kmNPerks .kmWrap{grid-template-columns:repeat(2,1fr);gap:14px 8px;}
  .kmNPerks .it:nth-child(3){border-left:0;}
  .kmVHelp{grid-template-columns:1fr;}
}
@media (max-width:860px){
  .kmNHero{min-height:auto;}
  .kmNHeroIn{padding:44px 0;max-width:none;}
  .kmNHeroIn h1{font-size:30px;}
  .kmNSearch{max-width:none;}
  .kmVLinks.n3{grid-template-columns:1fr;}
  .kmVGrid{column-gap:16px;row-gap:22px;}
}
@media (max-width:480px){
  .kmNPerks .kmWrap{grid-template-columns:1fr;}
  .kmNPerks .it{border-left:0;}
  .kmNHeroIn h1{font-size:25px;}
  .kmVHelp .hl,.kmVHelp .hr{padding:24px;}
}

/* ── 영상 카드 별점(분류 줄 우측, 만족도 실데이터 기준) ── */
.kmVCard .ct{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.kmVCard .ct .cl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kmVCard .ct .rt{flex:none;color:#f5a623;font-size:11px;letter-spacing:-1px;display:inline-flex;align-items:center;gap:3px;}
.kmVCard .ct .rt b{font-size:11.5px;font-weight:800;color:var(--km-ink-soft);letter-spacing:0;}
.kmVFeatBd .tg .t3{background:#fff7e6;color:#b45309;font-weight:800;}

/* ── 교육담당자(B2B) 패널 — 환급 절차 아래 ── */
.kmVBiz{margin-top:22px;display:grid;grid-template-columns:1.3fr 1fr;gap:20px;align-items:center;
  background:linear-gradient(120deg,#062b57,#00489c);border-radius:20px;padding:30px 36px;box-shadow:0 14px 36px rgba(22,35,74,.25);}
.kmVBiz .ov{margin:0 0 6px;font-size:11px;font-weight:800;letter-spacing:2px;color:#9cc1ff;}
.kmVBiz h3{margin:0 0 10px;font-size:22px;font-weight:800;color:#fff;letter-spacing:-.4px;}
.kmVBiz .ds{margin:0;font-size:13.5px;line-height:1.75;color:rgba(255,255,255,.78);}
.kmVBiz .br{display:flex;flex-direction:column;gap:9px;}
.kmVBiz .br a{display:flex;align-items:center;gap:9px;justify-content:center;font-size:14px;font-weight:700;
  border-radius:11px;padding:13px 18px;text-decoration:none;transition:.13s;}
.kmVBiz .br a .kmIco{width:17px;height:17px;}
.kmVBiz .br .b1{background:#fff;color:#062b57;}
.kmVBiz .br .b1:hover{background:var(--km-primary);color:#fff;}
.kmVBiz .br .b2{border:1px solid rgba(255,255,255,.35);color:#fff;}
.kmVBiz .br .b2:hover{border-color:#fff;background:rgba(255,255,255,.08);}
@media (max-width:860px){ .kmVBiz{grid-template-columns:1fr;padding:24px;} }

/* ── finecyber 적용: 카드 훈련등급/환급 뱃지 + 강사 ── */
.kmVCard .th .badges{position:absolute;left:10px;top:10px;display:flex;gap:5px;}
.kmVCard .th .badges .gr{background:rgba(16,17,20,.82);color:#fff;font-size:10.5px;font-weight:800;padding:4px 8px;border-radius:6px;}
.kmVCard .th .badges .rfb{background:var(--km-primary);color:#fff;font-size:10.5px;font-weight:800;padding:4px 8px;border-radius:6px;}
.kmVCard .pr .prof{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--km-ink-soft);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kmVCard .pr .prof .kmIco{width:13px;height:13px;color:var(--km-muted);flex:none;}
/* ── 협력·인증 기관 스트립 ── */
.kmVOrgs{text-align:center;}
.kmVOrgs .ov{display:block;font-size:12px;font-weight:700;letter-spacing:.5px;color:var(--km-muted);margin-bottom:14px;}
.kmVOrgs .logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 14px;}
.kmVOrgs .logos span{font-size:15px;font-weight:800;color:var(--km-ink-soft);letter-spacing:-.3px;
  padding:10px 20px;border:1px solid var(--km-line);border-radius:10px;background:#fff;opacity:.85;}
@media (max-width:640px){ .kmVOrgs .logos span{font-size:13px;padding:8px 14px;} }

/* ── 로고 이미지(파일 있을 때) ── */
.kmLogo.hasimg{padding:0;}
.kmLogo.hasimg img{height:38px;width:auto;display:block;}
@media (max-width:600px){ .kmLogo.hasimg img{height:32px;} }

/* ── 퀵링크 아이콘 색(개별 톤) + 4열 ── */
.kmVLinks.n4{grid-template-columns:repeat(4,1fr);}
.kmVLinks a i{color:var(--qi,rgba(0,0,0,.18));opacity:.9;}
/* ── 바로가기 서비스 배너(비상식) ── */
.kmVServ{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.kmVServ a{display:flex;align-items:center;justify-content:space-between;gap:14px;border-radius:18px;padding:24px 26px;
  text-decoration:none;overflow:hidden;position:relative;transition:transform .15s ease,box-shadow .15s ease;color:#fff;}
.kmVServ a:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(20,40,80,.16);}
.kmVServ .s1{background:linear-gradient(120deg,#00489c,#2f7fd6);}
.kmVServ .s2{background:linear-gradient(120deg,#00489c,#22b3a3);}
.kmVServ .s3{background:linear-gradient(120deg,#7c3aed,#a78bfa);}
.kmVServ .tx b{display:block;font-size:17px;font-weight:800;margin-bottom:5px;letter-spacing:-.3px;}
.kmVServ .tx span{font-size:12.5px;opacity:.86;line-height:1.5;}
.kmVServ .ic{flex:none;width:52px;height:52px;border-radius:14px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;}
.kmVServ .ic .kmIco{width:26px;height:26px;}
@media (max-width:860px){ .kmVServ{grid-template-columns:1fr;} .kmVLinks.n4{grid-template-columns:repeat(2,1fr);} }
@media (max-width:480px){ .kmVLinks.n4{grid-template-columns:1fr;} }

/* ============================================================
   kmB* — 풀폭 배너(단일 슬라이드 크로스페이드, 좌우 peek 없음)
   ============================================================ */
.kmBHero.full{padding:0;overflow:hidden;}
.kmBFull{position:relative;height:380px;}
.kmBSlide{position:absolute;inset:0;display:flex;align-items:center;text-decoration:none;opacity:0;
  background:#062b57;background-image:var(--bg);background-size:cover;background-position:center;
  transition:opacity .8s ease;pointer-events:none;}
.kmBSlide.on{opacity:1;pointer-events:auto;}
.kmBSlide::after{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(4,16,38,.88) 0%,rgba(4,16,38,.66) 42%,rgba(4,16,38,.18) 78%,rgba(4,16,38,.40) 100%);}
.kmBSlide .kmWrap{position:relative;z-index:2;width:100%;}
.kmBSlide .tx{max-width:620px;}
.kmBSlide .kk{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:800;letter-spacing:.3px;
  color:#cfe0ff;background:rgba(47,127,214,.28);border:1px solid rgba(120,160,255,.4);padding:6px 13px;border-radius:999px;margin-bottom:16px;}
.kmBSlide .kk .kmIco{width:14px;height:14px;}
.kmBSlide .tx h2{margin:0 0 14px;font-size:38px;line-height:1.3;font-weight:900;letter-spacing:-1px;color:#fff;text-shadow:0 3px 18px rgba(0,0,0,.4);}
.kmBSlide .tx h2 b{color:#7fb6ff;}
.kmBSlide .tx p{margin:0 0 22px;font-size:16px;line-height:1.6;color:#d7e1f2;}
.kmBSlide .tx .go{display:inline-block;background:#fff;color:#00386f;font-weight:800;font-size:14.5px;padding:13px 24px;border-radius:10px;}
.kmBSlide:hover .tx .go{background:var(--km-accent);color:#fff;}
.kmBArrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:48px;height:48px;border-radius:50%;
  border:0;background:rgba(255,255,255,.18);backdrop-filter:blur(4px);color:#fff;font-size:26px;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s;}
.kmBArrow.prev{left:24px;} .kmBArrow.next{right:24px;}
.kmBArrow:hover{background:rgba(255,255,255,.32);}
.kmBDots{position:absolute;left:0;right:0;bottom:20px;z-index:5;display:flex;justify-content:center;gap:8px;}
.kmBDots button{width:9px;height:9px;border-radius:999px;border:0;background:rgba(255,255,255,.4);cursor:pointer;padding:0;transition:.15s;}
.kmBDots button.on{width:26px;background:#fff;}
@media (max-width:860px){
  .kmBFull{height:300px;}
  .kmBSlide .tx h2{font-size:25px;}
  .kmBSlide .tx p{font-size:13.5px;}
  .kmBArrow{display:none;}
}

/* GNB 좁은 폭: 검색창 숨겨 메뉴 한 줄 유지(통합검색은 모바일 메뉴/과정목록에서) */
@media (max-width:1100px) and (min-width:1025px){ .kmSearchTop{display:none;} /* GNB압축 */ }

/* ── 과정목록(archive.php) 환급 영상형 카드 ── */
.kmCourseGrid4 .kmCourseCard{display:flex;flex-direction:column;background:#fff;border:1px solid #eef1f5;border-radius:14px;overflow:hidden;
  box-shadow:0 1px 2px rgba(16,24,40,.03);transition:transform .15s ease,box-shadow .15s ease;}
.kmCourseGrid4 .kmCourseCard:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(16,24,40,.10);}
.kmCourseGrid4 .thumb{position:relative;aspect-ratio:16/10;background-size:cover;background-position:center;}
.kmCourseGrid4 .thumb .cbadges{position:absolute;left:10px;top:10px;display:flex;gap:5px;}
.kmCourseGrid4 .thumb .cbadges .gr{background:rgba(16,17,20,.82);color:#fff;font-size:10.5px;font-weight:800;padding:4px 8px;border-radius:6px;}
.kmCourseGrid4 .thumb .cbadges .rf{background:var(--km-primary);color:#fff;font-size:10.5px;font-weight:800;padding:4px 8px;border-radius:6px;}
.kmCourseGrid4 .thumb .play{position:absolute;right:12px;bottom:12px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 4px 12px rgba(0,0,0,.18);}
.kmCourseGrid4 .thumb .play::before{content:"";position:absolute;left:55%;top:50%;transform:translate(-50%,-50%);border-style:solid;border-width:6px 0 6px 10px;border-color:transparent transparent transparent #1b2433;}
.kmCourseGrid4 .thumb .dur{position:absolute;left:12px;bottom:12px;background:rgba(16,17,20,.78);color:#fff;font-size:11px;font-weight:700;padding:4px 9px;border-radius:7px;}
.kmCourseGrid4 .body{padding:13px 14px 15px;display:flex;flex-direction:column;gap:5px;flex:1;}
.kmCourseGrid4 .ctop{font-size:11.5px;color:var(--km-muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.kmCourseGrid4 .cName{font-size:14.5px;font-weight:700;color:var(--km-ink);line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:calc(1.45em * 2);}
.kmCourseGrid4 .meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--km-muted);}
.kmCourseGrid4 .meta .prof{display:inline-flex;align-items:center;gap:4px;color:var(--km-ink-soft);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kmCourseGrid4 .meta .prof .kmIco{width:13px;height:13px;color:var(--km-muted);flex:none;}
.kmCourseGrid4 .meta span:last-child{margin-left:auto;flex:none;}
.kmCourseGrid4 .cspec{font-size:11.5px;color:var(--km-primary);font-weight:600;}

/* ============================================================
   디지털 아카이브 — 과정목록 카드 / 차시 담기 / 내 강의실 세로카드 / 담기 모달
   ============================================================ */
:root{ --km-arc:#00489c; --km-arc-dark:#00386f; --km-arc-soft:#e3edf9; }

/* 과정목록 카드 */
.kmArcGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin:6px 0 30px;}
.kmArcCard{background:#fff;border:1px solid var(--km-line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:.15s;}
.kmArcCard:hover{box-shadow:var(--km-shadow);transform:translateY(-3px);}
.kmArcCard .th{position:relative;display:block;aspect-ratio:16/10;background:#dfe7f5 center/cover no-repeat;}
.kmArcCard .th .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;background:rgba(15,23,42,.55);backdrop-filter:blur(2px);transition:.15s;}
.kmArcCard .th .play::after{content:"";position:absolute;left:53%;top:50%;transform:translate(-50%,-50%);border-style:solid;border-width:8px 0 8px 13px;border-color:transparent transparent transparent #fff;}
.kmArcCard:hover .th .play{background:var(--km-arc);}
.kmArcCard .cbadges{position:absolute;top:10px;left:10px;display:flex;gap:5px;}
.kmArcCard .cbadges span{font-size:11px;font-weight:800;color:#fff;border-radius:6px;padding:3px 8px;letter-spacing:.02em;}
.kmArcCard .cbadges .new{background:var(--km-badge-new,#f97316);}
.kmArcCard .cbadges .hot{background:#e11d48;}
.kmArcCard .th .free{position:absolute;top:10px;right:10px;font-size:11px;font-weight:800;border-radius:6px;padding:3px 8px;color:#fff;}
.kmArcCard .th .free.on{background:var(--km-arc);}
.kmArcCard .th .free.paid{background:#475569;}
.kmArcCard .th .dur{position:absolute;right:10px;bottom:10px;background:rgba(15,23,42,.78);color:#fff;font-size:11.5px;font-weight:700;border-radius:6px;padding:3px 8px;}
.kmArcCard .body{padding:14px 14px 16px;display:flex;flex-direction:column;gap:9px;flex:1;}
.kmArcCard .ctop{display:flex;align-items:center;gap:8px;font-size:12px;}
.kmArcCard .ctop .cat{background:var(--km-arc-soft);color:var(--km-arc-dark);font-weight:700;border-radius:6px;padding:2px 8px;}
.kmArcCard .ctop .ses{color:var(--km-muted);}
.kmArcCard .cName{font-size:15px;font-weight:700;line-height:1.45;color:inherit;text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:calc(1.45em * 2);}
.kmArcCard .cName:hover{color:var(--km-arc-dark);}
.kmArcCard .rate{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--km-muted);}
.kmArcCard .rate .stars{color:#f5a623;letter-spacing:-1px;font-size:13px;}
.kmArcCard .rate .stars.off{color:#d4d9e2;}
.kmArcCard .rate b{color:var(--km-ink);font-weight:800;}
.kmArcCard .rate .rc{color:var(--km-muted);}
.kmArcCard .rate .enr{margin-left:auto;display:inline-flex;align-items:center;gap:3px;}
.kmArcCard .rate .enr .kmIco{width:13px;height:13px;}
.kmArcCard .acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px;}
.kmArcCard .acts .km-btn{font-size:13px;padding:9px 0;border-radius:9px;text-align:center;}
.kmArcCard .acts .km-btn-primary{background:var(--km-arc);border-color:var(--km-arc);}
.kmArcCard .acts .km-btn-primary:hover{background:var(--km-arc-dark);border-color:var(--km-arc-dark);}

/* 과정상세 — 차시 담기 테이블 */
.kmChapHead{margin:6px 0 10px;}
.kmChapGuide{font-size:13px;color:var(--km-ink-soft);margin:6px 0 0;}
.kmChapToolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--km-arc-soft);border:1px solid #cfe7e3;border-radius:12px;padding:11px 14px;margin-bottom:10px;}
.kmChapToolbar .all{font-size:13.5px;font-weight:700;display:inline-flex;align-items:center;gap:7px;cursor:pointer;}
.kmChapToolbar .cnt{font-size:12.5px;color:var(--km-arc-dark);font-weight:700;}
.kmChapToolbar .acts{margin-left:auto;display:flex;gap:8px;}
.kmChapToolbar .acts .km-btn{font-size:13px;padding:8px 14px;border-radius:9px;}
.kmChapToolbar .acts .km-btn-primary{background:var(--km-arc);border-color:var(--km-arc);}
.kmChapTable{border:1px solid var(--km-line);border-radius:12px;overflow:hidden;}
.kmChapTr{display:grid;grid-template-columns:88px 1fr 96px 70px;align-items:center;gap:10px;padding:12px 14px;border-top:1px solid var(--km-line);font-size:14px;cursor:pointer;margin:0;}
.kmChapTr:first-child{border-top:none;}
.kmChapTr.head{background:#f5f8fc;font-size:12.5px;font-weight:700;color:var(--km-ink-soft);cursor:default;}
.kmChapTr:not(.head):hover{background:#f7fbfa;}
.kmChapTr.has{background:var(--km-arc-soft);}
.kmChapTr .c1{font-weight:700;color:var(--km-arc-dark);}
.kmChapTr .c2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kmChapTr .c3{color:var(--km-muted);font-size:13px;}
.kmChapTr .c4{text-align:center;}
.kmChapTr .c4 .done{font-style:normal;font-size:12px;font-weight:800;color:var(--km-arc);background:#fff;border:1px solid var(--km-arc);border-radius:6px;padding:2px 8px;}
.kmChapTr input[type=checkbox]{width:18px;height:18px;accent-color:var(--km-arc);cursor:pointer;}
.kmChapFoot{min-height:24px;margin-top:12px;font-size:13.5px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.kmChapFoot .ok,.kmBsktFoot .ok{color:var(--km-arc-dark);font-weight:700;}
.kmChapFoot .warn,.kmBsktFoot .warn{color:#dc2626;font-weight:700;}
.km-btn.sm{padding:6px 12px;font-size:12.5px;border-radius:8px;}

/* 내 강의실 — 세로 카드 */
.kmArcMyGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:18px;}
.kmArcMyCard{background:#fff;border:1px solid var(--km-line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:.15s;}
.kmArcMyCard:hover{box-shadow:var(--km-shadow);transform:translateY(-3px);}
.kmArcMyCard .th{position:relative;display:block;aspect-ratio:16/9;background:#dfe7f5 center/cover no-repeat;}
.kmArcMyCard .th .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:rgba(15,23,42,.5);}
.kmArcMyCard .th .play::after{content:"";position:absolute;left:53%;top:50%;transform:translate(-50%,-50%);border-style:solid;border-width:7px 0 7px 12px;border-color:transparent transparent transparent #fff;}
.kmArcMyCard:hover .th .play{background:var(--km-arc);}
.kmArcMyCard .dday{position:absolute;top:10px;right:10px;background:var(--km-primary);color:#fff;font-size:12px;font-weight:800;border-radius:8px;padding:4px 10px;letter-spacing:.02em;}
.kmArcMyCard .dday.end{background:#94a3b8;}
.kmArcMyCard .bd{padding:14px 15px 16px;display:flex;flex-direction:column;gap:9px;flex:1;}
.kmArcMyCard .badge2{align-self:flex-start;font-size:11px;font-weight:800;border-radius:6px;padding:3px 9px;}
.kmArcMyCard .badge2.ing{background:var(--km-primary-light);color:var(--km-primary-dark);}
.kmArcMyCard .badge2.done{background:#e7f5ec;color:var(--km-success,#16a34a);}
.kmArcMyCard .badge2.soon{background:#fff1e6;color:var(--km-badge-new,#f97316);}
.kmArcMyCard .badge2.fail{background:#f1f5f9;color:var(--km-muted);}
.kmArcMyCard .nm2{font-size:15.5px;font-weight:700;line-height:1.4;color:inherit;text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:calc(1.4em * 2);}
.kmArcMyCard .nm2:hover{color:var(--km-arc-dark);}
.kmArcMyCard .meta2{font-size:12.5px;color:var(--km-muted);display:flex;flex-direction:column;gap:4px;}
.kmArcMyCard .meta2 span{display:inline-flex;align-items:center;gap:5px;}
.kmArcMyCard .meta2 .kmIco{width:14px;height:14px;flex:none;}
.kmArcMyCard .meta2 b{color:var(--km-arc-dark);}
.kmArcMyCard .prog .top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px;}
.kmArcMyCard .prog .top .l{font-size:12px;color:var(--km-ink-soft);}
.kmArcMyCard .prog .top .pc{font-size:16px;font-weight:800;color:var(--km-primary);}
.kmArcMyCard .acts{display:flex;gap:8px;margin-top:4px;}
.kmArcMyCard .acts .km-btn{flex:1;font-size:13px;padding:10px 0;border-radius:9px;text-align:center;display:inline-flex;align-items:center;justify-content:center;gap:5px;}
.kmArcMyCard .acts .km-btn .kmIco{width:15px;height:15px;}
.kmArcMyCard .acts .km-btn-primary{background:var(--km-arc);border-color:var(--km-arc);}
.kmArcMyCard .acts .km-btn-primary:hover{background:var(--km-arc-dark);border-color:var(--km-arc-dark);}

/* 차시 담기 모달 */
.kmBsktModal{position:fixed;inset:0;z-index:1200;display:none;}
.kmBsktModal.on{display:block;}
.kmBsktDim{position:absolute;inset:0;background:rgba(15,23,42,.55);}
.kmBsktBox{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,92vw);max-height:88vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.3);padding:22px;}
.kmBsktX{position:absolute;top:14px;right:16px;background:none;border:none;font-size:26px;line-height:1;color:var(--km-muted);cursor:pointer;}
.kmBsktHead{display:flex;gap:16px;padding-right:28px;margin-bottom:16px;}
.kmBsktHead .th{width:120px;height:74px;border-radius:10px;flex:none;background:var(--km-arc-soft);}
.kmBsktHead .info{min-width:0;}
.kmBsktHead .tag{display:inline-block;font-size:11px;font-weight:800;color:var(--km-arc-dark);background:var(--km-arc-soft);border-radius:6px;padding:2px 8px;margin-bottom:6px;}
.kmBsktHead h3{font-size:18px;font-weight:800;margin:0 0 6px;line-height:1.35;}
.kmBsktHead .meta{font-size:12.5px;color:var(--km-muted);}
.kmBsktHead .desc{font-size:12.5px;color:var(--km-ink-soft);margin:8px 0 0;}
.kmBsktToolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--km-arc-soft);border-radius:12px;padding:10px 13px;margin-bottom:8px;}
.kmBsktToolbar .all{font-size:13.5px;font-weight:700;display:inline-flex;align-items:center;gap:7px;cursor:pointer;}
.kmBsktToolbar .all input{width:18px;height:18px;accent-color:var(--km-arc);}
.kmBsktToolbar .cnt{font-size:12.5px;color:var(--km-arc-dark);font-weight:700;}
.kmBsktToolbar .acts{margin-left:auto;display:flex;gap:8px;}
.kmBsktToolbar .acts .km-btn{font-size:13px;padding:8px 14px;border-radius:9px;}
.kmBsktToolbar .acts .km-btn-primary{background:var(--km-arc);border-color:var(--km-arc);}
.kmBsktListHead,.kmBsktRow{display:grid;grid-template-columns:80px 1fr 84px 64px;align-items:center;gap:8px;padding:11px 12px;font-size:14px;margin:0;}
.kmBsktListHead{background:#f5f8fc;border-radius:9px;font-size:12.5px;font-weight:700;color:var(--km-ink-soft);margin-bottom:2px;}
.kmBsktList{border:1px solid var(--km-line);border-radius:11px;overflow:hidden;}
.kmBsktRow{border-top:1px solid var(--km-line);cursor:pointer;}
.kmBsktRow:first-child{border-top:none;}
.kmBsktRow:hover{background:#f7fbfa;}
.kmBsktRow.has{background:var(--km-arc-soft);}
.kmBsktRow .c1{font-weight:700;color:var(--km-arc-dark);}
.kmBsktRow .c2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kmBsktRow .c3{color:var(--km-muted);font-size:13px;}
.kmBsktRow .c4{text-align:center;}
.kmBsktRow .c4 .done{font-style:normal;font-size:12px;font-weight:800;color:var(--km-arc);background:#fff;border:1px solid var(--km-arc);border-radius:6px;padding:2px 8px;}
.kmBsktRow input[type=checkbox]{width:18px;height:18px;accent-color:var(--km-arc);cursor:pointer;}
.kmBsktEmpty{padding:30px;text-align:center;color:var(--km-muted);}
.kmBsktFoot{min-height:22px;margin-top:12px;font-size:13.5px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}

@media (max-width:1024px){
  .kmArcGrid{grid-template-columns:repeat(3,1fr);}
  .kmArcMyGrid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:768px){
  .kmArcGrid{grid-template-columns:repeat(2,1fr);gap:16px;}
  .kmArcMyGrid{grid-template-columns:1fr;}
  .kmChapToolbar .acts{margin-left:0;width:100%;}
  .kmChapToolbar .acts .km-btn{flex:1;}
  .kmChapTr{grid-template-columns:64px 1fr 56px;}
  .kmChapTr .c3{display:none;}
  .kmChapTr.head .c3{display:none;}
  .kmBsktHead .th{display:none;}
  .kmBsktToolbar .acts{margin-left:0;width:100%;}
  .kmBsktToolbar .acts .km-btn{flex:1;}
  .kmBsktListHead,.kmBsktRow{grid-template-columns:60px 1fr 56px;}
  .kmBsktListHead .c3,.kmBsktRow .c3{display:none;}
}
@media (max-width:480px){
  .kmArcGrid{grid-template-columns:1fr;}
  .kmArcCard .acts{grid-template-columns:1fr;}
}

/* 상단 유틸 바 — 회사 사업 사이트 전환(패밀리 사이트) + 로그인/고객센터 */
.kmTopBar{background:#f4f6fa;border-bottom:1px solid var(--km-line);font-size:13px;}
.kmTopBar .kmWrap{display:flex;align-items:stretch;justify-content:space-between;}
.kmFamily{display:flex;align-items:stretch;}
.kmFamily a{display:inline-flex;align-items:center;padding:9px 18px;color:var(--km-ink-soft);font-weight:700;text-decoration:none;border-right:1px solid var(--km-line);position:relative;transition:.12s;}
.kmFamily a:first-child{border-left:1px solid var(--km-line);}
.kmFamily a:hover{background:#fff;color:var(--km-primary-dark);}
.kmFamily a.on{background:var(--km-primary);color:#fff;border-color:var(--km-primary);}
.kmFamily a.on::after{content:"";position:absolute;left:50%;bottom:-1px;transform:translateX(-50%);width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:var(--km-primary) transparent transparent transparent;}
.kmTopUtil{display:flex;align-items:center;gap:2px;}
.kmTopUtil .hi{color:var(--km-ink-soft);padding:0 12px;}
.kmTopUtil .hi b{color:var(--km-primary-dark);}
.kmTopUtil a{color:var(--km-ink-soft);text-decoration:none;padding:9px 12px;font-weight:600;}
.kmTopUtil a:hover{color:var(--km-primary-dark);text-decoration:underline;}
@media (max-width:768px){
  .kmFamily a{padding:8px 13px;font-size:12.5px;}
  .kmTopUtil{display:none;}
}
@media (max-width:480px){
  .kmFamily{width:100%;}
  .kmFamily a{flex:1;justify-content:center;padding:8px 6px;font-size:12px;}
}

/* 아카이브 내 강의실 — 연도 기수 패널(세로 카드형) + 담긴 차시 목록 */
.kmTermBox{margin-top:22px;border:1px solid var(--km-line);border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.05);}
.kmTermPanel{padding:20px 22px 18px;border-bottom:1px solid var(--km-line);background:linear-gradient(180deg,var(--km-arc-soft,#e3edf9),#fff);}
.kmTermPanel.done{background:linear-gradient(180deg,#e7f5ec,#fff);}
.kmTermPanel.end{background:linear-gradient(180deg,#f1f5f9,#fff);}
.kmTermPanel .hd{display:flex;align-items:center;gap:14px;}
.kmTermPanel .hd .cover{flex:none;position:relative;width:84px;height:58px;border-radius:11px;background:#dfe7f5 center/cover no-repeat;box-shadow:0 2px 6px rgba(15,23,42,.18);overflow:hidden;}
.kmTermPanel .hd .cover .yb{position:absolute;left:0;bottom:0;right:0;background:linear-gradient(180deg,rgba(0,72,156,0),rgba(0,56,111,.92));color:#fff;font-size:15px;font-weight:900;letter-spacing:-.01em;text-align:center;padding:9px 0 4px;}
.kmTermPanel.done .hd .cover .yb{background:linear-gradient(180deg,rgba(22,163,74,0),rgba(20,120,55,.92));}
.kmTermPanel.end .hd .cover .yb{background:linear-gradient(180deg,rgba(71,85,105,0),rgba(51,65,85,.92));}
.kmTermPanel .hd .tt{flex:1;min-width:0;}
.kmTermPanel .hd .tt h2{font-size:17px;font-weight:800;margin:0 0 4px;line-height:1.3;color:var(--km-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.kmTermPanel .hd .tt .pd{font-size:12.5px;color:var(--km-ink-soft);display:inline-flex;align-items:center;gap:5px;}
.kmTermPanel .hd .tt .pd .kmIco{width:14px;height:14px;}
.kmTermPanel .hd .st{flex:none;font-size:12px;font-weight:800;border-radius:999px;padding:6px 13px;}
.kmTermPanel .hd .st.ing{background:var(--km-arc,#00489c);color:#fff;}
.kmTermPanel .hd .st.done{background:var(--km-success,#16a34a);color:#fff;}
.kmTermPanel .hd .st.end{background:#e2e8f0;color:#475569;}
/* 수료기준 학습시간 — 포인트 */
.kmTermPanel .goal{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:16px 0 10px;}
.kmTermPanel .goal .gtime{display:flex;align-items:baseline;gap:10px;min-width:0;}
.kmTermPanel .goal .gtime .cap{font-size:12.5px;font-weight:700;color:var(--km-ink-soft);display:inline-flex;align-items:center;gap:5px;}
.kmTermPanel .goal .gtime .cap .kmIco{width:15px;height:15px;color:var(--km-arc,#00489c);}
.kmTermPanel .goal .gtime .now{font-size:27px;font-weight:900;color:var(--km-arc,#00489c);line-height:1;letter-spacing:-.02em;}
.kmTermPanel.done .goal .gtime .now{color:var(--km-success,#16a34a);}
.kmTermPanel .goal .gtime .req{font-size:13px;font-weight:700;color:#fff;background:var(--km-arc,#00489c);border-radius:999px;padding:4px 11px;align-self:center;}
.kmTermPanel.done .goal .gtime .req{background:var(--km-success,#16a34a);}
.kmTermPanel.end .goal .gtime .req{background:#64748b;}
.kmTermPanel .goal .rem{font-size:13px;font-weight:700;color:var(--km-arc-dark,#00386f);background:#fff;border:1px solid var(--km-primary-light,#e3edf9);border-radius:10px;padding:8px 13px;display:inline-flex;align-items:center;gap:6px;}
.kmTermPanel .goal .rem b{color:var(--km-arc,#00489c);}
.kmTermPanel .goal .rem .kmIco{width:15px;height:15px;}
.kmTermPanel .goal .rem.done{color:#fff;background:var(--km-success,#16a34a);border-color:var(--km-success,#16a34a);}
.kmTermPanel .goal .rem.end{color:#64748b;background:#f1f5f9;border-color:#e2e8f0;}
.kmTermPanel .kmProg.lg{position:relative;height:16px;background:#fff;box-shadow:inset 0 0 0 1px var(--km-line);border-radius:999px;}
.kmTermPanel .kmProg.lg span{background:linear-gradient(90deg,var(--km-accent,#2f7fd6),var(--km-arc,#00489c));transition:width .5s ease;}
.kmTermPanel.done .kmProg.lg span{background:var(--km-success,#16a34a);}
.kmTermPanel .kmProg.lg .pct{position:absolute;top:50%;right:9px;transform:translateY(-50%);font-size:10.5px;font-weight:800;font-style:normal;color:var(--km-ink-soft);}
.kmTermPanel .ft{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px;}
.kmTermPanel .ft .m{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--km-ink-soft);background:#fff;border:1px solid var(--km-line);border-radius:9px;padding:7px 12px;}
.kmTermPanel .ft .m .kmIco{width:14px;height:14px;color:var(--km-arc,#00489c);}
.kmTermPanel .ft .m b{color:var(--km-ink);font-weight:800;}
.kmTermPanel .ft .m em{font-style:normal;color:var(--km-muted);}

.kmTermList{padding:6px 8px 8px;}
.kmTermList .hd{display:grid;grid-template-columns:74px 1fr 150px 96px 96px;gap:10px;padding:11px 14px;font-size:12px;font-weight:700;color:var(--km-muted);}
.kmTermList .cgroup{display:flex;align-items:center;gap:13px;padding:13px 14px 11px;border-top:1px solid var(--km-line);margin-top:2px;}
.kmTermList .cgroup .cth{flex:none;width:108px;height:68px;border-radius:10px;background:#dfe7f5 center/cover no-repeat;box-shadow:0 2px 6px rgba(15,23,42,.14);}
.kmTermList .cgroup .cmeta{flex:1;min-width:0;}
.kmTermList .cgroup .cnm{font-size:15px;font-weight:800;color:var(--km-ink);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kmTermList .cgroup .cnm .cn{font-size:12px;font-weight:600;color:var(--km-muted);}
.kmTermList .cgroup .cds{margin:4px 0 0;font-size:12.5px;color:var(--km-ink-soft);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.kmTermList .cgroup .go{flex:none;align-self:center;font-size:12.5px;font-weight:700;color:var(--km-arc,#00489c);text-decoration:none;white-space:nowrap;}
.kmTermList .cgroup .go{margin-left:auto;font-size:12.5px;font-weight:700;color:var(--km-arc,#00489c);text-decoration:none;}
.kmTermList .cgroup .go:hover{text-decoration:underline;}
.kmTermList .row{display:grid;grid-template-columns:74px 1fr 150px 96px 96px;gap:10px;align-items:center;padding:9px 14px;font-size:13.5px;border-radius:9px;}
.kmTermList .row:hover{background:#f7fbfa;}
.kmTermList .row.done .c2{color:var(--km-muted);}
.kmTermList .row .c1{font-weight:700;color:var(--km-arc-dark,#00386f);}
.kmTermList .row .c2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kmTermList .row .c3{display:flex;align-items:center;gap:7px;}
.kmTermList .row .c3 b{font-size:12px;color:var(--km-ink-soft);min-width:30px;}
.kmTermList .row .c4{font-size:12.5px;color:var(--km-muted);}
.kmTermList .kmProg.sm{height:6px;flex:1;}
.kmTermList .row .c5 .dis{font-size:12px;color:var(--km-muted);}
.km-btn.km-btn-primary.sm{background:var(--km-arc,#00489c);border-color:var(--km-arc,#00489c);padding:6px 12px;font-size:12.5px;border-radius:8px;}
.km-btn.km-btn-primary.sm:hover{background:var(--km-arc-dark,#00386f);}
.kmTermFoot{display:flex;gap:10px;justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--km-line);background:#fafbfc;}
.kmTermFoot .km-btn{padding:9px 18px;border-radius:9px;font-size:13.5px;}
.kmTermFoot .km-btn-primary{background:var(--km-arc,#00489c);border-color:var(--km-arc,#00489c);}

/* 관리자 기수 개강 폼 */
.kmTermNew{border:1px solid var(--km-line);border-radius:12px;padding:12px 16px;background:#fafbfc;}
.kmTermNew>summary{cursor:pointer;font-weight:700;color:var(--km-primary-dark);list-style:none;}
.kmTermNew>summary::-webkit-details-marker{display:none;}

@media (max-width:900px){
  .kmTermPanel .hd .tt h2{white-space:normal;}
  .kmTermPanel .hd .st{align-self:flex-start;}
  .kmTermList .hd{display:none;}
  .kmTermList .row{grid-template-columns:58px 1fr 70px;gap:8px;}
  .kmTermList .row .c3,.kmTermList .row .c4{display:none;}
  .kmTermList .cgroup{flex-wrap:wrap;}
  .kmTermList .cgroup .go{font-size:12px;margin-left:0;}
}
@media (max-width:520px){
  .kmTermPanel .hd{flex-wrap:wrap;}
  .kmTermPanel .hd .tt{flex:1 1 calc(100% - 76px);}
  .kmTermPanel .hd .st{order:3;}
}

/* ============================================================
   디지털 아카이브 메인 — "지식 스트리밍 라이브러리" 컨셉(사업주 사이트와 구분)
   ============================================================ */
/* 검색 히어로(네이비) */
.kmAHero{position:relative;overflow:hidden;background:linear-gradient(120deg,#00386f 0%,#00489c 55%,#0a57b8 100%);color:#fff;}
.kmAHero .dots{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.13) 1.3px,transparent 1.3px);background-size:22px 22px;mask-image:linear-gradient(90deg,transparent,#000 30%,#000 100%);pointer-events:none;}
.kmAHero .kmWrap{position:relative;display:grid;grid-template-columns:1.55fr .9fr;gap:32px;align-items:center;padding:54px 0 50px;}
.kmAHero .lead .kk{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;letter-spacing:.04em;color:#bcd4f5;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:6px 14px;}
.kmAHero .lead .kk .kmIco{width:15px;height:15px;}
.kmAHero .lead h1{font-size:38px;line-height:1.22;font-weight:800;margin:16px 0 12px;letter-spacing:-.02em;}
.kmAHero .lead h1 b{font-weight:900;color:#fff;background:linear-gradient(transparent 62%, rgba(95,170,255,.45) 62%);}
.kmAHero .lead>p{font-size:15.5px;color:#dbe6f6;margin:0 0 22px;line-height:1.6;}
.kmAHero .lead>p .hl{color:#fff;background:rgba(255,255,255,.16);border-radius:6px;padding:1px 8px;font-weight:700;}
.kmASearch{display:flex;align-items:center;gap:10px;background:#fff;border-radius:14px;padding:8px 8px 8px 16px;max-width:560px;box-shadow:0 14px 34px rgba(0,20,60,.3);}
.kmASearch .kmIco{width:20px;height:20px;color:#00489c;flex:none;}
.kmASearch input{flex:1;border:none;outline:none;font-size:15px;color:#13203a;background:none;min-width:0;}
.kmASearch button{flex:none;background:#00489c;color:#fff;border:none;border-radius:10px;padding:12px 22px;font-size:15px;font-weight:800;cursor:pointer;transition:.15s;}
.kmASearch button:hover{background:#00386f;}
.kmAKw{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:16px;}
.kmAKw .lb{font-size:12.5px;color:#aac4ec;font-weight:700;margin-right:2px;}
.kmAKw a{font-size:13px;color:#eaf1fb;text-decoration:none;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:6px 13px;transition:.15s;}
.kmAKw a:hover{background:#fff;color:#00489c;border-color:#fff;}
.kmAHero .stat{display:grid;grid-template-columns:1fr;gap:12px;}
.kmAHero .stat .si{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:16px 18px;display:flex;align-items:baseline;gap:10px;}
.kmAHero .stat .si b{font-size:28px;font-weight:900;letter-spacing:-.02em;color:#fff;}
.kmAHero .stat .si b.kmCount{color:#fff;}
.kmAHero .stat .si span{font-size:13px;color:#cdddf3;}

/* 스포트라이트 */
.kmASpotWrap{background:linear-gradient(180deg,#0a57b8,#f4f7fb 62%);padding:0 0 6px;}
.kmASpot{position:relative;border-radius:20px;overflow:hidden;min-height:300px;display:flex;align-items:flex-end;margin-top:-18px;box-shadow:0 18px 44px rgba(0,20,60,.22);background:#16223c var(--bg) center/cover no-repeat;}
.kmASpot .ov{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,18,40,.92) 0%,rgba(8,18,40,.74) 42%,rgba(8,18,40,.18) 100%);}
.kmASpot .in{position:relative;padding:34px 38px;color:#fff;max-width:660px;}
.kmASpot .tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;background:#00489c;border-radius:999px;padding:5px 13px;}
.kmASpot h2{font-size:28px;font-weight:900;line-height:1.25;margin:13px 0 12px;letter-spacing:-.02em;}
.kmASpot .meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:13.5px;color:#d6e2f4;margin-bottom:20px;align-items:center;}
.kmASpot .meta .st{color:#ffd34d;font-weight:700;}
.kmASpot .meta .pz{background:rgba(255,255,255,.16);border-radius:6px;padding:2px 9px;font-weight:700;}
.kmASpot .cta{display:flex;gap:10px;flex-wrap:wrap;}
.kmASpot .cta .km-btn{padding:12px 22px;border-radius:11px;font-size:14.5px;}
.kmASpot .cta .ghostw{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.4);color:#fff;}
.kmASpot .cta .ghostw:hover{background:rgba(255,255,255,.22);}

/* 가로 레일(셸프) */
.kmARailSec{padding:26px 0 6px;}
.kmARailHd{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.kmARailHd h2{font-size:20px;font-weight:800;display:inline-flex;align-items:center;gap:9px;margin:0;letter-spacing:-.01em;}
.kmARailHd h2 .kmIco{width:21px;height:21px;color:#00489c;}
.kmARailHd .nav{display:flex;align-items:center;gap:8px;}
.kmARailHd .more{font-size:13px;font-weight:700;color:#00489c;text-decoration:none;margin-right:4px;}
.kmARailHd .more:hover{text-decoration:underline;}
.kmARailHd .arw{width:34px;height:34px;border-radius:50%;border:1px solid var(--km-line);background:#fff;color:#33405c;font-size:19px;line-height:1;cursor:pointer;transition:.15s;}
.kmARailHd .arw:hover{background:#00489c;color:#fff;border-color:#00489c;}
.kmARailTrack{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x proximity;scroll-behavior:smooth;padding:4px 2px 16px;-ms-overflow-style:none;scrollbar-width:none;}
.kmARailTrack::-webkit-scrollbar{display:none;}
.kmACard{flex:0 0 246px;scroll-snap-align:start;background:#fff;border:1px solid var(--km-line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:.15s;}
.kmACard:hover{box-shadow:0 12px 26px rgba(15,23,42,.12);transform:translateY(-3px);}
.kmACard .th{position:relative;display:block;aspect-ratio:16/9;background:#dfe7f5 center/cover no-repeat;}
.kmACard .th .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%;background:rgba(8,18,40,.5);transition:.15s;}
.kmACard .th .play::after{content:"";position:absolute;left:53%;top:50%;transform:translate(-50%,-50%);border-style:solid;border-width:7px 0 7px 12px;border-color:transparent transparent transparent #fff;}
.kmACard:hover .th .play{background:#00489c;}
.kmACard .th .badge{position:absolute;top:9px;left:9px;font-size:11px;font-weight:800;color:#fff;border-radius:6px;padding:3px 8px;}
.kmACard .th .badge.free{background:#00489c;}
.kmACard .th .badge.paid{background:#475569;}
.kmACard .th .dur{position:absolute;right:9px;bottom:9px;background:rgba(8,18,40,.8);color:#fff;font-size:11px;font-weight:700;border-radius:6px;padding:2px 7px;}
.kmACard .bd{padding:12px 13px 13px;display:flex;flex-direction:column;gap:7px;flex:1;}
.kmACard .bd .cat{font-size:11.5px;color:var(--km-muted);font-weight:600;}
.kmACard .bd .nm{font-size:14.5px;font-weight:700;line-height:1.4;color:inherit;text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:calc(1.4em * 2);}
.kmACard .bd .nm:hover{color:#00489c;}
.kmACard .bd .ft{display:flex;align-items:center;justify-content:space-between;margin-top:auto;}
.kmACard .bd .ft .rt{font-size:12.5px;color:var(--km-ink-soft);font-weight:700;}
.kmACard .bd .ft .rt .s{color:#f5a623;font-weight:400;letter-spacing:-1px;}
.kmACard .bd .ft .rt .muted{color:var(--km-muted);font-weight:500;}
.kmACard .bd .ft .add{display:inline-flex;align-items:center;gap:3px;font-size:12.5px;font-weight:800;color:#00489c;background:var(--km-primary-light,#e3edf9);border:none;border-radius:8px;padding:6px 11px;cursor:pointer;transition:.15s;}
.kmACard .bd .ft .add:hover{background:#00489c;color:#fff;}
.kmACard .bd .ft .add .kmIco{width:13px;height:13px;}

/* 이용 방법 3스텝 */
.kmASteps{padding:38px 0 22px;}
.kmASteps .hd{text-align:center;margin-bottom:26px;}
.kmASteps .hd h2{font-size:23px;font-weight:800;margin:0 0 7px;}
.kmASteps .hd p{font-size:14px;color:var(--km-ink-soft);margin:0;}
.kmASteps .row{display:flex;align-items:stretch;justify-content:center;gap:8px;}
.kmASteps .step{flex:1;max-width:300px;background:#fff;border:1px solid var(--km-line);border-radius:16px;padding:24px 22px;text-align:center;position:relative;}
.kmASteps .step .no{position:absolute;top:14px;right:16px;font-size:13px;font-weight:900;color:var(--km-primary-light,#e3edf9);}
.kmASteps .step .ic{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:15px;background:var(--km-primary-light,#e3edf9);color:#00489c;margin-bottom:13px;}
.kmASteps .step .ic .kmIco{width:26px;height:26px;}
.kmASteps .step b{display:block;font-size:16px;font-weight:800;margin-bottom:6px;}
.kmASteps .step p{font-size:13px;color:var(--km-ink-soft);margin:0;line-height:1.55;}
.kmASteps .ar{display:flex;align-items:center;color:#c2cee0;}
.kmASteps .ar .kmIco{width:24px;height:24px;}

/* 소식 + 고객센터 밴드 */
.kmABand{padding:14px 0 46px;}
.kmABand .kmWrap{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;}
.kmABand .news{background:#fff;border:1px solid var(--km-line);border-radius:16px;padding:8px 20px 12px;}
.kmABand .news .bh{display:flex;align-items:center;justify-content:space-between;padding:12px 0 8px;border-bottom:1px solid var(--km-line);}
.kmABand .news .bh b{font-size:15px;display:inline-flex;align-items:center;gap:7px;}
.kmABand .news .bh b .kmIco{width:17px;height:17px;color:#00489c;}
.kmABand .news .bh a{font-size:12.5px;color:var(--km-muted);text-decoration:none;}
.kmABand .news .ni{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 2px;border-bottom:1px solid #f1f4f8;text-decoration:none;color:var(--km-ink);}
.kmABand .news .ni:last-child{border-bottom:none;}
.kmABand .news .ni:hover .t{color:#00489c;}
.kmABand .news .ni .t{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kmABand .news .ni .d{font-size:12px;color:var(--km-muted);flex:none;}
.kmABand .help{background:linear-gradient(135deg,#00489c,#00386f);color:#fff;border-radius:16px;padding:24px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;justify-content:center;}
.kmABand .help .ic{display:inline-flex;width:46px;height:46px;border-radius:13px;background:rgba(255,255,255,.16);align-items:center;justify-content:center;}
.kmABand .help .ic .kmIco{width:24px;height:24px;}
.kmABand .help b{font-size:17px;font-weight:800;}
.kmABand .help p{font-size:13px;color:#d3e0f3;margin:2px 0 6px;}
.kmABand .help .km-btn{background:#fff;color:#00489c;border-color:#fff;font-weight:800;}
.kmABand .help .km-btn:hover{background:#eaf1fb;}

@media (max-width:980px){
  .kmAHero .kmWrap{grid-template-columns:1fr;gap:22px;padding:40px 0 36px;}
  .kmAHero .lead h1{font-size:30px;}
  .kmAHero .stat{grid-template-columns:repeat(3,1fr);}
  .kmAHero .stat .si{flex-direction:column;gap:2px;align-items:flex-start;}
  .kmAHero .stat .si b{font-size:22px;}
  .kmABand .kmWrap{grid-template-columns:1fr;}
}
@media (max-width:720px){
  .kmAHero .lead h1{font-size:25px;}
  .kmASearch{flex-wrap:wrap;}
  .kmASpot .in{padding:24px;}
  .kmASpot h2{font-size:22px;}
  .kmASteps .row{flex-direction:column;align-items:center;}
  .kmASteps .ar{transform:rotate(90deg);}
  .kmACard{flex-basis:200px;}
}

/* 관리자 — 큐레이션 과정 선택 */
.kmCurPick{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;}
.kmCurPick .it{display:flex;align-items:center;gap:9px;border:1px solid var(--km-line);border-radius:10px;padding:9px 11px;cursor:pointer;background:#fff;transition:.12s;}
.kmCurPick .it.on{border-color:var(--km-primary);background:var(--km-primary-light,#e3edf9);}
.kmCurPick .it input[type=checkbox]{width:17px;height:17px;accent-color:var(--km-primary);flex:none;}
.kmCurPick .it .nm{flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kmCurPick .it .nm em{font-style:normal;color:var(--km-muted);font-weight:500;font-size:11.5px;}
.kmCurPick .it .ord{width:52px;flex:none;border:1px solid var(--km-line);border-radius:7px;padding:5px 7px;font-size:12.5px;text-align:center;}

/* 디지털 아카이브 — 큐레이션(운영자 추천 컬렉션) */
.kmCurSec{padding:34px 0 10px;}
.kmCurIntro{text-align:center;margin-bottom:20px;}
.kmCurIntro .ek{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;letter-spacing:.08em;color:#00489c;background:var(--km-primary-light,#e3edf9);border-radius:999px;padding:5px 14px;}
.kmCurIntro .ek .kmIco{width:14px;height:14px;}
.kmCurIntro h2{font-size:25px;font-weight:900;margin:12px 0 6px;letter-spacing:-.02em;}
.kmCurIntro p{font-size:14px;color:var(--km-ink-soft);margin:0;}
.kmCurBlock{margin-top:30px;padding-left:2px;}
.kmCurBlock:first-of-type{margin-top:0;}
/* 에디터 큐레이션 헤더(매거진 스타일 — 인덱스 번호 + 좌측 컬러 바) */
.kmCurHd{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px;}
.kmCurHd .tx{display:flex;align-items:flex-start;gap:14px;min-width:0;}
.kmCurHd .tx .ix{flex:none;font-size:30px;font-weight:900;line-height:1;color:var(--km-primary-light,#e3edf9);letter-spacing:-.03em;-webkit-text-stroke:1px #c9d8ee;}
.kmCurBlock.lead .kmCurHd .tx .ix{color:#00489c;-webkit-text-stroke:0;}
.kmCurHd .tt{min-width:0;border-left:3px solid var(--km-primary,#00489c);padding-left:13px;}
.kmCurHd .badge{display:inline-block;font-size:11px;font-weight:800;color:#00489c;background:var(--km-primary-light,#e3edf9);border-radius:6px;padding:3px 9px;margin-bottom:7px;letter-spacing:.02em;}
.kmCurHd .tt h2{font-size:21px;font-weight:900;margin:0;letter-spacing:-.02em;line-height:1.25;}
.kmCurBlock.lead .kmCurHd .tt h2{font-size:24px;}
.kmCurHd .tt p{font-size:13.5px;color:var(--km-ink-soft);margin:6px 0 0;line-height:1.5;}
.kmCurHd .nav{display:flex;align-items:center;gap:8px;flex:none;}
.kmCurHd .nav .cn{font-size:12px;color:var(--km-muted);font-weight:600;margin-right:2px;}
.kmCurHd .nav .arw{width:34px;height:34px;border-radius:50%;border:1px solid var(--km-line);background:#fff;color:#33405c;font-size:19px;line-height:1;cursor:pointer;transition:.15s;}
.kmCurHd .nav .arw:hover{background:#00489c;color:#fff;border-color:#00489c;}

@media (max-width:720px){
  .kmCurHd{flex-direction:column;gap:10px;}
  .kmCurHd .tx .ix{font-size:24px;}
  .kmCurBlock.lead .kmCurHd .tt h2,.kmCurHd .tt h2{font-size:19px;}
}

/* ============================================================
   역량 진단 — 좌측 스텝퍼 위저드 + 세그먼트 척도(브랜드 네이비)
   ============================================================ */
.kmDxWrap{padding:34px 0 60px;background:#eef2f8;min-height:62vh;}
.kmDxHead{margin-bottom:22px;}
.kmDxHead .ek{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:800;letter-spacing:.08em;color:#00489c;background:#fff;border:1px solid var(--km-primary-light,#e3edf9);border-radius:999px;padding:5px 13px;}
.kmDxHead .ek .kmIco{width:14px;height:14px;}
.kmDxHead h1{font-size:27px;font-weight:900;margin:12px 0 6px;letter-spacing:-.02em;color:var(--km-ink);}
.kmDxHead p{font-size:14.5px;color:var(--km-ink-soft);margin:0;}
.kmDxGrid{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:start;}
/* 좌측 스텝퍼 */
.kmDxSteps{position:sticky;top:84px;background:#0e2c54;border-radius:18px;padding:18px 16px;color:#fff;}
.kmDxSteps .prog{margin-bottom:14px;}
.kmDxSteps .prog .t{font-size:12.5px;color:#a9c4e6;}
.kmDxSteps .prog .t b{color:#fff;font-size:15px;font-weight:900;}
.kmDxSteps .prog .track{display:block;height:7px;background:rgba(255,255,255,.16);border-radius:999px;overflow:hidden;margin-top:7px;}
.kmDxSteps .prog .track span{display:block;height:100%;width:0;background:linear-gradient(90deg,#5fa0ff,#fff);transition:width .35s;}
.kmDxSteps ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.kmDxSteps li{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:12px;cursor:pointer;transition:.15s;}
.kmDxSteps li:hover{background:rgba(255,255,255,.07);}
.kmDxSteps li.on{background:rgba(255,255,255,.14);}
.kmDxSteps li .no{flex:none;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;}
.kmDxSteps li.on .no{background:#fff;color:#0e2c54;}
.kmDxSteps li.done .no{background:#22c55e;color:#fff;}
.kmDxSteps li .tx{min-width:0;flex:1;}
.kmDxSteps li .tx b{display:block;font-size:14px;font-weight:700;}
.kmDxSteps li .tx span{display:block;font-size:11.5px;color:#a9c4e6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kmDxSteps li .ck{flex:none;opacity:0;color:#22c55e;}
.kmDxSteps li .ck .kmIco{width:18px;height:18px;}
.kmDxSteps li.done .ck{opacity:1;}
/* 우측 문항 */
.kmDxMain{min-width:0;}
.kmDxPane{display:none;background:#fff;border:1px solid var(--km-line);border-radius:18px;padding:8px 24px 18px;}
.kmDxPane.on{display:block;animation:dxIn .25s ease;}
@keyframes dxIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.kmDxPane .ph{padding:18px 0 10px;border-bottom:1px solid var(--km-line);margin-bottom:6px;}
.kmDxPane .ph .step{font-size:12px;font-weight:800;color:#00489c;}
.kmDxPane .ph h2{font-size:20px;font-weight:800;margin:6px 0 4px;}
.kmDxPane .ph p{font-size:13px;color:var(--km-muted);margin:0;}
.kmDxPane .dxq{padding:17px 0;border-bottom:1px dashed var(--km-line);}
.kmDxPane .dxq:last-of-type{border-bottom:none;}
.kmDxPane .dxq .qt{font-size:15px;font-weight:600;margin-bottom:12px;display:flex;align-items:baseline;gap:8px;}
.kmDxPane .dxq .qt .qn{flex:none;font-size:12px;font-weight:800;color:#fff;background:#00489c;border-radius:6px;padding:2px 8px;}
/* 세그먼트 척도 */
.kmDxPane .seg{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;}
.kmDxPane .seg label{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;border:1px solid var(--km-line);border-radius:10px;padding:11px 6px;font-size:13px;font-weight:600;color:var(--km-ink-soft);cursor:pointer;transition:.12s;}
.kmDxPane .seg label:hover{border-color:#9db4e8;background:#f6f9ff;}
.kmDxPane .seg input{position:absolute;opacity:0;pointer-events:none;}
.kmDxPane .seg label:has(input:checked){border-color:#00489c;background:#00489c;color:#fff;font-weight:800;box-shadow:0 4px 12px rgba(0,72,156,.28);}
.kmDxNav{display:flex;justify-content:space-between;gap:10px;margin-top:20px;}
.kmDxNav .km-btn{padding:12px 24px;border-radius:11px;font-size:14.5px;}
.kmDxNav .km-btn-primary{background:#00489c;border-color:#00489c;margin-left:auto;}

/* 결과 */
.kmDxResHead{text-align:center;margin-bottom:24px;}
.kmDxResHead .bk{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:800;color:#0a7a43;background:#e7f5ec;border-radius:999px;padding:6px 14px;}
.kmDxResHead .bk .kmIco{width:15px;height:15px;}
.kmDxResHead h1{font-size:26px;font-weight:900;margin:12px 0 7px;letter-spacing:-.02em;}
.kmDxResHead p{font-size:14.5px;color:var(--km-ink-soft);margin:0;}
.kmDxResHead p b{color:#00489c;}
.kmDxResGrid{display:grid;grid-template-columns:.85fr 1.15fr;gap:20px;align-items:start;}
.kmDxScores,.kmDxReco{background:#fff;border:1px solid var(--km-line);border-radius:18px;padding:22px 24px;}
.kmDxScores h2,.kmDxReco h2{font-size:16px;font-weight:800;margin:0 0 16px;display:flex;align-items:center;gap:7px;}
.kmDxReco h2 .kmIco{width:18px;height:18px;color:#00489c;}
.kmDxScores .row{display:flex;align-items:center;gap:12px;padding:11px 0;}
.kmDxScores .row .lab{flex:none;width:128px;display:flex;flex-direction:column;gap:3px;}
.kmDxScores .row .lab .nm{font-size:13.5px;font-weight:700;}
.kmDxScores .row .lab .tag{align-self:flex-start;font-size:10px;font-weight:800;color:#dc2626;background:#fde7e7;border-radius:5px;padding:1px 6px;}
.kmDxScores .row .bar{flex:1;height:11px;background:#eef2f7;border-radius:999px;overflow:hidden;}
.kmDxScores .row .bar span{display:block;height:100%;background:linear-gradient(90deg,#2f7fd6,#00489c);border-radius:999px;}
.kmDxScores .row.low .bar span{background:linear-gradient(90deg,#f87171,#dc2626);}
.kmDxScores .row .pc{flex:none;width:46px;text-align:right;font-size:16px;font-weight:900;color:var(--km-ink);}
.kmDxScores .row .pc i{font-size:11px;font-style:normal;font-weight:700;}
.kmDxScores .hint{font-size:12px;color:var(--km-muted);margin:14px 0 0;}
.kmACardRow{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:14px;}
.kmACardRow .kmACard{flex:none;}
.kmDxReco .empty{font-size:13.5px;color:var(--km-muted);padding:20px 0;}
.kmDxReco .acts{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;}
.kmDxReco .acts .km-btn{padding:11px 20px;border-radius:11px;font-size:13.5px;}
.kmDxReco .acts .km-btn-primary{background:#00489c;border-color:#00489c;}

@media (max-width:880px){
  .kmDxGrid{grid-template-columns:1fr;}
  .kmDxSteps{position:static;}
  .kmDxSteps ol{flex-direction:row;flex-wrap:wrap;}
  .kmDxSteps li{flex:1 1 calc(50% - 6px);}
  .kmDxSteps li .tx span{display:none;}
  .kmDxResGrid{grid-template-columns:1fr;}
  .kmDxPane .seg{grid-template-columns:repeat(5,1fr);gap:4px;}
  .kmDxPane .seg label{padding:9px 2px;font-size:11.5px;}
}

/* 관리자 — 과정 역량 태깅 선택 */
.cmCompPick{display:flex;flex-wrap:wrap;gap:7px;}
.cmCompPick label{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--km-line);border-radius:999px;padding:6px 13px;font-size:13px;cursor:pointer;background:#fff;transition:.12s;}
.cmCompPick label.on{border-color:var(--km-primary);background:var(--km-primary-light,#e3edf9);color:var(--km-primary-dark);font-weight:700;}
.cmCompPick label input{accent-color:var(--km-primary);width:15px;height:15px;}

/* 학습 여정 4단계 + 진단 CTA */
.kmJourney{padding:38px 0 30px;}
.kmJourney .jhd{text-align:center;margin-bottom:24px;}
.kmJourney .jhd .ek{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;letter-spacing:.06em;color:#00489c;background:var(--km-primary-light,#e3edf9);border-radius:999px;padding:5px 14px;}
.kmJourney .jhd .ek .kmIco{width:14px;height:14px;}
.kmJourney .jhd h2{font-size:24px;font-weight:900;margin:12px 0 6px;letter-spacing:-.02em;}
.kmJourney .jhd p{font-size:14px;color:var(--km-ink-soft);margin:0;}
.kmJourney .jsteps{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;margin-bottom:22px;}
.kmJourney .jstep{flex:0 0 168px;display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none;color:inherit;padding:8px;border-radius:16px;transition:.15s;}
.kmJourney .jstep:hover{transform:translateY(-3px);}
.kmJourney .jstep .cir{display:flex;align-items:center;justify-content:center;width:104px;height:104px;border-radius:50%;background:#fff;border:1px solid var(--km-line);box-shadow:0 8px 20px rgba(15,23,42,.08);margin-bottom:12px;color:#00489c;transition:.15s;}
.kmJourney .jstep .cir .kmIco{width:38px;height:38px;}
.kmJourney .jstep.hot .cir{background:linear-gradient(135deg,#3b5bd9,#6a5ae0);border-color:transparent;color:#fff;}
.kmJourney .jstep:hover .cir{box-shadow:0 12px 26px rgba(0,72,156,.22);}
.kmJourney .jstep b{font-size:15px;font-weight:800;}
.kmJourney .jstep .t{font-size:13px;color:var(--km-ink-soft);margin-top:2px;}
.kmJourney .jstep.hot b,.kmJourney .jstep.hot .t{color:#3a2d7a;}
.kmJourney .jar{color:#c2cee0;flex:none;}
.kmJourney .jar .kmIco{width:22px;height:22px;}
.kmJourney .jcta{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;}
.kmJourney .jcta .km-btn{padding:13px 26px;border-radius:11px;font-size:15px;background:#00489c;border-color:#00489c;display:inline-flex;align-items:center;gap:7px;}
.kmJourney .jcta .km-btn .kmIco{width:17px;height:17px;}
.kmJourney .jcta .done{font-size:13px;font-weight:700;color:#0a7a43;display:inline-flex;align-items:center;gap:5px;}
.kmJourney .jcta .done .kmIco{width:15px;height:15px;}
/* 맞춤 추천 섹션 강조 */
.kmMyReco{background:linear-gradient(180deg,#eef3fb,#fff);border-radius:18px;padding:20px 22px 8px;margin-top:6px;}
.kmMyReco .kmARailHd h2 .kmIco{color:#6a5ae0;}

@media (max-width:760px){
  .kmJourney .jsteps{gap:2px;}
  .kmJourney .jstep{flex-basis:124px;}
  .kmJourney .jstep .cir{width:78px;height:78px;}
  .kmJourney .jstep .cir .kmIco{width:30px;height:30px;}
  .kmJourney .jar{display:none;}
}

/* ============================================================
   디지털 아카이브 메인 v2 — 지식 라이브러리 레이아웃(레퍼런스형)
   ============================================================ */
.kmArchiveHome{background:#f6f8fc;}
/* 히어로 */
.kmHHero{position:relative;background:radial-gradient(1200px 500px at 78% -10%, #1b50a8 0%, transparent 60%), linear-gradient(160deg,#0a1f44 0%,#0c2b63 52%,#0f3580 100%);color:#fff;padding:46px 0 64px;overflow:hidden;}
.kmHHero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.10) 1px,transparent 1px);background-size:26px 26px;mask-image:radial-gradient(900px 400px at 75% 10%, #000 30%, transparent 75%);pointer-events:none;}
.kmHHeroIn{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:center;}
.kmHHero .lead h1{font-size:42px;line-height:1.2;font-weight:900;letter-spacing:-.025em;margin:0 0 14px;}
.kmHHero .lead h1 b{color:#7fb0ff;font-weight:900;}
.kmHHero .lead>p{font-size:15.5px;color:#c9d8f2;line-height:1.6;margin:0 0 22px;}
.kmHSearch{display:flex;align-items:center;gap:8px;background:#fff;border-radius:14px;padding:7px 7px 7px 16px;max-width:520px;box-shadow:0 18px 40px rgba(0,16,50,.35);}
.kmHSearch>.kmIco{width:20px;height:20px;color:#0c2b63;flex:none;}
.kmHSearch input{flex:1;border:none;outline:none;font-size:15px;color:#13203a;min-width:0;}
.kmHSearch button{flex:none;width:46px;height:46px;border:none;border-radius:11px;background:#0c2b63;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s;}
.kmHSearch button:hover{background:#0a1f44;}
.kmHSearch button .kmIco{width:20px;height:20px;}
.kmHTags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
.kmHTags a{font-size:13px;color:#d8e4f7;text-decoration:none;transition:.12s;}
.kmHTags a:hover{color:#fff;}
/* 아이콘 클러스터(글래스 타일) */
.kmHHero .art{position:relative;height:340px;}
.kmHHero .art .heroimg{position:relative;z-index:2;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 24px 50px rgba(0,12,40,.45));animation:hfloat 6s ease-in-out infinite;}
.kmHHero .art .orb{position:absolute;border-radius:50%;filter:blur(2px);opacity:.6;}
.kmHHero .art .o1{width:230px;height:230px;right:30px;top:30px;background:radial-gradient(circle,#3b82f6,transparent 70%);}
.kmHHero .art .o2{width:160px;height:160px;left:40px;bottom:10px;background:radial-gradient(circle,#22d3ee,transparent 70%);opacity:.35;}
.kmHHero .art .tile{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:20px;background:linear-gradient(145deg,rgba(255,255,255,.22),rgba(255,255,255,.06));border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(8px);box-shadow:0 14px 30px rgba(0,16,50,.3);color:#fff;font-weight:900;animation:hfloat 6s ease-in-out infinite;}
.kmHHero .art .tile .kmIco{width:46px;height:46px;}
.kmHHero .art .t1{width:118px;height:118px;right:130px;top:96px;animation-delay:0s;}
.kmHHero .art .t1 .kmIco{width:54px;height:54px;color:#bcd4ff;}
.kmHHero .art .t2{width:88px;height:88px;right:48px;top:40px;font-size:30px;color:#9be7ff;animation-delay:.8s;}
.kmHHero .art .t3{width:84px;height:84px;right:24px;top:170px;animation-delay:1.5s;}
.kmHHero .art .t4{width:80px;height:80px;right:150px;top:228px;animation-delay:1.1s;}
.kmHHero .art .t4 .kmIco{color:#ffd98a;}
.kmHHero .art .t5{width:74px;height:74px;right:250px;top:48px;animation-delay:2s;}
.kmHHero .art .t5 .kmIco{color:#9be7ff;}
.kmHHero .art .t6{width:64px;height:64px;right:300px;top:200px;animation-delay:.4s;}
.kmHHero .art .t6 .kmIco{width:30px;height:30px;color:#ffd98a;}
@keyframes hfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
/* 신뢰 스트립(오버랩) */
.kmHTrust{position:relative;margin-top:30px;margin-bottom:-94px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;background:#fff;border:1px solid var(--km-line);border-radius:18px;box-shadow:0 16px 40px rgba(10,31,68,.12);padding:18px 10px;}
.kmHTrust .it{display:flex;align-items:center;gap:13px;padding:8px 16px;}
.kmHTrust .it+.it{border-left:1px solid var(--km-line);}
.kmHTrust .it .ic{flex:none;width:44px;height:44px;border-radius:12px;background:var(--km-primary-light,#e3edf9);color:#00489c;display:flex;align-items:center;justify-content:center;}
.kmHTrust .it .ic .kmIco{width:23px;height:23px;}
.kmHTrust .it b{display:block;font-size:16px;font-weight:800;color:var(--km-ink);}
.kmHTrust .it span{display:block;font-size:12.5px;color:var(--km-muted);margin-top:1px;}

/* 레일 공통 */
.kmHRailSec{padding:30px 0 8px;}
.kmHRailSec:first-of-type{padding-top:122px;}  /* 신뢰스트립 오버랩 보정 */
.kmHRailHd{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.kmHRailHd h2{font-size:21px;font-weight:900;margin:0;letter-spacing:-.02em;display:flex;align-items:center;gap:8px;}
.kmHRailHd h2 .kmIco{width:20px;height:20px;color:#6a5ae0;}
.kmHRailHd .nav{display:flex;align-items:center;gap:8px;}
.kmHRailHd .more{font-size:13px;font-weight:700;color:var(--km-ink-soft);text-decoration:none;}
.kmHRailHd .more:hover{color:#00489c;}
.kmHRailHd .arw{width:32px;height:32px;border-radius:50%;border:1px solid var(--km-line);background:#fff;color:#33405c;font-size:17px;cursor:pointer;transition:.15s;}
.kmHRailHd .arw:hover{background:#00489c;color:#fff;border-color:#00489c;}
.kmHRail{display:flex;gap:18px;overflow-x:auto;scroll-behavior:smooth;padding:4px 2px 18px;-ms-overflow-style:none;scrollbar-width:none;}
.kmHRail::-webkit-scrollbar{display:none;}
/* 카드 */
.kmHCard{flex:0 0 232px;background:#fff;border:1px solid var(--km-line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:.16s;}
.kmHCard:hover{box-shadow:0 14px 30px rgba(15,23,42,.13);transform:translateY(-4px);}
.kmHCard .th{position:relative;display:block;aspect-ratio:16/10;background:#16223c center/cover no-repeat;}
.kmHCard .th::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,20,45,.05),rgba(10,20,45,.45));}
.kmHCard .th .rk{position:absolute;top:10px;left:10px;z-index:2;width:30px;height:30px;border-radius:50%;background:#fff;color:#00489c;font-size:15px;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 8px rgba(0,0,0,.25);}
.kmHCard .th .nw{position:absolute;top:10px;left:10px;z-index:2;font-size:11px;font-weight:900;color:#fff;background:#e11d48;border-radius:6px;padding:3px 8px;letter-spacing:.03em;}
.kmHCard .th .cat{position:absolute;left:10px;bottom:10px;z-index:2;font-size:11px;font-weight:700;color:#0c2b63;background:rgba(255,255,255,.92);border-radius:6px;padding:3px 9px;}
.kmHCard .th .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;width:44px;height:44px;border-radius:50%;background:rgba(10,20,45,.5);transition:.15s;}
.kmHCard .th .play::after{content:"";position:absolute;left:53%;top:50%;transform:translate(-50%,-50%);border-style:solid;border-width:8px 0 8px 13px;border-color:transparent transparent transparent #fff;}
.kmHCard:hover .th .play{background:#00489c;}
.kmHCard .bd{padding:13px 14px 14px;display:flex;flex-direction:column;gap:8px;flex:1;}
.kmHCard .bd .nm{font-size:14.5px;font-weight:700;line-height:1.4;color:inherit;text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:calc(1.4em * 2);}
.kmHCard .bd .nm:hover{color:#00489c;}
.kmHCard .bd .rt{font-size:13px;color:var(--km-ink-soft);display:flex;align-items:center;gap:4px;}
.kmHCard .bd .rt .s{color:#f5a623;}
.kmHCard .bd .rt .s.off{color:#d4d9e2;}
.kmHCard .bd .rt b{font-weight:800;color:var(--km-ink);}
.kmHCard .bd .rt .cnt{color:var(--km-muted);}
.kmHCard .bd .mt{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--km-muted);margin-top:auto;}
.kmHCard .bd .mt .lv{font-weight:700;color:#00489c;background:var(--km-primary-light,#e3edf9);border-radius:6px;padding:2px 9px;}

/* 직무별 찾기 */
.kmHJobs{padding:26px 0 6px;}
.kmHJobs .jobs{display:grid;grid-template-columns:repeat(9,1fr);gap:10px;}
.kmHJobs .job{display:flex;flex-direction:column;align-items:center;gap:9px;text-decoration:none;color:var(--km-ink-soft);background:#fff;border:1px solid var(--km-line);border-radius:14px;padding:18px 6px;font-size:13px;font-weight:700;transition:.15s;}
.kmHJobs .job:hover,.kmHJobs .job.on{border-color:#00489c;color:#00489c;box-shadow:0 8px 20px rgba(0,72,156,.1);}
.kmHJobs .job .ic{width:30px;height:30px;display:flex;align-items:center;justify-content:center;}
.kmHJobs .job .ic .kmIco{width:26px;height:26px;}

/* 추천 학습 로드맵 */
.kmHRoad{padding:30px 0 8px;}
.kmHRoad .roads{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.kmHRoad .road{position:relative;overflow:hidden;display:block;text-decoration:none;color:var(--km-ink);background:#fff;border:1px solid var(--km-line);border-radius:16px;padding:20px 18px 18px;transition:.16s;border-top:4px solid var(--rc,#00489c);}
.kmHRoad .road:hover{box-shadow:0 14px 30px rgba(15,23,42,.12);transform:translateY(-4px);}
.kmHRoad .road .bd2{font-size:11px;font-weight:900;letter-spacing:.04em;color:#fff;background:var(--rc,#00489c);border-radius:6px;padding:3px 9px;}
.kmHRoad .road h3{font-size:17px;font-weight:800;margin:12px 0 7px;letter-spacing:-.01em;line-height:1.3;}
.kmHRoad .road p{font-size:13px;color:var(--km-ink-soft);line-height:1.5;margin:0 0 18px;min-height:38px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.kmHRoad .road .cnt{display:inline-flex;align-items:center;gap:3px;font-size:13px;font-weight:800;color:var(--rc,#00489c);}
.kmHRoad .road .cnt .kmIco{width:15px;height:15px;}
.kmHRoad .road .ic{position:absolute;right:14px;bottom:12px;color:var(--rc,#00489c);opacity:.16;}
.kmHRoad .road .ic .kmIco{width:64px;height:64px;}

/* 왜 우리인가 */
.kmHWhy{padding:42px 0 28px;}
.kmHWhy .ttl{text-align:center;font-size:25px;font-weight:900;margin:0 0 28px;letter-spacing:-.02em;}
.kmHWhy .ttl span{color:#00489c;}
.kmHWhy .grid{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:18px;align-items:center;}
.kmHWhy .col{display:flex;flex-direction:column;gap:18px;}
.kmHWhy .feat{text-align:center;}
.kmHWhy .feat .ic{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:15px;background:var(--km-primary-light,#e3edf9);color:#00489c;margin-bottom:10px;}
.kmHWhy .feat .ic .kmIco{width:26px;height:26px;}
.kmHWhy .feat b{display:block;font-size:15.5px;font-weight:800;margin-bottom:5px;}
.kmHWhy .feat p{font-size:12.5px;color:var(--km-ink-soft);line-height:1.5;margin:0;}
.kmHWhy .whyCta{position:relative;overflow:hidden;border-radius:18px;background:linear-gradient(150deg,#0c2b63,#1b50a8);color:#fff;padding:30px 30px;text-align:center;box-shadow:0 14px 34px rgba(10,31,68,.22);}
.kmHWhy .whyCta .ek{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:800;letter-spacing:.06em;color:#bcd4ff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:5px 13px;}
.kmHWhy .whyCta .ek .kmIco{width:13px;height:13px;}
.kmHWhy .whyCta h3{font-size:23px;font-weight:900;margin:14px 0 8px;letter-spacing:-.02em;}
.kmHWhy .whyCta>p{font-size:13.5px;color:#cfddf5;line-height:1.6;margin:0 0 18px;}
.kmHWhy .whyCta .nums{display:flex;justify-content:center;gap:10px;margin-bottom:20px;}
.kmHWhy .whyCta .nums div{flex:1;max-width:120px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:12px 6px;}
.kmHWhy .whyCta .nums b{display:block;font-size:21px;font-weight:900;letter-spacing:-.02em;}
.kmHWhy .whyCta .nums span{display:block;font-size:11.5px;color:#bcd0ee;margin-top:2px;}
.kmHWhy .whyCta .btns{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;}
.kmHWhy .whyCta .btns .km-btn{background:#fff;color:#0c2b63;border:none;border-radius:11px;padding:12px 20px;font-size:14px;font-weight:800;text-decoration:none;transition:.15s;}
.kmHWhy .whyCta .btns .km-btn:hover{background:#eaf1fb;}
.kmHWhy .whyCta .btns .km-btn.gh{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.4);}
.kmHWhy .whyCta .btns .km-btn.gh:hover{background:rgba(255,255,255,.24);}

/* 공지 + 이벤트 */
.kmHNews{padding:10px 0 50px;}
.kmHNews .kmWrap{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;}
.kmHNews .news{background:#fff;border:1px solid var(--km-line);border-radius:16px;padding:6px 20px 12px;}
.kmHNews .news .bh{display:flex;align-items:center;justify-content:space-between;padding:13px 0 9px;border-bottom:1px solid var(--km-line);}
.kmHNews .news .bh b{font-size:15px;display:inline-flex;align-items:center;gap:7px;}
.kmHNews .news .bh b .kmIco{width:17px;height:17px;color:#00489c;}
.kmHNews .news .bh a{font-size:12.5px;color:var(--km-muted);text-decoration:none;}
.kmHNews .news .ni{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 2px;border-bottom:1px solid #f1f4f8;text-decoration:none;color:var(--km-ink);}
.kmHNews .news .ni:last-child{border-bottom:none;}
.kmHNews .news .ni:hover .t{color:#00489c;}
.kmHNews .news .ni .t{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kmHNews .news .ni .d{font-size:12px;color:var(--km-muted);flex:none;}
.kmHCs{background:linear-gradient(135deg,#0c2b63,#1b50a8);color:#fff;border-radius:16px;padding:20px 22px;display:flex;flex-direction:column;}
.kmHCs .hd{display:flex;align-items:center;gap:11px;}
.kmHCs .hd .ic{flex:none;width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;}
.kmHCs .hd .ic .kmIco{width:22px;height:22px;}
.kmHCs .hd b{display:block;font-size:16px;font-weight:800;}
.kmHCs .hd span{display:block;font-size:12px;color:#bcd0ee;margin-top:1px;}
.kmHCs .tel{font-size:26px;font-weight:900;letter-spacing:-.01em;margin:14px 0 4px;}
.kmHCs .hr{font-size:12px;color:#bcd0ee;line-height:1.6;}
.kmHCs .lk{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px;}
.kmHCs .lk a{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:#fff;text-decoration:none;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:9px;padding:7px 11px;transition:.15s;}
.kmHCs .lk a:hover{background:rgba(255,255,255,.22);}
.kmHCs .lk a .kmIco{width:14px;height:14px;}

@media (max-width:1024px){
  .kmHHeroIn{grid-template-columns:1fr;}
  .kmHHero .art{height:220px;order:-1;}
  .kmHJobs .jobs{grid-template-columns:repeat(5,1fr);}
  .kmHRoad .roads{grid-template-columns:repeat(2,1fr);}
  .kmHWhy .grid{grid-template-columns:1fr;}
  .kmHWhy .whyCta{order:-1;max-width:560px;margin:0 auto;width:100%;}
  .kmHNews .kmWrap{grid-template-columns:1fr;}
}
@media (max-width:768px){
  .kmHHero{padding:34px 0 54px;}
  .kmHHero .lead h1{font-size:30px;}
  .kmHTrust{grid-template-columns:repeat(2,1fr);margin-bottom:-120px;}
  .kmHTrust .it:nth-child(odd){border-left:none;}
  .kmHRailSec:first-of-type{padding-top:150px;}
  .kmHJobs .jobs{grid-template-columns:repeat(3,1fr);}
  .kmHCard{flex-basis:200px;}
}
