/* KOIST Design System v7.0 - Ultra Premium HiDPI */
/* Additional styles for high-resolution displays */

/* HiDPI image rendering */
img {
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
}

/* Smooth image scaling */
img, svg {
  max-width: 100%;
  height: auto;
}

/* Print styles */
@media print {
  #gnb, #scrollProgress, .mobile-menu, .mobile-overlay, footer {
    display: none !important;
  }
  main {
    padding-top: 0 !important;
  }
  .btn-primary, .btn-ghost, .btn-glow {
    box-shadow: none !important;
    text-decoration: underline;
  }
}

/* ═══════════════════════════════════════════════════════════
   v39.6 — Service page content (koist.kr migration)
   ═══════════════════════════════════════════════════════════ */

/* Definition-list style section (converted from dl.dl_cm) */
.prose .service-section {
  position: relative;
  margin: 1.25rem 0;
  padding: 0.75rem 0 0.75rem 1.25rem;
  border-left: 4px solid #2563EB;
  background: linear-gradient(90deg, rgba(37, 99, 235, 0.04), transparent 60%);
  border-radius: 0 8px 8px 0;
}

.prose .service-section-title {
  margin: 0 0 0.5rem 0 !important;
  padding: 0;
  font-size: clamp(1rem, 1.2vw, 1.2rem);
  font-weight: 700;
  color: #0F172A;
  letter-spacing: -0.01em;
}

.prose .service-section-body {
  color: #334155;
  font-size: clamp(0.88rem, 0.95vw, 1rem);
  line-height: 1.65;
}

/* Bullet list (converted from ul.ul_dot_cm) */
.prose ul.service-bullets {
  list-style: none;
  padding-left: 0;
  margin: 0.25rem 0;
}

.prose ul.service-bullets > li {
  position: relative;
  padding-left: 1.1rem;
  margin: 0.35rem 0;
  line-height: 1.6;
}

.prose ul.service-bullets > li::before {
  content: "";
  position: absolute;
  left: 0.2rem;
  top: 0.65rem;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #2563EB;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

/* Numbered steps (converted from dl.num_dl_cm) */
.prose ol.service-steps {
  list-style: none;
  counter-reset: step;
  padding: 0;
  margin: 0.5rem 0;
  display: grid;
  gap: 0.6rem;
}

.prose ol.service-steps > li.service-step {
  display: flex;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  line-height: 1.55;
}

.prose .service-step-num {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.6rem;
  height: 1.6rem;
  padding: 0 0.45rem;
  font-size: 0.8rem;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #2563EB, #06B6D4);
  border-radius: 999px;
  margin-right: 0.2rem;
}

/* Image figure (converted from div.img_box) */
.prose figure.service-image {
  margin: 1rem 0;
  padding: 0.75rem;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  text-align: center;
}

.prose figure.service-image > img {
  max-width: 100%;
  height: auto;
  margin: 0 auto;
  border-radius: 6px;
  display: inline-block;
}

.prose figure.service-image > figcaption {
  margin-top: 0.5rem;
  font-size: 0.82rem;
  color: #64748B;
}

/* Legacy .process (step flow in cc/apply) */
.prose ul.process {
  list-style: none;
  padding: 0;
  margin: 1rem 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.75rem;
}

.prose ul.process > li {
  padding: 0.85rem 0.5rem;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 10px;
  text-align: center;
  transition: transform 0.2s, box-shadow 0.2s;
}

.prose ul.process > li:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(37, 99, 235, 0.12);
  border-color: #2563EB;
}

.prose ul.process > li > img {
  width: 48px;
  height: 48px;
  margin: 0 auto 0.5rem;
  object-fit: contain;
}

.prose ul.process > li > span {
  display: block;
  font-size: 0.72rem;
  color: #2563EB;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 0.2rem;
}

.prose ul.process > li > p {
  margin: 0;
  font-size: 0.86rem;
  font-weight: 600;
  color: #0F172A;
}

