@charset "utf-8";
:root {
  --d: 700ms;
  --e: cubic-bezier(0.19, 1, 0.22, 1);
}
/**************************************************************/
/**************************************************************/
/************************ sub 서브페이지 **********************/
/**************************************************************/
/**************************************************************/
.sub_tit{
    display: flex;
    gap: 8px;
    margin-bottom: 1rem;
    align-items: center;
}
.sub_tit h3{
    font-size: var(--txt-xl);
    font-weight: 600;
}
.sub_tit span{
    font-size: var(--txt-md-1);
    color: var(--c-black-4);
}
p.caption{
    line-height: 150%;
    color: var(--c-black-2);
}
/*------------about kuul - 101 introduction-------------*/
.introduction_wrap{
    display: flex;
    gap: 50px;
    align-items: center;
}
.introduction_wrap .left_area{
    width: 70%;
}
.introduction_wrap .left_area h2{
    font-size: var(--txt-3xl-2);
    font-family: var(--sub-font);
    margin-bottom: 1rem;
    font-weight: 600;
}
.introduction_wrap .left_area p{
    line-height: 160%;
    font-size: var(--txt-md-1);
}
.introduction_wrap .right_area{
    width: 30%;
    border-radius: var(--radius-all-xxs);
    overflow: hidden;
    display: flex;
    min-width: 230px;
}
.introduction_wrap .right_area img{
    width: 100%;
    height: auto;
    object-fit: cover;
}
.department_wrap{
    text-align: center;
    position: relative;
}
.department_wrap .dept_title{
    font-size: var(--txt-xl);
    margin-bottom: 4rem;
    position: relative;
    border: 1px solid var(--c-black-5);
    padding: 1.5rem;
    border-radius: var(--radius-all-xxs);
    font-weight: 600;
}

.department_wrap .dept_branches{
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    position: relative;
}
.department_wrap .dept_branches::before{
    content: '';
    position: absolute;
    top: -32px;
    left: 15.8%;
    right: 15.8%;
    height: 1px;
    background: var(--c-black-5);
}
.department_wrap .dept_box{
    flex: 1;
    border-radius: var(--radius-all-xxs);
    padding: 1.5rem;
    position: relative;
    border: 1px solid var(--c-black-5);
    align-content: center;
    background-color: #fff;
}
.department_wrap .dept_box::before{
    content: '';
    position: absolute;
    top: -32px;
    left: 50%;
    width: 1px;
    height: 32px;
    background: var(--c-black-5);
    transform: translateX(-50%);
}
.department_wrap .dept_box:nth-of-type(2)::before{
    top: -64px;
    height: 64px;
}
.department_wrap .dept_box h3{
    font-size: var(--txt-lg-2);
    font-weight: 600;
    margin-bottom: 0.5rem;
}
.department_wrap .dept_box .eng{
    font-size: var(--txt-md);
    color: var(--c-black-4);
    font-weight: 400;
}
.department_wrap .dept_box p{
    font-size: var(--txt-md);
    line-height: 140%;
    width: 60%;
    margin: 0 auto;
}

/*------------about kuul - 102 network-------------*/
.network_wrap .img_area{
    width: 100%;
    height: auto;
}
.network_wrap .img_area img{
    width: 100%;
}


