@charset "utf-8";
html,
body {
    font-size: 16px;
    /* font-family: pr; */
    font-weight: 300;
}
.locationNav .pageNavigation {
  z-index: 999;
}

._contentBuilder {
    overflow: hidden;
    min-height: 33rem;
}

strong { font-weight: 600;}
.cursor_de { cursor: default !important;}

ul.bu_no li {
    position: relative;
    font-size: var(--txt-md-1);
}
ul.bu_no li:before {
  display: none;
}

ul.line li {
  position: relative;
  padding-left: 15px;
  margin: 4px 0px 4px 0;
  font-size: var(--txt-md-1);
}

ul.line li:before {
  content: '-';
  position: absolute;
  vertical-align: middle;
  left: 0;
}

ul.circle li {
    padding: 0px 0 0 10px;
    margin: 4px 0px 4px 0;
    position: relative;
    font-size: var(--txt-md-1);
}
ul.circle li:before {
	content: '';
	width: 3px;
	height: 3px;
    border-radius: 3px;
	position: absolute;
	top: 10px;
	left: 0;
	background: var(--c-black-3);
}

ul.squre li {
	padding: 0px 0 0 10px;
	margin: 4px 0px 4px 0;
	position: relative;
  font-size: var(--txt-md-1);
}
ul.squre li:before {
	content: '';
	width: 4px;
	height: 4px;
	position: absolute;
	top: 10px;
	left: 0;
	background: var(--c-black-4);
}
ul.squre li.main_clr:before {
	background: var(--main-color);
}
ul.squre.squre_half {
  display: flex;
  flex-wrap: wrap;
}
ul.squre.squre_half li {
  width: 50%;
}
@media screen and (max-width: 1024px) {
ul.squre.squre_half li {
  width: 100%;
}
}
ul.billiard li {
	padding: 0px 0 0 16px;
	margin: 4px 0px 4px 0;
	position: relative;
	text-align: left;
	font-size: var(--txt-md-1);
}
ul.billiard li:before {
	content: '※';
	position: absolute;
	top: 0px;
	left: 0;
	background: none;
	font-size: var(--txt-2xl);
	font-weight: 200;
	line-height: 1.1;
	/* font-family: pl; */
}


/* 인사말 */
section.sub_wrap .sub_hero {
  position: relative;
  width: 100%;
  overflow: hidden;
}

section.sub_wrap .sub_hero .sub_hero_top {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding: 50px;
  position: relative;
}

section.sub_wrap .sub_hero .sub_hero_title {
  max-width: 1280px;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 24px;
  font-size: var(--txt-4xl);
  font-family: var(--sub-font);
  line-height: 1.4;
  font-weight: 700;
  color: var(--c-black-1);
  letter-spacing: -1px;
}
section.sub_wrap .sub_hero .sub_hero_top:after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -50px;
    transform: translate(-50%, 0);
    margin-left: 150px;
    width: 543px;
    height: 210px;
    background: url(
    /sites/sbs/images/sub/shape.png) no-repeat center / contain;
    pointer-events: none;
    z-index: -1;
}
section.sub_wrap .sub_hero .sub_hero_title img {
  width: 69px;
}

section.sub_wrap .sub_hero .sub_hero_bottom {
  height: 187px;
  background: url(/sites/sbs/images/sub/greeting_bg.png) no-repeat;
  background-size: cover;
  display: flex;
  /* flex-direction: column; */
  justify-content: flex-end;
  align-items: flex-end;
  width: 100%;
  border-radius: 16px;
}

section.sub_wrap .sub_hero .sub_hero_dept {
  font-size: var(--txt-lg-2);
  color: #fff;
  margin-right: 50px;
  margin-bottom: 50px;
}


section.sub_wrap .sub_hero strong {
  font-size: var(--txt-2xl);
  font-weight: 600;
  letter-spacing: 0.1em;
  margin-left: 0;
}

section.sub_wrap .sub_hero .sub_hero_person {
  width: 301px;
  /* height: 383px; */
  /* margin-top: -197px; */
  margin-right: 50px;
  z-index: 1;
}

.sub_hero_con {
    width: 100%;
    margin: 0 auto;
    padding: 50px;
}
.sub_hero_con p {
    font-size: var(--txt-md-1);
    line-height: 1.5em;
    text-align: justify;
    margin-top: 20px;
    /* font-family: 'pr'; */
}
.sub_hero_con p:first-child {
    margin-top: 0;
}
.sub_hero_con strong {
    font-weight: 600;
}

/* 기존 스타일 유지 */
section.sub_wrap .sub_hero {
  position: relative;
  width: 100%;
  overflow: hidden;
}

/* 상단 타이틀 영역 */
section.sub_wrap .sub_hero .sub_hero_top.dual_person {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 50px;
  position: relative;
}

/* 배경 쉐이프 (회색 산 모양 배경) */
section.sub_wrap .sub_hero .sub_hero_top.dual_person:after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -50px;
    transform: translate(-50%, 0);
    width: 543px;
    height: 210px;
    background: url(/sites/sbs/images/sub/shape.png) no-repeat center / contain;
    pointer-events: none;
    z-index: -1;
    opacity: 0.5; /* 디자인에 맞춰 조절 */
}

/* 하단 붉은색 배경 영역 (두 명 버전) */
section.sub_wrap .sub_hero .sub_hero_bottom.dual_person {
  /* height: auto; */ /* 인물 높이에 맞게 가변 */
  min-height: 187px;
  background: url(/sites/sbs/images/sub/greeting_bg.png) no-repeat center / cover;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  width: 100%;
  border-radius: 16px;
  padding: 0 40px;
  box-sizing: border-box;
}

/* 인물 사진 공통 */
.person_box {
  flex-shrink: 0;
}
.person_box img {
  display: block;
  width: 301px; /* 디자인에 따라 조절 */
  height: auto;
}

/* 중앙 텍스트 영역 */
.hero_info_wrap {
  display: flex;
  /*flex-wrap: wrap;*/
  justify-content: center;
  gap: 60px;
  padding: 40px;
  color: #fff;
  width: 100%;
}

.info_item {
  /* display: flex; */
  align-items: baseline;
  font-size: var(--txt-lg-2);
  text-align: left;
}
.info_item:last-child {
  text-align: right;
}

.info_item span {
  font-weight: 300;
  opacity: 0.9;
}

.info_item strong {
  font-size: var(--txt-2xl);
  font-weight: 600;
  margin-left: 15px;
  letter-spacing: 0.1em;
}

.hero_info_wrap.mobile {
    display: none;
}

/* responsive */

@media (max-width: 1024px) {
  section.sub_wrap .sub_hero .sub_hero_top.dual_person:after {
    display: none;
  }
  section.sub_wrap .sub_hero .sub_hero_title img {
    width: 36px;
}
  section.sub_wrap .sub_hero .sub_hero_top.dual_person {
    /* height: auto; */
    padding: 20px;
  }
  section.sub_wrap .sub_hero .sub_hero_bottom {
    height: 120px;
    padding: 0 20px 0 20px;
    justify-content: space-between;
  }
  section.sub_wrap .sub_hero .sub_hero_dept {
    margin-right: 0;
    margin-bottom: 20px;
    text-align: left;
  }
  section.sub_wrap .sub_hero .sub_hero_title {
    /* flex-direction: column; */
    /* align-items: flex-start; */
    gap: 6px;
    line-height: 1.3;
    font-size: var(--txt-3xl);
  }
  section.sub_wrap .sub_hero strong {display: block;margin-left: 0;margin-top: 5px;}
  section.sub_wrap .sub_hero .sub_hero_person {
    width: 150px;
    /* margin-top: -181px; */
    margin-right: 0;
  }

  .sub_hero_con {
      padding: 20px 20px 0;
  }

  section.sub_wrap .sub_hero .sub_hero_top {
        padding: 20px;
  }
  section.sub_wrap .sub_hero .sub_hero_top:after {
    width: 350px;
    height: 170px;
  }
  .person_box img {
    width: 140px;
  }
}

@media (max-width: 480px) {
    section.sub_wrap .sub_hero .sub_hero_top {
        padding: 0 0 30px 0;
    }
  section.sub_wrap .sub_hero .sub_hero_bottom {
    padding: 0 0px 0 20px;
  
  }
}

/* 반응형 설정 */

@media (max-width: 1024px) {
    .hero_info_wrap { gap: 30px; }
    .info_item { font-size: 16px; }
    section.sub_wrap .sub_hero .sub_hero_bottom.dual_person {
    padding: 0 15px;
    /* flex-wrap: wrap; */
    /* justify-content: center; */
    min-height: 100px;
  }

}

@media (max-width: 768px) {
  section.sub_wrap .sub_hero .sub_hero_top:after { display: none; }


  .hero_info_wrap {
    /* order: -1; */ /* 텍스트를 인물 위로 */
    padding: 20px;
    gap: 0;
    /* flex-direction: column; */
    align-items: center;
    /* padding-bottom: 0; */
  }

  .info_item {
    flex-direction: column;
    align-items: center;
    width: 50%;
  }
  
  .info_item strong { margin-left: 0; margin-top: 5px; }




}

@media (max-width: 640px) {
    .person_box img { width: 120px; }
    .info_item { font-size: 14px; }
    .hero_info_wrap { color: var(--c-black-1);}
    .hero_info_wrap.pc {display: none;}
    .hero_info_wrap.mobile {display: flex;padding: 10px 20px;justify-content: space-between;}
      section.sub_wrap .sub_hero .sub_hero_top.dual_person {
    padding: 20px;
  }
}

@media (max-width: 480px) {
      section.sub_wrap .sub_hero .sub_hero_top.dual_person {
    padding: 20px 0;
  }
}

/* tab */
.tab_link {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  margin-bottom: 2rem;
}
.tab_link .tablinks {
  height: auto;
  text-align: center;
  padding: 14px 0;
  font-size: var(--txt-lg);
  font-weight: 500;
  cursor: pointer;
  line-height: 1.3em;
  border-radius: 5px;
  border: none;
  background: #f0f0f0;
}
.tab_link .tablinks:hover {
  background: var(--main-color-2);
  color: #fff;
}
.tab_link .tablinks.active {
  background: var(--main-color-2);
  color: #fff;
}
.tab_link.tab_link2 .tablinks {
    width: calc((100% - 2px) /2);
}
.tab_link.tab_link3 .tablinks {
    width: calc((100% - 4px) /3);
}
.tab_link.tab_link4 .tablinks {
    width: calc((100% - 6px) /4);
}
.tab_link.tab_link5 .tablinks {
    width: calc((100% - 8px) /5);
}
.tab_link.tab_link6 .tablinks {
    width: calc((100% - 10px) /6);
}
.tab_link.tab_link7 .tablinks {
    width: calc((100% - 12px) /7);
}
.tab_link.tab_link8 .tablinks {
    width: calc((100% - 14px) /8);
}

.tab_link.line .tablinks {
  height: auto;
  text-align: center;
  padding: 14px 0;
  border: 1px solid var(--c-black-5);
  background: #fff;
}
.tab_link.line .tablinks:hover {
  border-top: 2px solid var(--main-color-2);
  color: var(--main-color-2);
}
.tab_link.line .tablinks.active {
  border-top: 2px solid var(--main-color-2);
  color: var(--main-color-2);
}

.tabcontent { display: none; }
@media (max-width: 768px) {
.tab_link.line .tablinks {
  padding: 10px 0;
}
}

/* 교수진 탭 */
.tab_wrap {
    margin: 0 auto;
    width: 100%;
}

.tab_list {
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    gap: 2px;
    width: 100%;
}

.tab_list a {
    width: 100%;
    height: auto;
    text-align: center;
    padding: 14px 10px;
    font-size: var(--txt-md-1);
    font-weight: 400;
    color:var(--c-black-2);
    cursor: pointer;
    line-height: 1.3em;
    border-radius: 5px;
    border: none;
    background: var(--c-black-7);
    display: flex;
    align-items: center;      /* 세로 중앙 */
    justify-content: center;  /* 가로 중앙 */
    white-space: nowrap;   /* 줄바꿈 방지 */
}

.tab_list .tablinks:hover {
  background: var(--main-color-2);
  color: #fff;
}
.tab_list .tablinks.active {
  background: var(--main-color-2);
  color: #fff;
}

@media (max-width: 1024px) {
    .tab_list {
      grid-template-columns: repeat(3, 1fr);
    }
    .tab_list a {
      white-space: normal; 
    }
    /* wide 탭은 2칸 + 줄바꿈 허용 */
    .tab_list a.wide {
        grid-column: span 2;
        white-space: normal;   /* ⭐ 핵심 */
        line-height: 1.2em;
        padding: 5px 10px;
    }
}


/*연혁*/

.history {border-radius: 16px;  }

.history_wrap .tab_link .tablinks {width: 20%;}
.history_wrap .cont_tit_m {
    font-size: var(--txt-3xl-2);
    color: var(--main-color-2);
}
.history .year_wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: flex-end;
    border-bottom: 1px dotted var(--c-black-5);
    padding: 1.5rem 0;
    /* margin-top: 1rem; */
}
.history .year_wrap:first-child {
  border-top: 2px solid var(--c-black-1);
}
.history .year_wrap .year {
    font-size: var(--txt-3xl);
    font-weight: 600;
    width: 16%;
    /* margin-top: 0.5rem; */
}
.history .year_wrap .month_wrap {
    display: flex;
    width: 84%;
    margin-bottom: 1rem;
    align-items: flex-start;
}
.history .year_wrap .month_wrap:last-child {margin: 0;}
.history .year_wrap .month_wrap .month {
    width: 8%;
    font-size: var(--txt-2xl);
    color: var(--sub-color-2);
    font-weight: 600;
    line-height: 1.7em;
}
.history .year_wrap .month_wrap .txt {
    color: var(--c-black-1);
    font-size: var(--txt-lg);
    font-weight: 500;
    padding: 0.25rem 0.75rem;
}
@media (max-width: 768px) {
  .history .year_wrap {
      padding: 1.5rem 0;
  }


}