/* Mobile layout adjustments */
@media (max-width: 640px) {
  .prose .service-section {
    padding-left: 0.9rem;
    border-left-width: 3px;
  }
  .prose ul.process {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ================================================================
   v39.7 KOIST Legacy Theme — 원본 koist.kr 디자인 복제 (Scoped)
   ================================================================
   모든 규칙은 .koist-legacy-theme 네임스페이스 하위에만 적용되어
   전역 스타일 오염을 방지합니다. 서비스 페이지(/services/*)에만
   부착됩니다.
   ================================================================ */

.koist-legacy-theme {
  --koist-primary: #005f9b;
  --koist-secondary: #3ea6de;
  --koist-primary-10: rgba(0, 95, 155, 0.1);
  --koist-primary-25: rgba(0, 95, 155, 0.25);
  --koist-border: #e1e1e1;
  --koist-bg-soft: #f5f5f5;
  --koist-text: #666;
  --koist-title: #222;
  --koist-sub: #888;

  font-family: 'Noto Sans KR', sans-serif;
  font-size: 17px;
  font-weight: 300;
  color: var(--koist-text);
  line-height: 1.8;
  letter-spacing: -0.2px;
  word-break: keep-all;
}

/* ────────────── Hero Title (tit_cm) ────────────── */
.koist-legacy-theme .tit_cm {
  font-size: 19px;
  font-weight: 400;
  text-align: center;
  color: var(--koist-sub);
  word-break: keep-all;
  margin: 0 0 50px 0;
}
.koist-legacy-theme .tit_cm span {
  display: block;
  font-size: 17px;
  font-weight: 700;
  color: var(--koist-primary);
  text-transform: uppercase;
  font-family: 'Play', 'Noto Sans KR', sans-serif;
  letter-spacing: 0.05em;
}
.koist-legacy-theme .tit_cm p {
  padding: 10px 0;
  margin: 0;
  font-size: 40px;
  letter-spacing: -0.5px;
  color: var(--koist-title);
  word-break: keep-all;
  font-family: 'LotteMartDreamBold', 'Noto Sans KR', sans-serif;
  font-weight: 800;
  line-height: 1.25;
}

/* ────────────── Section Block (.service-section == dl_cm) ────────────── */
.koist-legacy-theme .pagecommon-content {
  display: block;
}
.koist-legacy-theme .service-section {
  display: flex;
  padding: 0 5%;
  margin: 0;
  background: none;
  border: none;
  border-radius: 0;
  position: static;
}
.koist-legacy-theme .service-section + .service-section {
  margin-top: 60px;
  padding-top: 60px;
  border-top: 1px solid var(--koist-border);
}
.koist-legacy-theme .service-section-title {
  flex-shrink: 0;
  width: 200px;
  margin: 0;
  padding: 0;
  font-size: 24px;
  color: var(--koist-title) !important;
  word-break: keep-all;
  line-height: 1.5;
  font-family: 'LotteMartDreamBold', 'Noto Sans KR', sans-serif;
  font-weight: 800;
  letter-spacing: -0.3px;
  background: none;
}
.koist-legacy-theme .service-section-title::before,
.koist-legacy-theme .service-section-title::after {
  display: none;
}
.koist-legacy-theme .service-section-body {
  width: calc(100% - 200px);
  word-break: keep-all;
  color: var(--koist-text);
  font-size: 17px;
  font-weight: 300;
  line-height: 1.8;
}

/* ────────────── Bullet List (.service-bullets == ul_dot_cm) ────────────── */
.koist-legacy-theme .service-bullets,
.koist-legacy-theme .service-section-body ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.koist-legacy-theme .service-bullets li,
.koist-legacy-theme .service-section-body ul > li {
  position: static;
  text-indent: -14px;
  margin: 0 0 0 14px;
  padding: 0;
  background: none;
  line-height: 1.8;
}
.koist-legacy-theme .service-bullets li + li,
.koist-legacy-theme .service-section-body ul > li + li {
  margin-top: 5px;
}
.koist-legacy-theme .service-bullets li::before,
.koist-legacy-theme .service-section-body ul > li::before {
  display: inline-block;
  vertical-align: 5px;
  content: "";
  position: static;
  top: auto;
  left: auto;
  width: 4px;
  height: 4px;
  margin-right: 10px;
  border-radius: 50%;
  background: var(--koist-primary);
  box-shadow: none;
}
/* 내부 강조 박스 (li > p) */
.koist-legacy-theme .service-bullets li p,
.koist-legacy-theme .service-section-body ul > li p {
  padding: 10px 15px 10px;
  margin: 10px 0 0 0;
  font-size: 16px;
  font-weight: 300;
  color: var(--koist-sub);
  text-indent: 0;
  background: var(--koist-bg-soft);
  border-radius: 0;
  border: none;
}

/* ────────────── Image Box (.service-image == img_box) ────────────── */
.koist-legacy-theme .service-image,
.koist-legacy-theme figure.service-image {
  padding: 50px;
  background: var(--koist-bg-soft);
  border: none;
  border-radius: 0;
  margin: 0;
  text-align: center;
}
.koist-legacy-theme .service-image img,
.koist-legacy-theme figure.service-image > img {
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
  border-radius: 0;
  display: inline-block;
}
.koist-legacy-theme .service-image figcaption,
.koist-legacy-theme figure.service-image > figcaption {
  margin-top: 20px;
  color: var(--koist-sub);
  font-size: 15px;
  text-align: center;
}

/* ────────────── Numbered Steps (.service-steps == num_dl_cm) ────────────── */
.koist-legacy-theme .service-steps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: block;
  counter-reset: none;
}
.koist-legacy-theme .service-steps + .service-steps {
  margin-top: 40px;
}
.koist-legacy-theme .service-step,
.koist-legacy-theme ol.service-steps > li.service-step {
  display: flex;
  padding: 12px;
  border: 1px solid var(--koist-border);
  color: var(--koist-title);
  background: #fff;
  border-radius: 0;
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
}
.koist-legacy-theme .service-step + .service-step {
  margin-top: 12px;
}
.koist-legacy-theme .service-step-num {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  min-width: 32px;
  padding: 0;
  margin: 0 10px 0 0;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  line-height: 32px;
  text-align: center;
  background: var(--koist-primary);
  font-family: 'Play', 'Noto Sans KR', sans-serif;
  border-radius: 0;
}

/* ────────────── Process Flow (cc/apply 등 프로세스 블록) ────────────── */
.koist-legacy-theme .process,
.koist-legacy-theme ul.process {
  display: flex;
  flex-wrap: wrap;
  margin: 50px 0 100px;
  list-style: none;
  padding: 0;
  gap: 0;
  grid-template-columns: none;
}
.koist-legacy-theme .process > li,
.koist-legacy-theme ul.process > li {
  position: relative;
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: flex-start;
  width: calc(100% / 6);
  padding: 50px 10px 40px;
  border: 1px solid var(--koist-border);
  text-align: center;
  background: #fff;
  border-radius: 0;
  box-shadow: none;
  transition: none;
  transform: none;
}
.koist-legacy-theme .process > li:hover,
.koist-legacy-theme ul.process > li:hover {
  transform: none;
  box-shadow: none;
  border-color: var(--koist-border);
}
.koist-legacy-theme .process > li + li,
.koist-legacy-theme ul.process > li + li {
  border-left: none;
}
.koist-legacy-theme .process > li + li::before,
.koist-legacy-theme ul.process > li + li::before {
  display: block;
  content: "\f105";
  position: absolute;
  left: -18px;
  top: 50%;
  transform: translateY(-50%);
  width: 35px;
  height: 35px;
  border: 1px solid var(--koist-border);
  border-radius: 6px;
  text-align: center;
  line-height: 31px;
  font-size: 16px;
  color: var(--koist-primary);
  background: #fff;
  font-family: 'Font Awesome 6 Free', 'FontAwesome', 'fontawesome';
  font-weight: 900;
  z-index: 2;
}
.koist-legacy-theme .process > li > img,
.koist-legacy-theme ul.process > li > img {
  width: auto;
  max-width: 80px;
  height: auto;
  margin: 0 auto 30px;
  object-fit: contain;
}
.koist-legacy-theme .process > li > span,
.koist-legacy-theme ul.process > li > span {
  display: block;
  margin-top: auto;
  font-size: 14px;
  font-weight: 700;
  color: #aaa;
  text-transform: uppercase;
  font-family: 'Play', 'Noto Sans KR', sans-serif;
  letter-spacing: 0.05em;
}
.koist-legacy-theme .process > li > p,
.koist-legacy-theme ul.process > li > p {
  margin: 0;
  font-size: 20px;
  font-weight: 800;
  color: var(--koist-title);
  word-break: keep-all;
  font-family: 'LotteMartDreamBold', 'Noto Sans KR', sans-serif;
}

/* ────────────── Contact Block (cs_cm L-shape) ────────────── */
.koist-legacy-theme .cs_cm .tit {
  margin: 100px 0 30px;
  font-size: 25px;
  text-align: center;
  color: var(--koist-title);
  font-family: 'LotteMartDreamBold', 'Noto Sans KR', sans-serif;
  font-weight: 800;
  letter-spacing: -0.3px;
}
.koist-legacy-theme .cs_cm .tit::before {
  display: block;
  content: "";
  width: 8px;
  height: 8px;
  margin: 0 auto 15px;
  border-radius: 50%;
  background: var(--koist-primary);
}
.koist-legacy-theme .cs_cm ul {
  display: flex;
  justify-content: center;
  padding: 0 20px;
  list-style: none;
  gap: 20px;
  margin: 0;
}
.koist-legacy-theme .cs_cm ul li {
  position: relative;
  max-width: 350px;
  width: 100%;
  padding: 30px 40px;
  border: 1px solid var(--koist-border);
  border-radius: 0 0 20px 0;
  font-size: 18px;
  line-height: 2.2;
  margin: 0;
  background: #fff;
  text-indent: 0;
}
.koist-legacy-theme .cs_cm ul li::before {
  display: none;
}
.koist-legacy-theme .cs_cm ul li::after {
  display: block;
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 20px;
  height: 20px;
  border-radius: 0 0 20px 0;
  border-top: 1px solid var(--koist-border);
  border-left: 1px solid var(--koist-border);
  background: var(--koist-bg-soft);
}
.koist-legacy-theme .cs_cm ul li p {
  margin: 0 0 12px 0;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--koist-border);
  font-size: 20px;
  font-weight: 500;
  color: var(--koist-title);
  background: none;
  text-indent: 0;
}
.koist-legacy-theme .cs_cm ul li i {
  display: inline-block;
  width: 25px;
  height: 25px;
  margin-right: 10px;
  border-radius: 50%;
  font-size: 12px;
  text-align: center;
  line-height: 26px;
  color: var(--koist-primary);
  background: #f2f2f2;
  font-style: normal;
}

/* ────────────── Generic elements inside koist-legacy-theme ────────────── */
.koist-legacy-theme p {
  margin: 0 0 0.8em 0;
  color: var(--koist-text);
  font-size: 17px;
  font-weight: 300;
  line-height: 1.8;
}
.koist-legacy-theme strong,
.koist-legacy-theme b {
  font-weight: 500;
  color: var(--koist-title);
}
.koist-legacy-theme a {
  color: var(--koist-primary);
  text-decoration: none;
  transition: color 0.2s;
}
.koist-legacy-theme a:hover {
  color: var(--koist-secondary);
  text-decoration: underline;
}
.koist-legacy-theme table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
}
.koist-legacy-theme table th {
  height: 50px;
  padding: 10px;
  font-size: 17px;
  font-weight: 500;
  color: #fff;
  background: var(--koist-primary);
  text-align: center;
  border-bottom: 1px solid var(--koist-border);
}
.koist-legacy-theme table td {
  padding: 15px 10px;
  border-bottom: 1px solid #d4d4d4;
  border-left: 1px solid #d4d4d4;
  font-size: 16px;
  text-align: center;
  color: var(--koist-title);
}
.koist-legacy-theme table td:first-child {
  border-left: none;
}