/*------------about kuul - 103 activity-------------*/
.activity_wrap{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}
.activity_wrap .activity_box{
    display: flex;
    flex-direction: column;
    border-radius: var(--radius-all-xxs);
    overflow: hidden;
}
.activity_wrap .activity_box .txt_area{
    padding: 24px;
    background-color: var(--c-black-8);
}
.activity_wrap .activity_box .txt_area .num{
    font-size: var(--txt-lg);
    color: var(--c-black-4);
    font-weight: 600;
}
.activity_wrap .activity_box .txt_area .tit{
    font-size: var(--txt-lg-2);
    font-weight: 600;
    margin: 12px 0 8px;
}
.activity_wrap .activity_box .txt_area .txt{
    color: var(--c-black-2);
    line-height: 140%;
}
.activity_wrap .activity_box .img_area{
    max-height: 200px;
    flex: 0 1 auto;
}
.activity_wrap .activity_box .img_area img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/*--------about kuul - 104 contact us----------*/
.map_wrap{
    position:relative;
    width:100%;
    margin:auto;
    aspect-ratio:7/3;
}
.map_wrap iframe{
    position:absolute; 
    inset:0;
    width:100%;
    height:100%;
    border:0;
}
.map-bubble{
  position:absolute;
  left:50%;
  top:40%;
  transform:translate(-50%,-100%);
  background:#fff;
  text-decoration:none;
  border:1px solid rgba(0,0,0,.15);
  border-radius:10px;
  padding:10px 12px;
  box-shadow:0 10px 24px rgba(0,0,0,.18);
  pointer-events:none;
}
.map-bubble::after{
  content:"";
  position:absolute;
  left:50%; bottom:-16px;
  transform:translateX(-50%);
  border:8px solid transparent;
  border-top-color:#fff;
  filter:drop-shadow(0 2px 1px rgba(0,0,0,.08));
}

.info_wrap{
    background: var(--c-black-8);
    padding: 2.5rem;
    display: flex;
    margin: 0 auto;
    border-radius: var(--radius-all-xxs);
}
.info_wrap .info_left{
    flex: 0 0 200px;
    font-size: var(--txt-3xl-2);
    font-weight: 600;
}
.info_wrap .info_right{
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.info_wrap .info_right .info_item{
    display: flex;
    
}
.info_wrap .info_right .info_item .label{
    position: relative;
    flex: 0 0 160px;
    font-size: var(--txt-lg-2);
    font-weight: 600;
    letter-spacing: -0.02em;
}
/* .info_wrap .info_right .info_item .label::before{
    content: '';
    position: absolute;
    left: 0px;
    top: 11px;
    transform: translateY(-50%);
    width: 2px;
    height: 16px;
    background: var(--c-black-1);
} */
.info_wrap .info_right .info_item .text{
    flex: 1;
    font-size: var(--txt-md-1);
    line-height: 150%;
    color: var(--c-black-2);
    display: flex;
    gap: 1rem;
}

.info_wrap .info_right .info_item .text .em{
    font-weight: 600;
    color: var(--c-black-1);
}
.info_wrap .info_right .info_item .text .item{
  display: flex;
  gap: 8px;
}
/*---people - greetings---*/
.greeting_wrap {
  display: flex;
  gap: 5rem;
  align-items: flex-start;
  border-bottom: 1px solid var(--c-black-6);
  padding-bottom: 4rem;
}

.greeting_wrap .img_area {
  flex: 1;
  min-width: 400px;
  height: auto;
  position: relative;
}
.greeting_wrap .img_area img{
    width: 100%;
    height: auto;

}
.greeting_wrap .img_area::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--c-black-7);
  z-index: -1;
    width: 100%;
    height: 100%;
    left: 28px;
    top: 28px;
}

.greeting_wrap .txt_area {
  flex: 3;
  margin-top: 32px;
}
.greeting_wrap .title {
  font-size: var(--txt-4xl);
  font-weight: 600;
  margin-bottom: 1rem;
  font-family: var(--sub-font);
}
.greeting_wrap .content{
    display: flex;
    flex-direction: column;
    gap: 1rem;
    text-align: justify;
}
.greeting_wrap .content p {
  font-size: var(--txt-md);
  color: var(--c-black-2);
  line-height: 150%;
}

.greeting_wrap .sign_area {
  margin-top: 2rem;
}
.greeting_wrap .prof_info {
  font-size: var(--txt-md-1);
  color: var(--c-black-4);
  margin-bottom: 1rem;
  font-weight: 500;
}
.greeting_wrap .prof_info .name{
    color: var(--c-black-1);
    font-size: var(--txt-xl);
    font-weight: 600;
    margin-top: 4px;
}
.greeting_wrap .signature {
    float: right;
    width: 180px;
    height: auto;
}
.greeting_wrap .signature img{
    width: 100%;
    height: auto;
}