/* ===============================
   VISION / MISSION / VALUES
   Parent: .vision
================================ */

.vision {
  width: 100%;
}

/* 공통 inner */
.vision .inner {
  max-width: var(--web-width);
  margin: 0 auto;
  padding-top: 40px;
  text-align: center;
}

/* 공통 타이틀 */
.vision h2 {
  font-size: var(--txt-3xl-1);
  color: var(--main-color-2);
  font-weight: 600;
  margin-bottom: 20px;
}

.vision h2 span {
  color: var(--main-color);
  font-weight: 800;
}

/* ===============================
   VISION
================================ */

.vision .vision_circle_bg {
  background: url('/sites/sbs/images/sub/vision_bg.png') center bottom no-repeat;
  z-index: -3;
  padding-bottom: 50px;
}

.vision .vision_circle {
  width: 320px;
  height: 320px;
  margin: 11px auto;
  border-radius: 50%;
  background: url('/sites/sbs/images/sub/vmv_bg_vision.png') center top no-repeat;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  border-radius: 50%;
  border: 1px solid #ddd;
}

.vision .vision_circle::before {
  content: "";
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  border: 10px solid #fff; /* 메인 컬러 톤 */
  /* z-index: -1; */
}

/* 1px 가장 바깥 라인 */
.vision .vision_circle::after {
  content: "";
  position: absolute;
  inset: -11px; /* 10px + 10px + 1px */
  border-radius: 50%;
  border: 1px solid #ddd;
  z-index: 1;
}
.vision .vision_circle .en {
  color: #fff;
  margin-bottom: 10px;
}

.vision .vision_circle strong {
  font-size: var(--txt-4xl);
  line-height: 1.35;
  font-family: var(--sub-font);
  font-weight: 600;
}

/* ===============================
   MISSION
================================ */

.vision .vmv_mission {
  /* background: #fff; */
}

.vision .mission_desc {
  margin: 0 auto;
  font-size: var(--txt-lg);
  color: var(--c-black-3);
  line-height: 1.5;
}

/* ===============================
   VALUES
================================ */

.vision .vmv_values {

}

.vision .values_desc {
  font-size: var(--txt-lg);
  color: var(--c-black-3);
  /*margin-bottom: 40px;*/
}

.vision .values_grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  padding: 30px 24px;
}

.vision .value_card {
  background: #fff;
  padding: 36px 30px;
  text-align: left;
  box-shadow: 0 10px 30px rgba(0,0,0,0.06);
}

/* 제목 + 아이콘 (아이콘은 뒤) */
.vision .value_card h3 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 6px;
}

/* 제목 텍스트 */
.vision .value_card .title {
  font-size: var(--txt-xl);
  color: var(--c-black-1);
  line-height: 1.2;
}

.vision .value_card .title span {
  font-size: var(--txt-3xl);
  color: var(--main-color-2);
  font-weight: 600;
}

/* 아이콘 슬롯 (제목 뒤) */
.vision .value_card .icon {

}

/* 설명 */
.vision .value_card .sub_title {
  font-size: var(--txt-lg);
  font-weight: 600;
  color: var(--main-color-2);
  line-height: 1.5;
  margin-bottom: 5px;
}

.vision .value_card p {
  font-size: var(--txt-md);
  color: var(--c-black-3);
  line-height: 1.5;
}

/* ===============================
   RESPONSIVE
================================ */

@media (max-width: 1024px) {
  .vision .values_grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {

  .vision .inner {
    padding-top: 30px;
  }

  .vision .vision_circle {
    width: 240px;
    height: 240px;
  }

  .vision .values_grid {
    grid-template-columns: 1fr;
  }
}

/* ===============================
   AACSB BLOCK
================================ */

.aacs {
  width: 100%;
}

.aacs_inner {
  max-width: var(--web-width);
  margin: 0 auto;
  display: flex;
  align-items: flex-start;
  gap: 3rem;
  border-top: 1px dashed var(--c-black-5);
  padding: 2rem 0;
}

/* 로고 */
.aacs_logo {
  flex: 0 0 220px;
  display: flex;
  justify-content: center;
}

.aacs_logo img {
    max-width: 200px;
    /* max-width: fit-content; */
    height: auto;
    max-height: 100px;
}

/* 텍스트 */
.aacs_text {
  flex: 1;
}

.aacs_desc {
  font-size: var(--txt-md-1);
  line-height: 1.5;
  /* margin-bottom: 1.25rem; */
  text-align: justify;
  /* margin-top: 1.25rem; */
}

/* 강조 문단 */
.aacs_desc.highlight {
  margin-top: 1.5rem;
}

.aacs_image {
    width: 100%;
    height: 236px;
    background: url(/sites/sbs/images/sub/accreditation_bg.png) no-repeat center / cover;
    border-radius: 16px;
    margin-top: 2rem;
}

/* ===============================
   RESPONSIVE
================================ */

@media (max-width: 1024px) {
  .aacs_inner {
    gap: 2rem;
    padding: 30px 0;
  }
}

@media (max-width: 768px) {
  .aacs_inner {
    flex-direction: column;
    gap: 1.5rem;
  }

  .aacs_logo {
    /* width: 130px; */
    flex: inherit;
  }
  .aacs_logo img {
    max-width: 120px;
    max-height: 70px;
  }
  .aacs_image {
    height: 180px;
    margin-top: 1rem;
  }
}

/* ===============================
   보직교수 / 교직원 (GRID)
================================ */

/* 카드 템플릿 */
.card_templete {
}

/* 카드 리스트 → GRID */
.card {
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* 기본 4열 */
    gap: 24px;
    align-items: stretch;
}
/* 카드 리스트 → GRID */
.card.col-4 {
    grid-template-columns: repeat(4, 1fr); /* 기본 4열 */
}


/* 카드 공통 */
.card li.item {
    padding: 30px;
    border: 1px solid var(--c-black-5);
    background: #fff;
}
.card li.item:hover {
  border: 1px solid var(--main-color);
}

/* ===============================
   카드 내부 정보
================================ */

.card li.item .pro_info .pro_sub {
    font-size: var(--txt-lg);           /* 18px */
    font-weight: 600;
    margin: 0 0 12px;
    line-height: 24px;
}

/* 정보 리스트 */
.card li.item .pro_info ul li {
    color: var(--c-black-2);
    font-size: var(--txt-md);
    line-height: 22px;
    margin: 5px 0;
}

/* ===============================
   반응형
================================ */

/* 1024px 이하 → 2열 */
@media (max-width: 1024px) {
    .card {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* 640px 이하 → 1열 */
@media (max-width: 640px) {
    .card {
        grid-template-columns: 1fr;
    }

    .card li.item {
        padding: 20px;
    }
}

/* ===============================
   CAMPUS SECTION
================================ */
.campus_section {
  width: 100%;
  color: var(--c-black-2);
}

.campus_inner {
  max-width: var(--web-width);
  margin: 0 auto;
}

/* ===============================
   HERO
================================ */
.campus_hero {
  position: relative;
  border-radius: 1.25rem;
  overflow: hidden;
}

.campus_hero img {
  width: 100%;
  height: 26.25rem; /* 420px */
  object-fit: cover;
}

.campus_hero_txt {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  color: #fff;
  background: rgba(0, 0, 0, 0.25);
}

.campus_hero_txt h2 {
  font-size: var(--txt-4xl-1); /* 42px */
  font-weight: 700;
  letter-spacing: -0.02em;
}

.campus_hero_txt p {
  font-size: var(--txt-lg-2); /* 20px */
  margin-top: 0.5rem;
  font-weight: 400;
}

/* ===============================
   CARD LIST
================================ */
.campus_cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.5rem;
  margin-top: 3.75rem;
}

/* ===============================
   CARD
================================ */
.campus_card {
  display: flex;
  flex-direction: column;
}

.campus_img {
  border-radius: 1rem;
  overflow: hidden;
}

.campus_img img {
  width: 100%;
  height: 18.75rem; /* 300px */
  object-fit: cover;
  transition: transform 0.4s ease;
}

.campus_card:hover .campus_img img {
  transform: scale(1.05);
}

/* ===============================
   CARD INFO
================================ */
.campus_info {
  margin-top: 1.25rem;
}

.campus_head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.campus_head h3 {
  font-size: var(--txt-xl);
  font-weight: 600;
  color: var(--c-black-1);
}

.more_btn {
  font-size: var(--txt-md);
  font-weight: 500;
  color: var(--c-black-4);
  position: relative;
  padding-right: 1rem;
  text-decoration: none;
  width: 88px;
  height: 32px;
  background: url(/sites/sbs/images/sub/more_bg.png) no-repeat right bottom;
}
.more_btn:hover {
  color: var(--main-color-2);
}

.campus_info p {
  margin-top: 0.75rem;
  font-size: var(--txt-lg); /* 16px */
  line-height: 1.6;
  color: var(--c-black-3);
}

/* ===============================
   RESPONSIVE
================================ */
@media (max-width: 1024px) {
  .campus_cards {
    grid-template-columns: 1fr;
  }

  .campus_img img {
    height: 16.25rem; /* 260px */
  }
}

@media (max-width: 640px) {
  .campus_hero img {
    height: 18.75rem; /* 300px */
  }

  .campus_hero_txt h2 {
    font-size: var(--txt-3xl-2); /* 32px */
  }

  .campus_hero_txt p {
    font-size: var(--txt-md-1); /* 17px */
  }
}

/* ===============================
   CAMPUS DETAIL
================================ */
.campus_detail {
  width: 100%;
  background: #fff;
  font-family: var(--main-font);
  color: var(--c-black-3);
}

.campus_detail_inner {
  max-width: var(--web-width);
  margin: 0 auto;
  /* padding: 3.75rem 1.25rem; */ /* 60px 20px */
}

/* ===============================
   WRAP
================================ */
.campus_detail_wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem; /* 60px */
  align-items: center;
}

/* ===============================
   IMAGE
================================ */
.campus_detail_img {
  border-radius: 16px;
  overflow: hidden;
}

.campus_detail_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ===============================
   TEXT
================================ */
.campus_detail_txt p {
  font-size: var(--txt-md-1); /* 17px */
  line-height: 1.5;
  margin-bottom: 1rem;
  color: var(--c-black-3);
  text-align: justify;
}

.campus_detail_txt p:last-child {
  margin-bottom: 0;
}

/* ===============================
   RESPONSIVE
================================ */
@media (max-width: 1024px) {
  .campus_detail_wrap {
    grid-template-columns: 1fr;
    gap: 2.5rem; /* 40px */
  }
}


/*캠퍼스*/
/* ===============================
   CAMPUS GALLERY
================================ */
.campus_gallery {
  width: 100%;
}

.campus_gallery_inner {
  max-width: var(--web-width);
  margin: 3rem auto 0;
}

/* ===============================
   LIST
================================ */
.gallery_list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}

.gallery_item {
  list-style: none;
}

/* ===============================
   CARD BUTTON
================================ */
.gallery_btn {
  width: 100%;
  border: 0;
  padding: 0;
  background: none;
  cursor: pointer;
}

/* ===============================
   IMAGE BOX (비율 고정 핵심)
================================ */
.gallery_img {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;        /* 🔥 모든 카드 동일 비율 */
  border-radius: 16px;
  overflow: hidden;
  background: var(--c-black-7);
}

.gallery_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;          /* 🔥 이미지 크기 통일 핵심 */
  display: block;
}

/* ===============================
   BOTTOM GRADATION
================================ */
.gallery_grad {
  position: absolute;
  inset: auto 0 0 0;
  height: 45%;
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.45),
    rgba(0,0,0,0)
  );
  z-index: 1;
}

/* ===============================
   TITLE
================================ */
.gallery_title {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font-size: var(--txt-lg);
  font-weight: 500;
  letter-spacing: 0.5px;
  z-index: 3;
  text-align: center;
  white-space: nowrap;
}

/* ===============================
   HOVER OVERLAY
================================ */
.gallery_hover {
  position: absolute;
  inset: 0;
  background: rgba(177, 17, 22, 0.85);
  opacity: 0;
  transition: opacity .3s ease;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
}

.gallery_img:hover .gallery_hover {
  opacity: 1;
}

/* ===============================
   ZOOM ICON
================================ */
.icon_zoom {
  width: 48px;
  height: 48px;
  border: 1px solid #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.icon_zoom img {
  width: 23px;
  height: 23px;
  display: block;
}

/* ===============================
   MODAL
================================ */
.gallery_modal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;
}

.gallery_modal.active {
  display: block;
}

/* dim */
.gallery_modal_dim {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.8);
}

/* 콘텐츠 래퍼 */
.gallery_modal_content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);

  max-width: 98vw;
  max-height: 98vh;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  pointer-events: auto;
}

/* 확대 이미지 */
.gallery_modal_content img {
  max-width: 1024px;
  max-height: 98vh;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  border-radius: 1rem;
}

/* ===============================
   CLOSE BUTTON (이미지 좌측 상단)
================================ */
.modal_close {
  position: absolute;
  top: -70px;          /* ⭐ 이미지 위쪽 */
  right: 0;             /* ⭐ 이미지 좌측 정렬 */
  font-size: 60px;
  font-family: var(--main-font);
  font-weight: 100;
  line-height: 1;
  color: #fff;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 0;
  z-index: 2;
}

