@charset "utf-8";

/* 대학원>의과학과>BK21 4.0>사업단소개 (Figma 926:37267) — 타이틀·탭은 공용(common.html + .tab-nav) */

.bk21-summary,
.bk21-section {
  max-width: 1520px;
  margin: 0 auto;
  word-break: keep-all;
}

/* ── 인트로 요약 박스 ── */
.bk21-summary {
  padding: 20px;
  border-radius: 4px;
  background: var(--color-gray50);
}

.bk21-summary p {
  font-size: var(--font-size-body-md);
  font-weight: var(--font-weight-medium);
  line-height: 27px;
  color: var(--color-text-title1);
  text-align: center;
}

/* ── 섹션 공통 ── */
.bk21-section {
  margin-top: 54px;
}

.bk21-section-title {
  margin: 0 0 51px;
  font-size: 24px;
  font-weight: var(--font-weight-semibold);
  line-height: 36px;
  color: var(--color-text-title1);
  text-align: center;
}

.bk21-section-desc {
  margin: -30px 0 40px;
  font-size: var(--font-size-body-md);
  font-weight: var(--font-weight-regular);
  line-height: 27px;
  color: var(--color-text-body);
  text-align: center;
}

/* ── 비전 · 목표 2단 카드 ── */
.bk21-vision-goal {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 518px));
  gap: 19px;
  justify-content: center;
}

.bk21-card {
  padding: 10px 10px 20px;
  border: 1px solid var(--color-gray200);
  border-radius: 6px;
  background: var(--color-bg-base);
}

.bk21-card-head {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 61px;
  padding: 20px;
  border-radius: 4px;
  font-size: 22px;
  font-weight: var(--font-weight-medium);
  line-height: 1.3;
  color: var(--color-white);
  text-align: center;
}

.bk21-card-head--vision { background: var(--color-primary); }
.bk21-card-head--goal   { background: var(--color-secondary); }

.bk21-card-list {
  margin: 0;
  padding: 15px 25px 0;
  list-style: none;
}

.bk21-card-list li {
  position: relative;
  padding-left: 14px;
  font-size: var(--font-size-body-md);
  font-weight: var(--font-weight-regular);
  line-height: 27px;
  color: var(--color-text-body);
}

.bk21-card-list li + li { margin-top: 12px; }

.bk21-card-list li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 11px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
}

/* ── 다이어그램 장식색 (이 페이지 스코프 토큰) ── */
.bk21-benchmark,
.bk21-cluster,
.bk21-track {
  --bk21-hub-from: #B2393C;
  --bk21-hub-to: var(--color-secondary);
  --bk21-halo: #FFE9E9;
  --bk21-track-tumor: #2F8265;
  --bk21-track-aging: #9E8123;
  --bk21-track-immune: #8E2E85;
}

/* ── 세계 저명대학 벤치마킹 다이어그램 ── */
.bk21-benchmark {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 52px 40px 60px;
  border: 1px solid var(--color-gray200);
  border-radius: 30px;
  background: var(--color-bg-base);
}

.bk21-benchmark-eyebrow {
  font-family: "Libre Caslon Text", "Noto Serif KR", Georgia, serif;
  font-size: 28px;
  font-weight: var(--font-weight-bold);
  line-height: 1.4;
  color: var(--color-secondary);   /* 아래 hub 원과 동일 계열 */
  text-align: center;
}

.bk21-benchmark-headline {
  margin-top: 8px;
  font-size: 28px;
  font-weight: var(--font-weight-bold);
  line-height: 36px;
  color: var(--color-text-title1);
  text-align: center;
}

.bk21-benchmark-hub {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 226px;
  height: 226px;
  margin: 60px 0 8px;
  border-radius: 50%;
  background: linear-gradient(180deg, var(--bk21-hub-from), var(--bk21-hub-to));
}

.bk21-benchmark-hub::before {
  content: "";
  position: absolute;
  width: 262px;
  height: 262px;
  border-radius: 50%;
  background: var(--bk21-halo);
  border: 2px solid var(--color-secondary);
  z-index: -1;
}

.bk21-benchmark-hub span {
  font-size: 34px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-white);
}

.bk21-benchmark-connector {
  width: min(806px, 70%);
  height: 120px;
}

.bk21-benchmark-goals {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 300px));
  gap: 103px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.bk21-benchmark-goal {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.bk21-benchmark-goal-dot {
  width: 16px;
  height: 16px;
  margin-bottom: 18px;
  border-radius: 50%;
  background: var(--color-secondary);
}

.bk21-benchmark-goal-label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 61px;
  padding: 15px 20px;
  border-radius: 60px;
  background: var(--color-bg-secondary);
  font-size: 22px;
  font-weight: var(--font-weight-medium);
  color: var(--color-text-title1);
}

.bk21-benchmark-goal-desc {
  margin-top: 16px;
  font-size: var(--font-size-body-md);
  font-weight: var(--font-weight-regular);
  line-height: 27px;
  color: var(--color-text-body);
}

/* ── 4클러스터 (산업체 / 대학 / 병원 / 연구소) ── */
.bk21-cluster {
  padding: 52px 60px 40px;
  border: 1px solid var(--color-gray200);
  border-radius: 30px;
  background: var(--color-bg-base);
}

.bk21-cluster-title {
  margin: 0 0 40px;
  font-size: 28px;
  font-weight: var(--font-weight-bold);
  line-height: 36px;
  color: var(--color-text-title1);
  text-align: center;
}

.bk21-cluster-cols {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 35px;
}

.bk21-cluster-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding: 10px 13px 40px;
  border-left: 1px solid var(--color-gray300);
  border-right: 1px solid var(--color-gray300);
  border-radius: 40px;
}