.professor_wrap{
    display: flex;
    gap: 50px;
    margin-top: 4rem;
}
.prof_card{
    position: relative;
    flex: 1;
    border: 1px solid var(--c-black-6);
    /* background: var(--c-black-8); */
    padding: 2rem;
}
.prof_card .top_area{
    position: relative;
}
.prof_card .img_area{
    position: relative;
    width: 328px;
    height: 420px;
    border: 1px solid var(--c-black-6);
}
.prof_card img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.prof_card .info_area{
    position: absolute;
    width: 330px;
    padding: 2rem;
    right: 0;
    top: 70%;
    font-weight: 600;
    background: #fff;
    border: 1px solid var(--c-black-7);
}
.btn_area{
  text-align: right;
  margin-top: 1rem;
}
.prof_card .info_area .prof_title{
    font-size: var(--txt-xl);
    font-family: var(--sub-font);
}
.prof_card .info_area .prof_name{
    font-size: var(--txt-3xl-2);
    font-family: var(--sub-font);
}
.prof_card .info_area .prof_position{
    font-size: var(--txt-lg);
    margin-top: 8px;
    font-weight: 500;
}
.professor_wrap .profile{
    font-size: var(--txt-md-1);
    margin-top: 4rem;
    min-height: 158px;
}
.profile .prof_line{
    display: flex;
    gap: 0.5rem;
    align-items: center;
    margin-top: 2px;
}
.profile .prof_line .label{
    flex: 0 0 40px;
    color: var(--main-color);
    font-weight: 500;
}
.profile .prof_line .text{
    flex: 1;
}
.professor_wrap hr{
  margin-top: 2rem;
}
.professor_wrap .career{
  margin-top: 1.6rem;
}
.professor_wrap .career h3{
    font-size: var(--txt-2xl);
    font-family: var(--sub-font);
    margin-bottom: 8px;
    font-weight: 600;
}
.professor_wrap .career li{
    display: grid;
    grid-template-columns: 140px 1fr;
    line-height: 150%;
    font-size: var(--txt-md);
}
.professor_wrap .career .year{
    font-weight: 500;
    color: var(--c-black-4);
    letter-spacing: 0.02rem;
    font-variant-numeric: tabular-nums;
}
.professor_wrap .career .desc{
    color: var(--c-black-2);
}
/* professor view page */
/* ===== 교수 상세 페이지 전체 ===== */

.prof_view .prof_card{
   display:flex;
    padding: 0;
    border: 0;
    margin-bottom: 3rem;
}
.prof_view .prof_card .left_area{
  position: relative;
}
.prof_view .prof_card .left_area .img_area {
    min-width: 270px;
    width: auto;
    height: auto;
}
.prof_view .prof_card .left_area .img_area img {
  aspect-ratio: 3 / 4;
}
.prof_view .prof_card .left_area .info_area{
    position: absolute;
    right: -97%;
    top: 66%;
}
.prof_view .prof_card .left_area .info_area h2.prof_name{
    margin-left: 0;
    text-align: center;
    font-weight: 600;
    font-size: var(--txt-xl);
    margin-bottom: 0;
}