/* 모바일에서 너무 위로 안 나가게 */
@media (max-width: 640px) {
  .modal_close {
    /* top: -40px; */
    /* font-size: 60px; */
  }
  .gallery_modal_content img {
    max-width: 98vw;
  }
}


/* ===============================
   RESPONSIVE (단일 정의)
================================ */
@media (max-width: 1024px) {
  .gallery_list {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .gallery_list {
    grid-template-columns: 1fr;
  }

  .gallery_title {
    font-size: var(--txt-md);
    bottom: 1.5rem;
  }
}

/* ===============================
   TRACK STEP
================================ */
.track_step {
  width: 100%;
  margin: 3rem 0;
}

.track_step_list {
  max-width: var(--web-width);
  margin: 0 auto;
  display: flex;
}

/* 학부_프로그램_전공심화인증제도 */
/* ===============================
   STEP ITEM
================================ */
.step_wrap {
  display: flex;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;

  /* 🔑 화살표 여유 공간 확보 */
  padding-left: 40px;
  padding-right: 40px;

  overflow: hidden;

  --step-a: #2ea8df;
  --step-b: #0f5f8f;
  --arrow: 40px;
  --h: 96px;
  --hh: calc(var(--h) / 2);
}


.step_item {
  position: relative;
  flex: 1;
  height: var(--h);

  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;

  color: #fff;
  font-size: var(--txt-lg);
  font-weight: 600;

  /* 박스 겹침 */
  margin-left: calc(var(--arrow) * -1);
}

/* .step_item:first-child { margin-left: 0; } */

/* 배경 교차 */
.step_item:nth-child(odd)  { background: var(--step-a); }
.step_item:nth-child(even) { background: var(--step-b); }

/* ▶ 오른쪽 화살표(현재 박스 색) */
.step_item::after {
  content: "";
  position: absolute;
  top: 0;
  right: calc(var(--arrow) * -1);

  width: 0;
  height: 0;
  border-top: var(--hh) solid transparent;
  border-bottom: var(--hh) solid transparent;
  border-left: var(--arrow) solid currentColor; /* ❌ currentColor 쓰면 글자색으로 됨 */
}

/* ↑ 위 줄 때문에 화살표가 흰색으로 나올 수 있어서
   after는 "inherit" 대신 background색을 직접 넣어야 함.
   아래처럼 색을 분기해서 넣자. */
.step_item:nth-child(odd)::after  { border-left-color: var(--step-a); }
.step_item:nth-child(even)::after { border-left-color: var(--step-b); }

/* ◀ 왼쪽 파임(이전 박스 색으로 채움) */
.step_item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;

  width: 0;
  height: 0;
  border-top: var(--hh) solid transparent;
  border-bottom: var(--hh) solid transparent;
  border-left: var(--arrow) solid transparent;
  z-index: 3;
}

/* ⭐ 핵심: 파임 색을 "이전 박스 색"으로 */
.step_item:nth-child(odd)::before  { border-left-color: var(--step-b); } /* odd의 이전은 even색 */
.step_item:nth-child(even)::before { border-left-color: var(--step-a); } /* even의 이전은 odd색 */

.step_item:first-child:nth-child(odd)::before {
    border-left-color: #fff;
}
.step_item:last-child:nth-child(even)::after {
    border-left-color: #fff;
}
/* 첫번째는 파임 제거
.step_item:first-child::before { display: none; } */

/* 마지막은 화살표 제거
.step_item:last-child::after { display: none; } */

/* ===============================
   RESPONSIVE
================================ */

/* 태블릿 */
@media (max-width: 1024px) {

  .step_wrap {
    padding-left: 24px;
    padding-right: 24px;
    --arrow: 28px;
    --h: 80px;
  }

}


/* 모바일 */
/* ===============================
   MOBILE : 세로 화살표 STEP
================================ */
@media (max-width: 640px) {

  .step_wrap {
    flex-direction: column;
    overflow: visible;
    --arrow: 20px;
    --h: auto;
    padding-left: 0;
    padding-right: 0;
  }

  .step_item {
    margin-left: 0;
    padding: 18px 12px;
    min-height: 64px;
    font-size: var(--txt-md);
  }

  /* ▶▶ 좌우 화살표 제거 */
  .step_item::after,
  .step_item::before {
    border: none;
  }

  /* ▼ 아래 화살표 */
  .step_item::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: calc(var(--arrow) * -1);
    transform: translateX(-50%);

    width: 0;
    height: 0;
    border-left: var(--arrow) solid transparent;
    border-right: var(--arrow) solid transparent;
    border-top: var(--arrow) solid currentColor;
  }

  /* 색상 유지 */
  .step_item:nth-child(odd)::after  { border-top-color: var(--step-a); }
  .step_item:nth-child(even)::after { border-top-color: var(--step-b); }

  /* ▲ 위 파임 */
  .step_item::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);

    width: 0;
    height: 0;
    border-left: var(--arrow) solid transparent;
    border-right: var(--arrow) solid transparent;
    border-top: var(--arrow) solid #fff;
    z-index: 2;
  }
  .step_item:nth-child(odd)::before {
      border-left-color: transparent;
  }
  .step_item:nth-child(even)::before {
    border-left-color: transparent;
  }
  /* 첫 번째는 위 파임 제거 */
  .step_item:first-child::before {
    display: none;
  }

  /* 마지막은 아래 화살표 제거 */
  .step_item:last-child::after {
    display: none;
  }

  /* 박스 간 간격 */
  .step_item + .step_item {
    margin-top: 10px;
  }
}

/* ===============================
   PROCESS FLOW
================================ */
/* ===============================
   PROCESS FLOW
================================ */
.process_wrap {
  max-width: var(--web-width);
  margin: 0 auto;
  display: flex;
  align-items: stretch;   /* ⭐ 높이 기준 통일 */
  gap: 0;
}

/* step */
.process_step {
  flex: 1;
  display: flex;
  align-items: stretch;
}

/* box */
.step_box {
  width: 100%;
  height: 110px;                 /* ⭐ 모든 박스 높이 통일 */
  max-width: 240px;
  background: #d9cbb8;
  border-radius: 12px;
  padding: 20px 16px;
  box-sizing: border-box;
  display: flex;                 /* ⭐ 내부 텍스트 중앙 정렬 */
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  text-align: center;
}

.step_box strong {
  font-size: var(--txt-lg);
  font-weight: 600;
  color: var(--c-black-1);
  line-height: 1.4;
}

.step_box.highlight {
  background: #c6b49f;
}

/* ===============================
   ARROW
================================ */
.material-icons.step_arrow {
  font-size: 32px;
  color: #9b8a75;

  display: flex;
  align-items: center;
  justify-content: center;

  align-self: center;    /* ⭐ 박스 중앙 기준 */
  flex-shrink: 0;
}

/* ===============================
   RESPONSIVE – TABLET
================================ */
@media (max-width: 1024px) {
  .process_wrap {
    flex-wrap: wrap;
    justify-content: center;
  }

  .process_step {
    /* flex: 1 1 45%; */
    justify-content: center;
  }

  .step_box {
    max-width: 100%;
  }
}

/* ===============================
   RESPONSIVE – MOBILE
================================ */
@media (max-width: 640px) {
  .process_wrap {
    flex-direction: column;
  }

  .process_step {
    width: 100%;
    justify-content: center;
  }

  .step_box {
    width: 100%;
    height: auto;              /* ⭐ 모바일은 높이 자동 */
    min-height: 88px;
  }

  /* → ↓ */
  .step_arrow {
    transform: rotate(90deg);
    margin: 4px 0;
  }
}

/**/
.sub_button{
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 2rem;
    gap: 1rem;
}
.sub_button.flex_end{
    justify-content: flex-end;
}
a.sub_btn{
    min-width: 250px;
    background: var(--main-color-3);
    /* height: 40px;
    line-height: 40px; */
    color: #fff !important;
    cursor: pointer;
    font-weight: 500;
    padding: 12px 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 5px;
    font-size: var(--txt-lg);
    position: relative;
    padding-right: 40px;
}
a.sub_btn.main_clr{
    background: var(--main-color);
    color: #fff !important;
}
.sub_btn:after {
    /* content: '\e2c4'; */
    font-family: 'Material Icons Outlined';
    color: #fff;
    font-size: var(--txt-2xl);
    position: absolute;
    top: 50%;
    right: 0px;
    transform: translate(-50%, -50%);
}
.sub_btn.opennew:after {
    content: '\e89e';
    font-size: var(--txt-xl);
}
.sub_btn .material-icons-outlined{
    font-size: 18px;
}
.sub_btn.download:after {
    content: '\e171';
    font-size: var(--txt-xl);
}

a.sub_btn_n{
    min-width: 200px;
    background: var(--main-color);
    /* height: 40px;
    line-height: 40px; */
    color: #fff !important;
    cursor: pointer;
    font-weight: 500;
    padding: 12px 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 5px;
    font-size: var(--txt-lg);
    position: relative;
    /* padding-right: 40px; */
}
a.sub_btn_n.main_clr-3{
    background: var(--main-color-3);
}

a.sub_btn_n.sm{
    min-width: 160px;
}

/*학부 Honors Program 연혁*/
.lab_history {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 1rem;
}
.lab_history.col-2 {
    grid-template-columns: repeat(2, 1fr);
}

.lab_history .box {
    position: relative;
    border: 1px solid var(--c-black-5);
    border-left: 0;
    padding: 1rem 2rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
    font-size: var(--txt-md-1);
    line-height: 1.75em;
}
.lab_history .box .box_l {
  width: 50px;
}
.lab_history .box .box_r {
  width: calc(100% - 50px);
}
.lab_history .box::before {
    content: '';
    display: inline-block;
    width: 3px;
    height: 100%;
    background: var(--main-color);
    position: absolute;
    top: 0px;
    left: 0px;
}
.lab_history .box.box_r {
    position: relative;
    border: 1px solid var(--c-black-5);
    border-left: 0;
    padding: 1rem 2rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
    font-size: var(--txt-md-1);
    line-height: 1.75em;
}
.lab_history .box span.tit {
    font-size: var(--txt-md-1);
    font-weight: 500;
    width: 50px;
    /* margin-right: 20px; */
    display: inline-block;
    line-height: 1.75em;
    text-align: center;
}
.lab_history .box span.txt {
    font-size: var(--txt-md-1);
    /* font-weight: 500; */
    width: calc(100% - 140px);
    line-height: 1.75em;
    display: inline-block;
}
@media (max-width: 640px) {
  .lab_history.col-2 {
    grid-template-columns: repeat(1, 1fr);
}
  .lab_history .box {
    padding: 1rem 1rem;
  }
  .lab_history .box span.tit {
    width: 40px;
    margin-right: 10px;
  }
  .lab_history .box span.txt {
      width: calc(100% - 100px);
  }
  a.sub_btn {
      max-width: 250px;
  }
}


/* -------------- tab contents (펼쳐지는 탭) ---------------*/
.tab_click_li {
    /* border-top: 3px solid var(--main-color-2); */
    /* border-bottom: 2px solid #1f4396; */
}
.tab_click_li dt {
    overflow: hidden;
    height: auto;
    padding: 1.25rem 1.5rem;
    cursor: pointer;
    border: 1px solid var(--c-black-5);
    line-height: 30px;
    margin-top: 20px;
    position: relative;
}
.tab_click_li dt:first-child {
  margin-top: 0px;
}
.tab_click_li dt::before {
    /* content: '';
    display: inline-block;
    width: 3px;
    height: 100%;
    background: var(--main-color);
    position: absolute;
    top: 0px;
    left: 0px; */
}
.tab_click_li dt .tit {
    width: 100%;
    font-size: var(--txt-lg);
    line-height: normal;
    font-weight: 500;
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
}
.tab_click_li dt .tit div {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: pre;
    margin-left: 1rem;
}
.tab_click_li dt .tit .material-icons-outlined {
  color: var(--main-color-2);
}
.tab_click_li dd {
    display: none;
    height: auto;
    padding: 1rem 2rem;
    border: 1px solid var(--c-black-5);
    font-size: var(--txt-md-1);
    line-height: 150%;
    padding-left: 28px;
    margin-top: -1px;
}
.tab_click_li p {
    /* margin-bottom: 20px; */
}
.tab_click_li dt .tit .cate {
    color: var(--main-color);
    font-weight: 500;
    font-size: var(--txt-lg);
    padding: 0 4px 0 6px;
    letter-spacing: normal;
    background: none !important;
}
.tab_click_li dt .tit:after {
    content: '';
    display: inline-block;
    width: 9px;
    height: 9px;
    margin: -5px 12px auto auto;
    vertical-align: middle;
    border-right: 2px solid var(--c-black-4);
    border-top: 2px solid var(--c-black-4);
    transform: rotate(135deg);
    position: absolute;
    top: 10px;
    right: 0px;
    transition: 0.2s;
}
.tab_click_li dt.on .tit:after {
    content: '';
    display: inline-block;
    width: 9px;
    height: 9px;
    margin: -20px 6px auto auto;
    vertical-align: middle;
    border-right: 2px solid var(--c-black-4);
    border-top: 2px solid var(--c-black-4);
    transform: rotate(-45deg);
    position: absolute;
    top: 30px;
    right: 8px;
    transition: 0.2s;
}
.tab_click_li dt .tit_l {
    padding-right: 6px;
    color: var(--main-color);
    font-size: var(--txt-xl);
    line-height: 1;
}
.list_cont {
 
}
@media (max-width: 640px) {
.tab_click_li dt {
    padding: 1rem 1rem;
}
.tab_click_li dd {
    padding: 1rem 1rem;
}
}