/* ────────────── Responsive: Tablet (1024px 이하) ────────────── */
@media (max-width: 1024px) {
  .koist-legacy-theme {
    font-size: 16px;
  }
  .koist-legacy-theme .service-section {
    padding: 0 3%;
  }
  .koist-legacy-theme .service-section-title {
    width: 160px;
    font-size: 20px;
  }
  .koist-legacy-theme .service-section-body {
    width: calc(100% - 160px);
    font-size: 16px;
  }
  .koist-legacy-theme .tit_cm p {
    font-size: 34px;
  }
  .koist-legacy-theme .process > li,
  .koist-legacy-theme ul.process > li {
    width: calc(100% / 3);
  }
  .koist-legacy-theme .process > li + li::before,
  .koist-legacy-theme ul.process > li + li::before {
    display: none;
  }
}

/* ────────────── Responsive: Mobile (768px 이하) ────────────── */
@media (max-width: 768px) {
  .koist-legacy-theme .service-section {
    display: block;
    padding: 0 2%;
  }
  .koist-legacy-theme .service-section + .service-section {
    margin-top: 40px;
    padding-top: 40px;
  }
  .koist-legacy-theme .service-section-title {
    width: auto;
    margin-bottom: 15px;
    font-size: 20px;
  }
  .koist-legacy-theme .service-section-body {
    width: auto;
    font-size: 15px;
  }
  .koist-legacy-theme .tit_cm {
    margin-bottom: 30px;
  }
  .koist-legacy-theme .tit_cm p {
    font-size: 28px;
  }
  .koist-legacy-theme .service-step-num {
    width: 28px;
    height: 28px;
    line-height: 28px;
  }
  .koist-legacy-theme .cs_cm ul {
    flex-direction: column;
    gap: 15px;
  }
  .koist-legacy-theme .cs_cm ul li {
    max-width: none;
  }
  .koist-legacy-theme .cs_cm .tit {
    margin: 50px 0 20px;
    font-size: 22px;
  }
  .koist-legacy-theme .process > li,
  .koist-legacy-theme ul.process > li {
    width: 50%;
    padding: 30px 10px 20px;
  }
  .koist-legacy-theme table {
    font-size: 14px;
  }
  .koist-legacy-theme table th,
  .koist-legacy-theme table td {
    padding: 10px 6px;
  }
}