.prof_view .prof_card .right_area{
  width: 100%;
    padding: 2rem;
    background: var(--c-black-8);
}
.prof_view .prof_card .right_area .profile{
  display: flex;
  gap: 1rem;
}
.prof_view .prof_card .right_area .prof_l{
    flex:1;
}
.prof_view .prof_card .right_area .prof_r{
    flex: 2;
}
.prof_view .prof_card .right_area .prof_l{
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: var(--txt-md);
}
.prof_view .prof_card .right_area .prof_name{
    margin: 0 0 12px;
}
.prof_view .prof_card .right_area .prof_name .prof {
  font-weight: 500;
  font-size: var(--txt-lg);
  color: var(--c-black-3);
}
.prof_view .prof_card .right_area .prof_name .eng {
  margin-left: 4px;
  font-weight: 500;
  font-size: var(--txt-lg);
  letter-spacing: -0.05em;
}
.prof_view .prof_card .right_area .prof_l .prof_line{
  margin-top: 0;
  align-items: center;
}
.prof_view .prof_card .right_area .prof_r p {
  color: var(--c-black-2);
  font-size: 1rem;
  line-height: 150%;
  text-align: justify;
}


.prof_view .prof_bottoms {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.prof_view .prof_bottom.half {
  display: flex;
  gap: 40px;
}
.prof_view .prof_bottom.half .col {
  flex: 1;
}

.prof_view .sec_title {
  font-size: var(--txt-lg);
  font-weight: 600;
  margin: 2rem 0 0.8rem;
  line-height: 1.0;
  padding-left: 12px;
  position: relative;
}
.prof_view .sec_title::before{
    content:'';
    position: absolute;
    width: 4px;
    height: 4px;
    background: var(--main-color);
    top: 6px;
    left:0;
}
.prof_view .prof_bottom ul {
  list-style: none;
  padding: 0;
}
.prof_view .prof_bottom li {
  display: flex;
  line-height: 150%;

}
.prof_view .prof_bottom .year {
  flex: 0 0 160px; /* 연도 고정폭 */
  font-weight: 500;
  color: var(--c-black-4);
  font-variant-numeric: tabular-nums;
}
.prof_view .prof_bottom .desc {
  flex: 5;
  color: var(--c-black-2);
}
.prof_view .prof_bottom .gray{
  flex: 1;
  color: var(--c-black-4);
  margin-left: 0.3rem;
}

/*--------research----------*/
.card_wrap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 1rem;
  padding: 1rem;
  margin: 0 auto;
}
.card_wrap .card {
  position: relative;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  padding: 3rem;
  width: 100%;
  text-align: center;
  color: #fff;
}
.card_wrap .card:before {
content: '';
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform 0.4s ease;
  pointer-events: none;
}
.card_wrap .card:after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  transition: opacity 0.3s ease;
  pointer-events: none;
}
.card_wrap .card:nth-child(1):before {
  background-image: url(../images/sub/smartcity_bg.jpg);
  background-color: rgb(36 79 156 / 50%);
  background-blend-mode: overlay;
}
.card_wrap .card:nth-child(2):before {
  background-image: url(../images/sub/regeneration_bg.jpg);
  background-color: rgb(212 87 37 / 50%);
  background-blend-mode: overlay;
}
.card_wrap .card:nth-child(3):before {
  background-image: url(../images/sub/development_bg.jpg);
  background-color: rgb(161 141 39 / 50%);
  background-blend-mode: overlay;
}
.card_wrap .card:nth-child(4):before {
  background-image: url(../images/sub/climate_bg.jpg);
  background-color: rgb(10 116 7 / 50%);
  background-blend-mode: overlay;
}
.card_wrap .card:nth-child(5):before {
  background-image: url(../images/sub/residential_bg.jpg);
  background-color: rgb(166 70 208 / 50%);
  background-blend-mode: overlay;
}
.card_wrap .card:nth-child(6):before {
  background-image: url(../images/sub/overseas_bg.jpg);
  background-color: rgb(42 159 202 / 50%);
  background-blend-mode: overlay;
}

.card_wrap .card .content {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  z-index: 1;
}

.card_wrap .card .content .title {
  font-size: var(--txt-2xl);
  font-weight: 600;
  line-height: 1.3;
}