/* 학부 Honors Program 참가보고서 */
.forum {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.forum.cols-2 {/* MBA 규정 */
  grid-template-columns: repeat(2, 1fr);
}
.forum.cols-2 .box {
  padding: 2rem;
}

.forum.cols-4 {
  grid-template-columns: repeat(4, 1fr);
}

.forum .box {
  border: 1px solid var(--c-black-5);
  padding: 1rem 2rem;
}
.forum .box:hover {
  border: 1px solid var(--main-color);
}
.forum .box .tit {
  color: var(--c-black-1);
  font-size: var(--txt-lg);
  font-weight: 500;
  text-align: center;
}
.forum .box .btn_line {
  background: var(--main-color);
  color: #fff;
  position: relative;
}
.forum .box .btn_line:after {
  content: '\e171';
  font-family: 'Material Icons Outlined';
  color: #fff;
  font-size: var(--txt-2xl);
  position: absolute;
  top: 50%;
  right: 0px;
  transform: translate(-50%, -50%);
}
@media (max-width: 768px) {
    .forum {
          grid-template-columns: repeat(1, 1fr);
    }
    .forum.cols-2{
          grid-template-columns: repeat(1, 1fr);
    }
    .forum.cols-4{
          grid-template-columns: repeat(1, 1fr);
    }
    .forum .box {
      padding: 1rem;
    }
}
a.btn_txt {
  font-size: var(--txt-lg);
  font-weight: 500;
  display: inline-block;
}
a.btn_txt::after {
  content: '\f8ce';
  font-family: "Material icons Outlined";
  /* position: absolute; 
  bottom: 0;
  right: 0;*/
  font-size: var(--txt-xl);
  color: var(--main-color);
  /* transform: translate(0, -50%); */
  /* line-height: 1.5em; */
  vertical-align: middle;
  margin-left: 5px;
}


/* 일반대학원 입학안내 */
.intro {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 50px;
}

.intro .intro_txt {
  width: calc((100% - 50px) /2);
  position: relative;
}

.intro .intro_txt .intro_title {
  width: 100%;
  /* display: flex; */
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
  font-size: var(--txt-4xl);
  line-height: 1.4;
  font-weight: 700;
  color: var(--c-black-1);
  /* letter-spacing: -1px; */
}
.intro .intro_txt .intro_title .sub_font {
  font-size: smaller;
  line-height: 0;
}
.intro .intro_txt .intro_title img {
  width: 69px;
  margin-right: 10px;
}
.intro .intro_txt .squre li {
  /* text-indent: -40px; */
  /* padding-left: 50px !important; */
}

.intro .intro_img {
  width: calc((100% - 50px) /2);
  height: 410px;
  background: url(/sites/sbs/images/sub/msphd_intro.png) no-repeat;
  background-size: cover;
  border-radius: 16px;
}
.intro .intro_img.unergraduate {
  background: url(/sites/sbs/images/sub/unergraduate_intro.png) no-repeat;
  background-size: cover;
}
.intro .intro_img.promba {
  background: url(/sites/sbs/images/sub/promba_intro.png) no-repeat;
  background-size: cover;
}
.intro .intro_img.smba {
  background: url(/sites/sbs/images/sub/smba_intro.png) no-repeat;
  background-size: cover;
}
.intro .intro_img.smba-1 {
  background: url(/sites/sbs/images/sub/smba-1_intro.png) no-repeat;
  background-size: cover;
}
.intro .intro_img.aimba {
  background: url(/sites/sbs/images/sub/aimba_intro.png) no-repeat;
  background-size: cover;
}
.intro .intro_img.gmba {
  background: url(/sites/sbs/images/sub/gmba_intro.png) no-repeat;
  background-size: cover;
}
.intro .intro_img.ephd {
  background: url(/sites/sbs/images/sub/ephd_intro.png) no-repeat;
  background-size: cover;
}
.intro .intro_img.msphd {
  background: url(/sites/sbs/images/sub/msphd_intro.png) no-repeat;
  background-size: cover;
}
.intro .intro_img.donate {
  background: url(/sites/sbs/images/sub/msphd_intro.png) no-repeat;
  background-size: cover;
}
.intro .intro_img.donate-1 {
  background: url(/sites/sbs/images/sub/campus_matteo.png) no-repeat;
  background-size: cover;
}
.intro .intro_img.donate-2 {
  background: url(/sites/sbs/images/sub/campus_baro.png) no-repeat;
  background-size: cover;
}
.intro .intro_img.sep {
  background: url(/sites/sbs/images/sub/campus_baro.png) no-repeat;
  background-size: cover;
}
.intro .intro_img.step {
  background: url(/sites/sbs/images/sub/step_intro.png) no-repeat;
  background-size: cover;
}
.intro_txt p {
    font-size: var(--txt-lg);
    line-height: 1.5em;
    text-align: justify;
    word-break: break-all;
    margin-top: 2rem;
    font-weight: 400;
    /* font-family: 'pr'; */
}

@media (max-width: 1279px) {
.intro {
  gap: 30px;
}
.intro .intro_img {
  height: 310px;
}
.intro .intro_txt .squre li {
    text-indent: -32px;
    padding-left: 42px !important;
}
}
@media (max-width: 768px) {
.intro .intro_txt {
    width: 100%;
}
.intro .intro_img {
    width: 100%;
    height: 250px;
}
.intro .intro_txt .intro_title img {
    width: 45px;
}
.intro_txt p {
    margin-top: 1rem;
}
}

.img_wrap {
  width: 100%;
  margin: 0 auto;
  text-align: center;
  padding: 50px;
  border-radius: 1rem;
}
.img_wrap img {
  width: auto;
  max-width: fit-content;
}
.img_wrap.gray {
  background: var(--c-black-8);
}
.img_wrap.line {
  border: 1px solid var(--c-black-5);
}

@media (max-width: 768px) {
  .img_wrap {
    /* min-width: 768px; */
    overflow-x: scroll;
  }
  .img_wrap img {
    width: 100%;
    min-width: 768px;
  }
}

.course_btn {
    background: none;
    border: none;
    /* color: var(--c-black-1); */
    cursor: pointer;
    text-align: left;
    padding: 0;
    font-size: var(--txt-md-1);
    font-weight: 400;
    position: relative;
}

.course_btn:hover {
    color: var(--main-color);
}

.course_btn::after {
    content: '\f8ce';
    font-family: "Material icons Outlined";
    font-size: var(--txt-lg);
    color: var(--main-color);
    /* transform: translate(0, -50%); */
    line-height: 1.5em;
    vertical-align: sub;
    margin-left: 3px;
}

.down_btn {
    background: none;
    border: none;
    /* color: var(--c-black-1); */
    cursor: pointer;
    text-align: left;
    padding: 0;
    font-size: var(--txt-md-1);
    font-weight: 400;
    position: relative;
}

.down_btn:hover {
    color: var(--main-color);
}

.down_btn::after {
    content: '\e171';
    font-family: "Material icons Outlined";
    font-size: var(--txt-lg);
    color: var(--main-color);
    /* transform: translate(0, -50%); */
    line-height: 1.5em;
    vertical-align: bottom;
    margin-left: 3px;
}


/* 레이어 */
.course_layer {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

.course_layer_inner {
    position: relative; /* X 기준점 */
    background: #fff;
    width: 720px;
    max-height: 80vh;
    overflow-y: auto;
    padding: 24px 24px 32px;
    box-sizing: border-box;
}

.course_close {
    position: absolute;
    top: 16px;
    right: 16px;
    border: none;
    background: none;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}
.course_layer_inner h3{
  font-size: var(--txt-lg-2);
  font-weight: 600;
}
.course_layer_inner .meta {
  font-size: var(--txt-lg);
  font-weight: 500;
  margin-bottom: 10px;
}

/* 학부 주요 혜택 */
.benefit {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.benefit .box {
  border: 1px solid var(--c-black-5);
  padding: 1.5rem 2rem;
}
.benefit .box h5 {
    font-size: var(--txt-lg-2);
    font-weight: 500;
    /* margin: 0 0 0.6rem; */
    color: var(--c-black-1);
}
.benefit.cols-1 {
  grid-template-columns: repeat(1, 1fr);
}
.benefit .box p {
   font-size: var(--txt-md-1);
   line-height: 1.5;
   color: var(--c-black-2);
   text-align: justify;
   margin-top: 0.6rem;
}
.benefit .box .align_r {
  font-weight: 500;
}


@media (max-width: 768px) {
    .benefit {
          grid-template-columns: repeat(1, 1fr);
    }
    .benefit .box {
      padding: 1.5rem;
    }
}

.box_grey {
  background: var(--c-black-8);
  padding: 1rem 2rem;
}
.box_grey ul.line li {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px dotted var(--c-black-5);
}
.box_grey ul.squre li {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px dotted var(--c-black-5);
}
.box_grey ul.squre li:last-child {
  margin-bottom: 0px;
  padding-bottom: 0;
  border-bottom: none;
}


/*MBA 과정 비교*/
.box_wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
}
.box_wrap .box {
  border: 1px solid var(--c-black-5);
  padding: 2rem;
  cursor: pointer;
}
.box_wrap .box:hover {
  border: 1px solid var(--main-color);
}
.box_wrap .box h3 {
  position: relative;
}
.box_wrap .box h3::after {
    content: '\e145';
    font-family: "Material icons Outlined";
    font-size: var(--txt-3xl);
    color: var(--c-black-1);
    position: absolute;
    top:0;
    right:0;
}
.box_wrap .box:hover h3::after {
  color: var(--main-color);
}
.box_wrap .box .squre li {
  text-indent: -40px;
  padding-left: 50px !important;
}
@media (max-width: 1279px) {
.box_wrap .box .squre li {
  text-indent: -32px;
  padding-left: 42px !important;
}
}
@media (max-width: 768px) {
    .box_wrap {
      grid-template-columns: repeat(1, 1fr);
      gap: 24px;
    }
    .box_wrap .box {
      padding: 1.5rem;
    }
    /*관리자과정 - 소개*/
    .box_wrap .box .squre li {
      text-indent: -55px;
      padding-left: 65px !important;
    }
}

/*mba promba 장학금안내*/
.dt_dd {}
.dt_dd li {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 20px;
  margin: 4px 0;
}
.dt_dd li .tit {
  font-size: var(--txt-lg);
  color: var(--main-color-3);
  width: 150px;
  /* margin-left: 18px; */
}
.dt_dd li .txt {
  font-size: var(--txt-md-1);
}

/*mba promba Faculty Members*/
.members {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0px 24px;
}
.members li {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  /* gap: 20px; */
  margin: 4px 0;
}
.members li .tit {
  font-size: var(--txt-md-1);
  color: var(--c-black-1);
  width: 80px;
}
.members li .txt {
  font-size: var(--txt-md-1);
  width: calc(100% - 80px);
}
@media (max-width: 768px) {
    .members {
      grid-template-columns: repeat(1, 1fr);
    }
    .members li .tit {
      width: 60px;
    }
    .members li .txt {
      width: calc(100% - 60px);
    }
}

/*mba 전공소개*/
.major-grid_wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
    gap: 32px;
}
.major-grid_wrap .major-tit  {
    width: 130px;
    background: var(--main-color);
    font-size: var(--txt-lg-2);
    font-weight: 500;
    color: #fff;
    padding: 20px;
}
.major-grid_wrap .major-grid  {
    width: calc(100% - 162px);   
}

.major-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}
.major-grid.cols-2 {
    grid-template-columns: repeat(2, 1fr);
}
.major-grid.cols-4 {
    grid-template-columns: repeat(4, 1fr);
}
.major-box {
    padding: 30px 40px 30px 10px;
    border-top: 1px solid var(--c-black-5);
    border-right: 1px solid var(--c-black-5);
    position: relative;
}
.major-box h3 {
    color: var(--sub-color-2);
    font-size: var(--txt-lg-2);
    font-weight: 600;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 10px;
}
.major-box h3::before {
    /* content: '•';
    margin-right: 8px; */
}
.major-box p {
    margin-top: 15px;
    font-size: var(--txt-md-1);
    line-height: 1.5;
    color: var(--c-black-2);
    /* text-align: justify; */
}
@media screen and (max-width: 1024px) {
  .major-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .major-grid.cols-4 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 640px) {
  .major-grid {
    grid-template-columns: repeat(1, 1fr);
  }
  .major-grid.cols-2 {
    grid-template-columns: repeat(1, 1fr);
  }
  .major-grid.cols-4 {
    grid-template-columns: repeat(1, 1fr);
  }
  .major-grid_wrap {
    gap: 20px;
    }
  .major-grid_wrap .major-tit  {
    width: 70px;
  }
  .major-grid_wrap .major-grid  {
    width: calc(100% - 90px);   
    }
  .major-box {
    padding: 20px 20px 20px 20px;
  }
}

.major-grid.cols-1 {
    grid-template-columns: repeat(1, 1fr);
}

/* mba 모집요강 */
.admission_box{
    width: 100%;
    padding: 40px 60px;
    background: #fff;
    border: 1px #ddd solid;
    border-top: 3px var(--main-color) solid;
    margin: 0 auto 40px;
    display: flex;
    flex-wrap: wrap;
    align-items: self-start;
    border-radius: 0 0 30px 30px;
}
.admission_box .left{
    width: 120px;
    text-align: center;
}
.admission_box .right{
    width: calc(100% - 120px);
}
.admission_box .right .tit{
    font-size: var(--txt-2xl);
    font-weight: 600;
    color: var(--c-black-1);
    text-align: center;
    margin-bottom: 1rem;
}
.admission_box .sub_button {
  margin-top: 1rem;
}