/* ────────────── Responsive: Small Mobile (480px 이하) ────────────── */
@media (max-width: 480px) {
  .koist-legacy-theme {
    font-size: 15px;
  }
  .koist-legacy-theme .tit_cm span {
    font-size: 15px;
  }
  .koist-legacy-theme .tit_cm p {
    font-size: 24px;
  }
  .koist-legacy-theme .service-section-title {
    font-size: 18px;
  }
  .koist-legacy-theme .service-section-body {
    font-size: 14px;
  }
  .koist-legacy-theme .service-image,
  .koist-legacy-theme figure.service-image {
    padding: 20px;
  }
  .koist-legacy-theme .process > li,
  .koist-legacy-theme ul.process > li {
    width: 100%;
  }
  .koist-legacy-theme .process > li > p,
  .koist-legacy-theme ul.process > li > p {
    font-size: 17px;
  }
}

/* ────────────── High-specificity overrides for conflicting prose rules ────────────── */
/* These rules use higher specificity (#id or duplicated class) to defeat existing
   .prose .service-* rules without using 'all: revert' (which nullifies everything). */

.koist-legacy-theme.koist-legacy-theme .service-section {
  display: flex;
  padding: 0 5%;
  margin: 0;
  background: none;
  border: none;
  border-left: none;
  border-radius: 0;
  position: static;
}
.koist-legacy-theme.koist-legacy-theme .service-section + .service-section {
  margin-top: 60px;
  padding-top: 60px;
  border-top: 1px solid var(--koist-border);
}
.koist-legacy-theme.koist-legacy-theme .service-section-title {
  flex-shrink: 0;
  width: 200px;
  margin: 0 0 0 0 !important;
  padding: 0;
  font-size: 24px;
  color: var(--koist-title) !important;
  word-break: keep-all;
  line-height: 1.5;
  font-family: 'LotteMartDreamBold', 'Noto Sans KR', sans-serif;
  font-weight: 800 !important;
  letter-spacing: -0.3px;
  background: none;
}
.koist-legacy-theme.koist-legacy-theme .service-section-body {
  width: calc(100% - 200px);
  word-break: keep-all;
  color: var(--koist-text) !important;
  font-size: 17px;
  font-weight: 300;
  line-height: 1.8;
}
.koist-legacy-theme.koist-legacy-theme .service-bullets {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.koist-legacy-theme.koist-legacy-theme .service-bullets li {
  position: static !important;
  text-indent: -14px;
  margin: 0 0 0 14px !important;
  padding: 0 !important;
  background: none !important;
  line-height: 1.8;
  list-style: none !important;
}
.koist-legacy-theme.koist-legacy-theme .service-bullets li + li {
  margin-top: 5px !important;
}
.koist-legacy-theme.koist-legacy-theme .service-bullets li::before {
  display: inline-block !important;
  vertical-align: 5px !important;
  content: "" !important;
  position: static !important;
  top: auto !important;
  left: auto !important;
  width: 4px !important;
  height: 4px !important;
  margin-right: 10px !important;
  border-radius: 50% !important;
  background: var(--koist-primary) !important;
  box-shadow: none !important;
}
.koist-legacy-theme.koist-legacy-theme figure.service-image {
  padding: 50px !important;
  background: var(--koist-bg-soft) !important;
  border: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
  text-align: center;
}
.koist-legacy-theme.koist-legacy-theme figure.service-image > img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 auto !important;
  border-radius: 0 !important;
  display: inline-block !important;
}