.research_wrap .img_wrap{
    position: relative;
    width: 100%;
    height: 500px;
    border: 0;
    border-radius: var(--radius-all-xxs);
    overflow: hidden;
    padding: 0;
}
.research_wrap .img_wrap .img_bg{
    position: absolute;
    inset: 0;;
}
.research_wrap .img_bg.smartcity{
    background: url(../images/sub/smartcity_bg.jpg) center/cover no-repeat;
}
.research_wrap .img_bg.regeneration{
    background: url(../images/sub/regeneration_bg.jpg) center/cover no-repeat;
    top: -20%;
}
.research_wrap .img_bg.development{
    background: url(../images/sub/development_bg.jpg) center/cover no-repeat;
}
.research_wrap .img_bg.climate{
    background: url(../images/sub/climate_bg.jpg) center/cover no-repeat;
}
.research_wrap .img_bg.residential{
    background: url(../images/sub/residential_bg.jpg) center/cover no-repeat;
}
.research_wrap .img_bg.overseas{
    background: url(../images/sub/overseas_bg.jpg) center/cover no-repeat;
    top: -20%;
}
.research_wrap .img_bg.masterplan{
    background: url(../images/sub/masterplan_bg.jpg) center/cover no-repeat;
}
.research_wrap .img_wrap .frame_box{
   display: flex;
    flex-direction: column;
    width: clamp(300px, 28vw, 400px);
    margin: 0 auto;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    box-shadow: 0 8px 22px rgba(0,0,0,.2);
}
.research_wrap .img_wrap .frame_box .frame{
   aspect-ratio: 3/2;    
    border: 20px solid #fff;
    border-radius: 5px 5px 0 0;
    
}
.research_wrap .img_wrap .frame_box .caption{
  width: 100%;
  background:#fff;
  border-radius: 0 0 5px 5px;
  padding: 0.5rem 1rem 2rem;
    margin-top: -1px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}
.research_wrap .img_wrap .caption .tit{
  margin:0 0 .35em 0;
  font-weight: 600;
  font-family: var(--sub-font);
  font-size: var(--txt-lg-2);
}
.research_wrap .img_wrap .caption p{
  margin:0;
  line-height: 140%;
  font-size: var(--txt-md);
  color:var(--c-black-2);
  text-wrap: balance;
}

/*-------research_view-------*/
.research_view_wrap{
  display: flex;
  gap: 50px;
  align-items: flex-start;
}
.research_view_wrap .researchSwiper {
  width: 50%;
  position: relative;
}

.research_view_wrap .swiper-slide{
  width: 100%;
  height: 450px;
  overflow: hidden;
}
.research_view_wrap .swiper-slide img {
  width: 100%;
  height: 100%;
  margin: 0 auto;
  object-fit: contain;
  display: block;
}
.research_view_wrap .researchSwiper .swiper-pagination{
    position: static !important;
    margin-top: 1rem;
    text-align: center;
}

.research_view_wrap .researchSwiper .swiper-pagination-bullet {
  border-radius: 50%;
  background: #ccc;
  opacity: .7;
}

.research_view_wrap .researchSwiper .swiper-pagination-bullet-active {
  background: var(--main-color) !important;
  opacity: 1;
}
.research_view_wrap .research_info{
  width: 50%;
}
.research_view_wrap .research_info .title{
  font-size: var(--txt-3xl);
  font-weight: 600;
  margin-bottom: 2rem;
}
.research_view_wrap .research_info .info_list{
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 2rem;
}
.research_view_wrap .research_info .info_list .info_item{
  display: flex;
  gap: 12px;
}
.research_view_wrap .research_info .info_list .info_item .label{
  min-width: 90px;
  font-weight: 700;
  color: var(--c-black-4);
  font-size: var(--txt-md);
}
.research_view_wrap .research_info .info_list .info_item .value{
  color: var(--c-black-1);
}
.research_view_wrap .research_info .section{
  display: flex;
  gap: 12px;
  padding: 1rem 0;
  border-top: 1px dotted var(--c-black-5);
}
.research_view_wrap .research_info .section .section_label{
  min-width: 90px;
  font-weight: 600;
  color: var(--c-black-1);
  font-size: var(--txt-lg);
}
.research_view_wrap .research_info .section .section_cont{
  flex: 1;
  color: var(--c-black-3);
  line-height: 1.6;
}