.bk21-cluster-col:first-child {
  border-left-color: var(--color-gray400);
  border-right-color: var(--color-gray400);
}

.bk21-cluster-head {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 66px;
  padding: 15px 20px;
  border-radius: 90px;
  background: var(--color-primary);
  font-size: 22px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-white);
  text-align: center;
}

.bk21-cluster-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
  margin: 0;
  padding: 0 0 0 8px;
  list-style: none;
}

.bk21-cluster-list li {
  position: relative;
  padding-left: 15px;
  font-size: 17px;
  font-weight: var(--font-weight-medium);
  line-height: 1.4;
  color: var(--color-text-body);
}

.bk21-cluster-list li::before {
  content: "";
  position: absolute;
  left: 3px;
  top: 9px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
}

/* ── 3개 교육트랙 다이어그램 ── */
.bk21-track {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 52px 60px 52px;
  border: 1px solid var(--color-gray200);
  border-radius: 30px;
  background: var(--color-bg-base);
  overflow: hidden;
}

.bk21-track > *:not(.bk21-track-flow) {
  position: relative;
  z-index: 1;
}

.bk21-track-flow {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.bk21-track-flow-top {
  position: absolute;
  top: 128px;
  left: 50%;
  transform: translateX(-50%);
  width: min(833px, 86%);
  height: 86px;
}

.bk21-track-flow-arrow {
  position: absolute;
  top: 300px;
  left: 50%;
  transform: translateX(-50%);
  width: min(805px, 84%);
  height: 260px;
}

.bk21-track-cap {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--color-white);
  font-weight: var(--font-weight-bold);
}

.bk21-track-cap--top {
  position: relative;
  width: min(665px, 100%);
  min-height: 118px;
  padding: 9px;
  border: 1px solid var(--color-gray500);
  border-radius: 100px;
  background: var(--color-bg-base);
}

.bk21-track-cap--top::before {
  content: "";
  position: absolute;
  inset: 9px;
  border-radius: 50px;
  background: url('/pages/medicine_jnu/img/sub/sub0302050101_bg_1.png') center / cover no-repeat;
}

.bk21-track-cap--top span {
  position: relative;
  z-index: 1;
  font-size: 32px;
}

.bk21-track-cap--bottom {
  width: min(1223px, 100%);
  min-height: 100px;
  margin-top: 40px;
  padding: 20px 40px;
  border-radius: 50px;
  background: url('/pages/medicine_jnu/img/sub/sub0302050101_bg_2.png') center / cover no-repeat;
  font-size: 28px;
}

.bk21-track-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 389px));
  gap: 28px;
  margin-top: 52px;
}

.bk21-track-card {
  display: flex;
  flex-direction: column;
  gap: 15px;
  padding: 10px 10px 20px;
  border: 1px solid var(--color-gray300);
  border-radius: 40px;
  background: var(--color-bg-base);
}

.bk21-track-card--tumor  { border-color: var(--bk21-track-tumor); }
.bk21-track-card--aging  { border-color: var(--bk21-track-aging); }
.bk21-track-card--immune { border-color: var(--bk21-track-immune); }

.bk21-track-card-head {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 61px;
  padding: 15px 20px;
  border-radius: 80px;
  font-size: 22px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-white);
  text-align: center;
}

.bk21-track-card--tumor  .bk21-track-card-head { background: var(--bk21-track-tumor); }
.bk21-track-card--aging  .bk21-track-card-head { background: var(--bk21-track-aging); }
.bk21-track-card--immune .bk21-track-card-head { background: var(--bk21-track-immune); }

.bk21-track-card-list {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin: 0;
  padding: 0 15px;
  list-style: none;
}

.bk21-track-card-list li {
  position: relative;
  padding-left: 14px;
  font-size: var(--font-size-body-md);
  font-weight: var(--font-weight-regular);
  line-height: 27px;
  color: var(--color-text-body);
}

.bk21-track-card-list li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 11px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
}

.bk21-attachment {
    display: flex;
    justify-content: center;
    margin-top: 40px;
}

.bk21-attachment > a {
    gap: 8px;
}

/* ── 반응형 ── */
@media (max-width: 1024px) {
  .bk21-benchmark-goals { gap: 40px; }
  .bk21-benchmark-connector { width: 90%; }
  .bk21-track-flow { display: none; }
}

@media (max-width: 768px) {
  .bk21-section { margin-top: 40px; }
  .bk21-section-title { margin-bottom: 24px; font-size: 20px; }
  .bk21-section-desc { margin: -12px 0 24px; font-size: 15px; }
  .bk21-summary p,
  .bk21-card-list li,
  .bk21-track-card-list li { font-size: 16px; line-height: 1.7; }
  .bk21-vision-goal { grid-template-columns: minmax(0, 1fr); }

  .bk21-benchmark { padding: 36px 20px 44px; }
  .bk21-benchmark-eyebrow,
  .bk21-benchmark-headline { font-size: 22px; }
  .bk21-benchmark-hub { width: 180px; height: 180px; margin: 44px 0 8px; }
  .bk21-benchmark-hub::before { width: 210px; height: 210px; }
  .bk21-benchmark-hub span { font-size: 28px; }
  .bk21-benchmark-goals { grid-template-columns: minmax(0, 1fr); gap: 28px; }

  .bk21-cluster { padding: 32px 20px; }
  .bk21-cluster-title { font-size: 20px; line-height: 1.5; }
  .bk21-cluster-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }

  .bk21-track { padding: 32px 20px 40px; }
  .bk21-track-cap--top { min-height: 96px; }
  .bk21-track-cap--top span { font-size: 19px; }
  .bk21-track-cap--bottom { font-size: 17px; line-height: 1.5; padding: 18px 24px; }
  .bk21-track-cards { grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 32px; }
}