.admission_wrap{
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    /* gap: 20px; */
    flex-wrap: wrap;
    /* margin-top: 2rem; */
    border-top: 1px solid var(--c-black-1);
}
.admission_wrap .admission_titbox{
    flex-shrink: 0;
    width: 180px;
}
.admission_wrap .admission_titbox .tit{
    font-size: var(--txt-2xl);
    font-weight: 600;
}
.admission_wrap .admission_titbox .tit::after{
    top: 2px;
    width: 8px;
    height: 8px;
    margin-left: 10px;
    content: "";
    display: inline-block;
    position: relative;
    /* border-radius: 50%; */
    background-color: var(--main-color);
}
.admission_wrap .admission_txtboxt{
    width: calc(100% - 180px);
}
.admission_wrap .admission_txtboxt .numbering_item{
    display: flex;
    padding: 2rem 0;
    border-bottom: 1px dotted #ccc;
    align-items: start;
    flex-wrap: wrap;
}
.admission_wrap .admission_txtboxt .numbering_item:last-child {
    border-bottom: none;
}
.admission_wrap .admission_txtboxt .numbering_item .numbering_title_wrap{
    display: flex;
    /* flex-shrink: 0; */
    flex-wrap: wrap;
    width: 180px;
}
.admission_wrap .admission_txtboxt .numbering_item .numbering_title_wrap .numbering_tit{
    display: inline-block;
    flex-shrink: 0;
    width: 30px;
    font-weight: 600;
    text-align: center;
    color: var(--main-color);
}
.admission_wrap .admission_txtboxt .numbering_item .numbering_title_wrap .numbering_txt{
    /* display: block; */
    font-weight: 600;
    line-height: 1.35;
    font-size: var(--txt-lg);
    /* width: calc(100% - 100px); */
}
.admission_wrap .admission_txtboxt .numbering_item .numbering_flex{
    display: flex;
    flex-wrap: wrap;
    gap: 2.5rem;
}
.admission_wrap .admission_txtboxt .numbering_item .numbering__desc-wrap{
    width: calc(100% - 180px);
}
.admission_wrap .admission_txtboxt .numbering_item .numbering__desc-wrap .default-list{
    display: flex;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}
.admission_wrap .admission_txtboxt .numbering_item .numbering__desc-wrap .default-list.flex_wrap{
    flex-wrap: wrap;
}
.admission_wrap .admission_txtboxt .numbering_item .numbering__desc-wrap .default-list .list{
    /* display: flex;
    flex-wrap: wrap; */
    /* flex-direction: column; */
    width: 100%;
}
.admission_wrap .admission_txtboxt .numbering_item .numbering__desc-wrap .default-list .list.list_many{

}
.admission_wrap .admission_txtboxt .numbering_item .numbering__desc-wrap .default-list .list .list_item{
    position: relative;
    padding-left: 12px;
    line-height: 1.5;
    word-break: keep-all;
    font-size: var(--txt-md-1);
    margin: 4px 0px 4px 0;
}
.admission_wrap .admission_txtboxt .numbering_item .numbering__desc-wrap .default-list .list .list_item::before{
    content: "";
    display: block;
    position: absolute;
    top: 11px;
    left: 0;
    width: 3px;
    height: 3px;
    background-color: var(--main-color);
}
.admission_wrap .admission_txtboxt .numbering_item .numbering__desc-wrap .default-list .list span{
    color: var(--main-color-2);
    /* margin: 0 0 2px 15px; */
}

@media screen and (max-width: 1024px) {
  .admission_box {
    padding: 20px;
    justify-content: center;
  }
  .admission_box .left img {
    width: 45px;
    margin-bottom: 10px;
}
  .admission_wrap {
      flex-wrap: wrap;
      padding-top: 20px;
  }
  .admission_wrap .admission_txtboxt .numbering_item .numbering__desc-wrap .default-list {
      flex-wrap: wrap;
      width: 100%;
  }
  .admission_wrap .admission_txtboxt {
    width: 100%;
  }
  .admission_wrap .admission_txtboxt .numbering_item .numbering_title_wrap {
    width: 100%;
    margin-bottom: 10px;
  }
  .admission_wrap .admission_txtboxt .numbering_item .numbering__desc-wrap {
    width: 100%;
  }
  .admission_wrap .admission_txtboxt .numbering_item .numbering__desc-wrap .default-list .list .list_item {padding-left: 10px;}
  .admission_wrap .admission_txtboxt .numbering_item .numbering__desc-wrap .default-list .list .list_item::before { top: 8px;}
}
@media screen and (max-width: 768px) {
  .admission_box .left {
    width: 100%;
  }
  .admission_box .right {
    width: 100%;
  }
}

/* 리스트 */
.seminar .news_list{
  display:flex;
  gap:40px;
}
.seminar .news_list li{
  flex:1;
}
.seminar .news_list a{
  display:block;
}

/* 썸네일 */
.seminar .news_list .thumb{
  border-radius: 16px;
  overflow:hidden;
}
.seminar .news_list .thumb img{
  width:100%;
  display:block;
}

/* 텍스트 */
.seminar .text{
  margin-top:25px;
  text-align: center;
}
.seminar .text h3{
  font-size:var(--txt-lg-2);
  font-weight: 600;
  line-height:1.4;
  margin-bottom: 10px;
}
.seminar .text p{
  font-size:16px;
  color:var(--c-black-3);
  line-height: 1.4;
}

@media (max-width: 768px) {
    .seminar .news_list {
        flex-direction: column;
        gap: 30px;
    }
}