/*--------facilities-------------*/
.device_list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.device_item {
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
}
.device_item + .device_item {
  border-top: none;
}

.device_head {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 1.5rem 0;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
}
.device_head .left_area {
  flex: 0 0 40%; 
  font-size: var(--txt-md-1);
  font-weight: 500;
  color: var(--c-black-4);
  font-variant-numeric: tabular-nums;
}
.device_head .right_area {
  flex: 1;
  font-size: var(--txt-lg-2);
  font-weight: 600;
}

.device_content {
  display: none;
  padding: 0 0 1.5rem;
  display: flex;
}
.device_content .left_area {
  flex: 0 0 40%; /* 헤더 left_area와 동일 너비 */
}
.device_content .right_area {
  flex: 1;
}

.device_content .img_wrap {
  display: flex;
  gap: 1rem;
  margin-bottom: 1rem;
  border: 0;
  padding: 0;
}

.device_content .img_wrap img {
  flex: 1 1 calc(50% - 0.5rem); 
  max-width: calc(50% - 0.5rem);
  height: auto;
  border-radius: 0px;
  object-fit: cover; 
  box-sizing: border-box;
}

.device_content dl {
  margin: 0;
  display: grid;
    grid-template-columns: 40px 1fr;
}

.device_content dl dt,
.device_content dl dd {
  margin: 0;
  line-height: 1.6;
}

.device_content dl dt {
  font-weight: 600;
  color: var(--c-black-4);
}

.device_content dl dd {
  
}

.device_content dl > div {
  display: flex;
  margin-bottom: 0.5rem;
}



/*--------archive - 402 design ----------*/
.semitit_box{
    margin-top: 1.5rem;
}
.semitit_box h3{
    font-size: var(--txt-2xl);
    font-weight: 500;
    margin-bottom: 1.5rem;
}
.semitit_box hr{
    margin: 2rem 0;
}
.design_list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.design_item {
    cursor: pointer;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.design_item .img{
    position: relative;
    width: 100%;
    aspect-ratio: 4/3;
    overflow: hidden;
    border: 1px solid var(--c-black-5);
    transition: filter 0.3s ease-in;
    border-radius: var(--radius-all-xxs);
}

.design_item .img img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.design_item:hover img{
    filter: grayscale(100%);
}

.design_item .tit{
    text-align: left;
    font-size: var(--txt-md-1);
    font-weight: 500;
    line-height: 130%;
}

.content-view {
    display: none;
    margin-top: 4rem;
    transition: opacity 0.5s ease;
}

.content-view h3 {
    text-align: center;
    font-size: var(--txt-3xl-2);
    margin-bottom: 2rem;
    font-weight: 600;
}

.content-view .top_cont {
    display: flex;
    gap: 2rem;
    margin-bottom: 30px;
    align-items: center;
}

.content-view .top_cont .imgbox {
    flex: 1;
    width: 100%;
    height: auto;
    overflow: hidden;
    aspect-ratio: 2/2.6;
}
.content-view .top_cont .imgbox img{
    width: 100%;    
    height: 100%;
    object-fit: cover;
}
.content-view .top_cont.short .imgbox{
    aspect-ratio: 3/2;
}
.content-view .top_cont .descbox {
    flex: 1;
}

.content-view .top_cont .descbox .tit {
    font-weight: 600;
    margin-bottom: 4px;
    color: var(--c-black-4);
}
.content-view .top_cont .descbox .txt{
    margin-bottom: 1rem;
    line-height: 140%;
}
.content-view .box_gallery {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: center;
}

.content-view .box_gallery li {
    text-align: center;
}

.content-view .box_gallery li img {
    width: 100%;
    height: auto;
    transition: transform 0.3s ease;
}

/*admission */
.course_grid_wrap{
  width: 100%;
  overflow-x: auto;
}
.course_grid {
  display: grid;
   grid-template-columns: 0.5fr 0.5fr 1.5fr 1.5fr;
  gap: 8px;
  margin: 0 auto;
  text-align: center;
  min-width: 640px;
}

.course_grid .cell {
  padding: 12px;
  border-radius: 2px;
  font-weight: 500;
}

.course_grid .bachelor,
.course_grid .master,
.course_grid .phd {
  background: var(--main-color);
  color: #fff;
  font-weight: 600;
}
.course_grid .bachelor{
    grid-column: 1/3;
    font-size: var(--txt-md-1);
}
.course_grid .master{
    grid-column: 3/4;
    font-size: var(--txt-md-1);
}
.course_grid .phd{
    grid-column: 4/5;
    font-size: var(--txt-md-1);
}

.course_grid .cell span {
  font-weight: 400;
  font-size: var(--txt-sm);
  display: block;
  margin-top: 4px;
  opacity: 0.9;
}

.course_grid .combined,
.course_grid .master_sub,
.course_grid .phd_sub,
.course_grid .integrated {
  background: var(--c-black-8);
  border: 1px solid var(--c-black-5);
  font-weight: 500;
}

.course_grid .combined {
  grid-column: 2 / 4; 
}
.course_grid .integrated {
  grid-column: 3 / 5; 
}

.course_grid .master_sub {
  grid-column: 3 / 4; 
}
.course_grid .phd_sub {
  grid-column: 4 / 5; 
}

.timeline_section {
  width: 100%;
  margin: 2rem auto;
  color: var(--c-black-1);
}

.timeline_header {
  position: relative;
  width: 100%;
  margin-bottom: 1.5rem;
  text-align: center;
}

.timeline_header .line {
  position: relative;
  height: 2px;
  background: var(--c-black-5);
}

/* 화살표 */
.timeline_header .line::before,
.timeline_header .line::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border: solid transparent;
  border-width: 6px;
}