/* Responsive high-specificity overrides */
@media (max-width: 1024px) {
  .koist-legacy-theme.koist-legacy-theme .service-section { padding: 0 3%; }
  .koist-legacy-theme.koist-legacy-theme .service-section-title { width: 160px; font-size: 20px; }
  .koist-legacy-theme.koist-legacy-theme .service-section-body { width: calc(100% - 160px); font-size: 16px; }
}
@media (max-width: 768px) {
  .koist-legacy-theme.koist-legacy-theme .service-section { display: block; padding: 0 2%; }
  .koist-legacy-theme.koist-legacy-theme .service-section-title { width: auto; margin-bottom: 15px !important; font-size: 20px; }
  .koist-legacy-theme.koist-legacy-theme .service-section-body { width: auto; font-size: 15px; }
}

/* End of v39.7 KOIST Legacy Theme */

/* ============================================================
   v39.7.1 — CC/apply Original Replica + Bold Font Emphasis
   목표: koist.kr 원본 레이아웃 완벽 복제 + 글자 선명도 강화
   ============================================================ */

/* [1] Bold Font Emphasis - 전체 Legacy Theme 글자 굵기 상향 */
.koist-legacy-theme.koist-legacy-theme {
  font-weight: 500 !important; /* 기본 300 → 500 */
  color: #333 !important; /* 666 → 333 (대비 강화) */
}

.koist-legacy-theme.koist-legacy-theme p,
.koist-legacy-theme.koist-legacy-theme li,
.koist-legacy-theme.koist-legacy-theme dd,
.koist-legacy-theme.koist-legacy-theme td {
  font-weight: 500 !important;
  color: #2c2c2c !important;
}

.koist-legacy-theme.koist-legacy-theme .service-section-title,
.koist-legacy-theme.koist-legacy-theme .tit_cm p,
.koist-legacy-theme.koist-legacy-theme .cc-apply-dl > dt,
.koist-legacy-theme.koist-legacy-theme .cc-eal-table thead th,
.koist-legacy-theme.koist-legacy-theme .cc-eal-table tbody td:first-child {
  font-weight: 800 !important; /* Bold → ExtraBold */
  color: #111 !important;
}

.koist-legacy-theme.koist-legacy-theme .service-bullets li,
.koist-legacy-theme.koist-legacy-theme .process > li p,
.koist-legacy-theme.koist-legacy-theme .cc-eal-table ul li {
  font-weight: 600 !important;
  color: #222 !important;
}

.koist-legacy-theme.koist-legacy-theme .process > li span {
  font-weight: 700 !important;
}

/* [2] CC Apply Flex Layout - 국내용/국제용 2-column */
.koist-legacy-theme .cc-apply-flex {
  display: flex !important;
  gap: 30px !important;
  margin-top: 30px !important;
  flex-wrap: wrap !important;
}

.koist-legacy-theme .cc-apply-flex > .cc-apply-col {
  flex: 1 1 calc(50% - 15px) !important;
  min-width: 320px !important;
}

/* [3] CC Apply DL - 국내용/국제용 제목 블록 */
.koist-legacy-theme .cc-apply-dl {
  display: flex !important;
  flex-wrap: wrap !important;
  border-top: 2px solid #005f9b !important;
  padding: 20px 0 !important;
  margin: 0 0 15px 0 !important;
  background: transparent !important;
}

.koist-legacy-theme .cc-apply-dl > dt {
  width: 140px !important;
  flex-shrink: 0 !important;
  font-size: 22px !important;
  color: #111 !important;
  font-weight: 800 !important;
  padding-left: 10px !important;
  line-height: 1.4 !important;
}

