/* ============================================================
   KANS Concept 1 v2 — "사이언티픽 라이트" 2차 시안 (2026-10-14)
   출처: KANS 사이언티픽 라이트 웹뷰.html (클라이언트 베타 검토 10/12 반영)
   - 공통(홈 + 내부 페이지): 헤더 버튼 · 바로가기 레일 · 단순 푸터 · 모바일 하단 바/시트 · 카카오톡 상담 버튼
   - 홈(.sl-home): 히어로 + 메인 배너 · 교육과정 · 교육일정 패널 · 안전정보 · 교육시설
   concept1.css(+ concept1-sub.css) 다음에 로드. 토큰은 concept1.css :root(--c1-*) 그대로 사용.
   ============================================================ */

/* ---------- 헤더: 메뉴 4개(콘텐츠 삭제) · 로그인/교육생 가입 버튼 ---------- */
#headerWrap .header-btn .gnb-menu-list { gap: 42px; }
#headerWrap .header-btn .gnb-menu-list > li > a { font-size: 17.5px; font-weight: 700; }
.c1-header-actions { gap: 12px; }
.sl-hbtn {
  display: inline-flex; align-items: center; justify-content: center; height: 44px; padding: 0 22px;
  border-radius: var(--c1-r-btn); font-family: var(--c1-font); font-size: 14.5px; font-weight: 700; line-height: 1;
  white-space: nowrap; text-decoration: none; transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.sl-hbtn--line { border: 1.5px solid var(--c1-blue); background: #fff; color: var(--c1-blue) !important; }
.sl-hbtn--line:hover { background: var(--c1-bg-tint); color: var(--c1-blue-deep) !important; }
.sl-hbtn--fill { border: 1.5px solid var(--c1-blue); background: var(--c1-blue); color: #fff !important; box-shadow: var(--c1-shadow-btn); }
.sl-hbtn--fill:hover { background: var(--c1-blue-deep); border-color: var(--c1-blue-deep); }
.sl-hbtn:focus-visible { outline: 2px solid var(--c1-cyan); outline-offset: 2px; }
@media (max-width: 1279px) {
  #headerWrap .header-btn .gnb-menu-list { gap: 30px; }
  #headerWrap .header-btn .gnb-menu-list > li > a { font-size: 16.5px; }
  .sl-hbtn { height: 40px; padding: 0 16px; font-size: 14px; }
}
@media (max-width: 1023px) {
  .sl-hbtn { height: 36px; padding: 0 13px; font-size: 13px; border-radius: 10px; box-shadow: none; }
}
@media (max-width: 767px) {
  .c1-header-row .logo { min-width: 0; flex-shrink: 1; }
  .c1-header-row .logo img { height: 15px; width: auto; max-width: 100%; object-fit: contain; object-position: left; }
  .c1-header-actions { gap: 7px; }
  .sl-hbtn { height: 30px; padding: 0 10px; font-size: 12px; border-radius: 9px; }
  .c1-header-actions .mob-view.mob_gnb_open { width: 34px; height: 34px; margin-left: 1px; }
}
@media (max-width: 359px) {
  .sl-hbtn { padding: 0 8px; font-size: 11.5px; }
}

/* ---------- 바로가기 레일 (≥768, 우측 고정) ---------- */
.sl-quick {
  position: fixed; right: 20px; top: 50%; transform: translateY(-50%); z-index: 90;
  width: 84px; background: #fff; border: 1px solid var(--c1-line); border-radius: 14px;
  box-shadow: var(--c1-shadow-card); font-family: var(--c1-font);
}
.sl-quick__title {
  padding: 10px 8px 8px; text-align: center; font-size: 12px; font-weight: 800; letter-spacing: 0.1em;
  color: var(--c1-blue); border-bottom: 1px solid var(--c1-line-inner);
}
.sl-quick__cell {
  display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; margin: 0; padding: 14px 6px;
  border: 0; border-bottom: 1px solid var(--c1-line-inner); background: #fff; color: var(--c1-blue);
  font-family: inherit; cursor: pointer; text-decoration: none; transition: background-color 0.2s ease, color 0.2s ease;
}
.sl-quick, .sl-quick *, .sl-quick *::before, .sl-quick *::after { box-sizing: border-box; }   /* 링크 셀(a)이 content-box 라 width 100% + 좌우 패딩만큼 레일 밖으로 넘치던 문제 — 버튼 셀과 같은 폭으로 */
.sl-quick > a:last-child { border-bottom: 0; border-radius: 0 0 13px 13px; }
.sl-quick__cell span { display: block; font-size: 12px; font-weight: 700; line-height: 1.35; color: var(--c1-navy); text-align: center; }
.sl-quick__cell svg { display: block; flex-shrink: 0; }
/* 2026-10-14 피드백: 파란 하이라이트가 첫 항목(교육신청)에 고정되어 보임 → 상시 배경 제거, 가리키는 항목만 파란색 */
.sl-quick__cell:hover, .sl-quick__cell:focus-visible, .sl-quick__pop.is-open > .sl-quick__cell { background: var(--c1-blue); color: #fff; }
.sl-quick__cell:hover span, .sl-quick__cell:focus-visible span, .sl-quick__pop.is-open > .sl-quick__cell span { color: #fff; }
.sl-quick__cell:focus-visible { outline: 2px solid var(--c1-navy); outline-offset: -2px; }
.sl-quick__pop { position: relative; }
.sl-quick__fly {
  position: absolute; right: calc(100% + 12px); top: 50%; transform: translateY(-50%) translateX(8px);
  width: 236px; background: #fff; border: 1px solid var(--c1-line); border-radius: 14px;
  box-shadow: 0 18px 44px rgba(11, 29, 58, 0.16); padding: 14px 16px 10px; text-align: left;
  opacity: 0; visibility: hidden; transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s 0.18s;
}
.sl-quick__fly::after { content: ''; position: absolute; left: 100%; top: 0; bottom: 0; width: 14px; }   /* 셀↔팝 사이 12px 간격에서 호버 유지 */
.sl-quick__pop:hover .sl-quick__fly, .sl-quick__pop:focus-within .sl-quick__fly, .sl-quick__pop.is-open .sl-quick__fly {
  opacity: 1; visibility: visible; transform: translateY(-50%); transition: opacity 0.18s ease, transform 0.18s ease;
}
.sl-quick__fly-h { font-size: 12px; font-weight: 800; letter-spacing: 0.1em; color: var(--c1-blue); padding-bottom: 10px; border-bottom: 1px solid var(--c1-line-inner); }
.sl-quick__row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 8px; margin: 0 -8px;
  border-radius: 10px; text-decoration: none; transition: background-color 0.15s ease;
}
.sl-quick__row:hover { background: var(--c1-bg-cool); }
.sl-quick__row-l { font-size: 12.5px; font-weight: 700; color: var(--c1-t-body); white-space: nowrap; }
.sl-quick__row-n { font-family: var(--c1-mono); font-size: 14px; font-weight: 600; color: var(--c1-navy); letter-spacing: -0.01em; }
.sl-quick__row:hover .sl-quick__row-n { color: var(--c1-blue); }
.sl-quick__bank { display: flex; flex-direction: column; gap: 4px; padding: 12px 0 6px; }
.sl-quick__bank-name { font-size: 12.5px; font-weight: 700; color: var(--c1-t-body); }
.sl-quick__bank-no { font-family: var(--c1-mono); font-size: 15px; font-weight: 600; color: var(--c1-navy); letter-spacing: 0; }
.sl-quick__bank-holder { font-size: 12.5px; color: var(--c1-t-meta); line-height: 1.5; }
@media (prefers-reduced-motion: reduce) { .sl-quick__fly { transition: none; } }
/* 1240 컨테이너 바깥 여백이 좁은 폭: 컴팩트 레일(기존 .quick-sidebar 규칙과 같은 구간) */
@media (max-width: 1479px) {
  .sl-quick { right: 8px; width: 64px; }
  .sl-quick__title { font-size: 10px; letter-spacing: 0.04em; padding: 8px 2px 6px; }
  .sl-quick__cell { gap: 5px; padding: 10px 3px; }
  .sl-quick__cell svg { width: 18px; height: 18px; }
  .sl-quick__cell span { font-size: 10.5px; }
}
@media (max-width: 767px) { .sl-quick { display: none; } }
/* 2026-10-14: 768–1479 구간에서 고정 레일(64px, right 8px)이 서브페이지 본문(예: 달력 토요일 열)을 덮음 → 본문에 레일 폭만큼 우측 여백 확보.
   1480 이상은 1240 컨테이너 바깥 거터(≥120px)에 레일이 들어가므로 불필요 */
@media (min-width: 768px) and (max-width: 1479px) {
  body.c1-sub .sub_layout { padding-right: 84px; }
}

/* ---------- 푸터 (KINAC 예시형 단순 푸터) ---------- */
.sl-footer { position: relative; margin: 0; padding: 0; background: var(--c1-navy); color: rgba(255, 255, 255, 0.64); font-family: var(--c1-font); }
.sl-footer a { display: inline; color: inherit; text-decoration: none; }
.sl-footer__main { display: flex; justify-content: space-between; align-items: flex-start; gap: 48px; padding-top: 46px; padding-bottom: 30px; }
.sl-footer__org { min-width: 0; }
.sl-footer__logo img { display: block; height: 26px; width: auto; filter: brightness(0) invert(1); opacity: 0.78; }
.sl-footer .sl-footer__policy { float: none; display: flex; flex-wrap: wrap; align-items: center; margin: 20px 0 0; padding: 0; list-style: none; }
.sl-footer__policy li { display: flex; align-items: center; float: none; margin: 0; }
.sl-footer__policy li + li::before { content: ''; display: block; width: 1px; height: 11px; margin: 0 18px; background: rgba(255, 255, 255, 0.22); border-radius: 0; }
.sl-footer__policy a { font-size: 13.5px; line-height: 1.6; color: rgba(255, 255, 255, 0.68); }
.sl-footer__policy a b { font-weight: 700; color: var(--c1-cyan-300); }
.sl-footer__policy a:hover { color: #fff; }
.sl-footer__addr { margin-top: 16px; font-style: normal; font-size: 13.5px; line-height: 1.95; color: rgba(255, 255, 255, 0.64); }
.sl-footer__line { display: block; white-space: nowrap; }
.sl-footer__line i { font-style: normal; padding: 0 5px; }
.sl-footer__addr a:hover { color: #fff; }
.sl-footer__side { flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.sl-footer .family-site { position: relative; }
.sl-footer .familySite { position: relative; width: 200px; }
.sl-footer .familySite > a {
  display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 11px 14px;
  border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 10px; font-size: 13px; color: rgba(255, 255, 255, 0.72); cursor: pointer;
}
.sl-footer .familySite > a:hover { border-color: rgba(255, 255, 255, 0.45); color: #fff; }
.sl-footer .familySite .fs-arrow { display: inline-flex; transition: transform 0.2s ease; }
.sl-footer .familySite.is-open .fs-arrow { transform: rotate(180deg); }
.sl-footer .familySite > div {
  display: none; position: absolute; left: 0; right: 0; bottom: calc(100% + 6px); z-index: 20;
  max-height: 280px; overflow-y: auto; padding: 6px 0; background: #fff; border-radius: 10px; box-shadow: 0 18px 44px rgba(11, 29, 58, 0.3);
}
.sl-footer .familySite > div a { display: block; padding: 8px 14px; font-size: 13px; line-height: 1.4; color: var(--c1-t-emph); }
.sl-footer .familySite > div a:hover { background: var(--c1-bg-cool); color: var(--c1-blue); }
.sl-footer__badge {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 10px; font-size: 12.5px; font-weight: 600; color: rgba(255, 255, 255, 0.72);
}
.sl-footer__bottom { border-top: 1px solid rgba(255, 255, 255, 0.1); }
.sl-footer__bottom .guide { display: flex; align-items: center; min-height: 56px; font-size: 12.5px; color: rgba(255, 255, 255, 0.5); }
@media (max-width: 1279px) {
  .sl-footer__line { white-space: normal; }
  .sl-footer__main { gap: 32px; }
}
@media (max-width: 767px) {
  .sl-footer {
    background: linear-gradient(180deg, rgba(11, 29, 58, 0.8), rgba(11, 29, 58, 0.64)), url('/img/concept1/texture-footer.jpg') center / cover no-repeat, var(--c1-navy);
  }
  .sl-footer__main { flex-direction: column; align-items: stretch; gap: 0; padding-top: 40px; padding-bottom: 0; }
  .sl-footer__org { display: contents; }
  .sl-footer__logo { order: 1; }
  .sl-footer__logo img { height: 21px; }
  .sl-footer__addr { order: 2; margin-top: 14px; font-size: 12.5px; line-height: 1.85; }
  .sl-footer__line i:first-of-type { display: block; height: 0; overflow: hidden; }   /* 주소 뒤에서 줄바꿈 */
  .sl-footer__side { order: 3; align-items: flex-start; gap: 14px; margin-top: 18px; }
  .sl-footer .family-site, .sl-footer .familySite { width: 100%; }
  .sl-footer .familySite > a { min-height: 48px; border-radius: 12px; font-size: 13px; }
  .sl-footer__badge { font-size: 12px; padding: 9px 13px; }
  .sl-footer .sl-footer__policy { order: 4; margin-top: 24px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, 0.12); gap: 4px 16px; }
  .sl-footer__policy li + li::before { display: none; }
  .sl-footer__policy a { display: inline-flex; align-items: center; min-height: 36px; font-size: 12.5px; color: rgba(255, 255, 255, 0.6); }
  .sl-footer__bottom { border-top: 0; padding-bottom: calc(var(--sl-mbar-h, 56px) + 1px + env(safe-area-inset-bottom, 0px)); }   /* 하단 바(높이 + 상단 테두리 1px)에 © 가 가리지 않게 */
  .sl-footer__bottom .guide { min-height: 0; padding-top: 6px; padding-bottom: 22px; font-size: 12px; color: rgba(255, 255, 255, 0.62); }
}

/* ---------- 교육 문의 밴드 (2026-10-19 협회 회신 추가 #3: 교육일정 아래 · 항목 3개 · 번호 하나씩) ---------- */
@media (min-width: 1024px) { .c1-contact .guide { grid-template-columns: 220px repeat(3, 1fr); } }   /* 항목 3개 — ≤1023 · ≤767 은 concept1.css 의 기존 밴드 규칙(2열 / 대표번호 전폭) 그대로 */
.c1-contact__item dt { white-space: nowrap; }
/* 교육과정 머리 버튼 2개 (2026-10-19 협회 회신 #6) */
.sl-sec-head__btns { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
@media (max-width: 767px) { .sl-sec-head__btns { width: 100%; } .sl-sec-head__btns .sl-btn { flex: 1 1 auto; justify-content: center; } }
/* 바로가기 바 '온라인 교육 (직장/보수)' 보조 글자 */
.c1-quick__title small { font-size: 12px; font-weight: 700; color: var(--c1-t-meta); }
/* 레일 교육신청 팝: 번호 대신 짧은 안내 글자 */
.sl-quick__row-n--txt { font-family: inherit; font-size: 12px; font-weight: 600; color: var(--c1-blue); white-space: nowrap; }
/* 더보기 시트 소제목 */
.sl-sheet__sub-h { margin-top: 4px; font-size: 12px; font-weight: 800; letter-spacing: 0.08em; color: var(--c1-blue); }

/* 교육시설 카드 규모·기자재 (2026-10-19 협회 회신 #6, 대관안내 표 값) */
.sl-facility__spec { margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: var(--c1-bg-tint, #F3F7FC); font-size: 13px; line-height: 1.5; }
.sl-facility__spec > div { display: flex; gap: 10px; }
.sl-facility__spec > div + div { margin-top: 4px; }
.sl-facility__spec dt { flex: 0 0 44px; font-weight: 800; color: var(--c1-navy); }
.sl-facility__spec dd { margin: 0; color: var(--c1-t-body); }

/* ---------- 모바일 하단 바로가기 바 + 시트 (≤767) ---------- */
.sl-mbar { display: none; }
:root { --sl-mbar-h: 64px; }   /* 2026-10-19: 두 줄 라벨(온라인 교육 (직장/보수) · 면허소지자 보수교육) — 바 높이를 한 변수로 관리, 푸터 ©·카카오·위로 버튼·달력 시트가 같은 값을 씀 */
@media (max-width: 767px) {
  .sl-mbar {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); position: fixed; left: 0; right: 0; bottom: 0; z-index: 94;
    background: #fff; border-top: 1px solid var(--c1-line); box-shadow: 0 -8px 24px rgba(11, 29, 58, 0.10);
    padding-bottom: env(safe-area-inset-bottom, 0px); font-family: var(--c1-font);
  }
  .sl-mbar__item {
    display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 3px; height: var(--sl-mbar-h, 56px); margin: 0; padding: 9px 3px 4px; box-sizing: border-box;   /* 2026-10-19: 아이콘을 한 줄에 맞춤 — 라벨 줄 수와 무관하게 아이콘은 같은 높이 */
    border: 0; border-right: 1px solid var(--c1-line-inner); border-radius: 0; background: #fff; color: var(--c1-blue);
    font-family: inherit; cursor: pointer; text-decoration: none;
  }
  .sl-mbar__item:last-child { border-right: 0; }
  .sl-mbar__item svg { flex: 0 0 auto; }
  .sl-mbar__item span { display: flex; align-items: center; min-height: 26px; font-size: 10.5px; font-weight: 700; line-height: 1.2; color: var(--c1-navy); text-align: center; word-break: keep-all; }
  .sl-mbar__item:active { background: var(--c1-bg-cool); }
  .sl-mbar__item.is-active { background: var(--c1-blue); color: #fff; }   /* 현재 페이지의 항목만 (2026-10-19: 첫 항목 고정 강조 제거) */
  .sl-mbar__item.is-active span { color: #fff; }
  .sl-mbar__item:focus-visible { outline: 2px solid var(--c1-cyan); outline-offset: -2px; }
}
.sl-scrim { position: fixed; inset: 0; z-index: 400; background: rgba(11, 29, 58, 0.45); opacity: 0; transition: opacity 0.22s ease; backdrop-filter: blur(2px); }
.sl-scrim.is-open { opacity: 1; }
.sl-scrim[hidden], .sl-sheet[hidden] { display: none; }
.sl-sheet {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 401; max-width: 520px; margin: 0 auto; box-sizing: border-box;
  background: #fff; border-radius: 20px 20px 0 0; box-shadow: 0 -14px 40px rgba(11, 29, 58, 0.22);
  padding: 9px 18px calc(18px + env(safe-area-inset-bottom, 0px)); font-family: var(--c1-font);
  transform: translateY(100%); transition: transform 0.22s ease;
}
.sl-sheet.is-open { transform: none; }
.sl-sheet__grip { width: 40px; height: 4px; margin: 0 auto 12px; border-radius: 2px; background: var(--c1-line); }
.sl-sheet__head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 8px; }
.sl-sheet__title { font-size: 16px; font-weight: 800; color: var(--c1-navy); }
.sl-sheet__close {
  width: 32px; height: 32px; padding: 0; border: 0; border-radius: 10px; background: var(--c1-bg-cool);
  color: var(--c1-t-body); font-size: 18px; line-height: 1; cursor: pointer;
}
.sl-sheet__tel {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 46px; padding: 0 2px;
  border-bottom: 1px solid var(--c1-line-inner); text-decoration: none; font-size: 13px; font-weight: 700; color: var(--c1-t-body);
}
.sl-sheet__num { font-family: var(--c1-mono); font-size: 14.5px; font-weight: 600; color: var(--c1-navy); }
.sl-sheet__note { margin-top: 10px; font-size: 12px; color: var(--c1-t-meta); }
.sl-sheet__row { display: flex; align-items: center; gap: 13px; padding: 13px 2px; border-bottom: 1px solid var(--c1-line-inner); text-decoration: none; }
.sl-sheet__row:last-child { border-bottom: 0; }
.sl-sheet__ico { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; flex-shrink: 0; border-radius: 11px; background: #EEF4FD; color: var(--c1-blue); }
.sl-sheet__txt { min-width: 0; }
.sl-sheet__name { display: block; font-size: 15px; font-weight: 800; color: var(--c1-navy); }
.sl-sheet__sub { display: block; margin-top: 2px; font-size: 12.5px; line-height: 1.55; color: var(--c1-t-meta); }
.sl-sheet__sub strong { font-family: var(--c1-mono); font-weight: 600; color: var(--c1-navy); letter-spacing: 0; }
@media (prefers-reduced-motion: reduce) { .sl-sheet, .sl-scrim { transition: none; } }

/* ---------- 카카오톡 상담 (우측 하단) · 맨 위로 버튼은 그 위 ---------- */
.sl-kakao {
  position: fixed; right: 24px; bottom: 24px; z-index: 96; display: flex; align-items: center; gap: 11px;
  height: 64px; padding: 0 24px 0 19px; background: #FAE100; border-radius: 32px; box-shadow: 0 16px 38px rgba(11, 29, 58, 0.24);
  text-decoration: none; font-family: var(--c1-font); transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.sl-kakao:hover { transform: translateY(-2px); box-shadow: 0 18px 40px rgba(11, 29, 58, 0.28); }
.sl-kakao:focus-visible { outline: 3px solid var(--c1-navy); outline-offset: 3px; }
.sl-kakao svg { display: block; flex-shrink: 0; }
.sl-kakao__label { font-size: 14.5px; font-weight: 800; color: #3C1E1E; white-space: nowrap; }
.c1-totop { bottom: 100px; right: 32px; }
@media (max-width: 1479px) { .sl-kakao { right: 16px; bottom: 16px; } .c1-totop { right: 24px; bottom: 92px; } }
@media (max-width: 767px) {
  .sl-kakao { right: 16px; bottom: calc(var(--sl-mbar-h, 56px) + 15px + env(safe-area-inset-bottom, 0px)); width: 56px; height: 56px; padding: 0; justify-content: center; border-radius: 50%; }
  .sl-kakao__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .c1-totop, body:has(.c1-shortcut-strip) .c1-totop { right: 23px; bottom: calc(var(--sl-mbar-h, 56px) + 15px + 56px + 12px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) { .sl-kakao { transition: none; } }

/* ============================================================
   홈 (.sl-home)
   ============================================================ */
.sl-home .sl-h2 { margin: 0; font-size: 40px; font-weight: 900; line-height: 1.25; letter-spacing: -0.02em; color: var(--c1-t-heading); }
.sl-home .c1-eyebrow + .sl-h2 { margin-top: 14px; }
.sl-home .sl-lead { margin: 14px 0 0; max-width: 560px; font-size: 16px; line-height: 1.7; color: var(--c1-t-body); }
.sl-sec-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.sl-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px; height: 50px; padding: 0 26px;
  border-radius: var(--c1-r-btn); font-family: var(--c1-font); font-size: 15.5px; font-weight: 700; white-space: nowrap;
  text-decoration: none; transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.sl-btn--primary { background: var(--c1-blue); color: #fff !important; box-shadow: 0 12px 28px rgba(28, 95, 208, 0.28); }
.sl-btn--primary:hover { background: var(--c1-blue-deep); }
.sl-btn--line { height: 52px; padding: 0 30px; border: 1.5px solid #D6E2F2; background: #fff; color: var(--c1-blue-deep) !important; font-size: 15px; }
.sl-btn--line:hover { border-color: var(--c1-blue); }
.sl-btn--md { height: 48px; padding: 0 22px; font-size: 15px; }
.sl-btn:focus-visible { outline: 2px solid var(--c1-cyan); outline-offset: 2px; }
.sl-chip {
  display: inline-flex; align-items: center; height: 30px; padding: 0 13px; flex-shrink: 0; border-radius: 999px;
  background: rgba(28, 95, 208, 0.08); color: var(--c1-blue-deep); font-size: 12.5px; font-weight: 700; white-space: nowrap;
}
.sl-chip--sm { height: 24px; padding: 0 10px; font-size: 12px; }
.sl-chip--glass { background: rgba(255, 255, 255, 0.16); color: #fff; border: 1px solid rgba(255, 255, 255, 0.35); backdrop-filter: blur(4px); }
.sl-chip--cyan { background: rgba(63, 182, 220, 0.16); color: var(--c1-cyan-300); }
.sl-chip--dark { background: rgba(11, 29, 58, 0.72); color: #fff; }
.sl-note {
  display: inline-flex; align-items: center; margin-top: 14px; padding: 5px 11px; border: 1px dashed #A9C6EE; border-radius: 9px;
  background: rgba(28, 95, 208, 0.05); font-size: 11.5px; font-weight: 700; line-height: 1.5; color: var(--c1-blue-deep);
}
.sl-note--box { display: block; padding: 11px 14px; border-color: var(--c1-grey-300); border-radius: 10px; background: none; font-size: 12.5px; color: var(--c1-t-meta); }

/* ---------- S1 히어로 + 메인 배너 ---------- */
.sl-hero {
  position: relative; overflow: hidden; min-height: 736px; padding: 92px 0 110px; box-sizing: border-box;
  background: linear-gradient(180deg, #FFFFFF 0%, #F7FAFD 46%, #EFF5FC 100%);
}
.sl-hero::before, .sl-hero::after { content: ''; position: absolute; pointer-events: none; }
.sl-hero::before { right: -80px; top: 40px; width: 760px; height: 620px; background: radial-gradient(closest-side, rgba(63, 182, 220, 0.16), rgba(63, 182, 220, 0) 72%); }
.sl-hero::after { left: -140px; bottom: -120px; width: 620px; height: 560px; background: radial-gradient(closest-side, rgba(28, 95, 208, 0.10), rgba(28, 95, 208, 0) 70%); }
.sl-hero__grid { position: absolute; inset: 0; width: 100%; height: 100%; }
/* 관리자 배경('메인 문구' 게시판 첨부 이미지): 사진 위에 흰 워시를 깔아 남색 문구 대비 유지(왼쪽 짙게 → 오른쪽 옅게) */
.sl-hero__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sl-hero__wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.88) 42%, rgba(255, 255, 255, 0.30) 100%); }   /* 2026-10-19 협회 회신 #1: 오른쪽을 비운 만큼 배경 사진이 더 잘 보이게 워시를 옅게(0.6 → 0.3). 글자 쪽(왼쪽)은 그대로 */
.sl-hero--photo::before, .sl-hero--photo::after, .sl-hero--photo .sl-hero__grid { display: none; }
.sl-hero__in { position: relative; z-index: 1; display: flex; align-items: flex-start; gap: 40px; }
.sl-hero__copy { width: 560px; flex-shrink: 0; padding-bottom: 20px; }
.sl-hero__title { margin: 0; font-size: 62px; font-weight: 900; line-height: 1.22; letter-spacing: -0.025em; color: var(--c1-t-heading); }
.sl-hero__desc { margin: 26px 0 0; max-width: 470px; font-size: 17.5px; line-height: 1.75; color: var(--c1-t-body); }
.sl-hero .c1-promo { margin-top: 52px; }
/* 2026-10-19 협회 회신 #1·#2: 슬라이더를 큰 문구 아래(왼쪽 열)로 — 오른쪽은 비워 배경 사진 노출. 홍보 스트립은 출력하지 않음 */
.sl-hero__copy .sl-banner { flex: none; width: 100%; max-width: 520px; margin: 34px 0 0; }
.sl-hero__copy .sl-banner__frame { border-radius: 18px; aspect-ratio: 900 / 354; }   /* 2026-10-21 협회 3차 검토 #1(R2-01): 슬라이더 높이를 절반으로(900/708 → 900/354). 협회가 새 비율에 맞춰 이미지를 다시 제작 — 그때까지 기존 이미지는 contain 으로 잘리지 않게 표시 */
.sl-hero__copy .sl-banner { margin-top: 22px; }
.sl-hero__copy .sl-banner__ctrl { margin-top: 10px; }
.sl-hero { min-height: 0; padding: 56px 0 56px; }   /* 2026-10-21 협회 3차 검토 #1: 히어로 위·아래 여백을 줄여(92/96 → 56/56) PC 첫 화면(1440×900)에서 하단 바로가기 바가 바로 보이게 */
.sl-hero__desc { margin-top: 18px; }
.sl-hero--solo .sl-hero__copy { width: auto; max-width: 760px; }
.sl-banner { flex: 1; min-width: 0; max-width: 640px; margin-left: auto; }
.sl-banner__frame {
  position: relative; aspect-ratio: 900 / 708; border-radius: 20px; overflow: hidden; background: #fff; border: 1px solid var(--c1-line);
  box-shadow: 0 24px 60px rgba(11, 29, 58, 0.10), 0 0 0 1px rgba(255, 255, 255, 0.9);
}
.sl-banner__slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 0.5s ease, visibility 0s 0.5s; }
.sl-banner__slide.is-on { opacity: 1; visibility: visible; transition: opacity 0.5s ease; }
.sl-banner__slide a, .sl-banner__slide img { display: block; width: 100%; height: 100%; }
.sl-banner__slide img { object-fit: contain; }
.sl-banner__ctrl { margin-top: 16px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.sl-banner__dots { display: flex; align-items: center; gap: 8px; }
.sl-banner__dot { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: #C9D8EC; cursor: pointer; transition: width 0.2s ease, background-color 0.2s ease; }
.sl-banner__dot.is-on { width: 26px; border-radius: 5px; background: var(--c1-blue); }
.sl-banner__btns { display: flex; align-items: center; gap: 6px; }
.sl-banner__btn {
  display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0;
  border: 1px solid var(--c1-line); border-radius: 10px; background: #fff; color: var(--c1-t-emph); cursor: pointer; transition: border-color 0.18s ease, color 0.18s ease;
}
.sl-banner__btn:hover { border-color: var(--c1-blue); color: var(--c1-blue); }
.sl-banner__dot:focus-visible, .sl-banner__btn:focus-visible { outline: 2px solid var(--c1-blue); outline-offset: 2px; }
.sl-banner__toggle .ico-play, .sl-banner.is-paused .sl-banner__toggle .ico-pause { display: none; }
.sl-banner.is-paused .sl-banner__toggle .ico-play { display: block; }
@media (prefers-reduced-motion: reduce) { .sl-banner__slide, .sl-banner__slide.is-on { transition: none; } }
@media (min-width: 1024px) and (max-width: 1399px) {
  .sl-hero__in { padding-right: 60px; }   /* 우측 고정 레일(8 + 64px)이 배너 '다음' 버튼을 가리지 않게 */
}
@media (max-width: 1279px) {
  .sl-hero__copy { width: 46%; }
  .sl-hero__title { font-size: 52px; }
  .sl-hero__in { gap: 32px; }
}
@media (max-width: 1023px) {
  .sl-hero { min-height: 0; padding: 64px 0 104px; }
  .sl-hero__in { flex-direction: column; gap: 0; }
  .sl-hero__copy { display: contents; }
  .sl-hero__title { order: 1; }
  .sl-hero__desc { order: 2; max-width: 620px; }
  .sl-hero .sl-note { order: 3; align-self: flex-start; }
  .sl-banner { order: 4; width: 100%; max-width: 640px; margin: 28px 0 0; }
  .sl-hero .c1-promo { order: 5; width: 100%; max-width: 640px; margin-top: 18px; box-sizing: border-box; }
}
@media (max-width: 767px) {
  .sl-hero { padding: 34px 0 40px; }
  .sl-hero__wash { background: rgba(255, 255, 255, 0.9); }
  .sl-hero::before { width: 420px; height: 360px; right: -160px; }
  .sl-hero__title { margin-top: 20px; font-size: 34px; line-height: 1.28; }
  .sl-hero__desc { margin-top: 14px; font-size: 16px; line-height: 1.7; }
  .sl-hero .sl-note { margin-top: 12px; font-size: 11px; padding: 5px 10px; }
  .sl-banner { margin-top: 22px; }
  .sl-banner__frame { border-radius: 16px; box-shadow: 0 16px 38px rgba(11, 29, 58, 0.10); }
  .sl-banner__ctrl { margin-top: 12px; justify-content: flex-start; }
  .sl-banner__dot { width: 8px; height: 8px; }
  .sl-banner__dot.is-on { width: 22px; border-radius: 4px; }
  .sl-banner__btn { width: 30px; height: 30px; border-radius: 9px; }
}

/* 2026-10-21 협회 3차 검토 #2(R2-10): 전화번호 등에 쓰던 IBM Plex Mono 의 숫자 0 가운데 점이 가독성을 해침 → 모든 숫자/라벨 서체를 본문 서체(Pretendard·Noto Sans KR, 0 안에 아무것도 없음)로 통일.
   --c1-mono 변수를 덮어써서 연락처 밴드·우측 레일·모바일 시트·달력 월 표시·계좌번호 등 이 변수를 쓰는 모든 곳에 한 번에 적용. 숫자 폭은 tabular-nums 로 고정해 전화번호 정렬 유지 */
:root { --c1-mono: 'Pretendard', 'Noto Sans KR', -apple-system, sans-serif; }
.c1-contact__item dd a, .sl-quick__row-n, .sl-quick__bank-no, .sl-sheet__num, .sl-sheet__sub strong, .c1-dash-left .date_control { font-variant-numeric: tabular-nums; letter-spacing: 0; }
.c1-contact__item dd a { font-weight: 700; }

/* ---------- S3 교육과정 ---------- */
.sl-programs { background: #fff; padding: 52px 0 110px; }
.sl-paths { margin-top: 40px; display: flex; flex-direction: column; gap: 30px; }
.sl-paths__group { display: flex; align-items: flex-start; gap: 28px; }
.sl-paths__label { flex: 0 0 150px; padding-top: 4px; display: flex; flex-direction: column; align-items: flex-start; }
.sl-paths__tag {
  display: inline-flex; align-items: center; height: 30px; padding: 0 15px; border-radius: 10px;
  background: var(--c1-navy); color: #fff; font-size: 13.5px; font-weight: 800; letter-spacing: 0.02em;
}
.sl-paths__hint { margin-top: 9px; font-size: 13px; line-height: 1.55; color: var(--c1-t-meta); }
.sl-paths__list { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.sl-path {
  display: block; padding: 22px 26px; background: #fff; border: 1px solid var(--c1-line); border-radius: 20px;
  color: inherit; text-decoration: none; transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.sl-path:hover, .sl-path:focus-visible { border-color: var(--c1-blue); box-shadow: 0 18px 40px rgba(28, 95, 208, 0.16); transform: translateY(-2px); outline: none; }
.sl-path__top { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.sl-path__name { display: flex; align-items: baseline; gap: 14px; min-width: 0; }
.sl-path__num { font-size: 12px; font-weight: 600; color: var(--c1-t-meta); }
.sl-path__title { font-size: 20px; font-weight: 800; color: var(--c1-t-heading); }
.sl-path__desc { display: block; margin-top: 9px; font-size: 16px; line-height: 1.65; color: var(--c1-t-body); }
.sl-path__meta { display: flex; align-items: baseline; gap: 9px; margin-top: 14px; padding-top: 13px; border-top: 1px solid var(--c1-line-inner); }
.sl-path__meta span { font-size: 12.5px; font-weight: 700; color: var(--c1-t-meta); }
.sl-path__meta strong { font-size: 14.5px; font-weight: 700; color: var(--c1-t-heading); }
.sl-paths__note { margin: 0; font-size: 13px; line-height: 1.6; color: var(--c1-t-meta); }
.sl-paths__more { margin-top: 26px; display: flex; justify-content: center; }
@media (prefers-reduced-motion: reduce) { .sl-path { transition: none; } .sl-path:hover { transform: none; } }
@media (max-width: 767px) {
  .sl-programs { padding: 0 0 56px; }
  .sl-programs .sl-sec-head { flex-direction: column; align-items: stretch; gap: 16px; }
  .sl-home .sl-h2 { font-size: 26px; }
  .sl-programs .sl-lead { display: none; }
  .sl-programs .sl-sec-head .sl-btn { width: 100%; box-shadow: 0 10px 24px rgba(28, 95, 208, 0.26); }
  .sl-paths { margin-top: 22px; gap: 22px; }
  .sl-paths__group { flex-direction: column; gap: 12px; }
  .sl-paths__label { flex: none; flex-direction: row; align-items: center; gap: 10px; padding-top: 0; }
  .sl-paths__tag { height: 28px; padding: 0 13px; font-size: 13px; }
  .sl-paths__hint { margin-top: 0; font-size: 12.5px; }
  .sl-paths__list { width: 100%; gap: 10px; }
  .sl-path { padding: 18px 18px 16px; border-radius: 18px; }
  .sl-path__top { align-items: flex-start; flex-wrap: wrap; gap: 8px; }
  .sl-path__name { gap: 10px; }
  .sl-path__title { font-size: 17px; }
  .sl-chip { height: 26px; padding: 0 11px; font-size: 12px; }
  .sl-path__desc { margin-top: 8px; font-size: 15px; line-height: 1.6; }
  .sl-path__meta { margin-top: 12px; padding-top: 11px; }
  .sl-paths__more { margin-top: 4px; }
  .sl-paths__more .sl-btn { width: 100%; }
}

/* ---------- S4 교육일정: 달력(위) + 등록된 교육 일정(아래) ---------- */
.sl-dash .c1-cal-card:hover, .sl-sched:hover { transform: none; box-shadow: none; }
.sl-dash .calendar > .calendar-date > div.check-schedule > span {
  background: #E6EFFC; color: var(--c1-blue-deep) !important; font-weight: 800; box-shadow: none; transition: background-color 0.15s ease, color 0.15s ease;
}
.sl-dash .calendar > .calendar-date > div.check-schedule > span:hover,
.sl-dash .calendar > .calendar-date > div.check-schedule > span.selected { background: var(--c1-blue); color: #fff !important; box-shadow: 0 6px 14px rgba(28, 95, 208, 0.24); }
/* 2026-10-14: 달력 칸 안 일정 칩(종류+지역, 시안 참조) — 셀을 위 정렬 세로 배치로 바꾸고 날짜는 작은 배지로.
   getCourseCalendarHTML() 이 셀마다 <i class="c1-cal-ev">, 호버 팝은 index.php JS 가 data-json 으로 채움 */
.sl-dash .calendar > .calendar-date > div {
  height: auto; min-height: 56px; flex-direction: column; align-items: stretch; justify-content: flex-start;
  padding: 4px; border-radius: 10px;
}
.sl-dash .calendar > .calendar-date > div.check-schedule { background: var(--c1-bg-cool); }
.sl-dash .calendar > .calendar-date > div > span { height: 26px; flex: none; justify-content: flex-end; padding: 0 6px; font-size: 13.5px; border-radius: 8px; }
.sl-dash .calendar > .calendar-date > div.check-schedule > span { background: transparent; color: var(--c1-blue-deep) !important; cursor: pointer; }
.sl-dash .calendar > .calendar-date > div.check-schedule > span:hover { background: var(--c1-blue); color: #fff !important; box-shadow: none; }
/* 2026-10-14 시안: 선택된 날 = 칸 전체 둥근 테두리, 날짜 숫자는 색 채우지 않음(concept1.css 의 span.selected 파란 배경 무효화) */
.sl-dash .calendar > .calendar-date > div.check-schedule > span.selected { background: transparent; color: var(--c1-blue-deep) !important; box-shadow: none; }
.sl-dash .calendar > .calendar-date > div.is-selected { background: #fff; box-shadow: inset 0 0 0 2px var(--c1-blue); }
.c1-cal-ev {
  display: block; margin: 2px 0 0; padding: 4px 6px; background: #E6EFFC; border-radius: 8px;
  font-style: normal; font-size: 11.5px; line-height: 1.3; cursor: pointer; transition: background-color 0.15s ease;
}
.c1-cal-ev:hover, .c1-cal-ev:focus-visible { background: #d2e4fa; }
.c1-cal-ev b { display: block; font-weight: 700; color: var(--c1-navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.c1-cal-ev em { display: block; font-style: normal; color: var(--c1-t-body); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.c1-cal-ev.passed { background: var(--c1-bg-cool); }
.c1-cal-ev.passed b, .c1-cal-ev.passed em { color: var(--c1-t-meta); }
.c1-cal-ev--more { text-align: center; font-weight: 700; color: var(--c1-blue-deep); }
/* 2026-10-14 시안: 클릭(선택)된 일정 칩 = 파란 배경 + 흰 글자 */
.c1-cal-ev.is-selected, .c1-cal-ev.is-selected:hover, .c1-cal-ev.passed.is-selected { background: var(--c1-blue); }
.c1-cal-ev.is-selected b, .c1-cal-ev.is-selected em { color: #fff; }
@media (max-width: 767px) {
  .sl-dash .calendar > .calendar-date > div { min-height: 44px; padding: 2px; }
  .c1-cal-ev em { display: none; }           /* 좁은 칸: 지역 줄 생략, 종류만 */
  .c1-cal-ev { padding: 3px 4px; font-size: 10px; }
}
/* 칩 호버 상세 팝 — /cal 달력의 .view_pop 과 같은 생김새(cal-list.css 규칙 이식), 내용은 JS 가 data-json 으로 채움 */
.c1-cal-pop { position: absolute; width: 300px; background: #fff; border: 2px solid #0094dc; z-index: 140; text-align: left; }
.c1-cal-pop__btn {
  display: block; width: 90px; height: 30px; line-height: 30px; margin: 8px auto; text-align: center;
  background: #0094dc; color: #fff; font-size: 14px; text-decoration: none; border: 0;
}
.c1-cal-pop__btn:hover { background: var(--c1-blue-deep); color: #fff; }
.c1-cal-pop > b { display: block; text-align: center; color: #fff; line-height: 2; font-size: 14px; background: #0094dc; }
/* 종류별 색 — cal-list.css 의 ctype-* 팔레트와 동일 */
.c1-cal-pop > b.ctype-10-1010 { background: #00a6e3; }
.c1-cal-pop > b.ctype-10-1020 { background: #1a619f; }
.c1-cal-pop > b.ctype-10-1030 { background: #0189ff; }
.c1-cal-pop > b.ctype-10-1040 { background: #c057a9; }
.c1-cal-pop > b.ctype-10-1050 { background: #10bd66; }
.c1-cal-pop > b.ctype-20, .c1-cal-pop > b.ctype-50, .c1-cal-pop > b.ctype-60 { background: #c31a7d; }
.c1-cal-pop > b.ctype-30 { background: #77a430; }
.c1-cal-pop > b.ctype-40 { background: #ffcc00; }
.c1-cal-pop ul { margin: 0; padding: 0; list-style: none; }
.c1-cal-pop ul > li { display: table; width: 100%; table-layout: fixed; box-sizing: border-box; border-bottom: 1px solid #ddd; }
.c1-cal-pop ul > li > * { display: table-cell; font-size: 14px; line-height: 1.7; vertical-align: top; box-sizing: border-box; }
.c1-cal-pop ul > li > h5 { width: 70px; background: #0094dc; color: #fff; text-align: center; font-weight: 500; margin: 0; }
.c1-cal-pop ul > li > p { padding-left: 10px; font-weight: 500; color: #333; margin: 0; }
.c1-cal-pop[hidden] { display: none; }
.c1-cal-pop__close { display: none; }
/* 모바일(호버 없음): 칩 탭 → 같은 팝을 하단 시트로 (2026-10-14 사용자 요청). 데스크톱 호버 팝은 절대 위치 그대로 */
.c1-cal-scrim { position: fixed; inset: 0; z-index: 1190; background: rgba(11, 29, 58, 0.45); }
.c1-cal-scrim[hidden] { display: none; }
.c1-cal-pop--sheet {
  position: fixed; left: 12px; right: 12px; bottom: calc(var(--sl-mbar-h, 56px) + 12px + env(safe-area-inset-bottom, 0px)); top: auto; width: auto; z-index: 1200;
  max-height: 72vh; overflow-y: auto; border: 1px solid var(--c1-line); border-radius: 14px; box-shadow: var(--c1-shadow-frame);
}
.c1-cal-pop--sheet > b { padding: 11px 44px 11px 14px; text-align: left; font-size: 13.5px; line-height: 1.4; border-radius: 13px 13px 0 0; }
.c1-cal-pop--sheet .c1-cal-pop__close {
  display: flex; align-items: center; justify-content: center; position: absolute; right: 8px; top: 7px; width: 30px; height: 30px;
  border: 0; border-radius: 8px; background: rgba(255, 255, 255, 0.22); color: #fff; font-size: 20px; line-height: 1; cursor: pointer;
}
.c1-cal-pop--sheet ul > li > h5 { width: 84px; background: var(--c1-bg-tint); color: var(--c1-navy); font-size: 12.5px; }
.c1-cal-pop--sheet ul > li > p { font-size: 13.5px; color: var(--c1-t-body); padding: 6px 12px; }
.c1-cal-pop--sheet .c1-cal-pop__btn { width: calc(100% - 28px); height: 42px; line-height: 42px; margin: 10px auto 14px; border-radius: 10px; background: var(--c1-blue); font-weight: 700; }
@media (max-width: 767px) { .c1-cal-pop:not(.c1-cal-pop--sheet) { display: none !important; } }  /* 모바일: 호버 팝 없음 — 탭 시트만 */

.sl-cal-foot { margin-top: 14px; display: flex; align-items: center; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; }
.sl-cal-foot .c1-cal-card__legend i { background: #E6EFFC; box-shadow: inset 0 0 0 1px var(--c1-blue); }
.sl-cal-foot__dl { font-size: 12.5px; font-weight: 700; color: var(--c1-blue); text-decoration: none; }
.sl-cal-foot__dl:hover { text-decoration: underline; }
.sl-sched { margin-top: 16px; padding: 24px 26px 22px; cursor: default; }
.sl-sched__head { display: flex; align-items: center; gap: 12px; }
.sl-sched__title { font-size: 16.5px; font-weight: 800; color: var(--c1-t-heading); }
.sl-sched__when { margin-left: auto; font-size: 13.5px; font-weight: 700; color: var(--c1-t-meta); }
.sl-sched__list { margin-top: 14px; display: flex; flex-direction: column; gap: 12px; max-height: 620px; overflow-y: auto; }
.sl-sched__item { padding: 16px 18px 14px; border: 1px solid var(--c1-line-inner); border-radius: 14px; }
.sl-sched__top { display: flex; align-items: center; gap: 10px; }
.sl-sched__name { flex: 1; min-width: 0; font-size: 16px; font-weight: 800; line-height: 1.45; color: var(--c1-t-heading); word-break: keep-all; }
.sl-sched__top .c1-status { flex-shrink: 0; margin: 0; padding: 0; }
.sl-sched__fields { margin-top: 11px; display: flex; flex-wrap: wrap; gap: 8px 26px; }
.sl-field { display: flex; align-items: baseline; gap: 8px; }
.sl-field__l { font-size: 12.5px; font-weight: 700; color: var(--c1-t-meta); white-space: nowrap; }
.sl-field__v { font-size: 14.5px; font-weight: 700; color: var(--c1-t-heading); }
.sl-field__v.is-empty { font-weight: 600; color: var(--c1-t-meta); }
.sl-sched__btn {
  display: inline-flex; align-items: center; height: 38px; margin-top: 13px; padding: 0 18px; border-radius: 12px;
  background: var(--c1-blue); color: #fff !important; font-size: 13.5px; font-weight: 700; text-decoration: none;
}
.sl-sched__btn:hover { background: var(--c1-blue-deep); }
.sl-sched__empty { padding: 22px 12px; text-align: center; font-size: 14px; color: var(--c1-t-meta); background: var(--c1-bg-cool); border-radius: 12px; }
@media (max-width: 767px) {
  .sl-sched { padding: 18px 16px; }
  .sl-sched__head { flex-wrap: wrap; gap: 8px; }
  .sl-sched__when { font-size: 12.5px; }
  .sl-sched__list { max-height: none; }
  .sl-sched__item { padding: 14px 14px 12px; }
  .sl-sched__top { flex-wrap: wrap; gap: 6px 8px; }
  .sl-sched__name { flex-basis: 100%; order: 3; font-size: 15px; }
  .sl-sched__fields { gap: 6px 18px; }
  .sl-field__v { font-size: 14px; }
  .sl-cal-foot .c1-cal-card__legend { font-size: 11.5px; }
  .sl-dash .board-con ul li:nth-child(n+5) { display: none; }   /* 모바일: 피처드 + 3행 */
}

/* ---------- S5 방사선 안전정보 + 유튜브 ---------- */
.sl-know { background: var(--c1-bg-cool); padding: 104px 0 110px; }
.sl-know__grid { margin-top: 46px; display: flex; gap: 28px; }
.sl-know__feature {
  position: relative; display: block; flex: 0 0 56.5%; height: 470px; border-radius: 26px; overflow: hidden;
  box-shadow: var(--c1-shadow-frame); color: #fff; text-decoration: none; isolation: isolate;
}
/* 큰 카드도 사진 카드와 같은 동작(2026-10-14): 기본 사진 + 하단 그늘, 호버/탭 시 네이비 + 궤도 + '자세히 보기' */
.sl-know__feature { background: linear-gradient(150deg, #16345E, #0B1D3A); -webkit-tap-highlight-color: transparent; }
.sl-know__feature img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; opacity: 1; transition: opacity 0.35s ease, transform 0.6s ease; }
.sl-know__feature::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(200deg, rgba(11, 29, 58, 0) 30%, rgba(11, 29, 58, 0.78) 82%); transition: opacity 0.35s ease; }
.sl-know__orbit--lg { right: -70px; top: -70px; bottom: auto; }
.sl-know__feature .sl-know__link { margin-top: 16px; opacity: 0; transform: translateY(6px); transition: opacity 0.3s ease, transform 0.3s ease; color: var(--c1-cyan-300); }
.sl-know__feature.is-pressed img { opacity: 0; transform: scale(1.04); }
.sl-know__feature.is-pressed::after { opacity: 0; }
.sl-know__feature.is-pressed .sl-know__orbit, .sl-know__feature.is-pressed .sl-know__link { opacity: 1; transform: none; }
@media (hover: hover) {
  .sl-know__feature:hover img, .sl-know__feature:focus-visible img { opacity: 0; transform: scale(1.04); }
  .sl-know__feature:hover::after, .sl-know__feature:focus-visible::after { opacity: 0; }
  .sl-know__feature:hover .sl-know__orbit, .sl-know__feature:hover .sl-know__link,
  .sl-know__feature:focus-visible .sl-know__orbit, .sl-know__feature:focus-visible .sl-know__link { opacity: 1; transform: none; }
}
.sl-know__body { position: absolute; left: 40px; right: 40px; bottom: 38px; display: flex; flex-direction: column; align-items: flex-start; }
.sl-know__ftitle { margin-top: 16px; font-size: 30px; font-weight: 900; line-height: 1.4; letter-spacing: -0.02em; color: #fff; }
.sl-know__fsub { margin-top: 10px; font-size: 16px; line-height: 1.6; color: rgba(255, 255, 255, 0.82); }
.sl-know__meta { margin-top: 14px; font-size: 12.5px; font-weight: 600; color: rgba(255, 255, 255, 0.75); }
.sl-know__stack { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.sl-know__dark, .sl-know__card {
  position: relative; display: flex; flex-direction: column; align-items: flex-start; border-radius: 20px; overflow: hidden;
  text-decoration: none; transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
/* 사진 카드(오른쪽 위 · 사진 첨부한 오른쪽 아래): 기본은 사진 그대로(하단에만 옅은 그늘 — 칩·제목 가독성),
   호버/탭 시 사진이 걷히고 네이비 + 궤도 + 설명·링크가 나타남 (2026-10-14 사용자 요청, 2026-09-22 Concept 1 동작과 동일) */
.sl-know__dark { flex: 1; padding: 30px 32px; background: linear-gradient(150deg, #16345E, #0B1D3A); isolation: isolate; -webkit-tap-highlight-color: transparent; }
.sl-know__dark img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; opacity: 1; transition: opacity 0.35s ease, transform 0.5s ease; }
.sl-know__dark::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(11, 29, 58, 0) 30%, rgba(11, 29, 58, 0.78) 100%); transition: opacity 0.35s ease; }
.sl-know__orbit { position: absolute; right: -60px; bottom: -60px; z-index: -1; opacity: 0; transition: opacity 0.35s ease; }
.sl-know__dark .sl-know__sub, .sl-know__dark .sl-know__link { opacity: 0; transform: translateY(6px); transition: opacity 0.3s ease, transform 0.3s ease; }
.sl-know__dark.is-pressed img { opacity: 0; transform: scale(1.04); }
.sl-know__dark.is-pressed::before { opacity: 0; }
.sl-know__dark.is-pressed .sl-know__orbit { opacity: 1; }
.sl-know__dark.is-pressed .sl-know__sub, .sl-know__dark.is-pressed .sl-know__link { opacity: 1; transform: none; }
@media (hover: hover) {
  .sl-know__dark:hover img, .sl-know__dark:focus-visible img { opacity: 0; transform: scale(1.04); }
  .sl-know__dark:hover::before, .sl-know__dark:focus-visible::before { opacity: 0; }
  .sl-know__dark:hover .sl-know__orbit, .sl-know__dark:focus-visible .sl-know__orbit { opacity: 1; }
  .sl-know__dark:hover .sl-know__sub, .sl-know__dark:hover .sl-know__link,
  .sl-know__dark:focus-visible .sl-know__sub, .sl-know__dark:focus-visible .sl-know__link { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .sl-know__dark img, .sl-know__dark::before, .sl-know__orbit, .sl-know__dark .sl-know__sub, .sl-know__dark .sl-know__link, .sl-know__feature img, .sl-know__feature::after, .sl-know__feature .sl-know__link { transition: none; }
}
.sl-know__card { flex: 0 0 auto; padding: 26px 30px 24px; background: #fff; border: 1px solid var(--c1-line); }
.sl-know__dark:hover, .sl-know__card:hover { transform: translateY(-2px); box-shadow: var(--c1-shadow-card); }
.sl-know__title { margin-top: 14px; font-size: 20px; font-weight: 800; line-height: 1.5; color: var(--c1-t-heading); }
.sl-know__sub { margin-top: 9px; max-width: 320px; font-size: 16px; line-height: 1.65; color: var(--c1-t-body); }
.sl-know__link { margin-top: 16px; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: var(--c1-blue); }
.sl-know__dark .sl-know__title { margin-top: 16px; color: #fff; }
.sl-know__dark .sl-know__sub { color: rgba(255, 255, 255, 0.72); }
.sl-know__dark .sl-know__link { margin-top: 18px; color: var(--c1-cyan-300); }
.sl-yt {
  margin-top: 24px; display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 22px 30px;
  background: #fff; border: 1px solid var(--c1-line); border-radius: 20px; box-shadow: 0 10px 28px rgba(11, 29, 58, 0.06);
  text-decoration: none; transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.sl-yt:hover { border-color: #C7DAF2; box-shadow: 0 16px 38px rgba(11, 29, 58, 0.10); }
.sl-yt__main { display: flex; align-items: center; gap: 18px; min-width: 0; }
.sl-yt__logo { display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 38px; flex-shrink: 0; border-radius: 10px; background: #FF0000; }
.sl-yt__logo svg { margin-left: 2px; }
.sl-yt__txt { display: block; min-width: 0; }
.sl-yt__name { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; font-size: 18px; font-weight: 800; color: var(--c1-t-heading); }
.sl-yt__handle { font-family: var(--c1-mono); font-size: 12.5px; font-weight: 500; color: var(--c1-t-meta); }
.sl-yt__desc { display: block; margin-top: 5px; font-size: 14.5px; color: var(--c1-t-body); }
.sl-yt__btn {
  display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 20px; flex-shrink: 0; border-radius: var(--c1-r-btn);
  background: var(--c1-blue); color: #fff; font-size: 14.5px; font-weight: 700; white-space: nowrap;
}
.sl-yt:hover .sl-yt__btn { background: var(--c1-blue-deep); }
@media (prefers-reduced-motion: reduce) { .sl-know__feature img, .sl-know__dark, .sl-know__card { transition: none; } }
@media (max-width: 1023px) {
  .sl-know { padding: 80px 0 88px; }
  .sl-know__grid { flex-direction: column; }
  .sl-know__feature { flex: none; height: 400px; }
  .sl-know__stack { flex-direction: row; }
  .sl-know__stack > * { flex: 1 1 0; }
}
@media (max-width: 767px) {
  .sl-know { padding: 56px 0 60px; }
  .sl-know .sl-sec-head { flex-direction: column; align-items: flex-start; gap: 10px; }
  .sl-know .sl-lead { display: none; }
  .sl-know__grid { margin-top: 22px; gap: 14px; }
  .sl-know__feature { height: 240px; border-radius: 18px; }
  .sl-know__body { left: 22px; right: 22px; bottom: 22px; }
  .sl-know__ftitle { margin-top: 12px; font-size: 22px; }
  .sl-know__fsub { font-size: 14.5px; }
  .sl-know__meta { display: none; }
  .sl-know__stack { flex-direction: column; gap: 14px; }
  .sl-know__stack > * { flex: 0 0 auto; }   /* 2026-10-14: ≤1023 의 flex:1 1 0 이 세로 배치에서도 적용되어(overflow:hidden → min-height 0) 사진 카드가 납작해지던 문제 */
  .sl-know__dark { height: 240px; min-height: 0; box-sizing: border-box; display: flex; flex-direction: column; justify-content: flex-end; }   /* 세 사진 카드 같은 크기(240px) */
  .sl-know__dark, .sl-know__card { padding: 22px; border-radius: 18px; }
  .sl-know__title { font-size: 18px; }
  .sl-know__sub { font-size: 15px; }
  .sl-yt { margin-top: 14px; gap: 12px; padding: 16px; border-radius: 18px; }
  .sl-yt__main { gap: 12px; }
  .sl-yt__logo { width: 44px; height: 32px; }
  .sl-yt__name { font-size: 15.5px; }
  .sl-yt__desc { display: none; }
  .sl-yt__btn { height: 36px; padding: 0 12px; font-size: 13px; border-radius: 10px; }
  .sl-yt__btn svg { display: none; }
}

/* ---------- S6 교육시설 (지도 · 619호 강의실 · 대관 신청) ---------- */
.sl-facility { background: #F7FAFD; padding: 92px 0 96px; }
.sl-facility__grid { margin-top: 36px; display: flex; align-items: stretch; gap: 24px; }
.sl-facility__map, .sl-facility__room { padding: 0; overflow: hidden; display: flex; flex-direction: column; cursor: default; }
.sl-facility__map:hover, .sl-facility__room:hover { transform: none; box-shadow: none; }
.sl-facility__map { flex: 1; min-width: 0; }
.sl-facility__mapbox {
  position: relative; height: 320px; overflow: hidden;
  background: repeating-linear-gradient(0deg, #E8EFF7 0 1px, transparent 1px 42px), repeating-linear-gradient(90deg, #E8EFF7 0 1px, transparent 1px 42px), linear-gradient(140deg, #F2F7FC, #E9F1FA);
}
.sl-facility__mapbox .root_daum_roughmap { width: 100% !important; height: 320px !important; border: 0 !important; }
.sl-facility__mapbox .root_daum_roughmap .wrap_map { height: 100% !important; }
.sl-facility__info { padding: 22px 24px 24px; }
.sl-facility__h { font-size: 17px; font-weight: 800; color: var(--c1-t-heading); }
.sl-facility__addr { margin: 10px 0 0; font-size: 15px; line-height: 1.7; color: var(--c1-t-emph); }
.sl-facility__addr span { color: var(--c1-t-meta); }
.sl-facility__ways { margin: 16px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.sl-facility__ways li { display: flex; align-items: flex-start; gap: 12px; }
.sl-facility__tag {
  flex: 0 0 52px; display: inline-flex; align-items: center; justify-content: center; height: 24px; border-radius: 7px;
  background: #EEF4FD; font-size: 12px; font-weight: 800; color: var(--c1-blue-deep);
}
.sl-facility__ways li > span:last-child { font-size: 14.5px; line-height: 1.6; color: var(--c1-t-body); }
.sl-facility__room { flex: 0 0 468px; }
.sl-facility__photo { position: relative; height: 320px; }
.sl-facility__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sl-facility__photo .sl-chip { position: absolute; left: 18px; top: 18px; }
.sl-facility__body { flex: 1; display: flex; flex-direction: column; padding: 22px 24px 24px; }
.sl-facility__txt { margin: 9px 0 0; font-size: 15px; line-height: 1.7; color: var(--c1-t-body); }
.sl-facility__body .sl-note--box { margin-top: 14px; }
.sl-facility__cta { margin-top: auto; padding-top: 18px; display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 1279px) { .sl-facility__room { flex-basis: 40%; } }
@media (max-width: 1023px) {
  .sl-facility { padding: 80px 0 88px; }
  .sl-facility__grid { flex-direction: column; }
  .sl-facility__room { flex: none; }
}
@media (max-width: 767px) {
  .sl-facility { padding: 56px 0 64px; }
  .sl-facility .sl-lead { font-size: 15px; }
  .sl-facility__grid { margin-top: 22px; gap: 14px; }
  .sl-facility__mapbox, .sl-facility__mapbox .root_daum_roughmap { height: 240px !important; }
  .sl-facility__info, .sl-facility__body { padding: 18px 18px 20px; }
  .sl-facility__addr { font-size: 14.5px; }
  .sl-facility__ways li > span:last-child { font-size: 14px; }
  .sl-facility__photo { height: 220px; }
  .sl-facility__cta .sl-btn { flex: 1 1 0; padding: 0 12px; }
}

/* ---------- 서브 프레임 숨김 페이지 (클라이언트 검토 p.10 — /my_page/my_complete.php) ----------
   head.php 가 $c1_hide_sub_frame 페이지에서 서브 비주얼·브레드크럼을 출력하지 않음 → 본문(내 정보 박스)을 메인 메뉴 바로 아래로 */
.c1-sub .sub_wrap--bare .sub_layout { margin-top: 28px !important; }   /* concept1-sub.css .c1-sub .sub_layout(44px !important) 보다 우선 */
.c1-sub .sub_wrap--bare .sub_layout > .tit_bg.sound-only {   /* 제목은 스크린리더용으로만(.tit_bg 의 relative·여백이 GNUboard .sound-only 를 덮어써서 다시 지정) */
  position: absolute !important; width: 1px; height: 1px; margin: 0; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0;
}
.c1-sub .sub_wrap--bare .sub_layout > .bd_sec, .c1-sub .sub_wrap--bare .sub_layout .my_page_new, .c1-sub .sub_wrap--bare .sub_layout .my_page_new > .cnt_box { margin-top: 0; }
@media (max-width: 767px) { .c1-sub .sub_wrap--bare .sub_layout { margin-top: 16px !important; } }

/* ---------- 게시판 글쓰기 폼 (bbs/write.php · theme/kans/mobile/skin/board/basic) — 2026-10-14
   테마 basic 스킨 style.css 는 빈 규칙뿐이라 폼이 무서식으로 보이던 문제. Concept 1 토큰으로 입력칸·버튼·임시저장 팝업 정리 ---------- */
.c1-sub #bo_w { max-width: 880px; margin: 0 auto; font-family: var(--c1-font); color: var(--c1-t-heading); }
.c1-sub #bo_w form { width: 100% !important; }
.c1-sub #bo_w .write_div { position: relative; margin: 0 0 14px; }
.c1-sub #bo_w .frm_input, .c1-sub #bo_w select, .c1-sub #bo_w textarea {
  display: block; width: 100%; box-sizing: border-box; height: 50px; padding: 0 16px; border: 1px solid var(--c1-line); border-radius: 12px;
  background: #fff; font-family: inherit; font-size: 15px; color: var(--c1-t-heading); transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.c1-sub #bo_w textarea { height: auto; min-height: 260px; padding: 14px 16px; line-height: 1.7; resize: vertical; }
.c1-sub #bo_w .frm_input:focus, .c1-sub #bo_w select:focus, .c1-sub #bo_w textarea:focus { outline: none; border-color: var(--c1-blue); box-shadow: 0 0 0 3px rgba(28, 95, 208, 0.12); }
.c1-sub #bo_w .frm_input::placeholder, .c1-sub #bo_w textarea::placeholder { color: var(--c1-t-meta); }
.c1-sub #bo_w .bo_w_info { display: flex; flex-wrap: wrap; gap: 10px; }
.c1-sub #bo_w .bo_w_info .half_input { flex: 1 1 calc(50% - 5px); width: auto; }
/* 옵션(공지 · html · 비밀글) */
.c1-sub #bo_w .bo_v_option { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0; padding: 12px 16px; list-style: none; background: var(--c1-bg-cool); border-radius: 12px; }
.c1-sub #bo_w .bo_v_option li { display: flex; align-items: center; gap: 6px; float: none; margin: 0; }
.c1-sub #bo_w .bo_v_option input[type="checkbox"] { width: 17px; height: 17px; margin: 0; accent-color: var(--c1-blue); }
.c1-sub #bo_w .bo_v_option label { display: inline; font-size: 14px; font-weight: 600; color: var(--c1-t-emph); cursor: pointer; }
.c1-sub #bo_w .bo_v_option label span { display: none; }
/* 제목 + 임시 저장 */
.c1-sub #bo_w #autosave_wrapper { display: flex; gap: 8px; margin: 0; }
.c1-sub #bo_w #autosave_wrapper #wr_subject { flex: 1; min-width: 0; font-size: 16px; font-weight: 700; }
.c1-sub #bo_w #btn_autosave {
  flex-shrink: 0; height: 50px; padding: 0 16px; border: 1px solid var(--c1-line); border-radius: 12px; background: #fff;
  font-family: inherit; font-size: 13.5px; font-weight: 700; color: var(--c1-t-emph); cursor: pointer; white-space: nowrap;
}
.c1-sub #bo_w #btn_autosave:hover { border-color: var(--c1-blue); color: var(--c1-blue); }
.c1-sub #bo_w #autosave_pop {   /* 기본 숨김 — js/autosave.js 가 버튼 클릭 시 show() */
  display: none; position: absolute; right: 0; top: 58px; z-index: 20; width: 340px; max-width: 100%; box-sizing: border-box; padding: 16px;
  background: #fff; border: 1px solid var(--c1-line); border-radius: 14px; box-shadow: 0 18px 44px rgba(11, 29, 58, 0.16);
}
.c1-sub #bo_w #autosave_pop strong { display: block; padding-bottom: 10px; border-bottom: 1px solid var(--c1-line-inner); font-size: 14px; font-weight: 800; }
.c1-sub #bo_w #autosave_pop ul { margin: 8px 0; padding: 0; list-style: none; max-height: 240px; overflow-y: auto; }
.c1-sub #bo_w #autosave_pop li { display: flex; justify-content: space-between; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--c1-line-inner); font-size: 13.5px; }
.c1-sub #bo_w #autosave_pop .autosave_close { width: 100%; height: 38px; border: 0; border-radius: 10px; background: var(--c1-bg-cool); font-family: inherit; font-weight: 700; cursor: pointer; }
/* 링크 · 파일 */
.c1-sub #bo_w .bo_w_link, .c1-sub #bo_w .bo_w_flie .file_wr { display: flex; align-items: center; gap: 10px; }
.c1-sub #bo_w .bo_w_link label, .c1-sub #bo_w .bo_w_flie .lb_icon {
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 50px; height: 50px; border-radius: 12px;
  background: var(--c1-bg-tint); color: var(--c1-blue);
}
.c1-sub #bo_w .bo_w_flie .file_wr { margin-bottom: 8px; padding: 0 0 0 0; }
.c1-sub #bo_w .frm_file { flex: 1; min-width: 0; font-size: 14px; color: var(--c1-t-body); }
.c1-sub #bo_w .file_del { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; font-size: 13px; color: var(--c1-t-body); }
/* 확인 버튼 */
.c1-sub #bo_w .btn_confirm { display: flex; justify-content: center; gap: 10px; margin-top: 28px; }
.c1-sub #bo_w .btn_confirm .btn {
  display: inline-flex; align-items: center; justify-content: center; min-width: 120px; height: 52px; padding: 0 28px; border-radius: var(--c1-r-btn);
  font-family: inherit; font-size: 15.5px; font-weight: 700; line-height: 1; cursor: pointer; text-decoration: none; box-sizing: border-box;
}
.c1-sub #bo_w .btn_cancel { border: 1.5px solid #D6E2F2; background: #fff; color: var(--c1-blue-deep) !important; }
.c1-sub #bo_w .btn_cancel:hover { border-color: var(--c1-blue); }
.c1-sub #bo_w .btn_submit { border: 0; background: var(--c1-blue); color: #fff !important; box-shadow: var(--c1-shadow-btn); }
.c1-sub #bo_w .btn_submit:hover { background: var(--c1-blue-deep); }
/* '메인 문구' 작성 안내 */
.sl-write-help { margin: 0 0 18px; padding: 18px 20px; border: 1px solid rgba(28, 95, 208, 0.22); border-radius: 14px; background: rgba(28, 95, 208, 0.05); }
.sl-write-help__title { display: block; font-size: 17px; font-weight: 800; color: var(--c1-navy); }
.sl-write-help ul { margin: 10px 0 0; padding: 0 0 0 18px; list-style: disc; }
.sl-write-help li { margin: 4px 0; font-size: 14px; line-height: 1.65; color: var(--c1-t-body); }
.sl-write-help li b { color: var(--c1-navy); }
.sl-write-help li span { color: var(--c1-blue-deep); white-space: nowrap; }
.sl-write-help code { padding: 1px 6px; border-radius: 5px; background: #fff; border: 1px solid var(--c1-line); font-family: var(--c1-mono); font-size: 13px; color: var(--c1-blue-deep); }
@media (max-width: 767px) {
  .c1-sub #bo_w #autosave_wrapper { flex-wrap: wrap; }
  .c1-sub #bo_w #btn_autosave { height: 40px; }
  .c1-sub #bo_w #autosave_pop { top: auto; bottom: calc(100% + 6px); }
  .c1-sub #bo_w .bo_w_info .half_input { flex-basis: 100%; }
  .c1-sub #bo_w .btn_confirm .btn { flex: 1; min-width: 0; }
  .sl-write-help li span { white-space: normal; }
}
/* 레거시 테마(layout.css · concept1-sub.css)의 입력칸 회색 배경 · .btn_frmline 남색 · a.btn 높이 !important 를 덮음 */
.c1-sub #bo_w .frm_input, .c1-sub #bo_w textarea, .c1-sub #bo_w select { background: #fff !important; border: 1px solid var(--c1-line) !important; border-radius: 12px !important; }
.c1-sub #bo_w .frm_input:focus, .c1-sub #bo_w textarea:focus { border-color: var(--c1-blue) !important; }
.c1-sub #bo_w #btn_autosave { background: #fff !important; color: var(--c1-t-emph) !important; border: 1px solid var(--c1-line) !important; }
.c1-sub #bo_w #btn_autosave:hover { border-color: var(--c1-blue) !important; color: var(--c1-blue) !important; }
.c1-sub #bo_w .btn_confirm .btn { height: 52px !important; padding: 0 28px !important; }
.c1-sub #bo_w .btn_confirm .btn_cancel { border: 1.5px solid #D6E2F2 !important; background: #fff !important; }