/*기부*/
.print-wrap .vtem .cont table{table-layout:fixed;border-top:1px solid #999; border-bottom:1px solid #999; min-width: 640px;}
.print-wrap .vtem .cont thead th{border-bottom:1px solid #ccc; text-align:center;font-size:17px; font-weight:700; color:#111;letter-spacing:-0.01em; line-height:1.2em; padding:20px 5px;}
.print-wrap .vtem .cont thead th:first-child{border-left:none;}
.print-wrap .vtem .cont thead th:nth-child(n+2){font-size:var(--txt-md); font-weight:500;}
.print-wrap .vtem .cont tbody th{border-bottom:1px solid #ccc; text-align:center;font-size:var(--txt-md-1); font-weight:700; color:#111; letter-spacing:-0.01em; line-height:1.2em; padding:20px 5px;}
.print-wrap .vtem .cont tbody th div{text-align:center;position:relative; }
.print-wrap .vtem .cont tbody th p{position:absolute; left:50%; top:50%;height:200px; margin-top:-100px;writing-mode: vertical-rl;text-orientation: mixed;transform: translateX(-50%); -moz-transform: translateX(-50%);-ms-transform: translateX(-50%); -o-transform:  translateX(-50%);transform: translateX(-50%);}
.print-wrap .vtem .cont tbody td{border-bottom:1px solid #ccc; text-align:center;font-size:var(--txt-md);  font-weight:600; color:#555; letter-spacing:-0.01em; line-height:1.2em; padding:20px 5px;}
.print-wrap .vtem .cont tbody td.l{padding:20px; color:#666; font-weight:500;}
.print-wrap .vtem .cont tbody td:first-child, .print-wrap .vtem .cont tbody th:first-child{border-left:none;}
.print-wrap .vtem .cont tbody .line{border-right:1px solid #e0e0e0;}
.print-wrap .vtem .cont tbody .f16{font-size:12px;display:block;}

.print-wrap .vtem:nth-child(n+2) thead{display:none;}
.print-wrap .vtem:nth-child(n+2) table{border-top:none;}

.print-wrap .vtem .cont .fcolor{font-family:"Jost"; font-weight:600; font-size:var(--txt-lg);}
.print-wrap .vtem .cont .fvr span{font-size:12px; display:block; margin-top:12px;}
.print-wrap .vtem .cont .fcolor01{color:#000;}
.print-wrap .vtem .cont .fcolor02{color:#333;}
.print-wrap .vtem .cont .fcolor03{color:#666;}
.print-wrap .vtem .cont .fcolor04{color:#999;}

.print-wrap .vtem .cont .fcolor05{color:#ffcc00;}
.print-wrap .vtem .cont .fcolor06{color:#cc9900;}
.print-wrap .vtem .cont .fcolor07{color:#ff6600;}
.print-wrap .vtem .cont .fcolor08{color:#b00f1d;}


/*명예의전당*/
.parter {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  margin-bottom: 30px;
}
.parter .box {
  border: 1px solid var(--c-black-5);
  text-align: center;
}
.parter .box h5 {
    font-size: var(--txt-lg-2);
    font-weight: 500;
    margin: 0 0 0.6rem;
    color: var(--c-black-1);
    letter-spacing: -0.5px;
}

@media (max-width: 768px) {
    .parter {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
}

/*공지사항 카데고리 숨김*/
/*.board-list .cate {
   display: none; 
} */

/*캠퍼스라이프*/
/* Campus Life */
.sbs_campus_life {
    width: 100%;
    padding: 60px 0;
    border-top: 5px solid var(--main-color);
}

.sbs_inner {
    max-width: 1280px;
    margin: 0 auto;
    /* padding: 0 20px; */
}

/* header */
.sbs_header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 24px;
}

.sbs_title h2 {
    font-size: var(--txt-5xl);
    font-weight: 600;
    color: var(--c-black-1);
    line-height: 1.25;
}

.sbs_title h2 .small {
    font-size: var(--txt-4xl);
    font-weight: 300;
    margin-left: 12px;
    color: var(--c-black-1);
}

/* logo */
.sbs_logo {
    width: 69px;
    height: 100px;
    background: url('/sites/sbs/images/sub/emblem.png') no-repeat center / contain;
}

/* description */
.sbs_desc {
    font-size: var(--txt-lg);
    line-height: 1.5;
    color: var(--c-black-2);
    margin-bottom: 3rem;
}

/* image */
.sbs_image_box {
    width: 100%;
    height: 236px;
    background: url('/sites/sbs/images/sub/campus_life_bg.png') no-repeat center / cover;
    border-radius: 16px;
}

/* =========================
   Responsive
========================= */
@media (max-width: 1024px) {
}

@media (max-width: 640px) {
  .sbs_campus_life {
      padding: 30px 0;
  }
  .sbs_logo {
      align-self: flex-end;
  }

  .sbs_image_box {
      height: 180px;
  }
  .sbs_logo {
      width: 45px;
      height: 65px;
  }
  .sbs_desc br { display: none;}
}

/* Seminar Grid */
.sbs_campus_life.sbs_seminar {
    border-top: 1px dashed var(--c-black-4);
}
.sbs_header_wrap {
    display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-bottom: 2rem;
}
.sbs_header_txt {
  width: calc(50% - 1rem);
}
.sbs_seminar_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-bottom: 2rem;
}
.sbs_seminar_grid.cols-2 {
    grid-template-columns: repeat(2, 1fr);
    margin-bottom: 0;
}

/* top large image */
.seminar_main {
width: calc(50% - 1rem);
    height: 278px;
    background: url('/sites/sbs/images/sub/seminar_main.png') no-repeat center / cover;
    border-radius: 16px;
}

/* middle images */
.seminar_sub {
    height: 239px;
    border-radius: 16px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.seminar_sub.s1 { background-image: url('/sites/sbs/images/sub/seminar_01.png'); }
.seminar_sub.s2 { background-image: url('/sites/sbs/images/sub/seminar_02.png'); }
.seminar_sub.s3 { background-image: url('/sites/sbs/images/sub/seminar_03.png'); }

/* bottom images */
.seminar_bottom {
    height: 278px;
    border-radius: 16px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.seminar_bottom.b1 {
    background-image: url('/sites/sbs/images/sub/seminar_04.png');
}

.seminar_bottom.b2 {
    background-image: url('/sites/sbs/images/sub/seminar_05.png');
}

/* =========================
   Responsive
========================= */
@media (max-width: 1024px) {
    .sbs_seminar_grid {
        /* grid-template-columns: 1fr 1fr; */
    }

    .seminar_main {
        grid-column: span 2;
    }

    .seminar_bottom {
        /* grid-column: span 2; */
    }
}

@media (max-width: 640px) {
  .sbs_header_txt {
    width: 100%;
}
.seminar_main {
    width: 100%;
}
    .sbs_seminar_grid {
        grid-template-columns: 1fr;
    }
    .sbs_seminar_grid.cols-2 {
        grid-template-columns: 1fr;
    }
    .seminar_main,
    .seminar_sub,
    .seminar_bottom {
        grid-column: span 1;
        height: 180px;
    }
}

/* full background */
.sbs_full_bg_section {
    position: relative;
    padding: 60px 0 0;
}

/* ⭐ 전체 배경 탈출 */
.sbs_full_bg_section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;          /* 🔥 뷰포트 기준 */
    height: 420px;
    background: #e9d8c8;
    z-index: 0;
}

/* 컨텐츠는 위로 */
.sbs_full_bg_section .sbs_inner {
    position: relative;
    z-index: 1;
}

/* body 직계 배경 */
.sbs_full_bg_portal {
    position: absolute;
    left: 0;
    width: 100vw;
    background: #e9d8c8;
    z-index: 0;
    pointer-events: none;
}

/* 콘텐츠는 항상 위 */
.sbs_full_bg_section {
    position: relative;
    z-index: 1;
}


/* text */
.sbs_text_area {
    margin-bottom: 40px;
}

.sbs_bg_title {
    font-size: var(--txt-5xl);
    font-weight: 600;
    color: var(--main-color-2);
    font-family: var(--sub-font);
    letter-spacing: -1px;
    margin-bottom: 20px;
}

.sbs_bg_desc {
    font-size: var(--txt-lg);
    line-height: 1.5;
    color: var(--c-black-2);
}

/* image grid */
.sbs_photo_grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 2rem;
}

/* common photo */
.sbs_photo_grid .photo {
    border-radius: 16px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

/* ── 상단 2개 ── */
.photo.p1 {
    grid-column: 1 / 3;
    height: 350px;
    background-image: url('/sites/sbs/images/sub/seoul_01.png');
}

.photo.p2 {
    grid-column: 3 / 7;
    height: 350px;
    background-image: url('/sites/sbs/images/sub/seoul_02.png');
}

/* ── 하단 3개 ── */
.photo.p3 {
    grid-column: 1 / 3;
    height: 239px;
    background-image: url('/sites/sbs/images/sub/seoul_03.png');
}

.photo.p4 {
    grid-column: 3 / 5;
    height: 239px;
    background-image: url('/sites/sbs/images/sub/seoul_04.png');
}

.photo.p5 {
    grid-column: 5 / 7;
    height: 239px;
    background-image: url('/sites/sbs/images/sub/seoul_05.png');
}

/* =========================
   Responsive
========================= */
@media (max-width: 1024px) {
    .sbs_photo_grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .photo {
        grid-column: span 2 !important;
        height: 220px !important;
    }
}

@media (max-width: 640px) {
    .sbs_full_bg_section {
        padding: 40px 40px;
    }

    .photo {
        height: 180px !important;
    }

    .sbs_bg_desc br {
        display: none;
    }
}


/* section */
.sbs_smart_city {
    width: 100%;
    padding: 80px 0 0;
}

/* 상단 BG 카드 */
.smart_city_bg {
    background: var(--main-color-2);
    border-radius: 16px;
    padding: 48px 56px;
    margin-bottom: 36px;
}

/* text */
.smart_city_title {
    font-size: var(--txt-5xl);
    font-family: var(--sub-font);
    font-weight: 600;
    color: #fff;
    margin-bottom: 16px;
}

.smart_city_desc {
    font-size: var(--txt-lg);
    line-height: 1.6;
    color: rgba(255,255,255,0.9);
    text-align: right;
}

/* image grid */
.smart_city_grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 2rem;
}

/* common image */
.city_photo {
    border-radius: 16px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.smart_city_grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: 350px 239px; /* ← 핵심 */
    gap: 2rem;
}

/* 좌측 상 */
.city_photo.p1 {
    grid-column: 1 / 3;
    grid-row: 1 / 2;
    background-image: url('/sites/sbs/images/sub/smartcity_01.png');
}

/* 좌측 하 */
.city_photo.p2 {
    grid-column: 1 / 3;
    grid-row: 2 / 3;
    background-image: url('/sites/sbs/images/sub/smartcity_02.png');
}

/* 우측 대형 */
.city_photo.p3 {
    grid-column: 3 / 7;
    grid-row: 1 / 3; /* ← 2행 span */
    background-image: url('/sites/sbs/images/sub/smartcity_03.png');
}


/* =========================
   Responsive
========================= */
@media (max-width: 1024px) {
    .smart_city_grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto; /* ⭐ 핵심 */
    }

    .city_photo {
        grid-column: span 2 !important;
        grid-row: auto !important; /* ⭐ 핵심 */
        height: 220px !important;
    }
}
@media (max-width: 640px) {
    .sbs_smart_city {
        padding: 50px 0;
    }

    .smart_city_bg {
        padding: 32px;
    }

    .city_photo {
        height: 180px !important;
    }

    .smart_city_desc br {
        display: none;
    }
}
@media (max-width: 640px) {
.smart_city_desc {
    text-align: left;
}
}

/*FAQ cms 수정*/
.faq-list .question::before {
  	font-size: var(--txt-3xl);
    color: var(--main-color);
}
.faq-list .answer::before {
    font-size: var(--txt-3xl);
    color: var(--main-color-3);
}
.faq-list .answer {
    background: var(--c-black-8);
}

/*앨범 cms 수정*/
.albumWrap .conts .title em {
    line-clamp: 2;
    -webkit-line-clamp: 2;
  font-family: psb;
}
.albumWrap .detail .date {
    margin-top: 10px;
  font-size: var(--txt-md);
}

/* 양식 다운로드 */
/* ===============================
기본
=============================== */
.doc_section {
    /* margin-bottom: 60px; */
}

.doc_title {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 1px solid #2c3e50;
}

/* 버튼 */
.doc-btns a {
    display: inline-block;
    padding: 6px 14px;
    font-size: var(--txt-md);
    min-width: 95px;
    border: 1px solid var(--c-black-5);
    background: var(--c-black-7);
    color: var(--c-black-1);
    text-decoration: none;
    margin-left: 6px;
    border-radius: 3px;
    text-align: left;
    position: relative;
}

.doc-btns a:after {
  content: '\e171';
  font-family: 'Material Icons Outlined';
    color: var(--c-black-1);
    font-size: var(--txt-lg);
    position: absolute;
    top: 50%;
    right: 0px;
    transform: translate(-50%, -50%);
}
.doc-btns a:hover {
  background: var(--main-color);
  color: #fff;
  border: 1px solid var(--main-color);
}
.doc-btns a:hover:after {
  color: #fff;
}


/* ===============================
공통 Wrapper
=============================== */
.doc-wrap {
    display: grid;
    /* border-top: 1px solid #dcdcdc; */
    gap: 20px;
}

/* ===============================
가로형
=============================== */
.doc-horizontal .doc-item {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    padding: 20px;
    border: 1px solid #dcdcdc;
}

.doc-horizontal .doc-label {
    padding-right: 20px;
    font-size: var(--txt-md-1);
    font-weight: 500;
}

/* ===============================
세로형
=============================== */
.doc-vertical .doc-item {
    text-align: center;
    padding: 20px;
    border: 1px solid #dcdcdc;
    /* border-bottom: 1px solid #dcdcdc; */
}

.doc-vertical .doc-label {
    font-size: var(--txt-md-1);
    font-weight: 500;
    margin-bottom: 10px;
}

/* ===============================
컬럼 수
=============================== */
.col-1 { grid-template-columns: 1fr; }
.col-2 { grid-template-columns: repeat(2, 1fr); }
.col-4 { grid-template-columns: repeat(4, 1fr); }

/* ===============================
Responsive
=============================== */
@media (max-width: 1024px) {
    .col-4 {
        grid-template-columns: repeat(2, 1fr);
    }

    .doc-vertical.col-4 .doc-item:nth-child(2n) {
        border-right: none;
    }
}

@media (max-width: 640px) {
    .doc-wrap {
        grid-template-columns: 1fr !important;
    }

    .doc-horizontal .doc-item {
        grid-template-columns: 1fr;
        gap: 8px;
        text-align: center;
    }

    .doc-vertical .doc-item {
        border-right: none;
    }
}

/* sep과정 */
.benefit_wrap {
    margin: 0 auto;
    display: flex;
    gap: 60px;
    align-items: center;
}

/* 왼쪽 다이아몬드 */
.benefit_left {
    flex: 0 0 260px;
    display: flex;
    justify-content: center;
}
.diamond {
    width: 250px;
    height: 250px;
    background: var(--main-color);
    /* transform: rotate(45deg); */
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 200px;
    border: 10px solid var(--c-black-7);
}
.diamond p {
    /* transform: rotate(-45deg); */
    font-size: var(--txt-xl);
    color: #fff;
    font-weight: 600;
    text-align: center;
    line-height: 1.3;
    letter-spacing: -1px;
}

/* 오른쪽 영역 */
.benefit_right {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* 공통 아이템 */
.benefit_item {
    display: flex;
    align-items: center;
    border-radius: 8px;
    padding: 18px 24px 18px 40px;
    position: relative;
}
.benefit_item .num {
    position: absolute;
    left: -20px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-size: var(--txt-lg-2);
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--main-color);
    color: #fff;
}

/* 색상 */
.benefit_item {
    background: var(--c-black-8);
    color: #333;
    border: 1px solid var(--c-black-5);
}
.benefit_item .num {
    background: var(--main-color);
    color: #fff;
}

/* 텍스트 */
.benefit_item strong {
    display: block;
    font-size: var(--txt-lg-2);
    margin-bottom: 6px;
}
.benefit_item p {
    font-size: var(--txt-md-1);
    line-height: 1.6;
}

/* 반응형 */
@media (max-width: 1024px) {
    .benefit_wrap {
        flex-direction: column;
        gap: 20px;
    }
    .benefit_left {
        flex: none;
    }
    .benefit_right {
      padding-left: 30px;
    }
    .diamond {
      width: 200px;
      height: 200px;
    }
    .benefit_item .num {
      position: absolute;
      left: -15px;
      width: 30px;
      height: 30px;
    }
}

@media (max-width: 640px) {
    .benefit_item {
        padding: 16px 16px 16px 30px;
    }

}


/* SEP - TIMELINE */
/* HISTORY TIMELINE */
.history_timeline {
    /* padding: 0 0 30px 0; */
    margin: 30px auto;
}

.history_timeline .timeline_bar {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    gap: 20px;
}

.history_timeline .timeline_bar::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 2px;
    background: var(--main-color);
    transform: translateY(-50%);
    border-radius: 10px;
}

.history_timeline .timeline_item {
    position: relative;
    flex: 1;
    text-align: center;
    padding: 70px 0;
}

.history_timeline .timeline_item .year {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    background: var(--main-color);
    color: #fff;
    padding: 8px 20px;
    font-size: var(--txt-lg);
    font-weight: 600;
    border-radius: 999px;
    white-space: nowrap;
}

.history_timeline .timeline_item .dot {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 10px;
    height: 10px;
    background: var(--main-color);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 0 5px var(--c-black-6);
}

.history_timeline .timeline_item .desc {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 220px;
    max-width: 100%;
    font-size: var(--txt-md-1);
    font-weight: 400;
    line-height: 1.5;
    color: var(--c-black-2);
    word-break: keep-all;
}

@media (max-width: 800px) {
    .history_timeline .timeline_bar {
        flex-direction: column;
        /* gap: 32px; */
        /* padding-left: 30px; */
    }

    .history_timeline .timeline_bar::before {
        left: 14px;
        right: auto;
        top: 0;
        bottom: 0;
        width: 2px;
        height: auto;
        transform: none;
    }

    .history_timeline .timeline_item {
        text-align: left;
        padding: 0 0 0 40px;
        min-height: 80px;
    }

    .history_timeline .timeline_item .year {
        position: static;
        transform: none;
        display: inline-block;
        margin-bottom: 6px;
        font-size: var(--txt-sm);
    }

    .history_timeline .timeline_item .dot {
        left: 14px;
        top: 20px;
        transform: translate(-50%, -50%);
    }

    .history_timeline .timeline_item .desc {
        position: static;
        transform: none;
        width: 100%;
    }
}

@media (max-width: 640px) {
    .history_timeline {
        padding: 0px 10px;
    }

    .history_timeline .timeline_item {
        padding-left: 36px;
    }

    .history_timeline .timeline_bar::before {
        left: 12px;
    }

    .history_timeline .timeline_item .dot {
        left: 12px;
    }
}

/* HISTORY TIMELINE 6 */
.history_timeline.history_timeline_6 .timeline_item {
    padding: 80px 0;
}

.history_timeline.history_timeline_6 .timeline_item .desc {
    width: 200px;
}

@media (max-width: 800px) {
    .history_timeline.history_timeline_6 .timeline_item {
        padding: 0 0 0 40px;
    }
}


/* sep - 수료기관 및 기업 */

/* 전체 섹션 배경 및 패딩 */
.logo-section {
    /* padding: 60px 20px; */
    /* width: 100%; */
}

/* 로고 그리드 컨테이너 */
.logo-container {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 10px;
    align-items: center;
    justify-items: center;
}

/* 개별 로고 아이템 박스 */
.logo-item {
    width: 100%;
    height: 100px; /* 로고 높이 통일 */
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 20px;
    border: 1px var(--c-black-6) solid;
}

/* 실제 이미지 스타일 (해상도 및 크기) */
.logo-item img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain; /* 이미지 비율 유지하며 박스에 맞춤 */
    
    /* 해상도 선명하게 하기 위한 팁 */
    image-rendering: -webkit-optimize-contrast; 
    
    /* 호버 효과 (선택 사항) */
    transition: transform 0.2s ease-in-out;
}


/* --- 반응형 설정 --- */

/* 태블릿 (1024px 이하): 한 줄에 4개 */
@media (max-width: 1024px) {
    .logo-container {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* 모바일 (768px 이하): 한 줄에 3개 */
@media (max-width: 768px) {
    .logo-container {
        grid-template-columns: repeat(3, 1fr);
        /* row-gap: 20px; */
    }
    .logo-item {
        height: 60px;
        padding: 10px 20px;
    }
}

/* 초소형 모바일 (480px 이하): 한 줄에 2개 */
@media (max-width: 480px) {
    .logo-container {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* 통계 영역 */
.stats_wrap {
    width: 100%;
    display: flex;
    justify-content: center;
}

.stats_wrap .stats_inner {
    max-width: var(--web-width);
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 80px;
    padding: 40px 20px;
}

/* 사람 수 */
.stats_wrap .stats_people {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.stats_wrap .people_icon {
    width: 70px;
    height: 180px;
    background: var(--main-color);
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 128'%3E%3Ccircle cx='32' cy='12' r='12'/%3E%3Crect x='24' y='28' width='16' height='40'/%3E%3Crect x='16' y='68' width='12' height='44'/%3E%3Crect x='36' y='68' width='12' height='44'/%3E%3C/svg%3E") center / contain no-repeat;
}

.stats_wrap .people_count {
    margin-top: 12px;
    font-size: var(--txt-4xl);
    font-weight: 700;
    color: var(--main-color);
}

/* 도넛 차트 */
.stats_wrap .stats_chart {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.stats_wrap .donut {
    position: relative;
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: conic-gradient(
        var(--sub-color-2) 0% 68%,
        #f6b37a 68% 100%
    );
}

.stats_wrap .donut::after {
    content: '';
    position: absolute;
    inset: 45px;
    background: #fff;
    border-radius: 50%;
}

.stats_wrap .donut_label {
    position: absolute;
    font-size: var(--txt-lg);
    font-weight: 700;
    color: #fff;
    z-index: 2;
}

.stats_wrap .donut_68 {
    bottom: 25px;
    right: 30px;
}

.stats_wrap .donut_32 {
    top: 25px;
    left: 30px;
}

/* 범례 */
.stats_wrap .donut_legend {
    margin-top: 20px;
    display: flex;
    gap: 20px;
}

.stats_wrap .legend_item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--txt-md-1);
}

.stats_wrap .legend_color {
    width: 16px;
    height: 16px;
    border-radius: 3px;
}

.stats_wrap .type_finance {
    background: var(--sub-color-2);
}

.stats_wrap .type_general {
    background: #f6b37a;
}

/* 반응형 */
@media (max-width: 640px) {
    .stats_wrap .stats_inner {
        flex-direction: column;
        gap: 40px;
    }
    .stats_wrap .people_icon {
      width: 70px;
      height: 100px;
    }
    .stats_wrap .people_count {
      margin-top: 0px;
    }
}


/* 교육일정 */
.edu_schedule {
    width: 100%;
}

.edu_schedule .edu_schedule_grid {
    width: 100%;
    border-top: 2px solid var(--main-color);
    border-bottom: 1px solid var(--c-black-5);
}

.edu_schedule .edu_row {
    display: grid;
    grid-template-columns: 130px repeat(7, 1fr);
}

.edu_schedule .edu_cell {
    padding: 14px 10px;
    text-align: center;
    color: var(--c-black-2);
    border-bottom: 1px solid var(--c-black-5);
    font-size: var(--txt-md-1);
}

.edu_schedule .edu_row_head .edu_cell {
    padding: 10px 10px 12px;
    font-weight: 500;
    color: var(--main-color);
    border-bottom: 2px solid var(--main-color);
    font-size: var(--txt-md-1);
}

.edu_schedule .edu_col_type {
    font-weight: 500;
    font-size: var(--txt-md-1);
}

.edu_schedule .edu_row_online .edu_cell {
    padding: 18px 10px;
}

.edu_schedule .edu_circle {
    width: 60px;
    height: 60px;
    border-radius: 999px;
    background: var(--main-color);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--txt-md);
    font-weight: 500;
    line-height: 1.1;
}

.edu_schedule .edu_row_note .edu_cell {
    padding: 10px 10px;
    border-bottom: 1px solid var(--c-black-5);
    color: var(--c-black-3);
}

.edu_schedule .edu_span_7 {
    grid-column: 2 / span 7;
    text-align: center;
}

.edu_schedule .edu_row_campus .edu_cell {
    padding: 16px 10px;
}

.edu_schedule .edu_span_6 {
    grid-column: 2 / span 6;
    text-align: center;
    line-height: 1.55;
}

.edu_schedule .edu_cell_right {
    line-height: 1.45;
}

@media (max-width: 980px) {
    .edu_schedule {
        overflow-x: auto;
    }

    .edu_schedule .edu_schedule_grid {
        min-width: 980px;
    }
}


.edu_info {
    max-width: 1280px;
    margin: 0 auto;
}

.edu_info_list {
    list-style: none;
    padding: 0;
    margin: 0;
    border-top: 2px solid var(--main-color);
    border-bottom: 1px solid var(--c-black-1);
    display: flex;
    flex-wrap: wrap;
}

.edu_info_list > li {
    display: flex;
    gap: 16px;
    padding: 10px 0;
    border-bottom: 1px dotted var(--c-black-5);
    width: 50%;
}

.edu_info_list > li > strong {
    min-width: 120px;
    color: var(--main-color);
    font-weight: 600;
}

/* EDUCATION INFO */
.edu_info .edu_info_list > li > strong {
    position: relative;
    padding-left: 14px;
    /* color: var(--main-color); */
    font-weight: 600;
    font-size: var(--txt-lg);
}

.edu_info .edu_info_list > li > strong::before {
    content: '';
    position: absolute;
    left: 0;
    top: 11px;
    width: 4px;
    height: 4px;
    background: var(--main-color);
    border-radius: 50%;
}

.edu_info_list > li > span {
    color: var(--c-black-2);
}

.edu_info_list .sub_list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.edu_info_list .sub_list li {
    position: relative;
    padding-left: 10px;
    margin-bottom: 4px;
    color: var(--c-black-2);
}

.edu_info_list .sub_list li::before {
    content: "-";
    position: absolute;
    left: 0;
}
@media (max-width: 1024px) {
    .edu_info_list > li {
        width: 100%;
    }
  }
@media (max-width: 640px) {
    .edu_info_list > li {
        flex-direction: column;
        gap: 6px;
    }

    .edu_info_list > li > strong {
        min-width: auto;
    }
}


/* THEME SECTION */

.theme_section .theme_grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
}

.theme_section .theme_item {
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 10px 20px rgba(0,0,0,0.08);
    overflow: hidden;
}

.theme_section .theme_head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 24px;
    background: linear-gradient( 135deg, var(--main-color), var(--main-color-2));
    color: #fff;
}

.theme_section .theme_no {
    font-weight: 700;
    font-size: var(--txt-lg-2);
    white-space: nowrap;
}

.theme_section .theme_title {
    font-size: var(--txt-lg-2);
    font-weight: 400;
}

.theme_section .theme_body {
    padding: 24px;
    font-size: var(--txt-md-1);
    line-height: 1.6;
    color: var(--c-black-2);
}

/* RESPONSIVE */
@media (max-width: 980px) {
    .theme_section .theme_grid {
        grid-template-columns: 1fr;
    }
}


/* MINI MBA INTRO */
.minimba_intro {
    max-width: var(--web-width);
    margin: 50px auto;
    /* padding: 0 20px; */
    display: grid;
    gap: 40px;
}
  
.minimba_intro .intro_grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
}
.minimba_intro.col-1 .intro_grid {
    grid-template-columns: repeat(1, 1fr);  
}
.minimba_intro .intro_block {
    background: #fff;
    border-radius: 16px;
    padding: 20px 30px 30px;
    /* box-shadow: 0 10px 30px rgba(0,0,0,0.06); */
    border: 1px solid var(--c-black-5);
}

.minimba_intro .intro_block.conclusion {
    border-left: 6px solid var(--main-color);
}

.minimba_intro .block_title {
    font-size: var(--txt-xl);
    font-weight: 600;
    color: var(--main-color);
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px dotted var(--c-black-5);
}

.minimba_intro .block_list {
    list-style: none;
    padding: 0;
    /* margin: 0 0 20px 0; */
    display: grid;
    gap: 10px;
}

.minimba_intro .block_list li {
    position: relative;
    padding-left: 14px;
    font-size: var(--txt-md-1);
    line-height: 1.6;
    color: var(--c-black-2);
}

.minimba_intro .block_list li::before {
    content: '•';
    position: absolute;
    left: 0;
    top: 0;
    color: var(--main-color);
    font-weight: 700;
}

.minimba_intro .block_list.check li::before {
    content: '–';
}

.minimba_intro .block_emphasis {
    font-size: var(--txt-md-1);
    line-height: 1.6;
    color: var(--c-black-1);
    font-weight: 500;
}

.minimba_intro .block_emphasis.strong {
    font-weight: 700;
    color: var(--main-color);
}

/* RESPONSIVE */
@media (max-width: 900px) {
    .minimba_intro .intro_grid {
        grid-template-columns: 1fr;
    }

    .minimba_intro .intro_block {
        padding: 24px 22px;
    }

    .minimba_intro .block_title {
        font-size: var(--txt-lg-2);
    }
}

/*STEP - 교과과정*/
/* STEPI FOCUS */
.stepi_focus {
    display: grid;
    /* 3열 구조: 좌측텍스트(1fr) - 중앙원(auto) - 우측텍스트(1fr) */
    grid-template-columns: 1fr auto 1fr;
    grid-template-rows: 1fr 1fr;
    grid-template-areas:
        "f  center e1"
        "d  center e2";
    align-items: center;
    gap: 20px 60px; /* 상하 간격 20px, 좌우 간격 60px */
    position: relative;
    margin: 0 auto;
    border: 1px solid var(--c-black-5);
    border-radius: 16px;
    padding: 60px 50px;
    /* min-height: 450px; */
}

/* 중앙 원 배치 */
.stepi_focus .focus_center {
    grid-area: center;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: var(--main-color);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: var(--txt-xl);
    color: #fff;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -1px;
    border: 10px solid var(--c-black-7);
    margin: 0 20px; /* 원 양 옆 여백 */
}

/* 각 아이템 영역 지정 */
.focus_item.f  { grid-area: f; text-align: right; }
.focus_item.d  { grid-area: d; text-align: right; }
.focus_item.e1 { grid-area: e1; text-align: left; }
.focus_item.e2 { grid-area: e2; text-align: left; }

/* 공통 아이템 스타일 (기존 유지) */
.stepi_focus .focus_item b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--main-color);
    color: #fff;
    font-size: var(--txt-lg-2);
    font-weight: 600;
    margin-bottom: 6px;
}

.stepi_focus .focus_item strong {
    font-size: var(--txt-lg);
    font-weight: 600;
    color: var(--main-color);
    margin-left: 10px;
}

.stepi_focus .focus_item p {
    font-size: var(--txt-md-1);
    font-weight: 400;
    line-height: 1.5;
}

/* 반응형 - 태블릿 (1024px 이하) */
@media (max-width: 1024px) {
    .stepi_focus {
        gap: 20px 30px;
        padding: 50px 30px;
    }
    .stepi_focus .focus_center {
        width: 180px;
        height: 180px;
    }
}

/* 반응형 - 모바일 (860px 이하) */
@media (max-width: 860px) {
    .stepi_focus {
        display: flex; /* 모바일은 세로 정렬이므로 flex가 간편 */
        flex-direction: column;
        align-items: center;
        height: auto;
        padding: 40px 20px;
        gap: 30px;
    }

    .stepi_focus .focus_center {
        order: -1; /* 원을 가장 위로 */
        margin: 0 0 10px 0;
    }

    .stepi_focus .focus_item {
        text-align: left !important; /* 모든 텍스트 왼쪽 정렬 */
        width: 100%;
        max-width: 500px;
    }
    
    .stepi_focus .focus_item br {
        display: none; /* 모바일에서 애매한 줄바꿈 제거 */
    }
}

/* 모바일 소형 */
@media (max-width: 480px) {
    .stepi_focus .focus_center {
        width: 160px;
        height: 160px;
        font-size: var(--txt-lg-2);
    }
}


/* PROGRAM SECTION */
.program_section {
    max-width: var(--web-width);
    margin: 0px auto;
    display: grid;
    gap: 32px;
}

.program_section .program_item {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 32px;
    align-items: stretch;
}

.program_section .program_item.reverse {
    direction: rtl;
}
.program_section .program_item.reverse > * {
    direction: ltr;
}

.program_section .program_img img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    display: block;
}

.program_section .program_txt {
    font-size: var(--txt-md-1);
    color: var(--c-black-2);
    background: var(--c-black-8);
    border-radius: 14px;
    padding: 28px 32px;
    min-height: 260px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.program_section .program_label {
    font-size: var(--txt-xl);
    font-weight: 600;
    color: var(--main-color);
    margin-bottom: 6px;
}

.program_section .program_title {
    font-size: var(--txt-xl);
    font-weight: 700;
    margin-bottom: 14px;
    color: var(--c-black-1);
}

.program_section .program_list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0px;
}
.program_section .program_txt p {
  font-size: var(--txt-md-1);
  color: var(--c-black-3);
  font-weight: 500;
  margin-bottom: 10px;
}
.program_section .program_list li {
    position: relative;
    padding-left: 14px;
}

.program_section .program_list li::before {
    content: '•';
    position: absolute;
    left: 0;
    color: var(--main-color);
}

/* RESPONSIVE */
@media (max-width: 860px) {
    .program_section .program_item {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .program_section .program_txt {
      padding: 20px;
      min-height: auto;
    }
}


.member-grid {
    display: grid;
    /* 기본 데스크탑 3단 배열 (이미지와 유사) */
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

/* Group Styling */
.generation-group {
    margin-bottom: 10px;
}

.gen-title {
    font-family: var(--main-font);
    font-size: var(--txt-lg-2);
    color: var(--main-color);
    /* border-bottom: 2px solid var(--main-color); */
    display: inline-block;
    margin-bottom: 10px;
    font-weight: 700;
}

.member-list li {
    display: flex;
    align-items: flex-start;
    margin-bottom: 4px;
    font-size: var(--txt-sm);
}

.name {
    font-size: var(--txt-md-1);
    font-weight: 600;
    min-width: 50px;
    color: var(--c-black-1);
    margin-right: 10px;
}

.job {
    font-size: var(--txt-md-1);
    color: var(--c-black-3);
    word-break: keep-all;
}

/* Responsive */

/* 태블릿 (2열) */
@media (max-width: 1024px) {
    .member-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* 모바일 (1열) */
@media (max-width: 640px) {
    .member-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .gen-title {
        font-size: var(--txt-md);
    }
}


/* 레이아웃 컨테이너 */
.step_container {
    max-width: var(--web-width);
    margin: 0 auto;
    /* padding: 20px 0; */
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 24px;
}

/* 개별 추천사 섹션 */
.recommend_section {
    display: flex;
    gap: 30px;
    padding: 30px;
    border: 1px solid var(--c-black-5);
    align-items: flex-start;
}

.recommend_section:first-child {
    /* border-top: none; */
}

/* 프로필 이미지 영역 */
.recommend_profile {
    flex: 0 0 136px;
}

.profile_img_box {
    width: 136px;
    /* padding: 10px; */
    background-color: #fff;
    /* border: 1px solid #e5e5e5; */
}

.profile_img_box img {
    width: 136px;
    height: auto;
    display: block;
}

/* 컨텐츠 영역 */
.recommend_content {
    flex: 1;
}

.recommend_title {
    font-size: var(--txt-lg-2);
    color: var(--c-black-1);
    font-weight: 600;
}
.recommend_title span {
    font-size: var(--txt-md-1);
    font-weight: 400;
    margin-left: 10px;
}
.recommend_text p {
    font-size: var(--txt-md);
    color: var(--c-black-3);
    line-height: 1.5;
    margin-top: 10px;
    text-align: justify;
    word-break: keep-all;
}

/* 반응형 (Mobile) */
@media (max-width: 900px) {
    .recommend_section {
        flex-direction: column;
        gap: 30px;
        align-items: center;
        text-align: center;
    }

    .recommend_profile {
        flex: 0 0 auto;
        width: 200px;
    }

    .recommend_text p {
        text-align: center;
    }
}


/* 2열 배치를 위한 래퍼 */
.main-wrapper {
    display: flex;
    /* max-width: 1200px; */
    margin: 0 auto;
    gap: 50px;
}

.program-section {
    flex: 1;
    border: 1px solid var(--c-black-5);
    padding: 40px;
    border-radius: 30px;
    cursor: pointer;
}
.program-section:hover {
    border: 1px solid var(--main-color);
}

/* 상단 헤더 영역 (로고 + 타이틀) */
.program-section .header-area {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
    /* border-top: 4px solid #ccc; */ /* 상단 회색 라인 */
    /* padding-top: 15px; */
}

.program-section .header-area .logo-text {
    font-size: var(--txt-8xl);
    font-weight: 900;
    color: var(--main-color); /* 진한 빨간색 */
    line-height: 1;
    margin-right: 15px;
    /* letter-spacing: -2px; */
}

.program-section .header-area  .title-text {
    display: flex;
    flex-direction: column;
    /* margin-bottom: 5px; */
}

.program-section .header-area .title-text .ko {
    font-size: var(--txt-xl);
    font-weight: 700;
    /* margin-bottom: 5px; */
}

.program-section .header-area .title-text .en {
    font-size: var(--txt-md-1);
    font-weight: 600;
    /* letter-spacing: 0.5px; */
}

/* 이미지 영역 */
.program-section .image-area {
    width: 100%;
    margin-bottom: 25px;
}

.program-section .image-area img {
    width: 100%;
    height: 300px;
    display: block;
    border-radius: 16px;
}

/* 설명 텍스트 영역 */
.program-section .info-text {
    font-size: var(--txt-md-1);
    line-height: 1.5;
    text-align: justify;
    word-break: keep-all;
    color: var(--c-black-1);
}
.program-section a.more-link {
    display: block;
    text-align: right;
    color: var(--main-color) !important;
    text-decoration: none;
    font-size: var(--txt-md-1);
    font-weight: 500;
    margin-top: 15px;
}

/* 반응형: 화면이 작아지면 1열로 변경 */
@media (max-width: 900px) {
    .main-wrapper {
      flex-direction: column;
      gap: 24px;
    }
    .program-section {
      padding: 24px;
    }
    .program-section .image-area img {
      height: 250px;
    }
}

.center_wrap {
    position: relative;
    width: 100%;
    /* max-width: 1000px; */
    padding: 40px;
    border: 1px solid var(--c-black-5);
    border-radius: 16px;
    /* background: var(--c-black-8); */
}

/* 중앙 원 디자인 */
.center-circle {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 250px;
    height: 250px;
    border: 10px solid #002c33;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    background: white;
    z-index: 10;
}

.center-circle span {
    color: #c8102e;
    font-size: 3rem;
    font-weight: bold;
    letter-spacing: -1px;
}

/* 그리드 레이아웃 (데스크톱) */
.grid-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px 350px; /* 아이템 간격 */
    align-items: center;
}

.item {
    display: flex;
    flex-direction: column;
}

/* 텍스트 정렬 설정 */
.item-1, .item-3 {align-items: flex-end;text-align: right;}
.item-2, .item-4 { align-items: flex-start; text-align: left; }

/* 라벨 스타일 */
.label {
    padding: 10px 30px;
    border-radius: 25px;
    color: #fff;
    font-size: var(--txt-lg-2);
    font-weight: 600;
    margin-bottom: 15px;
    display: inline-block;
    min-width: 300px;
    text-align: center;
}

.orange { background-color: #f39c12; }
.teal { background-color: #007d8a; }
.green { background-color: #00a651; }
.dark-blue { background-color: #001f24; }

.description {
    font-size: var(--txt-md-1);
    color: var(--c-black-2);
    font-weight: 400;
    line-height: 1.5;
    width: 300px;
    text-align: left;
    padding: 0 20px;
}

/* --- 반응형 처리 --- */

/* 태블릿 및 작은 화면 */
@media (max-width: 1024px) {
  .center_wrap {
    padding: 20px;
  }
    .grid-container {
        gap: 50px 200px;
    }
    .center-circle {
        width: 150px;
        height: 150px;
    }
    .center-circle span { font-size: 2.2rem; }
}

/* 모바일 화면 */
@media (max-width: 800px) {
    .center-circle {
        position: static;
        transform: none;
        margin: 0 auto 40px auto;
    }

    .grid-container {
        display: flex;
        flex-direction: column;
        gap: 30px;
        text-align: center;
    }

    .item {
        /* align-items: center; */
        /* text-align: center; */
    }

    .description {
        max-width: 100%;
    }
}

/*AIMBA 목표 피라미드*/
.pyramid-container {
    display: flex;
    flex-direction: column;
    width: 400px; /* 피라미드 전체 너비 */
    height: 250px; /* 피라미드 전체 높이 */
    /* 전체를 삼각형으로 잘라냄 */
    clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
    background-color: var(--main-color); /* 테두리선 역할을 할 배경색 */
    gap: 2px; /* 층 사이의 얇은 선 두께 */
    margin: 0 auto;
}

.level {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    text-align: center;
    font-weight: 600;
}

/* 상단 빨간색 칸 */
.top-level {
    flex: 1.5; /* 높이 비중 */
    background-color:  var(--main-color);
    color: white;
    padding-top: 30px; /* 텍스트를 아래로 살짝 밀어줌 */
    padding-bottom: 10px;
    font-size: var(--txt-lg);
    line-height: 1.3;
}

/* 하단 흰색 칸들 */
.white-level {
    flex: 1; /* 높이 비중 */
    background-color: white;
    color: #333;
    font-size: var(--txt-md-1);
    /* 양옆에 빨간 테두리 효과를 주기 위해 마진 설정 */
    margin: 0 2px;
}

/* 마지막 칸은 아래 마진 제외 */
.level:last-child {
    margin-bottom: 2px;
}

.cont_wrap {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}
.cont_left {
    width: 50%;
}
.cont_right {
    width: 50%;
}
@media (max-width: 800px) {
    .cont_wrap {
        flex-wrap: wrap;
    }
    .cont_left {
        width: 100%;
    }
    .cont_right {
        width: 100%;
    }
}

/* 동아리 */
.club {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.club .box {
  border: 1px solid var(--c-black-5);
  padding: 1.5rem 2rem;
}
.club .box h5 {
    font-size: var(--txt-lg-2);
    font-weight: 500;
    /* margin: 0 0 0.6rem; */
    color: var(--c-black-1);
}
.club .box h6 {
    font-size: var(--txt-lg);
    font-weight: 400;
    /* margin: 0 0 0.6rem; */
    color: var(--c-black-1);
    margin-top: 10px;
}
.club.cols-1 {
  grid-template-columns: repeat(1, 1fr);
}
.club .box p {
   font-size: var(--txt-md-1);
   line-height: 1.5;
   color: var(--c-black-2);
   text-align: justify;
   margin-top: 0.6rem;
}
.club .top {
  border-bottom: 1px dotted var(--c-black-5);
  padding-bottom: 20px;
  margin-bottom: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.club .top .tit_area {
  width: calc(100% - 80px);
}
.club .top .img_area {
  width: 80px;
}
.club .top .img_area img {
  width: 100%;
  max-width: fit-content;
}
.club a.course_btn {
  margin-top: 10px;
  display: inline-block;
}

@media (max-width: 768px) {
    .club {
          grid-template-columns: repeat(1, 1fr);
    }
    .club .box {
      padding: 1.5rem;
    }
}

/*학사력*/
.day_red {
  background: #fff2eb;
  color: #ff0000;
}

table.schedule {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  position: relative;
}
.fixed_thead {
  position: sticky;
  top: 0px;
  z-index: 999;
  will-change: transform;
}
table.schedule tr th {
  font-size: var(--txt-md);
  padding: 10px;
  line-height: 1.3em;
}
table.schedule thead th {
  position: sticky;
  top: 0;
  z-index: 10;
}
table.schedule td {
  font-size: var(--txt-md);
  padding: 10px;
  line-height: 1.3em;
  height: 65px;
}
table.schedule td .red {
  font-size: var(--txt-xs);
  line-height: 1em;
  letter-spacing: -1px;
  display: inline-block;
}

.tb_scroll_schedule{position:relative;overflow-x:auto;overflow-y:visible;}

table.schedule{width:100%;border-collapse:collapse;table-layout:fixed;}

.schedule_fixed_thead {
    position: fixed;
    top: 0;
    z-index: 9999;
    background: #fff;
    pointer-events: none;
}

.schedule_fixed_thead th {
    background: #f9f9f9;
}

table.schedule tbody tr.month_start > * {
    border-top: 1px solid #666;
}

footer .footer_sns a.gotoLinkedin {
    background: url(/sites/sbs/images/common/footer_linkedin.png) no-repeat center;
}

/* sitemap */
#_JW_sitemap_bass li ._stMpWrap .stMp_Title {
    font-size: var(--txt-2xl);
    color: var(--c-black-1);
    font-family: 'psb';
}
#_JW_sitemap_bass li ._stMpWrap .stMp_Title:before {
    background: var(--main-color);
}

#_JW_sitemap_bass li ._stMpWrap > ul > li > a {
    font-size: var(--txt-xl);
    color: var(--c-black-1);
    font-family: 'pr';
}
#_JW_sitemap_bass li ._stMpWrap > ul > li > ul > li {
    font-size: var(--txt-md-1);
    color: var(--c-black-3);
}
#_JW_sitemap_bass li ._stMpWrap > ul > li > ul > li:before {
    background: var(--main-color);
}
@media (max-width: 767px) {
    #_JW_sitemap_bass li ._stMpWrap .stMp_Title {
        margin-right: 20px;
        width: 110px;
    }
      #_JW_sitemap_bass li ._stMpWrap > ul {
        width: calc(100% - 130px);
		padding-bottom: 0px;
    }
      #_JW_sitemap_bass li ._stMpWrap .stMp_Title:before {
        width: 110px;
        height: 5px;
    }
      #_JW_sitemap_bass > ul > li {
        margin-bottom: 30px;
    }
}
/*4뎁스 탭*/
.tab_2 {
    margin-top: 20px;
}
.tab_div {
    margin-bottom: 0px !important; 
}

.tab_div > ul > li {
    border-radius: 5px;
}
.tab_div > ul > li._active, .tab_div > ul > li:hover {
    background: #fff !important;
    border-color: #fff !important;
  border: 1px solid var(--main-color) !important;
}
.tab_div > ul > li._active a, .tab_div > ul > li:hover a {
    color: var(--main-color) !important;
}

/*게시판 */
.srch_box {
    background: #fff !important;
    padding: 0 !important;
    margin-bottom: 30px !important;
}
.search ._button input[type="submit"] {
    background-color: var(--main-color) !important;
}
.srch_box .board-serch input[type="submit"] {
    /*background: url(/Web-home/fnct/bbs/bbs_common/images/btn-search-find.png) no-repeat center !important;*/
}
.boardWrap .notice-title {
    color: var(--main-color) !important;
    background: #f7e7e7 !important;
    font-family: 'pr' !important;
}
.board-table tbody td.td-title a strong {
        font-family: 'pr' !important;
}
.boardWrap .notice, .boardWrap .notice a {
    color: var(--c-black-2) !important;
}
.boardWrap table td a:hover{color:var(--main-color) !important;}

/***** Tab *****/
.tabmenu ul{margin-bottom: 30px !important;}
.tabmenu ul:after{content:'';background: var(--main-color) !important;}
.tabmenu ul li a{background-color: #fff !important;padding: 12px 35px !important;font-family: 'pr';border-top-left-radius: 5px;border-top-right-radius: 5px;}
.tabmenu ul li a.on{border: 1px solid var(--main-color) !important;color: var(--main-color) !important;border-bottom:1px solid #fff;position:relative;z-index: 1;background-color: #fff;}

.tag a.on, .tag a:hover {
    color: var(--main-color) !important;
}

/*앨범 게시판*/
.albumWrap .conts strong.title {
    white-space: inherit;
  	font-size: 20px;
    font-family: 'pr';
}