@charset "utf-8";
/* ==========================================================================
   sub.css - 서브 페이지 전용 (서브 비주얼 / 로케이션 셀렉트 / 좌측메뉴 / 컨텐츠)
   ========================================================================== */

/* ---------- 서브 비주얼 ---------- */
.sub-visual {
  position: relative; display: flex; align-items: center; height: 200px;
  background: var(--color-primary) url("../images/main_visual01.png") center 40% / cover no-repeat;
  color: #fff;
}
.sub-visual::before { content: ""; position: absolute; inset: 0; background: rgba(14, 36, 70, 0.62); }
.sub-visual .inner { position: relative; }
.sub-visual__cate { font-size: 15px; font-weight: 500; opacity: 0.85; }
.sub-visual h2 { margin-top: 6px; font-size: 34px; font-weight: 700; letter-spacing: -0.03em; }

/* ---------- 로케이션 (홈 + 1depth/2depth 셀렉트) ---------- */
.location { position: relative; z-index: 20; background: #fff; border-bottom: 1px solid var(--color-line); }
.location__list { display: flex; }
.location__list > li { position: relative; border-right: 1px solid var(--color-line); }
.location__home { border-left: 1px solid var(--color-line); }
.location__home a { display: flex; align-items: center; justify-content: center; width: 70px; height: 56px; color: var(--color-text); }
.location__home svg { width: 18px; height: 18px; }
.location__home a:hover { color: var(--color-primary); }

.location__btn {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  width: 208px; height: 56px; padding: 0 16px 0 22px;
  font-size: 15px; color: var(--color-text); text-align: left;
}
.location__btn span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.location__btn svg { flex-shrink: 0; width: 18px; height: 18px; transition: transform 0.2s; }
.location__btn[aria-expanded="true"] { color: var(--color-primary); font-weight: 500; }
.location__btn[aria-expanded="true"] svg { transform: rotate(180deg); }

.location__menu {
  position: absolute; top: 100%; left: -1px; right: -1px;
  padding: 6px 0; background: #fff; border: 1px solid var(--color-line); border-top: 0;
  box-shadow: 0 10px 20px rgba(20, 40, 60, 0.1);
}
.location__menu a { display: block; padding: 9px 22px; font-size: 14px; color: var(--color-text-sub); }
.location__menu a:hover,
.location__menu a:focus-visible { background: var(--color-bg); color: var(--color-primary); }
.location__menu a[aria-current="page"] { color: var(--color-primary); font-weight: 700; }

/* ---------- 컨텐츠 ---------- */
.sub-content { padding: 40px 0 20px; }
.sub-content .box { padding: 40px; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); line-height: 1.6; color: var(--color-text-sub); }
.content-title {
  margin-bottom: 24px; padding-bottom: 16px; border-bottom: 2px solid var(--color-text);
  font-size: 26px; font-weight: 700; color: var(--color-text); letter-spacing: -0.03em;
}

/* ---------- 좌측메뉴 버전 (sub_lnb.html) ---------- */
.sub-body { display: flex; align-items: flex-start; gap: 40px; }
.sub-body__main { flex: 1; min-width: 0; }

.lnb { flex-shrink: 0; display: flex; flex-direction: column; gap: 16px; width: 230px; }
.lnb__menu,
.lnb__extra { overflow: hidden; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); }
.lnb__extra { padding: 20px; font-size: 14px; line-height: 1.5; color: var(--color-text-sub); }
.lnb__extra:empty { display: none; }
[data-show-menu][hidden] { display: none !important; }
.lnb__extra-title { margin-bottom: 10px; font-size: 15px; font-weight: 700; color: var(--color-text); }
.lnb__extra-list li + li { margin-top: 6px; }
  .lnb__extra-list a:hover { color: var(--color-primary); }
  .lnb__extra li.is-over { display: none; }
  .lnb__extra.is-open li.is-over { display: list-item; }
  .lnb__extra-more {
  display: flex; align-items: center; justify-content: center; width: 100%; height: 36px; margin-top: 14px;
  border: 1px solid var(--color-line, #e3e8ee); border-radius: 6px; background: #fff;
  font-size: 13px; font-weight: 500; color: var(--color-text-sub); cursor: pointer;
  }
  .lnb__extra-more:hover { border-color: var(--color-primary); color: var(--color-primary); }
  .lnb__extra-more[hidden] { display: none; }
.lnb__title {
  display: flex; align-items: center; height: 100px; padding: 0 24px;
  background: var(--color-primary); color: #fff; font-size: 22px; font-weight: 700; letter-spacing: -0.03em;
}
.lnb__list { padding: 8px 0; }
.lnb__list li + li { border-top: 1px solid var(--color-line); }
.lnb__list a {
  display: flex; align-items: center; justify-content: space-between;
  padding: 15px 24px; font-size: 15px; color: var(--color-text-sub);
}
.lnb__list a::after {
  content: ""; width: 7px; height: 7px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor;
  transform: rotate(45deg); opacity: 0;
}
.lnb__list a:hover { color: var(--color-primary); }
.lnb__list a[aria-current="page"] { color: var(--color-primary); font-weight: 700; }
.lnb__list a[aria-current="page"]::after { opacity: 1; }

/* ---------- 반응형 ---------- */
@media (max-width: 1024px) {
  .sub-visual { height: 140px; }
  .sub-visual__cate { font-size: 13px; }
  .sub-visual h2 { font-size: 24px; }

  .location .inner { padding: 0; }
  .location__home { border-left: 0; }
  .location__home a { width: 52px; height: 50px; }
  .location__list > li:not(.location__home) { flex: 1; min-width: 0; }
  .location__list > li:last-child { border-right: 0; }
  .location__btn { width: 100%; height: 50px; padding: 0 12px 0 14px; font-size: 14px; }
  .location__menu { max-height: 60vh; overflow-y: auto; }
  .location__menu a { padding: 10px 14px; }

  .sub-content { padding-top: 24px; }
  .sub-content .box { padding: 24px 20px; }
  .content-title { font-size: 21px; }

  /* 모바일: 메뉴 목록은 로케이션 셀렉트가 대신하고, 바로가기(.lnb__extra)는 본문 아래에 표시 */
  .sub-body { flex-direction: column; align-items: stretch; gap: 24px; }
  .lnb { order: 2; width: 100%; }
  .lnb__menu { display: none; }
  .lnb__extra { padding: 18px 20px; }
  .lnb__extra ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
  .lnb__extra ul li + li { margin-top: 0; }
  .lnb__extra ul a { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  }








/* ==========================================================================
   bylaws.css - 정관 / 정관 시행규칙 페이지
   모든 규칙은 .bylaws 아래에서만 적용 (기존 사이트 스타일과 충돌 방지)
   common.css 의 변수가 없어도 동작하도록 기본값 지정
   ========================================================================== */

.bylaws {
  --by-primary: var(--color-primary, #1d4f91);
  --by-point: var(--color-point, #2e8de6);
  --by-text: var(--color-text, #222);
  --by-sub: var(--color-text-sub, #666);
  --by-line: var(--color-line, #e3e7ea);
  --by-soft: #f3f6fa;
  --by-radius: var(--radius, 10px);
  color: var(--by-text);
  font-size: 16px;
  line-height: 1.75;
  word-break: keep-all;
}
.bylaws *, .bylaws *::before, .bylaws *::after { box-sizing: border-box; }
.bylaws h3, .bylaws h4, .bylaws h5, .bylaws p, .bylaws ol, .bylaws ul { margin: 0; padding: 0; }
.bylaws ol, .bylaws ul { list-style: none; }
.bylaws button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
.bylaws :focus-visible { outline: 2px solid var(--by-point); outline-offset: 2px; }
.bylaws .sr-only {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ---------- 문서 탭 ---------- */
.bylaws-tabs {
  display: flex;
  gap: 4px;
  padding: 4px;
  margin-bottom: 32px;
  background: var(--by-soft);
  border-radius: 999px;
  width: fit-content;
  max-width: 100%;
}
.bylaws-tabs [role="tab"] {
  padding: 10px 24px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 500;
  color: var(--by-sub);
  transition: background-color .2s, color .2s;
}
.bylaws-tabs [role="tab"]:hover { color: var(--by-primary); }
.bylaws-tabs [role="tab"][aria-selected="true"] {
  background: var(--by-primary);
  color: #fff;
  font-weight: 700;
}

/* ---------- 문서 머리 ---------- */
.bylaws-doc__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--by-primary);
}
.bylaws-doc__title {
  font-size: 26px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--by-text);
  text-wrap: balance;
}
.bylaws-doc__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  margin-top: 6px;
  font-size: 14px;
  color: var(--by-sub);
}
.bylaws-doc__meta strong { color: var(--by-primary); font-weight: 700; }

.bylaws-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border: 1px solid var(--by-line) !important;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 500;
  background: #fff !important;
  transition: border-color .2s, color .2s;
}
.bylaws-btn::after {
  content: "";
  width: 7px; height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .2s;
}
.bylaws-btn[aria-pressed="true"]::after { transform: translateY(2px) rotate(-135deg); }
.bylaws-btn:hover { border-color: var(--by-primary) !important; color: var(--by-primary); }

/* ---------- 제·개정 연혁 ---------- */
.bylaws-history {
  margin-top: 20px;
  border-radius: var(--by-radius);
  background: var(--by-soft);
}
.bylaws-history summary {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 20px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}
.bylaws-history summary::-webkit-details-marker { display: none; }
.bylaws-history summary span { font-weight: 400; font-size: 14px; color: var(--by-sub); }
.bylaws-history summary::after {
  content: "";
  margin-left: auto;
  width: 8px; height: 8px;
  border-right: 1.5px solid var(--by-sub);
  border-bottom: 1.5px solid var(--by-sub);
  transform: translateY(-2px) rotate(45deg);
  transition: transform .2s;
}
.bylaws-history[open] summary::after { transform: translateY(2px) rotate(-135deg); }

/* 정관 : 세로 타임라인 */
.bylaws-history__list { padding: 4px 20px 20px; }
.bylaws-history__list li {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 12px;
  padding: 6px 0 6px 20px;
  font-size: 14px;
}
.bylaws-history__list li::before {
  content: "";
  position: absolute;
  left: 0; top: 14px;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--by-primary);
}
.bylaws-history__list li:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 3px; top: 22px; bottom: -14px;
  width: 1px;
  background: var(--by-line);
}
.bylaws-history__list li:last-child::before { background: var(--by-primary); }
.bylaws-history__date { font-weight: 700; color: var(--by-primary); font-variant-numeric: tabular-nums; min-width: 100px; }
.bylaws-history__type { font-weight: 500; }
.bylaws-history__by { color: var(--by-sub); }
.bylaws-history__note { flex-basis: 100%; font-size: 13px; color: var(--by-sub); }

/* 시행규칙 : 날짜 그리드 */
.bylaws-history__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 6px;
  padding: 4px 20px 20px;
}
.bylaws-history__grid li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 6px;
  background: #fff;
  font-size: 14px;
}
.bylaws-history__grid .bylaws-history__type { font-size: 12px; color: var(--by-sub); }
.bylaws-history__grid .bylaws-history__date { min-width: 0; color: var(--by-text); font-weight: 500; }

/* ---------- 목차 ---------- */
.bylaws-toc { margin: 28px 0 16px; }
.bylaws-toc ol { display: flex; flex-wrap: wrap; gap: 8px; }
.bylaws-toc a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border: 1px solid var(--by-line);
  border-radius: 999px;
  font-size: 14px;
  color: var(--by-text);
  text-decoration: none;
  background: #fff;
  transition: border-color .2s, color .2s;
}
.bylaws-toc a span { font-size: 12px; color: var(--by-sub); }
.bylaws-toc a:hover { border-color: var(--by-primary); color: var(--by-primary); }

/* ---------- ��(章) 아코디언 ---------- */
.bylaws-chapters { border-top: 1px solid var(--by-line); }
.bylaws-chapter { border-bottom: 1px solid var(--by-line); scroll-margin-top: 100px; }
.bylaws-chapter__head { font-size: inherit; font-weight: inherit; }
.bylaws-chapter__btn {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  padding: 20px 4px;
  text-align: left;
}
.bylaws-chapter__label {
  flex-shrink: 0;
  min-width: 64px;
  font-size: 14px;
  font-weight: 700;
  color: var(--by-point);
  font-variant-numeric: tabular-nums;
}
.bylaws-chapter__label--etc { color: var(--by-sub); }
.bylaws-chapter__title { font-size: 19px; font-weight: 700; }
.bylaws-chapter__count { margin-left: auto; font-size: 13px; color: var(--by-sub); white-space: nowrap; }
.bylaws-chapter__btn::after {
  content: "";
  flex-shrink: 0;
  width: 10px; height: 10px;
  margin: 0 6px 4px 4px;
  border-right: 2px solid var(--by-text);
  border-bottom: 2px solid var(--by-text);
  transform: rotate(45deg);
  transition: transform .25s;
}
.bylaws-chapter__btn[aria-expanded="true"]::after { transform: translateY(5px) rotate(-135deg); }
.bylaws-chapter__btn:hover .bylaws-chapter__title,
.bylaws-chapter__btn[aria-expanded="true"] .bylaws-chapter__title { color: var(--by-primary); }

.bylaws-chapter__panel { padding: 0 4px 28px; }
.bylaws-chapter__panel:not([hidden]) { animation: bylaws-in .25s ease-out; }
@keyframes bylaws-in { from { opacity: 0; transform: translateY(-4px); } }
@media (prefers-reduced-motion: reduce) {
  .bylaws-chapter__panel:not([hidden]) { animation: none; }
}

/* ---------- 조(條) ---------- */
.bylaws-article {
  display: grid;
  grid-template-columns: 80px 1fr;
  column-gap: 16px;
  padding: 18px 0;
}
.bylaws-article + .bylaws-article,
.bylaws-article + .bylaws-article--plain,
.bylaws-article--plain + .bylaws-article { border-top: 1px dashed var(--by-line); }
.bylaws-article__head {
  display: contents;
  font-size: inherit;
}
.bylaws-article__no {
  grid-row: 1 / span 2;
  font-size: 15px;
  font-weight: 700;
  color: var(--by-primary);
  font-variant-numeric: tabular-nums;
  line-height: 1.75;
}
.bylaws-article__title {
  grid-column: 2;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 4px;
}
.bylaws-article__body { grid-column: 2; display: flex; flex-direction: column; gap: 6px; color: #333; }
.bylaws-article--plain .bylaws-article__body { grid-column: 1 / -1; }
.bylaws-article--plain { color: var(--by-sub); }

.bylaws-clause { display: flex; gap: 6px; }
.bylaws-clause__no { flex-shrink: 0; color: var(--by-primary); font-weight: 500; }

.bylaws-items {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px 16px !important;
  border-radius: 8px;
  background: var(--by-soft);
  font-size: 15px;
}
.bylaws-items li { display: flex; gap: 8px; }
.bylaws-items__no { flex-shrink: 0; min-width: 20px; color: var(--by-sub); font-variant-numeric: tabular-nums; }

/* ---------- 표 ---------- */
.bylaws-table {
  margin-top: 6px;
  overflow-x: auto;
  border-top: 2px solid var(--by-primary);
}
.bylaws-table table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 14px; }
.bylaws-table th, .bylaws-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--by-line);
  text-align: center;
  white-space: nowrap;
}
.bylaws-table th { background: var(--by-soft); font-weight: 700; }
.bylaws-table td.is-left { text-align: left; white-space: normal; }

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
  .bylaws { font-size: 15px; }
  .bylaws-tabs { width: 100%; margin-bottom: 24px; }
  .bylaws-tabs [role="tab"] { flex: 1; padding: 10px 12px; }
  .bylaws-doc__head { flex-direction: column; align-items: flex-start; }
  .bylaws-doc__title { font-size: 21px; }
  .bylaws-history summary, .bylaws-history__list, .bylaws-history__grid { padding-left: 16px; padding-right: 16px; }
  .bylaws-history__grid { grid-template-columns: repeat(2, 1fr); }
  .bylaws-history__date { min-width: 0; }
  .bylaws-toc ol { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
  .bylaws-toc a { white-space: nowrap; }
  .bylaws-chapter__btn { gap: 10px; padding: 16px 0; }
  .bylaws-chapter__label { min-width: 0; font-size: 13px; }
  .bylaws-chapter__title { font-size: 17px; }
  .bylaws-chapter__count { display: none; }
  .bylaws-chapter__panel { padding: 0 0 20px; }
  .bylaws-article { grid-template-columns: 1fr; padding: 16px 0; }
  .bylaws-article__head { display: flex; align-items: baseline; gap: 8px; margin-bottom: 6px; }
  .bylaws-article__title { margin: 0; }
  .bylaws-article__body { grid-column: 1; }
}

/* ---------- Print : 전부 펼쳐서 출력 ---------- */
@media print {
  .bylaws-tabs, .bylaws-btn, .bylaws-toc { display: none; }
  .bylaws-doc[hidden], .bylaws-chapter__panel[hidden] { display: block !important; }
  .bylaws-chapter__btn::after { display: none; }
}





/* ==========================================================================
   연혁 css
   ========================================================================== */
#ksme-history{
	--ink:#142944;
	--muted:#738096;
	--blue:#1761e9;
	--line:#e5eaf1;
	font-family:inherit;
	color:var(--ink);
	width:100%;box-sizing:border-box
}
	
#ksme-history *{box-sizing:border-box}
#ksme-history button,#ksme-history input{font:inherit}
#ksme-history button{cursor:pointer}
#ksme-history .kh-intro{position:relative;overflow:hidden;border-radius:20px;background:#102a4b;color:white;padding:42px 44px;min-height:252px;display:flex;align-items:center;justify-content:space-between;gap:24px}
#ksme-history .kh-intro:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 95% 100%,#22589288,transparent 64%);pointer-events:none}
#ksme-history .kh-intro-copy{position:relative;z-index:1}
#ksme-history .kh-eyebrow{font-size:11px;font-weight:700;letter-spacing:2.2px;color:#99c2ff;margin:0 0 18px;display:flex;align-items:center;gap:10px}
#ksme-history .kh-eyebrow:before{content:'';width:22px;height:2px;background:#73a9ff}
#ksme-history h3{font-size:32px;line-height:1.45;letter-spacing:-1.2px;color:#fff;font-weight:700;margin:0 0 14px}
#ksme-history .kh-intro-desc{font-size:14px;line-height:1.9;margin:0;color:#b9cadf}
#ksme-history .kh-since{position:relative;z-index:1;flex:0 0 240px;text-align:center;padding:30px 0}
#ksme-history .kh-since:before,#ksme-history .kh-since:after{position:absolute;content:'';border:1px solid #ffffff14;border-radius:50%;width:224px;height:224px;left:8px;top:50%;transform:translateY(-50%);z-index:-1}
#ksme-history .kh-since:after{width:292px;height:292px;left:-26px;border-style:dashed}
#ksme-history .kh-since span{font-size:11px;letter-spacing:3px;color:#a9c9ef}
#ksme-history .kh-since strong{display:block;font-size:68px;font-weight:600;letter-spacing:-3px;line-height:1.25;color:#fff;font-variant-numeric:tabular-nums}
#ksme-history .kh-since small{font-size:12px;color:#b9cadf;letter-spacing:.2px}
#ksme-history .kh-navigation{margin-top:30px;border-bottom:1px solid var(--line);display:flex;gap:0;overflow-x:auto;scrollbar-width:thin}
#ksme-history .kh-tab{position:relative;flex:1 0 auto;padding:18px 9px 19px;border:0;background:transparent;color:#748196;font-size:14px;font-weight:500;white-space:nowrap;min-width:78px}
#ksme-history .kh-tab:hover{color:var(--blue);background:#f7faff}
#ksme-history .kh-tab[aria-selected=true]{color:var(--blue);font-weight:750}
#ksme-history .kh-tab[aria-selected=true]:after{position:absolute;bottom:0;height:3px;background:var(--blue);left:12px;right:12px;content:'';border-radius:3px 3px 0 0}
#ksme-history button:focus-visible,#ksme-history input:focus-visible{outline:3px solid #82b0ff;outline-offset:3px}
#ksme-history .kh-overview{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:32px 0 27px}
#ksme-history .kh-periodline{display:flex;align-items:baseline;gap:12px}
#ksme-history h4{font-size:27px;font-weight:750;letter-spacing:-.7px;line-height:1.4;margin:0}
#ksme-history .kh-range{font-size:12px;color:#8390a2;font-variant-numeric:tabular-nums}
#ksme-history .kh-caption{font-size:13px;color:#718097;margin:8px 0 0}
#ksme-history .kh-search{height:42px;display:flex;align-items:center;gap:10px;border:1px solid #dfe5ee;border-radius:8px;padding:0 13px;background:white;width:242px;color:#8a98ad;flex-shrink:0}
#ksme-history .kh-search svg{width:16px;height:16px;flex-shrink:0}
#ksme-history .kh-search input{border:0;outline:0;background:transparent;min-width:0;width:100%;color:var(--ink);font-size:13px}
#ksme-history .kh-search input::placeholder{color:#96a1b0}
#ksme-history .kh-results-meta{border-top:1px solid var(--ink);padding:14px 0 18px;display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#8b96a6}
#ksme-history .kh-results-meta strong{font-weight:600;color:#49617e}
#ksme-history .kh-year{display:grid;grid-template-columns:128px 1fr;column-gap:35px;position:relative;padding-bottom:34px}
#ksme-history .kh-year-label{margin:15px 0 0;font-size:32px;letter-spacing:-1px;font-weight:700;color:#183753;line-height:1.1;font-variant-numeric:tabular-nums}
#ksme-history .kh-year-label small{display:block;font-size:11px;color:#8d9cb0;letter-spacing:.3px;font-weight:400;margin-top:10px}
#ksme-history .kh-events{position:relative;border-left:1px solid #dce5f0;padding-left:26px}
#ksme-history .kh-events:before{content:'';position:absolute;width:10px;height:10px;background:var(--blue);border:3px solid #e8f0ff;border-radius:50%;left:-5px;top:24px;box-shadow:0 0 0 4px white}
#ksme-history .kh-event{display:grid;grid-template-columns:106px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid #edf0f4;align-items:start}
#ksme-history .kh-event:first-child{padding-top:19px}
#ksme-history .kh-event:last-child{border-bottom:0}
#ksme-history .kh-date{font-size:12px;color:#7b8ba0;font-variant-numeric:tabular-nums;line-height:1.9;padding-top:1px}
#ksme-history .kh-event p{margin:0;font-size:14px;line-height:1.85;letter-spacing:-.25px;white-space:pre-line;word-break:keep-all;overflow-wrap:anywhere;color:#33465f}
#ksme-history .kh-empty{padding:64px 20px;text-align:center;background:#f8fafc;border-radius:10px;color:#718097;font-size:14px}
#ksme-history .kh-bottom{border-top:1px solid var(--line);padding:22px 0;display:flex;justify-content:space-between;align-items:center;color:#97a2b1;font-size:11px}
#ksme-history .kh-top{border:0;background:#f3f6fa;border-radius:6px;color:#536986;font-size:12px;padding:9px 13px}
#ksme-history .kh-panel{animation:khFade .22s ease-out}@keyframes khFade{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}

@media(prefers-reduced-motion:reduce){
	#ksme-history .kh-panel{animation:none}
}
	
@media(max-width:800px){
	#ksme-history .kh-intro{padding:30px;min-height:220px}
	#ksme-history h3{font-size:27px}
	#ksme-history .kh-since{flex-basis:165px}
	#ksme-history .kh-since strong{font-size:54px}
	#ksme-history .kh-since:before{width:180px;height:180px;left:-7px}
	#ksme-history .kh-since:after{width:225px;height:225px;left:-30px}
	#ksme-history .kh-year{grid-template-columns:95px 1fr;gap:20px}
	#ksme-history .kh-year-label{font-size:28px}
	#ksme-history .kh-event{grid-template-columns:88px 1fr;gap:12px}
}

@media(max-width:560px){
	#ksme-history .kh-intro{padding:28px 24px;border-radius:14px}
	#ksme-history h3{font-size:25px}
	#ksme-history .kh-intro-desc{font-size:12px}
	#ksme-history .kh-since{display:none}
	#ksme-history .kh-navigation{margin-top:17px}
	#ksme-history .kh-tab{min-width:84px;font-size:13px;padding-top:16px;padding-bottom:17px}
	#ksme-history .kh-overview{align-items:stretch;flex-direction:column;gap:18px;padding:25px 0 22px}
	#ksme-history h4{font-size:24px}
	#ksme-history .kh-search{width:100%}
	#ksme-history .kh-year{grid-template-columns:1fr;padding-bottom:22px;gap:17px}
	#ksme-history .kh-year-label{font-size:27px;margin-top:12px;display:flex;align-items:baseline;gap:10px}
	#ksme-history .kh-year-label small{margin:0}
	#ksme-history .kh-events{margin-left:5px;padding-left:18px}
	#ksme-history .kh-event{grid-template-columns:1fr;gap:5px;padding:15px 0}
	#ksme-history .kh-events:before{top:21px}
	#ksme-history .kh-event p{font-size:13px}
	#ksme-history .kh-results-meta{font-size:10px}
	#ksme-history .kh-bottom{align-items:flex-start;gap:10px}
	#ksme-history .kh-top{white-space:nowrap}
}


#ksme-history	{
	background:#fff;
	border:1px solid #e5eaf1;
	border-radius:20px;
	padding:30px
}
#ksme-history .kh-intro{
	min-height:236px;
	padding:32px 36px;
	border-radius:13px
}

@media(max-width:560px) {
	#ksme-history{
		padding:20px 16px;border-radius:14px
	}
	#ksme-history .kh-intro {
		padding:25px 22px
	}
}





/* ==========================================================================
   역대회장: 기존 sub.css 마지막에 추가. kp- 접두사로 연혁 스타일과 분리
   ========================================================================== */


.kp-page{--kp-ink:#172c42;--kp-blue:#1b64da;--kp-line:#e2e8ef;--kp-muted:#7f8d9e;background:#fff;color:var(--kp-ink);font-family:inherit}
.kp-page *{box-sizing:border-box}
.kp-page h3,.kp-page h4,.kp-page h5,.kp-page p{margin:0}
.kp-hero{display:grid;grid-template-columns:1.15fr 1fr;gap:40px;align-items:center;padding:6px 0 38px;border-bottom:1px solid var(--kp-line)}
.kp-eyebrow{display:flex;gap:9px;align-items:center;color:var(--kp-blue);font-size:10px;font-weight:700;letter-spacing:2px;margin-bottom:19px!important}
.kp-eyebrow:before{content:'';display:block;width:18px;height:2px;background:var(--kp-blue)}
.kp-hero h3{font-size:30px;line-height:1.5;letter-spacing:-1.2px;font-weight:700;color:var(--kp-ink)}
.kp-lead{font-size:13px;color:#7a8999;line-height:1.9;margin-top:16px!important;word-break:keep-all}
.kp-current{background:#f3f6fa;position:relative;padding:26px 28px;border-radius:14px;overflow:hidden;min-height:196px;border:1px solid #e7edf5}
.kp-current:after{content:'';position:absolute;width:150px;height:150px;border:1px solid #d7e2ef;border-radius:50%;right:-56px;bottom:-68px;pointer-events:none}.kp-current-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.kp-current-label{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600;color:var(--kp-blue)}
.kp-current-label:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--kp-blue)}
.kp-term{font-size:11px;color:#728398}
.kp-current-name{font-size:30px;font-weight:700;letter-spacing:4px;margin-top:20px!important;color:#153859}
.kp-current-period{font-size:12px;line-height:1.8;color:#7c8da1;margin-top:13px!important}
.kp-current-period span{font-size:10px;margin-right:12px;color:#8d9db0}
.kp-nav{display:flex;gap:7px;flex-wrap:wrap;margin:25px 0 0;padding-bottom:27px}
.kp-nav a{border:1px solid #e4eaf1;border-radius:5px;padding:9px 12px;background:white;font-size:11px;color:#667d96;text-decoration:none;transition:background .15s,color .15s}.kp-nav a:hover{background:var(--kp-blue);color:white;border-color:var(--kp-blue)}
.kp-nav a:focus-visible,.kp-back:focus-visible{outline:3px solid #8db6fa;outline-offset:3px}
.kp-archive-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;border-top:2px solid #1b354f}
.kp-archive-head h4{font-size:19px;letter-spacing:-.5px;font-weight:700}
.kp-archive-head p{font-size:10px;color:#98a2af}
.kp-era{padding-bottom:34px;scroll-margin-top:140px}
.kp-era-head{display:flex;gap:17px;align-items:center;margin-bottom:17px;padding-top:10px}
.kp-era h5{font-size:21px;font-weight:700;letter-spacing:-.7px;color:#294966;flex-shrink:0}
.kp-era h5 span{font-size:12px;letter-spacing:0;font-weight:500;margin-left:4px;color:#788c9f}
.kp-era-rule{height:1px;background:#e6ebf0;flex:1}.kp-era-meta{font-size:10px;color:#96a4b2;flex-shrink:0}
.kp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.kp-card{position:relative;border:1px solid var(--kp-line);border-radius:9px;padding:21px 22px;background:#fff;min-height:154px;transition:border-color .15s,background .15s}.kp-card:hover{border-color:#bdd1ec;background:#fcfdff}
.kp-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}
.kp-card-no{font-size:10px;font-weight:600;color:#7d8da0;letter-spacing:.2px}
.kp-card-mark{width:15px;height:2px;background:#d2deec}
.kp-card-name{font-size:22px;line-height:1.3;letter-spacing:2px;font-weight:650;color:#203e5b}
.kp-card-period{border-top:1px solid #eef1f5;padding-top:12px;margin-top:17px;font-size:10px;line-height:1.7;color:#91a0b0;font-variant-numeric:tabular-nums;white-space:nowrap}.kp-card-period time{color:#73859a}
.kp-card-period .kp-period-separator{margin:0 3px;color:#b2bdc9}
.kp-foot{border-top:1px solid var(--kp-line);padding-top:23px;display:flex;justify-content:space-between;gap:20px;align-items:center}
.kp-foot p{font-size:10px;line-height:1.8;color:#95a1ae}
.kp-back{font-size:11px;white-space:nowrap;background:#f4f7fa;border-radius:5px;padding:9px 12px;color:#657b92;text-decoration:none}
#kp-presidents{scroll-margin-top:130px}@media(max-width:1000px){.kp-hero{gap:25px}
.kp-hero h3{font-size:27px}
.kp-card{padding:20px 17px}
.kp-card-period{font-size:9px}}
@media(max-width:720px){
	.kp-hero{grid-template-columns:1fr;gap:25px
}
.kp-current{min-height:175px}
.kp-current-name{margin-top:16px!important}
.kp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.kp-archive-head{align-items:flex-start}
.kp-archive-head p{max-width:140px;text-align:right;line-height:1.8}
.kp-nav{gap:6px}.kp-nav a{padding:9px 11px}
.kp-card-period{white-space:normal;font-size:10px}
.kp-card{min-height:150px}
.kp-foot{align-items:flex-start}}
@media(max-width:380px){
	.kp-grid{grid-template-columns:1fr
}

.kp-card{min-height:auto}
.kp-card-period{white-space:nowrap}
.kp-hero h3{font-size:25px}}
@media(prefers-reduced-motion:reduce){
	.kp-nav a,.kp-card{transition:none}
}







/* ===================================================================
   대한기계학회 윤리헌장 | sub.css 끝에 추가
   ke- 전용 클래스: 학회규정 / 연혁 / 역대회장과 스타일을 분리합니다.
   ================================================================ */
.ke-charter {
  --ke-blue: #1761d5;
  --ke-ink: #222;
  --ke-muted: #8994a4;
  --ke-line: #e5eaf0;
  width: 100%;
  color: var(--ke-ink);
  font-family: "Noto Sans KR", "Malgun Gothic", sans-serif;
}
.ke-charter *, .ke-charter *::before, .ke-charter *::after {
  box-sizing: border-box;
}
.ke-charter h3, .ke-charter h4, .ke-charter p {
  margin: 0;
}
.ke-doc-head {
  padding-bottom: 22px;
  border-bottom: 1px solid var(--ke-line);
}
.ke-charter .ke-doc-head h3 {
  font-size: 26px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -1px;
  color: var(--ke-ink);
}
.ke-charter .ke-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
  font-size: 12px;
  color: var(--ke-muted);
}
.ke-meta time {
  font-family: inherit;
  font-weight: 500;
  color: #5b6b7f;
}
.ke-intro {
  margin: 24px 0 30px;
  padding: 23px 26px;
  background: #f6f8fb;
  border-left: 3px solid var(--ke-blue);
  border-radius: 0 5px 5px 0;
}
.ke-charter .ke-intro p {
  font-size: 14px;
  line-height: 1.95;
  color: #536176;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.ke-section {
  margin-top: 28px;
}
.ke-charter .ke-section-title {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 0 0 16px;
  border-bottom: 1px solid #cad4e1;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.4px;
}
.ke-section-title > span, .ke-conduct-title > span {
  font-size: 13px;
  font-weight: 700;
  color: var(--ke-blue);
}
.ke-charter .ke-list {
  list-style: none;
  counter-reset: ke-item;
  margin: 0;
  padding: 0;
}
.ke-list > li {
  counter-increment: ke-item;
  position: relative;
  padding: 18px 0 18px 35px;
  border-bottom: 1px solid var(--ke-line);
}
.ke-list > li::before {
  content: counter(ke-item, decimal-leading-zero);
  position: absolute;
  top: 20px;
  left: 0;
  color: var(--ke-blue);
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.ke-charter .ke-list > li > p {
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: -.2px;
  color: #445063;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.ke-signature {
  margin: 26px 0 30px;
  text-align: right;
  color: #8792a1;
  font-size: 12px;
  line-height: 1.9;
}
.ke-signature strong {
  font-weight: 500;
  color: #5b6b7f;
}
.ke-conduct {
  border-top: 1px solid #cad4e1;
  border-bottom: 1px solid #cad4e1;
}
.ke-conduct > summary {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 21px 0;
  cursor: pointer;
  list-style: none;
}
.ke-conduct > summary::-webkit-details-marker {
  display: none;
}
.ke-conduct > summary:focus-visible {
  outline: 3px solid #94b7ef;
  outline-offset: 4px;
}
.ke-conduct-title {
  display: flex;
  gap: 10px;
  align-items: baseline;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.4px;
}
.ke-details-hint {
  margin-left: auto;
  font-size: 11px;
  color: #95a0ad;
}
.ke-details-hint::before {
  content: "세부 내용 보기";
}
.ke-conduct[open] .ke-details-hint::before {
  content: "접기";
}
.ke-chevron {
  width: 7px;
  height: 7px;
  border-right: 1px solid #74859a;
  border-bottom: 1px solid #74859a;
  transform: rotate(45deg);
  margin: -4px 4px 0 0;
}
.ke-conduct[open] .ke-chevron {
  transform: rotate(225deg);
  margin-top: 3px;
}
.ke-conduct[open] > summary {
  border-bottom: 1px solid var(--ke-line);
}
.ke-conduct-list > li {
  padding-top: 23px;
  padding-bottom: 25px;
}
.ke-conduct-list > li::before {
  top: 26px;
}
.ke-conduct-list > li:last-child {
  border-bottom: 0;
}
.ke-charter .ke-list .ke-principle {
  font-weight: 600;
  color: #36465c;
}
.ke-subclauses {
  padding-top: 14px;
}
.ke-charter .ke-subclauses p {
  padding-left: 23px;
  text-indent: -23px;
  font-size: 13px;
  line-height: 1.95;
  color: #728095;
  margin-bottom: 9px;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.ke-charter .ke-subclauses p.ke-nested {
  margin-left: 24px;
  padding-left: 18px;
  text-indent: -18px;
}
@media (max-width: 600px) {
  .ke-charter .ke-doc-head h3 { font-size: 22px; }
  .ke-intro { padding: 18px 19px; margin: 20px 0 26px; }
  .ke-charter .ke-intro p { font-size: 13px; }
  .ke-charter .ke-section-title, .ke-conduct-title { font-size: 17px; }
  .ke-list > li { padding-left: 29px; }
  .ke-charter .ke-list > li > p { font-size: 13px; }
  .ke-charter .ke-subclauses p { font-size: 12px; }
  .ke-charter .ke-subclauses p.ke-nested { margin-left: 12px; }
  .ke-details-hint { font-size: 10px; }
}
@media print {
  .ke-conduct > .ke-conduct-list { display: block !important; }
  .ke-details-hint, .ke-chevron { display: none; }
}










/* ===================================================================
   평의원명단 | sub.css 마지막에 추가 | kc- 전용 스타일
   =================================================================== */
.kc-council {
  --kc-blue: #1761d5;
  --kc-ink: #243348;
  --kc-line: #e5eaf1;
  width: 100%;
  color: var(--kc-ink);
  font-family: "Noto Sans KR", "Malgun Gothic", sans-serif;
}
.kc-council *, .kc-council *::before, .kc-council *::after {
  box-sizing: border-box;
}
.kc-council h3, .kc-council p { margin: 0; }
.kc-head { padding-bottom: 25px; border-bottom: 1px solid var(--kc-line); }
.kc-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.kc-council .kc-heading h3 {
  color: #222;
  font-size: 25px;
  line-height: 1.5;
  letter-spacing: -1px;
  font-weight: 700;
}
.kc-total {
  padding: 5px 10px;
  color: var(--kc-blue);
  background: #eef4fd;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
}
.kc-council .kc-term {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
  font-size: 12px;
  color: #6c7b8f;
  font-variant-numeric: tabular-nums;
}
.kc-term > span:first-child { color: #9aa4b1; }
.kc-term time { font-family: inherit; }
.kc-term-divider { color: #a7b0bd; }
.kc-guide {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 22px 0 15px;
  color: #8a97a8;
  font-size: 11px;
}
.kc-guide > span { color: #a1aab6; white-space: nowrap; }
.kc-tables { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: start; }
.kc-council .kc-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  border-spacing: 0;
  border-top: 2px solid #344d6c;
  font-size: 13px;
}
.kc-name-col { width: 29%; }
.kc-table th, .kc-table td {
  padding: 14px 18px;
  border: 0;
  border-bottom: 1px solid var(--kc-line);
  vertical-align: middle;
  text-align: left;
  line-height: 1.7;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.kc-table thead th {
  padding-top: 13px;
  padding-bottom: 13px;
  background: #f5f7fa;
  color: #71839a;
  font-size: 11px;
  font-weight: 500;
}
.kc-table tbody th { color: #32465f; font-weight: 600; }
.kc-table tbody td { color: #7a899d; font-size: 12px; }
.kc-table tbody tr:hover { background: #f9fbfe; }
.kc-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
@media (max-width: 700px) {
  .kc-tables { grid-template-columns: 1fr; gap: 0; }
  .kc-council .kc-heading h3 { font-size: 21px; }
  .kc-heading { gap: 10px; }
  .kc-council .kc-term { font-size: 11px; gap: 8px; }
  .kc-guide { font-size: 10px; }
  .kc-table th, .kc-table td { padding: 13px 15px; }
}
















/* ===================================================================
   임직원명단 2개 탭 | sub.css 마지막에 추가 | JS 없이 전환
   =================================================================== */
.kst-tabs { position: relative; width: 100%; }
.kst-tabs *, .kst-tabs *::before, .kst-tabs *::after { box-sizing: border-box; }
/* 기본 라디오 입력은 키보드와 스크린리더에서 사용 가능하도록 유지 */
.kst-tabs > .kst-radio {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.kst-nav {
  display: flex;
  width: 100%;
  border-bottom: 1px solid #dfe5ed;
  gap: 0;
}
.kst-tabs .kst-label {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  flex: 1;
  min-height: 53px;
  padding: 14px 20px;
  font-family: "Noto Sans KR", "Malgun Gothic", sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #8894a4;
  background: #f6f8fb;
  cursor: pointer;
  text-align: center;
  line-height: 1.5;
}
.kst-label + .kst-label { border-left: 1px solid #e5eaf1; }
.kst-tabs .kst-label:hover { color: #1761d5; }
#kst-officers:checked ~ .kst-nav label[for="kst-officers"],
#kst-employees:checked ~ .kst-nav label[for="kst-employees"] {
  color: #1761d5;
  background: #fff;
  font-weight: 700;
}
#kst-officers:checked ~ .kst-nav label[for="kst-officers"]::after,
#kst-employees:checked ~ .kst-nav label[for="kst-employees"]::after {
  content: "";
  position: absolute;
  height: 3px;
  background: #1761d5;
  left: 0;
  right: 0;
  bottom: -1px;
}
#kst-officers:focus-visible ~ .kst-nav label[for="kst-officers"],
#kst-employees:focus-visible ~ .kst-nav label[for="kst-employees"] {
  outline: 3px solid #94b7ef;
  outline-offset: -3px;
  z-index: 1;
}
.kst-tabs > .kst-panel { display: none; padding-top: 28px; }
#kst-officers:checked ~ .kst-officers-panel,
#kst-employees:checked ~ .kst-employees-panel { display: block; }
@media (max-width: 600px) {
  .kst-tabs .kst-label { font-size: 14px; min-height: 48px; padding: 12px; }
  .kst-tabs > .kst-panel { padding-top: 22px; }
}








/* ===================================================================
   임원명단 본문 | sub.css 끝에 추가 | 기존 kst- 탭은 그대로 유지
   ko- 전용 클래스. 연간 내용 수정은 HTML에서만 합니다.
   =================================================================== */
.ko-officers {
  --ko-ink: #24374e;
  --ko-blue: #1761d5;
  --ko-line: #e4eaf1;
  width: 100%;
  color: var(--ko-ink);
  font-family: "Noto Sans KR", "Malgun Gothic", sans-serif;
}
.ko-officers *, .ko-officers *::before, .ko-officers *::after { box-sizing: border-box; }
.ko-officers h3, .ko-officers h4, .ko-officers p,
.ko-officers dl, .ko-officers dt, .ko-officers dd { margin: 0; }
.ko-head { padding-bottom: 23px; border-bottom: 1px solid var(--ko-line); }
.ko-officers .ko-head h3 { font-size: 24px; font-weight: 700; line-height: 1.5; letter-spacing: -.8px; color: #222; }
.ko-officers .ko-head p { margin-top: 9px; color: #8b98a9; font-size: 12px; }
.ko-group { padding-top: 31px; }
.ko-officers .ko-role {
  display: flex;
  gap: 9px;
  align-items: center;
  margin-bottom: 16px;
  font-size: 17px;
  line-height: 1.6;
  font-weight: 700;
  color: #304964;
  letter-spacing: -.3px;
}
.ko-role::before { content: ""; width: 3px; height: 15px; background: var(--ko-blue); border-radius: 2px; }
.ko-officers .ko-people { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; list-style: none; padding: 0; margin: 0; }
.ko-person {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 22px;
  border: 1px solid var(--ko-line);
  border-radius: 8px;
  background: #fff;
  min-width: 0;
}
.ko-officers .ko-photo {
  display: block;
  flex: 0 0 72px;
  width: 72px;
  height: 96px;
  object-fit: cover;
  object-position: center top;
  border-radius: 5px;
  background: #eef2f7;
  border: 1px solid #edf0f4;
}
.ko-officers .ko-photo-empty { display: flex; align-items: center; justify-content: center; color: #a1acb9; font-size: 10px; }
.ko-person-body { min-width: 0; flex: 1; }
.ko-officers .ko-name { font-size: 19px; line-height: 1.4; font-weight: 700; letter-spacing: -.2px; color: #233f5d; }
.ko-officers .ko-work { margin-top: 5px; color: #7a899b; font-size: 12px; line-height: 1.8; word-break: keep-all; overflow-wrap: anywhere; }
.ko-officers .ko-contact { margin-top: 14px; }
.ko-contact > div { display: grid; grid-template-columns: 35px minmax(0,1fr); gap: 10px; margin-top: 5px; font-size: 11px; line-height: 1.7; }
.ko-contact dt { color: #a0abba; font-size: 10px; }
.ko-contact dd { min-width: 0; }
.ko-contact a { color: #71849c; text-decoration: none; overflow-wrap: anywhere; }
.ko-contact a:hover { color: var(--ko-blue); text-decoration: underline; }
.ko-contact a:focus-visible { outline: 2px solid #94b7ef; outline-offset: 3px; }
.ko-unlisted { color: #a1acb9; }
.ko-officers .ko-note { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--ko-line); color: #9aa6b4; font-size: 11px; line-height: 1.8; }
@media (max-width: 760px) {
  .ko-officers .ko-people { grid-template-columns: 1fr; }
  .ko-officers .ko-head h3 { font-size: 21px; }
  .ko-group { padding-top: 26px; }
  .ko-person { padding: 20px; gap: 18px; }
}
@media (max-width: 380px) {
  .ko-person { padding: 17px; gap: 14px; }
  .ko-officers .ko-photo { width: 60px; height: 80px; flex-basis: 60px; }
  .ko-contact > div { grid-template-columns: 30px minmax(0,1fr); gap: 7px; }
}







/* ===================================================================
   직원명단 본문 | sub.css 끝에 추가 | ks- 전용, 기존 kst- 탭 유지
   내용 수정은 HTML에서만. JS / rowspan / 인원 수 관리 없음.
   =================================================================== */
.ks-employees {
  --ks-blue: #1761d5;
  --ks-ink: #24374e;
  --ks-line: #e4eaf1;
  width: 100%;
  color: var(--ks-ink);
  font-family: "Noto Sans KR", "Malgun Gothic", sans-serif;
}
.ks-employees *, .ks-employees *::before, .ks-employees *::after { box-sizing: border-box; }
.ks-employees h3, .ks-employees h4, .ks-employees p,
.ks-employees dl, .ks-employees dt, .ks-employees dd { margin: 0; }
.ks-head { padding-bottom: 23px; border-bottom: 1px solid var(--ks-line); }
.ks-employees .ks-head h3 { font-size: 24px; font-weight: 700; line-height: 1.5; letter-spacing: -.8px; color: #222; }
.ks-employees .ks-head p { margin-top: 9px; font-size: 12px; line-height: 1.8; color: #8b98a9; }
.ks-employees .ks-people {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 26px 0 0;
  padding: 0;
  list-style: none;
}
.ks-person {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 26px;
  border: 1px solid var(--ks-line);
  border-radius: 8px;
  background: #fff;
}
.ks-person-head { display: flex; align-items: center; gap: 13px; }
.ks-position {
  padding: 5px 10px;
  border-radius: 4px;
  background: #eef4fd;
  color: var(--ks-blue);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
  flex-shrink: 0;
}
.ks-employees .ks-name { font-size: 20px; line-height: 1.5; font-weight: 700; color: #233f5d; letter-spacing: -.2px; }
.ks-duty { margin-top: 22px; margin-bottom: 22px; flex: 1; }
.ks-duty > span { display: block; margin-bottom: 8px; color: #a0abba; font-size: 10px; }
.ks-employees .ks-duty p { font-size: 13px; line-height: 1.9; color: #718197; word-break: keep-all; overflow-wrap: anywhere; }
.ks-contact { padding-top: 16px; border-top: 1px solid #edf0f5; }
.ks-contact > div { display: grid; grid-template-columns: 37px minmax(0,1fr); gap: 10px; margin-top: 5px; font-size: 12px; line-height: 1.8; }
.ks-contact dt { font-size: 10px; color: #a0abba; padding-top: 1px; }
.ks-contact dd { min-width: 0; }
.ks-contact a { color: #71849c; text-decoration: none; overflow-wrap: anywhere; }
.ks-contact dd > a { display: block; }
.ks-contact a:hover { color: var(--ks-blue); text-decoration: underline; }
.ks-contact a:focus-visible { outline: 2px solid #94b7ef; outline-offset: 3px; }
.ks-unlisted { color: #a1acb9; }
@media (max-width: 760px) {
  .ks-employees .ks-people { grid-template-columns: 1fr; gap: 12px; margin-top: 22px; }
  .ks-employees .ks-head h3 { font-size: 21px; }
  .ks-person { padding: 23px; }
  .ks-employees .ks-name { font-size: 19px; }
}
@media (max-width: 380px) {
  .ks-person { padding: 20px; }
  .ks-contact > div { gap: 8px; font-size: 11px; }
}





/* ===================================================================
	게시판 디자인 수정 CSS
   기존 스타일시트 다음에 적용하세요. 
   =================================================================== */


#container:has(.board01) {
  --board-blue: #1657a7;
  --board-ink: #203249;
  --board-muted: #738094;
  --board-line: #e7edf4;
}

#container:has(.board01) .sub-body__main {
  min-width: 0;
}

#container:has(.board01) .content-title {
  color: var(--board-ink);
  font-size: 28px;
  letter-spacing: -1px;
  line-height: 1.4;
  margin-bottom: 22px;
  padding-left: 15px;
  border-left: 4px solid var(--board-blue);
  border-bottom: 0;
  padding-bottom: 0;
}

#container:has(.board01) .box {
  padding: 28px 30px 30px;
  border: 1px solid #e1e8f0;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 30px rgba(32, 50, 73, .045);
}

#container .box:has(.board01) > table {
  width: 100%;
}

/* 게시판 목록 */

#container .board01 {
  width: 100%;
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  color: var(--board-ink);
  font-size: 14px;
  font-family:
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
}

#container .board01 :is(th, td) {
  box-sizing: border-box;
}

#container .board01 thead th {
  height: 48px;
  padding: 12px 10px;
  border: 0;
  background: #edf3fa;
  color: #3d5573;
  font-size: 13px;
  font-weight: 600;
  text-align: center;
  letter-spacing: -.2px;
}

#container .board01 thead th:first-child {
  width: 7%;
  border-radius: 9px 0 0 9px;
}

#container .board01 thead th:nth-child(2) {
  width: 60%;
  text-align: left;
  padding-left: 18px;
}

#container .board01 thead th:nth-child(3) {
  width: 10%;
}

#container .board01 thead th:nth-child(4) {
  width: 15%;
}

#container .board01 thead th:last-child {
  width: 8%;
  border-radius: 0 9px 9px 0;
}

#container .board01 tbody td {
  padding: 19px 10px;
  height: 65px;
  border: 0;
  border-bottom: 1px solid var(--board-line);
  background: #fff;
  text-align: center;
  vertical-align: middle;
  color: var(--board-muted);
  font-size: 13px;
  line-height: 1.55;
  font-variant-numeric: tabular-nums;
  transition: background-color .15s ease;
}

#container .board01 tbody td:nth-child(2) {
  padding-left: 18px;
  padding-right: 18px;
}

#container .board01 tbody td:nth-child(4) {
  white-space: nowrap;
}

#container .board01 tbody td:nth-child(2) a {
  display: block;
  color: var(--board-ink);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: -.35px;
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-decoration: none;
}

#container .board01 tbody tr:hover td {
  background: #f7faff;
}

#container .board01 tbody td:nth-child(2) a:hover {
  color: var(--board-blue);
}

#container .board01 a:focus-visible,
#container form[name="search_form"] :is(a, select, input):focus-visible {
  outline: 3px solid #8db7e9;
  outline-offset: 3px;
  border-radius: 5px;
}

/* 페이지 번호 */

#container .board01 tfoot td {
  padding: 25px 0 10px;
  border: 0;
  background: transparent;
}

#container .board01 tfoot td > div {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  flex-wrap: wrap;
}

#container .board01 tfoot :is(a, b) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 36px;
  padding: 0 7px;
  margin: 0;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1;
  font-weight: 500;
  color: #68788d;
  text-decoration: none;
}

#container .board01 tfoot b {
  background: var(--board-blue);
  color: #fff;
  font-weight: 700;
}

#container .board01 tfoot a:hover {
  background: #edf3fa;
  color: var(--board-blue);
}

#container .board01 tfoot a:has(img) {
  border-color: var(--board-line);
  margin-left: 5px;
}

#container .board01 tfoot a:has(img)::after {
  content: '\203A';
  font-size: 24px;
}

#container .board01 tfoot a img {
  display: none;
}

/* 검색 영역 */

#container .board01 ~ div[align="right"]:empty {
  display: none;
}

#container .board01 ~ table:has(form[name="search_form"]) {
  width: 100%;
}

#container .board01 ~ table > tbody > tr:first-child:has(> td:empty) {
  display: none;
}

#container .board01 ~ table > tbody > tr > td {
  padding: 0;
}

#container .board01 ~ table > tbody > tr > td > form[name="search_form"] {
  margin: 12px 0 0;
  padding: 16px;
  border: 1px solid var(--board-line);
  border-radius: 10px;
  background: #f7f9fc;
  width: 100%;
  box-sizing: border-box;
}

#container form[name="search_form"] :is(table, tbody, tr, td) {
  display: block;
  width: 100%;
  height: auto;
  padding: 0;
  border: 0;
  margin: 0;
  background: transparent;
  box-sizing: border-box;
}

#container form[name="search_form"] tr:has(> .table_title01) {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr) 80px;
  gap: 10px;
  align-items: center;
}

#container form[name="search_form"] .table_title01 {
  display: flex;
  gap: 8px;
}

#container form[name="search_form"] :is(select, input[type="text"]) {
  height: 42px !important;
  width: 100% !important;
  min-width: 0;
  border: 1px solid #d8e1ed;
  border-radius: 7px;
  padding: 0 12px;
  background: #fff;
  color: #34475f;
  font-family: inherit;
  font-size: 14px;
  box-sizing: border-box;
  vertical-align: middle;
}

#container form[name="search_form"] select[name="search_kind"] {
  flex: 0 0 95px;
}

#container form[name="search_form"] select[name="date_area"] {
  flex: 1;
}

#container form[name="search_form"] input[type="text"]:focus {
  border-color: var(--board-blue);
}

#container form[name="search_form"] td > a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  background: var(--board-blue);
  border-radius: 7px;
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  transition: background .15s;
}

#container form[name="search_form"] td > a::after {
  content: '검색';
}

#container form[name="search_form"] td > a:hover {
  background: #104684;
}

#container form[name="search_form"] td > a img {
  display: none;
}

/* 태블릿 */

@media (max-width: 1100px) {
  #container:has(.board01) .box {
    padding: 22px;
  }

  #container .board01 tbody td {
    padding: 16px 7px;
  }

  #container .board01 tbody td:nth-child(2) {
    padding-left: 12px;
    padding-right: 12px;
  }

  #container form[name="search_form"] tr:has(> .table_title01) {
    grid-template-columns: 225px minmax(0, 1fr) 70px;
    gap: 8px;
  }

  #container form[name="search_form"] select[name="search_kind"] {
    flex-basis: 80px;
  }
}

/* 모바일 */

@media (max-width: 760px) {
  #container:has(.board01) .content-title {
    font-size: 24px;
  }

  #container:has(.board01) .box {
    padding: 16px 14px;
    border-radius: 12px;
  }

  #container .board01 :is(th, td):is(:nth-child(1), :nth-child(3), :nth-child(5)):not([colspan]) {
    display: none;
  }

  #container .board01 thead th:nth-child(2) {
    width: 75%;
    padding-left: 12px;
    border-radius: 8px 0 0 8px;
  }

  #container .board01 thead th:nth-child(4) {
    width: 25%;
    border-radius: 0 8px 8px 0;
  }

  #container .board01 tbody td:nth-child(2) a {
    font-size: 14px;
  }

  #container .board01 tbody td:nth-child(4) {
    font-size: 11px;
  }

  #container .board01 tfoot td {
    padding-top: 20px;
  }

  #container .board01 tfoot :is(a, b) {
    min-width: 28px;
    height: 32px;
    padding: 0 4px;
    font-size: 12px;
  }

  #container .board01 tfoot td > div {
    gap: 3px;
  }

  #container .board01 ~ table > tbody > tr > td > form[name="search_form"] {
    padding: 12px;
  }

  #container form[name="search_form"] tr:has(> .table_title01) {
    grid-template-columns: minmax(0, 1fr) 72px;
    gap: 9px;
  }

  #container form[name="search_form"] .table_title01 {
    grid-column: 1 / -1;
  }

  #container form[name="search_form"] select[name="search_kind"] {
    flex: 1;
  }

  #container form[name="search_form"] select[name="date_area"] {
    flex: 1;
  }
}

/* 움직임 최소화 설정 */

@media (prefers-reduced-motion: reduce) {
  #container .board01 tbody td,
  #container form[name="search_form"] td > a {
    transition: none;
  }
}








/* ===================================================================
	KSME 검색 결과 게시판 수정 CSS
   기존 sub.css 맨 아래에 추가하세요.
   기존 HTML, 검색 조건, 링크, 스크립트는 유지합니다
   =================================================================== */


#container:has(.tb_tale_top) {
  --board-blue: #1657a7;
  --board-ink: #203249;
  --board-muted: #738094;
  --board-line: #e7edf4;
}

#container:has(.tb_tale_top) .sub-body__main {
  min-width: 0;
}

#container:has(.tb_tale_top) .content-title {
  color: var(--board-ink);
  font-size: 28px;
  letter-spacing: -1px;
  line-height: 1.4;
  margin-bottom: 22px;
  padding-left: 15px;
  border-left: 4px solid var(--board-blue);
  border-bottom: 0;
  padding-bottom: 0;
}

#container .box:has(.tb_tale_top) {
  padding: 28px 30px 30px;
  border: 1px solid #e1e8f0;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 30px rgba(32, 50, 73, .045);
  color: var(--board-ink);
  font-family:
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
}

/* 기존 장식용 테이블 레이아웃 해제 */

#container .box:has(.tb_tale_top) > table,
#container .box:has(.tb_tale_top) > table > tbody,
#container .box:has(.tb_tale_top) > table > tbody > tr,
#container .box:has(.tb_tale_top) > table > tbody > tr > td {
  display: block;
  width: 100%;
  height: auto;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  box-sizing: border-box;
}

#container .box:has(.tb_tale_top) > table > tbody > tr:not(:has(table)),
#container .box:has(.tb_tale_top) > table > tbody > tr > td:not(:has(table)) {
  display: none;
}

/* 표 헤더와 검색 결과에 동일한 5열 그리드 적용 */

#container .box table:has(> tbody > tr > .tb_tale_top),
#container .box table:has(> tbody > tr > .table_line) {
  display: block;
  width: 100%;
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  margin: 0;
  font-size: 14px;
}

#container .box table:has(> tbody > tr > .tb_tale_top) > colgroup,
#container .box table:has(> tbody > tr > .table_line) > colgroup {
  display: none;
}

#container .box table:has(> tbody > tr > .tb_tale_top) > tbody,
#container .box table:has(> tbody > tr > .table_line) > tbody {
  display: block;
  width: 100%;
}

#container .box table > tbody > tr:has(> .tb_tale_top),
#container .box table > tbody > tr:has(> .table_line) {
  display: none;
}

#container .box table:has(> tbody > tr > .tb_tale_top) > tbody > tr:not(:has(> .tb_tale_top)),
#container .box table:has(> tbody > tr > .table_line) > tbody > tr:not(:has(> .table_line)) {
  display: grid;
  grid-template-columns: 7% 60% 10% 15% 8%;
  align-items: stretch;
  height: auto;
}

#container .box table:has(> tbody > tr > .tb_tale_top) > tbody > tr > td:not(.table_title01) {
  display: none;
}

#container .box table:has(> tbody > tr > .tb_tale_top) .table_title01 {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 10px;
  border: 0;
  background: #edf3fa;
  color: #3d5573;
  font-size: 13px;
  font-weight: 600;
  text-align: center;
  letter-spacing: -.2px;
  box-sizing: border-box;
  min-width: 0;
}

#container .box table:has(> tbody > tr > .tb_tale_top) .table_title01 strong {
  font-weight: 600;
}

#container .box table:has(> tbody > tr > .tb_tale_top) .table_title01:first-child {
  border-radius: 9px 0 0 9px;
}

#container .box table:has(> tbody > tr > .tb_tale_top) .table_title01:nth-child(3) {
  justify-content: flex-start;
  padding-left: 18px;
}

#container .box table:has(> tbody > tr > .tb_tale_top) .table_title01:last-child {
  border-radius: 0 9px 9px 0;
}

/* 검색 결과 행 */

#container .box table:has(> tbody > tr > .table_line) > tbody > tr:not(:has(> .table_line)) > td {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 19px 10px;
  min-height: 65px;
  height: auto;
  border: 0;
  border-bottom: 1px solid var(--board-line);
  background: #fff;
  color: var(--board-muted);
  font-size: 13px;
  line-height: 1.55;
  font-variant-numeric: tabular-nums;
  min-width: 0;
  box-sizing: border-box;
  text-align: center;
  transition: background-color .15s ease;
}

#container .box table:has(> tbody > tr > .table_line) > tbody > tr > td:nth-child(2):not([colspan]) {
  justify-content: flex-start;
  text-align: left;
  padding-left: 18px !important;
  padding-right: 18px;
}

#container .box table:has(> tbody > tr > .table_line) td:nth-child(4) {
  white-space: nowrap;
}

#container .box table:has(> tbody > tr > .table_line) td b {
  font-weight: 400;
}

#container .box table:has(> tbody > tr > .table_line) td:nth-child(2) a {
  display: block;
  width: 100%;
  color: var(--board-ink);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: -.35px;
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-decoration: none;
}

#container .box table:has(> tbody > tr > .table_line) > tbody > tr:hover > td {
  background: #f7faff;
}

#container .box table:has(> tbody > tr > .table_line) td:nth-child(2) a:hover {
  color: var(--board-blue);
}

/* 페이지 번호 */

#container .box:has(.tb_tale_top) table:has(> tbody > tr > td > form[name="search_form"]),
#container .box:has(.tb_tale_top) table:has(> tbody > tr > td > form[name="search_form"]) > tbody,
#container .box:has(.tb_tale_top) table:has(> tbody > tr > td > form[name="search_form"]) > tbody > tr,
#container .box:has(.tb_tale_top) table:has(> tbody > tr > td > form[name="search_form"]) > tbody > tr > td {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-sizing: border-box;
}

#container .box:has(.tb_tale_top) table:has(> tbody > tr > td > form[name="search_form"]) > tbody > tr:first-child > td:first-child {
  padding: 25px 0 10px;
}

#container .box:has(.tb_tale_top) table:has(> tbody > tr > td > form[name="search_form"]) > tbody > tr:first-child > td:first-child > div {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  flex-wrap: wrap;
}

#container .box:has(.tb_tale_top) table:has(> tbody > tr > td > form[name="search_form"]) > tbody > tr:first-child > td:first-child :is(a, b) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 36px;
  padding: 0 7px;
  margin: 0;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1;
  font-weight: 500;
  color: #68788d;
  text-decoration: none;
}

#container .box:has(.tb_tale_top) table:has(> tbody > tr > td > form[name="search_form"]) > tbody > tr:first-child > td:first-child b {
  background: var(--board-blue);
  color: #fff;
  font-weight: 700;
}

#container .box:has(.tb_tale_top) table:has(> tbody > tr > td > form[name="search_form"]) > tbody > tr:first-child > td:first-child a:hover {
  background: #edf3fa;
  color: var(--board-blue);
}

/* 검색 영역 */

#container:has(.tb_tale_top) form[name="search_form"] {
  margin: 12px 0 0;
  padding: 16px;
  border: 1px solid var(--board-line);
  border-radius: 10px;
  background: #f7f9fc;
  width: 100%;
  box-sizing: border-box;
}

#container:has(.tb_tale_top) form[name="search_form"] :is(table, tbody, tr, td) {
  display: block;
  width: 100%;
  height: auto;
  padding: 0;
  border: 0;
  margin: 0;
  background: transparent;
  box-sizing: border-box;
}

#container:has(.tb_tale_top) form[name="search_form"] tr:has(> .table_title01) {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr) 80px;
  gap: 10px;
  align-items: center;
}

#container:has(.tb_tale_top) form[name="search_form"] .table_title01 {
  display: flex;
  gap: 8px;
}

#container:has(.tb_tale_top) form[name="search_form"] :is(select, input[type="text"]) {
  height: 42px !important;
  width: 100% !important;
  min-width: 0;
  border: 1px solid #d8e1ed;
  border-radius: 7px;
  padding: 0 12px;
  background: #fff;
  color: #34475f;
  font-family: inherit;
  font-size: 14px;
  box-sizing: border-box;
  vertical-align: middle;
}

#container:has(.tb_tale_top) form[name="search_form"] select[name="search_kind"] {
  flex: 0 0 95px;
}

#container:has(.tb_tale_top) form[name="search_form"] select[name="date_area"] {
  flex: 1;
}

#container:has(.tb_tale_top) form[name="search_form"] input[type="text"]:focus {
  border-color: var(--board-blue);
}

#container:has(.tb_tale_top) form[name="search_form"] td > a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  background: var(--board-blue);
  border-radius: 7px;
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  transition: background .15s;
}

#container:has(.tb_tale_top) form[name="search_form"] td > a::after {
  content: '검색';
}

#container:has(.tb_tale_top) form[name="search_form"] td > a:hover {
  background: #104684;
}

#container:has(.tb_tale_top) form[name="search_form"] td > a img {
  display: none;
}

#container .box:has(.tb_tale_top) :is(a, select, input):focus-visible {
  outline: 3px solid #8db7e9;
  outline-offset: 3px;
  border-radius: 5px;
}

/* 태블릿 */

@media (max-width: 1100px) {
  #container .box:has(.tb_tale_top) {
    padding: 22px;
  }

  #container .box table:has(> tbody > tr > .table_line) > tbody > tr:not(:has(> .table_line)) > td {
    padding: 16px 7px;
  }

  #container .box table:has(> tbody > tr > .table_line) > tbody > tr > td:nth-child(2):not([colspan]) {
    padding-left: 12px !important;
    padding-right: 12px;
  }

  #container:has(.tb_tale_top) form[name="search_form"] tr:has(> .table_title01) {
    grid-template-columns: 225px minmax(0, 1fr) 70px;
    gap: 8px;
  }

  #container:has(.tb_tale_top) form[name="search_form"] select[name="search_kind"] {
    flex-basis: 80px;
  }
}

/* 모바일 */

@media (max-width: 760px) {
  #container:has(.tb_tale_top) .content-title {
    font-size: 24px;
  }

  #container .box:has(.tb_tale_top) {
    padding: 16px 14px;
    border-radius: 12px;
  }

  #container .box table:has(> tbody > tr > .tb_tale_top) > tbody > tr:not(:has(> .tb_tale_top)),
  #container .box table:has(> tbody > tr > .table_line) > tbody > tr:not(:has(> .table_line)) {
    grid-template-columns: minmax(0, 1fr) 92px;
  }

  #container .box table:has(> tbody > tr > .tb_tale_top) .table_title01:is(:nth-child(1), :nth-child(5), :nth-child(9)),
  #container .box table:has(> tbody > tr > .table_line) > tbody > tr:not(:has(> .table_line)) > td:is(:nth-child(1), :nth-child(3), :nth-child(5)):not([colspan]) {
    display: none;
  }

  #container .box table:has(> tbody > tr > .tb_tale_top) .table_title01:nth-child(3) {
    padding-left: 12px;
    border-radius: 8px 0 0 8px;
  }

  #container .box table:has(> tbody > tr > .tb_tale_top) .table_title01:nth-child(7) {
    border-radius: 0 8px 8px 0;
  }

  #container .box table:has(> tbody > tr > .table_line) td:nth-child(2) a {
    font-size: 14px;
  }

  #container .box table:has(> tbody > tr > .table_line) > tbody > tr:not(:has(> .table_line)) > td:nth-child(4) {
    font-size: 11px;
    padding-left: 2px;
    padding-right: 2px;
  }

  #container:has(.tb_tale_top) form[name="search_form"] {
    padding: 12px;
  }

  #container:has(.tb_tale_top) form[name="search_form"] tr:has(> .table_title01) {
    grid-template-columns: minmax(0, 1fr) 72px;
    gap: 9px;
  }

  #container:has(.tb_tale_top) form[name="search_form"] .table_title01 {
    grid-column: 1 / -1;
  }

  #container:has(.tb_tale_top) form[name="search_form"] select[name="search_kind"],
  #container:has(.tb_tale_top) form[name="search_form"] select[name="date_area"] {
    flex: 1;
  }
}

/* 움직임 최소화 설정 */

@media (prefers-reduced-motion: reduce) {
  #container .box table:has(> tbody > tr > .table_line) td,
  #container:has(.tb_tale_top) form[name="search_form"] td > a {
    transition: none;
  }
}





/* ===================================================================
	게시글 상세 디자인
   =================================================================== */


#container:has(.board02) {
  --board-blue: #1657a7;
  --board-ink: #203249;
  --board-muted: #738094;
  --board-line: #e7edf4;
}

#container:has(.board02) .sub-body__main {
  min-width: 0;
}

#container:has(.board02) .content-title {
  color: var(--board-ink);
  font-size: 28px;
  line-height: 1.4;
  letter-spacing: -1px;
  margin-bottom: 22px;
  padding: 0 0 0 15px;
  border: 0;
  border-left: 4px solid var(--board-blue);
}

#container .box:has(.board02) {
  padding: 0;
  background: #fff;
  border: 1px solid #e1e8f0;
  border-radius: 16px;
  box-shadow: 0 8px 30px rgba(32, 50, 73, .045);
  color: var(--board-ink);
  font-family:
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
}

/* 본문 안의 표는 유지하고, 바깥 장식용 테이블만 해제 */
#container .box:has(.board02) > table,
#container .box:has(.board02) > table > tbody,
#container .box:has(.board02) > table > tbody > tr,
#container .box:has(.board02) > table > tbody > tr > td,
#container .box table:has(> tbody > tr > td > .board02),
#container .box table:has(> tbody > tr > td > .board02) > tbody,
#container .box table:has(> tbody > tr > td > .board02) > tbody > tr,
#container .box table:has(> tbody > tr > td > .board02) > tbody > tr > td {
  display: block;
  width: 100%;
  height: auto;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  box-sizing: border-box;
}

#container .box table:has(> tbody > tr > td > .board02) > tbody > tr > td:not(:has(.board02)) {
  display: none;
}



#container .board02 {
  display: block;
  width: 100%;
  border: 0;
  margin: 0;
  border-spacing: 0;
  table-layout: fixed;
}

#container .board02 > tbody,
#container .board02 > tbody > tr {
  display: block;
}

#container .board02 > tbody > tr > td {
  box-sizing: border-box;
  border: 0;
  height: auto;
  min-width: 0;
  background: transparent;
}

/* 게시글 제목 */
#container .board02 > tbody > tr:first-child {
  padding: 30px 34px 18px;
}

#container .board02 .board_c01 {
  display: none;
}

#container .board02 .board_c02 {
  display: block;
  width: 100%;
  padding: 0;
  color: var(--board-ink);
  font-size: 25px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -.75px;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

/* 작성자·등록일 */
#container .board02 > tbody > tr:has(> td.board_c04:nth-child(4)) {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 54px minmax(0, 1fr);
  gap: 6px 12px;
  align-items: center;
  margin: 0 34px;
  padding: 14px 18px 0;
  background: #f5f8fc;
  border-radius: 10px 10px 0 0;
}

/* 이메일 */
#container .board02 > tbody > tr:has(> td.board_c04[colspan="3"]):not(:last-child) {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  margin: 0 34px;
  padding: 9px 18px 14px;
  background: #f5f8fc;
  border-radius: 0 0 10px 10px;
}

#container .board02 .board_c03 {
  display: block;
  width: auto;
  padding: 0;
  color: var(--board-muted);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.7;
}

#container .board02 .board_c04 {
  display: block;
  width: auto;
  padding: 0;
  color: #4b5c71;
  font-size: 13px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}

#container .board02 .board_c04 a {
  color: var(--board-blue);
  text-decoration: none;
}

/* 본문 */
#container .board02 .board_c05 {
  display: block;
  width: 100%;
  padding: 32px 34px 36px;
  color: #344459;
  font-family:
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
  font-size: 16px;
  line-height: 1.95;
  letter-spacing: -.2px;
  overflow-wrap: anywhere;
  word-break: normal;
}

#container .board02 .board_c05 :is(span, font) {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
}

#container .board02 .board_c05 span[style*="color:#000000"],
#container .board02 .board_c05 span[style*="color: #000000"] {
  color: inherit !important;
}

#container .board02 .board_c05 :is(p, div) {
  max-width: 100%;
  box-sizing: border-box;
}

#container .board02 .board_c05 p {
  margin: 0 0 16px;
}

#container .board02 .board-collapsed-space {
  display: none;
}

#container .board02 .board_c05 > div:not([style*="text-align: center"]):not(.board-collapsed-space) {
  margin-bottom: 20px;
}



/* 링크·이미지·본문 표 */
#container .board02 .board_c05 a {
  color: var(--board-blue);
  text-decoration: underline;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}

#container .board02 .board_c05 img {
  display: block;
  max-width: 100% !important;
  height: auto !important;
  margin: 22px auto;
  border-radius: 10px;
}

#container .board02 .board_c05 a:has(img) {
  display: block;
}

#container .board02 .board_c05 :is(iframe, video),
#container .board02 .board_c05 table {
  max-width: 100%;
}

#container .board02 .board_c05 blockquote {
  margin: 20px 0;
  padding: 18px 22px;
  border-left: 3px solid var(--board-blue);
  background: #f5f8fc;
}

#container .board02 .board_c05 :is(ul, ol) {
  padding-left: 24px;
  margin: 16px 0;
}

/* 첨부파일 */
#container .board02 > tbody > tr:last-child:has(> .board_c03) {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 19px 34px;
  background: #f8fafd;
  border-top: 1px solid var(--board-line);
  border-bottom: 1px solid var(--board-line);
}

#container .board02 > tbody > tr:last-child:has(> .board_c04:empty) {
  display: none;
}

#container .board02 > tbody > tr:last-child .board_c04 a {
  display: inline-block;
  margin: 0 12px 7px 0;
  padding: 7px 12px;
  border: 1px solid #d9e4f1;
  border-radius: 7px;
  background: #fff;
  font-size: 13px;
  text-decoration: none;
}

/* 하단 버튼 */
#container .board02 + table,
#container .board02 + table > tbody,
#container .board02 + table > tbody > tr,
#container .board02 + table > tbody > tr > td {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-sizing: border-box;
}

#container .board02 + table > tbody > tr:first-child:has(> td:empty) {
  display: none;
}

#container .board02 + table div[align="right"] {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 20px 34px 25px;
  border-top: 1px solid var(--board-line);
}

#container .board02 + table a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 96px;
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid #d7e2ef;
  border-radius: 8px;
  background: #fff;
  color: var(--board-blue);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  box-sizing: border-box;
}

#container .board02 + table a:has(img[src*="btn_list_01"]) {
  background: var(--board-blue);
  border-color: var(--board-blue);
  color: #fff;
}

#container .board02 + table a:has(img[src*="btn_list_01"])::before {
  content: "목록으로";
}

#container .board02 + table img[src*="btn_list_01"] {
  display: none;
}

#container .board02 + table a:hover {
  filter: brightness(.95);
}

#container .box:has(.board02) a:focus-visible {
  outline: 3px solid #8db7e9;
  outline-offset: 3px;
}

/* 태블릿 */
@media (max-width: 1100px) {
  #container .board02 > tbody > tr:first-child {
    padding: 25px 24px 16px;
  }

  #container .board02 .board_c02 {
    font-size: 23px;
  }

  #container .board02 > tbody > tr:has(> td.board_c04:nth-child(4)),
  #container .board02 > tbody > tr:has(> td.board_c04[colspan="3"]):not(:last-child) {
    margin-left: 24px;
    margin-right: 24px;
  }

  #container .board02 .board_c05 {
    padding: 26px 24px 30px;
  }

  #container .board02 > tbody > tr:last-child:has(> .board_c03) {
    padding: 18px 24px;
  }

  #container .board02 + table div[align="right"] {
    padding: 20px 24px;
  }
}

/* 모바일 */
@media (max-width: 760px) {
  #container:has(.board02) .content-title {
    font-size: 24px;
  }

  #container .box:has(.board02) {
    border-radius: 12px;
  }

  #container .board02 > tbody > tr:first-child {
    padding: 22px 18px 16px;
  }

  #container .board02 .board_c02 {
    font-size: 20px;
    line-height: 1.55;
  }

  #container .board02 > tbody > tr:has(> td.board_c04:nth-child(4)) {
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 6px 10px;
    margin: 0 18px;
    padding: 12px 14px 0;
  }

  #container .board02 > tbody > tr:has(> td.board_c04[colspan="3"]):not(:last-child) {
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 10px;
    margin: 0 18px;
    padding: 8px 14px 12px;
  }

  #container .board02 .board_c05 {
    padding: 24px 18px;
    font-size: 15px;
    line-height: 1.9;
  }

  #container .board02 .board_c05 > div[style*="text-align: center"]:has(strong) {
    font-size: 18px;
    padding: 17px 18px;
    margin-bottom: 20px;
  }

  #container .board02 .board_c05 .board-body-info {
    padding: 14px 16px;
  }

  #container .board02 .board_c05 .board-body-heading {
    font-size: 17px;
  }

  #container .board02 > tbody > tr:last-child:has(> .board_c03) {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 16px 18px;
  }

  #container .board02 + table div[align="right"] {
    padding: 18px;
  }
}





/* ===================================================================
	뉴스레터 목록 디자인
   =================================================================== */


#container.ksme-newsletter .sub-body__main {
  min-width: 0;
}

#container.ksme-newsletter .content-title {
  font-size: 28px;
  line-height: 1.4;
  color: #203249;
  letter-spacing: -1px;
  padding: 0 0 0 15px;
  margin-bottom: 22px;
  border: 0;
  border-left: 4px solid #1657a7;
}

.ksme-newsletter-box {
  padding: 26px 30px 22px !important;
  background: #fff;
  border: 1px solid #e1e8f0 !important;
  border-radius: 16px;
  box-shadow: 0 8px 30px rgba(32, 50, 73, .045);
  box-sizing: border-box;
}

/* 상단 안내 */
.ksme-newsletter-intro {
  display: flex;
  align-items: center;
  gap: 17px;
  margin: 0 0 22px;
  padding: 20px 22px;
  border: 1px solid #e2ebf6;
  border-radius: 11px;
  background: #f3f7fc;
  color: #203249;
  font-family: "Noto Sans KR", "Malgun Gothic", sans-serif;
}

.ksme-newsletter-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  border-radius: 12px;
  background: #1657a7;
  color: #fff;
}

.ksme-newsletter-intro strong {
  display: block;
  font-size: 19px;
  line-height: 1.5;
  letter-spacing: -.5px;
}

.ksme-newsletter-intro p {
  margin: 4px 0 0 !important;
  color: #728095;
  font-size: 13px;
  line-height: 1.6;
}

/* 기존 게시판 CSS보다 우선 적용 */
:is(#container, body) .ksme-newsletter-list.board01 {
  display: table;
  width: 100%;
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  color: #203249;
  font-family:
    "Noto Sans KR", "Apple SD Gothic Neo",
    "Malgun Gothic", sans-serif;
}

:is(#container, body) .ksme-newsletter-list.board01 thead {
  display: table-header-group;
}

:is(#container, body) .ksme-newsletter-list.board01 tbody {
  display: table-row-group;
}

:is(#container, body) .ksme-newsletter-list.board01 tr {
  display: table-row;
}

:is(#container, body) .ksme-newsletter-list.board01 :is(th, td) {
  display: table-cell !important;
  box-sizing: border-box;
}

:is(#container, body) .ksme-newsletter-list.board01 :is(th, td, a, span) {
  font-family:
    "Noto Sans KR", "Apple SD Gothic Neo",
    "Malgun Gothic", sans-serif !important;
}

/* 표 헤더 */
:is(#container, body) .ksme-newsletter-list.board01 thead th {
  height: 46px;
  padding: 12px 16px;
  border: 0;
  background: #edf3fa;
  color: #3d5573;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
}

:is(#container, body) .ksme-newsletter-list.board01 thead th:nth-child(1) {
  width: 8%;
  text-align: center;
  border-radius: 8px 0 0 8px;
}

:is(#container, body) .ksme-newsletter-list.board01 thead th:nth-child(2) {
  width: 60%;
  text-align: left;
  padding-left: 20px;
}

:is(#container, body) .ksme-newsletter-list.board01 thead th:nth-child(3) {
  width: 32%;
  text-align: right;
  border-radius: 0 8px 8px 0;
}

/* 목록 행 */
:is(#container, body) .ksme-newsletter-list.board01 tbody td {
  height: 76px;
  padding: 16px;
  border: 0;
  border-bottom: 1px solid #e7edf4;
  background: #fff;
  color: #738094;
  font-size: 13px;
  line-height: 1.65;
  vertical-align: middle;
  transition: background .15s;
}

:is(#container, body) .ksme-newsletter-list.board01 tbody td:first-child {
  text-align: center;
  font-variant-numeric: tabular-nums;
  font-size: 12px;
}

:is(#container, body) .ksme-newsletter-list.board01 tbody td:nth-child(2) {
  padding-left: 20px;
  padding-right: 16px;
  text-align: left;
}

:is(#container, body) .ksme-newsletter-list.board01 tbody td:nth-child(2) a {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #203249;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.6;
  text-decoration: none;
  letter-spacing: -.35px;
  overflow-wrap: anywhere;
}

:is(#container, body) .ksme-newsletter-list.board01 tbody td:last-child {
  text-align: right;
  white-space: normal;
}

.ksme-newsletter-date {
  display: block;
  color: #52647c;
  font-size: 13px;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
}

.ksme-newsletter-time {
  display: block;
  color: #929cac;
  font-size: 11px;
  line-height: 1.5;
  margin-top: 2px;
}

:is(#container, body) .ksme-newsletter-list.board01 tbody tr:hover td {
  background: #f7faff;
}

:is(#container, body) .ksme-newsletter-list.board01 tbody td:nth-child(2) a:hover {
  color: #1657a7;
}

/* 첫 페이지 최신호 */
:is(#container, body) .ksme-newsletter-list.board01 .ksme-newsletter-latest td:nth-child(2) a::after {
  content: "최신호";
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  height: 22px;
  padding: 0 7px;
  border-radius: 5px;
  background: #e9f1fc;
  color: #1657a7;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0;
}

/* 페이지 번호 */
.ksme-newsletter-pages,
.ksme-newsletter-pages :is(table, tbody, tr, td) {
  display: block;
  width: 100%;
  height: auto;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  box-sizing: border-box;
}

.ksme-newsletter-pages {
  padding-top: 24px;
}

.ksme-newsletter-pages td:has(> a) {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}

.ksme-newsletter-pages :is(a, b) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 36px;
  padding: 0 7px;
  border: 1px solid transparent;
  border-radius: 7px;
  font-family: "Noto Sans KR", "Malgun Gothic", sans-serif;
  font-size: 13px;
  line-height: 1;
  color: #68788d;
  text-decoration: none;
  box-sizing: border-box;
}

.ksme-newsletter-pages b {
  background: #1657a7;
  color: #fff;
  font-weight: 700;
}

.ksme-newsletter-pages a:hover {
  background: #edf3fa;
  color: #1657a7;
}

.ksme-newsletter-pages a:has(img) {
  border-color: #e1e8f0;
}

.ksme-newsletter-pages img {
  display: none;
}

.ksme-newsletter-pages a:has(img[alt="다음"])::after {
  content: "›";
  font-size: 23px;
}

.ksme-newsletter-pages a:has(img[alt="마지막"])::after {
  content: "»";
  font-size: 21px;
}

.ksme-newsletter-pages a:has(img[alt="이전"])::after {
  content: "‹";
  font-size: 23px;
}

.ksme-newsletter-pages a:has(img[alt="처음"])::after {
  content: "«";
  font-size: 21px;
}

:is(#container, body) .ksme-newsletter-list a:focus-visible,
.ksme-newsletter-pages a:focus-visible {
  outline: 3px solid #8db7e9;
  outline-offset: 3px;
  border-radius: 5px;
}

/* 태블릿 */
@media (max-width: 1100px) {
  .ksme-newsletter-box {
    padding: 22px !important;
  }

  :is(#container, body) .ksme-newsletter-list.board01 thead th:nth-child(2) {
    width: 55%;
  }

  :is(#container, body) .ksme-newsletter-list.board01 thead th:nth-child(3) {
    width: 37%;
  }
}

/* 모바일 */
@media (max-width: 760px) {
  #container.ksme-newsletter .content-title {
    font-size: 24px;
  }

  .ksme-newsletter-box {
    padding: 16px 14px !important;
    border-radius: 12px;
  }

  .ksme-newsletter-intro {
    padding: 16px 14px;
    gap: 12px;
    margin-bottom: 18px;
  }

  .ksme-newsletter-icon {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
    border-radius: 10px;
  }

  .ksme-newsletter-intro strong {
    font-size: 17px;
  }

  .ksme-newsletter-intro p {
    font-size: 12px;
  }

  :is(#container, body) .ksme-newsletter-list.board01 thead th:nth-child(1),
  :is(#container, body) .ksme-newsletter-list.board01 tbody td:first-child {
    display: none !important;
  }

  :is(#container, body) .ksme-newsletter-list.board01 thead th:nth-child(2) {
    width: 60%;
    padding-left: 10px;
    border-radius: 7px 0 0 7px;
  }

  :is(#container, body) .ksme-newsletter-list.board01 thead th:nth-child(3) {
    width: 40%;
    padding-right: 10px;
  }

  :is(#container, body) .ksme-newsletter-list.board01 tbody td {
    height: 72px;
    padding: 14px 10px;
  }

  :is(#container, body) .ksme-newsletter-list.board01 tbody td:nth-child(2) {
    padding-left: 10px;
    padding-right: 8px;
  }

  :is(#container, body) .ksme-newsletter-list.board01 tbody td:nth-child(2) a {
    font-size: 14px !important;
    gap: 6px;
    flex-wrap: wrap;
  }

  .ksme-newsletter-date {
    font-size: 11px;
  }

  .ksme-newsletter-time {
    font-size: 10px;
  }

  .ksme-newsletter-pages td:has(> a) {
    gap: 3px;
  }

  .ksme-newsletter-pages :is(a, b) {
    min-width: 27px;
    height: 32px;
    font-size: 12px;
    padding: 0 5px;
  }
}






/* ===================================================================
	뉴스레터 상세
   =================================================================== */
#container.ksme-news-view {
  --nv-blue: #1657a7;
  --nv-ink: #203249;
  --nv-line: #e3eaf3;
}

#container.ksme-news-view .sub-body__main {
  min-width: 0;
}

#container.ksme-news-view .content-title {
  font-size: 28px;
  line-height: 1.4;
  color: var(--nv-ink);
  letter-spacing: -1px;
  padding: 0 0 0 15px;
  margin-bottom: 22px;
  border: 0;
  border-left: 4px solid var(--nv-blue);
}

#container.ksme-news-view .ksme-news-view-box {
  padding: 0;
  border: 1px solid #e1e8f0;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 30px rgba(32, 50, 73, .045);
  font-family:
    "Noto Sans KR", "Apple SD Gothic Neo",
    "Malgun Gothic", sans-serif;
}

#container.ksme-news-view .ksme-news-view-table {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-spacing: 0;
}

#container.ksme-news-view .ksme-news-view-table > thead {
  display: none;
}

#container.ksme-news-view .ksme-news-view-table > tbody,
#container.ksme-news-view .ksme-news-view-table > tbody > tr {
  display: block;
}

/* 제목·발송일 */
#container.ksme-news-view .ksme-news-view-table > tbody > tr:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 28px 32px 23px;
  border-bottom: 1px solid var(--nv-line);
}

#container.ksme-news-view .ksme-news-view-table > tbody > tr:first-child > td {
  display: block;
  width: auto;
  padding: 0;
  border: 0;
  height: auto;
  background: transparent;
  font-family: inherit;
}

#container.ksme-news-view .ksme-news-view-table > tbody > tr:first-child > td:first-child {
  flex: 1;
  color: var(--nv-ink);
  font-size: 25px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -.7px;
  text-align: left;
  overflow-wrap: anywhere;
}

#container.ksme-news-view .ksme-news-view-date {
  flex: 0 0 auto;
  color: #6d7d92;
  font-size: 12px;
  line-height: 1.7;
  text-align: right;
}

#container.ksme-news-view .ksme-news-view-date::before {
  content: "발송일";
  display: block;
  font-size: 11px;
  font-weight: 500;
  color: #8b97a7;
}

#container.ksme-news-view .ksme-news-view-date,
#container.ksme-news-view .ksme-news-view-date span {
  font-family:
    "Noto Sans KR", "Apple SD Gothic Neo",
    "Malgun Gothic", sans-serif !important;
}

#container.ksme-news-view .ksme-news-view-date span {
  display: block;
}

#container.ksme-news-view .ksme-news-view-date span:first-child {
  font-size: 14px;
  color: #4c617d;
  font-variant-numeric: tabular-nums;
}

/* 이미지형 뉴스레터 본문 */
#container.ksme-news-view .ksme-news-view-table .board_c05 {
  display: block;
  width: 100%;
  height: auto;
  padding: 28px 26px 30px;
  border: 0;
  background: #f5f7fb;
  box-sizing: border-box;
}

#container.ksme-news-view .ksme-news-view-table .board_c05 #wrap {
  width: 100%;
  max-width: 737px;
  margin: 0 auto;
  background: #fff;
  box-shadow: 0 4px 20px rgba(32, 50, 73, .055);
}

#container.ksme-news-view .ksme-news-view-table .board_c05 table {
  width: 100% !important;
  max-width: 737px;
  margin: 0 auto;
  border: 0;
  border-collapse: collapse;
  border-spacing: 0;
}

#container.ksme-news-view .ksme-news-view-table .board_c05 td {
  padding: 0;
  border: 0;
  line-height: 0;
}

#container.ksme-news-view .ksme-news-view-table .board_c05 img {
  display: block;
  width: 100% !important;
  max-width: 737px;
  height: auto !important;
  margin: 0;
  border-radius: 0;
}

/* 실제 텍스트 목록 버튼 */
#container.ksme-news-view .ksme-news-view-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 20px 30px 23px;
  margin: 0;
  border-top: 1px solid var(--nv-line);
}

#container.ksme-news-view .ksme-news-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  min-width: 118px;
  padding: 0 20px;
  border: 1px solid var(--nv-blue);
  border-radius: 8px;
  background: var(--nv-blue);
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  box-sizing: border-box;
  transition: background .15s;
}

#container.ksme-news-view .ksme-news-back::before {
  content: "\2190";
  font-size: 17px;
  font-weight: 400;
}

#container.ksme-news-view .ksme-news-back:hover {
  background: #104684;
  border-color: #104684;
}

#container.ksme-news-view .ksme-news-back:focus-visible {
  outline: 3px solid #8db7e9;
  outline-offset: 3px;
}

@media (max-width: 1100px) {
  #container.ksme-news-view .ksme-news-view-table > tbody > tr:first-child {
    padding: 24px;
  }

  #container.ksme-news-view .ksme-news-view-table > tbody > tr:first-child > td:first-child {
    font-size: 23px;
  }

  #container.ksme-news-view .ksme-news-view-table .board_c05 {
    padding: 22px 18px;
  }

  #container.ksme-news-view .ksme-news-view-actions {
    padding: 20px 24px;
  }
}

@media (max-width: 760px) {
  #container.ksme-news-view .content-title {
    font-size: 24px;
  }

  #container.ksme-news-view .ksme-news-view-box {
    border-radius: 12px;
  }

  #container.ksme-news-view .ksme-news-view-table > tbody > tr:first-child {
    display: block;
    padding: 22px 18px 18px;
  }

  #container.ksme-news-view .ksme-news-view-table > tbody > tr:first-child > td:first-child {
    font-size: 22px;
  }

  #container.ksme-news-view .ksme-news-view-date {
    margin-top: 9px;
    text-align: left;
    font-size: 11px;
  }

  #container.ksme-news-view .ksme-news-view-date::before {
    display: inline;
    margin-right: 7px;
  }

  #container.ksme-news-view .ksme-news-view-date span {
    display: inline;
    margin-right: 6px;
  }

  #container.ksme-news-view .ksme-news-view-date span:first-child {
    font-size: 12px;
  }

  #container.ksme-news-view .ksme-news-view-table .board_c05 {
    padding: 14px 10px;
  }

  #container.ksme-news-view .ksme-news-view-actions {
    padding: 18px;
  }

  #container.ksme-news-view .ksme-news-back {
    min-height: 42px;
  }
}






/* ===================================================================
	회원가입안내의 회원 종류 탭만 적용
   =================================================================== */


.member-type-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  width: 100%;
  margin: 0;
  padding: 6px;
  border: 1px solid #e1e8f0;
  border-radius: 11px;
  background: #f3f6fa;
  box-sizing: border-box;
}

.member-type-tabs__button {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 10px 16px;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: #6c7b90;
  font-family:
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  cursor: pointer;
  box-sizing: border-box;
  transition: background .15s, color .15s;
}

.member-type-tabs__button:hover {
  background: #e8eef7;
  color: #1657a7;
}

.member-type-tabs__button.is-active {
  border-color: #1657a7;
  background: #1657a7;
  color: #fff;
  box-shadow: 0 3px 8px rgba(22, 87, 167, .12);
}

.member-type-tabs__button:focus-visible {
  outline: 3px solid #8db7e9;
  outline-offset: 2px;
}

@media (max-width: 760px) {
  .member-type-tabs {
    gap: 4px;
    padding: 4px;
    border-radius: 9px;
  }

  .member-type-tabs__button {
    min-height: 44px;
    padding: 9px 6px;
    font-size: 13px;
  }
}











/* ===================================================================
	회원가입 안내
   =================================================================== */


#container:has(.membership-guide) .sub-body__main {
  min-width: 0;
}

#container:has(.membership-guide) .content-title {
  font-size: 28px;
  color: #203249;
  line-height: 1.4;
  letter-spacing: -1px;
  border: 0;
  border-left: 4px solid #1657a7;
  padding: 0 0 0 15px;
  margin-bottom: 24px;
}

#container .box:has(.membership-guide) {
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.membership-guide {
  width: 100%;
  font-family:
    "Noto Sans KR", "Apple SD Gothic Neo",
    "Malgun Gothic", sans-serif;
  color: #344459;
  font-size: 14px;
  line-height: 1.85;
  overflow-wrap: anywhere;
}

.membership-guide * {
  box-sizing: border-box;
}

.membership-guide :is(h4, h5, p, li, dt, dd, th, td, a) {
  font-family:
    "Noto Sans KR", "Apple SD Gothic Neo",
    "Malgun Gothic", sans-serif;
}

/* 자격 안내 */
.membership-qualification {
  padding: 22px 26px;
  margin: 0 0 24px;
  border: 1px solid #e0e9f5;
  border-radius: 12px;
  background: #f2f7fd;
}

.membership-qualification h4 {
  margin: 0 0 7px;
  color: #1657a7;
  font-size: 15px;
  font-weight: 700;
}

.membership-qualification p {
  margin: 0;
}

.membership-guide .member-type-tabs {
  margin: 0 0 26px;
}

/* 공통 섹션 카드 */
.membership-section {
  margin: 0 0 22px;
  padding: 26px;
  border: 1px solid #e1e8f0;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 4px 20px rgba(32, 50, 73, .025);
}

.membership-section > h4 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 20px;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.5;
  color: #203249;
  letter-spacing: -.5px;
}

.membership-section > h4::before {
  content: "";
  width: 4px;
  height: 19px;
  border-radius: 2px;
  background: #1657a7;
}

/* 회비 카드 */
.membership-fees,
.membership-lifetime {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.membership-fee-card {
  padding: 22px 24px;
  border: 1px solid #e1e8f1;
  border-radius: 10px;
  background: #f8fafd;
}

.membership-guide .membership-fee-card h5 {
  margin: 0 0 16px;
  font-size: 16px;
  font-weight: 600;
  color: #203249;
  line-height: 1.5;
}

.membership-fee-card dl {
  margin: 0;
}

.membership-fee-card dl > div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin: 10px 0;
}

.membership-fee-card dt {
  color: #78869a;
  font-size: 12px;
  flex-shrink: 0;
}

.membership-fee-card dd {
  margin: 0;
  text-align: right;
  color: #3f526d;
  font-size: 13px;
}

.membership-fee-card .membership-fee-card__annual {
  margin: 17px 0 0;
  padding-top: 14px;
  border-top: 1px solid #dfe7f2;
  align-items: center;
}

.membership-fee-card .membership-fee-card__annual dd,
.membership-guide .membership-fee-card .membership-price {
  color: #1657a7;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -.7px;
  font-variant-numeric: tabular-nums;
}

.membership-price {
  margin: 0;
}

.membership-fee-description {
  margin: 0;
  color: #3f526d;
  font-size: 15px;
}

.membership-note {
  margin: 16px 0 0;
  padding: 13px 16px;
  border-radius: 8px;
  background: #f7f9fc;
  color: #758399;
  font-size: 12px;
  line-height: 1.85;
}

.membership-text {
  margin: 0;
  line-height: 1.95;
}

/* 종신회비 데이터 표 */
.membership-table {
  width: 100%;
  border: 1px solid #e1e8f1;
  border-radius: 9px;
  border-spacing: 0;
  border-collapse: separate;
  overflow: hidden;
  font-size: 13px;
}

.membership-table caption {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

.membership-table th,
.membership-table td {
  padding: 11px 16px;
  border: 0;
  border-bottom: 1px solid #e7edf4;
  line-height: 1.5;
}

.membership-table thead th {
  background: #edf3fa;
  color: #3d5573;
  font-weight: 600;
  text-align: left;
}

.membership-table th:last-child,
.membership-table td {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.membership-table tbody th {
  background: #fff;
  text-align: left;
  color: #697b91;
  font-weight: 400;
}

.membership-table tbody td {
  background: #fff;
  color: #344d6f;
}

.membership-table tbody tr:last-child > * {
  border-bottom: 0;
}

/* 혜택 번호 목록 */
.membership-benefits {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: benefit;
}

.membership-benefits > li {
  position: relative;
  padding: 14px 0 14px 44px;
  border-bottom: 1px solid #e9eef5;
  counter-increment: benefit;
}

.membership-benefits > li:first-child {
  padding-top: 0;
}

.membership-benefits > li::before {
  content: counter(benefit, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 15px;
  color: #1657a7;
  font-size: 12px;
  font-weight: 700;
  line-height: 24px;
}

.membership-benefits > li:first-child::before {
  top: 1px;
}

.membership-benefits > li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.membership-guide .membership-benefits p {
  margin: 0;
  font-size: 14px;
  line-height: 1.85;
}

.membership-benefits ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px 22px;
  list-style: disc;
  margin: 12px 0 0;
  padding: 14px 20px 14px 32px;
  border-radius: 9px;
  background: #f6f8fc;
  color: #708096;
  font-size: 12px;
}

/* 입금 안내 */
.membership-payment {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.membership-payment__item {
  padding: 18px 20px;
  border: 1px solid #e4eaf2;
  border-radius: 9px;
  background: #fafbfd;
}

.membership-payment__item h5 {
  margin: 0 0 8px;
  font-size: 14px;
  color: #203249;
}

.membership-payment__item div {
  font-size: 13px;
  line-height: 1.9;
}

.membership-payment__item:has(a[href*="giro"]) {
  grid-column: 1 / -1;
}

.membership-giro {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e0e7f1;
}

.membership-giro summary {
  cursor: pointer;
  color: #1657a7;
  font-weight: 600;
}

.membership-giro p {
  margin: 10px 0;
}

.membership-giro ol {
  margin: 8px 0;
  padding-left: 20px;
}

/* 링크·버튼 */
.membership-guide a {
  color: #1657a7;
  text-underline-offset: 3px;
}

.membership-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 8px 0 10px;
}

.membership-guide .membership-join,
.membership-guide .membership-top {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 26px;
  border-radius: 8px;
  border: 1px solid #d7e2ee;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

.membership-guide .membership-join {
  background: #1657a7;
  border-color: #1657a7;
  color: #fff;
}

.membership-guide .membership-top {
  background: #fff;
  color: #677a92;
}

.membership-guide .membership-join:hover {
  background: #104684;
}

.membership-guide a:focus-visible {
  outline: 3px solid #8db7e9;
  outline-offset: 3px;
}

/* 반응형 */
@media (max-width: 1100px) {
  .membership-section {
    padding: 22px;
  }

  .membership-fee-card {
    padding: 19px;
  }

  .membership-fee-card dl > div {
    gap: 9px;
  }
}

@media (max-width: 760px) {
  #container:has(.membership-guide) .content-title {
    font-size: 24px;
  }

  .membership-guide {
    font-size: 13px;
  }

  .membership-qualification {
    padding: 18px;
    margin-bottom: 20px;
  }

  .membership-section {
    padding: 20px 18px;
    margin-bottom: 16px;
    border-radius: 11px;
  }

  .membership-section > h4 {
    font-size: 17px;
    margin-bottom: 17px;
  }

  .membership-fees,
  .membership-payment {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .membership-fee-card {
    padding: 18px;
  }

  .membership-lifetime {
    gap: 9px;
  }

  .membership-table th,
  .membership-table td {
    padding: 10px 8px;
    font-size: 11px;
  }

  .membership-benefits > li {
    padding-left: 32px;
  }

  .membership-guide .membership-benefits p {
    font-size: 13px;
  }

  .membership-benefits ul {
    grid-template-columns: 1fr;
  }

  .membership-payment__item {
    padding: 16px;
  }

  .membership-note {
    padding: 12px;
    font-size: 11px;
  }

  .membership-guide .member-type-tabs {
    margin-bottom: 20px;
  }
}










/* ===================================================================
	회원자격 및 혜택
   =================================================================== */
#container:has(.member-benefit-page) .sub-body__main {
  min-width: 0;
}

#container:has(.member-benefit-page) .content-title {
  color: #203249;
  font-size: 28px;
  line-height: 1.4;
  letter-spacing: -1px;
  margin-bottom: 24px;
  padding: 0 0 0 15px;
  border: 0;
  border-left: 4px solid #1657a7;
}

#container .box:has(.member-benefit-page) {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.member-benefit-page {
  font-family:
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
  color: #344459;
  font-size: 14px;
  line-height: 1.85;
  overflow-wrap: anywhere;
}

.member-benefit-page * {
  box-sizing: border-box;
}

.member-benefit-page :is(h4, h5, p, dt, dd, li, a, span) {
  font-family: inherit;
}

/* 공통 섹션 */
.member-benefit-page .mb-section {
  margin: 0 0 22px;
  padding: 26px;
  border: 1px solid #e1e8f0;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 4px 20px rgba(32, 50, 73, .025);
}

.member-benefit-page h4 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 20px;
  color: #203249;
  font-size: 19px;
  line-height: 1.5;
  letter-spacing: -.5px;
  font-weight: 700;
}

.member-benefit-page h4::before {
  content: "";
  width: 4px;
  height: 19px;
  border-radius: 2px;
  background: #1657a7;
}

/* 회원자격 카드 */
.member-benefit-page .mb-qualifications {
  display: grid;
  gap: 12px;
}

.member-benefit-page .mb-qualification {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  padding: 20px 22px;
  border: 1px solid #e3eaf3;
  border-radius: 10px;
  background: #fafbfd;
}

.member-benefit-page .mb-qualification h5 {
  margin: 0;
  color: #234469;
  font-size: 16px;
  line-height: 1.5;
  font-weight: 700;
}

.member-benefit-page .mb-qualification__label span {
  display: block;
  margin-top: 3px;
  font-size: 11px;
  color: #8a97a8;
  line-height: 1.5;
}

.member-benefit-page .mb-qualification p {
  margin: 0;
  font-size: 14px;
  line-height: 1.85;
  color: #56687e;
}

/* 회원 수 */
.member-benefit-page .mb-section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}

.member-benefit-page .mb-section__head h4 {
  margin: 0;
}

.member-benefit-page .mb-date {
  margin: 0;
  color: #8592a4;
  font-size: 12px;
  line-height: 1.5;
}

.member-benefit-page .mb-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
}

.member-benefit-page .mb-stats > div {
  padding: 21px 22px;
  border: 1px solid #e2e9f2;
  border-radius: 10px;
  background: #f7f9fc;
}

.member-benefit-page .mb-stats dt {
  color: #7c8ba0;
  font-size: 12px;
  font-weight: 500;
}

.member-benefit-page .mb-stats dd {
  margin: 5px 0 0;
  color: #234469;
  font-size: 28px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: -.8px;
  font-variant-numeric: tabular-nums;
}

.member-benefit-page .mb-stats dd span {
  margin-left: 5px;
  color: #8c9ab0;
  font-size: 12px;
  font-weight: 400;
}

.member-benefit-page .mb-stats > .mb-stats__total {
  border-color: #1657a7;
  background: #1657a7;
}

.member-benefit-page .mb-stats__total dt,
.member-benefit-page .mb-stats__total dd span {
  color: #c6d9f1;
}

.member-benefit-page .mb-stats__total dd {
  color: #fff;
}

/* 혜택 번호 목록 */
.member-benefit-page .mb-benefits {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: benefit;
}

.member-benefit-page .mb-benefits > li {
  position: relative;
  padding: 15px 0 15px 44px;
  border-bottom: 1px solid #e7edf4;
  counter-increment: benefit;
  font-size: 14px;
  line-height: 1.85;
}

.member-benefit-page .mb-benefits > li::before {
  content: counter(benefit, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 16px;
  color: #1657a7;
  font-size: 12px;
  font-weight: 700;
  line-height: 24px;
}

.member-benefit-page .mb-benefits > li:first-child {
  padding-top: 0;
}

.member-benefit-page .mb-benefits > li:first-child::before {
  top: 1px;
}

.member-benefit-page .mb-benefits > li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

/* 위로 버튼 */
.member-benefit-page .mb-actions {
  display: flex;
  justify-content: center;
  padding: 4px 0 12px;
}

.member-benefit-page .mb-top {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 90px;
  min-height: 42px;
  padding: 0 20px;
  border: 1px solid #d7e2ef;
  border-radius: 8px;
  background: #fff;
  color: #677b95;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
}

.member-benefit-page .mb-top:hover {
  background: #edf3fa;
  color: #1657a7;
}

.member-benefit-page a:focus-visible {
  outline: 3px solid #8db7e9;
  outline-offset: 3px;
}

/* 태블릿 */
@media (max-width: 1100px) {
  .member-benefit-page .mb-section {
    padding: 22px;
  }

  .member-benefit-page .mb-qualification {
    grid-template-columns: 145px minmax(0, 1fr);
    gap: 18px;
  }

  .member-benefit-page .mb-stats > div {
    padding: 18px;
  }
}

/* 모바일 */
@media (max-width: 760px) {
  #container:has(.member-benefit-page) .content-title {
    font-size: 24px;
  }

  .member-benefit-page .mb-section {
    padding: 20px 18px;
    margin-bottom: 16px;
    border-radius: 11px;
  }

  .member-benefit-page h4 {
    font-size: 17px;
    margin-bottom: 17px;
  }

  .member-benefit-page .mb-qualification {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 17px;
  }

  .member-benefit-page .mb-qualification p {
    font-size: 13px;
  }

  .member-benefit-page .mb-section__head {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
  }

  .member-benefit-page .mb-date {
    font-size: 11px;
  }

  .member-benefit-page .mb-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
  }

  .member-benefit-page .mb-stats > div {
    padding: 16px 14px;
  }

  .member-benefit-page .mb-stats dd {
    font-size: 24px;
  }

  .member-benefit-page .mb-benefits > li {
    padding-left: 32px;
    font-size: 13px;
  }
}





/* ===================================================================
	특별회원 기관 목록
   =================================================================== */

#container:has(.corporate-members) .sub-body__main {
  min-width: 0;
}

#container:has(.corporate-members) .content-title {
  font-size: 28px;
  color: #203249;
  line-height: 1.4;
  letter-spacing: -1px;
  padding: 0 0 0 15px;
  margin-bottom: 24px;
  border: 0;
  border-left: 4px solid #1657a7;
}

#container .box:has(.corporate-members) {
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.corporate-members {
  font-family:
    "Noto Sans KR", "Apple SD Gothic Neo",
    "Malgun Gothic", sans-serif;
  color: #344459;
  font-size: 14px;
  line-height: 1.8;
  overflow-wrap: anywhere;
}

.corporate-members * {
  box-sizing: border-box;
}

.corporate-members :is(h4, p, a, span) {
  font-family: inherit;
}

/* 가입안내 */
.corporate-members .corp-guide {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px 24px;
  padding: 25px 26px;
  margin-bottom: 28px;
  border: 1px solid #dfe9f5;
  border-radius: 13px;
  background: #f2f7fd;
}

.corporate-members h4 {
  margin: 0;
  color: #203249;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -.5px;
}

.corporate-members .corp-guide p {
  margin: 5px 0 0;
  font-size: 13px;
  line-height: 1.7;
  color: #78879c;
}

.corporate-members .corp-guide__actions {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.corporate-members .corp-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 41px;
  padding: 0 15px;
  border: 1px solid #d5e1ef;
  border-radius: 7px;
  background: #fff;
  color: #4a6486;
  text-decoration: none;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
}

.corporate-members .corp-button--primary {
  border-color: #1657a7;
  background: #1657a7;
  color: #fff;
}

.corporate-members .corp-button:hover {
  background: #e9f1fb;
  color: #1657a7;
}

.corporate-members .corp-button--primary:hover {
  background: #104684;
  color: #fff;
}

.corporate-members .corp-guide .corp-guide__note {
  grid-column: 1 / -1;
  padding-top: 13px;
  margin: 0;
  border-top: 1px solid #dfe8f3;
  font-size: 12px;
}

/* 목록 제목 */
.corporate-members .corp-directory__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 17px;
}

.corporate-members .corp-directory__head h4 {
  display: flex;
  align-items: center;
  gap: 10px;
}

.corporate-members .corp-directory__head h4::before {
  content: "";
  width: 4px;
  height: 19px;
  border-radius: 2px;
  background: #1657a7;
}

.corporate-members .corp-directory__head > span {
  font-size: 12px;
  color: #8c99ab;
}

/* 기관 카드 */
.corporate-members .corp-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.corporate-members .corp-grid > li {
  min-width: 0;
  margin: 0;
  padding: 0;
}

.corporate-members .corp-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  height: 100%;
  min-height: 178px;
  padding: 17px 18px 18px;
  border: 1px solid #e1e8f1;
  border-radius: 11px;
  background: #fff;
  color: #3c526f;
  text-decoration: none;
  transition:
    border-color .15s,
    box-shadow .15s,
    transform .15s;
}

.corporate-members a.corp-card:hover {
  border-color: #99b9e2;
  box-shadow: 0 5px 18px rgba(22, 87, 167, .08);
  transform: translateY(-2px);
}

.corporate-members .corp-card__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 94px;
  margin-bottom: 12px;
  padding: 8px;
}

.corporate-members .corp-card__logo img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 78px;
  object-fit: contain;
}

.corporate-members .corp-card__name {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  width: 100%;
  padding-top: 12px;
  border-top: 1px solid #eef2f7;
  color: #53667f;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}

.corporate-members .corp-card__fallback {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
  color: #385b87;
  text-align: center;
}

.corporate-members .corp-card--unavailable {
  background: #fafbfd;
}

.corporate-members .corp-card__status {
  font-size: 10px;
  color: #96a3b5;
  margin-top: 3px;
}

.corporate-members .corp-actions {
  display: flex;
  justify-content: center;
  padding: 25px 0 8px;
}

.corporate-members .corp-actions .corp-button {
  min-width: 90px;
}

.corporate-members a:focus-visible {
  outline: 3px solid #8db7e9;
  outline-offset: 3px;
}

/* 태블릿 */
@media (max-width: 1100px) {
  .corporate-members .corp-guide {
    grid-template-columns: 1fr;
    padding: 22px;
    gap: 15px;
  }

  .corporate-members .corp-guide__actions {
    justify-content: flex-start;
  }

  .corporate-members .corp-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}

/* 모바일 */
@media (max-width: 760px) {
  #container:has(.corporate-members) .content-title {
    font-size: 24px;
  }

  .corporate-members .corp-guide {
    padding: 20px 18px;
    margin-bottom: 22px;
  }

  .corporate-members h4 {
    font-size: 17px;
  }

  .corporate-members .corp-guide__actions {
    gap: 6px;
  }

  .corporate-members .corp-button {
    padding: 0 12px;
    font-size: 11px;
    min-height: 39px;
  }

  .corporate-members .corp-directory__head {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  .corporate-members .corp-directory__head > span {
    font-size: 11px;
  }

  .corporate-members .corp-grid {
    gap: 9px;
  }

  .corporate-members .corp-card {
    padding: 12px 10px 14px;
    min-height: 158px;
    border-radius: 9px;
  }

  .corporate-members .corp-card__logo {
    height: 78px;
    padding: 4px;
    margin-bottom: 8px;
  }

  .corporate-members .corp-card__logo img {
    max-height: 63px;
  }

  .corporate-members .corp-card__name {
    font-size: 11px;
    padding-top: 9px;
  }

  .corporate-members .corp-card__fallback {
    font-size: 13px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .corporate-members .corp-card {
    transition: none;
  }

  .corporate-members a.corp-card:hover {
    transform: none;
  }
}







/* ===================================================================
	찬조회원 페이지
   =================================================================== */
#container:has(.supporting-members) .sub-body__main {
  min-width: 0;
}

#container:has(.supporting-members) .content-title {
  font-size: 28px;
  line-height: 1.4;
  color: #203249;
  letter-spacing: -1px;
  margin-bottom: 24px;
  padding: 0 0 0 15px;
  border: 0;
  border-left: 4px solid #1657a7;
}

#container .box:has(.supporting-members) {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.supporting-members {
  font-family:
    "Noto Sans KR", "Apple SD Gothic Neo",
    "Malgun Gothic", sans-serif;
  color: #344459;
  font-size: 14px;
  line-height: 1.8;
  overflow-wrap: anywhere;
}

.supporting-members * {
  box-sizing: border-box;
}

.supporting-members :is(h4, p, span, a) {
  font-family: inherit;
}

/* 상단 안내 */
.supporting-members .support-intro {
  padding: 26px 28px;
  margin-bottom: 27px;
  border: 1px solid #dfe9f5;
  border-radius: 13px;
  background: #f2f7fd;
}

.supporting-members .support-intro__label {
  display: block;
  color: #1657a7;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  margin-bottom: 7px;
}

.supporting-members .support-intro h4 {
  margin: 0;
  color: #203249;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -.6px;
}

.supporting-members .support-intro p {
  margin: 7px 0 0;
  color: #7b899e;
  font-size: 13px;
  line-height: 1.7;
}

/* 목록 제목 */
.supporting-members .support-directory__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 17px;
}

.supporting-members .support-directory__head h4 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: #203249;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -.4px;
}

.supporting-members .support-directory__head h4::before {
  content: "";
  width: 4px;
  height: 18px;
  border-radius: 2px;
  background: #1657a7;
}

.supporting-members .support-directory__head > span {
  font-size: 12px;
  color: #8a98ab;
}

/* 기관 카드 */
.supporting-members .support-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.supporting-members .support-card {
  display: flex;
  align-items: center;
  gap: 18px;
  min-width: 0;
  min-height: 100px;
  margin: 0;
  padding: 23px 25px;
  border: 1px solid #e1e8f1;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 3px 15px rgba(32, 50, 73, .025);
}

.supporting-members .support-card__number {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #edf3fb;
  color: #1657a7;
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.supporting-members .support-card__name {
  color: #3b536f;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: -.3px;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

/* 위로 버튼 */
.supporting-members .support-actions {
  display: flex;
  justify-content: center;
  padding: 25px 0 8px;
}

.supporting-members .support-top {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 90px;
  min-height: 42px;
  padding: 0 20px;
  border: 1px solid #d7e2ef;
  border-radius: 8px;
  background: #fff;
  color: #677b95;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
}

.supporting-members .support-top:hover {
  background: #edf3fa;
  color: #1657a7;
}

.supporting-members .support-top:focus-visible {
  outline: 3px solid #8db7e9;
  outline-offset: 3px;
}

/* 태블릿 */
@media (max-width: 1100px) {
  .supporting-members .support-card {
    padding: 20px;
    gap: 14px;
  }

  .supporting-members .support-card__name {
    font-size: 14px;
  }
}

/* 모바일 */
@media (max-width: 760px) {
  #container:has(.supporting-members) .content-title {
    font-size: 24px;
  }

  .supporting-members .support-intro {
    padding: 21px 20px;
    margin-bottom: 23px;
  }

  .supporting-members .support-intro h4 {
    font-size: 20px;
  }

  .supporting-members .support-intro p {
    font-size: 12px;
  }

  .supporting-members .support-directory__head {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  .supporting-members .support-directory__head h4 {
    font-size: 17px;
  }

  .supporting-members .support-directory__head > span {
    font-size: 11px;
  }

  .supporting-members .support-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .supporting-members .support-card {
    min-height: 82px;
    padding: 18px;
    gap: 14px;
    border-radius: 10px;
  }

  .supporting-members .support-card__number {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
  }

  .supporting-members .support-card__name {
    font-size: 14px;
  }
}






/* ===================================================================
	회원검색
   =================================================================== */
#container:has(.member-search-page) .sub-body__main {
  min-width: 0;
}

#container:has(.member-search-page) .content-title {
  font-size: 28px;
  line-height: 1.4;
  color: #203249;
  letter-spacing: -1px;
  padding: 0 0 0 15px;
  margin-bottom: 24px;
  border: 0;
  border-left: 4px solid #1657a7;
}

#container .box:has(.member-search-page) {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.member-search-page {
  font-family:
    "Noto Sans KR", "Apple SD Gothic Neo",
    "Malgun Gothic", sans-serif;
  color: #344459;
  font-size: 14px;
  line-height: 1.8;
  overflow-wrap: anywhere;
}

.member-search-page * {
  box-sizing: border-box;
}

.member-search-page :is(h4, p, li, dt, dd, label, input, button, a, span, th, td) {
  font-family: inherit;
}

/* 상단 회원 수 */
.member-search-page .ms-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 18px;
  padding: 26px 28px;
  border: 1px solid #dfe9f5;
  border-radius: 13px;
  background: #f2f7fd;
}

.member-search-page .ms-summary__label {
  display: block;
  color: #1657a7;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.3px;
}

.member-search-page .ms-summary h4 {
  margin: 4px 0 5px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  color: #203249;
}

.member-search-page .ms-summary p {
  margin: 0;
  font-size: 12px;
  color: #7e8da1;
}

.member-search-page .ms-summary dl {
  display: flex;
  gap: 32px;
  margin: 0;
}

.member-search-page .ms-summary dl > div + div {
  padding-left: 30px;
  border-left: 1px solid #dce6f3;
}

.member-search-page .ms-summary dt {
  color: #7a8ba2;
  font-size: 12px;
}

.member-search-page .ms-summary dd {
  margin: 4px 0 0;
  font-size: 26px;
  line-height: 1.4;
  color: #1657a7;
  font-weight: 700;
  letter-spacing: -.7px;
  font-variant-numeric: tabular-nums;
}

.member-search-page .ms-summary dd span {
  font-size: 12px;
  margin-left: 5px;
  font-weight: 400;
  color: #8e9db1;
}

.member-search-page .ms-notices {
  margin: 0 0 23px;
  padding: 0 0 0 18px;
  color: #7b899d;
  font-size: 12px;
  line-height: 1.85;
  list-style: disc;
}

.member-search-page .ms-notices li {
  margin: 3px 0;
}

/* 검색 폼 */
.member-search-page .ms-form {
  margin: 0 0 28px;
  padding: 25px 26px 22px;
  border: 1px solid #e1e8f0;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 4px 20px rgba(32, 50, 73, .025);
}

.member-search-page .ms-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 22px;
}

.member-search-page .ms-field {
  min-width: 0;
}

.member-search-page .ms-field label {
  display: block;
  margin: 0 0 7px;
  font-size: 13px;
  color: #4a5f7a;
  font-weight: 600;
  line-height: 1.5;
}

.member-search-page .ms-field input[type="text"] {
  display: block;
  width: 100%;
  min-width: 0;
  height: 43px;
  margin: 0;
  padding: 0 13px;
  border: 1px solid #d8e2ef;
  border-radius: 7px;
  background: #fafbfd;
  color: #344d6d;
  font-size: 13px;
  line-height: normal;
}

.member-search-page .ms-field input::placeholder {
  color: #a0acbd;
}

.member-search-page .ms-field input:focus {
  outline: 2px solid #a6c4eb;
  outline-offset: 1px;
  border-color: #6f9fd6;
  background: #fff;
}

.member-search-page .ms-major {
  display: flex;
  align-items: center;
  gap: 6px;
}

.member-search-page .ms-major input {
  flex: 1;
  cursor: pointer;
}

.member-search-page .ms-major button {
  flex-shrink: 0;
  height: 43px;
  padding: 0 12px;
  border: 1px solid #d8e2ef;
  border-radius: 7px;
  background: #fff;
  color: #607793;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}

.member-search-page .ms-major .ms-major__choose {
  background: #edf3fa;
  color: #1657a7;
  border-color: #d4e2f4;
}

.member-search-page .ms-form__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid #eef2f7;
}

.member-search-page .ms-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  min-width: 87px;
  padding: 0 18px;
  border: 1px solid #d6e1ee;
  border-radius: 8px;
  background: #fff;
  color: #6a7d96;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  cursor: pointer;
}

.member-search-page .ms-button--primary {
  min-width: 116px;
  border-color: #1657a7;
  background: #1657a7;
  color: #fff;
}

.member-search-page .ms-button--primary:hover {
  background: #104684;
}

/* 결과 영역 */
.member-search-page .ms-results__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 15px;
}

.member-search-page .ms-results__head h4 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: #203249;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}

.member-search-page .ms-results__head h4::before {
  content: "";
  width: 4px;
  height: 18px;
  border-radius: 2px;
  background: #1657a7;
}

.member-search-page .ms-results__head > span {
  color: #8d9aab;
  font-size: 11px;
}

.member-search-page .ms-empty {
  padding: 39px 20px;
  border: 1px solid #e1e8f0;
  border-radius: 12px;
  background: #fafbfd;
  text-align: center;
}

.member-search-page .ms-empty strong {
  font-size: 15px;
  font-weight: 600;
  color: #5d7390;
}

.member-search-page .ms-empty p {
  margin: 7px 0 0;
  color: #99a6b8;
  font-size: 12px;
}

/* 실제 데이터 표만 유지 */
.member-search-page .ms-table-scroll {
  overflow-x: auto;
  border: 1px solid #e1e8f0;
  border-radius: 10px;
  background: #fff;
}

.member-search-page .ms-table {
  width: 100%;
  min-width: 680px;
  table-layout: fixed;
  border: 0;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 13px;
}

.member-search-page .ms-table caption {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

.member-search-page .ms-col-name { width: 11%; }
.member-search-page .ms-col-type { width: 13%; }
.member-search-page .ms-col-affiliation { width: 27%; }
.member-search-page .ms-col-position { width: 12%; }
.member-search-page .ms-col-major { width: 25%; }
.member-search-page .ms-col-profile { width: 12%; }

.member-search-page .ms-table th {
  padding: 13px 10px;
  border: 0;
  border-bottom: 1px solid #dfe8f4;
  background: #edf3fa;
  color: #4a6485;
  font-weight: 600;
  text-align: center;
  font-size: 12px;
}

.member-search-page .ms-table td {
  padding: 17px 10px;
  border: 0;
  border-bottom: 1px solid #e9eef5;
  background: #fff;
  color: #728197;
  line-height: 1.65;
  word-break: normal;
  text-align: center;
}

.member-search-page .ms-table td:nth-child(1) {
  color: #2f4b70;
  font-weight: 600;
}

.member-search-page .ms-table td:nth-child(3),
.member-search-page .ms-table td:nth-child(5) {
  text-align: left;
}

.member-search-page .ms-table tr:last-child td {
  border-bottom: 0;
}

.member-search-page .ms-profile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 31px;
  padding: 0 9px;
  border: 1px solid #d8e5f5;
  border-radius: 6px;
  background: #f0f5fc;
  color: #1657a7;
  font-size: 11px;
  line-height: 1.5;
  cursor: pointer;
  text-decoration: none;
}

/* 페이지 번호 */
.member-search-page .ms-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  flex-wrap: wrap;
  padding: 22px 0 5px;
}

.member-search-page .ms-pagination :is(a, b) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  min-height: 35px;
  padding: 0 8px;
  border-radius: 7px;
  color: #71829a;
  text-decoration: none;
  font-size: 12px;
}

.member-search-page .ms-pagination b {
  background: #1657a7;
  color: #fff;
}

.member-search-page .ms-pagination a:hover {
  background: #edf3fa;
  color: #1657a7;
}

.member-search-page :is(a, button):focus-visible {
  outline: 3px solid #8db7e9;
  outline-offset: 3px;
}

/* 반응형 */
@media (max-width: 1100px) {
  .member-search-page .ms-summary {
    padding: 22px;
    gap: 18px;
  }

  .member-search-page .ms-summary dl {
    gap: 18px;
  }

  .member-search-page .ms-summary dl > div + div {
    padding-left: 18px;
  }

  .member-search-page .ms-form {
    padding: 22px;
  }

  .member-search-page .ms-fields {
    gap: 16px;
  }
}

@media (max-width: 760px) {
  #container:has(.member-search-page) .content-title {
    font-size: 24px;
  }

  .member-search-page .ms-summary {
    display: block;
    padding: 20px;
  }

  .member-search-page .ms-summary dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 16px;
    padding-top: 15px;
    border-top: 1px solid #dce6f3;
  }

  .member-search-page .ms-summary dl > div + div {
    padding-left: 15px;
  }

  .member-search-page .ms-summary dd {
    font-size: 24px;
  }

  .member-search-page .ms-notices {
    font-size: 11px;
  }

  .member-search-page .ms-form {
    padding: 20px 18px;
  }

  .member-search-page .ms-fields {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .member-search-page .ms-results__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
  }

  .member-search-page .ms-empty {
    padding: 30px 18px;
  }

  .member-search-page .ms-empty strong {
    font-size: 14px;
  }
}









/* ===================================================================
	지회업무 매뉴얼
   =================================================================== */
#container:has(.branch-manual) .sub-body__main {
  min-width: 0;
}

#container:has(.branch-manual) .content-title {
  font-size: 28px;
  line-height: 1.4;
  color: #203249;
  letter-spacing: -1px;
  padding: 0 0 0 15px;
  margin-bottom: 24px;
  border: 0;
  border-left: 4px solid #1657a7;
}

#container .box:has(.branch-manual) {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.branch-manual {
  font-family:
    "Noto Sans KR", "Apple SD Gothic Neo",
    "Malgun Gothic", sans-serif;
  color: #51667f;
  font-size: 14px;
  line-height: 1.9;
  overflow-wrap: anywhere;
}

.branch-manual * {
  box-sizing: border-box;
}

.branch-manual :is(h4, p, a, span, dt, dd, summary, th, td) {
  font-family: inherit;
}

/* 상단 안내 */
.branch-manual .bm-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 26px 28px;
  margin-bottom: 25px;
  border: 1px solid #dfe9f5;
  border-radius: 13px;
  background: #f2f7fd;
}

.branch-manual .bm-intro__label {
  font-size: 10px;
  font-weight: 700;
  color: #1657a7;
  letter-spacing: 1.3px;
}

.branch-manual .bm-intro h4 {
  margin: 5px 0 6px;
  color: #203249;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -.5px;
}

.branch-manual .bm-intro p {
  margin: 0;
  color: #7f8da2;
  font-size: 13px;
  line-height: 1.7;
}

.branch-manual .bm-download {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  flex-shrink: 0;
  min-height: 44px;
  padding: 0 17px;
  border: 1px solid #1657a7;
  border-radius: 8px;
  background: #1657a7;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  line-height: 1.5;
}

.branch-manual .bm-download span {
  font-size: 9px;
  font-weight: 500;
  padding: 2px 5px;
  border-radius: 3px;
  background: rgba(255, 255, 255, .16);
}

.branch-manual .bm-download:hover {
  background: #104684;
}

/* 접기·펼치기 */
.branch-manual .bm-accordion {
  display: grid;
  gap: 12px;
}

.branch-manual .bm-item {
  border: 1px solid #e1e8f0;
  border-radius: 11px;
  background: #fff;
  overflow: hidden;
  scroll-margin-top: 110px;
}

.branch-manual .bm-item > summary {
  display: flex;
  align-items: center;
  gap: 15px;
  min-height: 69px;
  padding: 17px 23px;
  cursor: pointer;
  list-style: none;
}

.branch-manual .bm-item > summary::-webkit-details-marker {
  display: none;
}

.branch-manual .bm-item > summary::after {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 1.5px solid #8296b1;
  border-bottom: 1.5px solid #8296b1;
  transform: rotate(45deg);
  flex-shrink: 0;
  margin-left: auto;
  margin-right: 3px;
}

.branch-manual .bm-item[open] > summary {
  background: #f4f8fd;
  border-bottom: 1px solid #e1eaf5;
}

.branch-manual .bm-item[open] > summary::after {
  transform: rotate(225deg);
  border-color: #1657a7;
}

.branch-manual .bm-number {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: #edf3fb;
  color: #1657a7;
  font-size: 11px;
  font-weight: 700;
}

.branch-manual .bm-title {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.6;
  color: #3a5474;
  letter-spacing: -.3px;
}

.branch-manual .bm-item > summary:hover .bm-title {
  color: #1657a7;
}

.branch-manual .bm-body {
  padding: 24px 27px 27px;
}

/* 지회 현황 */
.branch-manual .bm-branches {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}

.branch-manual .bm-branches > div {
  padding: 16px 18px;
  border: 1px solid #e6ecf4;
  border-radius: 8px;
  background: #fafbfd;
}

.branch-manual .bm-branches dt {
  font-size: 13px;
  font-weight: 600;
  color: #385578;
}

.branch-manual .bm-branches dd {
  margin: 4px 0 0;
  font-size: 12px;
  line-height: 1.7;
  color: #7b8ba1;
}

/* 규정 요약 */
.branch-manual .bm-facts {
  margin: 0;
}

.branch-manual .bm-facts > div {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 22px;
  padding: 13px 0;
  border-bottom: 1px solid #edf1f6;
}

.branch-manual .bm-facts > div:first-child {
  padding-top: 0;
}

.branch-manual .bm-facts > div:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.branch-manual .bm-facts dt {
  font-size: 13px;
  font-weight: 600;
  color: #3b5778;
}

.branch-manual .bm-facts dd {
  margin: 0;
  font-size: 13px;
  line-height: 1.9;
}

.branch-manual .bm-text {
  font-size: 13px;
  line-height: 2.05;
  color: #647991;
}

.branch-manual .bm-text strong {
  font-weight: 600;
  color: #365577;
}

/* 예산·결산 표 */
.branch-manual .bm-table-scroll {
  overflow-x: auto;
  margin: 15px 0 22px;
  border: 1px solid #dee7f2;
  border-radius: 8px;
}

.branch-manual .bm-table {
  width: 100%;
  min-width: 600px;
  table-layout: fixed;
  border-collapse: collapse;
  border: 0;
  font-size: 12px;
}

.branch-manual .bm-table caption {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

.branch-manual .bm-table th {
  padding: 10px 12px;
  border: 1px solid #dfe8f4;
  background: #edf3fa;
  font-weight: 600;
  color: #4c6686;
  line-height: 1.6;
}

.branch-manual .bm-table td {
  padding: 10px 12px;
  border: 1px solid #e5ebf4;
  background: #fff;
  color: #73859c;
  line-height: 1.6;
}

.branch-manual .bm-table td.bg01 {
  background: #f6f9fd;
  color: #3b5a80;
  font-weight: 600;
}

/* 위로 버튼 */
.branch-manual .bm-actions {
  display: flex;
  justify-content: center;
  padding: 24px 0 8px;
}

.branch-manual .bm-top {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 41px;
  min-width: 90px;
  padding: 0 20px;
  border: 1px solid #d7e2ef;
  border-radius: 8px;
  background: #fff;
  color: #6b7f98;
  text-decoration: none;
  font-size: 12px;
  font-weight: 600;
}

.branch-manual :is(a, summary):focus-visible {
  outline: 3px solid #8db7e9;
  outline-offset: 3px;
}

/* 반응형 */
@media (max-width: 1100px) {
  .branch-manual .bm-intro {
    padding: 22px;
    gap: 18px;
  }

  .branch-manual .bm-body {
    padding: 22px;
  }

  .branch-manual .bm-facts > div {
    grid-template-columns: 145px minmax(0, 1fr);
    gap: 16px;
  }
}

@media (max-width: 760px) {
  #container:has(.branch-manual) .content-title {
    font-size: 24px;
  }

  .branch-manual .bm-intro {
    display: block;
    padding: 21px 20px;
    margin-bottom: 20px;
  }

  .branch-manual .bm-intro h4 {
    font-size: 20px;
  }

  .branch-manual .bm-intro p {
    font-size: 12px;
  }

  .branch-manual .bm-download {
    margin-top: 17px;
  }

  .branch-manual .bm-item > summary {
    min-height: 63px;
    padding: 15px 16px;
    gap: 11px;
  }

  .branch-manual .bm-title {
    font-size: 14px;
  }

  .branch-manual .bm-number {
    width: 29px;
    height: 29px;
    flex-basis: 29px;
  }

  .branch-manual .bm-body {
    padding: 19px 17px;
  }

  .branch-manual .bm-branches {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .branch-manual .bm-branches > div {
    padding: 14px 16px;
  }

  .branch-manual .bm-facts > div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .branch-manual .bm-text {
    font-size: 12px;
  }
}




/* ===================================================================
	부문·지회 공용 명단
   =================================================================== */
#container:has(.committee-roster) .sub-body__main {
  min-width: 0;
}

#container:has(.committee-roster) .content-title {
  font-size: 28px;
  line-height: 1.4;
  color: #203249;
  letter-spacing: -1px;
  margin-bottom: 24px;
  padding: 0 0 0 15px;
  border: 0;
  border-left: 4px solid #1657a7;
}

#container .box:has(.committee-roster) {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.committee-roster {
  font-family:
    "Noto Sans KR", "Apple SD Gothic Neo",
    "Malgun Gothic", sans-serif;
  color: #536980;
  font-size: 14px;
  line-height: 1.8;
  overflow-wrap: anywhere;
}

.committee-roster * {
  box-sizing: border-box;
}

.committee-roster :is(h4, h5, p, a, span, strong, select, button, label) {
  font-family: inherit;
}

/* 상단 안내 */
.committee-roster .cr-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 25px 28px;
  border: 1px solid #dfe9f5;
  border-radius: 13px;
  background: #f2f7fd;
  margin-bottom: 22px;
}

.committee-roster .cr-intro__label {
  color: #1657a7;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.2px;
}

.committee-roster .cr-intro h4 {
  margin: 5px 0;
  color: #203249;
  font-size: 24px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: -.6px;
}

.committee-roster .cr-intro p {
  margin: 0;
  font-size: 13px;
  color: #8190a5;
}

.committee-roster .cr-count {
  flex-shrink: 0;
  padding-left: 24px;
  border-left: 1px solid #dce7f4;
  font-size: 12px;
  color: #8292a8;
}

.committee-roster .cr-count strong {
  font-size: 29px;
  font-weight: 700;
  color: #1657a7;
  margin: 0 5px;
  line-height: 1.3;
  font-variant-numeric: tabular-nums;
}

/* 본문 탭 */
.committee-roster .cr-tabs {
  display: flex;
  gap: 6px;
  margin: 0 0 22px;
  padding: 6px;
  border: 1px solid #e0e8f1;
  border-radius: 10px;
  background: #f4f7fb;
}

.committee-roster .cr-tabs > a {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  min-height: 43px;
  padding: 9px 15px;
  border-radius: 6px;
  color: #718299;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  line-height: 1.5;
}

.committee-roster .cr-tabs > a:hover {
  background: #e9f0fa;
  color: #1657a7;
}

.committee-roster .cr-tabs > a.is-active {
  background: #1657a7;
  color: #fff;
}

/* 연도 선택 */
.committee-roster .cr-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin: 0 0 15px;
  padding: 0;
}

.committee-roster .cr-toolbar__title {
  color: #3a5373;
  font-size: 16px;
  font-weight: 600;
}

.committee-roster .cr-toolbar > div {
  display: flex;
  align-items: center;
  gap: 8px;
}

.committee-roster .cr-toolbar label {
  font-size: 12px;
  color: #8a98ab;
}

.committee-roster .cr-toolbar select {
  height: 37px;
  min-width: 100px;
  padding: 0 12px;
  border: 1px solid #d7e2ef;
  border-radius: 7px;
  background: #fff;
  color: #4e6787;
  font-size: 12px;
}

.committee-roster .cr-toolbar button {
  height: 37px;
  padding: 0 14px;
  border: 1px solid #d7e2ef;
  border-radius: 7px;
  background: #edf3fa;
  color: #1657a7;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

/* 직책별 카드 */
.committee-roster .cr-role-list {
  display: grid;
  gap: 12px;
}

.committee-roster .cr-role {
  display: grid;
  grid-template-columns: 155px minmax(0, 1fr);
  border: 1px solid #e1e8f1;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}

.committee-roster .cr-role h5 {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  margin: 0;
  padding: 23px 22px;
  border-right: 1px solid #e7edf5;
  background: #f7f9fc;
  color: #416083;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.7;
}

.committee-roster .cr-people {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 22px;
  margin: 0;
  padding: 22px 24px;
  list-style: none;
}

.committee-roster .cr-people li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  min-width: 0;
  margin: 0;
  padding: 0;
}

.committee-roster .cr-people strong {
  font-size: 14px;
  font-weight: 600;
  color: #365172;
  line-height: 1.6;
}

.committee-roster .cr-people span {
  color: #8a98ab;
  font-size: 12px;
  line-height: 1.6;
}

.committee-roster .cr-empty {
  padding: 42px 20px;
  border: 1px solid #e1e8f1;
  border-radius: 10px;
  background: #fafbfd;
  color: #8b9bb0;
  text-align: center;
}

/* 위로 버튼 */
.committee-roster .cr-actions {
  display: flex;
  justify-content: center;
  padding: 24px 0 8px;
}

.committee-roster .cr-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 90px;
  min-height: 41px;
  padding: 0 20px;
  border: 1px solid #d7e2ef;
  border-radius: 8px;
  background: #fff;
  color: #6e819b;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
}

.committee-roster :is(a, button, select):focus-visible {
  outline: 3px solid #8db7e9;
  outline-offset: 3px;
}

/* 태블릿 */
@media (max-width: 1100px) {
  .committee-roster .cr-intro {
    padding: 22px;
  }

  .committee-roster .cr-role {
    grid-template-columns: 130px minmax(0, 1fr);
  }

  .committee-roster .cr-role h5 {
    padding: 20px 18px;
  }

  .committee-roster .cr-people {
    padding: 20px;
    gap: 12px 18px;
  }
}

/* 모바일 */
@media (max-width: 760px) {
  #container:has(.committee-roster) .content-title {
    font-size: 24px;
  }

  .committee-roster .cr-intro {
    display: block;
    padding: 21px 20px;
  }

  .committee-roster .cr-intro h4 {
    font-size: 22px;
  }

  .committee-roster .cr-count {
    display: block;
    padding: 12px 0 0;
    margin-top: 13px;
    border: 0;
    border-top: 1px solid #dce7f4;
  }

  .committee-roster .cr-count strong {
    font-size: 24px;
  }

  .committee-roster .cr-tabs {
    gap: 4px;
    padding: 4px;
    flex-wrap: wrap;
  }

  .committee-roster .cr-tabs > a {
    padding: 8px;
    font-size: 12px;
    min-height: 39px;
    flex-basis: calc(50% - 4px);
  }

  .committee-roster .cr-toolbar {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  .committee-roster .cr-toolbar > div {
    width: 100%;
    justify-content: flex-end;
  }

  .committee-roster .cr-role {
    grid-template-columns: 1fr;
  }

  .committee-roster .cr-role h5 {
    border-right: 0;
    border-bottom: 1px solid #e7edf5;
    padding: 13px 17px;
    font-size: 13px;
  }

  .committee-roster .cr-people {
    padding: 17px;
    gap: 14px;
  }

  .committee-roster .cr-people strong {
    font-size: 13px;
  }

  .committee-roster .cr-people span {
    font-size: 11px;
  }
}






/* ========================================
   부문·지회 소개 페이지
======================================== */

#container:has(.committee-intro) .sub-body__main {
    min-width: 0;
}

#container:has(.committee-intro) .content-title {
    margin-bottom: 24px;
    padding: 0 0 0 15px;
    border: 0;
    border-left: 4px solid #1657a7;
    color: #203249;
    font-size: 28px;
    line-height: 1.4;
    letter-spacing: -1px;
}

#container .box:has(.committee-intro) {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.committee-intro {
    --ci-blue: #1657a7;
    --ci-ink: #203249;
    --ci-line: #e0e8f1;

    font-family:
        "Noto Sans KR",
        "Apple SD Gothic Neo",
        "Malgun Gothic",
        sans-serif;

    color: #51677f;
    font-size: 15px;
    line-height: 1.9;
    overflow-wrap: anywhere;
}

.committee-intro *,
.committee-intro *::before,
.committee-intro *::after {
    box-sizing: border-box;
}

.committee-intro :is(
    h4,
    p,
    span,
    a,
    button,
    label,
    textarea
) {
    font-family: inherit;
}


/* 상단 안내 영역 */

.committee-intro .ci-head {
    padding: 24px 28px;
    margin: 0 0 22px;
    border: 1px solid #dfe9f5;
    border-radius: 12px;
    background: #f2f7fd;
}

.committee-intro .ci-head__label {
    color: var(--ci-blue);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.3px;
}

.committee-intro .ci-head h4 {
    margin: 5px 0;
    color: var(--ci-ink);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: -0.6px;
}

.committee-intro .ci-head p {
    margin: 0;
    color: #718299;
    font-size: 13px;
}


/* 텍스트 탭 */

.committee-intro .ci-tabs {
    display: flex;
    gap: 6px;
    margin: 0 0 22px;
    padding: 6px;
    border: 1px solid var(--ci-line);
    border-radius: 10px;
    background: #f4f7fb;
}

.committee-intro .ci-tabs a {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    min-width: 0;
    min-height: 44px;
    padding: 9px 12px;
    border-radius: 6px;
    color: #5d7089;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    text-decoration: none;
    transition:
        background 0.15s,
        color 0.15s;
}

.committee-intro .ci-tabs a.is-active {
    background: var(--ci-blue);
    color: #fff;
}

.committee-intro .ci-tabs a:hover:not(.is-active) {
    background: #e9f0fa;
    color: var(--ci-blue);
}

.committee-intro #ciForm {
    margin: 0;
}


/* 소개 본문 */

.committee-intro .ci-article {
    padding: 30px 34px;
    border: 1px solid var(--ci-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 20px rgba(32, 50, 73, 0.025);
    line-height: 2;
}

/*
    저장된 본문의 HTML은 그대로 두고
    기존 font/인라인 글꼴만 읽기 화면에서 통일합니다.
*/
.committee-intro .ci-article :is(font, span) {
    font-family: inherit !important;
    font-size: inherit !important;
    line-height: inherit !important;
}

.committee-intro .ci-article p {
    margin: 0 0 22px;
}

.committee-intro .ci-article p:last-child {
    margin-bottom: 0;
}

.committee-intro .ci-article p[align="center"]:has(b) {
    margin: 0 0 20px;
    padding: 14px 20px;
    border-left: 3px solid var(--ci-blue);
    border-radius: 0 8px 8px 0;
    background: #f6f9fd;
    color: #35577f;
    font-size: 20px;
    line-height: 1.6;
    text-align: left;
}

.committee-intro .ci-article img {
    max-width: 100% !important;
    height: auto !important;
}

.committee-intro .ci-article table {
    max-width: 100%;
}

.committee-intro .ci-article a {
    color: var(--ci-blue);
    text-underline-offset: 3px;
}

.committee-intro .ci-article .ci-empty {
    padding: 65px 10px;
    margin: 0;
    text-align: center;
    color: #718299;
}


/* 관리자 편집 영역 */

.committee-intro .ci-editor {
    padding: 24px;
    border: 1px solid var(--ci-line);
    border-radius: 12px;
    background: #fff;
}

.committee-intro .ci-editor__label {
    display: block;
    color: var(--ci-ink);
    font-size: 17px;
    font-weight: 700;
}

.committee-intro .ci-editor__hint {
    margin: 6px 0 16px;
    color: #718299;
    font-size: 13px;
}

.committee-intro .ci-editor textarea {
    display: block;
    width: 100%;
    min-height: 500px;
    padding: 16px;
    border: 1px solid #cad6e4;
    border-radius: 8px;
    background: #fff;
    color: var(--ci-ink);
    font-size: 14px;
    line-height: 1.8;
    resize: vertical;
}

/* 구형 HTMLArea가 생성하는 영역에도 폭 적용 */
.committee-intro .ci-editor .htmlarea {
    max-width: 100%;
}

.committee-intro .ci-editor iframe {
    max-width: 100%;
}


/* 등록·저장·취소 버튼 */

.committee-intro .ci-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

.committee-intro .ci-publish {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-right: auto;
    color: #51677f;
    font-size: 14px;
    cursor: pointer;
}

.committee-intro .ci-publish input {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--ci-blue);
}

.committee-intro .ci-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 20px;
    border: 1px solid #cdd8e6;
    border-radius: 7px;
    background: #fff;
    color: #51677f;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    text-decoration: none;
    cursor: pointer;
}

.committee-intro .ci-button:hover {
    border-color: var(--ci-blue);
    color: var(--ci-blue);
}

.committee-intro .ci-button--primary {
    border-color: var(--ci-blue);
    background: var(--ci-blue);
    color: #fff;
}

.committee-intro .ci-button--primary:hover {
    border-color: #104685;
    background: #104685;
    color: #fff;
}

.committee-intro :is(
    a,
    button,
    textarea,
    input
):focus-visible {
    outline: 3px solid #96bcef;
    outline-offset: 3px;
}


/* 모바일 */

@media (max-width: 767px) {
    #container:has(.committee-intro) .content-title {
        font-size: 23px;
        margin-bottom: 18px;
    }

    .committee-intro .ci-head {
        padding: 20px;
        margin-bottom: 16px;
    }

    .committee-intro .ci-head h4 {
        font-size: 21px;
    }

    .committee-intro .ci-tabs {
        gap: 3px;
        padding: 4px;
        margin-bottom: 16px;
    }

    .committee-intro .ci-tabs a {
        min-height: 42px;
        padding: 8px 6px;
        font-size: 13px;
    }

    .committee-intro .ci-article {
        padding: 22px 20px;
        font-size: 14px;
    }

    .committee-intro .ci-editor {
        padding: 20px;
    }

    .committee-intro .ci-editor textarea {
        min-height: 380px;
    }

    .committee-intro .ci-publish {
        flex-basis: 100%;
        margin-bottom: 2px;
    }

    .committee-intro .ci-button {
        padding: 10px 16px;
    }
}







/* ========================================
   부문·지회 게시판
======================================== */

#container:has(.committee-board) .sub-body__main {
    min-width: 0;
}

#container:has(.committee-board) .content-title {
    margin-bottom: 24px;
    padding: 0 0 0 15px;
    border: 0;
    border-left: 4px solid #1657a7;
    color: #203249;
    font-size: 28px;
    line-height: 1.4;
    letter-spacing: -1px;
}

#container .box:has(.committee-board) {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.committee-board {
    --cb-blue: #1657a7;
    --cb-ink: #203249;
    --cb-line: #e0e8f1;

    font-family:
        "Noto Sans KR",
        "Apple SD Gothic Neo",
        "Malgun Gothic",
        sans-serif;

    color: #51677f;
    font-size: 14px;
    line-height: 1.8;
    min-width: 0;
}

.committee-board *,
.committee-board *::before,
.committee-board *::after {
    box-sizing: border-box;
}

.committee-board :is(
    h4,
    p,
    a,
    button,
    input,
    select,
    textarea
) {
    font-family: inherit;
}


/* 상단 안내 */

.committee-board .cb-head {
    padding: 24px 28px;
    margin: 0 0 22px;
    border: 1px solid #dfe9f5;
    border-radius: 12px;
    background: #f2f7fd;
}

.committee-board .cb-head__label {
    color: var(--cb-blue);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.3px;
}

.committee-board .cb-head h4 {
    margin: 5px 0;
    color: var(--cb-ink);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: -0.6px;
}

.committee-board .cb-head p {
    margin: 0;
    color: #718299;
    font-size: 13px;
}


/* 텍스트 탭 */

.committee-board .cb-tabs {
    display: flex;
    gap: 6px;
    margin: 0 0 22px;
    padding: 6px;
    border: 1px solid var(--cb-line);
    border-radius: 10px;
    background: #f4f7fb;
}

.committee-board .cb-tabs a {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    min-width: 0;
    min-height: 44px;
    padding: 9px 12px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #5d7089;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    text-decoration: none;
    transition:
        background 0.15s,
        color 0.15s;
}

.committee-board .cb-tabs a.is-active {
    background: var(--cb-blue);
    color: #fff;
}

.committee-board .cb-tabs a:hover:not(.is-active) {
    background: #e9f0fa;
    color: var(--cb-blue);
}


/* 게시판 영역 */

.committee-board .cb-panel {
    min-width: 0;
    padding: 26px 30px;
    border: 1px solid var(--cb-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 20px rgba(32, 50, 73, 0.025);
    overflow-x: auto;
}


/*
    기존 include의 목록 테이블만 정리합니다.
    편집기·본문 테이블은 일괄 변경하지 않습니다.
*/

.committee-board .cb-panel table.board01 {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    border: 0;
}

.committee-board .cb-panel .board01 thead th {
    height: 48px;
    padding: 12px 14px;
    border: 0;
    border-bottom: 1px solid var(--cb-line);
    background: #edf3fb;
    color: #35577f;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}

.committee-board .cb-panel .board01 thead th:nth-child(2) {
    text-align: left;
}

.committee-board .cb-panel .board01 tbody td {
    padding: 19px 14px;
    border: 0;
    border-bottom: 1px solid #e7edf5;
    color: #718299;
    font-size: 13px;
    line-height: 1.7;
    text-align: center;
}

.committee-board .cb-panel .board01 tbody td:nth-child(2) {
    text-align: left;
}

.committee-board .cb-panel .board01 tbody td:nth-child(2) a {
    color: var(--cb-ink);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
}

.committee-board .cb-panel .board01 tbody td:nth-child(2) a:hover {
    color: var(--cb-blue);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.committee-board .cb-panel .board01 tbody tr:hover {
    background: #fafcff;
}

.committee-board .cb-panel .board01 tfoot td {
    padding: 20px 0;
    border: 0;
    background: #fff;
}


/* 검색 폼: 기존 동작 및 이미지 버튼 유지 */

.committee-board .cb-panel form[name="search_form"] {
    margin: 8px 0 0;
}

.committee-board .cb-panel form[name="search_form"] select {
    min-height: 40px;
    height: 40px !important;
    width: auto !important;
    min-width: 90px;
    padding: 0 12px;
    border: 1px solid #d2deec;
    border-radius: 6px;
    background-color: #fff;
    color: #51677f;
    font-size: 13px;
}

.committee-board .cb-panel form[name="search_form"] input[type="text"] {
    min-height: 40px;
    height: 40px;
    max-width: 100%;
    padding: 0 12px;
    border: 1px solid #d2deec;
    border-radius: 6px;
    background: #fff;
    color: var(--cb-ink);
    font-size: 14px;
}

.committee-board :is(
    a,
    button,
    input,
    select,
    textarea
):focus-visible {
    outline: 3px solid #96bcef;
    outline-offset: 3px;
}


/* 게시판 하단 페이지 번호 가운데 정렬 */
.committee-board .cb-panel .board01 tfoot td {
    text-align: center !important;
}



/* 모바일 */

@media (max-width: 767px) {
    #container:has(.committee-board) .content-title {
        font-size: 23px;
        margin-bottom: 18px;
    }

    .committee-board .cb-head {
        padding: 20px;
        margin-bottom: 16px;
    }

    .committee-board .cb-head h4 {
        font-size: 21px;
    }

    .committee-board .cb-tabs {
        gap: 3px;
        padding: 4px;
        margin-bottom: 16px;
    }

    .committee-board .cb-tabs a {
        min-height: 42px;
        padding: 8px 6px;
        font-size: 13px;
    }

    .committee-board .cb-panel {
        padding: 18px 16px;
    }

    .committee-board .cb-panel table.board01 {
        min-width: 640px;
    }

    .committee-board .cb-panel .board01 tbody td {
        padding: 16px 10px;
    }
}










/* ========================================
   부문업무 매뉴얼
======================================== */

#container:has(.sub3_1btn) .sub-body__main {
    min-width: 0;
}

#container:has(.sub3_1btn) .content-title {
    margin-bottom: 28px;
    padding: 0 0 0 15px;
    border: 0;
    border-left: 4px solid #1657a7;
    color: #203249;
    font-size: 28px;
    line-height: 1.4;
    letter-spacing: -1px;
}

#container .box:has(.sub3_1btn) {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    color: #51677f;
    font-family:
        "Noto Sans KR",
        "Apple SD Gothic Neo",
        "Malgun Gothic",
        sans-serif;
    font-size: 14px;
    line-height: 1.9;
}

#container .box:has(.sub3_1btn) *,
#container .box:has(.sub3_1btn) *::before,
#container .box:has(.sub3_1btn) *::after {
    box-sizing: border-box;
}

/* 기존 650px 고정 폭 해제 */
#container .box > table:has(.sub3_1btn) {
    width: 100%;
    margin: 0 !important;
    border-collapse: separate;
    border-spacing: 0;
}

/* 배치용 빈 여백과 장식 구분선 제거 */
#container .box > table:has(.sub3_1btn)
    > tbody > tr:has(> td:empty),
#container .box > table:has(.sub3_1btn)
    > tbody > tr:has(> td > img) {
    display: none;
}


/* ========================================
   다운로드 자료 카드
======================================== */

#container .box .sub3_1btn {
    display: block;
    width: 100%;
    padding: 24px;
    margin: 0 0 32px;
    border: 1px solid #dfe9f5;
    border-radius: 12px;
    background: #f2f7fd;
}

#container .box .sub3_1btn > tbody {
    display: block;
}

#container .box .sub3_1btn > tbody > tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

#container .box .sub3_1btn > tbody > tr > td {
    display: block;
    width: auto;
    padding: 0;
    vertical-align: top;
}

#container .box .sub3_1btn ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

#container .box .sub3_1btn li {
    margin: 0;
    padding: 0;
    background: none;
    border: 0;
    list-style: none;
}

#container .box .sub3_1btn li::before,
#container .box .sub3_1btn li::after {
    content: none;
}

#container .box .sub3_1btn a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 62px;
    padding: 15px 18px;
    border: 1px solid #dde6f1;
    border-radius: 8px;
    background: #fff;
    color: #203249;
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.6;
    text-decoration: none;
    overflow-wrap: anywhere;
    transition:
        border-color 0.15s,
        background 0.15s,
        box-shadow 0.15s;
}

#container .box .sub3_1btn a::after {
    content: "받기";
    flex: 0 0 auto;
    padding: 4px 8px;
    border-radius: 4px;
    background: #edf3fb;
    color: #1657a7;
    font-size: 11px;
    font-weight: 700;
}

#container .box .sub3_1btn a:hover {
    border-color: #1657a7;
    background: #fafcff;
    box-shadow: 0 3px 10px rgba(22, 87, 167, 0.06);
}


/* ========================================
   매뉴얼 항목 제목
======================================== */

#container .box > table:has(.sub3_1btn)
    > tbody > tr > td
    > table:not(.sub3_1btn):not([id]) {
    float: none;
    width: 100%;
    margin: 0;
}

/* 기존 작은 제목 아이콘 제거 */
#container .box > table:has(.sub3_1btn)
    > tbody > tr > td
    > table:has(.s_tt01) td > img {
    display: none;
}

#container .box .s_tt01 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    min-height: 68px;
    padding: 18px 22px;
    margin: 0 0 10px;
    border: 1px solid #e0e8f1;
    border-radius: 9px;
    background: #fff;
    color: #203249;
    font-family: inherit;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.6;
    text-decoration: none;
}

#container .box .s_tt01::after {
    content: "+";
    flex: 0 0 auto;
    color: #1657a7;
    font-size: 24px;
    font-weight: 400;
    line-height: 1;
}

#container .box .s_tt01:hover {
    border-color: #b4cae5;
    background: #f8fbff;
    color: #1657a7;
}

/* 기존 act() 함수로 펼쳐진 항목 표시 */
#container .box > table:has(.sub3_1btn)
    > tbody
    > tr:has(+ tr table[id^="rop"][style*="block"])
    .s_tt01 {
    margin-bottom: 0;
    border-color: #1657a7;
    border-radius: 9px 9px 0 0;
    background: #1657a7;
    color: #fff;
}

#container .box > table:has(.sub3_1btn)
    > tbody
    > tr:has(+ tr table[id^="rop"][style*="block"])
    .s_tt01::after {
    content: "-";
    color: #fff;
}


/* ========================================
   펼친 본문
   display 속성은 기존 act() 함수가 제어
======================================== */

#container .box:has(.sub3_1btn) table[id^="rop"] {
    width: 100%;
    max-width: 100%;
    padding: 22px;
    margin: 0 0 12px;
    border: 1px solid #dce6f2;
    border-top: 0;
    border-radius: 0 0 9px 9px;
    background: #fff;
    overflow-x: auto;
}

#container .box:has(.sub3_1btn) table[id^="rop"] table {
    width: 100%;
    max-width: 100%;
    float: none;
    padding-left: 0 !important;
    border-collapse: collapse;
}

#container .box:has(.sub3_1btn) table[id^="rop"] td {
    background: none;
    vertical-align: top;
}

/* 구형 테이블의 글꼴 통일 */
#container .box:has(.sub3_1btn)
    table[id^="rop"] :is(table, td, div) {
    font-family: inherit !important;
    color: #51677f;
}

#container .box:has(.sub3_1btn)
    table[id^="rop"] :is(p, span, font) {
    font-family: inherit !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
}

#container .box:has(.sub3_1btn) table[id^="rop"] p {
    margin: 0 0 12px;
}

#container .box:has(.sub3_1btn)
    table[id^="rop"] img[src*="sub_dot_line01"] {
    display: none;
}

#container .box:has(.sub3_1btn) a:focus-visible {
    outline: 3px solid #96bcef;
    outline-offset: 3px;
}


/* ========================================
   모바일
======================================== */

@media (max-width: 767px) {
    #container:has(.sub3_1btn) .content-title {
        font-size: 23px;
        margin-bottom: 22px;
    }

    #container .box .sub3_1btn {
        padding: 16px;
        margin-bottom: 24px;
    }

    #container .box .sub3_1btn > tbody > tr {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    #container .box .sub3_1btn a {
        min-height: 58px;
        padding: 14px;
        font-size: 13px;
    }

    #container .box .s_tt01 {
        min-height: 62px;
        padding: 16px;
        font-size: 14px;
    }

    #container .box:has(.sub3_1btn) table[id^="rop"] {
        padding: 16px;
    }
}




/* ========================================
   대한기계학회논문집 A·B : 본문 전용
   공통 서브 레이아웃에는 적용하지 않음
======================================== */

.ksme-journals {
  --jnl-ink: #183b54;
  --jnl-text: #496276;
  --jnl-muted: #748797;
  --jnl-line: #dfe6ec;

  flex: 1;
  min-width: 0;
  color: var(--jnl-text);
  font-family: inherit;
  letter-spacing: -0.025em;

  /* 뷰포트가 아닌 실제 본문 폭을 기준으로 반응형 처리 */
  container-name: ksme-journals;
  container-type: inline-size;
}

.ksme-journals *,
.ksme-journals *::before,
.ksme-journals *::after {
  box-sizing: border-box;
}

/* 소개 */

.ksme-journals .jnl-intro__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 20px;
  margin-bottom: 16px;
}

.ksme-journals .jnl-intro h3 {
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--jnl-ink);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -0.04em;
}

.ksme-journals .jnl-intro > p {
  margin: 0;
  padding: 0;
  color: #697e90;
  font-size: 14px;
  line-height: 1.95;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.ksme-journals .jnl-intro > p + p {
  margin-top: 10px;
}

.ksme-journals .jnl-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.ksme-journals .jnl-badges span {
  display: inline-flex;
  align-items: center;
  padding: 5px 8px;
  border: 1px solid #d9e4ea;
  border-radius: 4px;
  background: #fff;
  color: #526c80;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0;
  white-space: nowrap;
}

/* 카드 레이아웃 */

.ksme-journals .jnl-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 30px;
}

.ksme-journals .jnl-card {
  --jnl-card-accent: #214e71;
  --jnl-card-soft: #edf3f7;
  --jnl-card-dot: #7596b2;

  display: flex;
  flex-direction: column;
  min-width: 0;
  border: 1px solid var(--jnl-line);
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.ksme-journals .jnl-card--b {
  --jnl-card-accent: #14786e;
  --jnl-card-soft: #edf5f4;
  --jnl-card-dot: #77a39d;
}

/* 표지와 제목 */

.ksme-journals .jnl-card__header {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  min-height: 192px;
  padding: 26px 24px;
  border-bottom: 1px solid var(--jnl-line);
  background: var(--jnl-card-soft);
}

.ksme-journals .jnl-card__cover {
  display: block;
  width: 96px;
  max-width: 100%;
  height: auto;
  margin: 0;
  border: 1px solid #d5dce1;
  border-radius: 1px;
}

.ksme-journals .jnl-card__title {
  min-width: 0;
}

.ksme-journals .jnl-card__part {
  display: block;
  margin-bottom: 9px;
  color: var(--jnl-card-accent);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
}

.ksme-journals .jnl-card__title h4 {
  margin: 0 0 8px;
  padding: 0;
  border: 0;
  color: var(--jnl-ink);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
  word-break: keep-all;
}

.ksme-journals .jnl-card__title h4 strong {
  display: block;
  margin-top: 2px;
  color: inherit;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.3;
}

.ksme-journals .jnl-card__english {
  margin: 0;
  padding: 0;
  color: var(--jnl-muted);
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: 0;
}

/* 연구 분야 */

.ksme-journals .jnl-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 24px;
}

.ksme-journals .jnl-card__label {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  color: #8495a3;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
}

.ksme-journals .jnl-fields {
  display: grid;
  gap: 10px;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}

.ksme-journals .jnl-fields li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 0;
  padding: 0;
  color: var(--jnl-text);
  font-size: 13px;
  line-height: 1.6;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.ksme-journals .jnl-fields li::before {
  content: "";
  flex: 0 0 4px;
  width: 4px;
  height: 4px;
  margin-top: 8px;
  border-radius: 50%;
  background: var(--jnl-card-dot);
}

/* 국문 · 영문 버튼 */

.ksme-journals .jnl-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: auto;
  padding-top: 20px;
  border-top: 1px solid #edf0f3;
}

.ksme-journals .jnl-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--jnl-card-accent);
  border-radius: 5px;
  background: var(--jnl-card-accent);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
  word-break: keep-all;
  transition: background-color 0.15s, border-color 0.15s;
}

.ksme-journals .jnl-button--outline {
  border-color: #d6e1e8;
  background: #fff;
  color: var(--jnl-card-accent);
}

.ksme-journals .jnl-arrow {
  flex-shrink: 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
}

.ksme-journals .jnl-button:hover {
  border-color: var(--jnl-card-accent);
  background: var(--jnl-ink);
  color: #fff;
}

.ksme-journals .jnl-button--outline:hover {
  background: var(--jnl-card-soft);
  color: var(--jnl-card-accent);
}

/* 참고 문구와 관련 안내 */

.ksme-journals .jnl-note {
  margin: 14px 0 0;
  padding: 0;
  color: #8495a3;
  font-size: 12px;
  line-height: 1.7;
}

.ksme-journals .jnl-resources {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 28px;
  padding: 22px 0;
  border-top: 1px solid #dce4eb;
  border-bottom: 1px solid #dce4eb;
}

.ksme-journals .jnl-resources__description h4 {
  margin: 0 0 5px;
  padding: 0;
  border: 0;
  color: #314e64;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
}

.ksme-journals .jnl-resources__description p {
  margin: 0;
  padding: 0;
  color: #8092a0;
  font-size: 12px;
  line-height: 1.7;
}

.ksme-journals .jnl-resources__links {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 24px;
}

.ksme-journals .jnl-resources__links a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #365d75;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
}

.ksme-journals .jnl-resources__links a:hover {
  color: #087f8c;
}

.ksme-journals a:focus-visible {
  outline: 3px solid #3c9caa;
  outline-offset: 4px;
}

/* 본문 폭이 좁아지는 경우 */

@container ksme-journals (max-width: 760px) {
  .ksme-journals .jnl-card__header {
    grid-template-columns: 80px minmax(0, 1fr);
    gap: 16px;
    padding: 22px 18px;
  }

  .ksme-journals .jnl-card__cover {
    width: 80px;
  }

  .ksme-journals .jnl-card__title h4 {
    font-size: 16px;
  }

  .ksme-journals .jnl-card__body {
    padding: 22px 18px;
  }

  .ksme-journals .jnl-actions {
    grid-template-columns: 1fr;
  }
}

/* 모바일 수준의 본문 폭 */

@container ksme-journals (max-width: 560px) {
  .ksme-journals .jnl-intro h3 {
    font-size: 20px;
  }

  .ksme-journals .jnl-intro > p {
    font-size: 13px;
    line-height: 1.9;
  }

  .ksme-journals .jnl-grid {
    grid-template-columns: 1fr;
    gap: 18px;
    margin-top: 24px;
  }

  .ksme-journals .jnl-card__header {
    grid-template-columns: 85px minmax(0, 1fr);
    gap: 24px;
    min-height: 170px;
    padding: 24px;
  }

  .ksme-journals .jnl-card__cover {
    width: 85px;
  }

  .ksme-journals .jnl-card__title h4 {
    font-size: 17px;
  }

  .ksme-journals .jnl-card__body {
    padding: 24px;
  }

  .ksme-journals .jnl-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@container ksme-journals (max-width: 340px) {
  .ksme-journals .jnl-card__header {
    gap: 16px;
    padding: 20px;
  }

  .ksme-journals .jnl-card__body {
    padding: 20px;
  }

  .ksme-journals .jnl-actions {
    grid-template-columns: 1fr;
  }
}







/* 기술과 교육: 본문 전용 스타일 */
.ksme-te {
  --te-ink: #183b54;
  --te-accent: #14786e;
  --te-muted: #738797;
  --te-line: #dfe6ec;

  flex: 1;
  min-width: 0;
  width: 100%;
  color: #496276;
  font-family: inherit;
  letter-spacing: -0.025em;

  container-name: ksme-te;
  container-type: inline-size;
}

.ksme-te *,
.ksme-te *::before,
.ksme-te *::after {
  box-sizing: border-box;
}

.ksme-te :is(h3, h4, h5, p, ul) {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

/* 본문 소개 */
.ksme-te .te-heading-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 20px;
  margin-bottom: 18px;
}

.ksme-te .te-intro h3 {
  color: var(--te-ink);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -0.045em;
}

.ksme-te .te-kicker {
  color: #8395a3;
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: 0.015em;
}

.ksme-te .te-intro > p {
  color: #697e90;
  font-size: 14px;
  line-height: 1.95;
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* 학술지 안내 카드 */
.ksme-te .te-journal {
  display: grid;
  grid-template-columns: 228px minmax(0, 1fr);
  margin-top: 32px;
  border: 1px solid var(--te-line);
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

/* 표지 영역 */
.ksme-te .te-cover-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 22px;
  padding: 34px 28px;
  border-right: 1px solid #e0e8ed;
  background: #edf3f7;
}

.ksme-te .te-cover {
  display: block;
  width: 138px;
  max-width: 100%;
  height: auto;
  border: 1px solid #d4dce3;
  border-radius: 1px;
}

.ksme-te .te-cover-area > span {
  color: #7a8d9d;
  font-size: 11px;
  line-height: 1.5;
}

/* 학술지 소개 */
.ksme-te .te-journal-info {
  min-width: 0;
  padding: 32px 34px;
}

.ksme-te .te-eyebrow {
  display: block;
  margin-bottom: 8px;
  color: var(--te-accent);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.06em;
}

.ksme-te .te-journal-info h4 {
  color: var(--te-ink);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.04em;
}

.ksme-te .te-english {
  margin-top: 5px;
  color: #8999a6;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0;
}

.ksme-te .te-description {
  margin-top: 20px;
  color: #697e90;
  font-size: 13px;
  line-height: 1.9;
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* 주요 게재 내용 */
.ksme-te .te-topics {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid #edf0f3;
}

.ksme-te .te-topics h5 {
  color: #3d596e;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
}

.ksme-te .te-topics p {
  margin-top: 7px;
  color: #7d8f9e;
  font-size: 12px;
  line-height: 1.7;
  word-break: keep-all;
}

.ksme-te .te-topics ul {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 13px;
  list-style: none;
}

.ksme-te .te-topics li {
  padding: 5px 10px;
  border-radius: 4px;
  background: #f1f5f7;
  color: #5d7d8b;
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: 0;
}

/* 논문 사이트 바로가기 */
.ksme-te .te-cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 44px;
  margin-top: 26px;
  padding: 11px 16px;
  border: 1px solid var(--te-accent);
  border-radius: 5px;
  background: var(--te-accent);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
  transition:
    background-color 0.15s,
    border-color 0.15s;
}

.ksme-te .te-cta svg {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
}

.ksme-te .te-cta:hover {
  border-color: #0e625a;
  background: #0e625a;
  color: #fff;
}

/* 주요 연구 분야 */
.ksme-te .te-fields {
  margin-top: 34px;
  padding-top: 25px;
  border-top: 1px solid var(--te-line);
}

.ksme-te .te-fields-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px 16px;
}

.ksme-te .te-fields h4 {
  color: var(--te-ink);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
}

.ksme-te .te-fields-heading > span {
  color: #8a9aa7;
  font-size: 11px;
  line-height: 1.5;
}

.ksme-te .te-fields > p {
  margin-top: 10px;
  color: #748797;
  font-size: 13px;
  line-height: 1.8;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.ksme-te .te-fields ul {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 20px;
  list-style: none;
}

.ksme-te .te-fields li {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid #e6ebef;
  border-radius: 5px;
  background: #fafbfd;
  color: #526b7f;
  font-size: 12px;
  line-height: 1.6;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.ksme-te .te-fields li::before {
  content: "";
  flex: 0 0 4px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #84a8ac;
}

/* 하단 안내 */
.ksme-te .te-note {
  margin-top: 22px;
  color: #8b9ba7;
  font-size: 11px;
  line-height: 1.6;
}

.ksme-te .te-note > p {
  color: inherit;
  font-size: inherit;
  line-height: inherit;
}

/* 키보드 접근성 */
.ksme-te a:focus-visible {
  outline: 3px solid #3c9caa;
  outline-offset: 4px;
}

/* 본문 폭 780px 이하 */
@container ksme-te (max-width: 780px) {
  .ksme-te .te-journal {
    grid-template-columns: 184px minmax(0, 1fr);
  }

  .ksme-te .te-cover-area {
    padding: 26px 20px;
  }

  .ksme-te .te-cover {
    width: 120px;
  }

  .ksme-te .te-journal-info {
    padding: 26px;
  }

  .ksme-te .te-fields ul {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* 본문 폭 560px 이하 */
@container ksme-te (max-width: 560px) {
  .ksme-te .te-intro h3 {
    font-size: 21px;
  }

  .ksme-te .te-intro > p {
    font-size: 13px;
    line-height: 1.9;
  }

  .ksme-te .te-journal {
    grid-template-columns: 1fr;
    margin-top: 24px;
  }

  .ksme-te .te-cover-area {
    gap: 16px;
    padding: 28px;
    border-right: 0;
    border-bottom: 1px solid #e0e8ed;
  }

  .ksme-te .te-cover {
    width: 116px;
  }

  .ksme-te .te-journal-info {
    padding: 24px;
  }

  .ksme-te .te-journal-info h4 {
    font-size: 25px;
  }

  .ksme-te .te-cta {
    display: flex;
    width: 100%;
  }

  .ksme-te .te-fields {
    margin-top: 28px;
  }

  .ksme-te .te-fields ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .ksme-te .te-fields li {
    padding: 10px;
    font-size: 11px;
  }
}

/* 본문 폭 320px 이하 */
@container ksme-te (max-width: 320px) {
  .ksme-te .te-fields ul {
    grid-template-columns: 1fr;
  }
}




/* JMST / JMST Advances: 본문 전용 */
.ksme-jmst {
  width: 100%;
  min-width: 0;
  color: #496276;
  font-family: inherit;
  letter-spacing: -0.025em;

  /* 실제 본문 너비 기준으로 반응형 적용 */
  container: ksme-jmst / inline-size;
}

.ksme-jmst *,
.ksme-jmst *::before,
.ksme-jmst *::after {
  box-sizing: border-box;
}

.ksme-jmst :is(h3, h4, p, dl, dt, dd) {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

/* 본문 제목 */
.ksme-jmst .jmst-intro {
  margin-bottom: 28px;
}

.ksme-jmst .jmst-intro h3 {
  color: #183b54;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -0.04em;
}

.ksme-jmst .jmst-intro p {
  margin-top: 10px;
  color: #748797;
  font-size: 14px;
  line-height: 1.8;
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* 카드 레이아웃 */
.ksme-jmst .jmst-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.ksme-jmst .jmst-card {
  --jmst-accent: #214e71;
  --jmst-tint: #edf3f7;

  display: flex;
  flex-direction: column;
  min-width: 0;
  border: 1px solid #dfe6ec;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.ksme-jmst .jmst-card-advances {
  --jmst-accent: #14786e;
  --jmst-tint: #edf5f4;
}

/* 표지와 학술지 제목 */
.ksme-jmst .jmst-card-head {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  align-items: center;
  gap: 24px;
  min-height: 210px;
  padding: 30px 26px;
  border-bottom: 1px solid #e1e8ed;
  background: var(--jmst-tint);
}

.ksme-jmst .jmst-cover {
  display: block;
  width: 104px;
  max-width: 100%;
  height: auto;
  border: 1px solid #d5dce3;
  border-radius: 1px;
}

.ksme-jmst .jmst-title-group {
  min-width: 0;
}

.ksme-jmst .jmst-label {
  display: block;
  margin-bottom: 10px;
  color: var(--jmst-accent);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
}

.ksme-jmst .jmst-title-group h4 {
  color: #183b54;
  font-size: 25px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.035em;
  overflow-wrap: break-word;
}

.ksme-jmst .jmst-title-group p {
  margin-top: 10px;
  color: #738797;
  font-size: 12px;
  line-height: 1.7;
  letter-spacing: 0;
}

/* 학술지 상세 정보 */
.ksme-jmst .jmst-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 26px;
}

.ksme-jmst .jmst-meta {
  display: grid;
  align-content: start;
  gap: 16px;
  margin-bottom: 26px;
}

.ksme-jmst .jmst-meta > div {
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr);
  align-items: baseline;
  gap: 12px;
}

.ksme-jmst .jmst-meta dt {
  color: #8596a4;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0;
}

.ksme-jmst .jmst-meta dd {
  color: #36536a;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
  overflow-wrap: break-word;
}

/* 바로가기 버튼 */
.ksme-jmst .jmst-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: auto;
  padding-top: 22px;
  border-top: 1px solid #edf0f3;
}

.ksme-jmst .jmst-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
  min-height: 44px;
  padding: 11px 13px;
  border: 1px solid var(--jmst-accent);
  border-radius: 5px;
  background: var(--jmst-accent);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
  word-break: keep-all;
  transition:
    background-color 0.15s,
    border-color 0.15s;
}

.ksme-jmst .jmst-button > span {
  flex-shrink: 0;
  font-size: 16px;
  font-weight: 400;
}

.ksme-jmst .jmst-button-outline {
  border-color: #d6e1e8;
  background: #fff;
  color: var(--jmst-accent);
}

.ksme-jmst .jmst-button:hover {
  border-color: #183b54;
  background: #183b54;
  color: #fff;
}

.ksme-jmst .jmst-button-outline:hover {
  border-color: var(--jmst-accent);
  background: var(--jmst-tint);
  color: var(--jmst-accent);
}

.ksme-jmst .jmst-button:focus-visible {
  outline: 3px solid #3c9caa;
  outline-offset: 4px;
}

/* 하단 안내 */
.ksme-jmst .jmst-note {
  margin-top: 18px;
  color: #899aa7;
  font-size: 12px;
  line-height: 1.7;
}

/* 본문 너비 800px 이하 */
@container ksme-jmst (max-width: 800px) {
  .ksme-jmst .jmst-card-head {
    grid-template-columns: 80px minmax(0, 1fr);
    gap: 18px;
    min-height: 185px;
    padding: 24px 20px;
  }

  .ksme-jmst .jmst-cover {
    width: 80px;
  }

  .ksme-jmst .jmst-title-group h4 {
    font-size: 22px;
  }

  .ksme-jmst .jmst-card-body {
    padding: 24px 20px;
  }

  .ksme-jmst .jmst-meta > div {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .ksme-jmst .jmst-actions {
    grid-template-columns: 1fr;
  }
}

/* 본문 너비 580px 이하 */
@container ksme-jmst (max-width: 580px) {
  .ksme-jmst .jmst-intro h3 {
    font-size: 21px;
  }

  .ksme-jmst .jmst-intro p {
    font-size: 13px;
  }

  .ksme-jmst .jmst-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .ksme-jmst .jmst-card-head {
    grid-template-columns: 90px minmax(0, 1fr);
    gap: 20px;
    min-height: 180px;
    padding: 24px;
  }

  .ksme-jmst .jmst-cover {
    width: 90px;
  }

  .ksme-jmst .jmst-card-body {
    padding: 24px;
  }

  .ksme-jmst .jmst-meta > div {
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 10px;
  }

  .ksme-jmst .jmst-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* 본문 너비 350px 이하 */
@container ksme-jmst (max-width: 350px) {
  .ksme-jmst .jmst-card-head {
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 16px;
    padding: 20px;
  }

  .ksme-jmst .jmst-cover {
    width: 72px;
  }

  .ksme-jmst .jmst-card-body {
    padding: 20px;
  }

  .ksme-jmst .jmst-meta > div {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .ksme-jmst .jmst-actions {
    grid-template-columns: 1fr;
  }
}








/* ========================================
   JMST 논문검색: 구독 상태별 본문 스타일
   공통 서브 영역에는 적용하지 않음
======================================== */

.ksme-access {
  width: 100%;
  min-width: 0;
  color: #496276;
  font-family: inherit;
  letter-spacing: -0.025em;

  /* 실제 본문 너비를 기준으로 반응형 적용 */
  container: ksme-access / inline-size;
}

.ksme-access *,
.ksme-access *::before,
.ksme-access *::after {
  box-sizing: border-box;
}

.ksme-access :is(h4, p) {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

/* 구독자용 카드 */

.ksme-access .access-member {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  border: 1px solid #dfe6ec;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

/* 표지 */

.ksme-access .access-cover-area {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px;
  border-right: 1px solid #e0e8ed;
  background: #edf3f7;
}

.ksme-access .access-cover {
  display: block;
  width: 128px;
  max-width: 100%;
  height: auto;
  border: 1px solid #d2dce3;
  border-radius: 1px;
}

/* 학술지 정보 */

.ksme-access .access-member-info {
  min-width: 0;
  align-self: center;
  padding: 32px 36px;
}

.ksme-access .access-eyebrow {
  display: block;
  margin-bottom: 10px;
  color: #14786e;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.03em;
}

.ksme-access .access-member h4 {
  color: #183b54;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: -0.035em;
  overflow-wrap: break-word;
}

.ksme-access .access-member-info > p {
  margin-top: 14px;
  color: #748797;
  font-size: 13px;
  line-height: 1.8;
  word-break: keep-all;
}

.ksme-access .access-member-info > p.access-caption {
  margin-top: 12px;
  color: #92a1ad;
  font-size: 11px;
}

/* 공통 버튼 */

.ksme-access .access-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  min-height: 44px;
  margin-top: 24px;
  padding: 11px 16px;
  border: 1px solid #214e71;
  border-radius: 5px;
  background: #214e71;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
  transition:
    background-color 0.15s,
    border-color 0.15s;
}

.ksme-access .access-button span {
  flex-shrink: 0;
  font-size: 16px;
  font-weight: 400;
}

.ksme-access .access-button:hover {
  border-color: #183b54;
  background: #183b54;
  color: #fff;
}

.ksme-access .access-button:focus-visible {
  outline: 3px solid #3c9caa;
  outline-offset: 4px;
}

/* 미구독자용 안내 */

.ksme-access .access-empty {
  padding: 36px;
  border: 1px solid #dfe6ec;
  border-radius: 12px;
  background: #f8fafc;
}

.ksme-access .access-empty h4 {
  color: #183b54;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -0.035em;
  word-break: keep-all;
}

.ksme-access .access-empty > p {
  margin-top: 12px;
  color: #748797;
  font-size: 13px;
  line-height: 1.8;
  word-break: keep-all;
}

.ksme-access .access-button-outline {
  margin-top: 22px;
  border-color: #d2dfe7;
  background: #fff;
  color: #365d75;
}

.ksme-access .access-button-outline:hover {
  border-color: #214e71;
  background: #edf3f7;
  color: #214e71;
}

/* 본문 너비 640px 이하 */

@container ksme-access (max-width: 640px) {
  .ksme-access .access-member {
    grid-template-columns: 160px minmax(0, 1fr);
  }

  .ksme-access .access-cover-area {
    padding: 24px 18px;
  }

  .ksme-access .access-cover {
    width: 110px;
  }

  .ksme-access .access-member-info {
    padding: 26px;
  }

  .ksme-access .access-member h4 {
    font-size: 22px;
  }
}

/* 본문 너비 460px 이하 */

@container ksme-access (max-width: 460px) {
  .ksme-access .access-member {
    grid-template-columns: 1fr;
  }

  .ksme-access .access-cover-area {
    padding: 26px;
    border-right: 0;
    border-bottom: 1px solid #e0e8ed;
  }

  .ksme-access .access-cover {
    width: 110px;
  }

  .ksme-access .access-member-info {
    padding: 26px 24px;
  }

  .ksme-access .access-member h4 {
    font-size: 22px;
  }

  .ksme-access .access-empty {
    padding: 28px 24px;
  }

  .ksme-access .access-empty h4 {
    font-size: 20px;
  }

  .ksme-access .access-button {
    display: flex;
    width: 100%;
  }
}





/* 논문집 구독안내: 본문 전용 */
.ksme-subscribe {
  width: 100%;
  min-width: 0;
  color: #496276;
  font-family: inherit;
  letter-spacing: -0.025em;
  container: ksme-subscribe / inline-size;
}

.ksme-subscribe *,
.ksme-subscribe *::before,
.ksme-subscribe *::after {
  box-sizing: border-box;
}

.ksme-subscribe :is(h4, h5, p, ol) {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

/* 소개 */
.ksme-subscribe .subscr-intro {
  padding: 28px 30px;
  border: 1px solid #e0e8ee;
  border-radius: 10px;
  background: #f3f7fa;
}

.ksme-subscribe .subscr-label {
  display: block;
  margin-bottom: 10px;
  color: #14786e;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
}

.ksme-subscribe .subscr-intro h4 {
  color: #183b54;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -0.04em;
  word-break: keep-all;
}

.ksme-subscribe .subscr-intro p {
  margin-top: 14px;
  color: #697e90;
  font-size: 13px;
  line-height: 1.9;
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* 섹션 제목 */
.ksme-subscribe .subscr-section {
  margin-top: 34px;
}

.ksme-subscribe .subscr-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 20px;
  margin-bottom: 16px;
}

.ksme-subscribe .subscr-section-head h4 {
  color: #183b54;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}

.ksme-subscribe .subscr-section-head > span {
  color: #8596a4;
  font-size: 11px;
  line-height: 1.5;
}

/* 요금 비교표 */
.ksme-subscribe .subscr-table-wrap {
  border: 1px solid #dfe6ec;
  border-radius: 8px;
  overflow: hidden;
}

.ksme-subscribe .subscr-table {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  table-layout: fixed;
  background: #fff;
}

.ksme-subscribe .subscr-table th,
.ksme-subscribe .subscr-table td {
  padding: 17px 20px;
  border: 0;
  border-bottom: 1px solid #e7edf2;
  vertical-align: middle;
  line-height: 1.6;
}

.ksme-subscribe .subscr-table thead th {
  background: #f4f7fa;
  color: #617a8d;
  font-size: 12px;
  font-weight: 600;
  text-align: right;
}

.ksme-subscribe .subscr-table thead th:first-child {
  width: 46%;
  text-align: left;
}

.ksme-subscribe .subscr-table tbody th {
  background: #fff;
  color: #36536a;
  font-size: 13px;
  font-weight: 500;
  text-align: left;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.ksme-subscribe .subscr-table tbody td {
  color: #506a7e;
  font-size: 16px;
  font-weight: 600;
  text-align: right;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ksme-subscribe .subscr-table tbody td:nth-child(2) {
  color: #14786e;
}

.ksme-subscribe .subscr-table td span {
  margin-left: 3px;
  font-size: 11px;
  font-weight: 400;
}

.ksme-subscribe .subscr-table tbody tr:last-child > * {
  border-bottom: 0;
}

/* 스크린리더용 표 제목 */
.ksme-subscribe .subscr-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

/* 회원 신청 안내 */
.ksme-subscribe .subscr-member-note {
  margin-top: 13px;
  color: #8293a1;
  font-size: 12px;
  line-height: 1.8;
  word-break: keep-all;
}

.ksme-subscribe .subscr-member-note strong {
  margin-right: 10px;
  color: #4c6a80;
  font-weight: 600;
}

/* 신청서 다운로드 */
.ksme-subscribe .subscr-download {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 40px;
  padding: 9px 13px;
  border: 1px solid #214e71;
  border-radius: 5px;
  background: #214e71;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
}

.ksme-subscribe .subscr-download span {
  font-size: 15px;
}

.ksme-subscribe .subscr-download:hover {
  border-color: #183b54;
  background: #183b54;
  color: #fff;
}

/* 비회원 신청 절차 */
.ksme-subscribe .subscr-section-desc {
  margin-bottom: 18px;
  color: #748797;
  font-size: 13px;
  line-height: 1.8;
  word-break: keep-all;
}

.ksme-subscribe .subscr-steps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  list-style: none;
}

.ksme-subscribe .subscr-steps li {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  min-width: 0;
  margin: 0;
  padding: 23px;
  border: 1px solid #e1e8ed;
  border-radius: 8px;
  background: #fff;
}

.ksme-subscribe .subscr-steps li > div {
  min-width: 0;
}

.ksme-subscribe .subscr-step-number {
  flex-shrink: 0;
  color: #87a6b8;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
}

.ksme-subscribe .subscr-steps h5 {
  color: #36536a;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
}

.ksme-subscribe .subscr-steps p {
  margin-top: 8px;
  color: #748797;
  font-size: 12px;
  line-height: 1.8;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.ksme-subscribe .subscr-steps a {
  color: #14786e;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ksme-subscribe .subscr-account {
  color: #42667f;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/* 키보드 접근성 */
.ksme-subscribe a:focus-visible {
  outline: 3px solid #3c9caa;
  outline-offset: 4px;
}

/* 실제 본문 너비 600px 이하 */
@container ksme-subscribe (max-width: 600px) {
  .ksme-subscribe .subscr-intro {
    padding: 24px;
  }

  .ksme-subscribe .subscr-intro h4 {
    font-size: 20px;
  }

  .ksme-subscribe .subscr-steps {
    grid-template-columns: 1fr;
  }

  .ksme-subscribe .subscr-table th,
  .ksme-subscribe .subscr-table td {
    padding: 15px 12px;
  }

  .ksme-subscribe .subscr-table thead th:first-child {
    width: 42%;
  }

  .ksme-subscribe .subscr-table tbody th {
    font-size: 12px;
  }

  .ksme-subscribe .subscr-table tbody td {
    font-size: 14px;
  }
}

/* 실제 본문 너비 360px 이하 */
@container ksme-subscribe (max-width: 360px) {
  .ksme-subscribe .subscr-intro {
    padding: 20px;
  }

  .ksme-subscribe .subscr-table th,
  .ksme-subscribe .subscr-table td {
    padding: 13px 8px;
  }

  .ksme-subscribe .subscr-table tbody td {
    font-size: 12px;
  }

  .ksme-subscribe .subscr-table td span {
    margin-left: 1px;
    font-size: 10px;
  }

  .ksme-subscribe .subscr-steps li {
    padding: 20px;
    gap: 12px;
  }
}





/* ========================================
   기계저널: 본문 전용 스타일
   공통 서브 영역에는 적용하지 않음
======================================== */

.ksme-magazine {
  width: 100%;
  min-width: 0;
  color: #496276;
  font-family: inherit;
  letter-spacing: -0.025em;
  container: ksme-magazine / inline-size;
}

.ksme-magazine *,
.ksme-magazine *::before,
.ksme-magazine *::after {
  box-sizing: border-box;
}

.ksme-magazine :is(h4, h5, p, ul, dl, dt, dd) {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

/* 표지 · 소개 카드 */
.ksme-magazine .mag-hero {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  border: 1px solid #dfe6ec;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.ksme-magazine .mag-cover-area {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px;
  border-right: 1px solid #e0e8ed;
  background: #edf3f7;
}

.ksme-magazine .mag-cover {
  display: block;
  width: 140px;
  max-width: 100%;
  height: auto;
  border: 1px solid #d2dce3;
}

.ksme-magazine .mag-intro {
  min-width: 0;
  align-self: center;
  padding: 30px 32px;
}

.ksme-magazine .mag-label {
  display: block;
  margin-bottom: 8px;
  color: #14786e;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
}

.ksme-magazine .mag-intro h4 {
  color: #183b54;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.04em;
}

.ksme-magazine .mag-english {
  margin-top: 5px;
  color: #8799a7;
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0;
}

.ksme-magazine .mag-description {
  margin-top: 18px;
  color: #697e90;
  font-size: 14px;
  line-height: 1.85;
  word-break: keep-all;
}

/* 발행 · 수령 · 투고 정보 */
.ksme-magazine .mag-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 16px;
}

.ksme-magazine .mag-badges span {
  padding: 5px 8px;
  border-radius: 4px;
  background: #f1f5f7;
  color: #6a8596;
  font-size: 11px;
  line-height: 1.5;
}

/* 집필안내 · 편집계획 · 광고안내 */
.ksme-magazine .mag-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #edf0f3;
}

.ksme-magazine .mag-actions a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid #d6e1e8;
  border-radius: 5px;
  background: #fff;
  color: #365d75;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
}

.ksme-magazine .mag-actions a:first-child {
  border-color: #214e71;
  background: #214e71;
  color: #fff;
}

.ksme-magazine .mag-actions a:hover {
  border-color: #183b54;
  background: #183b54;
  color: #fff;
}

.ksme-magazine .mag-actions span {
  flex-shrink: 0;
  font-size: 16px;
  font-weight: 400;
}

/* 본문 섹션 */
.ksme-magazine .mag-section {
  margin-top: 32px;
}

.ksme-magazine .mag-section > h4,
.ksme-magazine .mag-contact h4 {
  color: #183b54;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  word-break: keep-all;
}

/* 일상과 문화 · 기술과 연구 정보 */
.ksme-magazine .mag-topics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  margin-top: 18px;
}

.ksme-magazine .mag-topics > div {
  padding-top: 16px;
  border-top: 2px solid #dce7ee;
}

.ksme-magazine .mag-topics h5 {
  color: #42667f;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
}

.ksme-magazine .mag-topics p {
  margin-top: 10px;
  color: #748797;
  font-size: 13px;
  line-height: 1.9;
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* 편집위원 · 집필자 참여 안내 */
.ksme-magazine .mag-participation {
  padding: 26px 28px;
  border: 1px solid #dfe8e8;
  border-radius: 10px;
  background: #f5f9f8;
}

.ksme-magazine .mag-participation > p {
  margin-top: 12px;
  color: #697e90;
  font-size: 13px;
  line-height: 1.9;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.ksme-magazine .mag-required {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-top: 18px;
  list-style: none;
}

.ksme-magazine .mag-required li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  color: #52756f;
  font-size: 12px;
  line-height: 1.8;
}

.ksme-magazine .mag-required li::before {
  content: "";
  flex: 0 0 4px;
  width: 4px;
  height: 4px;
  margin-top: 8px;
  border-radius: 50%;
  background: #80aaa2;
}

/* 사무국 문의 */
.ksme-magazine .mag-contact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 28px;
  margin-top: 28px;
  padding: 24px 0;
  border-top: 1px solid #dfe6ec;
  border-bottom: 1px solid #dfe6ec;
}

.ksme-magazine .mag-contact h4 {
  font-size: 15px;
}

.ksme-magazine .mag-contact p {
  margin-top: 5px;
  color: #8a9aa7;
  font-size: 11px;
  line-height: 1.6;
}

.ksme-magazine .mag-contact dl {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 24px;
}

.ksme-magazine .mag-contact dt {
  color: #8a9aa7;
  font-size: 11px;
  line-height: 1.5;
}

.ksme-magazine .mag-contact dd {
  margin-top: 5px;
  color: #496b82;
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0;
}

.ksme-magazine .mag-contact a {
  color: #14786e;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 키보드 접근성 */
.ksme-magazine a:focus-visible {
  outline: 3px solid #3c9caa;
  outline-offset: 4px;
}

/* 실제 본문 너비 700px 이하 */
@container ksme-magazine (max-width: 700px) {
  .ksme-magazine .mag-hero {
    grid-template-columns: 170px minmax(0, 1fr);
  }

  .ksme-magazine .mag-cover-area {
    padding: 24px;
  }

  .ksme-magazine .mag-cover {
    width: 115px;
  }

  .ksme-magazine .mag-intro {
    padding: 26px;
  }

  .ksme-magazine .mag-actions {
    grid-template-columns: 1fr;
  }
}

/* 실제 본문 너비 500px 이하 */
@container ksme-magazine (max-width: 500px) {
  .ksme-magazine .mag-hero {
    grid-template-columns: 1fr;
  }

  .ksme-magazine .mag-cover-area {
    padding: 28px;
    border-right: 0;
    border-bottom: 1px solid #e0e8ed;
  }

  .ksme-magazine .mag-cover {
    width: 120px;
  }

  .ksme-magazine .mag-intro {
    padding: 24px;
  }

  .ksme-magazine .mag-intro h4 {
    font-size: 25px;
  }

  .ksme-magazine .mag-description {
    font-size: 13px;
  }

  .ksme-magazine .mag-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .ksme-magazine .mag-actions a {
    gap: 6px;
    padding: 10px 8px;
    font-size: 11px;
  }

  .ksme-magazine .mag-topics {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .ksme-magazine .mag-participation {
    padding: 24px;
  }
}

/* 실제 본문 너비 340px 이하 */
@container ksme-magazine (max-width: 340px) {
  .ksme-magazine .mag-actions {
    grid-template-columns: 1fr;
  }
}





/* ========================================
   기계용어집: 본문 전용 스타일
======================================== */

.ksme-dictionary {
  width: 100%;
  min-width: 0;
  color: #496276;
  font-family: inherit;
  letter-spacing: -0.025em;
  container: ksme-dictionary / inline-size;
}

.ksme-dictionary *,
.ksme-dictionary *::before,
.ksme-dictionary *::after {
  box-sizing: border-box;
}

.ksme-dictionary :is(h4, h5, p, ul, dl, dt, dd) {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

/* 카드 */
.ksme-dictionary .dict-card {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  border: 1px solid #dfe6ec;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

/* 표지 영역 */
.ksme-dictionary .dict-cover-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 22px;
  padding: 36px 30px;
  border-right: 1px solid #e0e8ed;
  background: #edf3f7;
}

.ksme-dictionary .dict-cover {
  display: block;
  width: 140px;
  max-width: 100%;
  height: auto;
  border: 1px solid #d2dce3;
}

.ksme-dictionary .dict-cover-area > span {
  color: #8397a6;
  font-size: 11px;
  line-height: 1.5;
}

/* 소개 */
.ksme-dictionary .dict-info {
  min-width: 0;
  padding: 32px 36px;
}

.ksme-dictionary .dict-label {
  display: block;
  margin-bottom: 8px;
  color: #14786e;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
}

.ksme-dictionary .dict-info h4 {
  color: #183b54;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.04em;
}

.ksme-dictionary .dict-summary {
  margin-top: 14px;
  color: #496b82;
  font-size: 15px;
  line-height: 1.8;
  word-break: keep-all;
}

.ksme-dictionary .dict-description {
  margin-top: 16px;
  color: #748797;
  font-size: 13px;
  line-height: 1.9;
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* 수록 정보 */
.ksme-dictionary .dict-features {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 16px;
  list-style: none;
}

.ksme-dictionary .dict-features li {
  padding: 5px 9px;
  border-radius: 4px;
  background: #f1f5f7;
  color: #6a8596;
  font-size: 11px;
  line-height: 1.5;
}

/* 가격 및 신청 */
.ksme-dictionary .dict-purchase {
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid #e7edf2;
}

.ksme-dictionary .dict-purchase h5 {
  color: #496b82;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
}

.ksme-dictionary .dict-prices {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}

.ksme-dictionary .dict-prices > div + div {
  padding-left: 16px;
  border-left: 1px solid #e7edf2;
}

.ksme-dictionary .dict-prices dt {
  color: #8596a4;
  font-size: 11px;
  line-height: 1.5;
}

.ksme-dictionary .dict-prices dd {
  margin-top: 6px;
  color: #36536a;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -0.035em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ksme-dictionary .dict-prices dd span {
  margin-left: 3px;
  font-size: 11px;
  font-weight: 400;
}

.ksme-dictionary .dict-member-price dd {
  color: #14786e;
}

/* 신청서 다운로드 */
.ksme-dictionary .dict-download {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  min-height: 44px;
  margin-top: 24px;
  padding: 11px 16px;
  border: 1px solid #214e71;
  border-radius: 5px;
  background: #214e71;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
}

.ksme-dictionary .dict-download span {
  font-size: 16px;
  font-weight: 400;
}

.ksme-dictionary .dict-download:hover {
  border-color: #183b54;
  background: #183b54;
  color: #fff;
}

.ksme-dictionary .dict-download:focus-visible {
  outline: 3px solid #3c9caa;
  outline-offset: 4px;
}

.ksme-dictionary .dict-file-note {
  margin-top: 10px;
  color: #92a1ad;
  font-size: 11px;
  line-height: 1.6;
}

/* 하단 안내 */
.ksme-dictionary .dict-note {
  margin-top: 18px;
  color: #8596a4;
  font-size: 12px;
  line-height: 1.8;
  word-break: keep-all;
}

/* 실제 본문 너비 760px 이하 */
@container ksme-dictionary (max-width: 760px) {
  .ksme-dictionary .dict-card {
    grid-template-columns: 180px minmax(0, 1fr);
  }

  .ksme-dictionary .dict-cover-area {
    padding: 28px 22px;
  }

  .ksme-dictionary .dict-cover {
    width: 120px;
  }

  .ksme-dictionary .dict-info {
    padding: 28px;
  }

  .ksme-dictionary .dict-prices {
    gap: 10px;
  }

  .ksme-dictionary .dict-prices > div + div {
    padding-left: 10px;
  }

  .ksme-dictionary .dict-prices dd {
    font-size: 18px;
  }
}

/* 실제 본문 너비 560px 이하 */
@container ksme-dictionary (max-width: 560px) {
  .ksme-dictionary .dict-card {
    grid-template-columns: 1fr;
  }

  .ksme-dictionary .dict-cover-area {
    gap: 16px;
    padding: 28px;
    border-right: 0;
    border-bottom: 1px solid #e0e8ed;
  }

  .ksme-dictionary .dict-info {
    padding: 26px 24px;
  }

  .ksme-dictionary .dict-info h4 {
    font-size: 25px;
  }

  .ksme-dictionary .dict-summary {
    font-size: 14px;
  }

  .ksme-dictionary .dict-download {
    display: flex;
    width: 100%;
  }
}

/* 실제 본문 너비 360px 이하 */
@container ksme-dictionary (max-width: 360px) {
  .ksme-dictionary .dict-prices {
    gap: 8px;
  }

  .ksme-dictionary .dict-prices > div + div {
    padding-left: 8px;
  }

  .ksme-dictionary .dict-prices dd {
    font-size: 16px;
  }

  .ksme-dictionary .dict-prices dd span {
    margin-left: 1px;
    font-size: 10px;
  }
}




/* 기계저널 상세 안내: 본문 전용 */
.ksme-guide {
  width: 100%;
  min-width: 0;
  color: #496276;
  font-family: inherit;
  letter-spacing: -0.025em;
  container: ksme-guide / inline-size;
}

.ksme-guide *,
.ksme-guide *::before,
.ksme-guide *::after {
  box-sizing: border-box;
}

.ksme-guide :is(h4, h5, p, ul, ol, dl, dt, dd, figure) {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

/* 표지 카드 */
.ksme-guide .kg-hero {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  border: 1px solid #dfe6ec;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.ksme-guide .kg-cover-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 25px;
  border-right: 1px solid #e0e8ed;
  background: #edf3f7;
}

.ksme-guide .kg-cover {
  display: block;
  width: 96px;
  max-width: 100%;
  height: auto;
  border: 1px solid #d2dce3;
}

.ksme-guide .kg-intro {
  min-width: 0;
  align-self: center;
  padding: 28px 30px;
}

.ksme-guide .kg-label {
  display: block;
  margin-bottom: 9px;
  color: #14786e;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
}

.ksme-guide .kg-intro h4 {
  color: #183b54;
  font-size: 27px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.04em;
}

.ksme-guide .kg-intro p {
  margin-top: 12px;
  color: #748797;
  font-size: 13px;
  line-height: 1.85;
  word-break: keep-all;
}

.ksme-guide .kg-journal-link {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  margin-top: 14px;
  color: #416a82;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
}

.ksme-guide .kg-journal-link:hover {
  color: #14786e;
}

/* 안내 메뉴 */
.ksme-guide .kg-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 24px;
  border-bottom: 1px solid #dce5eb;
}

.ksme-guide .kg-nav a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 49px;
  padding: 12px 8px;
  border-bottom: 3px solid transparent;
  color: #8798a5;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
}

.ksme-guide .kg-nav a[aria-current="page"] {
  border-bottom-color: #14786e;
  color: #14786e;
  font-weight: 700;
}

.ksme-guide .kg-nav a:hover {
  background: #f7fafb;
  color: #14786e;
}

/* 저널 소개 펼쳐보기 */
.ksme-guide .kg-about {
  margin-top: 16px;
  border: 1px solid #e5ebef;
  border-radius: 6px;
  background: #fafbfd;
}

.ksme-guide .kg-about summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 16px;
  color: #718797;
  font-size: 12px;
  line-height: 1.6;
  list-style: none;
  cursor: pointer;
}

.ksme-guide .kg-about summary::-webkit-details-marker {
  display: none;
}

.ksme-guide .kg-about summary::after {
  content: "+";
  color: #8da4b2;
  font-size: 18px;
}

.ksme-guide .kg-about[open] summary::after {
  content: "−";
}

.ksme-guide .kg-about-content {
  padding: 0 18px 18px;
  color: #748797;
  font-size: 12px;
  line-height: 1.9;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.ksme-guide .kg-about-content a,
.ksme-guide .kg-rules a,
.ksme-guide .kg-ad-intro > p a {
  color: #14786e;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 섹션 */
.ksme-guide .kg-section {
  margin-top: 32px;
}

.ksme-guide .kg-section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 20px;
  margin-bottom: 18px;
}

.ksme-guide .kg-section h4 {
  color: #183b54;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  word-break: keep-all;
}

.ksme-guide .kg-section-head > span {
  color: #8b9ca9;
  font-size: 11px;
  line-height: 1.6;
}

/* 집필 핵심 기준 */
.ksme-guide .kg-highlights {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  padding: 22px 24px;
  border: 1px solid #dfe8ec;
  border-radius: 8px;
  background: #f2f7f8;
}

.ksme-guide .kg-highlights > div {
  min-width: 0;
}

.ksme-guide .kg-highlights > div + div {
  padding-left: 20px;
  border-left: 1px solid #dce7ea;
}

.ksme-guide .kg-highlights span {
  display: block;
  color: #7d959d;
  font-size: 11px;
  line-height: 1.5;
}

.ksme-guide .kg-highlights strong {
  display: block;
  margin-top: 7px;
  color: #2b6568;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -0.03em;
  word-break: keep-all;
}

.ksme-guide .kg-highlights p {
  margin-top: 5px;
  color: #8a9da4;
  font-size: 11px;
  line-height: 1.6;
}

/* 원고 작성 규정 */
.ksme-guide .kg-rules {
  margin-top: 24px;
  padding-left: 25px;
  list-style: decimal;
}

.ksme-guide .kg-rules > li {
  padding: 17px 0 17px 10px;
  border-bottom: 1px solid #e8edf1;
  color: #718797;
  font-size: 13px;
  line-height: 1.8;
}

.ksme-guide .kg-rules > li::marker {
  color: #88a4b3;
  font-size: 13px;
  font-weight: 600;
}

.ksme-guide .kg-rules h5 {
  color: #3b5c74;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
}

.ksme-guide .kg-rules p {
  margin-top: 7px;
  color: #748797;
  font-size: 13px;
  line-height: 1.85;
  word-break: keep-all;
}

.ksme-guide .kg-rules ul {
  display: grid;
  gap: 10px;
  margin-top: 10px;
  list-style: none;
}

.ksme-guide .kg-rules ul li {
  color: #748797;
  font-size: 13px;
  line-height: 1.85;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.ksme-guide .kg-rules ul strong {
  display: inline-block;
  margin-right: 10px;
  color: #547586;
  font-weight: 500;
}

/* 문의처 */
.ksme-guide .kg-contact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 26px;
  margin-top: 30px;
  padding: 23px 0;
  border-top: 1px solid #dfe6ec;
  border-bottom: 1px solid #dfe6ec;
}

.ksme-guide .kg-contact h4 {
  color: #183b54;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
}

.ksme-guide .kg-contact p {
  margin-top: 7px;
  color: #8a9ba8;
  font-size: 11px;
  line-height: 1.8;
}

.ksme-guide .kg-contact dl {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 24px;
}

.ksme-guide .kg-contact dt {
  color: #8c9dab;
  font-size: 11px;
  line-height: 1.5;
}

.ksme-guide .kg-contact dd {
  margin-top: 5px;
  color: #4b6f85;
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0;
}

.ksme-guide .kg-contact a {
  color: #14786e;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 공통 표 */
.ksme-guide .kg-table-wrap {
  border: 1px solid #dfe6ec;
  border-radius: 8px;
  overflow-x: auto;
}

.ksme-guide .kg-table {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  table-layout: fixed;
  background: #fff;
}

.ksme-guide .kg-table th,
.ksme-guide .kg-table td {
  padding: 14px 16px;
  border: 0;
  border-bottom: 1px solid #e7edf2;
  font-size: 12px;
  line-height: 1.8;
  text-align: left;
  vertical-align: middle;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.ksme-guide .kg-table thead th {
  background: #f1f5f8;
  color: #668296;
  font-size: 11px;
  font-weight: 600;
}

.ksme-guide .kg-table tbody th {
  background: #fafcfd;
  color: #41657c;
  font-weight: 500;
}

.ksme-guide .kg-table tbody td {
  color: #748797;
}

.ksme-guide .kg-table tbody tr:last-child > * {
  border-bottom: 0;
}

.ksme-guide .kg-column-table td {
  text-align: center;
}

.ksme-guide .kg-column-table thead th:not(:first-child) {
  text-align: center;
}

.ksme-guide .kg-undecided {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  background: #f3f5f7;
  color: #9daab3;
  font-size: 10px;
}

.ksme-guide .kg-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

/* 광고 신청 */
.ksme-guide .kg-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 40px;
  padding: 9px 13px;
  border: 1px solid #214e71;
  border-radius: 5px;
  background: #214e71;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
}

.ksme-guide .kg-button:hover {
  border-color: #183b54;
  background: #183b54;
  color: #fff;
}

.ksme-guide .kg-ad-intro > p {
  color: #748797;
  font-size: 13px;
  line-height: 1.9;
  word-break: keep-all;
}

.ksme-guide .kg-table-note {
  margin-top: -6px;
  margin-bottom: 12px;
  color: #8b9ba7;
  font-size: 11px;
  line-height: 1.8;
  word-break: keep-all;
}

.ksme-guide .kg-price-table td {
  color: #4b6a7e;
  font-size: 14px;
  font-weight: 500;
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}

.ksme-guide .kg-price-table td:last-child {
  color: #14786e;
}

.ksme-guide .kg-price-table thead th:not(:first-child) {
  text-align: right;
}

/* 광고 참고사항 */
.ksme-guide .kg-ad-reference {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 275px;
  align-items: center;
  gap: 30px;
  margin-top: 18px;
  padding: 24px;
  border: 1px solid #e2e9ee;
  border-radius: 8px;
  background: #fafcfd;
}

.ksme-guide .kg-facts {
  display: grid;
  gap: 22px;
}

.ksme-guide .kg-facts h5 {
  color: #4d7086;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
}

.ksme-guide .kg-facts p {
  margin-top: 8px;
  color: #748797;
  font-size: 13px;
  line-height: 1.85;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.ksme-guide .kg-facts strong {
  color: #426b82;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

.ksme-guide .kg-ad-reference img {
  display: block;
  width: 100%;
  max-width: 275px;
  height: auto;
}

.ksme-guide .kg-ad-reference figcaption {
  margin-top: 10px;
  color: #9aabb6;
  font-size: 11px;
  line-height: 1.6;
  text-align: center;
}

.ksme-guide :is(a, summary):focus-visible {
  outline: 3px solid #3c9caa;
  outline-offset: 4px;
}

/* 본문 너비 640px 이하 */
@container ksme-guide (max-width: 640px) {
  .ksme-guide .kg-hero {
    grid-template-columns: 130px minmax(0, 1fr);
  }

  .ksme-guide .kg-cover-wrap {
    padding: 20px;
  }

  .ksme-guide .kg-cover {
    width: 82px;
  }

  .ksme-guide .kg-intro {
    padding: 24px;
  }

  .ksme-guide .kg-highlights {
    gap: 14px;
    padding: 20px;
  }

  .ksme-guide .kg-highlights > div + div {
    padding-left: 14px;
  }

  .ksme-guide .kg-highlights strong {
    font-size: 16px;
  }

  .ksme-guide .kg-ad-reference {
    grid-template-columns: 1fr;
  }

  .ksme-guide .kg-ad-reference figure {
    justify-self: center;
  }

  .ksme-guide .kg-table th,
  .ksme-guide .kg-table td {
    padding: 12px 10px;
  }

  .ksme-guide .kg-price-table td {
    font-size: 12px;
  }
}

/* 본문 너비 460px 이하 */
@container ksme-guide (max-width: 460px) {
  .ksme-guide .kg-hero {
    grid-template-columns: 96px minmax(0, 1fr);
  }

  .ksme-guide .kg-cover-wrap {
    padding: 15px;
  }

  .ksme-guide .kg-cover {
    width: 65px;
  }

  .ksme-guide .kg-intro {
    padding: 22px 18px;
  }

  .ksme-guide .kg-intro h4 {
    font-size: 23px;
  }

  .ksme-guide .kg-intro p {
    font-size: 12px;
  }

  .ksme-guide .kg-label {
    font-size: 10px;
  }

  .ksme-guide .kg-highlights {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .ksme-guide .kg-highlights > div + div {
    padding-top: 14px;
    padding-left: 0;
    border-top: 1px solid #dce7ea;
    border-left: 0;
  }

  .ksme-guide .kg-section h4 {
    font-size: 17px;
  }

  /* 긴 계획표는 표 영역 안에서만 좌우 스크롤 */
  .ksme-guide .kg-theme-table,
  .ksme-guide .kg-column-table {
    min-width: 560px;
  }

  .ksme-guide .kg-price-table th,
  .ksme-guide .kg-price-table td {
    padding: 12px 8px;
  }

  .ksme-guide .kg-contact dl {
    gap: 16px 20px;
  }
}









/* 공통 메뉴에 영향을 주지 않는 콘텐츠 전용 스타일 */
#publications {
  --pub-blue: #215de5;
  --pub-ink: #192b42;
  --pub-muted: #697588;
  --pub-line: #e3e8ef;
  --pub-canvas: #f7f9fc;
  --pub-radius: 14px;

  container: ksme-publications / inline-size;
  position: relative;
  width: 100%;
  min-width: 0;
  color: var(--pub-ink);
  font-family:
    "Pretendard",
    "Noto Sans KR",
    "Malgun Gothic",
    sans-serif;
  font-size: 15px;
  line-height: 1.65;
  word-break: keep-all;
}

#publications *,
#publications *::before,
#publications *::after {
  box-sizing: border-box;
}

#publications [hidden] {
  display: none !important;
}

#publications a {
  color: inherit;
  text-decoration: none;
}

#publications button,
#publications input {
  font: inherit;
}

#publications button,
#publications summary {
  cursor: pointer;
}

#publications a:focus-visible,
#publications button:focus-visible,
#publications input:focus-visible,
#publications summary:focus-visible {
  outline: 3px solid #81a7ff;
  outline-offset: 4px;
}

#publications .publication-symbols {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
}

/* 제목 */
#publications .section-heading {
  margin-bottom: 24px;
}

#publications .section-heading h2 {
  margin: 0 0 7px;
  color: var(--pub-ink);
  font-size: 27px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -.04em;
}

#publications .section-heading p {
  margin: 0;
  color: var(--pub-muted);
  font-size: 13px;
}




/* 검색 */
#publications .search {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 235px;
  min-width: 180px;
  padding: 10px 13px;
  border: 1px solid var(--pub-line);
  border-radius: 8px;
  background: #fff;
}

#publications .search:focus-within {
  border-color: var(--pub-blue);
}

#publications .search svg {
  flex-shrink: 0;
  width: 17px;
  height: 17px;
  color: #8290a1;
}

#publications .search input {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: transparent;
  box-shadow: none;
  color: var(--pub-ink);
  font-size: 12px;
}

#publications .search input::placeholder {
  color: #939caa;
}

/* 분류 */
#publications .filter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 20px;
}

#publications .filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

#publications .filter {
  margin: 0;
  padding: 8px 15px;
  border: 1px solid var(--pub-line);
  border-radius: 24px;
  background: #fff;
  color: var(--pub-ink);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.65;
}

#publications .filter span {
  margin-left: 5px;
  color: #98a1af;
  font-size: 11px;
}

#publications .filter[aria-pressed="true"] {
  border-color: var(--pub-ink);
  background: var(--pub-ink);
  color: #fff;
}

#publications .filter[aria-pressed="true"] span {
  color: #d2dbea;
}

#publications .filter:hover {
  border-color: #7a94c0;
}

#publications .result-count {
  color: #8a94a3;
  font-size: 11px;
  white-space: nowrap;
}

#publications .result-count b {
  color: var(--pub-ink);
  font-weight: 600;
}

/* 카드 목록 */
#publications .publication-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: 18px;
}

#publications .publication {
  min-width: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius);
  background: #fff;
  transition: border-color .18s ease;
}

#publications .publication:hover {
  border-color: #8caeea;
}

/* 카드 표지 */
#publications .card-cover {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  height: 110px;
  padding: 19px 20px;
  overflow: hidden;
  border-bottom: 1px solid #eaf0f5;
  background: #f0f4f8;
  color: #39536e;
}

#publications .card-cover > div {
  min-width: 0;
}

#publications .cover-type {
  display: block;
  color: #6f8196;
  font-size: 10px;
  letter-spacing: .06em;
}

#publications .cover-name {
  display: block;
  margin-top: 5px;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.03em;
}

#publications .cover-mark {
  flex-shrink: 0;
  width: 83px;
  height: 83px;
  margin-left: 5px;
  fill: none;
  stroke: currentColor;
  stroke-width: .75;
  color: #aec2d7;
}

#publications .cover-blue {
  border-bottom-color: #e7efff;
  background: #edf3ff;
  color: #2259ba;
}

#publications .cover-blue .cover-type {
  color: #6c8abc;
}

#publications .cover-blue .cover-mark {
  color: #a5bfe9;
}

#publications .cover-teal {
  border-bottom-color: #e3eeee;
  background: #edf5f5;
  color: #356c70;
}

#publications .cover-teal .cover-mark {
  color: #a5c6c5;
}

#publications .cover-sand {
  border-bottom-color: #efebe3;
  background: #f6f3ee;
  color: #74664d;
}

#publications .cover-sand .cover-type {
  color: #958872;
}

#publications .cover-sand .cover-mark {
  color: #c8bda9;
}

/* 카드 내용 */
#publications .card-body {
  padding: 20px 20px 0;
}

#publications .badges {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 12px;
  color: #8a94a3;
  font-size: 10px;
}

#publications .badge {
  display: inline-block;
  padding: 3px 6px;
  border-radius: 4px;
  background: #f2f5f9;
  color: #5e718a;
  font-weight: 500;
}

#publications .card-body h3 {
  min-height: 49px;
  margin: 0 0 9px;
  color: var(--pub-ink);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: -.035em;
}

#publications .card-description {
  min-height: 64px;
  margin: 0 0 16px;
  color: var(--pub-muted);
  font-size: 12px;
  line-height: 1.8;
}

#publications .card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-height: 43px;
  padding-bottom: 18px;
  color: #8090a3;
  font-size: 10px;
}

#publications .card-meta span + span::before {
  content: "·";
  padding-right: 6px;
}

/* 상세 안내 */
#publications .card-detail {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--pub-line);
}

#publications .card-detail summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 20px;
  list-style: none;
  color: #4e627d;
  font-size: 12px;
  font-weight: 600;
}

#publications .card-detail summary::-webkit-details-marker {
  display: none;
}

#publications .card-detail summary::after {
  content: "+";
  color: #8d9fb8;
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
}

#publications .card-detail[open] summary {
  background: #f7faff;
  color: var(--pub-blue);
}

#publications .card-detail[open] summary::after {
  content: "−";
}

#publications .detail-content {
  padding: 0 20px 20px;
  background: #f7faff;
}

#publications .detail-content p {
  margin: 0 0 12px;
  color: #617086;
  font-size: 12px;
  line-height: 1.9;
  white-space: pre-line;
  overflow-wrap: anywhere;
  word-break: normal;
}

#publications .detail-link {
  display: inline-block;
  padding-top: 4px;
  color: var(--pub-blue);
  font-size: 12px;
  font-weight: 600;
}

/* 검색 결과 없음 */
#publications .empty-state {
  margin: 0;
  padding: 52px 20px;
  border-radius: 12px;
  background: var(--pub-canvas);
  color: var(--pub-muted);
  font-size: 14px;
  text-align: center;
}

/* 구독 안내 */
#publications .info-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 26px;
  padding: 22px 24px;
  border-radius: 10px;
  background: var(--pub-canvas);
}

#publications .info-strip h3 {
  margin: 0 0 4px;
  color: var(--pub-ink);
  font-size: 14px;
  font-weight: 700;
}

#publications .info-strip p {
  margin: 0;
  color: var(--pub-muted);
  font-size: 12px;
}

#publications .info-strip a {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 10px 14px;
  border: 1px solid var(--pub-line);
  border-radius: 7px;
  background: #fff;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

#publications .info-strip a:hover {
  border-color: var(--pub-blue);
  color: var(--pub-blue);
}

/* 화면 전체가 아닌 콘텐츠 영역 너비 기준 */
@container ksme-publications (max-width: 860px) {
  #publications .publication-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #publications .section-heading {
    flex-wrap: wrap;
  }
}

@container ksme-publications (max-width: 620px) {
  #publications .section-heading {
    display: block;
  }

  #publications .section-heading h2 {
    font-size: 23px;
  }

  #publications .search {
    width: 100%;
    margin-top: 19px;
  }

  #publications .filter-row {
    display: block;
    padding-bottom: 16px;
  }

  #publications .filter {
    padding: 7px 12px;
  }

  #publications .result-count {
    display: block;
    margin-top: 12px;
  }

  #publications .publication-grid {
    gap: 14px;
  }

  #publications .info-strip {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }
}

@container ksme-publications (max-width: 480px) {
  #publications .publication-grid {
    grid-template-columns: 1fr;
  }

  #publications .card-cover {
    height: 104px;
  }

  #publications .card-body h3,
  #publications .card-description {
    min-height: 0;
  }

  #publications .filters {
    gap: 6px;
  }

  #publications .filter {
    padding: 7px 11px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #publications .publication {
    transition: none;
  }
}


/* 선택하지 않은 분류의 카드 숨김 */
#publications .publication[hidden] {
  display: none !important;
}







#academic-business {
  --ab-blue: #215de5;
  --ab-ink: #192b42;
  --ab-muted: #697588;
  --ab-line: #e3e8ef;

  container: academic-business / inline-size;
  width: 100%;
  min-width: 0;
  color: var(--ab-ink);
  font: 15px/1.7
    "Pretendard", "Noto Sans KR", "Malgun Gothic", sans-serif;
  word-break: keep-all;
}

#academic-business *,
#academic-business *::before,
#academic-business *::after {
  box-sizing: border-box;
}

#academic-business h2,
#academic-business h3,
#academic-business p {
  margin: 0;
}

#academic-business a {
  color: inherit;
  text-decoration: none;
}

#academic-business a:focus-visible,
#academic-business summary:focus-visible {
  outline: 3px solid #81a7ff;
  outline-offset: 4px;
}

/* 소개 영역 */
#academic-business .ab-intro {
  padding: 30px 32px;
  border: 1px solid #e2eaff;
  border-radius: 14px;
  background: #f0f5ff;
}

#academic-business .ab-eyebrow {
  color: #557bb9;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
}

#academic-business .ab-intro h2 {
  margin-top: 10px;
  font-size: 29px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -.045em;
}

#academic-business .ab-intro-copy {
  margin-top: 10px;
  color: #677a94;
  font-size: 13px;
}

/* 핵심 정보 */
#academic-business .ab-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 25px;
  padding-top: 22px;
  border-top: 1px solid #dce6f7;
}

#academic-business .ab-stat {
  padding-right: 14px;
}

#academic-business .ab-stat + .ab-stat {
  padding-left: 24px;
  border-left: 1px solid #dce6f7;
}

#academic-business .ab-stat strong {
  display: block;
  color: #244e94;
  font-size: 25px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -.025em;
  font-variant-numeric: tabular-nums;
}

#academic-business .ab-stat small {
  font-size: 13px;
  font-weight: 500;
}

#academic-business .ab-stat span {
  display: block;
  margin-top: 5px;
  color: #73839b;
  font-size: 11px;
}

/* 섹션 제목 */
#academic-business .ab-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin: 32px 0 18px;
}

#academic-business .ab-heading h2 {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -.035em;
}

#academic-business .ab-heading p {
  margin-top: 5px;
  color: var(--ab-muted);
  font-size: 12px;
}

#academic-business .ab-count {
  color: #8290a3;
  font-size: 11px;
  white-space: nowrap;
}

#academic-business .ab-count b {
  color: var(--ab-blue);
  font-weight: 600;
}

/* 학술사업 카드 */
#academic-business .ab-programs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

#academic-business .ab-program {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 24px;
  border: 1px solid var(--ab-line);
  border-radius: 12px;
  background: #fff;
}

#academic-business .ab-program-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

#academic-business .ab-badge {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 5px;
  background: #edf3ff;
  color: #436ba8;
  font-size: 10px;
  font-weight: 600;
}

#academic-business .ab-order {
  color: #bac5d3;
  font-size: 13px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

#academic-business .ab-program h3 {
  margin-top: 16px;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: -.035em;
}

#academic-business .ab-en {
  margin-top: 5px;
  color: #8d99aa;
  font-size: 10px;
}

#academic-business .ab-program-text {
  margin-top: 17px;
  margin-bottom: 22px;
  color: #677588;
  font-size: 12px;
  line-height: 1.95;
}

#academic-business .ab-program-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: auto;
  padding-top: 15px;
  border-top: 1px solid #edf0f5;
  color: #78889e;
  font-size: 11px;
}

#academic-business .ab-program-footer strong {
  color: #416491;
  font-size: 11px;
  font-weight: 600;
}

#academic-business .ab-program-footer a {
  color: var(--ab-blue);
  font-size: 11px;
  font-weight: 600;
}

/* 전문부문 카드 */
#academic-business .ab-divisions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: 14px;
}

#academic-business .ab-division {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--ab-line);
  border-radius: 10px;
  background: #fff;
}

#academic-business .ab-division-top {
  padding: 19px 19px 15px;
}

#academic-business .ab-division-number {
  color: #89a1c1;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .04em;
}

#academic-business .ab-division h3 {
  min-height: 44px;
  margin-top: 8px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -.03em;
}

#academic-business .ab-division h3 a {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 9px;
}

#academic-business .ab-division h3 a:hover {
  color: var(--ab-blue);
}

#academic-business .ab-division h3 a span[aria-hidden] {
  color: #9aabc0;
  font-size: 14px;
  font-weight: 400;
}

#academic-business .ab-keywords {
  min-height: 36px;
  margin-top: 11px;
  color: #7e8b9e;
  font-size: 11px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}

/* 상세 연구 분야 */
#academic-business .ab-fields {
  border-top: 1px solid #edf0f5;
}

#academic-business .ab-fields summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 19px;
  list-style: none;
  cursor: pointer;
  color: #647993;
  font-size: 11px;
  font-weight: 500;
}

#academic-business .ab-fields summary::-webkit-details-marker {
  display: none;
}

#academic-business .ab-fields summary::after {
  content: "+";
  color: #8ca2bf;
  font-size: 18px;
  font-weight: 400;
  line-height: 1;
}

#academic-business .ab-fields[open] summary {
  background: #f7faff;
  color: var(--ab-blue);
}

#academic-business .ab-fields[open] summary::after {
  content: "−";
}

#academic-business .ab-fields p {
  padding: 0 19px 17px;
  background: #f7faff;
  color: #677588;
  font-size: 11px;
  line-height: 1.9;
  overflow-wrap: anywhere;
  word-break: normal;
}

/* 참여 안내 */
#academic-business .ab-notice {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-top: 20px;
  padding: 20px 23px;
  border-radius: 10px;
  background: #f7f9fc;
}

#academic-business .ab-notice strong {
  flex-shrink: 0;
  color: #46617f;
  font-size: 12px;
  font-weight: 600;
}

#academic-business .ab-notice p {
  color: #738094;
  font-size: 12px;
  line-height: 1.85;
}

#academic-business .ab-source-note {
  margin-top: 10px;
  color: #9aa4b2;
  font-size: 10px;
}

/* 콘텐츠 너비 기준 반응형 */
@container academic-business (max-width: 800px) {
  #academic-business .ab-divisions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@container academic-business (max-width: 560px) {
  #academic-business .ab-intro {
    padding: 24px;
  }

  #academic-business .ab-intro h2 {
    font-size: 24px;
  }

  #academic-business .ab-stats {
    gap: 10px;
  }

  #academic-business .ab-stat {
    padding-right: 4px;
  }

  #academic-business .ab-stat + .ab-stat {
    padding-left: 12px;
  }

  #academic-business .ab-stat strong {
    font-size: 21px;
  }

  #academic-business .ab-stat small {
    font-size: 11px;
  }

  #academic-business .ab-stat span {
    font-size: 10px;
  }

  #academic-business .ab-programs {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  #academic-business .ab-heading {
    align-items: flex-start;
  }

  #academic-business .ab-heading h2 {
    font-size: 20px;
  }

  #academic-business .ab-count {
    margin-top: 5px;
  }

  #academic-business .ab-notice {
    display: block;
    padding: 18px;
  }

  #academic-business .ab-notice p {
    margin-top: 7px;
  }
}

@container academic-business (max-width: 400px) {
  #academic-business .ab-divisions {
    grid-template-columns: 1fr;
  }

  #academic-business .ab-division h3,
  #academic-business .ab-keywords {
    min-height: 0;
  }
}








/* ========================================
   산학협동 콘텐츠 전용
   공통 상단·좌측 메뉴·하단에는 적용하지 않음
======================================== */

#ksme-cooperation {
  --sc-ink: #192b42;
  --sc-blue: #215de5;
  --sc-muted: #6c7a8e;
  --sc-line: #e2e8f0;

  container: ksme-cooperation / inline-size;

  width: 100%;
  min-width: 0;
  color: var(--sc-ink);

  font: 15px/1.7
    "Pretendard",
    "Noto Sans KR",
    "Malgun Gothic",
    sans-serif;

  word-break: keep-all;
}

#ksme-cooperation *,
#ksme-cooperation *::before,
#ksme-cooperation *::after {
  box-sizing: border-box;
}

#ksme-cooperation h2,
#ksme-cooperation h3,
#ksme-cooperation h4,
#ksme-cooperation p {
  margin: 0;
}

#ksme-cooperation button {
  font: inherit;
  cursor: pointer;
}

#ksme-cooperation a {
  color: inherit;
  text-decoration: none;
}

/* 비활성 탭 콘텐츠 숨김 */
#ksme-cooperation [hidden] {
  display: none !important;
}

#ksme-cooperation button:focus-visible,
#ksme-cooperation a:focus-visible,
#ksme-cooperation summary:focus-visible,
#ksme-cooperation [role="tabpanel"]:focus-visible {
  outline: 3px solid #8fb1ff;
  outline-offset: 4px;
}

/* ========================================
   상단 소개 영역
======================================== */

#ksme-cooperation .sc-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 32px;

  padding: 30px 32px;

  border: 1px solid #e2eaff;
  border-radius: 14px;
  background: #f0f5ff;
}

#ksme-cooperation .sc-eyebrow {
  color: #557bb9;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .07em;
}

#ksme-cooperation .sc-hero h2 {
  margin-top: 11px;

  font-size: 29px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -.045em;
}

#ksme-cooperation .sc-hero-copy {
  margin-top: 12px;

  color: #6e819c;
  font-size: 12px;
  line-height: 1.8;
}

/* 산업계·학계·연구기관 연결 그래픽 */
#ksme-cooperation .sc-network {
  display: flex;
  align-items: center;
  gap: 9px;
}

#ksme-cooperation .sc-node {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 65px;
  height: 65px;

  border: 1px solid #d6e2f6;
  border-radius: 12px;
  background: #fff;

  color: #52729f;
  font-size: 12px;
  font-weight: 600;
}

#ksme-cooperation .sc-node-primary {
  border-color: #b9cef7;
  background: #e4edff;
  color: #2a5fac;
}

#ksme-cooperation .sc-network-arrow {
  color: #8ba8d5;
  font-size: 14px;
}

/* ========================================
   콘텐츠 전환 탭
======================================== */

#ksme-cooperation .sc-tabs {
  display: flex;
  gap: 6px;

  margin: 26px 0 27px;
  padding: 5px;

  border: 1px solid var(--sc-line);
  border-radius: 10px;
  background: #f7f9fc;
}

#ksme-cooperation .sc-tab {
  flex: 1;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;

  min-width: 0;
  min-height: 45px;

  margin: 0;
  padding: 10px 16px;

  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;

  color: #7a889c;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.6;
}

#ksme-cooperation .sc-tab[aria-selected="true"] {
  border-color: #dbe6fa;
  background: #fff;

  color: #245cbc;
  font-weight: 700;
}

#ksme-cooperation .sc-tab:hover {
  color: var(--sc-blue);
}

#ksme-cooperation .sc-tab-count {
  padding: 1px 6px;

  border-radius: 4px;
  background: #e8eef7;

  color: #7388a7;
  font-size: 10px;
  font-weight: 500;
}

#ksme-cooperation .sc-tab[aria-selected="true"] .sc-tab-count {
  background: #edf3ff;
  color: #527abb;
}

/* ========================================
   섹션 제목
======================================== */

#ksme-cooperation .sc-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;

  margin-bottom: 18px;
}

#ksme-cooperation .sc-section-heading h2 {
  font-size: 21px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -.035em;
}

#ksme-cooperation .sc-section-heading p {
  margin-top: 7px;

  color: var(--sc-muted);
  font-size: 12px;
}

#ksme-cooperation .sc-archive-label {
  flex-shrink: 0;

  padding: 5px 9px;

  border: 1px solid var(--sc-line);
  border-radius: 5px;

  color: #7a89a0;
  font-size: 10px;
}

/* ========================================
   산학협동 안내 카드
======================================== */

#ksme-cooperation .sc-programs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

#ksme-cooperation .sc-program {
  display: flex;
  flex-direction: column;

  min-width: 0;
  padding: 25px;

  border: 1px solid var(--sc-line);
  border-radius: 12px;
  background: #fff;
}

#ksme-cooperation .sc-program-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

#ksme-cooperation .sc-badge {
  padding: 4px 8px;

  border-radius: 5px;
  background: #edf3ff;

  color: #4871ad;
  font-size: 10px;
  font-weight: 600;
}

#ksme-cooperation .sc-program-index {
  color: #b7c3d4;
  font-size: 13px;
  font-weight: 600;
}

#ksme-cooperation .sc-program h3 {
  margin-top: 17px;

  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -.04em;
}

#ksme-cooperation .sc-program-en {
  margin-top: 6px;

  color: #93a0b1;
  font-size: 10px;
}

#ksme-cooperation .sc-program-copy {
  margin-top: 19px;
  margin-bottom: 24px;

  color: #68778b;
  font-size: 12px;
  line-height: 1.95;
}

#ksme-cooperation .sc-program-copy a {
  color: #386ab4;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 지원 분야 태그 */
#ksme-cooperation .sc-points {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;

  margin: 0 0 24px;
  padding: 0;

  list-style: none;
}

#ksme-cooperation .sc-points li {
  padding: 5px 8px;

  border-radius: 5px;
  background: #f4f7fb;

  color: #8392a7;
  font-size: 10px;
}

#ksme-cooperation .sc-program-footer {
  margin-top: auto;
  padding-top: 18px;

  border-top: 1px solid #edf1f6;
}

/* ========================================
   버튼
======================================== */

#ksme-cooperation .sc-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;

  min-height: 41px;

  margin: 0;
  padding: 10px 15px;

  border: 1px solid #dbe4f1;
  border-radius: 7px;
  background: #fff;

  color: #426795;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
}

#ksme-cooperation .sc-button-primary {
  border-color: var(--sc-blue);
  background: var(--sc-blue);
  color: #fff;
}

#ksme-cooperation .sc-button:hover {
  border-color: #7c9bc8;
}

#ksme-cooperation .sc-button-primary:hover {
  border-color: #1a4ec6;
  background: #1a4ec6;
}

/* ========================================
   안내 문구
======================================== */

#ksme-cooperation .sc-note {
  display: flex;
  align-items: flex-start;
  gap: 15px;

  margin-top: 22px;
  padding: 19px 22px;

  border-radius: 10px;
  background: #f7f9fc;
}

#ksme-cooperation .sc-note strong {
  flex-shrink: 0;

  color: #58708e;
  font-size: 12px;
  font-weight: 600;
}

#ksme-cooperation .sc-note p {
  color: #8190a4;
  font-size: 12px;
  line-height: 1.85;
}

/* ========================================
   연도별 연구회 펼치기
======================================== */

#ksme-cooperation .sc-years {
  display: grid;
  gap: 12px;
}

#ksme-cooperation .sc-year {
  overflow: hidden;

  border: 1px solid var(--sc-line);
  border-radius: 10px;
  background: #fff;
}

#ksme-cooperation .sc-year summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;

  padding: 18px 22px;

  list-style: none;
  cursor: pointer;
}

#ksme-cooperation .sc-year summary::-webkit-details-marker {
  display: none;
}

#ksme-cooperation .sc-year-title {
  display: flex;
  align-items: center;
  gap: 13px;
}

#ksme-cooperation .sc-year-title strong {
  color: #415a7a;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -.025em;
  font-variant-numeric: tabular-nums;
}

#ksme-cooperation .sc-year-count {
  padding: 3px 7px;

  border-radius: 4px;
  background: #f1f4f8;

  color: #8694a7;
  font-size: 10px;
}

#ksme-cooperation .sc-year summary::after {
  content: "+";

  color: #90a5c2;
  font-size: 23px;
  font-weight: 400;
  line-height: 1;
}

#ksme-cooperation .sc-year[open] {
  border-color: #cdddf5;
}

#ksme-cooperation .sc-year[open] summary {
  border-bottom: 1px solid #e5edf9;
  background: #f5f8ff;
}

#ksme-cooperation .sc-year[open] .sc-year-title strong {
  color: #2c5fad;
}

#ksme-cooperation .sc-year[open] summary::after {
  content: "\2212";
}

/* ========================================
   연구회 목록
======================================== */

#ksme-cooperation .sc-group-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 24px;

  margin: 0;
  padding: 7px 22px 12px;

  list-style: none;
}

#ksme-cooperation .sc-group {
  display: flex;
  align-items: flex-start;
  gap: 13px;

  min-width: 0;
  padding: 19px 0;

  border-bottom: 1px solid #edf1f6;
}

#ksme-cooperation .sc-group:last-child {
  border-bottom: 0;
}

#ksme-cooperation .sc-group-no {
  flex-shrink: 0;

  min-width: 19px;
  padding-top: 2px;

  color: #a0b2ca;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

#ksme-cooperation .sc-group h4 {
  color: #425b7a;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.65;
  letter-spacing: -.015em;
  overflow-wrap: anywhere;
}

#ksme-cooperation .sc-group p {
  margin-top: 6px;

  color: #909eaf;
  font-size: 11px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}

#ksme-cooperation .sc-source-note {
  margin-top: 12px;

  color: #9aa5b4;
  font-size: 10px;
}

/* ========================================
   반응형
   브라우저 전체가 아닌 콘텐츠 너비 기준
======================================== */

@container ksme-cooperation (max-width: 740px) {
  #ksme-cooperation .sc-hero {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  #ksme-cooperation .sc-network {
    justify-content: flex-start;
  }
}

@container ksme-cooperation (max-width: 560px) {
  #ksme-cooperation .sc-hero {
    padding: 24px;
  }

  #ksme-cooperation .sc-hero h2 {
    font-size: 24px;
  }

  #ksme-cooperation .sc-node {
    width: 59px;
    height: 48px;
    font-size: 11px;
  }

  #ksme-cooperation .sc-tabs {
    gap: 3px;
    margin-top: 20px;
    margin-bottom: 23px;
  }

  #ksme-cooperation .sc-tab {
    gap: 6px;
    padding: 10px 8px;
    font-size: 12px;
  }

  #ksme-cooperation .sc-tab-count {
    padding-inline: 4px;
    font-size: 9px;
  }

  #ksme-cooperation .sc-programs {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  #ksme-cooperation .sc-program {
    padding: 22px;
  }

  #ksme-cooperation .sc-section-heading {
    display: block;
  }

  #ksme-cooperation .sc-section-heading h2 {
    font-size: 20px;
  }

  #ksme-cooperation .sc-archive-label {
    display: inline-block;
    margin-top: 12px;
  }

  #ksme-cooperation .sc-group-list {
    grid-template-columns: 1fr;
    padding-inline: 18px;
  }

  #ksme-cooperation .sc-year summary {
    padding: 16px 18px;
  }

  #ksme-cooperation .sc-year-title strong {
    font-size: 17px;
  }

  #ksme-cooperation .sc-note {
    display: block;
    padding: 18px;
  }

  #ksme-cooperation .sc-note p {
    margin-top: 6px;
  }
}








/* 교육사업 콘텐츠 전용 */
/* 공통 상단·좌측 메뉴·하단에는 영향을 주지 않습니다. */

#ksme-education {
  container: ksme-education / inline-size;
  width: 100%;
  max-width: 920px;
  min-width: 0;
  margin-inline: auto;
  color: #192b42;
  font-family: "Pretendard", "Noto Sans KR", "Malgun Gothic", sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: -0.025em;
  text-align: left;
  word-break: keep-all;
  overflow-wrap: anywhere;
  -webkit-text-size-adjust: 100%;
}

#ksme-education *,
#ksme-education *::before,
#ksme-education *::after {
  box-sizing: border-box;
}

#ksme-education :where(h2, h3, p, dl, dt, dd, ul) {
  margin: 0;
  padding: 0;
}

#ksme-education :where(button, select, input, textarea) {
  font: inherit;
  letter-spacing: inherit;
}

#ksme-education :where(button, select) {
  margin: 0;
}

#ksme-education :where(button, a, select) {
  -webkit-tap-highlight-color: transparent;
}

#ksme-education button {
  cursor: pointer;
}

#ksme-education a {
  color: #215de5;
  text-decoration: none;
}

#ksme-education a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

#ksme-education :where(button, a, select):focus-visible {
  outline: 3px solid #215de5;
  outline-offset: 3px;
}

#ksme-education [hidden] {
  display: none !important;
}

#ksme-education button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

/* ========================================
   소개 영역
======================================== */

#ksme-education .ed-hero {
  padding: 32px 36px;
  border: 1px solid #e3e8ef;
  border-radius: 14px;
  background: #f0f5ff;
}

#ksme-education .ed-eyebrow {
  display: block;
  margin-bottom: 9px;
  color: #215de5;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.13em;
}

#ksme-education .ed-hero h2 {
  color: #192b42;
  font-size: 29px;
  font-weight: 750;
  line-height: 1.35;
  letter-spacing: -0.045em;
}

#ksme-education .ed-hero-copy {
  max-width: 700px;
  margin-top: 12px;
  color: #697588;
  font-size: 14px;
  line-height: 1.8;
}

/* ========================================
   제목 및 연도 선택
======================================== */

#ksme-education .ed-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 34px;
}

#ksme-education #ed-year-title {
  min-width: 0;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.04em;
}

#ksme-education .ed-year-picker {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  gap: 10px;
}

#ksme-education .ed-year-picker label {
  color: #697588;
  font-size: 13px;
}

#ksme-education #ed-year-select {
  min-width: 110px;
  max-width: 100%;
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid #e3e8ef;
  border-radius: 8px;
  color: #192b42;
  background: #fff;
  font-size: 14px;
  cursor: pointer;
}

/* ========================================
   교육 분야 필터
======================================== */

#ksme-education .ed-filter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px 20px;
  margin: 19px 0 22px;
}

#ksme-education .ed-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

#ksme-education .ed-filter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  max-width: 100%;
  min-height: 38px;
  padding: 7px 14px;
  border: 1px solid #e3e8ef;
  border-radius: 7px;
  color: #697588;
  background: #fff;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  transition:
    color 150ms ease,
    border-color 150ms ease,
    background-color 150ms ease;
}

#ksme-education .ed-filter:hover {
  border-color: #215de5;
  color: #215de5;
  background: #f0f5ff;
}

#ksme-education .ed-filter[aria-pressed="true"] {
  border-color: #215de5;
  color: #fff;
  background: #215de5;
}

#ksme-education .ed-filter span {
  font-size: 11px;
  font-weight: 500;
  opacity: 0.8;
}

#ksme-education .ed-count {
  flex-shrink: 0;
  color: #697588;
  font-size: 12px;
  line-height: 1.5;
}

/* ========================================
   교육 카드
======================================== */

#ksme-education .ed-course-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 16px;
}

#ksme-education .ed-course {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 22px;
  border: 1px solid #e3e8ef;
  border-radius: 12px;
  background: #fff;
}

#ksme-education .ed-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 15px;
}

#ksme-education .ed-category {
  display: inline-block;
  max-width: 100%;
  padding: 4px 9px;
  border-radius: 5px;
  color: #215de5;
  background: #f0f5ff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
}

#ksme-education .ed-number {
  flex-shrink: 0;
  color: #697588;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

#ksme-education .ed-course-title {
  min-height: 72px;
  margin-bottom: 19px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -0.04em;
}

/* 일정·장소·연사 */
#ksme-education :where(.ed-meta, .ed-dialog-meta) {
  display: grid;
  gap: 9px;
}

#ksme-education :where(.ed-meta, .ed-dialog-meta) > div {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 9px;
  min-width: 0;
}

#ksme-education :where(.ed-meta, .ed-dialog-meta) dt {
  color: #697588;
  font-weight: 400;
}

#ksme-education :where(.ed-meta, .ed-dialog-meta) dd {
  min-width: 0;
  color: #192b42;
  white-space: pre-line;
}

#ksme-education .ed-meta {
  font-size: 12px;
  line-height: 1.7;
}

#ksme-education .ed-warning {
  margin-top: 15px;
  padding: 9px 11px;
  border: 1px solid #f1dfb4;
  border-radius: 6px;
  color: #89601b;
  background: #fff9ed;
  font-size: 11px;
  line-height: 1.65;
}

/* ========================================
   카드 버튼
======================================== */

#ksme-education .ed-card-footer {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: auto;
  padding-top: 21px;
}

#ksme-education :where(.ed-detail-button, .ed-register-link) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 85px;
  min-width: 0;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid #e3e8ef;
  border-radius: 7px;
  color: #192b42;
  background: #fff;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  transition:
    color 150ms ease,
    border-color 150ms ease,
    background-color 150ms ease;
}

#ksme-education .ed-detail-button:hover {
  border-color: #215de5;
  color: #215de5;
  background: #f0f5ff;
}

#ksme-education .ed-register-link {
  border-color: #215de5;
  color: #fff;
  background: #215de5;
}

#ksme-education .ed-register-link:hover {
  border-color: #194ec4;
  background: #194ec4;
  text-decoration: none;
}

/* ========================================
   교육 없음 및 안내 문구
======================================== */

#ksme-education .ed-empty-state {
  padding: 44px 24px;
  border: 1px solid #e3e8ef;
  border-radius: 12px;
  color: #697588;
  background: #fff;
  font-size: 14px;
  text-align: center;
}

#ksme-education .ed-notice {
  margin-top: 17px;
  color: #697588;
  font-size: 12px;
  line-height: 1.8;
}

/* ========================================
   기업체 주문형 교육
======================================== */

#ksme-education .ed-custom-training {
  margin-top: 38px;
  padding-top: 30px;
  border-top: 1px solid #e3e8ef;
}

#ksme-education .ed-custom-training > h2 {
  font-size: 21px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: -0.04em;
}

#ksme-education .ed-custom-training > p {
  margin-top: 9px;
  color: #697588;
  font-size: 14px;
  line-height: 1.8;
}

#ksme-education .ed-contacts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}

#ksme-education .ed-contact {
  min-width: 0;
  padding: 20px 22px;
  border: 1px solid #e3e8ef;
  border-radius: 10px;
  background: #fff;
}

#ksme-education .ed-contact strong {
  display: block;
  margin-bottom: 9px;
  font-size: 14px;
  font-weight: 700;
}

#ksme-education .ed-contact p {
  color: #697588;
  font-size: 13px;
  line-height: 1.8;
}

#ksme-education .ed-contact a {
  display: inline-block;
  margin-top: 3px;
  font-size: 13px;
  overflow-wrap: anywhere;
}

/* ========================================
   교육 상세 팝업
======================================== */

#ksme-education dialog.ed-dialog {
  width: min(880px, calc(100vw - 36px));
  max-width: calc(100vw - 36px);
  max-height: calc(100vh - 48px);
  max-height: calc(100dvh - 48px);
  margin: auto;
  padding: 0;
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid #e3e8ef;
  border-radius: 14px;
  color: #192b42;
  background: #fff;
  font: inherit;
  letter-spacing: inherit;
  text-align: left;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

#ksme-education dialog.ed-dialog:not([open]) {
  display: none !important;
}

#ksme-education .ed-dialog::backdrop {
  background: rgba(25, 43, 66, 0.4);
}

#ksme-education .ed-dialog-head {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 21px 24px;
  border-bottom: 1px solid #e3e8ef;
  background: #fff;
}

#ksme-education .ed-dialog-head > :not(button) {
  min-width: 0;
}

#ksme-education .ed-dialog-kicker {
  display: block;
  margin-bottom: 4px;
  color: #215de5;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.06em;
}

#ksme-education #ed-dialog-title {
  font-size: 21px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: -0.04em;
}

#ksme-education .ed-dialog-close {
  flex-shrink: 0;
  min-height: 40px;
  padding: 8px 15px;
  border: 1px solid #e3e8ef;
  border-radius: 7px;
  color: #697588;
  background: #fff;
  font-size: 13px;
  font-weight: 600;
}

#ksme-education .ed-dialog-close:hover {
  border-color: #215de5;
  color: #215de5;
  background: #f0f5ff;
}

#ksme-education .ed-dialog-body {
  min-width: 0;
  padding: 24px;
}

#ksme-education .ed-full-title {
  margin-bottom: 20px;
  color: #748298;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: -0.02em;
  white-space: pre-line;
}

#ksme-education .ed-dialog-meta {
  padding: 18px 20px;
  border: 1px solid #e3e8ef;
  border-radius: 9px;
  background: #f0f5ff;
  font-size: 13px;
  line-height: 1.8;
}

#ksme-education .ed-dialog-meta > div {
  grid-template-columns: 52px minmax(0, 1fr);
}

#ksme-education .ed-detail-sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 22px;
}

#ksme-education .ed-detail-section {
  min-width: 0;
  padding: 20px;
  border: 1px solid #e3e8ef;
  border-radius: 9px;
  background: #fff;
}

#ksme-education .ed-detail-section h3 {
  margin-bottom: 12px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
}

#ksme-education .ed-detail-section ul {
  padding-left: 18px;
  list-style: disc outside;
}

#ksme-education .ed-detail-section :where(li, p) {
  color: #697588;
  font-size: 13px;
  line-height: 1.85;
  white-space: pre-line;
}

#ksme-education .ed-detail-section li + li {
  margin-top: 7px;
}

#ksme-education .ed-detail-section p + p {
  margin-top: 10px;
}

#ksme-education .ed-detail-empty {
  margin-top: 20px;
  padding: 22px;
  border: 1px solid #e3e8ef;
  border-radius: 9px;
  color: #697588;
  font-size: 13px;
  line-height: 1.8;
  text-align: center;
}

/* ========================================
   반응형
   콘텐츠 영역 너비 기준
======================================== */

@container ksme-education (max-width: 860px) {
  #ksme-education .ed-course-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #ksme-education .ed-filter-row {
    flex-wrap: wrap;
  }

  #ksme-education .ed-hero {
    padding: 28px;
  }
}

@container ksme-education (max-width: 540px) {
  #ksme-education .ed-hero {
    padding: 24px 20px;
    border-radius: 11px;
  }

  #ksme-education .ed-hero h2 {
    font-size: 24px;
  }

  #ksme-education .ed-hero-copy {
    font-size: 13px;
  }

  #ksme-education .ed-toolbar {
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 13px;
    margin-top: 27px;
  }

  #ksme-education #ed-year-title {
    width: 100%;
    font-size: 20px;
  }

  #ksme-education .ed-year-picker {
    justify-content: space-between;
    width: 100%;
  }

  #ksme-education #ed-year-select {
    min-width: 124px;
  }

  #ksme-education .ed-filter-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    margin: 17px 0;
  }

  #ksme-education .ed-filters {
    width: 100%;
    gap: 7px;
  }

  #ksme-education .ed-filter {
    min-height: 40px;
    padding: 8px 11px;
    font-size: 12px;
  }

  #ksme-education .ed-course-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 13px;
  }

  #ksme-education .ed-course {
    padding: 21px;
  }

  #ksme-education .ed-course-title {
    min-height: 70px;
    margin-bottom: 15px;
    font-size: 18px;
  }

  #ksme-education .ed-meta {
    font-size: 13px;
  }

  #ksme-education .ed-card-footer {
    padding-top: 20px;
  }

  #ksme-education :where(.ed-detail-button, .ed-register-link) {
    min-height: 44px;
    font-size: 13px;
  }

  #ksme-education .ed-notice {
    font-size: 11px;
  }

  #ksme-education .ed-custom-training {
    margin-top: 29px;
    padding-top: 25px;
  }

  #ksme-education .ed-custom-training > h2 {
    font-size: 19px;
  }

  #ksme-education .ed-custom-training > p {
    font-size: 13px;
  }

  #ksme-education .ed-contacts {
    grid-template-columns: minmax(0, 1fr);
    gap: 11px;
  }

  #ksme-education .ed-contact {
    padding: 18px 20px;
  }

  #ksme-education .ed-dialog-head {
    align-items: flex-start;
    gap: 10px;
    padding: 18px;
  }

  #ksme-education #ed-dialog-title {
    font-size: 18px;
  }

  #ksme-education .ed-dialog-close {
    min-height: 44px;
    padding: 9px 12px;
  }

  #ksme-education .ed-dialog-body {
    padding: 18px;
  }

  #ksme-education .ed-full-title {
    font-size: 12px;
  }

  #ksme-education .ed-dialog-meta {
    padding: 15px;
    font-size: 12px;
  }

  #ksme-education .ed-dialog-meta > div {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 8px;
  }

  #ksme-education .ed-detail-sections {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin-top: 18px;
  }

  #ksme-education .ed-detail-section {
    padding: 17px;
  }
}

@media (max-width: 600px) {
  #ksme-education .ed-detail-sections {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  #ksme-education *,
  #ksme-education *::before,
  #ksme-education *::after {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }
}










/* ========================================
   국제교류사업 콘텐츠 전용
   공통 상단·좌측 메뉴·하단에는 적용하지 않음
======================================== */

#ksme-international {
  --ix-ink: #192b42;
  --ix-blue: #215de5;
  --ix-muted: #6d7b8e;
  --ix-line: #e3e8ef;

  container: ksme-international / inline-size;

  width: 100%;
  min-width: 0;
  color: var(--ix-ink);

  font: 15px/1.7
    "Pretendard",
    "Noto Sans KR",
    "Malgun Gothic",
    sans-serif;

  word-break: keep-all;
}

#ksme-international *,
#ksme-international *::before,
#ksme-international *::after {
  box-sizing: border-box;
}

#ksme-international h2,
#ksme-international h3,
#ksme-international h4,
#ksme-international p {
  margin: 0;
}

#ksme-international a {
  color: inherit;
  text-decoration: none;
}

#ksme-international summary {
  cursor: pointer;
}

#ksme-international summary:focus-visible,
#ksme-international a:focus-visible {
  outline: 3px solid #8fb1ff;
  outline-offset: 4px;
}

/* ========================================
   소개 영역
======================================== */

#ksme-international .ix-hero {
  padding: 30px 32px;
  border: 1px solid #e1eaff;
  border-radius: 14px;
  background: #f0f5ff;
}

#ksme-international .ix-eyebrow {
  color: #557bb9;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
}

#ksme-international .ix-hero h2 {
  margin-top: 11px;
  font-size: 29px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -.045em;
}

#ksme-international .ix-hero-copy {
  margin-top: 12px;
  color: #6b7d96;
  font-size: 13px;
  line-height: 1.85;
}

#ksme-international .ix-topics {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;

  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

#ksme-international .ix-topics li {
  padding: 5px 10px;

  border: 1px solid #dce6f8;
  border-radius: 5px;
  background: #f8fbff;

  color: #6a84ad;
  font-size: 10px;
}

/* ========================================
   섹션 제목
======================================== */

#ksme-international .ix-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;

  margin: 31px 0 18px;
}

#ksme-international .ix-heading h2 {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -.035em;
}

#ksme-international .ix-heading p {
  margin-top: 6px;
  color: var(--ix-muted);
  font-size: 12px;
}

#ksme-international .ix-count {
  flex-shrink: 0;
  color: #8a97a9;
  font-size: 11px;
  white-space: nowrap;
}

#ksme-international .ix-count strong {
  color: #376aaa;
  font-weight: 600;
}

/* ========================================
   해외 협정 학회 카드
======================================== */

#ksme-international .ix-partners {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 13px;
}

#ksme-international .ix-partner {
  display: flex;
  flex-direction: column;

  min-width: 0;
  padding: 18px 17px;

  border: 1px solid var(--ix-line);
  border-radius: 10px;
  background: #fff;
}

#ksme-international .ix-partner-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;

  margin-bottom: 13px;
}

#ksme-international .ix-region {
  display: inline-block;
  padding: 3px 7px;

  border-radius: 4px;
  background: #f1f5fb;

  color: #6d85a7;
  font-size: 10px;
  font-weight: 500;
}

#ksme-international .ix-index {
  color: #b2bfd1;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
}

#ksme-international .ix-partner h3 {
  min-height: 43px;

  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -.03em;
}

#ksme-international .ix-agreement-date {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;

  margin-top: 15px;
  padding-top: 11px;
  border-top: 1px solid #edf1f6;

  color: #8695aa;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
}

#ksme-international .ix-agreement-date time {
  color: #627d9f;
}

/* ========================================
   협정 원문 펼치기
======================================== */

#ksme-international .ix-agreement-detail {
  margin-top: 15px;
  overflow: hidden;

  border: 1px solid var(--ix-line);
  border-radius: 9px;
}

#ksme-international .ix-agreement-detail summary {
  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: 13px 18px;
  list-style: none;
  background: #f8fafc;

  color: #677e9c;
  font-size: 12px;
}

#ksme-international .ix-agreement-detail summary::-webkit-details-marker,
#ksme-international .ix-record summary::-webkit-details-marker {
  display: none;
}

#ksme-international .ix-agreement-detail summary::after,
#ksme-international .ix-record summary::after {
  content: "+";
  color: #8ca3c4;
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
}

#ksme-international .ix-agreement-detail[open] summary::after,
#ksme-international .ix-record[open] summary::after {
  content: "\2212";
}

#ksme-international .ix-agreement-detail p {
  padding: 0 18px 18px;
  background: #f8fafc;

  color: #6c7b90;
  font-size: 12px;
  line-height: 1.95;
  overflow-wrap: anywhere;
}

/* ========================================
   국제학술교류 사업 카드
======================================== */

#ksme-international .ix-program-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 18px;
}

#ksme-international .ix-program {
  min-width: 0;
  overflow: hidden;

  border: 1px solid var(--ix-line);
  border-radius: 12px;
  background: #fff;
}

#ksme-international .ix-program-body {
  padding: 23px 24px 22px;
}

#ksme-international .ix-program-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  margin-bottom: 15px;
}

#ksme-international .ix-badge {
  display: inline-block;
  padding: 4px 8px;

  border-radius: 5px;
  background: #edf3ff;

  color: #5077b0;
  font-size: 10px;
  font-weight: 600;
}

#ksme-international .ix-program h3 {
  min-height: 51px;

  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -.035em;
}

#ksme-international .ix-program-en {
  margin-top: 4px;
  color: #95a0b0;
  font-size: 10px;
}

#ksme-international .ix-program-copy {
  min-height: 94px;
  margin-top: 18px;

  color: #68788d;
  font-size: 12px;
  line-height: 1.95;
}

#ksme-international .ix-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;

  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

#ksme-international .ix-facts li {
  padding: 4px 8px;

  border-radius: 4px;
  background: #f4f7fb;

  color: #7b8da5;
  font-size: 10px;
}

/* ========================================
   IFToMM 설치·조직 기록
======================================== */

#ksme-international .ix-record {
  border-top: 1px solid #edf1f6;
}

#ksme-international .ix-record summary {
  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: 13px 24px;
  list-style: none;

  color: #647d9d;
  font-size: 12px;
  font-weight: 500;
}

#ksme-international .ix-record[open] summary {
  background: #f7faff;
  color: var(--ix-blue);
}

#ksme-international .ix-record-content {
  padding: 0 24px 23px;
  background: #f7faff;
}

#ksme-international .ix-record-name {
  margin: 0 0 10px;

  color: #526e94;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.8;
}

#ksme-international .ix-record-content h4 {
  margin-top: 18px;
  margin-bottom: 9px;

  color: #456590;
  font-size: 13px;
  font-weight: 600;
}

#ksme-international .ix-record-content p {
  margin-bottom: 12px;

  color: #6c7a8e;
  font-size: 12px;
  line-height: 1.95;
  white-space: pre-line;
  overflow-wrap: anywhere;
  word-break: normal;
}

#ksme-international .ix-record-note {
  color: #95a2b4 !important;
  font-size: 10px !important;
}

/* ========================================
   세부 안내 없음 및 하단 안내
======================================== */

#ksme-international .ix-empty-copy {
  color: #94a0b1;
}

#ksme-international .ix-source-note {
  margin-top: 22px;
  padding: 16px 19px;

  border-radius: 9px;
  background: #f7f9fc;

  color: #8794a8;
  font-size: 11px;
  line-height: 1.85;
}

/* ========================================
   반응형
   콘텐츠 영역 너비 기준
======================================== */

@container ksme-international (max-width: 800px) {
  #ksme-international .ix-partners {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@container ksme-international (max-width: 540px) {
  #ksme-international .ix-hero {
    padding: 24px;
  }

  #ksme-international .ix-hero h2 {
    font-size: 24px;
  }

  #ksme-international .ix-hero-copy {
    font-size: 12px;
  }

  #ksme-international .ix-heading {
    display: block;
    margin-top: 27px;
  }

  #ksme-international .ix-heading h2 {
    font-size: 20px;
  }

  #ksme-international .ix-count {
    display: block;
    margin-top: 10px;
  }

  #ksme-international .ix-partners {
    gap: 10px;
  }

  #ksme-international .ix-partner {
    padding: 16px 14px;
  }

  #ksme-international .ix-partner h3 {
    font-size: 14px;
  }

  #ksme-international .ix-agreement-date {
    display: block;
  }

  #ksme-international .ix-agreement-date time {
    display: block;
    margin-top: 3px;
  }

  #ksme-international .ix-program-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  #ksme-international .ix-program-body {
    padding: 22px;
  }

  #ksme-international .ix-program h3 {
    min-height: 0;
  }

  #ksme-international .ix-program-copy {
    min-height: 0;
  }

  #ksme-international .ix-record summary {
    padding-inline: 22px;
  }

  #ksme-international .ix-record-content {
    padding-inline: 22px;
  }
}









/* 공로표창 및 연구장려 전용 CSS */

/* 기본 설정 */
.ksme-awards {
    --award-navy: #142d4d;
    --award-teal: #007f82;
    --award-line: #dfe6ed;
    --award-ink: #243449;
    --award-muted: #617184;

    width: 100%;
    min-width: 0;
    color: var(--award-ink);
    font-family: inherit;
    font-size: 16px;
    line-height: 1.7;
}

.ksme-awards *,
.ksme-awards *::before,
.ksme-awards *::after {
    box-sizing: border-box;
}

/* 상단 소개 */
.ksme-awards .ksme-awards-hero {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 120px;
    gap: 24px;
    align-items: center;
    margin: 0 0 34px;
    padding: 38px 40px;
    border-radius: 18px;
    color: #fff;
    background: linear-gradient(
        120deg,
        #142d4d 0%,
        #183c59 70%,
        #146369 100%
    );
}

.ksme-awards .ksme-awards-kicker {
    margin: 0 0 12px;
    color: #aadad8;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
}

.ksme-awards .ksme-awards-hero h2 {
    margin: 0;
    padding: 0;
    border: 0;
    color: #fff;
    font-size: clamp(24px, 2.2vw, 32px);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: -0.045em;
    word-break: keep-all;
}

.ksme-awards .ksme-awards-lead {
    max-width: 590px;
    margin: 15px 0 0;
    color: #dce8f1;
    font-size: 14px;
    line-height: 1.85;
    word-break: keep-all;
}

/* 상단 트로피 아이콘 */
.ksme-awards .ksme-awards-mark {
    width: 114px;
    height: 114px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(184, 225, 222, 0.32);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.04);
}

.ksme-awards .ksme-awards-mark svg {
    display: block;
    width: 56px;
    height: 56px;
    color: #a5dcd7;
}

/* 목록 제목 */
.ksme-awards .ksme-awards-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 18px;
}

.ksme-awards .ksme-awards-section-head h3 {
    margin: 0 0 4px;
    padding: 0;
    border: 0;
    color: var(--award-navy);
    font-size: 23px;
    line-height: 1.5;
    letter-spacing: -0.04em;
}

.ksme-awards .ksme-awards-section-head p {
    margin: 0;
    color: var(--award-muted);
    font-size: 14px;
}

.ksme-awards .ksme-awards-guide-label {
    flex: none;
    color: var(--award-teal);
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

/* 상별 카드 목록 */
.ksme-awards .ksme-awards-list {
    display: grid;
    gap: 12px;
}

.ksme-awards .ksme-award {
    min-width: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--award-line);
    border-radius: 12px;
    background: #fff;
}

.ksme-awards .ksme-award-head {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 22px 24px;
}

/* 첫 번째 대표 카드 */
.ksme-awards .ksme-award-featured {
    border-color: #b9cddc;
}

.ksme-awards .ksme-award-featured .ksme-award-head {
    background: #f3f7fa;
}

/* 화면 표시 순번 */
.ksme-awards .ksme-award-number {
    flex: none;
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    color: #35606d;
    background: #eef5f5;
    font-size: 13px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.ksme-awards .ksme-award-featured .ksme-award-number {
    color: #fff;
    background: var(--award-navy);
}

/* 상 이름 및 영문명 */
.ksme-awards .ksme-award-title-group {
    flex: 1;
    min-width: 0;
}

.ksme-awards .ksme-award h4 {
    margin: 0;
    padding: 0;
    color: var(--award-navy);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: -0.035em;
    overflow-wrap: anywhere;
    word-break: keep-all;
}

.ksme-awards .ksme-award-en {
    margin: 4px 0 0;
    color: var(--award-muted);
    font-size: 12px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

/* 수상자 명단 버튼 */
.ksme-awards .ksme-award-link {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 42px;
    padding: 9px 14px;
    border: 1px solid #bfd0d9;
    border-radius: 7px;
    color: #234b61;
    background: #fff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
    text-decoration: none;
    white-space: nowrap;
    transition:
        background 0.15s,
        border-color 0.15s,
        color 0.15s;
}

.ksme-awards .ksme-award-link:hover {
    color: #fff;
    border-color: var(--award-navy);
    background: var(--award-navy);
}

.ksme-awards .ksme-award-link:focus-visible,
.ksme-awards summary:focus-visible {
    outline: 3px solid #00a3a6;
    outline-offset: 3px;
}

/* 설명 접기·펼치기 */
.ksme-awards .ksme-award-details {
    margin: 0;
    padding: 0;
    border-top: 1px solid #edf1f5;
}

.ksme-awards .ksme-award-details summary {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0;
    padding: 12px 24px;
    list-style: none;
    color: #5f7083;
    background: #fff;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    user-select: none;
}

.ksme-awards .ksme-award-details summary::-webkit-details-marker {
    display: none;
}

.ksme-awards .ksme-award-details summary::after {
    content: "+";
    flex: none;
    color: var(--award-teal);
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
}

.ksme-awards .ksme-award-details[open] summary {
    color: var(--award-teal);
    background: #f8fafb;
}

.ksme-awards .ksme-award-details[open] summary::after {
    content: "\2212";
}

/* 상세 설명 본문 */
.ksme-awards .ksme-award-body {
    padding: 4px 24px 22px;
    background: #f8fafb;
    color: #46576b;
    font-size: 14px;
    line-height: 1.95;
    overflow-wrap: anywhere;
    word-break: keep-all;
}

.ksme-awards .ksme-award-body p {
    margin: 12px 0 0;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

.ksme-awards .ksme-award-body p:first-child {
    margin-top: 10px;
}

/* 수상자 명단 화면의 안내 복귀 버튼 */
.ksme-awards-back {
    margin: 0 0 20px;
    font-family: inherit;
}

.ksme-awards-back a {
    display: inline-block;
    padding: 9px 14px;
    border: 1px solid #d3dfe7;
    border-radius: 7px;
    color: #234b61;
    background: #f7fafb;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 700;
    text-decoration: none;
}

.ksme-awards-back a:hover {
    background: #eef5f5;
}

.ksme-awards-back a:focus-visible {
    outline: 3px solid #00a3a6;
    outline-offset: 3px;
}

/* 중간 화면 */
@media (max-width: 1100px) {
    .ksme-awards .ksme-award-head {
        gap: 14px;
        padding: 20px;
    }

    .ksme-awards .ksme-award h4 {
        font-size: 17px;
    }
}

/* 모바일 */
@media (max-width: 640px) {
    .ksme-awards .ksme-awards-hero {
        grid-template-columns: 1fr;
        gap: 0;
        padding: 27px 23px;
        border-radius: 12px;
        margin-bottom: 27px;
    }

    .ksme-awards .ksme-awards-mark {
        display: none;
    }

    .ksme-awards .ksme-awards-hero h2 {
        font-size: 25px;
    }

    .ksme-awards .ksme-awards-lead {
        font-size: 13px;
    }

    .ksme-awards .ksme-awards-section-head {
        display: block;
    }

    .ksme-awards .ksme-awards-guide-label {
        display: none;
    }

    .ksme-awards .ksme-awards-section-head h3 {
        font-size: 21px;
    }

    .ksme-awards .ksme-awards-section-head p {
        font-size: 13px;
    }

    .ksme-awards .ksme-award-head {
        flex-wrap: wrap;
        gap: 12px;
        padding: 19px 18px;
    }

    .ksme-awards .ksme-award-number {
        width: 30px;
        height: 30px;
        border-radius: 7px;
        font-size: 12px;
    }

    .ksme-awards .ksme-award-title-group {
        flex: 1;
        min-width: calc(100% - 45px);
    }

    .ksme-awards .ksme-award h4 {
        font-size: 17px;
    }

    .ksme-awards .ksme-award-link {
        margin-left: 42px;
        min-height: 40px;
        padding: 8px 13px;
    }

    .ksme-awards .ksme-award-details summary {
        padding: 12px 18px;
    }

    .ksme-awards .ksme-award-body {
        padding: 3px 18px 19px;
        font-size: 13px;
    }
}

/* 움직임 최소화 설정 */
@media (prefers-reduced-motion: reduce) {
    .ksme-awards .ksme-award-link {
        transition: none;
    }
}







/* 수상자 명단 전용 CSS */

/* 기본 설정 */
#sub_content .ksme-award-recipients {
    --recipient-navy: #142d4d;
    --recipient-teal: #007f82;
    --recipient-line: #dce5ed;

    width: 100%;
    min-width: 0;
    color: #33465a;
    font-family: inherit;
    font-size: 15px;
    line-height: 1.8;
}

#sub_content .ksme-award-recipients *,
#sub_content .ksme-award-recipients *::before,
#sub_content .ksme-award-recipients *::after {
    box-sizing: border-box;
}

/* 명단 제목 */
#sub_content .ksme-award-recipients .ksme-recipient-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    margin: 0 0 24px;
    padding: 30px 32px;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(120deg, #142d4d, #1d4c64);
}

#sub_content .ksme-award-recipients .ksme-recipient-heading-text {
    flex: 1;
    min-width: 240px;
}

#sub_content .ksme-award-recipients .ksme-recipient-kicker {
    margin: 0 0 9px;
    color: #a8d9d7;
    font-size: 11px;
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0.14em;
}

#sub_content .ksme-award-recipients .ksme-recipient-heading h3 {
    margin: 0;
    padding: 0;
    border: 0;
    color: #fff;
    font-size: 25px;
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: -0.035em;
    word-break: keep-all;
    overflow-wrap: anywhere;
}

/* 상별 명단 탭 */
#sub_content .ksme-award-recipients .ksme-recipient-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

#sub_content .ksme-award-recipients .ksme-recipient-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 14px;
    border: 1px solid rgba(255, 255, 255, 0.32);
    border-radius: 7px;
    color: #dfedf3;
    background: transparent;
    font-size: 12px;
    line-height: 1.5;
    font-weight: 700;
    text-decoration: none;
}

#sub_content .ksme-award-recipients .ksme-recipient-tab.is-active {
    border-color: #fff;
    color: #16384f;
    background: #fff;
}

#sub_content .ksme-award-recipients .ksme-recipient-tab:hover {
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
}

#sub_content .ksme-award-recipients .ksme-recipient-tab.is-active:hover {
    background: #edf7f6;
    color: #16384f;
}

/* 본문 레이아웃 */
#sub_content .ksme-award-recipients .ksme-recipient-layout,
#sub_content .ksme-award-recipients .ksme-recipient-layout-row,
#sub_content .ksme-award-recipients .ksme-recipient-layout-cell {
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
}

/* 상 소개 */
#sub_content .ksme-award-recipients .ksme-recipient-intro {
    margin: 0 0 22px;
    padding: 18px 22px;
    border: 1px solid #e1e9ef;
    border-left: 3px solid var(--recipient-teal);
    border-radius: 0 9px 9px 0;
    color: #506176;
    background: #f5f8fa;
    font-size: 14px;
    line-height: 1.9;
    word-break: keep-all;
    overflow-wrap: anywhere;
}

#sub_content .ksme-award-recipients .ksme-recipient-intro p {
    margin: 0 0 10px;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

#sub_content .ksme-award-recipients .ksme-recipient-intro p:last-child {
    margin-bottom: 0;
}

/* 규정 버튼 및 연도 선택 */
#sub_content .ksme-award-recipients .ksme-recipient-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 18px;
}

#sub_content .ksme-award-recipients .ksme-recipient-toolbar > .ksme-recipient-layout-cell {
    width: auto;
}

#sub_content .ksme-award-recipients .ksme-recipient-resource {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 16px;
    border: 1px solid #c9d8e2;
    border-radius: 7px;
    color: #31566b;
    background: #fff;
    font-size: 13px;
    line-height: 1.5;
    font-weight: 700;
    text-decoration: none;
}

#sub_content .ksme-award-recipients .ksme-recipient-resource:hover {
    border-color: var(--recipient-teal);
    color: var(--recipient-teal);
    background: #f5faf9;
}

#sub_content .ksme-award-recipients .ksme-recipient-select {
    width: auto;
    min-width: 235px;
    max-width: 100%;
    height: 44px;
    margin: 0;
    padding: 8px 36px 8px 13px;
    border: 1px solid #c9d8e2;
    border-radius: 7px;
    color: #28475c;
    background: #fff;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.5;
    appearance: auto;
    cursor: pointer;
}

/* 표 스크롤 영역 */
#sub_content .ksme-award-recipients .ksme-recipient-table-scroll {
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    margin: 22px 0;
    border: 1px solid var(--recipient-line);
    border-radius: 10px;
    background: #fff;
    -webkit-overflow-scrolling: touch;
}

/* 명단 표 */
#sub_content .ksme-award-recipients table.ksme-recipient-table {
    width: 100%;
    min-width: 620px;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    border-collapse: collapse;
    border-spacing: 0;
    table-layout: auto;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.8;
}

#sub_content .ksme-award-recipients table.ksme-recipient-cols-4 {
    min-width: 760px;
}

#sub_content .ksme-award-recipients table.ksme-recipient-cols-5 {
    min-width: 940px;
}

#sub_content .ksme-award-recipients table.ksme-recipient-cols-6 {
    min-width: 1060px;
}

#sub_content .ksme-award-recipients .ksme-recipient-table td,
#sub_content .ksme-award-recipients .ksme-recipient-table th {
    height: auto;
    padding: 14px 16px;
    border: 0;
    border-right: 1px solid #e7edf2;
    border-bottom: 1px solid #e4eaf0;
    color: #3d5063;
    background: transparent;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.8;
    vertical-align: middle;
    text-align: left;
    word-break: normal;
    overflow-wrap: anywhere;
}

#sub_content .ksme-award-recipients .ksme-recipient-table td:last-child,
#sub_content .ksme-award-recipients .ksme-recipient-table th:last-child {
    border-right: 0;
}

#sub_content .ksme-award-recipients .ksme-recipient-table tr:last-child td {
    border-bottom: 0;
}

/* 표 머리글 */
#sub_content .ksme-award-recipients .ksme-recipient-table .ksme-recipient-table-head th {
    padding: 13px 16px;
    border-color: #314f6a;
    color: #fff;
    background: var(--recipient-navy);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.6;
    text-align: center;
    word-break: keep-all;
}

/* 연도·부문별 구분 */
#sub_content .ksme-award-recipients .ksme-recipient-table .ksme-recipient-group-odd {
    background: #fff;
}

#sub_content .ksme-award-recipients .ksme-recipient-table .ksme-recipient-group-even {
    background: #f5f8fb;
}

#sub_content .ksme-award-recipients .ksme-recipient-table .ksme-recipient-group-start td {
    border-top: 1px solid #cad8e3;
}

/* 열별 표시 */
#sub_content .ksme-award-recipients .ksme-recipient-table td.ksme-recipient-cell-year {
    width: 88px;
    min-width: 88px;
    text-align: center;
    white-space: nowrap;
    color: #264a60;
    font-weight: 700;
}

#sub_content .ksme-award-recipients .ksme-recipient-table td.ksme-recipient-cell-name {
    min-width: 116px;
    text-align: center;
    word-break: keep-all;
}

#sub_content .ksme-award-recipients .ksme-recipient-table td.ksme-recipient-cell-paper {
    min-width: 260px;
    text-align: left;
}

#sub_content .ksme-award-recipients .ksme-recipient-table td.ksme-recipient-cell-left {
    text-align: left;
}

/* 표 안의 기존 문단 스타일 정리 */
#sub_content .ksme-award-recipients .ksme-recipient-table p,
#sub_content .ksme-award-recipients .ksme-recipient-table div {
    margin: 0;
    padding: 0;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

#sub_content .ksme-award-recipients .ksme-recipient-table .bold {
    font-weight: inherit;
}

/* 하단 이동 버튼 */
#sub_content .ksme-award-recipients .ksme-recipient-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin: 22px 0 0;
    padding: 0;
    text-align: right;
}

#sub_content .ksme-award-recipients .ksme-recipient-footer a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 16px;
    border: 1px solid #cbd9e3;
    border-radius: 7px;
    color: #31566b;
    background: #fff;
    font-size: 13px;
    line-height: 1.5;
    font-weight: 700;
    text-decoration: none;
}

#sub_content .ksme-award-recipients .ksme-recipient-footer a:hover {
    color: var(--recipient-teal);
    border-color: var(--recipient-teal);
    background: #f5faf9;
}

/* 키보드 포커스 */
#sub_content .ksme-award-recipients a:focus-visible,
#sub_content .ksme-award-recipients select:focus-visible,
#sub_content .ksme-award-recipients .ksme-recipient-table-scroll:focus-visible {
    outline: 3px solid #00a3a6;
    outline-offset: 3px;
}

/* 모바일 */
@media (max-width: 640px) {
    #sub_content .ksme-award-recipients .ksme-recipient-heading {
        padding: 23px 21px;
        gap: 18px;
        border-radius: 11px;
    }

    #sub_content .ksme-award-recipients .ksme-recipient-heading-text {
        min-width: 0;
        flex-basis: 100%;
    }

    #sub_content .ksme-award-recipients .ksme-recipient-heading h3 {
        font-size: 21px;
    }

    #sub_content .ksme-award-recipients .ksme-recipient-tabs {
        width: 100%;
    }

    #sub_content .ksme-award-recipients .ksme-recipient-tab {
        flex: 1;
        min-height: 44px;
        padding: 9px 10px;
        font-size: 12px;
    }

    #sub_content .ksme-award-recipients .ksme-recipient-intro {
        padding: 15px 17px;
        font-size: 13px;
    }

    #sub_content .ksme-award-recipients .ksme-recipient-toolbar {
        display: block;
    }

    #sub_content .ksme-award-recipients .ksme-recipient-toolbar > .ksme-recipient-layout-cell {
        width: 100%;
        margin-bottom: 10px;
    }

    #sub_content .ksme-award-recipients .ksme-recipient-select {
        width: 100%;
        min-width: 0;
    }

    #sub_content .ksme-award-recipients .ksme-recipient-table td,
    #sub_content .ksme-award-recipients .ksme-recipient-table th {
        padding: 12px 13px;
        font-size: 13px;
    }

    #sub_content .ksme-award-recipients .ksme-recipient-footer a {
        min-height: 44px;
    }
}

/* 병합된 연도·부문명을 각 묶음의 상단에 표시 */
#sub_content .ksme-award-recipients .ksme-recipient-table td.ksme-recipient-col-1 {
    min-width: 88px;
    vertical-align: top;
    text-align: center;
    padding-top: 18px;
}

#sub_content .ksme-award-recipients .ksme-recipient-table th.ksme-recipient-col-1 {
    min-width: 88px;
}








/* ==================================================
   학술대회 공통 디자인
   기존 sub.css 다음에 적용
   ================================================== */

/* 본문 기본 설정 */
.sub-body__main:has(.ksme-conf) {
  min-width: 0;
}

.sub-body__main:has(.ksme-conf) > .box {
  padding: 0;
  border: 0;
}

.ksme-conf {
  --conf-blue: #1559a6;
  --conf-ink: #172c45;
  --conf-line: #dce4ed;

  color: var(--conf-ink);
  font-size: 15px;
  line-height: 1.6;
}

.ksme-conf * {
  box-sizing: border-box;
}

/* ==================================================
   상단 안내 / 연도 선택
   ================================================== */

.ksme-conf__toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;

  margin: 0 0 32px;
  padding: 23px 26px;

  background: #f3f7fc;
  border: 1px solid #e1e9f2;
  border-radius: 12px;
}

.ksme-conf__eyebrow {
  display: block;
  margin-bottom: 5px;

  color: var(--conf-blue);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.3px;
}

.ksme-conf__lead {
  margin: 0;

  font-size: 21px;
  font-weight: 700;
}

.ksme-conf__year {
  display: flex;
  align-items: center;
  gap: 12px;

  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
}

.ksme-conf select {
  min-width: 112px;
  height: 44px;
  padding: 0 14px;

  color: var(--conf-ink);
  font: inherit;

  background: #fff;
  border: 1px solid #cad6e4;
  border-radius: 7px;
}

/* ==================================================
   섹션 제목 / 행사 수 / 안내 문구
   ================================================== */

.ksme-conf__section {
  margin: 0 0 36px;
}

.ksme-conf__heading {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;

  margin-bottom: 14px;
}

.ksme-conf__heading h4 {
  margin: 0;

  font-size: 21px;
  font-weight: 700;
  letter-spacing: -0.6px;
}

.ksme-conf__count {
  display: inline-flex;
  justify-content: center;
  align-items: center;

  min-width: 27px;
  height: 25px;
  margin-left: 8px;

  color: var(--conf-blue);
  font-size: 13px;
  vertical-align: middle;

  background: #eaf2fc;
  border-radius: 6px;
}

.ksme-conf__hint {
  color: #77879a;
  font-size: 13px;
}

/* ==================================================
   연간 행사일정
   현재 이미지 / 추후 HTML 표 공통 영역
   ================================================== */

.ksme-conf__schedule {
  overflow: hidden;

  background: #fff;
  border: 1px solid var(--conf-line);
  border-radius: 10px;
}

.ksme-conf__schedule img {
  display: block;

  width: auto;
  max-width: 100%;
  height: auto;
  margin: auto;
}

/* 추후 이미지 대신 사용하는 연간 일정표 */
.ksme-conf__schedule .ksme-conf__table {
  min-width: 620px;
}

.ksme-conf__schedule .ksme-conf__table th:first-child {
  width: auto;
}

/* ==================================================
   진행일정 / 지난행사 표
   ================================================== */

.ksme-conf__scroll {
  overflow: auto;
  border-top: 2px solid #245488;
}

.ksme-conf__table {
  width: 100%;
  margin: 0;

  border-collapse: collapse;
  table-layout: fixed;
}

.ksme-conf__table th {
  padding: 14px 12px;

  color: #52667d;
  font-size: 14px;
  font-weight: 600;
  text-align: center;

  background: #f3f6fa;
  border-bottom: 1px solid var(--conf-line);
}

.ksme-conf__table td {
  padding: 19px 14px;

  font-size: 14px;
  vertical-align: middle;
  overflow-wrap: anywhere;

  background: #fff;
  border-bottom: 1px solid var(--conf-line);
}

.ksme-conf__table th:first-child,
.ksme-conf__table td:first-child {
  padding-left: 20px;
  text-align: left;
}

.ksme-conf__table tr:hover td {
  background: #f9fbfe;
}

/* 행사명 링크 */
.ksme-conf__table a {
  color: var(--conf-ink);
  font-weight: 600;
  line-height: 1.65;
  text-decoration: none;
}

.ksme-conf__table a:hover {
  color: var(--conf-blue);
  text-decoration: underline;
}

.ksme-conf__table a:focus-visible,
.ksme-conf select:focus-visible {
  outline: 2px solid var(--conf-blue);
  outline-offset: 4px;
}

/* 일자 */
.ksme-conf__date {
  color: #52667d;
  font-size: 13px !important;
  font-variant-numeric: tabular-nums;
  text-align: center;
  white-space: nowrap;
}

/* 장소 */
.ksme-conf__place {
  color: #63748a;
}

/* 상태 */
.ksme-conf__state {
  text-align: center;
}

.ksme-conf__badge {
  display: inline-block;
  padding: 3px 10px;

  color: #6c7a89;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;

  background: #eff2f5;
  border-radius: 5px;
}

.ksme-conf__badge--active {
  color: #1760a5;
  background: #e9f2ff;
}

.ksme-conf__badge--waiting {
  color: #916520;
  background: #fff4da;
}

/* ==================================================
   일정이 없는 경우
   ================================================== */

.ksme-conf__empty {
  padding: 38px 16px !important;

  color: #718196 !important;
  font-weight: 400;
  text-align: center !important;
}

.ksme-conf__empty strong {
  display: block;
  margin-bottom: 3px;

  color: #50647b;
  font-size: 15px;
  font-weight: 500;
}

/* ==================================================
   지난행사 / 페이지 이동
   ================================================== */

.ksme-conf__section--past .ksme-conf__scroll {
  border-top-color: #8b9db1;
}

.ksme-conf__section--past .ksme-conf__count {
  color: #6f8196;
  background: #eff2f6;
}

.ksme-conf__paging {
  margin-top: 18px;
  text-align: center;
}

/* ==================================================
   모바일
   ================================================== */

@media (max-width: 767px) {
  /* 상단 안내 */
  .ksme-conf__toolbar {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;

    margin-bottom: 26px;
    padding: 19px 18px;
  }

  .ksme-conf__lead {
    font-size: 19px;
  }

  .ksme-conf__year {
    justify-content: space-between;
    width: 100%;
  }

  .ksme-conf__heading h4 {
    font-size: 19px;
  }

  .ksme-conf__hint {
    font-size: 12px;
  }

  /* 행사 목록은 카드형으로 전환 */
  .ksme-conf__table:not(.ksme-conf__annual-table) colgroup,
  .ksme-conf__table:not(.ksme-conf__annual-table) thead {
    display: none;
  }

  .ksme-conf__table:not(.ksme-conf__annual-table),
  .ksme-conf__table:not(.ksme-conf__annual-table) tbody {
    display: block;
  }

  .ksme-conf__table:not(.ksme-conf__annual-table) tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 10px;

    padding: 16px 0;
    border-bottom: 1px solid var(--conf-line);
  }

  .ksme-conf__table:not(.ksme-conf__annual-table) td {
    display: block;

    padding: 0 4px !important;

    background: transparent !important;
    border: 0;
  }

  .ksme-conf__table:not(.ksme-conf__annual-table) td:first-child {
    grid-column: 1 / -1;
    font-size: 15px;
  }

  .ksme-conf__date {
    text-align: left;
  }

  .ksme-conf__place {
    grid-column: 1;
    grid-row: 3;
  }

  .ksme-conf__state {
    grid-column: 2;
    grid-row: 2 / 4;
    align-self: center;
  }

  /* 빈 일정 안내 */
  .ksme-conf__table:not(.ksme-conf__annual-table)
  tr:has(.ksme-conf__empty) {
    display: block;
  }

  .ksme-conf__empty {
    padding: 25px 10px !important;
  }

  /* 연간 일정 이미지 및 표는 가로 스크롤 */
  .ksme-conf__schedule {
    overflow-x: auto;
  }

  .ksme-conf__schedule img {
    width: 100%;
    min-width: 600px;
    max-width: none;
  }
}


/* 본문 안쪽 여백 */
.sub-body__main:has(.ksme-conf) > .box {
  padding: 28px 32px 32px;
}

/* 태블릿 */
@media (max-width: 1024px) {
  .sub-body__main:has(.ksme-conf) > .box {
    padding: 24px;
  }
}

/* 모바일 */
@media (max-width: 767px) {
  .sub-body__main:has(.ksme-conf) > .box {
    padding: 20px 16px;
  }
}







/* ==================================================
   행사 상세페이지 전용
   기존 sub.css 다음에 연결
   ================================================== */

/* 본문 여백 */
.sub--conference-view .sub-body__main {
  min-width: 0;
}

.sub--conference-view .sub-body__main > .box {
  padding: 28px 32px 32px;
  border: 0;
}

/* 기본 설정 */
.ksme-conf-view {
  --cv-ink: #172c45;
  --cv-blue: #1559a6;
  --cv-line: #dce4ed;

  min-width: 0;
  color: var(--cv-ink);
  font-size: 15px;
  line-height: 1.7;
}

.ksme-conf-view * {
  box-sizing: border-box;
}

/* ==================================================
   행사 제목 영역
   ================================================== */

.ksme-conf-view__head {
  margin-bottom: 28px;
  padding: 0 0 24px;
  border-bottom: 2px solid #245488;
}

.ksme-conf-view__topline {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 14px;
}

.ksme-conf-view__eyebrow {
  color: var(--cv-blue);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.2px;
}

.ksme-conf-view__category {
  display: inline-block;
  padding: 3px 10px;

  color: var(--cv-blue);
  font-size: 12px;
  font-weight: 600;

  background: #edf4fc;
  border-radius: 5px;
}

.ksme-conf-view__title {
  margin: 0;

  font-size: 25px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -0.7px;

  overflow-wrap: anywhere;
}

/* 기존 OutputConfText 출력 스타일 초기화 */
.ksme-conf-view__title .ConfHeadTxt {
  margin: 0;
  padding: 0;

  color: inherit;
  font: inherit;

  background: none;
  border: 0;
}

/* ==================================================
   목록 버튼
   ================================================== */

.ksme-conf-view__back {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 7px;

  min-height: 40px;
  padding: 7px 15px;

  color: #425b76;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;

  background: #fff;
  border: 1px solid #ccd8e5;
  border-radius: 6px;
}

.ksme-conf-view__back:hover {
  color: var(--cv-blue);
  background: #f2f6fb;
  border-color: #9db4cd;
}

.ksme-conf-view__back:focus-visible,
.ksme-conf-view__body a:focus-visible {
  outline: 2px solid var(--cv-blue);
  outline-offset: 3px;
}

/* ==================================================
   DB에서 출력되는 행사 본문
   ================================================== */

.ksme-conf-view__body {
  min-width: 0;
  padding: 0 0 12px;
  overflow-x: auto;
}

.ksme-conf-view__body form {
  margin: 0;
  padding: 0;
}

.ksme-conf-view__body .editor {
  width: 100%;
  min-width: 0;
  line-height: 1.8;
  overflow-wrap: anywhere;
}

/* 원본 이미지의 비율 유지 */
.ksme-conf-view__body .editor img {
  max-width: 100% !important;
  height: auto !important;
  vertical-align: middle;
}

.ksme-conf-view__body .editor table {
  max-width: 100%;
}

.ksme-conf-view__body .editor a {
  text-underline-offset: 3px;
}

.ksme-conf-view__body .editor p {
  margin-top: 0;
  margin-bottom: 16px;
}

/* 하단 목록 버튼 영역 */
.ksme-conf-view__footer {
  display: flex;
  justify-content: center;

  margin-top: 30px;
  padding-top: 22px;

  border-top: 1px solid var(--cv-line);
}

/* 안내 내용이 없는 경우 */
.ksme-conf-view__empty {
  padding: 45px 20px;

  color: #718196;
  text-align: center;

  background: #f6f8fb;
  border: 1px solid var(--cv-line);
  border-radius: 8px;
}

/* ==================================================
   후원업체 / 기관
   ================================================== */

.ksme-conf-view__sponsors {
  margin-top: 36px;
  padding-top: 26px;
  border-top: 1px solid var(--cv-line);
}

.ksme-conf-view__sponsors h4 {
  margin: 0 0 18px;
  font-size: 19px;
}

.ksme-conf-view__sponsor-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.ksme-conf-view__sponsor-grid a {
  display: flex;
  justify-content: center;
  align-items: center;

  min-height: 88px;
  padding: 14px;

  background: #fff;
  border: 1px solid var(--cv-line);
  border-radius: 8px;
}

.ksme-conf-view__sponsor-grid img {
  max-width: 100%;
  max-height: 60px;
  height: auto;
  object-fit: contain;
}

/* ==================================================
   본문 반응형
   ================================================== */

@media (max-width: 1024px) {
  .sub--conference-view .sub-body__main > .box {
    padding: 24px;
  }

  .ksme-conf-view__title {
    font-size: 23px;
  }
}

@media (max-width: 767px) {
  .sub--conference-view .sub-body__main > .box {
    padding: 20px 16px;
  }

  .ksme-conf-view__head {
    margin-bottom: 22px;
    padding-bottom: 20px;
  }

  .ksme-conf-view__title {
    font-size: 21px;
  }

  .ksme-conf-view__eyebrow {
    font-size: 11px;
    letter-spacing: 0.7px;
  }

  .ksme-conf-view__back {
    min-height: 38px;
    padding: 7px 11px;
    font-size: 12px;
  }

  .ksme-conf-view__sponsor-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .ksme-conf-view__sponsor-grid a {
    min-height: 76px;
    padding: 10px;
  }
}

/* ==================================================
   좌측 행사별 메뉴
   서버의 strConfMenu 출력 영역
   ================================================== */

.sub--conference-view .lnb__extra--conference {
  padding: 0;
  overflow: hidden;

  color: #172c45;

  background: #fff;
  border: 1px solid #dce4ed;
  border-radius: 10px;
  box-shadow: none;
}

.sub--conference-view .lnb__extra--conference:empty {
  display: none;
}

/* 기존 행사 메뉴 컨테이너 초기화 */
.sub--conference-view .lnb__extra--conference .ConfMenu2 {
  width: auto;
  margin: 0;
  padding: 0;

  background: none;
  border: 0;
}

/* 행사명 */
.sub--conference-view .lnb__extra--conference .headerbar2 {
  display: block;

  height: auto;
  margin: 0;
  padding: 20px 18px;

  color: #24466f;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.65;
  white-space: normal;
  overflow-wrap: anywhere;

  background: #f2f6fc;
  border: 0;
  border-bottom: 1px solid #dce4ed;
}

/* 행사 메뉴 목록 */
.sub--conference-view .lnb__extra--conference ul {
  display: block;
  margin: 0;
  padding: 10px;

  list-style: none;
  background: none;
}

.sub--conference-view .lnb__extra--conference ul li {
  margin: 0;
  padding: 0;

  list-style: none;
  background: none;
  border: 0;
}

.sub--conference-view .lnb__extra--conference ul li + li {
  margin-top: 5px;
}

/* 메뉴 링크 */
.sub--conference-view .lnb__extra--conference ul a {
  position: relative;
  display: block;

  height: auto;
  margin: 0;
  padding: 12px 14px;

  color: #546a82;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;

  background: none;
  border: 1px solid transparent;
  border-radius: 6px;
}

.sub--conference-view .lnb__extra--conference ul a:hover {
  color: #1559a6;
  background: #f4f7fb;
  border-color: #e2eaf4;
}

/* 현재 선택된 행사 메뉴 */
.sub--conference-view .lnb__extra--conference ul a.selected,
.sub--conference-view .lnb__extra--conference ul a[aria-current="page"] {
  color: #1559a6;
  font-weight: 700;

  background: #eaf2ff;
  border-color: #d4e4fa;
}

.sub--conference-view .lnb__extra--conference ul a:focus-visible {
  outline: 2px solid #1559a6;
  outline-offset: -2px;
}

/* 기존 공통 더보기 버튼 */
.sub--conference-view .lnb__extra--conference .lnb__extra-more {
  width: calc(100% - 20px);
  margin: 0 10px 10px;
}

/* ==================================================
   모바일 행사 메뉴
   본문 위에 표시
   ================================================== */

@media (max-width: 1023px) {
  .sub--conference-view .sub-body {
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
  }

  /* 행사 메뉴를 본문보다 먼저 표시 */
  .sub--conference-view .lnb {
    display: flex;
    order: 0;
    width: 100%;
    gap: 0;
  }

  /* 공통 학술대회 메뉴는 로케이션 메뉴로 대체 */
  .sub--conference-view .lnb__menu {
    display: none;
  }

  .sub--conference-view .sub-body__main {
    order: 1;
    width: 100%;
  }

  /* 행사별 메뉴는 모바일에서도 표시 */
  .sub--conference-view .lnb__extra--conference {
    display: block;
    width: 100%;
  }

  .sub--conference-view .lnb__extra--conference:empty {
    display: none;
  }

  .sub--conference-view .lnb__extra--conference .headerbar2 {
    padding: 16px 18px;
    font-size: 15px;
  }

  /* 모바일 / 태블릿 메뉴 2열 */
  .sub--conference-view .lnb__extra--conference ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 12px;
  }

  .sub--conference-view .lnb__extra--conference ul li + li {
    margin-top: 0;
  }

  .sub--conference-view .lnb__extra--conference ul a {
    height: 100%;
    padding: 11px 12px;

    font-size: 13px;

    background: #fff;
    border-color: #e1e8f0;
  }
}

/* 작은 모바일에서는 메뉴 1열 */
@media (max-width: 480px) {
  .sub--conference-view .lnb__extra--conference ul {
    grid-template-columns: 1fr;
  }
}






/* ==================================================
   연간 HTML 일정표
   기존 sub.css 맨 아래에 추가
   ================================================== */

/* 일정 이미지 / HTML 표 공통 영역 */
.ksme-conf__schedule {
  overflow-x: auto;
  background: #fff;
}

/* 연간 일정표 */
.ksme-conf__schedule .ksme-conf__annual-table {
  width: 100%;
  min-width: 640px;
  margin: 0;

  table-layout: fixed;
  border-collapse: collapse;
}

/* 표 상단 제목 */
.ksme-conf__annual-table thead th {
  padding: 15px 14px;

  color: #425b76;
  font-weight: 600;
  text-align: center;

  background: #f2f6fc;
}

/* 부문 / 지회 / 연구회명 */
.ksme-conf__annual-table tbody th {
  padding: 16px 14px;

  color: #24466f;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
  vertical-align: middle;
  overflow-wrap: anywhere;

  background: #f8fafc;
}

/* 행사명 / 일자 / 장소 */
.ksme-conf__annual-table tbody td {
  padding: 16px 14px;

  color: #52667d;
  line-height: 1.7;
  vertical-align: middle;
  overflow-wrap: anywhere;

  background: #fff;
}

/* 가로 구분선 */
.ksme-conf__annual-table th,
.ksme-conf__annual-table td {
  border-bottom: 1px solid #dce4ed;
}

/* 세로 구분선 */
.ksme-conf__annual-table th + th,
.ksme-conf__annual-table td {
  border-left: 1px solid #e7edf4;
}

/* 마지막 행의 중복 테두리 제거 */
.ksme-conf__annual-table tr:last-child th,
.ksme-conf__annual-table tr:last-child td {
  border-bottom: 0;
}

/* 표 제목: 화면에서는 숨기고 보조기기에 제공 */
.ksme-conf__sr-only {
  position: absolute;

  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;

  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}



/* 모바일 / 태블릿: 일정 영역 가로 스크롤 제거 */
@media (max-width: 1023px) {
  .ksme-conf__schedule {
    width: 100%;
    min-width: 0;
    overflow: hidden;
  }

  /* 기존 일정 이미지는 화면 폭에 맞춰 축소 */
  .ksme-conf__schedule img {
    display: block;
    width: auto;
    min-width: 0;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
  }

  /* HTML 일정표의 최소폭 제한 해제 */
  .ksme-conf__schedule .ksme-conf__annual-table {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    table-layout: fixed;
  }

  /* 긴 내용은 셀 안에서 줄바꿈 */
  .ksme-conf__schedule .ksme-conf__annual-table th,
  .ksme-conf__schedule .ksme-conf__annual-table td {
    white-space: normal;
    overflow-wrap: anywhere;
  }
}

/* 작은 모바일에서 표 여백과 글자 크기 조정 */
@media (max-width: 767px) {
  .ksme-conf__schedule .ksme-conf__annual-table th,
  .ksme-conf__schedule .ksme-conf__annual-table td {
    padding: 10px 6px;
    font-size: 12px;
    line-height: 1.6;
  }
}












/* ==================================================
   등록 안내 페이지
   ================================================== */

/* 본문 배경 */
.sub--conference-registration .sub-body__main > .box {
  background: #fff;
}

/* 회원 / 비회원 등록 버튼 영역 */
.ksme-conf-reg__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;

  margin-top: 28px;
  padding-top: 26px;

  border-top: 1px solid #dce4ed;
}

/* 정회원 등록 버튼 */
.ksme-conf-reg__button {
  display: flex;
  align-items: center;
  justify-content: center;

  min-height: 58px;
  padding: 14px 18px;

  color: #fff;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.6;
  text-align: center;
  text-decoration: none;
  overflow-wrap: anywhere;

  background: #1559a6;
  border: 1px solid #1559a6;
  border-radius: 8px;
}

.ksme-conf-reg__button:hover {
  color: #fff;
  background: #104a8b;
  border-color: #104a8b;
}

/* 비회원 등록 버튼 */
.ksme-conf-reg__button--secondary {
  color: #1559a6;
  background: #f1f6fd;
  border-color: #c8daf0;
}

.ksme-conf-reg__button--secondary:hover {
  color: #104a8b;
  background: #e6effb;
  border-color: #9cbbe1;
}

/* 키보드 포커스 */
.ksme-conf-reg__button:focus-visible {
  outline: 2px solid #1559a6;
  outline-offset: 3px;
}

/* 버튼이 하나만 표시되는 경우 */
.ksme-conf-reg__actions > .ksme-conf-reg__button:only-child {
  grid-column: 1 / -1;
}

/* ==================================================
   모바일 등록 버튼
   ================================================== */

@media (max-width: 767px) {
  .ksme-conf-reg__actions {
    grid-template-columns: 1fr;
    gap: 10px;

    margin-top: 22px;
    padding-top: 22px;
  }

  .ksme-conf-reg__button {
    min-height: 52px;
    padding: 12px 14px;
    font-size: 14px;
  }
}








/* ========================================
   로그인 본문 전용
   기존 공통 sub.css 맨 아래에 추가
======================================== */

.ksme-login {
  width: 100%;
  min-width: 0;
  color: #496276;
  font-family: inherit;
  letter-spacing: -0.025em;
  container: ksme-login / inline-size;
}

.ksme-login,
.ksme-login * {
  box-sizing: border-box;
}

.ksme-login :is(h4, p) {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}

/* 로그인 카드 */

.ksme-login .ksme-login__card {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  border: 1px solid #dfe6ec;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

/* 왼쪽 안내 영역 */

.ksme-login .ksme-login__intro {
  padding: 40px 32px;
  border-right: 1px solid #dfe6ec;
  background: #f3f6f8;
}

.ksme-login .ksme-login__eyebrow {
  margin-bottom: 12px;
  color: #214e71;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.6;
}

.ksme-login h4 {
  color: #173b57;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.35;
}

.ksme-login .ksme-login__description {
  margin-top: 16px;
  color: #496276;
  font-size: 15px;
  line-height: 1.8;
  word-break: keep-all;
}

.ksme-login .ksme-login__help {
  margin-top: 32px;
  padding-top: 20px;
  border-top: 1px solid #dfe6ec;
  color: #667b8d;
  font-size: 13px;
  line-height: 1.8;
  word-break: keep-all;
}

/* 오른쪽 입력 영역 */

.ksme-login .ksme-login__fields {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 20px;
  min-width: 0;
  padding: 40px 32px;
}

.ksme-login .ksme-login__field {
  min-width: 0;
}

.ksme-login label {
  display: block;
  margin-bottom: 8px;
  color: #173b57;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
}

.ksme-login input {
  display: block;
  width: 100%;
  min-width: 0;
  height: 48px;
  margin: 0;
  padding: 0 14px;
  border: 1px solid #cdd8e1;
  border-radius: 5px;
  background: #fff;
  color: #173b57;
  font: inherit;
  font-size: 14px;
  line-height: normal;
  box-shadow: none;
}

.ksme-login input::placeholder {
  color: #82919e;
  opacity: 1;
}

/* 로그인 버튼 */

.ksme-login .ksme-login__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  margin: 4px 0 0;
  padding: 12px 20px;
  border: 1px solid #214e71;
  border-radius: 5px;
  background: #214e71;
  color: #fff;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  cursor: pointer;
}

.ksme-login .ksme-login__submit:hover {
  border-color: #173b57;
  background: #173b57;
}

/* 키보드 포커스 */

.ksme-login :is(input, button, a):focus-visible {
  outline: 3px solid #5d9cca;
  outline-offset: 3px;
}

/* 회원가입 및 계정 찾기 링크 */

.ksme-login .ksme-login__links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 20px;
}

.ksme-login .ksme-login__links a {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  padding: 20px;
  border: 1px solid #dfe6ec;
  border-radius: 8px;
  background: #fff;
  text-decoration: none;
  transition: border-color 0.15s, background-color 0.15s;
}

.ksme-login .ksme-login__links a:hover {
  border-color: #96afc2;
  background: #f6f9fb;
}

.ksme-login .ksme-login__link-title {
  color: #214e71;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
  word-break: keep-all;
}

.ksme-login .ksme-login__link-desc {
  color: #667b8d;
  font-size: 12px;
  line-height: 1.7;
  word-break: keep-all;
}

/* 실제 본문 너비 기준 반응형 */

@container ksme-login (max-width: 660px) {
  .ksme-login .ksme-login__card {
    grid-template-columns: minmax(0, 1fr);
  }

  .ksme-login .ksme-login__intro {
    padding: 24px;
    border-right: 0;
    border-bottom: 1px solid #dfe6ec;
  }

  .ksme-login h4 {
    font-size: 24px;
  }

  .ksme-login .ksme-login__description {
    margin-top: 12px;
  }

  .ksme-login .ksme-login__help {
    margin-top: 16px;
    padding-top: 16px;
  }

  .ksme-login .ksme-login__fields {
    padding: 24px;
  }

  .ksme-login .ksme-login__links {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    margin-top: 16px;
  }

  .ksme-login .ksme-login__links a {
    padding: 16px 20px;
  }
}

/* 모바일 화면 기준 보완 */

@media (max-width: 767px) {
  .ksme-login .ksme-login__card {
    grid-template-columns: minmax(0, 1fr);
  }

  .ksme-login .ksme-login__intro {
    padding: 24px;
    border-right: 0;
    border-bottom: 1px solid #dfe6ec;
  }

  .ksme-login .ksme-login__fields {
    padding: 24px;
  }

  .ksme-login .ksme-login__links {
    grid-template-columns: minmax(0, 1fr);
  }
}






/* ========================================
   아이디·비밀번호 찾기 본문 전용
   기존 sub.css 맨 아래에 추가
======================================== */

.ksme-find {
  width: 100%;
  min-width: 0;
  color: #496276;
  font-family: inherit;
  letter-spacing: -0.025em;
  container: ksme-find / inline-size;
}

.ksme-find,
.ksme-find * {
  box-sizing: border-box;
}

.ksme-find :is(h4, p) {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}

/* 본문 카드 */

.ksme-find .ksme-find__card {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  border: 1px solid #dfe6ec;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

/* 왼쪽 안내 영역 */

.ksme-find .ksme-find__intro {
  padding: 40px 32px;
  border-right: 1px solid #dfe6ec;
  background: #f3f6f8;
}

.ksme-find .ksme-find__eyebrow {
  margin-bottom: 12px;
  color: #214e71;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.6;
}

.ksme-find h4 {
  color: #173b57;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.4;
  word-break: keep-all;
}

.ksme-find .ksme-find__description {
  margin-top: 16px;
  color: #496276;
  font-size: 15px;
  line-height: 1.8;
  word-break: keep-all;
}

.ksme-find .ksme-find__help {
  margin-top: 32px;
  padding-top: 20px;
  border-top: 1px solid #dfe6ec;
  color: #667b8d;
  font-size: 13px;
  line-height: 1.8;
  word-break: keep-all;
}

/* 오른쪽 입력 폼 */

.ksme-find .ksme-find__fields {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 20px;
  min-width: 0;
  margin: 0;
  padding: 40px 32px;
}

.ksme-find .ksme-find__field {
  min-width: 0;
}

.ksme-find label {
  display: block;
  margin-bottom: 8px;
  color: #173b57;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
}

.ksme-find input {
  display: block;
  width: 100%;
  min-width: 0;
  height: 48px;
  margin: 0;
  padding: 0 14px;
  border: 1px solid #cdd8e1;
  border-radius: 5px;
  background: #fff;
  color: #173b57;
  font: inherit;
  font-size: 14px;
  line-height: normal;
  box-shadow: none;
}

.ksme-find input::placeholder {
  color: #82919e;
  opacity: 1;
}

/* 요청하기 버튼 */

.ksme-find .ksme-find__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  margin: 4px 0 0;
  padding: 12px 20px;
  border: 1px solid #214e71;
  border-radius: 5px;
  background: #214e71;
  color: #fff;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  cursor: pointer;
}

.ksme-find .ksme-find__submit:hover {
  border-color: #173b57;
  background: #173b57;
}

/* 키보드 포커스 */

.ksme-find :is(input, button, a):focus-visible {
  outline: 3px solid #5d9cca;
  outline-offset: 3px;
}

/* 문의 및 로그인 바로가기 */

.ksme-find .ksme-find__links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 20px;
}

.ksme-find .ksme-find__links a {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  padding: 20px;
  border: 1px solid #dfe6ec;
  border-radius: 8px;
  background: #fff;
  text-decoration: none;
  transition: border-color 0.15s, background-color 0.15s;
}

.ksme-find .ksme-find__links a:hover {
  border-color: #96afc2;
  background: #f6f9fb;
}

.ksme-find .ksme-find__link-title {
  color: #214e71;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
  word-break: keep-all;
}

.ksme-find .ksme-find__link-desc {
  color: #667b8d;
  font-size: 12px;
  line-height: 1.7;
  word-break: keep-all;
}

.ksme-find .ksme-find__contact {
  color: #214e71;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

/* 실제 본문 너비 기준 반응형 */

@container ksme-find (max-width: 660px) {
  .ksme-find .ksme-find__card {
    grid-template-columns: minmax(0, 1fr);
  }

  .ksme-find .ksme-find__intro {
    padding: 24px;
    border-right: 0;
    border-bottom: 1px solid #dfe6ec;
  }

  .ksme-find h4 {
    font-size: 24px;
  }

  .ksme-find .ksme-find__description {
    margin-top: 12px;
  }

  .ksme-find .ksme-find__help {
    margin-top: 16px;
    padding-top: 16px;
  }

  .ksme-find .ksme-find__fields {
    padding: 24px;
  }

  .ksme-find .ksme-find__links {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    margin-top: 16px;
  }

  .ksme-find .ksme-find__links a {
    padding: 16px 20px;
  }
}

/* 모바일 화면 기준 보완 */

@media (max-width: 767px) {
  .ksme-find .ksme-find__card {
    grid-template-columns: minmax(0, 1fr);
  }

  .ksme-find .ksme-find__intro {
    padding: 24px;
    border-right: 0;
    border-bottom: 1px solid #dfe6ec;
  }

  .ksme-find .ksme-find__fields {
    padding: 24px;
  }

  .ksme-find .ksme-find__links {
    grid-template-columns: minmax(0, 1fr);
  }
}








/* ========================================
   회원가입 확인 본문 전용
   기존 sub.css 맨 아래에 추가
======================================== */

.ksme-join {
  width: 100%;
  min-width: 0;
  color: #496276;
  font-family: inherit;
  letter-spacing: -0.025em;
  container: ksme-join / inline-size;
}

.ksme-join,
.ksme-join * {
  box-sizing: border-box;
}

.ksme-join :is(h4, p) {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}

/* 본문 카드 */

.ksme-join .ksme-join__card {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  border: 1px solid #dfe6ec;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

/* 왼쪽 안내 영역 */

.ksme-join .ksme-join__intro {
  padding: 40px 32px;
  border-right: 1px solid #dfe6ec;
  background: #f3f6f8;
}

.ksme-join .ksme-join__eyebrow {
  margin-bottom: 12px;
  color: #214e71;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.6;
}

.ksme-join h4 {
  color: #173b57;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.4;
  word-break: keep-all;
}

.ksme-join .ksme-join__description {
  margin-top: 16px;
  color: #496276;
  font-size: 15px;
  line-height: 1.8;
  word-break: keep-all;
}

.ksme-join .ksme-join__help {
  margin-top: 32px;
  padding-top: 20px;
  border-top: 1px solid #dfe6ec;
  color: #667b8d;
  font-size: 13px;
  line-height: 1.8;
  word-break: keep-all;
}

/* 오른쪽 입력 폼 */

.ksme-join .ksme-join__fields {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 20px;
  min-width: 0;
  margin: 0;
  padding: 40px 32px;
}

.ksme-join .ksme-join__field {
  min-width: 0;
}

.ksme-join label {
  display: block;
  margin-bottom: 8px;
  color: #173b57;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
}

.ksme-join input {
  display: block;
  width: 100%;
  min-width: 0;
  height: 48px;
  margin: 0;
  padding: 0 14px;
  border: 1px solid #cdd8e1;
  border-radius: 5px;
  background: #fff;
  color: #173b57;
  font: inherit;
  font-size: 14px;
  line-height: normal;
  box-shadow: none;
}

.ksme-join input::placeholder {
  color: #82919e;
  opacity: 1;
}

/* 회원구분 */

.ksme-join .ksme-join__group {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.ksme-join legend {
  width: 100%;
  margin: 0 0 8px;
  padding: 0;
  color: #173b57;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
}

.ksme-join .ksme-join__options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ksme-join .ksme-join__option {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 11px 12px;
  border: 1px solid #cdd8e1;
  border-radius: 5px;
  background: #fff;
  font-size: 13px;
  font-weight: 400;
  cursor: pointer;
}

.ksme-join .ksme-join__option:has(input:checked) {
  border-color: #214e71;
  background: #eef4f8;
}

.ksme-join .ksme-join__option input {
  flex: none;
  width: 16px;
  height: 16px;
  margin: 0;
  padding: 0;
  accent-color: #214e71;
}

/* 숨김 필드 및 입력 도움말 */

.ksme-join input[type="hidden"] {
  display: none;
}

.ksme-join .ksme-join__field-help {
  margin-top: 8px;
  color: #667b8d;
  font-size: 12px;
  line-height: 1.7;
  word-break: keep-all;
}

/* 가입 여부 확인 버튼 */

.ksme-join .ksme-join__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  margin: 4px 0 0;
  padding: 12px 20px;
  border: 1px solid #214e71;
  border-radius: 5px;
  background: #214e71;
  color: #fff;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  cursor: pointer;
}

.ksme-join .ksme-join__submit:hover {
  border-color: #173b57;
  background: #173b57;
}

/* 키보드 포커스 */

.ksme-join :is(input, button, a):focus-visible {
  outline: 3px solid #5d9cca;
  outline-offset: 3px;
}

/* 학회 문의 및 로그인 바로가기 */

.ksme-join .ksme-join__links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 20px;
}

.ksme-join .ksme-join__links a {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  padding: 20px;
  border: 1px solid #dfe6ec;
  border-radius: 8px;
  background: #fff;
  text-decoration: none;
  transition: border-color 0.15s, background-color 0.15s;
}

.ksme-join .ksme-join__links a:hover {
  border-color: #96afc2;
  background: #f6f9fb;
}

.ksme-join .ksme-join__link-title {
  color: #214e71;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
  word-break: keep-all;
}

.ksme-join .ksme-join__link-desc {
  color: #667b8d;
  font-size: 12px;
  line-height: 1.7;
  word-break: keep-all;
}

.ksme-join .ksme-join__contact {
  color: #214e71;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

/* 실제 본문 너비 기준 반응형 */

@container ksme-join (max-width: 660px) {
  .ksme-join .ksme-join__card {
    grid-template-columns: minmax(0, 1fr);
  }

  .ksme-join .ksme-join__intro {
    padding: 24px;
    border-right: 0;
    border-bottom: 1px solid #dfe6ec;
  }

  .ksme-join h4 {
    font-size: 24px;
  }

  .ksme-join .ksme-join__description {
    margin-top: 12px;
  }

  .ksme-join .ksme-join__help {
    margin-top: 16px;
    padding-top: 16px;
  }

  .ksme-join .ksme-join__fields {
    padding: 24px;
  }

  .ksme-join .ksme-join__links {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    margin-top: 16px;
  }

  .ksme-join .ksme-join__links a {
    padding: 16px 20px;
  }
}

/* 모바일 화면 기준 보완 */

@media (max-width: 767px) {
  .ksme-join .ksme-join__card {
    grid-template-columns: minmax(0, 1fr);
  }

  .ksme-join .ksme-join__intro {
    padding: 24px;
    border-right: 0;
    border-bottom: 1px solid #dfe6ec;
  }

  .ksme-join .ksme-join__fields {
    padding: 24px;
  }

  .ksme-join .ksme-join__links {
    grid-template-columns: minmax(0, 1fr);
  }
}






/* ========================================
   회원가입 약관 동의
======================================== */

.ksme-agree {
    width: 100%;
    min-width: 0;
    margin: 0;
    color: #253645;
    font-family: inherit;
    container-type: inline-size;
}

.ksme-agree,
.ksme-agree * {
    box-sizing: border-box;
}

/* 상단 안내 */
.ksme-agree__intro {
    margin-bottom: 28px;
}

.ksme-agree__eyebrow {
    margin: 0 0 10px;
    color: #214e71;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .02em;
}

.ksme-agree__intro h4 {
    margin: 0 0 12px;
    color: #213b50;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -.04em;
}

.ksme-agree__intro > p:last-child {
    margin: 0;
    color: #667682;
    font-size: 15px;
    line-height: 1.8;
    word-break: keep-all;
}

/* 약관 카드 */
.ksme-agree__card {
    margin: 0 0 24px;
    padding: 0;
    border: 1px solid #dbe3e9;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.ksme-agree__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 22px 24px;
    border-bottom: 1px solid #e8edf1;
}

.ksme-agree__heading > div {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.ksme-agree__number {
    color: #6d8ba2;
    font-size: 13px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.ksme-agree__heading h5 {
    margin: 0;
    color: #213b50;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: -.03em;
}

.ksme-agree__required {
    flex: none;
    padding: 5px 9px;
    border-radius: 4px;
    background: #eef4f8;
    color: #214e71;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

/* 약관 원문 */
.ksme-agree__body {
    padding: 20px 24px;
}

.ksme-agree__text {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 238px;
    min-height: 160px;
    margin: 0;
    padding: 18px;
    border: 1px solid #e3e8ed;
    border-radius: 6px;
    background: #f7f9fb;
    color: #52616c;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.9;
    resize: vertical;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    scrollbar-color: #c4d0da #f7f9fb;
}

/* 동의 체크박스 */
.ksme-agree__check {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 18px 24px;
    border-top: 1px solid #e8edf1;
    background: #f2f6f9;
    color: #304858;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.6;
    cursor: pointer;
}

.ksme-agree__check input {
    flex: none;
    width: 19px;
    height: 19px;
    margin: 0;
    accent-color: #214e71;
    cursor: pointer;
}

.ksme-agree__check:has(input:checked) {
    background: #eaf2f8;
    color: #214e71;
}

/* 하단 안내와 버튼 */
.ksme-agree__footer {
    padding-top: 4px;
}

.ksme-agree__footer > p {
    margin: 0 0 20px;
    color: #75818b;
    font-size: 14px;
    line-height: 1.7;
    text-align: center;
    word-break: keep-all;
}

.ksme-agree__actions {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 12px;
}

.ksme-agree__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 13px 28px;
    border: 1px solid #214e71;
    border-radius: 6px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.5;
    text-decoration: none;
    cursor: pointer;
    transition: background-color .15s, color .15s;
}

.ksme-agree__button--previous {
    min-width: 136px;
    background: #fff;
    color: #214e71;
}

.ksme-agree__button--previous:hover {
    background: #f2f6f9;
}

.ksme-agree__button--next {
    min-width: 220px;
    background: #214e71;
    color: #fff;
}

.ksme-agree__button--next:hover {
    background: #173e5d;
    color: #fff;
}

/* 키보드 포커스 */
.ksme-agree__button:focus-visible,
.ksme-agree__text:focus-visible,
.ksme-agree__check input:focus-visible {
    outline: 3px solid #87b4d5;
    outline-offset: 3px;
}

/* 본문 폭이 좁은 경우 */
@container (max-width: 520px) {
    .ksme-agree__intro h4 {
        font-size: 23px;
    }

    .ksme-agree__heading {
        gap: 8px;
        padding: 18px 16px;
    }

    .ksme-agree__heading > div {
        gap: 9px;
    }

    .ksme-agree__heading h5 {
        font-size: 17px;
    }

    .ksme-agree__required {
        padding: 4px 7px;
        font-size: 11px;
    }

    .ksme-agree__body {
        padding: 16px;
    }

    .ksme-agree__text {
        height: 220px;
        padding: 14px;
        font-size: 13px;
    }

    .ksme-agree__check {
        padding: 16px;
        font-size: 14px;
    }

    .ksme-agree__actions {
        flex-direction: column;
    }

    .ksme-agree__button {
        width: 100%;
        min-width: 0;
    }

    .ksme-agree__footer > p {
        text-align: left;
    }
}

/* 모바일 화면 */
@media (max-width: 600px) {
    .ksme-agree__heading {
        padding: 18px 16px;
    }

    .ksme-agree__heading h5 {
        font-size: 17px;
    }

    .ksme-agree__body {
        padding: 16px;
    }

    .ksme-agree__check {
        padding: 16px;
    }

    .ksme-agree__actions {
        flex-direction: column;
    }

    .ksme-agree__button {
        width: 100%;
        min-width: 0;
    }
}







/* ========================================
   회원가입 정보 입력 본문
   기존 공통 헤더·메뉴·푸터에는 적용하지 않음
======================================== */

.ksme-register {
    width: 100%;
    min-width: 0;
    margin: 0;
    color: #253645;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.7;
    container-type: inline-size;
}

.ksme-register,
.ksme-register * {
    box-sizing: border-box;
}

/* 상단 안내 */
.ksme-register .kr-intro {
    margin-bottom: 28px;
}

.ksme-register .kr-eyebrow {
    margin: 0 0 10px;
    color: #214e71;
    font-size: 13px;
    font-weight: 700;
}

.ksme-register .kr-intro h4 {
    margin: 0 0 12px;
    color: #213b50;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: -.04em;
}

.ksme-register .kr-intro > p:last-child {
    margin: 0;
    color: #667682;
    font-size: 14px;
    word-break: keep-all;
}

/* 입력 구역 */
.ksme-register .kr-section {
    min-width: 0;
    margin: 0 0 24px;
    padding: 0 24px 8px;
    border: 1px solid #dbe3e9;
    border-radius: 12px;
    background: #fff;
}

.ksme-register .kr-section__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 -24px;
    padding: 20px 24px;
    border-bottom: 1px solid #e8edf1;
}

.ksme-register .kr-section__heading h5 {
    margin: 0;
    color: #213b50;
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -.03em;
}

.ksme-register .kr-row {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    align-items: start;
    gap: 12px 20px;
    min-width: 0;
    padding: 18px 0;
    border-bottom: 1px solid #eef1f4;
}

.ksme-register .kr-row:last-child {
    border-bottom: 0;
}

.ksme-register .kr-label {
    display: block;
    margin: 0;
    padding-top: 9px;
    color: #3a5264;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.7;
    word-break: keep-all;
}

.ksme-register .kr-controls {
    min-width: 0;
    overflow-wrap: anywhere;
}

.ksme-register .kr-inline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    min-width: 0;
}

.ksme-register .kr-inline + .kr-inline {
    margin-top: 10px;
}

.ksme-register .kr-inline > label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: 100%;
}

.ksme-register .kr-help {
    margin: 8px 0 0;
    color: #74828e;
    font-size: 12px;
    line-height: 1.7;
    word-break: keep-all;
}

/* 입력칸 */
.ksme-register input[type="text"],
.ksme-register input[type="password"],
.ksme-register input[type="email"],
.ksme-register input[type="tel"],
.ksme-register select,
.ksme-register textarea {
    max-width: 100%;
    min-width: 0;
    min-height: 42px;
    margin: 0;
    padding: 9px 12px;
    border: 1px solid #d4dde5;
    border-radius: 6px;
    background: #fff;
    color: #253645;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.5;
    vertical-align: middle;
}

.ksme-register input[type="text"],
.ksme-register input[type="password"] {
    width: 100%;
    max-width: 360px;
}

.ksme-register .kr-inline > input[type="text"],
.ksme-register .kr-inline > input[type="password"] {
    flex: 1 1 160px;
    width: auto;
}

.ksme-register select {
    width: auto;
    max-width: 100%;
}

.ksme-register textarea {
    display: block;
    width: 100%;
    min-height: 130px;
    margin: 18px 0;
    resize: vertical;
}

.ksme-register input[readonly] {
    border-color: #e0e6eb;
    background: #f4f7f9;
    color: #617484;
}

.ksme-register input:disabled {
    background: #edf1f4;
    color: #84919d;
}

.ksme-register input[type="radio"],
.ksme-register input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0 7px 0 0;
    accent-color: #214e71;
    vertical-align: middle;
    cursor: pointer;
}

.ksme-register input[name="MbrZipcode"],
.ksme-register input[name="MbrZipcodeC"],
.ksme-register input[name="MbrRegNum1"] {
    flex: 0 1 135px;
    max-width: 135px;
}

/* 사진과 선택 영역 */
.ksme-register .kr-photo {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
}

.ksme-register #upPreImg {
    display: block;
    width: 100px;
    height: 120px;
    border: 1px solid #dbe3e9;
    border-radius: 6px;
    object-fit: contain;
    background: #f7f9fb;
}

.ksme-register .kr-keywords {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    min-width: 0;
}

.ksme-register .kr-keywords label {
    display: block;
    color: #617484;
    font-size: 12px;
}

.ksme-register .kr-keywords input {
    width: 100%;
    margin-top: 6px;
}

/* 학위·경력 표: 기존 행 추가/삭제 구조 유지 */
.ksme-register .kr-table-wrap {
    min-width: 0;
    max-width: 100%;
    margin: 18px 0;
}

.ksme-register .kr-data-table {
    width: 100%;
    border: 1px solid #e2e8ed;
    border-collapse: collapse;
    table-layout: fixed;
    background: #fff;
    font-size: 13px;
}

.ksme-register .kr-data-table td {
    min-width: 0;
    padding: 10px 6px;
    border-bottom: 1px solid #e7edf2;
    background: #fff;
    color: #526676;
    vertical-align: middle;
    overflow-wrap: anywhere;
}

.ksme-register .kr-data-table tr:first-child td {
    padding: 12px 6px;
    background: #f1f5f8;
    color: #365268;
    font-weight: 600;
}

.ksme-register .kr-data-table td p {
    margin: 0;
}

.ksme-register .kr-data-table input[type="text"],
.ksme-register .kr-data-table select {
    width: 100%;
    max-width: 100%;
    min-height: 38px;
    padding: 7px 5px;
    font-size: 12px;
}

.ksme-register .kr-data-table img[onclick] {
    max-width: 100%;
    cursor: pointer;
}

/* 검색·업로드·행 추가·완료 버튼 */
.ksme-register .kr-button {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 46px;
    padding: 11px 24px;
    border: 1px solid #214e71;
    border-radius: 6px;
    background: #214e71;
    color: #fff;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    text-decoration: none;
    cursor: pointer;
}

.ksme-register .kr-button--small {
    min-height: 40px;
    padding: 8px 12px;
    background: #f3f7fa;
    color: #214e71;
    font-size: 13px;
}

.ksme-register .kr-button:hover {
    background: #173e5d;
    color: #fff;
}

.ksme-register .kr-button--secondary,
.ksme-register .kr-button[type="reset"] {
    background: #fff;
    color: #214e71;
}

.ksme-register .kr-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 28px;
}

.ksme-register .kr-actions .kr-button {
    min-width: 170px;
    min-height: 50px;
}

.ksme-register input:focus-visible,
.ksme-register select:focus-visible,
.ksme-register textarea:focus-visible,
.ksme-register .kr-button:focus-visible {
    outline: 3px solid #87b4d5;
    outline-offset: 3px;
}

/* 본문 폭에 따른 세로 배치 */
@container (max-width: 600px) {
    .ksme-register .kr-section {
        padding: 0 16px 4px;
    }

    .ksme-register .kr-section__heading {
        margin: 0 -16px;
        padding: 18px 16px;
    }

    .ksme-register .kr-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
        padding: 16px 0;
    }

    .ksme-register .kr-label {
        padding-top: 0;
    }

    .ksme-register .kr-keywords {
        grid-template-columns: minmax(0, 1fr);
    }

    .ksme-register .kr-data-table,
    .ksme-register .kr-data-table tbody,
    .ksme-register .kr-data-table tr,
    .ksme-register .kr-data-table td {
        display: block;
        width: 100%;
    }

    .ksme-register .kr-data-table colgroup,
    .ksme-register .kr-data-table tr:first-child {
        display: none;
    }

    .ksme-register .kr-data-table {
        border: 0;
    }

    .ksme-register .kr-data-table tr:not(:first-child) {
        margin: 0 0 14px;
        padding: 10px 12px;
        border: 1px solid #e0e7ed;
        border-radius: 8px;
    }

    .ksme-register .kr-data-table td {
        padding: 8px 0;
        text-align: left;
    }

    .ksme-register .kr-data-table td::before {
        display: block;
        margin-bottom: 5px;
        color: #617484;
        font-size: 12px;
        font-weight: 600;
    }

    .ksme-register #dynamic_table td:nth-child(1)::before {
        content: "구분";
    }
    .ksme-register #dynamic_table td:nth-child(2)::before {
        content: "학교명";
    }
    .ksme-register #dynamic_table td:nth-child(3)::before {
        content: "전공";
    }
    .ksme-register #dynamic_table td:nth-child(4)::before {
        content: "졸업년도";
    }
    .ksme-register #dynamic_table td:nth-child(5)::before {
        content: "논문";
    }
    .ksme-register #dynamic_table td:nth-child(6)::before {
        content: "삭제";
    }
    .ksme-register #dynamic_table2 td:nth-child(1)::before {
        content: "근무처";
    }
    .ksme-register #dynamic_table2 td:nth-child(2)::before {
        content: "직위";
    }
    .ksme-register #dynamic_table2 td:nth-child(3)::before {
        content: "시작년월";
    }
    .ksme-register #dynamic_table2 td:nth-child(4)::before {
        content: "종료년월";
    }
    .ksme-register #dynamic_table2 td:nth-child(5)::before {
        content: "행 관리";
    }

    .ksme-register .kr-actions {
        flex-direction: column;
    }

    .ksme-register .kr-actions .kr-button {
        width: 100%;
        min-width: 0;
    }
}

/* 국문·영문 등 복합 입력칸 */
.ksme-register .kr-inline > label:has(input[type="text"]),
.ksme-register .kr-inline > label:has(select) {
    display: flex;
    flex: 1 1 150px;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
}

.ksme-register .kr-inline > label > span {
    color: #617484;
    font-size: 12px;
}

.ksme-register .kr-inline > label > input[type="text"] {
    width: 100%;
}

.ksme-register .kr-section > .kr-inline:last-child {
    justify-content: flex-end;
    padding-bottom: 14px;
}

.ksme-register .kr-controls > textarea {
    margin: 0;
}

.ksme-register #dynamic_table2 .kr-button {
    min-height: 38px;
    padding: 7px 5px;
    font-size: 12px;
    white-space: normal;
}

/* 주소 라벨과 복합 입력칸의 폭 제한 */
.ksme-register .kr-controls > label:has(input[type="text"]) {
    display: block;
    width: 100%;
    min-width: 0;
    color: #617484;
    font-size: 12px;
}

.ksme-register .kr-controls > label + label {
    margin-top: 10px;
}

.ksme-register .kr-controls > label > input[type="text"] {
    display: block;
    margin-top: 6px;
}

/* 소속기관/학교: 기관 찾기 버튼을 입력칸 하단에 정렬 */
.ksme-register .kr-inline:has(#MbrAffiliation) > .kr-button {
    align-self: flex-end;
}


/* 추가 행의 텍스트 삭제 버튼 */
.ksme-register .kr-data-table .kr-row-delete {
    min-height: 34px;
    padding: 6px 9px;
    border-color: #d4dde5;
    background: #fff;
    color: #617484;
    white-space: nowrap;
}

.ksme-register .kr-data-table .kr-row-delete:hover {
    border-color: #a84848;
    background: #fbf3f3;
    color: #a84848;
}







/* ========================================
   기관·우편번호·추천인 찾기 공통 반응형
   부모 회원가입 페이지와 검색 iframe에서 공용
======================================== */

/* 화면 안에 맞추는 라이트박스 */
#SLB_content.kr-search-modal {
    position: fixed !important;
    z-index: 99999;
    max-width: calc(100% - 24px);
    margin: 0;
    padding: 0;
    border: 1px solid #dbe3e9;
    border-radius: 10px;
    background: #fff;
    overflow: hidden;
    box-sizing: border-box;
}

#SLB_content.kr-search-modal:empty {
    display: none !important;
}

#SLB_content.kr-search-modal #SLB_iframe {
    display: block;
    width: 100% !important;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
}

/* 검색창 내부 공통 */
html:has(body.kr-search-popup) {
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
}

body.kr-search-popup {
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0;
    padding: 12px;
    background: #fff;
    color: #253645;
    font-family: "Noto Sans KR", "Malgun Gothic", sans-serif;
    font-size: 14px;
    line-height: 1.7;
    box-sizing: border-box;
    overflow-wrap: anywhere;
}

body.kr-search-popup *,
body.kr-search-popup *::before,
body.kr-search-popup *::after {
    box-sizing: border-box;
}

body.kr-search-popup input[type="text"] {
    max-width: 100%;
    min-width: 0;
    min-height: 40px;
    padding: 8px 10px;
    border: 1px solid #d4dde5;
    border-radius: 5px;
    font: inherit;
    background: #fff;
    color: #253645;
}

/* 기관/학교 검색 */
body.kr-search-affiliation #SC_DyMainContainer {
    width: 100%;
    min-width: 0;
}

body.kr-search-affiliation #SC_Text0 {
    padding: 12px;
    border: 0;
    border-radius: 6px;
    background: #eef4f8;
    color: #214e71;
    font-size: 16px;
    font-weight: 700;
}

body.kr-search-affiliation #SC_Text1,
body.kr-search-affiliation #SC_Text2 {
    padding: 12px 0;
    font-size: 12px;
    line-height: 1.7;
    text-align: left;
}

body.kr-search-affiliation #SC_DySearchBox {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 12px 0;
}

body.kr-search-affiliation #Keyword {
    flex: 1 1 0;
    width: 100%;
    margin: 0;
}

body.kr-search-affiliation #SubmitBnt {
    flex: none;
    max-width: 72px;
}

body.kr-search-affiliation #SC_DySearchList {
    width: 100% !important;
    max-width: 100%;
    height: 200px;
    overflow: auto;
}

body.kr-search-affiliation #SC_DySearchList ul {
    padding: 0 8px;
}

body.kr-search-affiliation #SC_DySearchInput table {
    width: 100% !important;
    table-layout: fixed;
}

body.kr-search-affiliation #SC_DySearchInput td {
    min-width: 0;
    padding: 5px 3px;
    font-size: 12px;
}

body.kr-search-affiliation #SC_DySearchInput input[type="text"] {
    width: 100%;
}

/* 추천인 검색 */
body.kr-search-recommand .recommand_search_wrap {
    width: 100%;
    min-width: 0;
    padding: 0;
}

body.kr-search-recommand div.recommand_search {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 8px;
    width: 100%;
    padding: 8px 0 16px;
    font-size: 13px;
    line-height: 1.7;
}

body.kr-search-recommand div.recommand_search input {
    flex: 1 1 130px;
    width: auto;
    min-width: 0;
    margin: 0;
}

body.kr-search-recommand div.recommand_search span.search_btn01 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 8px 12px;
    border-radius: 5px;
    background: #214e71;
    color: #fff;
    font-size: 13px;
}

body.kr-search-recommand .recommand_search_table {
    width: 100% !important;
    max-width: 100%;
    height: auto;
    min-height: 100px;
    max-height: 320px;
    overflow: auto;
}

body.kr-search-recommand table.recommand_search {
    width: 100% !important;
    table-layout: fixed;
    border-collapse: collapse;
    border-top: 2px solid #214e71;
}

body.kr-search-recommand table.recommand_search th,
body.kr-search-recommand table.recommand_search td {
    padding: 10px 6px;
    font-size: 12px;
    line-height: 1.6;
    overflow-wrap: anywhere;
    word-break: break-word;
}

body.kr-search-recommand table.recommand_search th {
    background: #eef4f8;
    color: #214e71;
}

/* 우편번호 검색: 기존 Postcodify UI 유지 */
body.kr-search-zipcode {
    height: 100% !important;
    padding: 0;
}

body.kr-search-zipcode .postcodify_popup_layer {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* 좁은 기관 검색창의 직접입력 영역 */
@media (max-width: 480px) {
    body.kr-search-affiliation #SC_DySearchInput table,
    body.kr-search-affiliation #SC_DySearchInput tbody {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    body.kr-search-affiliation #SC_DySearchInput colgroup {
        display: none;
    }

    body.kr-search-affiliation #SC_DySearchInput tr {
        display: contents;
    }

    body.kr-search-affiliation #SC_DySearchInput td {
        display: block;
        order: 1;
        width: 100%;
        padding: 5px 0;
        text-align: left;
    }

    body.kr-search-affiliation #SC_DySearchInput tr:first-child td:first-child {
        order: 0;
        font-weight: 700;
    }

    body.kr-search-affiliation #SC_DySearchInput tr:first-child td:last-child {
        order: 2;
    }
}







/* ===== 회원가입 완료 ===== */
.join-result {
    padding: 40px 0 80px;
}

/* 안내 박스 */
.join-result__box {
    padding: 48px 40px;
    border: 1px solid #dde3ec;
    border-top: 3px solid #1d4f91;
    background-color: #f7f9fc;
    text-align: center;
}

.join-result__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin-bottom: 20px;
    border-radius: 50%;
    background-color: #1d4f91;
    color: #fff;
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
}

.join-result__title {
    margin-bottom: 12px;
    font-size: 24px;
    font-weight: 700;
    color: #222;
}

.join-result__desc {
    font-size: 16px;
    line-height: 1.7;
    color: #555;
}

/* 안내 목록 */
.join-result__notice {
    max-width: 600px;
    margin: 32px auto 0;
    padding: 20px 24px;
    border: 1px solid #dde3ec;
    background-color: #fff;
    text-align: left;
}

.join-result__notice li {
    position: relative;
    padding-left: 14px;
    font-size: 15px;
    line-height: 1.7;
    color: #555;
}

.join-result__notice li + li {
    margin-top: 6px;
}

.join-result__notice li::before {
    content: "";
    position: absolute;
    top: 11px;
    left: 0;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background-color: #1d4f91;
}

.join-result__notice strong {
    color: #1d4f91;
    font-weight: 700;
}

/* 버튼 */
.join-result__btns {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 40px;
}

.join-result__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 180px;
    height: 52px;
    padding: 0 24px;
    border: 1px solid #1d4f91;
    font-size: 16px;
    font-weight: 500;
    text-decoration: none;
    transition: background-color 0.2s, color 0.2s;
}

.join-result__btn--primary {
    background-color: #1d4f91;
    color: #fff;
}

.join-result__btn--primary:hover {
    background-color: #163d70;
    color: #fff;
}

.join-result__btn--line {
    background-color: #fff;
    color: #1d4f91;
}

.join-result__btn--line:hover {
    background-color: #eef3fa;
    color: #1d4f91;
}

/* 모바일 */
@media (max-width: 768px) {
    .join-result {
        padding: 24px 0 48px;
    }

    .join-result__box {
        padding: 36px 20px;
    }

    .join-result__title {
        font-size: 20px;
    }

    .join-result__desc {
        font-size: 15px;
    }

    .join-result__btns {
        flex-direction: column;
    }

    .join-result__btn {
        width: 100%;
    }
}







/* ===== 마이페이지 ===== */
.mypage-home {
    color: #344d6d;
}

/* 섹션 */
.mypage-sec + .mypage-sec {
    margin-top: 48px;
}

.mypage-sec__title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 16px;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.5;
    color: #203249;
}

.mypage-sec__title::before {
    content: "";
    width: 4px;
    height: 18px;
    border-radius: 2px;
    background: #1657a7;
}

.mypage-sec__desc {
    margin: -8px 0 16px;
    font-size: 14px;
    color: #7e8da1;
}

/* 정보 목록 */
.mypage-info {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    border: 1px solid #e1e8f0;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.mypage-info__item {
    display: flex;
    min-height: 56px;
    border-bottom: 1px solid #eef2f7;
}

.mypage-info__item:nth-child(odd) {
    border-right: 1px solid #eef2f7;
}

.mypage-info__item--full {
    grid-column: 1 / -1;
    border-right: 0 !important;
}

.mypage-info__item:last-child {
    border-bottom: 0;
}

.mypage-info__item dt {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    width: 140px;
    padding: 14px 20px;
    background: #f5f8fc;
    font-size: 15px;
    font-weight: 600;
    color: #4a5f7a;
}

.mypage-info__item dd {
    display: flex;
    align-items: center;
    flex: 1;
    min-width: 0;
    margin: 0;
    padding: 14px 20px;
    font-size: 15px;
    color: #203249;
    word-break: break-all;
}

/* 상태 배지 */
.mypage-badge {
    display: inline-flex;
    align-items: center;
    height: 28px;
    padding: 0 12px;
    border-radius: 14px;
    font-size: 13px;
    font-weight: 600;
}

.mypage-badge--done {
    background: #e8f6ee;
    color: #1e8a4c;
}

.mypage-badge--wait {
    background: #fff3e6;
    color: #d36b00;
}

/* 인증키 입력 */
.mypage-verify {
    margin-top: 16px;
    padding: 24px;
    border: 1px solid #e1e8f0;
    border-radius: 12px;
    background: #f9fbfd;
}

.mypage-verify__label {
    display: block;
    margin-bottom: 10px;
    font-size: 15px;
    font-weight: 600;
    color: #4a5f7a;
}

.mypage-verify__row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.mypage-verify__input {
    flex: 1;
    min-width: 180px;
    max-width: 280px;
    height: 46px;
    padding: 0 14px;
    border: 1px solid #d8e2ef;
    border-radius: 8px;
    background: #fff;
    font-size: 15px;
    color: #203249;
}

.mypage-verify__input:focus {
    outline: 2px solid #a6c4eb;
    outline-offset: 1px;
    border-color: #6f9fd6;
}

.mypage-verify__help {
    margin: 12px 0 0;
    font-size: 14px;
    color: #7e8da1;
}

/* 버튼 */
.mypage-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 96px;
    height: 46px;
    padding: 0 18px;
    border: 1px solid #d6e1ee;
    border-radius: 8px;
    background: #fff;
    color: #4a5f7a;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

.mypage-btn:hover {
    background: #f2f6fb;
    color: #203249;
}

.mypage-btn--primary {
    border-color: #1657a7;
    background: #1657a7;
    color: #fff;
}

.mypage-btn--primary:hover {
    background: #104684;
    color: #fff;
}

.mypage-btn--line {
    border-color: #1657a7;
    color: #1657a7;
}

/* 회원탈퇴 */
.mypage-leave {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 24px;
    border: 1px solid #e1e8f0;
    border-radius: 12px;
    background: #fff;
}

.mypage-leave p {
    margin: 0;
    font-size: 15px;
    color: #7e8da1;
}

/* 모바일 */
@media (max-width: 768px) {
    .mypage-info {
        grid-template-columns: 1fr;
    }

    .mypage-info__item:nth-child(odd) {
        border-right: 0;
    }

    .mypage-info__item dt {
        width: 110px;
        padding: 12px 14px;
        font-size: 14px;
    }

    .mypage-info__item dd {
        padding: 12px 14px;
        font-size: 14px;
    }

    .mypage-verify {
        padding: 18px;
    }

    .mypage-verify__input {
        flex-basis: 100%;
        max-width: none;
    }

    .mypage-verify__row .mypage-btn {
        flex: 1;
    }

    .mypage-leave {
        flex-direction: column;
        align-items: stretch;
    }
}







/* ===== 회원탈퇴 ===== */
.leave-page {
    color: #344d6d;
}

/* 탈퇴 전 확인 사항 */
.leave-notice {
    padding: 28px 32px;
    border: 1px solid #f3d9d6;
    border-radius: 12px;
    background: #fff8f7;
}

.leave-notice__title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    color: #c0392b;
}

.leave-notice__title::before {
    content: "!";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #c0392b;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

.leave-notice__lead {
    margin: 0 0 16px;
    font-size: 15px;
    color: #4a5f7a;
}

.leave-notice__list {
    margin: 0;
    padding: 16px 20px;
    border-radius: 8px;
    background: #fff;
    list-style: none;
    counter-reset: leave;
}

.leave-notice__list li {
    position: relative;
    padding-left: 28px;
    font-size: 15px;
    line-height: 1.7;
    color: #4a5f7a;
    counter-increment: leave;
}

.leave-notice__list li + li {
    margin-top: 6px;
}

.leave-notice__list li::before {
    content: counter(leave);
    position: absolute;
    top: 3px;
    left: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #edf3fa;
    color: #1657a7;
    font-size: 12px;
    font-weight: 700;
}

.leave-notice__list strong {
    color: #c0392b;
    font-weight: 700;
}

/* 본인 확인 폼 */
.leave-form {
    max-width: 560px;
    margin: 40px auto 0;
    padding: 32px;
    border: 1px solid #e1e8f0;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 20px rgba(32, 50, 73, 0.04);
}

.leave-form__title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 24px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    color: #203249;
}

.leave-form__title::before {
    content: "";
    width: 4px;
    height: 18px;
    border-radius: 2px;
    background: #1657a7;
}

.leave-form__row {
    display: flex;
    align-items: center;
    gap: 16px;
}

.leave-form__row + .leave-form__row {
    margin-top: 14px;
}

.leave-form__label {
    flex-shrink: 0;
    width: 110px;
    font-size: 15px;
    font-weight: 600;
    color: #4a5f7a;
}

.leave-form__field {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
    min-height: 46px;
}

.leave-form__input {
    width: 100%;
    min-width: 0;
    height: 46px;
    padding: 0 14px;
    border: 1px solid #d8e2ef;
    border-radius: 8px;
    background: #fafbfd;
    font-size: 15px;
    color: #203249;
}

.leave-form__input:focus {
    outline: 2px solid #a6c4eb;
    outline-offset: 1px;
    border-color: #6f9fd6;
    background: #fff;
}

.leave-form__dash {
    color: #8d9aab;
}

.leave-form__text {
    font-size: 15px;
    font-weight: 600;
    color: #203249;
}

/* 버튼 */
.leave-form__actions {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid #eef2f7;
    text-align: center;
}

.leave-form__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 180px;
    height: 50px;
    padding: 0 24px;
    border: 1px solid #c0392b;
    border-radius: 8px;
    background: #c0392b;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s;
}

.leave-form__btn:hover {
    background: #a93226;
}

/* 모바일 */
@media (max-width: 768px) {
    .leave-notice {
        padding: 20px;
    }

    .leave-form {
        margin-top: 28px;
        padding: 22px 18px;
    }

    .leave-form__row {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }

    .leave-form__label {
        width: auto;
    }

    .leave-form__btn {
        width: 100%;
    }
}






/* ===== 프로필관리: 수정 불가 항목 텍스트 ===== */
.ksme-register .kr-static {
    margin: 0;
    padding-top: 9px;
    color: #253645;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.7;
}

.ksme-register input[name="MbrRegnum1"] {
    max-width: 135px;
}






/* ========================================
   특별·찬조회원 가입 (member_insert_form.asp)
   기존 .ksme-register 공통 스타일에 추가
   ======================================== */

/* 우편번호 입력칸 폭 */
.ksme-register input[name="M_OFF_ZIPCODE"],
.ksme-register input[name^="M_PUB_ZIPCODE"] {
    flex: 0 1 135px;
    max-width: 135px;
}

/* 우편번호 찾기 버튼 감싸는 영역 */
.ksme-register [id^="btn_post"],
.ksme-register [id^="btn_pub"] {
    display: inline-flex;
}

/* 주소 입력칸 위 간격 */
.ksme-register .kr-inline + label {
    margin-top: 14px;
}

/* 파일 첨부 */
.ksme-register input[type="file"] {
    max-width: 100%;
    color: #617484;
    font-family: inherit;
    font-size: 13px;
}

.ksme-register input[type="file"]::file-selector-button {
    margin-right: 12px;
    padding: 8px 12px;
    border: 1px solid #214e71;
    border-radius: 6px;
    background: #f3f7fa;
    color: #214e71;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.ksme-register input[type="file"]::file-selector-button:hover {
    background: #214e71;
    color: #fff;
}

/* 가입 동의 문구 */
.ksme-register .kr-agree {
    margin: 32px 0 0;
    color: #3a5264;
    font-size: 15px;
    font-weight: 600;
    text-align: center;
    word-break: keep-all;
}

.ksme-register .kr-agree + .kr-actions {
    margin-top: 16px;
}

/* 안내 문구 다음 선택 항목 간격 */
.ksme-register .kr-help + .kr-inline {
    margin-top: 10px;
}

/* 전공분야(세부전공) 선택 3개 한 줄 정렬 */
.ksme-register select[name^="M_MAJOR_"] {
    flex: 1 1 180px;
    min-width: 0;
}





/* ========================================
   결제납부 및 확인 (Mbr_MyPayment.asp)
   ======================================== */

.ksme-pay {
    color: #203249;
    font-size: 15px;
    line-height: 1.6;
}

.ksme-pay,
.ksme-pay * {
    box-sizing: border-box;
}

/* 안내 문구 */
.ksme-pay .pay-notice {
    margin: 0 0 40px;
    padding: 20px 24px 20px 42px;
    border: 1px solid #e1e8f0;
    border-radius: 10px;
    background: #f6f9fc;
    color: #4a5f7a;
    list-style: disc;
    word-break: keep-all;
}

.ksme-pay .pay-notice li + li {
    margin-top: 6px;
}

/* 구역 제목 */
.ksme-pay .pay-section + .pay-section {
    margin-top: 48px;
}

.ksme-pay .pay-title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px;
    color: #203249;
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.ksme-pay .pay-title::before {
    content: "";
    width: 4px;
    height: 18px;
    border-radius: 2px;
    background: #1657a7;
}

.ksme-pay .pay-form + .pay-form {
    margin-top: 20px;
}

/* 표 공통 */
.ksme-pay .pay-table-wrap {
    overflow-x: auto;
    border: 1px solid #e1e8f0;
    border-radius: 10px;
    background: #fff;
}

.ksme-pay .pay-table {
    width: 100%;
    min-width: 640px;
    border-collapse: collapse;
    table-layout: fixed;
}

.ksme-pay .pay-table--history {
    min-width: 780px;
}

.ksme-pay .pay-table th {
    padding: 13px 12px;
    border-bottom: 1px solid #e1e8f0;
    background: #f3f6fa;
    color: #4a5f7a;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
}

.ksme-pay .pay-table td {
    padding: 15px 12px;
    border-bottom: 1px solid #edf1f5;
    color: #203249;
    font-size: 14px;
    text-align: center;
    vertical-align: middle;
    word-break: keep-all;
    overflow-wrap: anywhere;
}

.ksme-pay .pay-table tr:last-child td {
    border-bottom: 0;
}

/* 열 너비 */
.ksme-pay .pay-col-item {
    width: 32%;
}

.ksme-pay .pay-col-price {
    width: 140px;
}

.ksme-pay .pay-col-check {
    width: 72px;
}

.ksme-pay .pay-col-code {
    width: 160px;
}

.ksme-pay .pay-col-date {
    width: 110px;
}

.ksme-pay .pay-col-state {
    width: 90px;
}

.ksme-pay .pay-col-view {
    width: 100px;
}

/* 셀 */
.ksme-pay .pay-table .pay-item {
    font-weight: 600;
    text-align: left;
}

.ksme-pay .pay-table .pay-desc {
    color: #4a5f7a;
    text-align: left;
}

.ksme-pay .pay-table .pay-price {
    font-weight: 600;
    text-align: right;
    white-space: nowrap;
}

.ksme-pay .pay-check input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #1657a7;
    vertical-align: middle;
    cursor: pointer;
}

.ksme-pay .pay-table tr.is-checked td {
    background: #f0f6fd;
}

.ksme-pay .pay-code a {
    color: #1657a7;
    font-weight: 600;
    text-decoration: none;
}

.ksme-pay .pay-code a:hover {
    text-decoration: underline;
}

.ksme-pay .pay-code span {
    display: block;
    margin-top: 2px;
    color: #7e8da1;
    font-size: 13px;
}

/* 합계·결제하기 */
.ksme-pay .pay-table .pay-total td {
    padding: 16px 20px;
    border-top: 1px solid #e1e8f0;
    background: #f6f9fc;
    text-align: right;
}

.ksme-pay .pay-total__label {
    margin-right: 8px;
    color: #4a5f7a;
    font-weight: 600;
}

.ksme-pay .pay-total input[type="text"] {
    width: 130px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #1657a7;
    font-family: inherit;
    font-size: 19px;
    font-weight: 700;
    text-align: right;
    vertical-align: middle;
}

.ksme-pay .pay-total--sub input[type="text"] {
    color: #203249;
    font-size: 15px;
}

.ksme-pay .pay-button {
    min-height: 44px;
    margin-left: 16px;
    padding: 10px 28px;
    border: 1px solid #1657a7;
    border-radius: 6px;
    background: #1657a7;
    color: #fff;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    vertical-align: middle;
    cursor: pointer;
}

.ksme-pay .pay-button:hover {
    border-color: #104684;
    background: #104684;
}

/* 상태·상세보기 */
.ksme-pay .pay-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    background: #fff4e0;
    color: #b26a00;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}

.ksme-pay .pay-badge--done {
    background: #e8f1fb;
    color: #1657a7;
}

.ksme-pay .pay-link {
    display: inline-block;
    padding: 5px 10px;
    border: 1px solid #c9d6e6;
    border-radius: 6px;
    color: #1657a7;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.ksme-pay .pay-link:hover {
    border-color: #1657a7;
    background: #1657a7;
    color: #fff;
}

/* 내역 없음 */
.ksme-pay .pay-empty {
    padding: 48px 20px;
    border: 1px solid #e1e8f0;
    border-radius: 10px;
    background: #f6f9fc;
    color: #7e8da1;
    text-align: center;
}

.ksme-pay .pay-table .pay-empty-cell {
    padding: 44px 12px;
    color: #7e8da1;
}

/* 합계 줄 세로 정렬 */
.ksme-pay .pay-total td > * {
    vertical-align: middle;
}

/* 왼쪽 정렬 열의 머리글 */
.ksme-pay .pay-table--due th:nth-child(-n+2),
.ksme-pay .pay-table--history th:nth-child(2) {
    padding-left: 12px;
    text-align: left;
}

.ksme-pay .pay-table--due th:nth-child(3) {
    text-align: right;
}

/* 모바일 */
@media (max-width: 768px) {
    .ksme-pay .pay-notice {
        padding: 16px 18px 16px 34px;
        font-size: 14px;
    }

    .ksme-pay .pay-button {
        margin: 10px 0 0;
    }
}





/* ========================================
   결제하기 (MobilPay_MyPayment.asp)
   ======================================== */

.ksme-mpay {
    color: #203249;
    font-size: 15px;
    line-height: 1.6;
}

.ksme-mpay,
.ksme-mpay * {
    box-sizing: border-box;
}

/* 단계 제목 */
.ksme-mpay .mpay-section + .mpay-section {
    margin-top: 44px;
}

.ksme-mpay .mpay-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.ksme-mpay .mpay-heading h4 {
    margin: 0;
    color: #203249;
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.ksme-mpay .mpay-step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #1657a7;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

.ksme-mpay .mpay-help {
    margin: 0 0 14px;
    color: #7e8da1;
    font-size: 14px;
}

/* 1. 신청 내역 */
.ksme-mpay .mpay-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    border: 1px solid #e1e8f0;
    border-radius: 10px;
    background: #fff;
    overflow: hidden;
}

.ksme-mpay .mpay-summary dl {
    margin: 0;
    padding: 20px 24px;
}

.ksme-mpay .mpay-summary dt {
    margin-bottom: 6px;
    color: #7e8da1;
    font-size: 13px;
    font-weight: 600;
}

.ksme-mpay .mpay-summary dd {
    margin: 0;
    color: #203249;
    font-weight: 600;
    word-break: keep-all;
}

.ksme-mpay .mpay-summary__total {
    border-left: 1px solid #e1e8f0;
    background: #f6f9fc;
    text-align: right;
}

.ksme-mpay .mpay-summary__total strong {
    color: #1657a7;
    font-size: 24px;
    font-weight: 700;
}

/* 2. 결제방법 선택 */
.ksme-mpay .mpay-method {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

.ksme-mpay #pyMethodList {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ksme-mpay #pyMethodList li {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid #e1e8f0;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
}

.ksme-mpay #pyMethodList li:has(input:checked) {
    border-color: #1657a7;
    background: #f0f6fd;
    box-shadow: 0 0 0 1px #1657a7 inset;
}

.ksme-mpay #pyMethodList input[type="radio"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #1657a7;
    cursor: pointer;
}

.ksme-mpay #pyMethodList label {
    flex: 1;
    color: #203249;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}

/* 라벨 클릭 영역을 카드 전체로 확장 */
.ksme-mpay #pyMethodList label::after {
    content: "";
    position: absolute;
    inset: 0;
}

.ksme-mpay .mpay-locked {
    margin: 0;
    padding: 16px;
    border-radius: 8px;
    background: #fbf3f3;
    color: #c0392b;
    text-align: center;
}

/* 결제방법 안내 */
.ksme-mpay .mpay-method__info {
    min-width: 0;
    padding: 22px 24px;
    border: 1px solid #e1e8f0;
    border-radius: 10px;
    background: #fff;
}

.ksme-mpay .mpay-method__title {
    margin-bottom: 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid #edf1f5;
    color: #1657a7;
    font-size: 17px;
    font-weight: 700;
}

.ksme-mpay .mpay-method__info .dyhidden {
    color: #4a5f7a;
    font-size: 14px;
    line-height: 1.75;
    word-break: keep-all;
}

.ksme-mpay .mpay-method__info .dyPaytypeHi {
    margin: 0 0 4px;
    color: #203249;
    font-size: 15px;
    font-weight: 700;
}

.ksme-mpay .mpay-method__info .dyPaytypeHi img {
    display: none;
}

.ksme-mpay .mpay-method__info .highlight {
    color: #d9480f;
}

.ksme-mpay .mpay-method__info input[name^="PR_RECEIPT"],
.ksme-mpay .mpay-method__info input[name="se_cdate"],
.ksme-mpay .mpay-method__info input[name^="RCard"],
.ksme-mpay .mpay-method__info input[name="RMonth"],
.ksme-mpay .mpay-method__info input[name="RYear"] {
    min-height: 36px;
    padding: 6px 10px;
    border: 1px solid #d4dde5;
    border-radius: 6px;
    background: #fff;
    color: #203249;
    font-family: inherit;
    font-size: 14px;
    vertical-align: middle;
}

/* 세금계산서 */
.ksme-mpay .mpay-receipt {
    margin-top: 16px;
    color: #4a5f7a;
    font-size: 14px;
}

.ksme-mpay .mpay-receipt p {
    margin: 4px 0;
}

.ksme-mpay .mpay-receipt .highlight {
    color: #d9480f;
}

.ksme-mpay .mpay-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 6px 0;
    color: #203249;
    font-weight: 600;
    cursor: pointer;
}

.ksme-mpay .mpay-check input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #1657a7;
}

.ksme-mpay #dyReceipt {
    margin-top: 12px;
    padding: 16px 20px;
    border: 1px solid #e1e8f0;
    border-radius: 10px;
    background: #f6f9fc;
}

.ksme-mpay .mpay-receipt__row {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
}

.ksme-mpay .mpay-receipt__row + .mpay-receipt__row {
    margin-top: 10px;
}

.ksme-mpay .mpay-receipt__row label {
    color: #4a5f7a;
    font-weight: 600;
}

.ksme-mpay .mpay-receipt__row input {
    width: 100%;
    max-width: 360px;
    min-height: 40px;
    padding: 8px 12px;
    border: 1px solid #d4dde5;
    border-radius: 6px;
    background: #fff;
    font-family: inherit;
    font-size: 14px;
}

/* 결제하기·취소 */
.ksme-mpay .mpay-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 40px;
}

.ksme-mpay .mpay-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 170px;
    min-height: 50px;
    padding: 12px 28px;
    border: 1px solid #1657a7;
    border-radius: 6px;
    background: #1657a7;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
}

.ksme-mpay .mpay-button:hover {
    border-color: #104684;
    background: #104684;
    color: #fff;
}

.ksme-mpay .mpay-button--secondary {
    background: #fff;
    color: #1657a7;
}

.ksme-mpay .mpay-button--secondary:hover {
    background: #f0f6fd;
    color: #1657a7;
}

/* 달력 아이콘 교체 (/JS/Calendar/calendar.gif)
   이미지 파일과 클릭 동작은 그대로 두고, 화면에는 SVG 아이콘 버튼으로 표시 */
.ksme-mpay img[src*="/JS/Calendar/calendar.gif"] {
    box-sizing: border-box;
    width: 36px;
    height: 36px;
    margin-left: 4px;
    border: 1px solid #d4dde5;
    border-radius: 6px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231657a7' stroke-width='1.8' stroke-linecap='round'%3E%3Crect x='3' y='4.5' width='18' height='17' rx='2.5'/%3E%3Cpath d='M3 9.5h18M8 2.5v4M16 2.5v4'/%3E%3Cg fill='%231657a7' stroke='none'%3E%3Ccircle cx='8' cy='13.5' r='1.2'/%3E%3Ccircle cx='12' cy='13.5' r='1.2'/%3E%3Ccircle cx='16' cy='13.5' r='1.2'/%3E%3Ccircle cx='8' cy='17.5' r='1.2'/%3E%3Ccircle cx='12' cy='17.5' r='1.2'/%3E%3C/g%3E%3C/svg%3E") center / 18px no-repeat;
    object-position: -9999px 0;
    vertical-align: middle;
    cursor: pointer;
}

.ksme-mpay img[src*="/JS/Calendar/calendar.gif"]:hover {
    border-color: #1657a7;
    background-color: #f0f6fd;
}



/* 달력 레이어 위치 (/JS/Calendar/LayerCalendar.js)
   스크립트는 달력을 입력칸 바로 뒤 span 안에 넣고 left 값만 지정함 */
.ksme-mpay input[name="PR_RECEIPT_DT"] + span > table,
.ksme-mpay input[name="PR_RECEIPT_DT_GIRO"] + span > table,
.ksme-mpay input[name="se_cdate"] + span > table {
    top: 42px;
    z-index: 100;
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(32, 50, 73, 0.18);
}

@media (max-width: 768px) {
    /* 날짜칸과 달력 버튼이 한 줄에 있도록 폭 축소 */
    .ksme-mpay .mpay-method__info input[name="PR_RECEIPT_DT"],
    .ksme-mpay .mpay-method__info input[name="PR_RECEIPT_DT_GIRO"],
    .ksme-mpay .mpay-method__info input[name="se_cdate"] {
        width: 140px;
    }

    /* 줄바꿈과 상관없이 달력을 화면 가운데에 표시 */
    .ksme-mpay input[name="PR_RECEIPT_DT"] + span > table,
    .ksme-mpay input[name="PR_RECEIPT_DT_GIRO"] + span > table,
    .ksme-mpay input[name="se_cdate"] + span > table {
        position: fixed !important;
        top: 50% !important;
        left: 50% !important;
        transform: translate(-50%, -50%);
        z-index: 1000;
    }
}




/* 모바일 */
@media (max-width: 768px) {
    .ksme-mpay .mpay-summary,
    .ksme-mpay .mpay-method {
        grid-template-columns: minmax(0, 1fr);
    }

    .ksme-mpay .mpay-summary__total {
        border-top: 1px solid #e1e8f0;
        border-left: 0;
        text-align: left;
    }

    .ksme-mpay #pyMethodList {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ksme-mpay .mpay-receipt__row {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
    }

    .ksme-mpay .mpay-actions {
        flex-direction: column;
    }

    .ksme-mpay .mpay-button {
        width: 100%;
    }
}



/* ========================================
   세로형 목록 : 결제예정 내역·항목별 납부내역
   표 구조(table/tr/td)는 유지하고 카드 형태로 표시
   ======================================== */

.ksme-pay .pay-list {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.ksme-pay .pay-list .pay-table,
.ksme-pay .pay-list tbody,
.ksme-pay .pay-list tr,
.ksme-pay .pay-list td {
    display: block;
    width: 100%;
    min-width: 0;
}

.ksme-pay .pay-list colgroup,
.ksme-pay .pay-list thead {
    display: none;
}

.ksme-pay .pay-list tr {
    padding: 18px 22px;
    border: 1px solid #e1e8f0;
    border-radius: 10px;
    background: #fff;
}

/* 행 사이에 hidden input이 끼어 있어 일반 형제 선택자(~) 사용 */
.ksme-pay .pay-list tr ~ tr {
    margin-top: 12px;
}

.ksme-pay .pay-list .pay-table td {
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
}

/* 항목 이름표 (data-label) */
.ksme-pay .pay-list td[data-label]::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 2px;
    color: #7e8da1;
    font-size: 12px;
    font-weight: 600;
}

.ksme-pay .pay-list .pay-date:empty::after {
    content: "-";
    color: #7e8da1;
}

/* 결제예정 항목 카드 */
.ksme-pay .pay-table--due tr:not(.pay-total) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "item  check"
        "desc  price";
    gap: 6px 20px;
    align-items: center;
}

.ksme-pay .pay-table--due .pay-item {
    grid-area: item;
    font-size: 16px;
}

.ksme-pay .pay-table--due .pay-desc {
    grid-area: desc;
}

.ksme-pay .pay-table--due .pay-price {
    grid-area: price;
    color: #203249;
    font-size: 17px;
    text-align: right;
}

.ksme-pay .pay-table--due .pay-check {
    grid-area: check;
    text-align: right;
}

.ksme-pay .pay-list tr.is-checked {
    border-color: #1657a7;
    background: #f0f6fd;
    box-shadow: inset 0 0 0 1px #1657a7;
}

.ksme-pay .pay-list tr.is-checked td {
    background: transparent;
}

/* 합계·결제하기 */
.ksme-pay .pay-list .pay-total {
    padding: 16px 22px;
    background: #f6f9fc;
}

.ksme-pay .pay-list .pay-total td {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 4px 8px;
}

.ksme-pay .pay-list .pay-total__label {
    margin-right: auto;
}

.ksme-pay .pay-list .pay-total .pay-button {
    margin-left: 12px;
}

.ksme-pay .pay-list .pay-total--sub {
    padding-bottom: 6px;
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
}

.ksme-pay .pay-list .pay-total--sub ~ .pay-total {
    margin-top: 0;
    padding-top: 6px;
    border-top: 0;
    border-radius: 0 0 10px 10px;
}

/* 납부내역 카드 */
.ksme-pay .pay-table--history tr {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
    grid-template-areas:
        "code  code  code    state"
        "item  item  item    item"
        "price date  confirm view";
    gap: 12px 20px;
    align-items: end;
}

.ksme-pay .pay-table--history .pay-code {
    grid-area: code;
    align-self: center;
}

.ksme-pay .pay-table--history .pay-code a {
    font-size: 15px;
    white-space: nowrap;
}

.ksme-pay .pay-table--history .pay-code span {
    display: inline-block;
    margin: 0 0 0 8px;
}

.ksme-pay .pay-table--history .pay-state {
    grid-area: state;
    align-self: center;
    text-align: right;
}

.ksme-pay .pay-table--history .pay-item {
    grid-area: item;
    padding-bottom: 14px;
    border-bottom: 1px solid #edf1f5;
    font-size: 15px;
}

.ksme-pay .pay-table--history .pay-price {
    grid-area: price;
    text-align: left;
}

.ksme-pay .pay-table--history td:nth-child(4) {
    grid-area: date;
}

.ksme-pay .pay-table--history td:nth-child(5) {
    grid-area: confirm;
}

.ksme-pay .pay-table--history .pay-view {
    grid-area: view;
    text-align: right;
}

.ksme-pay .pay-list .pay-empty-cell {
    padding: 36px 12px;
    color: #7e8da1;
    text-align: center;
}

.ksme-pay .pay-table--history tr:has(.pay-empty-cell) {
    display: block;
}

/* 세로형 목록 : 모바일 */
@media (max-width: 768px) {
    .ksme-pay .pay-list tr {
        padding: 16px 18px;
    }

    .ksme-pay .pay-table--due tr:not(.pay-total) {
        grid-template-areas:
            "item  check"
            "desc  desc"
            "price price";
    }

    .ksme-pay .pay-table--due .pay-price {
        text-align: left;
    }

    .ksme-pay .pay-list .pay-total .pay-button {
        flex: 1 0 100%;
        margin: 10px 0 0;
    }

    .ksme-pay .pay-table--history tr {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-areas:
            "code    code"
            "state   state"
            "item    item"
            "price   date"
            "confirm view";
        gap: 10px 16px;
    }

    .ksme-pay .pay-table--history .pay-state {
        margin-top: -4px;
        text-align: left;
    }

    .ksme-pay .pay-list .pay-total input[type="text"] {
        width: 100px;
    }

    .ksme-pay .pay-table--history .pay-code span {
        display: block;
        margin: 2px 0 0;
    }
}







/* ========================================
   결제내역 상세보기 (Mbr_MyPaymentDetail.asp)
   payment.css(.ksme-pay 공통)와 함께 사용
   ======================================== */

/* 결제내역 카드 */
.ksme-pay .pdt-card {
    border: 1px solid #e1e8f0;
    border-radius: 10px;
    background: #fff;
    overflow: hidden;
}

.ksme-pay .pdt-summary {
    margin: 0;
    padding: 6px 24px;
}

.ksme-pay .pdt-summary__row {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 16px;
    padding: 12px 0;
}

.ksme-pay .pdt-summary__row + .pdt-summary__row {
    border-top: 1px solid #edf1f5;
}

.ksme-pay .pdt-summary dt,
.ksme-pay .pdt-status dt {
    color: #7e8da1;
    font-size: 13px;
    font-weight: 600;
}

.ksme-pay .pdt-summary dd {
    margin: 0;
    color: #203249;
    font-weight: 600;
    word-break: keep-all;
    overflow-wrap: anywhere;
}

/* 결제 상태 요약 */
.ksme-pay .pdt-status {
    display: grid;
    grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr));
    margin: 0;
    border-top: 1px solid #e1e8f0;
    background: #f6f9fc;
}

.ksme-pay .pdt-status > div {
    padding: 16px 20px;
}

.ksme-pay .pdt-status > div + div {
    border-left: 1px solid #e1e8f0;
}

.ksme-pay .pdt-status dd {
    margin: 6px 0 0;
    color: #203249;
    font-size: 15px;
    font-weight: 600;
}

.ksme-pay .pdt-status .pdt-status__price {
    color: #1657a7;
    font-size: 18px;
    font-weight: 700;
}

/* 결제정보 */
.ksme-pay .pdt-info {
    padding: 18px 24px 20px;
    border-top: 1px solid #e1e8f0;
}

.ksme-pay .pdt-info h5 {
    margin: 0 0 10px;
    color: #203249;
    font-size: 15px;
    font-weight: 700;
}

.ksme-pay .pdt-info ul {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ksme-pay .pdt-info li {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 16px;
    color: #203249;
    font-size: 14px;
}

.ksme-pay .pdt-info li span {
    color: #7e8da1;
}

.ksme-pay .pdt-info p {
    margin: 0;
    color: #7e8da1;
}

/* 안내 문구 */
.ksme-pay .pdt-note {
    margin: 12px 0 0;
    color: #4a5f7a;
    font-size: 13px;
}

/* 버튼 */
.ksme-pay .pdt-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 16px;
}

.ksme-pay .pdt-actions:empty {
    display: none;
}

.ksme-pay .pdt-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 20px;
    border: 1px solid #c9d6e6;
    border-radius: 6px;
    background: #fff;
    color: #1657a7;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.ksme-pay .pdt-button:hover {
    border-color: #1657a7;
    background: #f0f6fd;
    color: #1657a7;
}

.ksme-pay .pdt-button--primary {
    min-width: 170px;
    min-height: 50px;
    border-color: #1657a7;
    background: #1657a7;
    color: #fff;
    font-size: 15px;
}

.ksme-pay .pdt-button--primary:hover {
    border-color: #104684;
    background: #104684;
    color: #fff;
}

.ksme-pay .pdt-button--danger {
    border-color: #e3b5b0;
    color: #c0392b;
}

.ksme-pay .pdt-button--danger:hover {
    border-color: #c0392b;
    background: #fbf3f3;
    color: #c0392b;
}

.ksme-pay .pdt-back {
    display: flex;
    justify-content: center;
    margin-top: 40px;
}

/* 항목별 결제내역 표 */
.ksme-pay .pay-table--detail {
    min-width: 600px;
}

.ksme-pay .pay-col-desc {
    width: 30%;
}

.ksme-pay .pay-col-type {
    width: 120px;
}

.ksme-pay .pay-table--detail th:first-child,
.ksme-pay .pay-table--detail th:nth-child(2) {
    text-align: left;
}

.ksme-pay .pay-table--detail th:last-child {
    text-align: right;
}

/* 모바일 */
@media (max-width: 768px) {
    .ksme-pay .pdt-summary {
        padding: 4px 18px;
    }

    .ksme-pay .pdt-summary__row,
    .ksme-pay .pdt-info li {
        grid-template-columns: minmax(0, 1fr);
        gap: 2px;
    }

    .ksme-pay .pdt-status {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ksme-pay .pdt-status > div {
        padding: 14px 18px;
        border-top: 1px solid #e1e8f0;
    }

    .ksme-pay .pdt-status > div + div {
        border-left: 0;
    }

    .ksme-pay .pdt-status > div:first-child {
        grid-column: 1 / -1;
        border-top: 0;
    }

    .ksme-pay .pdt-info {
        padding: 16px 18px;
    }

    .ksme-pay .pdt-actions {
        justify-content: stretch;
    }

    .ksme-pay .pdt-actions .pdt-button {
        flex: 1 1 auto;
    }
}




/* ========================================
   항목별 결제내역 : 세로형(카드) 목록
   공통 .pay-list 규칙은 payment.css의 "세로형 목록" 블록 사용
   ======================================== */

.ksme-pay .pay-table--detail tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "item  price"
        "desc  type";
    gap: 4px 20px;
    align-items: center;
}

.ksme-pay .pay-table--detail .pay-item {
    grid-area: item;
    font-size: 16px;
}

.ksme-pay .pay-table--detail .pay-price {
    grid-area: price;
    color: #203249;
    font-size: 17px;
    text-align: right;
}

.ksme-pay .pay-table--detail .pay-desc {
    grid-area: desc;
    font-size: 14px;
}

.ksme-pay .pay-table--detail td:nth-child(3) {
    grid-area: type;
    color: #7e8da1;
    font-size: 13px;
    text-align: right;
}

/* 항목 이름·금액은 이름표 없이 표시 */
.ksme-pay .pay-list .pay-table--detail .pay-item::before,
.ksme-pay .pay-list .pay-table--detail .pay-price::before,
.ksme-pay .pay-list .pay-table--detail td:nth-child(3)::before {
    display: none;
}

/* 결제내용정보가 비어 있으면 숨김 */
.ksme-pay .pay-table--detail .pay-desc:empty {
    display: none;
}

.ksme-pay .pay-table--detail tr:has(.pay-empty-cell) {
    display: block;
}

@media (max-width: 768px) {
    .ksme-pay .pay-table--detail .pay-price {
        font-size: 16px;
    }
}





/* ========================================
   논문지 구독신청 (Mbr_Journal.asp)
   payment.css(.ksme-pay 공통, 세로형 목록)와 함께 사용
   ======================================== */

/* 논문지 안내 (관리자 등록 내용) */
.ksme-journal .jnl-intro {
    margin-bottom: 40px;
    padding: 24px;
    border: 1px solid #e1e8f0;
    border-radius: 10px;
    background: #f6f9fc;
}

.ksme-journal .jnl-intro table {
    width: 100% !important;
    max-width: 760px;
    margin: 0 auto !important;
    background: transparent !important;
    font-family: inherit !important;
    table-layout: fixed;
}

.ksme-journal .jnl-intro td {
    padding: 8px 6px;
    color: #4a5f7a !important;
    font-family: inherit !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
    vertical-align: top;
    word-break: keep-all;
}

.ksme-journal .jnl-intro td strong {
    color: #203249;
    font-size: 14px;
}

/* 표지 3개를 같은 너비(1/3)·같은 비율로 맞춤
   관리자 등록 내용의 인라인 여백·테두리가 제각각이라 !important로 통일 */
.ksme-journal .jnl-intro tr:first-child td {
    vertical-align: bottom;
}

.ksme-journal .jnl-intro img {
    box-sizing: border-box;
    display: block;
    width: 100% !important;
    max-width: 180px;
    height: auto !important;
    margin: 0 auto !important;
    padding: 5px !important;
    border: 1px solid #d4dde5 !important;
    border-radius: 4px;
    background: #fff !important;
    aspect-ratio: 180 / 250;
    object-fit: cover;
}

.ksme-journal .jnl-foot:empty,
.ksme-journal .jnl-foot:not(:has(*)) {
    display: none;
}

.ksme-journal .jnl-foot {
    margin-top: 32px;
    color: #4a5f7a;
    font-size: 14px;
}

/* 구독 항목 카드 */
.ksme-journal .pay-table--journal tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 40px;
    grid-template-areas:
        "type    price   check"
        "item    price   check"
        "status  status  status";
    gap: 2px 20px;
    align-items: center;
    padding: 16px 22px;
}

.ksme-journal .pay-table--journal .jnl-type {
    grid-area: type;
    color: #1657a7;
    font-size: 13px;
    font-weight: 600;
}

.ksme-journal .pay-table--journal .pay-item {
    grid-area: item;
    font-size: 16px;
}

.ksme-journal .pay-table--journal .pay-price {
    grid-area: price;
    color: #203249;
    font-size: 17px;
    text-align: right;
}

.ksme-journal .pay-table--journal .jnl-status {
    grid-area: status;
    color: #4a5f7a;
    font-size: 14px;
}

.ksme-journal .pay-table--journal .jnl-status {
    margin-top: 8px;
}

.ksme-journal .pay-table--journal .jnl-status:empty {
    display: none;
}

.ksme-journal .pay-table--journal .pay-check {
    grid-area: check;
    text-align: right;
}

.ksme-journal .pay-list .pay-table--journal .jnl-status[data-label]::before {
    display: inline;
    margin: 0 8px 0 0;
}

.ksme-journal .pay-badge--end {
    background: #eef1f5;
    color: #7e8da1;
}

.ksme-journal .jnl-stop {
    padding: 6px 12px;
    border: 1px solid #e3b5b0;
    border-radius: 6px;
    background: #fff;
    color: #c0392b;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.ksme-journal .jnl-stop:hover {
    border-color: #c0392b;
    background: #fbf3f3;
}

/* 합계·결제하기 */
.ksme-journal .jnl-total {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 6px 10px;
    margin-top: 12px;
    padding: 16px 22px;
    border: 1px solid #e1e8f0;
    border-radius: 10px;
    background: #f6f9fc;
}

.ksme-journal .jnl-total .pay-total__label {
    margin-right: auto;
}

.ksme-journal .jnl-total__price {
    color: #203249;
    font-weight: 600;
}

.ksme-journal .jnl-total__price input {
    width: 120px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #1657a7;
    font-family: inherit;
    font-size: 20px;
    font-weight: 700;
    text-align: right;
    vertical-align: middle;
}

.ksme-journal #dyAddMsg {
    color: #d9480f;
    font-size: 13px;
}

.ksme-journal .jnl-total .pay-button {
    margin-left: 12px;
}

/* 모바일 */
@media (max-width: 768px) {
    /* 논문지 안내 : 좁은 화면에서 3열이 넘치지 않도록 */
    .ksme-journal .jnl-intro {
        padding: 14px 10px;
    }

    .ksme-journal .jnl-intro td {
        padding: 4px 3px !important;
        font-size: 11px !important;
        word-break: normal;
        overflow-wrap: anywhere;
    }

    .ksme-journal .jnl-intro td strong {
        font-size: 12px;
    }

    .ksme-journal .jnl-intro img {
        padding: 3px !important;
    }

    .ksme-journal .pay-table--journal tr {
        grid-template-columns: minmax(0, 1fr) 32px;
        grid-template-areas:
            "type    check"
            "item    check"
            "price   price"
            "status  status";
    }

    .ksme-journal .pay-table--journal .pay-price {
        text-align: left;
    }

    .ksme-journal .jnl-total__price input {
        width: 100px;
    }

    .ksme-journal .jnl-total .pay-button {
        flex: 1 0 100%;
        margin: 10px 0 0;
    }
}





/* ==================================================
   발표논문 제출 및 수정 - 제출자 / 제출논문 정보
   ConferencePaperInfo.asp
   기존 sub.css 맨 아래에 추가
   ================================================== */

/* 기본 설정 */
.kcpi {
    --kcpi-ink: #172c45;
    --kcpi-blue: #1559a6;
    --kcpi-line: #dce4ed;
    --kcpi-muted: #607389;
}

/* ==================================================
   구역 제목
   ================================================== */

.kcpi-section + .kcpi-section {
    margin-top: 40px;
}

.kcpi-section__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 16px;

    margin-bottom: 14px;
}

.kcpi-section__title {
    position: relative;

    margin: 0;
    padding-left: 14px;

    color: var(--kcpi-ink);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
}

/* 제목 앞 파란 막대 */
.kcpi-section__title::before {
    content: "";

    position: absolute;
    top: 50%;
    left: 0;

    width: 4px;
    height: 18px;

    background: var(--kcpi-blue);
    border-radius: 2px;

    transform: translateY(-50%);
}

.kcpi-section__tools {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* ==================================================
   제출자 기본정보
   PC 2열 / 모바일 1열
   ================================================== */

.kcpi-info {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    margin: 0;

    border-top: 2px solid #245488;
}

.kcpi-info__item {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);

    border-bottom: 1px solid var(--kcpi-line);
}

.kcpi-info dt,
.kcpi-info dd {
    margin: 0;
    padding: 14px 16px;

    font-size: 14px;
    line-height: 1.6;
}

.kcpi-info dt {
    color: #425b76;
    font-weight: 600;

    background: #f5f8fc;
}

.kcpi-info dd {
    min-width: 0;

    color: var(--kcpi-ink);
    overflow-wrap: anywhere;
}

/* ==================================================
   제출논문 정보 (PC: 2줄 표)
   ================================================== */

.kcpi-papers {
    width: 100%;
    margin: 0;

    table-layout: fixed;
    border-collapse: collapse;
    border-top: 2px solid #245488;
}

.kcpi-papers th,
.kcpi-papers td {
    padding: 12px 10px;

    font-size: 14px;
    line-height: 1.6;
    text-align: center;
    vertical-align: middle;
    overflow-wrap: anywhere;

    border-bottom: 1px solid var(--kcpi-line);
}

.kcpi-papers thead th {
    color: #425b76;
    font-weight: 600;

    background: #f2f6fc;
}

/* 표 머리 1줄과 2줄 사이 구분선은 연하게 */
.kcpi-papers thead tr:first-child th {
    border-bottom-color: #e7edf4;
}

.kcpi-papers tbody td {
    color: #52667d;
    background: #fff;
}

/* 논문 1건 안의 1줄과 2줄 사이 구분선은 연하게 */
.kcpi-paper tr:first-child td {
    border-bottom-color: #eef2f6;
}

/* 결제확인(2줄 병합) 칸 구분선 */
.kcpi-paper__pay {
    border-left: 1px solid #eef2f6;
}

/* 논문 1건 단위 구분 */
.kcpi-paper + .kcpi-paper tr:first-child td {
    border-top: 1px solid #c9d6e4;
}

/* 접수번호 / 논문제목 링크 */
.kcpi-paper__link {
    color: var(--kcpi-blue);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kcpi-paper__link:hover {
    color: #104a8b;
}

.kcpi-papers td.kcpi-paper__title {
    text-align: left;
}

/* 초록확인 상태 */
.kcpi-paper__check a {
    text-decoration: none;
}

.kcpi-badge {
    display: inline-block;

    padding: 3px 10px;

    font-size: 13px;
    font-weight: 600;
    line-height: 1.6;
    white-space: nowrap;

    border-radius: 5px;
}

.kcpi-badge--done {
    color: #1d6b45;
    background: #e8f5ee;
}

.kcpi-badge--todo {
    color: #c0392b;
    background: #fdeeee;
}

.kcpi-paper__check a:hover .kcpi-badge {
    text-decoration: underline;
}

/* 데이터 없음 */
.kcpi-empty td {
    padding: 48px 20px;

    color: #718196;
    text-align: center;

    background: #f8fafc;
}

/* 안내 문구 */
.kcpi-notes {
    margin: 14px 0 0;
    padding: 14px 18px;

    list-style: none;

    background: #fff8f0;
    border: 1px solid #f6dfc6;
    border-radius: 8px;
}

.kcpi-notes li {
    position: relative;

    padding-left: 12px;

    color: #b65a12;
    font-size: 13px;
    line-height: 1.7;
}

.kcpi-notes li::before {
    content: "*";

    position: absolute;
    top: 0;
    left: 0;
}

.kcpi-notes strong {
    font-weight: 700;
}

/* ==================================================
   버튼
   ================================================== */

.kcpi-actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;

    margin-top: 30px;
    padding-top: 24px;

    border-top: 1px solid var(--kcpi-line);
}

/* 표시할 버튼이 없으면 영역 숨김 */
.kcpi-actions:not(:has(a)) {
    display: none;
}

.kcpi-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;

    min-width: 160px;
    min-height: 48px;
    padding: 10px 22px;

    color: #fff;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.5;
    text-decoration: none;

    background: var(--kcpi-blue, #1559a6);
    border: 1px solid var(--kcpi-blue, #1559a6);
    border-radius: 8px;
}

.kcpi-button:hover {
    color: #fff;
    background: #104a8b;
    border-color: #104a8b;
}

.kcpi-button--secondary {
    color: #1559a6;
    background: #f1f6fd;
    border-color: #c8daf0;
}

.kcpi-button--secondary:hover {
    color: #104a8b;
    background: #e6effb;
    border-color: #9cbbe1;
}

/* 비회원 정보수정 / 로그아웃 */
.kcpi-button--small {
    min-width: 0;
    min-height: 36px;
    padding: 6px 14px;

    color: #425b76;
    font-size: 13px;

    background: #fff;
    border-color: #ccd8e5;
    border-radius: 6px;
}

.kcpi-button--small:hover {
    color: #1559a6;
    background: #f2f6fb;
    border-color: #9db4cd;
}

.kcpi-button:focus-visible,
.kcpi-paper__link:focus-visible,
.kcpi-paper__check a:focus-visible {
    outline: 2px solid #1559a6;
    outline-offset: 3px;
}

/* ==================================================
   태블릿
   ================================================== */

@media (max-width: 1024px) {
    .kcpi-info__item {
        grid-template-columns: 96px minmax(0, 1fr);
    }
}

/* ==================================================
   모바일
   - 제출자 정보: 1열
   - 제출논문 정보: 좌우 스크롤 없이 논문별 세로 카드
   ================================================== */

@media (max-width: 767px) {
    .kcpi-section + .kcpi-section {
        margin-top: 32px;
    }

    .kcpi-section__title {
        font-size: 17px;
    }

    /* 제출자 기본정보 1열 */
    .kcpi-info {
        grid-template-columns: 1fr;
    }

    .kcpi-info__item {
        grid-template-columns: 88px minmax(0, 1fr);
    }

    .kcpi-info dt,
    .kcpi-info dd {
        padding: 12px 14px;
        font-size: 13px;
    }

    /* 표 구조 해제 */
    .kcpi-papers,
    .kcpi-papers tbody {
        display: block;
        width: 100%;
    }

    .kcpi-papers {
        border-top: 0;
    }

    .kcpi-papers colgroup {
        display: none;
    }

    /* 표 머리는 화면에서 숨기고 각 칸의 항목명으로 대체 */
    .kcpi-papers thead {
        position: absolute;

        width: 1px;
        height: 1px;
        margin: -1px;

        overflow: hidden;
        clip-path: inset(50%);
    }

    /* 논문 1건 = 카드 1개 */
    .kcpi-paper {
        display: flex !important;
        flex-direction: column;

        padding: 6px 16px;

        background: #fff;
        border: 1px solid var(--kcpi-line);
        border-top: 3px solid #245488;
        border-radius: 10px;
    }

    .kcpi-paper + .kcpi-paper {
        margin-top: 14px;
    }

    .kcpi-paper tr {
        display: contents;
    }

    /* 항목명 : 값 */
    .kcpi-papers .kcpi-paper td {
        display: grid;
        grid-template-columns: 88px minmax(0, 1fr);
        gap: 12px;
        align-items: center;

        padding: 10px 0;

        font-size: 13px;
        text-align: left;

        border: 0;
        border-bottom: 1px solid #eef2f6;
    }

    .kcpi-papers .kcpi-paper td::before {
        content: attr(data-label);

        color: #7e8da1;
        font-size: 12px;
        font-weight: 600;
    }

    /* PC용 논문 구분선 제거 */
    .kcpi-paper + .kcpi-paper tr:first-child td {
        border-top: 0;
    }

    /* 값이 없는 항목(발표분야 미사용 등)은 숨김 */
    .kcpi-papers .kcpi-paper td:empty {
        display: none;
    }

    /* 논문제목을 카드 맨 위에 크게 표시 */
    .kcpi-papers .kcpi-paper td.kcpi-paper__title {
        order: -1;

        display: block;

        padding: 12px 0 12px;

        font-size: 15px;
        line-height: 1.6;

        border-bottom: 1px solid var(--kcpi-line);
    }

    .kcpi-papers .kcpi-paper td.kcpi-paper__title::before {
        display: none;
    }

    .kcpi-papers .kcpi-paper td.kcpi-paper__title .kcpi-paper__link {
        color: var(--kcpi-ink);
        font-weight: 700;
    }

    /* 마지막 항목의 구분선 제거 */
    .kcpi-papers .kcpi-paper tr:last-child td:last-child {
        border-bottom: 0;
    }

    .kcpi-paper__pay {
        border-left: 0;
    }

    /* 데이터 없음 */
    .kcpi-empty,
    .kcpi-empty tr,
    .kcpi-empty td {
        display: block;
        width: 100%;
    }

    .kcpi-empty td {
        padding: 36px 16px;

        border: 1px solid var(--kcpi-line);
        border-radius: 10px;
    }

    /* 버튼 */
    .kcpi-actions {
        flex-direction: column;
        margin-top: 24px;
        padding-top: 20px;
    }

    .kcpi-actions .kcpi-button {
        width: 100%;
    }

    .kcpi-section__tools {
        width: 100%;
    }

    .kcpi-section__tools .kcpi-button {
        flex: 1 1 0;
    }
}





/* ==================================================
   발표논문 제출 및 수정 - 논문 등록 / 수정 폼
   ConferencePaperReg.asp
   기존 sub.css 맨 아래에 추가
   ================================================== */

/* 기본 설정 */
.kpr {
    --kpr-ink: #172c45;
    --kpr-blue: #1559a6;
    --kpr-line: #dce4ed;
    --kpr-soft: #f5f8fc;
    --kpr-muted: #607389;
}

.kpr * {
    box-sizing: border-box;
}

.kpr form {
    margin: 0;
    padding: 0;
}

/* ==================================================
   안내 박스
   ================================================== */

.kpr-notice {
    margin: 0 0 14px;
    padding: 14px 18px;

    color: #24466f;
    font-size: 14px;
    line-height: 1.7;

    background: #eef4fb;
    border: 1px solid #d4e2f2;
    border-radius: 8px;
}

.kpr-caution {
    margin: 12px 0;

    color: #c0392b;
    font-size: 13px;
    line-height: 1.7;
}

/* 세션초청논문 / 투고 의향 / 촬영 안내 */
.kpr-guide {
    margin-top: 12px;
    padding: 14px 18px;

    color: #4a5f7a;
    font-size: 13px;
    line-height: 1.7;

    background: #fffbea;
    border: 1px solid #f1e3a6;
    border-radius: 8px;
}

.kpr-guide--info {
    background: #f1f8fc;
    border-color: #d3e7f3;
}

.kpr-guide--question {
    margin: 0 0 4px;
    background: var(--kpr-soft);
    border-color: var(--kpr-line);
}

.kpr-guide__title {
    display: block;
    margin-bottom: 6px;

    color: #8a5a00;
    font-weight: 700;
}

.kpr-guide__text {
    margin: 0 0 8px;
}

.kpr-guide__list {
    margin: 0;
    padding-left: 18px;

    color: #9a3b1c;
}

.kpr-guide__list--number {
    color: inherit;
    list-style: decimal;
}

.kpr-guide__list li + li {
    margin-top: 4px;
}

.kpr-guide__point {
    color: #d90000;
}

.kpr-guide__action {
    margin-top: 10px;
}

/* ==================================================
   구역 제목
   ================================================== */

.kpr-section {
    margin-top: 40px;
}

.kpr-notice + .kpr-section {
    margin-top: 28px;
}

.kpr-section__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 16px;

    margin-bottom: 14px;
}

.kpr-section__title {
    position: relative;

    margin: 0;
    padding-left: 14px;

    color: var(--kpr-ink);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
}

/* 제목 앞 파란 막대 */
.kpr-section__title::before {
    content: "";

    position: absolute;
    top: 50%;
    left: 0;

    width: 4px;
    height: 18px;

    background: var(--kpr-blue);
    border-radius: 2px;

    transform: translateY(-50%);
}

.kpr-section__desc {
    margin: 0;

    color: var(--kpr-muted);
    font-size: 13px;
}

/* ==================================================
   입력 항목 (라벨 / 입력칸)
   ================================================== */

.kpr-fields {
    border-top: 2px solid #245488;
}

.kpr-fields:empty {
    border-top: 0;
}

.kpr-field {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr);

    border-bottom: 1px solid var(--kpr-line);
}

.kpr-field__label {
    display: flex;
    align-items: flex-start;

    padding: 21px 16px 14px;

    color: #425b76;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;

    background: var(--kpr-soft);
}

.kpr-field__label label {
    cursor: pointer;
}

.kpr-field__control {
    min-width: 0;
    padding: 12px 16px;

    color: var(--kpr-ink);
    font-size: 14px;
    line-height: 1.6;
}

.kpr-field__control--text,
.kpr-field__static {
    display: flex;
    align-items: center;
    font-weight: 600;
}

.kpr-field__help {
    margin-bottom: 8px;

    color: var(--kpr-muted);
    font-size: 13px;
    line-height: 1.6;
}

/* ==================================================
   입력 요소 공통
   ================================================== */

.kpr input[type="text"],
.kpr select,
.kpr textarea {
    max-width: 100%;

    color: var(--kpr-ink);
    font-family: inherit;
    font-size: 14px;

    background: #fff;
    border: 1px solid #cfd9e5;
    border-radius: 6px;
}

.kpr input[type="text"],
.kpr select {
    height: 40px;
    padding: 0 12px;
}

.kpr textarea {
    display: block;
    width: 100% !important;
    padding: 10px 12px;

    line-height: 1.6;
    resize: vertical;
}

.kpr input[type="text"]:focus,
.kpr select:focus,
.kpr textarea:focus {
    border-color: var(--kpr-blue);
    outline: 2px solid rgba(21, 89, 166, 0.15);
    outline-offset: 0;
}

.kpr input[readonly] {
    color: #4a5f7a;
    background: #f3f6f9;
}

/* 발표분야 셀렉트 */
.kpr-selects {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.kpr-selects select {
    flex: 1 1 220px;
    min-width: 0;
}

/* 논문제목 에디터(CKEditor) */
.kpr .cke {
    width: 100% !important;
    border-color: #cfd9e5 !important;
    border-radius: 6px;
    overflow: hidden;
}

/* 라디오 선택지 */
.kpr-choices {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
}

/* 라디오만 있는 줄은 라벨과 높이 맞춤 */
.kpr-field__control > .kpr-choices:first-child {
    align-items: center;
    min-height: 40px;
}

.kpr-choice {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    font-size: 14px;
    line-height: 1.6;
}

.kpr input[type="radio"] {
    width: 17px;
    height: 17px;
    margin: 0;

    accent-color: var(--kpr-blue);
    cursor: pointer;
}

.kpr-choice label {
    cursor: pointer;
}

/* 기간 외 입력칸 비활성 표시 (기존 .form 회색 처리) */
.kpr.is-closed .form,
.kpr.is-closed .form0,
.kpr.is-closed .form1 {
    color: #828282;
    background: #eef1f5;
}

/* ==================================================
   저자 정보
   #dynamic_table 구조는 유지하고 저자 1명을 카드 1개로 표시
   ================================================== */

.kpr-presenter {
    display: inline-block;

    padding: 2px 9px;

    color: #fff;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.6;
    white-space: nowrap;

    background: var(--kpr-blue);
    border-radius: 5px;
}

.kpr #dynamic_table {
    display: block;
    width: 100%;

    background: none;
    border: 0;

    counter-reset: kpr-author;
}

.kpr #dynamic_table > colgroup {
    display: none;
}

.kpr #dynamic_table > tbody {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* 저자 카드 */
.kpr #dynamic_table > tbody > tr {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    grid-template-areas:
        "sort label search remove"
        "main main main main";
    align-items: center;
    gap: 12px 8px;

    /* 기존 <tr height="22"> 속성 무효화 */
    height: auto;
    padding: 14px 16px 16px;

    background: #fff;
    border: 1px solid var(--kpr-line);
    border-radius: 10px;

    counter-increment: kpr-author;
}

.kpr #dynamic_table > tbody > tr > td {
    padding: 0;

    background: none;
    border: 0;
}

/* 순서 이동 */
.kpr #dynamic_table > tbody > tr > td:nth-child(1) {
    grid-area: sort;

    display: flex;
    gap: 4px;
}

.kpr #dynamic_table > tbody > tr > td:nth-child(1) br,
.kpr #dynamic_table > tbody > tr > td:nth-child(1) img[src*="null.gif"] {
    display: none;
}

.kpr #dynamic_table img.sort_up,
.kpr #dynamic_table img.sort_down {
    display: block;

    width: 30px;
    height: 30px;

    object-position: -9999px 0;

    background-color: #fff;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 16px;

    border: 1px solid #ccd8e5;
    border-radius: 6px;

    cursor: pointer;
}

.kpr #dynamic_table img.sort_up {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23425b76' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 15l6-6 6 6'/%3E%3C/svg%3E");
}

.kpr #dynamic_table img.sort_down {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23425b76' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}

.kpr #dynamic_table img.sort_up:hover,
.kpr #dynamic_table img.sort_down:hover {
    background-color: #f2f6fb;
    border-color: #9db4cd;
}

/* 저자 번호 + 발표자 표시 */
.kpr #dynamic_table > tbody > tr > td:nth-child(2) {
    grid-area: label;

    display: flex;
    align-items: center;
    gap: 8px;

    color: var(--kpr-ink);
    font-size: 15px;
    font-weight: 700;
    text-align: left;
}

.kpr #dynamic_table > tbody > tr > td:nth-child(2)::before {
    content: "저자 " counter(kpr-author);
}

/* 입력 영역 */
.kpr #dynamic_table > tbody > tr > td:nth-child(3) {
    grid-area: main;
    min-width: 0;
}

/* 회원검색 / 삭제 버튼 (이미지 클릭 영역을 버튼 전체로 확장) */
.kpr #dynamic_table > tbody > tr > td:nth-child(4),
.kpr #dynamic_table > tbody > tr > td:nth-child(5) {
    position: relative;

    display: inline-flex;
    align-items: center;

    height: 34px;
    padding: 0 12px 0 32px;

    color: #425b76;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;

    background: #fff;
    border: 1px solid #ccd8e5;
    border-radius: 6px;
}

.kpr #dynamic_table > tbody > tr > td:nth-child(4) {
    grid-area: search;
}

.kpr #dynamic_table > tbody > tr > td:nth-child(5) {
    grid-area: remove;
    color: #c0392b;
    border-color: #efc9c4;
}

.kpr #dynamic_table > tbody > tr > td:nth-child(4)::after {
    content: "회원검색";
}

.kpr #dynamic_table > tbody > tr > td:nth-child(5)::after {
    content: "삭제";
}

.kpr #dynamic_table > tbody > tr > td:nth-child(4) img,
.kpr #dynamic_table > tbody > tr > td:nth-child(5) img {
    position: absolute;
    inset: 0;
    z-index: 1;

    width: 100%;
    max-width: none;
    height: 100%;

    object-position: -9999px 0;

    background-position: 10px center;
    background-repeat: no-repeat;
    background-size: 15px;

    cursor: pointer;
}

.kpr #dynamic_table > tbody > tr > td:nth-child(4) img {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23425b76' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E");
}

.kpr #dynamic_table > tbody > tr > td:nth-child(5) img {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c0392b' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
}

.kpr #dynamic_table > tbody > tr > td:nth-child(4):hover {
    background: #f2f6fb;
    border-color: #9db4cd;
}

.kpr #dynamic_table > tbody > tr > td:nth-child(5):hover {
    background: #fdf2f1;
}

/* 발표자(본인) 행은 검색 / 삭제 버튼 없음 */
.kpr #dynamic_table > tbody > tr > td:nth-child(4):not(:has(img)),
.kpr #dynamic_table > tbody > tr > td:nth-child(5):not(:has(img)) {
    display: none;
}

/* 저자 상세 입력 표 */
.kpr #dynamic_table table {
    width: 100%;

    table-layout: fixed;
    border-collapse: collapse;
    border-spacing: 0;

    background: none;
    border-top: 1px solid var(--kpr-line);
}

.kpr #dynamic_table table tr {
    height: auto;
}

.kpr #dynamic_table table th,
.kpr #dynamic_table table td {
    padding: 8px 10px;

    font-size: 13px;
    line-height: 1.5;
    text-align: left;
    vertical-align: middle;

    background: #fff;
    border-bottom: 1px solid var(--kpr-line);
}

.kpr #dynamic_table table th {
    color: #425b76;
    font-weight: 600;
    word-break: keep-all;

    background: var(--kpr-soft);
}

.kpr #dynamic_table table input[type="text"] {
    width: 100%;
    height: 36px;
    padding: 0 10px;
}

/* 일반 / 원생 / 학부생 */
.kpr #dynamic_table table [colspan="4"]:has(input[type="radio"]) {
    color: var(--kpr-ink);
    font-weight: 400;

    background: #fff;
}

.kpr #dynamic_table table [colspan="4"] input[type="radio"] {
    margin: 0 4px 0 10px;
    vertical-align: -3px;
}

/* 저자추가 버튼 */
.kpr-authors__tools {
    display: flex;
    justify-content: flex-end;

    margin-top: 12px;
}

/* ==================================================
   파일 업로드 목록 (PC: 표)
   ================================================== */

.kpr-files {
    width: 100%;
    margin: 0;

    table-layout: fixed;
    border-collapse: collapse;
    border-top: 2px solid #245488;
}

.kpr-files th,
.kpr-files td {
    padding: 12px 10px;

    font-size: 14px;
    line-height: 1.6;
    text-align: center;
    vertical-align: middle;
    overflow-wrap: anywhere;

    border-bottom: 1px solid var(--kpr-line);
}

.kpr-files thead th {
    color: #425b76;
    font-weight: 600;

    background: #f2f6fc;
}

.kpr-files tbody td {
    color: #52667d;
    background: #fff;
}

.kpr-files td.kpr-files__name {
    color: var(--kpr-ink);
    font-weight: 600;
}

/* 파일명 링크 (업로드 / 삭제 버튼은 제외) */
.kpr-files a:not(.kpr-button) {
    color: var(--kpr-blue);
}


.kpr-files__tools .txt {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
}

.kpr-files td.kpr-files__tools--wait {
    color: #8a99ab;
    font-size: 13px;
}

/* ==================================================
   개인정보 및 저작권 동의
   ================================================== */

.kpr-agree__body {
    padding: 18px 20px;

    color: #4a5f7a;
    font-size: 13px;
    line-height: 1.8;

    background: #fff;
    border: 1px solid var(--kpr-line);
    border-radius: 8px;
}

.kpr-agree__body p {
    margin: 0 0 12px;
}

.kpr-agree__list {
    margin: 0;
    padding-left: 18px;
}

.kpr-agree__list li + li {
    margin-top: 4px;
}

.kpr-agree__question {
    margin-top: 12px;
    padding: 16px 20px;

    background: #eef6fd;
    border: 1px solid #cfe2f3;
    border-radius: 8px;
}

.kpr-agree__question p {
    margin: 0 0 10px;

    color: var(--kpr-ink);
    font-size: 15px;
    font-weight: 600;
}

/* ==================================================
   버튼
   ================================================== */

.kpr-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;

    margin-top: 36px;
    padding-top: 24px;

    border-top: 1px solid var(--kpr-line);
}

.kpr-actions__main {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.kpr-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 6px;

    min-width: 140px;
    min-height: 48px;
    padding: 10px 22px;

    color: #fff;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.5;
    text-decoration: none;

    background: #1559a6;
    border: 1px solid #1559a6;
    border-radius: 8px;

    cursor: pointer;
}

.kpr-button:hover {
    color: #fff;
    background: #104a8b;
    border-color: #104a8b;
}

.kpr-button--secondary {
    color: #425b76;
    background: #fff;
    border-color: #ccd8e5;
}

.kpr-button--secondary:hover {
    color: #1559a6;
    background: #f2f6fb;
    border-color: #9db4cd;
}

.kpr-button--line {
    min-width: 0;
    min-height: 38px;
    padding: 6px 16px;

    color: #1559a6;
    font-size: 14px;

    background: #f1f6fd;
    border-color: #c8daf0;
}

.kpr-button--line:hover {
    color: #104a8b;
    background: #e6effb;
    border-color: #9cbbe1;
}

.kpr-button--danger-line {
    color: #c0392b;
    background: #fff;
    border-color: #efc9c4;
}

.kpr-button--danger-line:hover {
    color: #a93226;
    background: #fdf2f1;
    border-color: #e3a49c;
}

.kpr-button--small {
    min-width: 0;
    min-height: 32px;
    padding: 4px 12px;

    font-size: 13px;
    border-radius: 6px;
}

.kpr-button--danger {
    color: #c0392b;
    background: #fff;
    border-color: #efc9c4;
}

.kpr-button--danger:hover {
    color: #a93226;
    background: #fdf2f1;
    border-color: #e3a49c;
}

.kpr-button:focus-visible {
    outline: 2px solid #1559a6;
    outline-offset: 3px;
}

/* 자료 제출 / 수정 기간 */
.kpr-period:empty {
    display: none;
}

.kpr-period {
    margin-top: 18px;
}

.kpr-period .alert_box {
    padding: 12px 16px;

    color: var(--kpr-muted);
    font-size: 13px;
    line-height: 1.7;
    text-align: center;

    background: var(--kpr-soft);
    border: 0;
    border-radius: 8px;
}

/* ==================================================
   태블릿
   ================================================== */

@media (max-width: 1024px) {
    .kpr-field {
        grid-template-columns: 140px minmax(0, 1fr);
    }
}

/* ==================================================
   모바일
   - 입력 항목: 라벨 위 / 입력칸 아래
   - 저자 상세: 항목명 + 입력칸 세로 나열
   - 파일 목록: 파일별 세로 카드
   ================================================== */

@media (max-width: 767px) {
    .kpr-section {
        margin-top: 32px;
    }

    .kpr-section__title {
        font-size: 17px;
    }

    .kpr-notice,
    .kpr-guide {
        padding: 12px 14px;
        font-size: 13px;
    }

    /* 입력 항목 1열 */
    .kpr-field {
        grid-template-columns: 1fr;
    }

    .kpr-field__label {
        padding: 10px 14px;
        font-size: 13px;
    }

    .kpr-field__control {
        padding: 12px 14px 14px;
    }

    .kpr-selects select {
        flex-basis: 100%;
    }

    /* 저자 카드 */
    .kpr #dynamic_table > tbody > tr {
        grid-template-columns: minmax(0, 1fr) auto auto;
        grid-template-areas:
            "label search remove"
            "sort sort sort"
            "main main main";
        padding: 14px;
    }

    .kpr #dynamic_table > tbody > tr > td:nth-child(4),
    .kpr #dynamic_table > tbody > tr > td:nth-child(5) {
        padding: 0 10px 0 28px;
    }

    .kpr #dynamic_table > tbody > tr > td:nth-child(4) img,
    .kpr #dynamic_table > tbody > tr > td:nth-child(5) img {
        background-position: 8px center;
    }

    /* 저자 상세 입력: 표 구조 해제 */
    .kpr #dynamic_table table,
    .kpr #dynamic_table table tbody {
        display: block;
        width: 100%;
    }

    .kpr #dynamic_table table colgroup {
        display: none;
    }

    .kpr #dynamic_table table tr {
        display: grid;
        grid-template-columns: 80px minmax(0, 1fr);
    }

    .kpr #dynamic_table table th,
    .kpr #dynamic_table table td {
        display: flex;
        align-items: center;
        min-width: 0;
    }

    /* 일반 / 원생 / 학부생 줄은 전체 폭 */
    .kpr #dynamic_table table [colspan="4"]:has(input[type="radio"]) {
        grid-column: 1 / -1;
        flex-wrap: wrap;
        row-gap: 4px;
    }

    .kpr #dynamic_table table [colspan="4"] input[type="radio"]:first-of-type {
        margin-left: 0;
    }

    /* 빈 칸 숨김 */
    .kpr #dynamic_table table td[colspan="2"]:not(:has(input)) {
        display: none;
    }

    .kpr-authors__tools .kpr-button {
        width: 100%;
    }

    /* 파일 목록: 표 구조 해제 */
    .kpr-files,
    .kpr-files tbody {
        display: block;
        width: 100%;
    }

    .kpr-files {
        border-top: 0;
    }

    .kpr-files colgroup {
        display: none;
    }

    .kpr-files thead {
        position: absolute;

        width: 1px;
        height: 1px;
        margin: -1px;

        overflow: hidden;
        clip-path: inset(50%);
    }

    /* 파일 1건 = 카드 1개 */
    .kpr-files tbody tr {
        display: block;

        padding: 4px 14px;

        background: #fff;
        border: 1px solid var(--kpr-line);
        border-top: 3px solid #245488;
        border-radius: 10px;
    }

    .kpr-files tbody tr + tr {
        margin-top: 12px;
    }

    .kpr-files tbody td {
        display: grid;
        grid-template-columns: 80px minmax(0, 1fr);
        gap: 12px;
        align-items: center;

        padding: 10px 0;

        font-size: 13px;
        text-align: left;

        border-bottom: 1px solid #eef2f6;
    }

    .kpr-files tbody td::before {
        content: attr(data-label);

        color: #7e8da1;
        font-size: 12px;
        font-weight: 600;
    }

    .kpr-files tbody td:last-child {
        border-bottom: 0;
    }

    /* 파일이 없을 때 빈 항목 숨김 */
    .kpr-files tbody td:has(.txt:empty) {
        display: none;
    }

    .kpr-files__tools .txt {
        justify-content: flex-start;
    }

    /* 버튼 */
    .kpr-actions {
        flex-direction: column-reverse;
        align-items: stretch;
    }

    .kpr-actions__main {
        flex-direction: column;
    }

    .kpr-actions .kpr-button {
        width: 100%;
    }

    .kpr-agree__body,
    .kpr-agree__question {
        padding: 14px 16px;
    }
}





/* ==================================================
   발표논문 보기 - 읽기 전용 상세
   ConferencePaperView.asp
   기존 sub.css 맨 아래에 추가
   ※ conference-paper-reg.css(.kpr-*)가 먼저 추가되어 있어야 합니다.
   ================================================== */

/* ==================================================
   논문 정보 값
   ================================================== */

.kpv-value {
    display: block;
    padding-top: 19px;
    padding-bottom: 17px;

    overflow-wrap: anywhere;
}

.kpv-value--strong {
    font-weight: 600;
}

/* 초록처럼 긴 내용 */
.kpv-value--long {
    line-height: 1.8;
    white-space: normal;
}

.kpv-value p {
    margin: 0 0 8px;
}

.kpv-value__sep {
    margin: 0 8px;
    color: #b3c0cf;
}

/* ==================================================
   저자 정보 (저자 1명 = 카드 1개)
   ================================================== */

.kpv-authors {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.kpv-author {
    padding: 16px 18px 6px;

    background: #fff;
    border: 1px solid var(--kpr-line, #dce4ed);
    border-radius: 10px;
}

.kpv-author__head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 10px;

    padding-bottom: 12px;

    border-bottom: 1px solid var(--kpr-line, #dce4ed);
}

.kpv-author__no {
    color: #7e8da1;
    font-size: 13px;
    font-weight: 600;
}

.kpv-author__name {
    color: var(--kpr-ink, #172c45);
    font-size: 16px;
    font-weight: 700;
}

.kpv-author__ename {
    color: #607389;
    font-size: 13px;
}

/* 소속 / 연락처: PC 3열 */
.kpv-author__info {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 20px;

    margin: 0;
}

.kpv-author__item {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    align-items: baseline;
    gap: 10px;

    padding: 12px 0;
}

.kpv-author__info dt,
.kpv-author__info dd {
    margin: 0;

    font-size: 14px;
    line-height: 1.6;
}

.kpv-author__info dt {
    color: #7e8da1;
    font-size: 13px;
    font-weight: 600;
}

.kpv-author__info dd {
    min-width: 0;

    color: var(--kpr-ink, #172c45);
    overflow-wrap: anywhere;
}

/* 하단 버튼: 이전 / 수정 */
.kpv .kpr-actions {
    justify-content: center;
}

/* ==================================================
   태블릿: 소속 / 연락처 2열
   ================================================== */

@media (max-width: 1024px) {
    .kpv-author__info {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ==================================================
   모바일: 소속 / 연락처 1열, 빈 값 숨김
   ================================================== */

@media (max-width: 767px) {
    .kpv-value {
        padding-top: 12px;
        padding-bottom: 14px;
    }

    .kpv-author {
        padding: 14px 14px 4px;
    }

    .kpv-author__info {
        grid-template-columns: 1fr;
    }

    .kpv-author__item {
        grid-template-columns: 76px minmax(0, 1fr);
        padding: 10px 0;
        border-bottom: 1px solid #eef2f6;
    }

    .kpv-author__item:last-child {
        border-bottom: 0;
    }

    .kpv-author__item:has(dd:empty) {
        display: none;
    }

    .kpv .kpr-actions {
        flex-direction: column-reverse;
    }
}








/* ==================================================
   발표신청 접수현황
   ConferencePaperList.asp
   기존 sub.css 맨 아래에 추가
   ================================================== */

/* 기본 설정 */
.kcpl {
    --kcpl-ink: #172c45;
    --kcpl-blue: #1559a6;
    --kcpl-line: #dce4ed;
    --kcpl-soft: #f5f8fc;
    --kcpl-sub: #c0392b;
}

/* ==================================================
   상단 요약
   ================================================== */

.kcpl-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 10px;

    margin: 0 0 24px;
    padding: 0;

    list-style: none;
}

.kcpl-summary__item {
    display: flex;
    flex-direction: column;
    gap: 4px;

    padding: 14px 16px;

    background: var(--kcpl-soft);
    border: 1px solid var(--kcpl-line);
    border-radius: 10px;
}

.kcpl-summary__label {
    color: #607389;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
}

.kcpl-summary__value {
    color: var(--kcpl-ink);
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
}

/* 총 신청 강조 */
.kcpl-summary__item--total {
    background: var(--kcpl-blue);
    border-color: var(--kcpl-blue);
}

.kcpl-summary__item--total .kcpl-summary__label,
.kcpl-summary__item--total .kcpl-summary__value {
    color: #fff;
}

/* 모바일 전용 도구 (PC에서는 숨김) */
.kcpl-tools {
    display: none;
}

/* ==================================================
   접수현황 표 (PC)
   ================================================== */

.kcpl-table {
    width: 100%;
    margin: 0;

    border-collapse: collapse;
    border-top: 2px solid #245488;
}

.kcpl-table th,
.kcpl-table td {
    padding: 10px 12px;

    font-size: 14px;
    line-height: 1.5;
    vertical-align: middle;

    border-bottom: 1px solid #edf1f6;
}

/* 표 머리 */
.kcpl-table thead th {
    padding: 13px 10px;

    color: #425b76;
    font-weight: 600;
    text-align: center;
    white-space: nowrap;

    background: #f2f6fc;
    border-bottom: 1px solid var(--kcpl-line);
}

.kcpl-table thead .kcpl-col-name {
    text-align: left;
}

/* 분야명 / 서브분야명 */
.kcpl-name {
    color: var(--kcpl-ink);
    font-weight: 400;
    text-align: left;
}

.kcpl-table td.kcpl-name--group {
    width: 22%;

    color: #24466f;
    font-weight: 700;
}

/* 숫자 칸 */
.kcpl-num {
    width: 9%;

    color: var(--kcpl-ink);
    text-align: center;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.kcpl-num.is-zero {
    color: #b6c2cf;
}

.kcpl-table .kcpl-total {
    font-weight: 700;
    background: #f8fafc;
}

/* 분야 묶음 구분선 */
.kcpl-group + .kcpl-group tr:first-child > * {
    border-top: 1px solid #c9d6e4;
}

/* 분야 머리줄은 모바일 전용 */
.kcpl-group__head {
    display: none;
}

/* 행 hover */
.kcpl-row:hover > * {
    background: #f7fafd;
}

/* 소계 */
.kcpl-subtotal > * {
    background: #fbf3f2;
    border-bottom-color: #f1dcd9;
}

.kcpl-subtotal .kcpl-name {
    color: var(--kcpl-sub);
    font-weight: 700;
    text-align: right;
}

.kcpl-subtotal .kcpl-num,
.kcpl-subtotal .kcpl-total {
    color: var(--kcpl-sub);
    font-weight: 600;
    background: #fbf3f2;
}

.kcpl-subtotal .kcpl-num.is-zero {
    color: #dbb2ad;
}

/* 총계 */
.kcpl-grandtotal > * {
    padding-top: 14px;
    padding-bottom: 14px;

    color: #fff;
    font-weight: 700;

    background: #245488;
    border-bottom: 0;
}

.kcpl-grandtotal .kcpl-name {
    text-align: center;
}

.kcpl-table .kcpl-grandtotal .kcpl-total {
    color: #fff;
    background: #1b4373;
}

/* 데이터 없음 */
.kcpl-empty {
    padding: 48px 20px !important;

    color: #718196;
    text-align: center;

    background: #f8fafc;
}

/* ==================================================
   태블릿
   ================================================== */

@media (max-width: 1024px) {
    .kcpl-table th,
    .kcpl-table td {
        padding: 9px 8px;
        font-size: 13px;
    }

    .kcpl-table thead th {
        white-space: normal;
        word-break: keep-all;
    }
}

/* ==================================================
   모바일
   - 좌우 스크롤 없이 분야별 카드
   - 분야를 누르면 서브발표분야 펼침
   - 각 줄의 숫자는 발표형식 칩(3열)으로 표시
   ================================================== */

@media (max-width: 767px) {
    .kcpl-summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
        margin-bottom: 18px;
    }

    .kcpl-summary__item {
        padding: 10px 10px;
    }

    .kcpl-summary__item--total {
        grid-column: 1 / -1;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }

    .kcpl-summary__label {
        font-size: 12px;
        word-break: keep-all;
    }

    .kcpl-summary__value {
        font-size: 18px;
    }

    /* 펼치기 도구 */
    .kcpl-tools {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 10px;

        margin-bottom: 12px;
    }

    .kcpl-tools__hint {
        margin: 0;

        color: #7e8da1;
        font-size: 12px;
        line-height: 1.5;
    }

    .kcpl-tools__all {
        flex: 0 0 auto;

        min-height: 34px;
        padding: 6px 12px;

        color: var(--kcpl-blue);
        font-family: inherit;
        font-size: 13px;
        font-weight: 600;

        background: #f1f6fd;
        border: 1px solid #c8daf0;
        border-radius: 6px;

        cursor: pointer;
    }

    /* 표 구조 해제 */
    .kcpl-table,
    .kcpl-table tbody,
    .kcpl-table tfoot {
        display: block;
        width: 100%;
    }

    .kcpl-table {
        border-top: 0;
    }

    .kcpl-table thead {
        position: absolute;

        width: 1px;
        height: 1px;
        margin: -1px;

        overflow: hidden;
        clip-path: inset(50%);
    }

    /* 분야 카드 */
    .kcpl-table .kcpl-group {
        overflow: hidden;

        background: #fff;
        border: 1px solid var(--kcpl-line);
        border-radius: 10px;
    }

    .kcpl-table .kcpl-group + .kcpl-group {
        margin-top: 10px;
    }

    .kcpl-group + .kcpl-group tr:first-child > * {
        border-top: 0;
    }

    /* 분야 머리줄 (접기 / 펼치기 버튼) */
    .kcpl-table--sub .kcpl-group__head {
        display: block;
    }

    .kcpl-group__head th {
        display: block;
        padding: 0;
        border: 0;
    }

    .kcpl-group__toggle {
        position: relative;

        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 10px;

        width: 100%;
        padding: 14px 40px 14px 14px;

        color: var(--kcpl-ink);
        font-family: inherit;
        font-size: 15px;
        font-weight: 700;
        line-height: 1.5;
        text-align: left;

        background: #fff;
        border: 0;

        cursor: pointer;
    }

    /* 펼침 화살표 */
    .kcpl-group__toggle::after {
        content: "";

        position: absolute;
        top: 50%;
        right: 16px;

        width: 8px;
        height: 8px;

        border-right: 2px solid #7e8da1;
        border-bottom: 2px solid #7e8da1;

        transform: translateY(-70%) rotate(45deg);
        transition: transform 0.2s;
    }

    .kcpl-group.is-open .kcpl-group__toggle::after {
        transform: translateY(-30%) rotate(-135deg);
    }

    .kcpl-group__sum {
        flex: 0 0 auto;

        padding: 2px 10px;

        color: var(--kcpl-blue);
        font-size: 13px;
        font-weight: 700;

        background: #eaf2ff;
        border-radius: 20px;
    }

    /* 접힌 상태: 서브분야 줄 / 소계 숨김 */
    .kcpl-table--sub .kcpl-group:not(.is-open) .kcpl-row,
    .kcpl-table--sub .kcpl-group:not(.is-open) .kcpl-subtotal {
        display: none;
    }

    /* 한 줄 = 이름 + 발표형식 칩 3열 */
    .kcpl-row,
    .kcpl-subtotal,
    .kcpl-grandtotal {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;

        padding: 12px 14px;

        border-top: 1px solid #edf1f6;
    }

    .kcpl-row > *,
    .kcpl-subtotal > *,
    .kcpl-grandtotal > * {
        padding: 0;
        border: 0;
    }

    .kcpl-row:hover > * {
        background: none;
    }

    /* 분야명 칸은 카드 머리줄로 대체 */
    .kcpl-table--sub .kcpl-name--group {
        display: none;
    }

    .kcpl-row .kcpl-name,
    .kcpl-subtotal .kcpl-name,
    .kcpl-grandtotal .kcpl-name {
        grid-column: 1 / -1;

        font-size: 14px;
        font-weight: 600;
        text-align: left;
    }

    /* 발표형식 칩 */
    /* 라벨 위 / 숫자 아래 (긴 발표형식 이름도 잘리지 않게) */
    .kcpl-row .kcpl-num,
    .kcpl-subtotal .kcpl-num,
    .kcpl-grandtotal .kcpl-num {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;

        width: auto;
        min-width: 0;
        padding: 6px 9px;

        font-size: 14px;
        font-weight: 700;
        line-height: 1.3;

        background: var(--kcpl-soft);
        border-radius: 6px;
    }

    .kcpl-row .kcpl-num::before,
    .kcpl-subtotal .kcpl-num::before,
    .kcpl-grandtotal .kcpl-num::before {
        content: attr(data-label);

        color: #7e8da1;
        font-size: 11px;
        font-weight: 500;
        word-break: keep-all;
    }

    .kcpl-row .kcpl-total {
        background: #eaf2ff;
    }

    /* 소계 줄 */
    .kcpl-subtotal {
        background: #fbf3f2;
    }

    .kcpl-subtotal > * {
        background: none;
    }

    .kcpl-subtotal .kcpl-num,
    .kcpl-subtotal .kcpl-total {
        background: #fff;
    }

    /* 총계 카드 */
    .kcpl-table tfoot {
        margin-top: 14px;
    }

    .kcpl-grandtotal {
        background: #245488;
        border: 0;
        border-radius: 10px;
    }

    .kcpl-grandtotal > * {
        background: none;
    }

    .kcpl-grandtotal .kcpl-num,
    .kcpl-table .kcpl-grandtotal .kcpl-total {
        color: #fff;
        background: rgba(255, 255, 255, 0.12);
    }

    .kcpl-grandtotal .kcpl-num::before {
        color: rgba(255, 255, 255, 0.75);
    }

    /* 분야 없음 설정(분야 1단계)일 때 카드 */
    .kcpl-table:not(.kcpl-table--sub) .kcpl-row .kcpl-name {
        font-size: 15px;
        font-weight: 700;
    }

    .kcpl-empty {
        display: block;
        border: 1px solid var(--kcpl-line);
        border-radius: 10px;
    }
}






/* ==================================================
   신청 정보: 주소 / 이메일 등 한 줄 전체 항목
   ================================================== */

.kcri .kcri-wide {
    grid-column: 1 / -1;
}

.kcri-price {
    font-weight: 700;
}

.kcri-status {
    font-weight: 600;
}

.kcri-cancel {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
}

/* 사전등록 취소 버튼 (빨간 테두리) */
.kcri .kcri-cancel__link {
    color: #c0392b;
    border-color: #efc9c4;
}

.kcri .kcri-cancel__link:hover {
    color: #a93226;
    background: #fdf2f1;
    border-color: #e3a49c;
}

.kcri-cancel__note {
    color: #7e8da1;
    font-size: 13px;
}

/* ==================================================
   제출논문 목록
   ================================================== */

.kcri-papers {
    width: 100%;
    margin: 0;

    table-layout: fixed;
    border-collapse: collapse;
    border-top: 2px solid #245488;
}

.kcri-papers th,
.kcri-papers td {
    padding: 12px 14px;

    font-size: 14px;
    line-height: 1.6;
    vertical-align: middle;
    overflow-wrap: anywhere;

    border-bottom: 1px solid #dce4ed;
}

.kcri-papers thead th {
    color: #425b76;
    font-weight: 600;
    text-align: center;

    background: #f2f6fc;
}

/* 논문제목 열은 왼쪽 정렬 */
.kcri-papers thead th:last-child {
    text-align: left;
}

.kcri-papers td {
    color: #52667d;
    background: #fff;
}

.kcri-papers td.kcri-papers__code {
    text-align: center;
}

.kcri-papers a {
    color: #1559a6;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kcri-papers a:hover {
    color: #104a8b;
}

.kcri-papers td.kcri-papers__empty {
    padding: 36px 20px;

    color: #718196;
    text-align: center;

    background: #f8fafc;
}

/* ==================================================
   사전등록 전
   ================================================== */

.kcri-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;

    padding: 36px 20px;

    text-align: center;

    background: #f8fafc;
    border: 1px solid #dce4ed;
    border-radius: 10px;
}

.kcri-empty strong {
    color: #172c45;
    font-size: 16px;
    font-weight: 700;
}

.kcri-empty span {
    color: #607389;
    font-size: 14px;
}

/* ==================================================
   기간 안내
   ================================================== */

.kcri-period:empty {
    display: none;
}

.kcri-period {
    margin-top: 18px;
}

.kcri-period .alert_box {
    padding: 12px 16px;

    color: #607389;
    font-size: 13px;
    line-height: 1.7;
    text-align: center;

    background: #f5f8fc;
    border: 0;
    border-radius: 8px;
}

/* ==================================================
   모바일
   ================================================== */

@media (max-width: 767px) {
    /* 라벨이 긴 항목(소속(학교)명 등) 줄바꿈 방지 */
    .kcri .kcpi-info__item {
        grid-template-columns: 116px minmax(0, 1fr);
    }

    .kcri .kcpi-info dt {
        word-break: keep-all;
    }

    /* 제출논문: 접수번호 위 / 제목 아래 카드 */
    .kcri-papers,
    .kcri-papers tbody,
    .kcri-papers tr,
    .kcri-papers td {
        display: block;
        width: 100%;
    }

    .kcri-papers colgroup {
        display: none;
    }

    .kcri-papers thead {
        position: absolute;

        width: 1px;
        height: 1px;
        margin: -1px;

        overflow: hidden;
        clip-path: inset(50%);
    }

    .kcri-papers tr {
        padding: 12px 14px;
        border-bottom: 1px solid #dce4ed;
    }

    .kcri-papers td {
        padding: 0;
        border: 0;
    }

    .kcri-papers td.kcri-papers__code {
        margin-bottom: 4px;

        font-size: 12px;
        text-align: left;
    }

    .kcri-papers td.kcri-papers__code::before {
        content: "접수번호 ";
        color: #7e8da1;
    }

    .kcri-papers td.kcri-papers__empty {
        padding: 28px 16px;
    }

    .kcri-empty {
        padding: 28px 16px;
    }
}




/* ==================================================
   사전등록 신청 폼
   ConferenceRegistrationReg.asp
   기존 sub.css 맨 아래에 추가
   ※ conference-paper-reg.css(.kpr-*)가 먼저 추가되어 있어야 합니다.
   ================================================== */

/* 입력칸은 칸 너비에 맞춤 */
.kcrr .kpr-field__control input[type="text"] {
    width: 100%;
}

/* 회원구분 금액 */
.kcrr-fee {
    margin-left: 4px;

    color: #1559a6;
    font-style: normal;
    font-weight: 600;
}

/* ==================================================
   두 항목을 한 줄에 (성명/직위, 소속/부서, 전화/핸드폰)
   ================================================== */

.kpr-field.kcrr-pair {
    grid-template-columns: 170px minmax(0, 1fr) 130px minmax(0, 1fr);
}

/* ==================================================
   주소: 우편번호 + 주소 / 상세주소
   ================================================== */

.kcrr-address {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 8px;
}

.kcrr-address__detail {
    grid-column: 1 / -1;
}

/* ==================================================
   추가 옵션: 선택지 세로 나열
   ================================================== */

/* kpr 공통 규칙(라디오 줄 세로 가운데 정렬)을 덮어 왼쪽 정렬 */
.kcrr .kpr-field__control > .kcrr-options {
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 8px;

    text-align: left;
}

.kcrr-options .kpr-choice {
    align-items: flex-start;
}

/* 체크박스도 라디오와 같은 크기 */
.kcrr input[type="checkbox"] {
    width: 17px;
    height: 17px;
    margin: 0;

    accent-color: #1559a6;
    cursor: pointer;
}

.kcrr-options .kpr-choice input {
    flex: 0 0 auto;
    margin-top: 3px;
}

.kcrr-option-text {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.kcrr .kcrr-option-text input[type="text"] {
    width: auto;
    flex: 1 1 220px;
}

/* ==================================================
   사전등록비 합계
   ================================================== */

.kcrr-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;

    margin-top: 28px;
    padding: 18px 22px;

    background: #f1f6fd;
    border: 1px solid #c8daf0;
    border-radius: 10px;
}

.kcrr-total__label {
    color: #24466f;
    font-size: 15px;
    font-weight: 700;
}

.kcrr-total__value {
    display: flex;
    align-items: baseline;
    gap: 4px;

    color: #1559a6;
}

.kcrr-total__view {
    font-size: 24px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.kcrr-total__view.is-empty {
    color: #7e8da1;
    font-size: 14px;
    font-weight: 500;
}

.kcrr-total__view.is-empty + .kcrr-total__input + .kcrr-total__unit {
    display: none;
}

.kcrr-total__unit {
    font-size: 15px;
    font-weight: 600;
}

/* 실제 전송 값 (화면에서는 쉼표 표시용 숫자로 대체) */
.kcrr .kcrr-total__input {
    position: absolute;

    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;

    overflow: hidden;
    clip-path: inset(50%);
    border: 0;
}

/* ==================================================
   태블릿: 두 항목 줄을 두 줄로
   ================================================== */

@media (max-width: 1024px) {
    .kpr-field.kcrr-pair {
        grid-template-columns: 140px minmax(0, 1fr);
    }

    .kpr-field.kcrr-pair > .kpr-field__label:nth-child(1),
    .kpr-field.kcrr-pair > .kpr-field__control:nth-child(2) {
        border-bottom: 1px solid #edf1f6;
    }
}

/* ==================================================
   모바일: 라벨 위 / 입력칸 아래
   ================================================== */

@media (max-width: 767px) {
    .kpr-field.kcrr-pair {
        grid-template-columns: 1fr;
    }

    .kpr-field.kcrr-pair > .kpr-field__label:nth-child(1),
    .kpr-field.kcrr-pair > .kpr-field__control:nth-child(2) {
        border-bottom: 0;
    }

    .kcrr-address {
        grid-template-columns: 110px minmax(0, 1fr);
    }

    .kcrr-total {
        padding: 14px 16px;
    }

    .kcrr-total__view {
        font-size: 20px;
    }
}






/* ==================================================
   비회원 로그인 및 등록
   NonMember/NonMbrLogin.asp
   기존 sub.css 맨 아래에 추가
   ※ conference-paper-reg.css(.kpr-*)가 먼저 추가되어 있어야 합니다.
   ================================================== */

/* 입력칸은 칸 너비에 맞춤 */
.knm .kpr-field__control input[type="text"],
.knm .kpr-field__control input[type="password"] {
    width: 100%;
    height: 40px;
    padding: 0 12px;

    color: #172c45;
    font-family: inherit;
    font-size: 14px;

    background: #fff;
    border: 1px solid #cfd9e5;
    border-radius: 6px;
}

.knm .kpr-field__control input:focus {
    border-color: #1559a6;
    outline: 2px solid rgba(21, 89, 166, 0.15);
    outline-offset: 0;
}

.knm .kpr-field__control input[readonly] {
    color: #4a5f7a;
    background: #f3f6f9;
}

/* 짧은 입력칸 (성명, 직위) */
.knm .kpr-field__control .knm-short {
    max-width: 280px;
}

.knm .knm-country {
    width: 100%;
    max-width: 420px;
}

.knm-help {
    margin: 6px 0 0;

    color: #607389;
    font-size: 13px;
    line-height: 1.6;
}

/* ==================================================
   비회원 로그인 카드
   ================================================== */

.knm-login {
    display: grid;
    grid-template-columns: minmax(200px, 0.8fr) minmax(0, 2fr);
    align-items: center;
    gap: 20px 28px;

    padding: 24px 26px;

    background: #f5f8fc;
    border: 1px solid #dce4ed;
    border-radius: 12px;
}

.knm-login__title {
    margin: 0 0 4px;

    color: #172c45;
    font-size: 18px;
    font-weight: 700;
}

.knm-login__desc {
    margin: 0;

    color: #607389;
    font-size: 13px;
    line-height: 1.6;
}

.knm-login__form {
    margin: 0;
}

.knm-login__fields {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto;
    align-items: end;
    gap: 10px;
}

.knm-login__field {
    display: flex;
    flex-direction: column;
    gap: 4px;

    min-width: 0;
}

.knm-login__label {
    color: #425b76;
    font-size: 13px;
    font-weight: 600;
}

.knm .knm-login__field input {
    width: 100%;
    height: 44px;
    padding: 0 12px;

    font-family: inherit;
    font-size: 14px;

    background: #fff;
    border: 1px solid #cfd9e5;
    border-radius: 6px;
}

.knm .knm-login__field input:focus {
    border-color: #1559a6;
    outline: 2px solid rgba(21, 89, 166, 0.15);
    outline-offset: 0;
}

.knm .knm-login__submit {
    min-width: 110px;
    min-height: 44px;
}

.knm-login__find {
    display: inline-block;

    margin-top: 10px;

    color: #b65a12;
    font-size: 13px;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.knm-login__find:hover {
    color: #8f4510;
}

/* 로그인 카드 아래 등록 영역 간격 */
.knm-login + .knm-reg {
    margin-top: 44px;
}

/* ==================================================
   등록 폼
   ================================================== */

/* 입력칸 + 버튼 한 줄 (이메일 중복확인, 우편번호 검색) */
.knm-inline {
    display: flex;
    gap: 8px;
}

.knm-inline input[type="text"] {
    flex: 1 1 auto;
    min-width: 0;
}

.knm .knm-inline__btn {
    flex: 0 0 auto;
    min-height: 40px;
    white-space: nowrap;
}

/* 두 항목을 한 줄에 (비밀번호, 소속/부서, 전화/핸드폰) */
.kpr-field.knm-pair {
    grid-template-columns: 170px minmax(0, 1fr) 130px minmax(0, 1fr);
}

/* 비밀번호 안내: 두 번째 줄 전체 */
.knm-pair__help {
    grid-column: 2 / -1;

    margin: -6px 0 0;
    padding: 0 16px 12px;
}

/* 주소 */
.knm-address {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.knm-address__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

/* 공통 입력칸 100% 규칙보다 우선 */
.knm .knm-address__top input.knm-address__zip {
    flex: 0 0 130px;
    width: 130px;
}

.knm .knm-dwelling {
    align-items: center;
    gap: 6px 14px;

    margin-left: 8px;
    min-height: 0;
}

.knm-dwelling__label {
    color: #607389;
    font-size: 13px;
    font-weight: 600;
}

.knm-file {
    max-width: 100%;
    font-size: 13px;
}

/* 개인정보 활용 동의 */
.knm-agree {
    margin-top: 20px;
    padding: 16px 18px;

    background: #fff8f0;
    border: 1px solid #f6dfc6;
    border-radius: 8px;
}

.knm-agree__text {
    margin: 0 0 8px;

    color: #8a4a12;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.6;
}

.knm-agree__check {
    color: #8a4a12;
    font-size: 13px;
}

.knm input[type="checkbox"] {
    width: 17px;
    height: 17px;
    margin: 0;

    accent-color: #1559a6;
    cursor: pointer;
}

.knm-actions {
    justify-content: center;
}

/* ==================================================
   태블릿
   ================================================== */

@media (max-width: 1024px) {
    .knm-login {
        grid-template-columns: 1fr;
    }

    .kpr-field.knm-pair {
        grid-template-columns: 140px minmax(0, 1fr);
    }

    .knm-pair__help {
        grid-column: 2 / -1;
        margin: 0;
    }
}

/* ==================================================
   모바일
   ================================================== */

@media (max-width: 767px) {
    .knm-login {
        padding: 18px 16px;
    }

    .knm-login__fields {
        grid-template-columns: 1fr;
    }

    .knm .knm-login__submit {
        width: 100%;
    }

    .kpr-field.knm-pair {
        grid-template-columns: 1fr;
    }

    .knm-pair__help {
        grid-column: 1 / -1;
        padding: 0 14px 12px;
    }

    .knm .kpr-field__control .knm-short,
    .knm .knm-country {
        max-width: none;
    }

    .knm .knm-dwelling {
        width: 100%;
        margin-left: 0;
    }

    /* 우편번호 + 검색 버튼 한 줄 */
    .knm .knm-address__top input.knm-address__zip {
        flex: 1 1 0;
        width: auto;
        min-width: 0;
    }

    .knm-actions {
        flex-direction: column-reverse;
    }

    .knm-actions .kpr-button {
        width: 100%;
    }
}


/* ==================================================
   우편번호 검색 팝업(라이트박스) 모바일 위치
   - 팝업 폭이 425px 고정이라 모바일에서 왼쪽에 붙고 오른쪽이 잘림
   - 모바일에서는 화면 폭에 맞춰 가운데 정렬
   ================================================== */

@media (max-width: 767px) {
    body:has(.knm) #SLB_content {
        left: 50% !important;

        width: calc(100vw - 24px);
        max-width: 425px;

        transform: translateX(-50%);
    }

    body:has(.knm) #SLB_content iframe {
        display: block;

        width: 100% !important;
        max-width: 100%;

        background: #fff;
        border-radius: 10px;
    }
}





/* ==================================================
   비회원 결제납부 및 확인
   NonMember/NonMbrPayment.asp
   기존 sub.css 맨 아래에 추가
   ※ payment.css(.ksme-pay, 회원 결제 페이지)를 그대로 사용하고
     이 파일에는 하단 이동 링크만 추가합니다.
   ================================================== */

/* 사전등록 확인으로 돌아가기 */
.ksme-pay .pay-back {
    display: flex;
    justify-content: center;

    margin-top: 32px;
    padding-top: 24px;

    border-top: 1px solid #e1e8f0;
}

.ksme-pay .pay-back__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 220px;
    min-height: 46px;
    padding: 10px 22px;

    font-weight: 600;
    text-decoration: none;
}

@media (max-width: 768px) {
    .ksme-pay .pay-back__link {
        width: 100%;
    }
}