.koist-legacy-theme .cc-apply-dl > dd {
  flex: 1 !important;
  min-width: 150px !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: #333 !important;
  font-weight: 600 !important;
  margin: 0 !important;
  padding: 3px 0 0 0 !important;
  word-break: keep-all !important;
}

/* [4] EAL Table - 평가제출물 테이블 스타일 */
.koist-legacy-theme .cc-eal-table {
  width: 100% !important;
  border-collapse: collapse !important;
  border-top: 2px solid #222 !important;
  border-bottom: 1px solid #e1e1e1 !important;
  margin: 0 !important;
  table-layout: fixed !important;
  background: #fff !important;
}

.koist-legacy-theme .cc-eal-table thead th {
  padding: 15px 10px !important;
  font-size: 17px !important;
  font-weight: 800 !important;
  color: #111 !important;
  background: #f7f9fc !important;
  border-bottom: 1px solid #d1d5db !important;
  text-align: center !important;
  letter-spacing: -0.02em !important;
}

.koist-legacy-theme .cc-eal-table tbody tr {
  border-bottom: 1px solid #e1e1e1 !important;
}

.koist-legacy-theme .cc-eal-table tbody tr:last-child {
  border-bottom: none !important;
}

.koist-legacy-theme .cc-eal-table tbody td {
  padding: 18px 15px !important;
  font-size: 15px !important;
  vertical-align: middle !important;
  color: #2c2c2c !important;
  font-weight: 500 !important;
  line-height: 1.7 !important;
}

.koist-legacy-theme .cc-eal-table tbody td:first-child {
  width: 90px !important;
  text-align: center !important;
  font-size: 17px !important;
  font-weight: 800 !important;
  color: #005f9b !important;
  background: #fafbfc !important;
  border-right: 1px solid #e1e1e1 !important;
}

.koist-legacy-theme .cc-eal-table tbody td ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.koist-legacy-theme .cc-eal-table tbody td ul > li {
  position: relative !important;
  padding-left: 14px !important;
  margin: 6px 0 !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #222 !important;
  line-height: 1.6 !important;
  word-break: keep-all !important;
}

.koist-legacy-theme .cc-eal-table tbody td ul > li::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 9px !important;
  width: 5px !important;
  height: 5px !important;
  background: #005f9b !important;
  border-radius: 50% !important;
}

/* [5] PS note - "※국내용, 국제용의..." 강조 */
.koist-legacy-theme .ps {
  margin: 30px 0 10px 0 !important;
  padding: 12px 18px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #005f9b !important;
  background: #eff6ff !important;
  border-left: 4px solid #005f9b !important;
  border-radius: 4px !important;
}

/* [6] Mobile responsive */
@media (max-width: 768px) {
  .koist-legacy-theme .cc-apply-flex {
    flex-direction: column !important;
    gap: 25px !important;
  }
  .koist-legacy-theme .cc-apply-flex > .cc-apply-col {
    flex: 1 1 100% !important;
  }
  .koist-legacy-theme .cc-apply-dl > dt {
    width: 100% !important;
    font-size: 20px !important;
    margin-bottom: 8px !important;
  }
  .koist-legacy-theme .cc-apply-dl > dd {
    width: 100% !important;
    padding-left: 10px !important;
  }
  .koist-legacy-theme .cc-eal-table tbody td {
    padding: 12px 10px !important;
    font-size: 14px !important;
  }
  .koist-legacy-theme .cc-eal-table tbody td:first-child {
    width: 70px !important;
    font-size: 15px !important;
  }
  .koist-legacy-theme .cc-eal-table tbody td ul > li {
    font-size: 14px !important;
  }
}

/* [7] sound_only - screen reader only (caption hide) */
.koist-legacy-theme .sound_only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* End of v39.7.1 CC Apply Replica + Bold Font */

/* ============================================================
   v39.8 — 10개 서비스 페이지 원본 복제 신규 컴포넌트
   스코프: .koist-legacy-theme 하위에만 적용
   ============================================================ */

/* [1] .koist-data-table — 범용 2단 테이블 (분류+목록 형태) */
.koist-legacy-theme .koist-data-table {
  width: 100% !important;
  border-collapse: collapse !important;
  border-top: 2px solid #222 !important;
  border-bottom: 1px solid #e1e1e1 !important;
  margin: 20px 0 !important;
  background: #fff !important;
  table-layout: auto !important;
}
.koist-legacy-theme .koist-data-table thead th {
  padding: 14px 12px !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  color: #111 !important;
  background: #f7f9fc !important;
  border-bottom: 1px solid #d1d5db !important;
  border-right: 1px solid #e1e1e1 !important;
  text-align: center !important;
  letter-spacing: -0.02em !important;
}
.koist-legacy-theme .koist-data-table thead th:last-child { border-right: none !important; }
.koist-legacy-theme .koist-data-table tbody tr { border-bottom: 1px solid #e1e1e1 !important; }
.koist-legacy-theme .koist-data-table tbody tr:last-child { border-bottom: none !important; }
.koist-legacy-theme .koist-data-table tbody td {
  padding: 16px 14px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #222 !important;
  line-height: 1.7 !important;
  vertical-align: middle !important;
  border-right: 1px solid #e1e1e1 !important;
  word-break: keep-all !important;
}
.koist-legacy-theme .koist-data-table tbody td:last-child { border-right: none !important; }
.koist-legacy-theme .koist-data-table tbody td.cat,
.koist-legacy-theme .koist-data-table tbody td.subcat {
  text-align: center !important;
  font-weight: 800 !important;
  color: #005f9b !important;
  background: #fafbfc !important;
  width: auto !important;
  min-width: 110px !important;
}
.koist-legacy-theme .koist-data-table tbody td ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.koist-legacy-theme .koist-data-table tbody td ul > li {
  position: relative !important;
  padding-left: 14px !important;
  margin: 4px 0 !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #222 !important;
  line-height: 1.7 !important;
  word-break: keep-all !important;
}
.koist-legacy-theme .koist-data-table tbody td ul > li::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 9px !important;
  width: 5px !important;
  height: 5px !important;
  background: #005f9b !important;
  border-radius: 50% !important;
}