.timeline_header .line::before {
  left: -6px;
  border-right-color: var(--c-black-5); 
}

.timeline_header .line::after {
  right: -6px;
  border-left-color: var(--c-black-5); 
}

/* 라벨 */
.timeline_header .label {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #fff;
  padding: 0 8px;
  font-size: var(--txt-md-1);
  font-weight: 600;
}

.timeline_wrap {
  display: flex;
  align-items: flex-start;
  position: relative;

}

.timeline_wrap .marker {
  position: relative;
  width: 1px;
  height: 60px;
  background: var(--c-black-5);
  flex-shrink: 0;
}

.timeline_wrap .marker span {
  position: absolute;
  bottom: -1.5rem;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  font-size: var(--txt-md);
  font-weight: 500;
}

.timeline_wrap .block {
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 500;
  color: #fff;
  font-size: var(--txt-md-1);
  padding: 12px;
  flex: 1;
  text-align: center;
}

.timeline_wrap .block1 { background: #99BBE1; }
.timeline_wrap .block2 { background: #4D88CA; }
.timeline_wrap .block3 { background: var(--main-color); }


.rule_text dl {
  display: flex;
  margin: 0;
}
.rule_text dt {
  flex: 0 0 auto;
  margin-right: 0.5rem;
  white-space: nowrap;
}
.rule_text dd {
  flex: 1;
  margin: 0;
}


.myinfo{
    display: flex;
    background: var(--c-black-8);
    padding: 2.5rem 3rem;
    justify-content: space-between;
    align-items: center;
}
.myinfo .info {
}
.myinfo .info h4 {
    font-size: var(--txt-2xl);
    font-weight: 400;
}
.myinfo .info h4 span {
    font-size: var(--txt-3xl-2);
    font-weight: 600;
    padding-right: 0.25rem;
}
.myinfo .btn_wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin: 0;
}