/* [2] .koist-quality-grid — 소프트웨어 품질특성 9개 그룹 */
.koist-legacy-theme .koist-quality-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 16px !important;
  margin: 20px 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.koist-legacy-theme .koist-quality-grid > li {
  padding: 20px 18px !important;
  background: #f7f9fc !important;
  border: 1px solid #e1e1e1 !important;
  border-top: 3px solid #005f9b !important;
  border-radius: 0 0 14px 0 !important;
}
.koist-legacy-theme .koist-quality-grid > li::before { display: none !important; }
.koist-legacy-theme .koist-quality-grid > li > h4 {
  margin: 0 0 10px 0 !important;
  padding: 0 !important;
  font-size: 17px !important;
  font-weight: 800 !important;
  color: #005f9b !important;
  letter-spacing: -0.01em !important;
}
.koist-legacy-theme .koist-quality-grid > li > .q-tags {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
}
.koist-legacy-theme .koist-quality-grid > li > .q-tags > span {
  display: inline-block !important;
  padding: 5px 10px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #1f2937 !important;
  background: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 999px !important;
}

/* [3] .koist-grade-cards — 준비도평가 AAA~B 5단계 등급 카드 */
.koist-legacy-theme .koist-grade-cards {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
  gap: 14px !important;
  margin: 20px 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.koist-legacy-theme .koist-grade-cards > li {
  padding: 22px 18px !important;
  background: linear-gradient(180deg, #f7f9fc 0%, #ffffff 100%) !important;
  border: 1px solid #d1d5db !important;
  border-left: 5px solid #005f9b !important;
  border-radius: 10px !important;
  text-align: center !important;
}
.koist-legacy-theme .koist-grade-cards > li::before { display: none !important; }
.koist-legacy-theme .koist-grade-cards > li .grade-badge {
  display: inline-block !important;
  padding: 8px 18px !important;
  margin-bottom: 12px !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  color: #ffffff !important;
  background: #005f9b !important;
  border-radius: 6px !important;
  letter-spacing: 0.02em !important;
}
.koist-legacy-theme .koist-grade-cards > li .grade-score {
  display: block !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  color: #111 !important;
  margin-bottom: 6px !important;
}
.koist-legacy-theme .koist-grade-cards > li .grade-desc {
  display: block !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #374151 !important;
  line-height: 1.5 !important;
  word-break: keep-all !important;
}

/* [4] .process-detail — 프로세스 스텝 내부 세부 불릿 (CC컨설팅 등) */
.koist-legacy-theme .process > li .process-detail {
  list-style: none !important;
  padding: 10px 0 0 0 !important;
  margin: 8px 0 0 0 !important;
  border-top: 1px solid #e1e1e1 !important;
  text-align: left !important;
}
.koist-legacy-theme .process > li .process-detail > li {
  position: relative !important;
  padding-left: 12px !important;
  margin: 4px 0 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #1f2937 !important;
  line-height: 1.55 !important;
  word-break: keep-all !important;
  text-indent: 0 !important;
}
.koist-legacy-theme .process > li .process-detail > li::before {
  content: "·" !important;
  position: absolute !important;
  left: 2px !important;
  top: -2px !important;
  width: auto !important;
  height: auto !important;
  background: transparent !important;
  border-radius: 0 !important;
  font-weight: 900 !important;
  color: #005f9b !important;
  font-size: 18px !important;
}

/* [5] .contact-card — 문의 담당자 카드 */
.koist-legacy-theme .contact-card {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  padding: 20px 24px !important;
  margin: 10px 0 !important;
  background: #f7f9fc !important;
  border-left: 4px solid #005f9b !important;
  border-radius: 0 10px 10px 0 !important;
}
.koist-legacy-theme .contact-card .contact-name {
  font-size: 17px !important;
  font-weight: 800 !important;
  color: #111 !important;
}
.koist-legacy-theme .contact-card .contact-tel,
.koist-legacy-theme .contact-card .contact-mail {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #005f9b !important;
}

/* [6] .koist-subgroup — 업무 범위형 (h4 + ul) 반복 */
.koist-legacy-theme .koist-subgroup {
  margin: 18px 0 !important;
  padding: 18px 22px !important;
  background: #fafbfc !important;
  border-left: 3px solid #005f9b !important;
  border-radius: 0 8px 8px 0 !important;
}
.koist-legacy-theme .koist-subgroup > h4 {
  margin: 0 0 10px 0 !important;
  padding: 0 !important;
  font-size: 17px !important;
  font-weight: 800 !important;
  color: #111 !important;
}
.koist-legacy-theme .koist-subgroup > ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.koist-legacy-theme .koist-subgroup > ul > li {
  position: relative !important;
  padding-left: 14px !important;
  margin: 4px 0 !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #222 !important;
  line-height: 1.7 !important;
  word-break: keep-all !important;
}
.koist-legacy-theme .koist-subgroup > ul > li::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 9px !important;
  width: 5px !important;
  height: 5px !important;
  background: #005f9b !important;
  border-radius: 50% !important;
}

/* [7] .koist-indicator-grid — 기반/활동 지표 그리드 (준비도평가 필수항목) */
.koist-legacy-theme .koist-indicator-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  gap: 14px !important;
  margin: 16px 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.koist-legacy-theme .koist-indicator-grid > li {
  padding: 16px 18px !important;
  background: #ffffff !important;
  border: 1px solid #e1e1e1 !important;
  border-top: 2px solid #005f9b !important;
  border-radius: 0 0 10px 0 !important;
}
.koist-legacy-theme .koist-indicator-grid > li::before { display: none !important; }
.koist-legacy-theme .koist-indicator-grid > li > strong {
  display: block !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  color: #005f9b !important;
  margin-bottom: 8px !important;
}
.koist-legacy-theme .koist-indicator-grid > li > ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.koist-legacy-theme .koist-indicator-grid > li > ul > li {
  position: relative !important;
  padding-left: 12px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #1f2937 !important;
  line-height: 1.6 !important;
  margin: 3px 0 !important;
}
.koist-legacy-theme .koist-indicator-grid > li > ul > li::before {
  content: "·" !important;
  position: absolute !important;
  left: 2px !important;
  top: 0 !important;
  width: auto !important;
  height: auto !important;
  background: transparent !important;
  border-radius: 0 !important;
  font-weight: 900 !important;
  color: #005f9b !important;
}

/* [8] .koist-icon-cards — 선택항목 아이콘 카드 5개 */
.koist-legacy-theme .koist-icon-cards {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)) !important;
  gap: 12px !important;
  margin: 16px 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.koist-legacy-theme .koist-icon-cards > li {
  padding: 18px 12px !important;
  background: #ffffff !important;
  border: 1px solid #e1e1e1 !important;
  border-radius: 10px !important;
  text-align: center !important;
}
.koist-legacy-theme .koist-icon-cards > li::before { display: none !important; }
.koist-legacy-theme .koist-icon-cards > li img {
  width: 54px !important;
  height: 54px !important;
  object-fit: contain !important;
  margin: 0 auto 10px !important;
  display: block !important;
}
.koist-legacy-theme .koist-icon-cards > li > span {
  display: block !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  color: #111 !important;
  line-height: 1.4 !important;
  word-break: keep-all !important;
}

/* [9] Bold 정책 추가 — v39.8 신규 컴포넌트에도 동일 적용 */
.koist-legacy-theme.koist-legacy-theme .koist-data-table,
.koist-legacy-theme.koist-legacy-theme .koist-data-table * ,
.koist-legacy-theme.koist-legacy-theme .koist-quality-grid,
.koist-legacy-theme.koist-legacy-theme .koist-quality-grid *,
.koist-legacy-theme.koist-legacy-theme .koist-grade-cards,
.koist-legacy-theme.koist-legacy-theme .koist-grade-cards *,
.koist-legacy-theme.koist-legacy-theme .koist-subgroup,
.koist-legacy-theme.koist-legacy-theme .koist-subgroup *,
.koist-legacy-theme.koist-legacy-theme .koist-indicator-grid,
.koist-legacy-theme.koist-legacy-theme .koist-indicator-grid *,
.koist-legacy-theme.koist-legacy-theme .koist-icon-cards,
.koist-legacy-theme.koist-legacy-theme .koist-icon-cards *,
.koist-legacy-theme.koist-legacy-theme .contact-card,
.koist-legacy-theme.koist-legacy-theme .contact-card * {
  letter-spacing: -0.01em !important;
}

/* [10] Mobile responsive */
@media (max-width: 768px) {
  .koist-legacy-theme .koist-data-table tbody td { padding: 12px 10px !important; font-size: 14px !important; }
  .koist-legacy-theme .koist-data-table tbody td.cat,
  .koist-legacy-theme .koist-data-table tbody td.subcat { min-width: 80px !important; font-size: 14px !important; }
  .koist-legacy-theme .koist-quality-grid { grid-template-columns: 1fr !important; }
  .koist-legacy-theme .koist-grade-cards { grid-template-columns: repeat(2, 1fr) !important; }
  .koist-legacy-theme .koist-icon-cards { grid-template-columns: repeat(3, 1fr) !important; }
}

/* End of v39.8 — 10 pages legacy replica components */
