@charset "utf-8";
/* =======================================================================================
sub layout
======================================================================================= */
#contentWrap {
    display: flex;
    flex-direction: column;
    flex: 1;
}
#contentWrap .content {
    position: relative;
    max-width: 1328px;
    margin: 0 auto;
    width: 100%;
}
@media (max-width: 768px) {
    #contentWrap .content {
        padding: 0rem 1.6rem 2.8rem 1.6rem;
    }
}
/* Sub Visual */
.sub_visual {
    position: relative;
    width: 100%;
    height: 280px;
    max-height: 280px;
    background: url(/main_img/sub_visualBG.png) no-repeat bottom;
    background-size: cover;
    background-position: center;
    display: flex;
    justify-content: center;
    text-align: center;
    overflow: hidden;
    animation: visual_up 1.5s forwards;
}
.sub_visual h2 {
    position: relative;
    top: 56%;
    z-index: 2;
    font-size: 36px;
    font-weight: 700;
    color: #fff;
    text-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    margin: 0;
}
@keyframes visual_up {
    0% {
        background-position-y: 65%;
    }
    100% {
        background-position-y: 45%;
    }
}
/* LNB (Local Navigation Bar) */
.lnb_wrap {
    width: 100%;
    background-color: #5d4099;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.lnb_container {
    max-width: 1328px;
    margin: 0 auto;
    display: flex;
    height: 60px;
}
.lnb_item {
    position: relative;
    width: 250px;
    /* 적절한 너비 설정 */
    height: 100%;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}
.lnb_item:first-child {
    border-left: 1px solid rgba(255, 255, 255, 0.2);
}
.lnb_item>a {
    display: block;
    width: 100%;
    height: 100%;
    line-height: 60px;
    color: #fff;
    font-size: 18px;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    text-decoration: none;
}
.lnb_item>a i {
    transition: transform 0.3s ease;
    /* 화살표 애니메이션 추가 */
}
/* Active 클래스 부여 시 화살표 회전 */
.lnb_item.active>a i {
    transform: rotate(180deg);
}
/* Dropdown Menu */
.lnb_depth2 {
    display: none;
    /* JS로 제어하거나 hover로 제어 */
    position: absolute;
    left: -1px;
    /* border 보정 */
    width: calc(100% + 2px);
    background-color: #4a3080;
    z-index: 100;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-top: none;
}
.lnb_depth2 li a {
    display: block;
    padding: 1.4rem 2rem;
    color: #fff;
    font-size: 1.6rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    text-decoration: none;
    transition: background-color 0.2s;
}
@media (max-width: 1024px) {
    .lnb_depth2 li a {
        font-size: 1.4rem;
    }
}
.lnb_depth2 li:last-child a {
    border-bottom: none;
}
.lnb_depth2 li a:hover {
    background-color: #5d4099;
}
.lnb_depth3 {
    display: none;
    background-color: #3d2a6b;
}
.lnb_depth3 li a {
    padding-left: 3rem;
    background-color: transparent;
    font-size: 1.4rem;
}
.lnb_depth3 li a:hover {
    background-color: #5d4099;
}
.lnb_depth2 li a i {
    transition: transform 0.3s ease;
    float: right;
    margin-top: 4px;
    /* Adjust vertical alignment */
}
.lnb_depth2 li.active>a i {
    transform: rotate(180deg);
}
/* Sub Content */
.sub_content {
    padding: 60px 0;
}
.sub_content .content,
.lnb_container {
    width: 100%;
    padding: 0 20px;
}
@media screen and (max-width: 1200px) {
    .sub_content {
        padding: 30px 0;
    }
}
@media screen and (max-width: 768px) {
    .sub_visual {
        max-height: 200px;
        /* 모바일 높이 축소 */
    }
    .sub_visual h2 {
        font-size: 2.8rem;
    }
    .lnb_container {
        height: auto;
        flex-direction: row;
        /* 필요시 column으로 변경 가능하나 가로 스크롤 또는 n분할 추천 */
    }
    .lnb_item {
        flex: 1;
        /* 모바일에서는 균등 분할 */
        width: auto;
        max-width: none;
    }
    .lnb_item>a {
        font-size: 15px;
        padding: 0 10px;
        line-height: 50px;
    }
    .sub_content {
        padding: 40px 0;
    }
}
.sub_content .pageTitle {
    font-size: 2.8rem;
    color: #333;
    margin-bottom: 3rem;
}
@media(max-width:768px) {
    .sub_content .pageTitle {
        font-size: 2.4rem;
    }
}
.sub_content .pageTitle:before {
    content: '';
    display: inline-block;
    width: 6px;
    height: .8em;
    background-color: var(--primary);
    margin-right: 1.4rem;
    border-radius: 100em;
}
/*********************************************
참여대학/기관 카드 그리드
**********************************************/
.organ_card_grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.6rem;
}
.organ_card {
    display: flex;
    align-items: center;
    gap: 2rem;
    padding: 2rem 2.4rem;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    background: #fff;
    transition: box-shadow 0.25s ease, border-color 0.25s ease;
}
.organ_card:hover {
    border-color: #c0aee8;
    box-shadow: 0 4px 16px rgba(93, 64, 153, 0.10);
}
.organ_card_img {
    flex: 0 0 100px;
    width: 100px;
    height: 100px;
    border-radius: 6px;
    border: 1px solid #f0f0f0;
    overflow: hidden;
    background: #fafafa;
    display: flex;
    align-items: center;
    justify-content: center;
}
.organ_card_img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.organ_card_info {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}
.organ_name {
    font-size: 2.2rem;
    font-weight: 700;
    color: #1d1d1d;
    line-height: 1.4;
    word-break: keep-all;
}
.organ_name .main_badge {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 600;
    color: #5d4099;
    margin-left: 0.4rem;
}
.organ_tel {
    font-size: 1.8rem;
    color: #666;
}
/* 반응형: 1024px 이하 */
@media (max-width: 1024px) {
    .organ_card_grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.2rem;
    }
    .organ_card {
        padding: 1.6rem 1.8rem;
    }
    .organ_name {
        font-size: 1.7rem;
    }
}
/* 반응형: 768px 이하 - 1컬럼 */
@media (max-width: 768px) {
    .organ_card_grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    .organ_card {
        padding: 1.6rem;
        gap: 1.6rem;
    }
    .organ_card_img {
        flex: 0 0 80px;
        width: 80px;
        height: 80px;
    }
    .organ_name {
        font-size: 1.6rem;
    }
    .organ_tel {
        font-size: 1.5rem;
    }
}
/* 반응형: 480px 이하 */
@media (max-width: 480px) {
    .organ_card_img {
        flex: 0 0 70px;
        width: 70px;
        height: 70px;
    }
    .organ_name {
        font-size: 1.5rem;
    }
    .organ_name .main_badge {
        font-size: 1.3rem;
    }
    .organ_tel {
        font-size: 1.4rem;
    }
}
/* 인사말 */
.greetings-wrap {
    position: relative;
    vertical-align: bottom;
}
.greetings-wrap img {
    width: 100%;
}
.greetings-wrap .frame {
    display: flex;
    justify-content: space-between;
}
.greetings-wrap .left {
    position: relative;
    display: block;
    width: 35%;
    padding-top: 6.8rem;
    z-index: 1;
}
.greetings-wrap .right {
    position: relative;
    width: calc(100% - 35% - 6rem);
    margin-left: 6rem;
}
.greetings-wrap .img-box img {
    border-radius: 15px 15px 15px 35px;
}
.greetings-wrap .greeting {
    position: relative;
    padding: 6.5rem 0 5.5rem 0;
}
.greetings-wrap .greeting::before {
    position: absolute;
    width: calc(100% + 33.5rem);
    height: 100%;
    background: #f3f5f9 url(/main_img/common/logo-emblem-gray.svg) right 3rem bottom -1.6rem no-repeat;
    background-size: 30%;
    border-radius: 1rem;
    content: '';
    right: 0;
    top: 0;
}
.greetings-wrap .greeting.txt em {
    position: relative;
    display: block;
    margin-bottom: .6rem;
    font-size: 2.4rem;
    color: #222;
}
.greetings-wrap .greeting.txt strong {
    position: relative;
    display: block;
    font-size: 3.2rem;
    color: #1d1d1d;
    /* line-height: 5rem; */
    margin-bottom: 1.5rem;
}
.greetings-wrap .greeting.txt strong span {
    color: var(--primary);
}
.greetings-wrap .text-box {
    position: relative;
    padding-top: 5.5rem;
    font-size: 1.8rem;
    line-height: 2.8rem;
    background: url(/main_img/sym\ 1.png) no-repeat center;
    background-size: 60%;
}
.greetings-wrap .text-box i {
    display: block;
    margin: 2.8rem 0;
}
.greetings-wrap .text-box .parnassus {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.greetings-wrap .sign {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    margin-top: 4.5rem;
    font-size: 2rem;
    gap: .8rem;
}
.greetings-wrap .sign span {
    display: inline-block;
    text-align: right;
}
.greetings-wrap .sign em {
    display: inline-block;
    margin-left: 2rem;
    font-size: 3.4rem;
    color: #1D1D1D;
    line-height: 2.8rem;
}
@media screen and (max-width:1280px) {
    .greetings-wrap .greeting {
        padding: 5.5rem 0 4.5rem 0;
    }
    .greetings-wrap .greeting.txt em {
        margin-bottom: .8rem;
        font-size: 2.2rem;
    }
    .greetings-wrap .greeting.txt strong {
        font-size: 3rem;
    }
    .greetings-wrap .right {
        width: calc(100% - 35% - 5rem);
        margin-left: 5rem;
    }
    .greetings-wrap .text-box {
        padding-top: 4rem;
    }
}
@media screen and (max-width:1024px) {
    .greetings-wrap .frame {
        flex-direction: column;
    }
    .greetings-wrap .left {
        width: 40%;
        margin: 0 auto;
        text-align: center;
        padding-top: 0;
    }
    .greetings-wrap .right {
        width: 100%;
        margin: 0;
    }
    .greetings-wrap .greeting {
        padding: 8rem 0 3rem 0rem;
        margin: -4rem 0rem 0 0rem;
    }
    .greetings-wrap .text-box {
        padding: 2rem 0 4rem 4rem;
        font-size: 1.7rem;
    }
    .greetings-wrap .greeting {
        padding: 5.5rem 0 5.5rem 4rem;
    }
    .greetings-wrap .greeting::before {
        width: 100%;
        top: -2rem
    }
    .greetings-wrap .greeting.txt em {
        margin-bottom: 0;
        margin-top: 1rem;
    }
}
@media screen and (max-width:768px) {
    .greetings-wrap .greeting {
        padding: 5.5rem 4.5rem 3rem;
    }
    .greetings-wrap .greeting::before {
        background-position: right 3rem bottom -1rem;
    }
    .greetings-wrap .greeting.txt em {
        font-size: 1.8rem;
    }
    .greetings-wrap .greeting.txt strong {
        font-size: 2.4rem;
        text-align: center;
    }
    .greetings-wrap .greeting.txt strong span {
        font-size: 2.4rem;
    }
    .greetings-wrap .text-box {
        padding: 2rem 0 4rem 2rem;
    }
}
@media screen and (max-width:590px) {
    .greetings-wrap .greeting.txt em {
        font-size: 1.7rem;
    }
    .greetings-wrap .greeting::before {
        background-image: none;
    }
    .greetings-wrap .greeting.txt strong {
        font-size: 2rem;
        margin-bottom: 0;
    }
    .greetings-wrap .text-box {
        font-size: 1.6rem;
        padding: 2rem 2rem 4rem 2rem;
        word-break: keep-all;
    }
    .greetings-wrap .text-box span br {
        display: none;
    }
}
@media screen and (max-width:480px) {
    .greetings-wrap .left {
        width: 80%;
    }
    .greetings-wrap .greeting {
        padding: 5.5rem 3rem 4.5rem 3rem;
        word-break: keep-all;
    }
    .greetings-wrap .greeting.txt em {
        font-size: 1.6rem;
        margin-bottom: 1rem;
    }
    .greetings-wrap .greeting.txt strong,
    .greetings-wrap .greeting.txt strong span {
        font-size: 2rem;
        line-height: 2.4rem;
    }
    .greetings-wrap .text-box {
        font-size: 1.5rem;
        line-height: 1.5;
        padding-top: 2rem;
    }
    .greetings-wrap .sign {
        font-size: 1.8rem;
    }
    .greetings-wrap .sign em {
        font-size: 2.2rem;
    }
}
/* 조직도 */
.organ_wrap {
    text-align: center;
    padding: 2rem 0;
}
.organ_wrap img {
    max-width: 100%;
    height: auto;
}
/*********************************************
찾아오시는 길
**********************************************/
.KDP_map .root_daum_roughmap {
    width: 100% !important;
    height: 45rem;
    background-color: #f5f5f5;
    border-radius: 1.5rem;
}
@media(max-width:1024px) {
    .KDP_map .root_daum_roughmap {
        height: 30rem;
    }
}
@media all and (max-width:480px) {
    .KDP_map .root_daum_roughmap {
        height: 270px;
    }
}
.KDP_map .root_daum_roughmap .wrap_map {
    width: 100%;
    height: 100% !important;
}
.KDP_map .root_daum_roughmap .wrap_controllers {
    display: none;
}
.KDP_map .address_box {
    font-size: 2rem;
    padding: 2rem;
    border-radius: 2rem;
    margin-top: 2rem;
    margin-bottom: 3rem;
    background: #f3f5f9;
}
.KDP_map .address_box i {
    font-size: 2.4rem;
}
/*********************************************
상징(로고·CI)
**********************************************/
.ci_wrap {
    padding: 1rem 2rem;
}
.ci_section {
    display: flex;
    flex-direction: column;
}
.ci_title_box {
    margin-bottom: 3rem;
}
.ci_title_box h5 {
    font-size: 2.4rem;
    color: #4a3080;
    font-weight: 700;
    margin-bottom: 0.5rem;
    letter-spacing: -1px;
}
.ci_title_box .en_title {
    font-size: 1.8rem;
    color: #5d4099;
    font-weight: 400;
    margin-bottom: 2rem;
    text-transform: uppercase;
    letter-spacing: -0.5px;
}
.ci_title_box .desc {
    font-size: 1.8rem;
    color: #666;
    line-height: 1.6;
    word-break: keep-all;
}
.ci_img_box {
    width: 100%;
    margin-top: 1rem;
    display: flex;
    justify-content: center;
}
.ci_img_box img {
    max-width: 100%;
    height: auto;
    display: block;
}
.section_divider {
    border: 0;
    height: 1px;
    background-color: #e5e5e5;
    margin: 6rem 0;
}
@media(max-width:768px) {
    .ci_title_box h5 {
        font-size: 2.4rem;
    }
    .ci_title_box .en_title {
        font-size: 1.8rem;
        margin-bottom: 1.5rem;
    }
    .ci_title_box .desc {
        font-size: 1.6rem;
    }
    .section_divider {
        margin: 4rem 0;
    }
    .ci_download_box {
        padding: 3rem 1.5rem;
        gap: 1rem;
        flex-direction: column;
    }
    .btn_download {
        width: 100%;
        font-size: 1.5rem;
        padding: 1.5rem;
    }
}
.ci_download_box {
    margin-top: 6rem;
    padding: 4rem 2rem;
    border: 1px solid #e1e1e1;
    background-color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    background-image: repeating-linear-gradient(45deg,
            rgba(0, 0, 0, 0.02) 0px,
            rgba(0, 0, 0, 0.02) 2px,
            transparent 2px,
            transparent 10px);
}
.btn_download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #5C3A93;
    color: #fff;
    font-size: 1.6rem;
    padding: 1.5rem 3rem;
    text-decoration: none;
    transition: background-color 0.3s;
    font-weight: 500;
}
.btn_download i {
    margin-left: 1rem;
    font-size: 1.8rem;
}
.btn_download:hover {
    background-color: #4a2d7a;
    color: #fff;
}
/*********************************************
학사일정 (달력형)
**********************************************/
.academic_sch_wrap {
    margin-top: 4rem;
}
/* 1. 상단 년도 및 월 네비게이션 */
.sch_header {
    margin-bottom: 2rem;
}
.year_nav {
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: 1.4rem;
    margin-bottom: 2rem;
    font-size: 2.2rem;
    color: #666;
    font-weight: 500;
    position: relative;
    /* 탭 위치 기준점 */
}
/* --- 뷰 타입 탭 (월간/연간) --- */
.view_type_tabs {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    gap: 1.5rem;
}
.view_type_tabs a {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    font-size: 1.8rem;
    color: #888;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s;
}
.view_type_tabs a i {
    font-size: 2.2rem;
}
.view_type_tabs a.active,
.view_type_tabs a:hover {
    color: #B343FF;
}
.view_type_tabs .divider {
    width: 1px;
    height: 16px;
    background: #e1e1e1;
}
.year_nav button {
    background: none;
    border: 1px solid #e1e1e1;
    cursor: pointer;
    font-size: 2rem;
    color: #999;
    padding: 1rem;
    margin: 0 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
}
.year_nav .btn_today {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    background: #B343FF;
    color: #fff;
    border: none;
    border-radius: 50%;
    width: 48px;
    height: 48px;
    font-size: 1.6rem;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: background 0.2s;
    margin: 0;
    padding: 0;
}
.year_nav .btn_today:hover {
    background: #9b30ea;
    color: #fff;
}
@media(max-width:768px) {
    .year_nav button {
        font-size: 1.8rem;
        padding: .8rem;
    }
    .year_nav .btn_today {
        width: 40px;
        height: 40px;
        font-size: 1.4rem;
    }
    .year_nav {
        gap: .4rem;
        font-size: 2rem;
    }
    .view_type_tabs a {
        font-size: 1.6rem;
    }
}
.year_nav .current_year {
    font-size: 3.6rem;
    font-weight: 700;
    color: #1d1d1d;
    margin: 0 4rem;
}
.month_nav {
    background: #fff;
    border: 1px solid #e1e1e1;
    border-radius: 8px;
    padding: 0 1rem;
}
.month_nav ul {
    display: flex;
    justify-content: space-between;
}
.month_nav li {
    flex: 1;
    text-align: center;
}
.month_nav li a {
    display: inline-block;
    padding: 1.5rem 0;
    font-size: 2rem;
    color: #666;
    text-decoration: none;
    font-weight: 500;
    position: relative;
    box-sizing: border-box;
}
@media(max-width:1024px) {
    .month_nav li a {
        font-size: 1.8rem;
    }
}
.month_nav li.active a {
    color: #5C3A93;
    /* 보라색 활성화 */
    font-weight: 700;
}
.month_nav li.active a::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 3px;
    background: #5C3A93;
}
/* 일정등록 버튼 (Util Box) */
.sch_util_box {
    display: flex;
    justify-content: flex-end;
    margin-top: 1.5rem;
}
.btn_sch_add {
    background: #fff;
    color: #5C3A93;
    border: 1px solid #5C3A93;
    padding: 0.8rem 2.4rem;
    font-size: 1.6rem;
    font-weight: 500;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s;
}
.btn_sch_add:hover {
    background: #5C3A93;
    color: #fff;
}
@media(max-width: 768px) {
    .sch_util_box {
        justify-content: center;
        margin-top: 1rem;
    }
    .btn_sch_add {
        width: 100%;
        padding: 1.2rem;
    }
}
/* 2. 본문 레이아웃 (좌측 달력 / 우측 리스트) */
.sch_body {
    display: flex;
    gap: 2rem;
    align-items: flex-start;
}
/* 좌측 달력 */
.sch_calendar_box {
    flex: 0 0 40%;
    background: #fff;
    border: 1px solid #e1e1e1;
    border-radius: 8px;
    padding: 2.5rem;
    box-sizing: border-box;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    display: flex;
    flex-direction: column;
}
@media(max-width:1280px) {
    .sch_calendar_box {
        flex: 0 0 40%;
    }
}
.cal_top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
}
.cal_current_date {
    font-size: 2.4rem;
    font-weight: 600;
    color: #333;
}
.btn_view_all {
    background: #fff;
    border: 1px solid #5C3A93;
    color: #5C3A93;
    padding: 0.8rem 1.4rem;
    border-radius: 4px;
    font-size: 1.6rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
}
.btn_view_all:hover {
    background: #5C3A93;
    color: #fff;
}
.cal_table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
}
.cal_table th {
    background: #5C3A93;
    /* 보라색 헤더 */
    color: #fff;
    font-size: 1.8rem;
    font-weight: 400;
    padding: 1.4rem 0;
}
@media(max-width:768px) {
    .cal_table th {
        font-size: 1.7rem;
    }
}
.cal_table th:first-child {
    border-top-left-radius: 4px;
}
.cal_table th:last-child {
    border-top-right-radius: 4px;
}
/* 모든 주 높이 및 서식 동일 적용 */
.cal_table td {
    text-align: center;
    padding: 0.5rem 0;
    height: 70px;
    vertical-align: middle;
    position: relative;
    border-bottom: 1px solid #f2f2f2;
}
.cal_table td a.date_cell {
    display: inline-flex;
    justify-content: center;
    align-items: flex-end;
    /* 점 영역을 위해 숫자 항상 하단 정렬 */
    width: 48px;
    height: 52px;
    border-radius: 8px;
    color: #555;
    font-size: 1.8rem;
    /* 폰트 사이즈 키우기 */
    padding-bottom: 0.8rem;
    text-decoration: none;
    position: relative;
    z-index: 2;
    transition: background 0.2s;
    box-sizing: border-box;
}
.cal_table td a.date_cell:hover {
    background: #f0f0f0;
}
/* 오늘 날짜 */
.cal_table td a.date_cell.today,
.cal_table td a.date_cell.today.active {
    background: #ddd;
    color: #333;
}
/* 일정이 있는 날짜 (상단에 점) */
.cal_table td a.date_cell.has_event::before {
    content: '';
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    width: 5px;
    height: 5px;
    background: #5C3A93;
    /* 보라색 점 */
    border-radius: 50%;
}
/* 선택된 날짜 */
.cal_table td a.date_cell.active {
    background: #DED8E9;
    /* 연한 보라색 배경 */
    color: #333;
    /* 숫자 진하게 유지 */
}
/* 우측 일정 리스트 */
.sch_list_box {
    flex: 1;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e1e1e1;
    border-radius: 8px;
    padding: 3rem;
    box-sizing: border-box;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}
.list_top {
    padding-bottom: 1.2rem;
    border-bottom: 2px solid #5C3A93;
}
.list_title {
    font-size: 2rem;
    font-weight: 600;
    color: #5C3A93;
}
.list_content {
    flex: 1;
    overflow-y: auto;
}
.list_content::-webkit-scrollbar {
    width: 6px;
}
.list_content::-webkit-scrollbar-thumb {
    background-color: #cbd5e1;
    border-radius: 4px;
}
.list_content ul li {
    display: flex;
    padding: 1.8rem 0;
    border-bottom: 1px solid #e5e5e5;
    align-items: flex-start;
}
.list_content ul li.no_data {
    justify-content: center;
    padding: 4rem 0;
    color: #999;
}
.sch_date {
    flex: 0 0 140px;
    font-size: 1.6rem;
    color: #555;
    font-weight: 500;
}
.sch_desc {
    flex: 1;
    font-size: 1.6rem;
    color: #888;
    line-height: 1.4;
    word-break: keep-all;
}
/* 반응형 처리 */
@media(max-width: 1024px) {
    .cal_current_date {
        font-size: 2.4rem;
    }
    .cal_table th {
        font-size: 1.6rem;
        padding: 1.2rem 0;
    }
    .cal_table td a.date_cell {
        font-size: 1.6rem;
    }
    .view_type_tabs a i {
        font-size: 1.8rem;
    }
}
@media(max-width: 1024px) {
    .year_nav {
        padding-bottom: 5rem;
        /* 아래에 오늘 버튼과 탭이 들어갈 공간 확보 */
    }
    .view_type_tabs {
        position: absolute;
        bottom: 0px;
        top: auto;
        left: 0;
        right: 0;
        transform: none;
        justify-content: center;
        width: 100%;
        margin-top: 0;
    }
    .year_nav .btn_today {
        position: absolute;
        bottom: -0.8rem;
        left: 0;
        top: auto;
        transform: none;
        width: 44px;
        height: 44px;
        font-size: 1.5rem;
        z-index: 5;
    }
    .year_nav .current_year {
        margin: 0 2rem;
        font-size: 3rem;
    }
    .month_nav ul {
        flex-wrap: wrap;
    }
    .month_nav li {
        flex: 0 0 16.666%;
        /* 2줄로 6개씩 */
    }
    .month_nav li a {
        padding: 1rem 0;
    }
    .sch_body {
        flex-direction: column;
    }
    .sch_calendar_box, .sch_list_box {
        flex: auto;
        width: 100%;
    }
    .sch_list_box {
        min-height: auto;
    }
}
@media(max-width: 480px) {
    .year_nav .current_year {
        font-size: 2.6rem;
    }
    .sch_calendar_box {
        padding: 1.5rem;
    }
    .cal_table td {
        height: 54px;
    }
    .cal_table td a.date_cell {
        width: 36px;
        height: 42px;
        padding-bottom: 0.6rem;
        font-size: 1.6rem;
        border-radius: 6px;
    }
    .cal_table td a.date_cell.has_event::before {
        top: 6px;
        width: 4px;
        height: 4px;
    }
    .sch_list_box {
        padding: 2rem;
    }
    .list_content ul li {
        flex-direction: column;
        gap: 0.5rem;
    }
    .sch_date {
        flex: auto;
        font-size: 1.4rem;
        color: #333;
    }
    .sch_desc {
        font-size: 1.4rem;
    }
}
/* --- 연간 일정 리스트 --- */
#viewYearly {
    padding-top: 1rem;
    width: 100%;
}
.yearly_list {
    width: 100%;
    border-top: 2px solid #B343FF;
}
.yearly_list>li {
    display: flex;
    align-items: flex-start;
    padding: 3.5rem 0;
    border-bottom: 1px solid #eee;
}
.yearly_month {
    flex: 0 0 160px;
    text-align: center;
}
.yearly_month strong {
    display: block;
    font-size: 3.2rem;
    font-weight: 700;
    color: #B343FF;
    margin-bottom: 0.6rem;
}
.yearly_month span {
    display: block;
    font-size: 2rem;
    font-weight: 600;
    color: #111;
    text-transform: capitalize;
}
.yearly_events {
    flex: 1;
}
.yearly_events ul li {
    display: flex;
    align-items: flex-start;
    margin-bottom: 1.4rem;
}
.yearly_events .y_date {
    flex: 0 0 240px;
    font-size: 1.8rem;
    font-weight: 500;
    color: #5C3A93;
    /* 이미지의 자주색 날짜 */
}
.yearly_events .y_desc {
    flex: 1;
    font-size: 1.8rem;
    color: #444;
    word-break: keep-all;
    line-height: 1.6;
}
.yearly_events .no_data {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 6rem;
    color: #999;
    font-size: 1.6rem;
    font-weight: 400;
}
/* 반응형 처리 (모바일 연간 일정) */
@media(max-width: 768px) {
    .yearly_list>li {
        flex-direction: column;
        padding: 2.5rem 0;
    }
    .yearly_month {
        flex: auto;
        width: 100%;
        text-align: left;
        margin-bottom: 2rem;
        display: flex;
        align-items: baseline;
        gap: 1.2rem;
    }
    .yearly_month strong {
        margin-bottom: 0;
        font-size: 2.6rem;
    }
    .yearly_month span {
        font-size: 1.4rem;
    }
    .yearly_events ul li {
        flex-direction: row;
        padding: 0;
        margin-bottom: 1.4rem;
    }
    .yearly_events .y_date {
        flex: 0 0 180px;
        margin-bottom: 0;
        font-size: 1.6rem;
    }
    .yearly_events .y_desc {
        font-size: 1.6rem;
    }
    .yearly_events .no_data {
        justify-content: flex-start;
        font-size: 1.6rem;
        min-height: auto;
    }
}
@media(max-width: 480px) {
    .yearly_events .y_date {
        flex: 0 0 150px;
        font-size: 1.4rem;
    }
    .yearly_events .y_desc {
        font-size: 1.4rem;
        line-height: 1.5;
    }
}
/* =======================================================================================
Tab Wrap
======================================================================================= */
.tab_wrap {
    margin-bottom: 4rem;
}
.tab_list {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}
.tab_list li {
    flex: 1 1 auto;
}
.tab_list li a {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.8rem 1rem;
    font-size: 1.8rem;
    color: #444;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 400;
    transition: all 0.2s ease;
    text-align: center;
    word-break: keep-all;
}
.tab_list li a:hover {
    border-color: #B343FF;
    color: #B343FF;
}
.tab_list li.active a {
    color: #B343FF;
    /* 프로젝트 대표 보라색 테마 설정 교체 */
    border: 1px solid #B343FF;
    font-weight: 500;
    box-shadow: inset 0 0 0 1px #B343FF;
}
@media (max-width: 1024px) {
    .tab_list li a {
        font-size: 1.6rem;
        padding: 1.5rem 1rem;
    }
}
@media (max-width: 768px) {
    .tab_list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 0.8rem;
    }
    .tab_list li {
        width: 100%;
    }
    .tab_list li a {
        font-size: 1.5rem;
        padding: 1.4rem 0.5rem;
        height: 100%;
    }
}
.tab_content {
    display: none;
}
.tab_content.active {
    display: block;
    animation: tabFadeIn 0.3s ease;
}
.ready_text {
    padding: 10rem 0;
    text-align: center;
    font-size: 1.8rem;
    color: #666;
    background: #f8f9fa;
    border-radius: 12px;
    margin-top: 2rem;
    border: 1px dashed #ddd;
}
@keyframes tabFadeIn {
    from {
        opacity: 0;
        transform: translateY(5px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* =======================================================================================
위원회 탭 공통 및 위원회 컨텐츠 (예: 교육과정심의위원회)
======================================================================================= */
.commi_wrap {
    padding: 1rem 2rem;
}
@media (max-width: 768px) {
    .commi_wrap {
        padding: 1rem;
    }
}
.commi_section {
    margin-bottom: 5rem;
}
.commi_tit {
    margin-bottom: 2rem;
}
.commi_tit h5 {
    position: relative;
    font-size: 2.2rem;
    font-weight: 700;
    color: #222;
    margin: 0;
    padding-left: 2rem;
    display: flex;
    align-items: center;
}
.commi_tit h5::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -12px;
    width: 14px;
    height: 14px;
    background-color: #B343FF;
    /* 도트 컬러 1 */
    border-radius: 2px;
    box-shadow: -7px 7px 0 0 #5C3A93;
    /* 도트 컬러 2: 어긋난 원형 */
}
.commi_list_dot {
    list-style: none;
    padding: 0;
    margin: 0;
}
.commi_list_dot li {
    position: relative;
    padding-left: 1.8rem;
    font-size: 1.7rem;
    color: #444;
    line-height: 1.7;
    margin-bottom: 1.2rem;
    word-break: keep-all;
}
.commi_list_dot li:last-child {
    margin-bottom: 0;
}
.commi_list_dot li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 1rem;
    width: 4px;
    height: 4px;
    background-color: #555;
    border-radius: 50%;
}
.commi_func_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
}
.commi_func_grid .func_card {
    text-align: center;
    padding: 3.5rem 2rem;
    border: 1px solid #e1e1e1;
    background-color: #fefefe;
    border-radius: 8px;
}
.commi_func_grid .func_card i {
    display: inline-block;
    font-size: 4.8rem;
    color: #5C3A93;
    margin-bottom: 2rem;
}
.commi_func_grid .func_card p {
    font-size: 1.7rem;
    color: #333;
    font-weight: 500;
    line-height: 1.5;
    word-break: keep-all;
    margin: 0;
}
.commi_summary_box {
    background: url('/main_img/bg_commi_summary.png') no-repeat center right / cover;
    background-color: #f2eefa;
    text-align: center;
    padding: 3.5rem 2rem;
    border-radius: 12px;
    margin-bottom: 4rem;
    border: 1px solid #e3deed;
}
.commi_summary_box strong {
    font-size: 2.2rem;
    font-weight: 700;
    letter-spacing: -0.5px;
    color: #4a2d80;
    /* 보라색 배경 톤에 맞는 텍스트 컬러 */
}
.commi_info_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}
.commi_info_grid .info_card {
    background: #f8f9fc;
    border: 1px solid #edf0f5;
    padding: 3rem 2.5rem;
    border-radius: 8px;
    text-align: center;
}
.commi_info_grid .info_card h6 {
    font-size: 1.7rem;
    color: #5C3A93;
    font-weight: 600;
    margin-bottom: 1.4rem;
}
.commi_info_grid .info_card p {
    font-size: 1.6rem;
    color: #555;
    line-height: 1.6;
    word-break: keep-all;
    margin: 0;
}
.commi_table_wrap {
    overflow-x: auto;
}
.commi_table_wrap table {
    width: 100%;
    min-width: 600px;
    border-collapse: collapse;
    text-align: center;
    border-radius: 8px;
    overflow: hidden;
}
.commi_table_wrap th {
    background-color: #5C3A93;
    color: #fff;
    padding: 1.6rem 1rem;
    font-size: 1.7rem;
    font-weight: 500;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
}
.commi_table_wrap th:last-child {
    border-right: none;
}
.commi_table_wrap td {
    padding: 1.6rem 1rem;
    font-size: 1.6rem;
    color: #444;
    border-bottom: 1px solid #f1f1f1;
    vertical-align: middle;
}
.commi_table_wrap tbody tr {
    transition: background-color 0.2s;
}
.commi_table_wrap tbody tr:nth-child(even) {
    background-color: #fafafa;
}
.commi_table_wrap tbody tr:hover {
    background-color: #f4f6fb;
}
.badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* padding: 0.6rem 1.6rem; */
    /* border-radius: 20px; */
    font-size: 1.6rem;
    font-weight: 600;
}
.badge.chief {
    /* background-color: #fff4d1; */
    /* color: #b58000; */
    /* border: 1px solid #ffe69c; */
    font-size: 1.8rem;
    font-weight: bold;
    color: var(--primary);
}
.badge.member {
    /* background-color: #edefff; */
    /* color: #4a63ff; */
    /* border: 1px solid #d3d9ff; */
}
/* 위원회 반응형 */
@media (max-width: 1024px) {
    .commi_tit h5 {
        font-size: 2rem;
    }
}
@media (max-width: 768px) {
    .commi_section {
        margin-bottom: 4rem;
    }
    .commi_tit {
        margin-bottom: 1.5rem;
    }
    .commi_func_grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    .commi_func_grid .func_card {
        padding: 2.5rem 2rem;
    }
    .commi_func_grid .func_card i {
        font-size: 4rem;
        margin-bottom: 1.5rem;
    }
    .commi_info_grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    .commi_info_grid .info_card {
        padding: 2rem;
    }
    .commi_summary_box {
        padding: 1.5rem;
    }
    .commi_summary_box strong {
        font-size: 1.8rem;
    }
    .commi_list_dot li {
        font-size: 1.5rem;
    }
}
/* 준비중 / 개발중 페이지 */
.under_construction_wrap {
    display: flex;
    text-align: center;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    padding: 10rem 0;
}
.under_construction_wrap .img_box {
    width: 100%;
    max-width: 902px;
    height: auto;
    max-height: 40vh;
    /* 세로가 짧은 해상도를 고려해 최대 높이를 화면 비율로 제어 */
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 4rem;
}
.under_construction_wrap .img_box img {
    max-width: 100%;
    max-height: 360px;
    height: 100%;
    object-fit: contain;
}
.under_construction_wrap .txt_box h2 {
    font-size: 3.2rem;
    color: #1d1d1d;
    font-weight: 700;
    margin-bottom: 4rem;
}
.under_construction_wrap .txt_box h2 span {
    color: #ff00ff;
    /* 마젠타/핑크 색상 */
}
.under_construction_wrap .btn_box {
    text-align: center;
}
.under_construction_wrap .btn_prev {
    display: inline-block;
    background-color: #831cff;
    /* 버튼 배경색 */
    color: #fff;
    font-size: 1.8rem;
    font-weight: 600;
    padding: 1.5rem 4rem;
    border-radius: 4px;
    text-decoration: none;
    transition: background-color 0.3s;
}
.under_construction_wrap .btn_prev:hover {
    background-color: #6a00e5;
}
@media(max-width: 1200px) {
    .under_construction_wrap {
        padding: 8rem 2rem;
    }
}
@media(max-width: 768px) {
    .under_construction_wrap {
        padding: 6rem 1rem;
    }
    .under_construction_wrap .img_box {
        height: 250px;
        margin-bottom: 3rem;
    }
    .under_construction_wrap .txt_box h2 {
        font-size: 2.4rem;
        margin-bottom: 3rem;
    }
    .under_construction_wrap .btn_prev {
        font-size: 1.6rem;
        padding: 1.2rem 3rem;
    }
}
@media(max-width: 480px) {
    .under_construction_wrap .img_box {
        height: 180px;
    }
    .under_construction_wrap .txt_box h2 {
        font-size: 2rem;
    }
}
/*********************************************
비교과 프로그램 (extra programs)
**********************************************/
/* 검색 폼 바 */
.ep_search_bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1.2rem;
    margin-bottom: 1rem;
}
.ep_total_count {
    font-size: 1.8rem;
    color: #555;
    flex-shrink: 0;
}
.ep_total_count strong {
    color: #5C3A93;
    font-weight: 700;
}
.ep_search_form {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    margin-left: auto;
}
.ep_select {
    height: 44px;
    padding: 0 1.4rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 1.5rem;
    color: #333;
    background: #fff;
    cursor: pointer;
    outline: none;
    transition: border-color 0.2s;
    -webkit-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    padding-right: 3rem;
    min-width: 100px;
}
.ep_select:focus {
    border-color: #5C3A93;
}
/* Semantic UI 검색폼 오버라이드 */
/* 드롭다운 높이 통일 */
.ep_search_form .ui.selection.dropdown {
    min-height: 44px;
    height: 44px;
    line-height: 44px;
    padding-top: 0;
    padding-bottom: 0;
    display: flex;
    align-items: center;
    font-size: 1.5rem;
    min-width: 110px;
}
.ep_search_form .ui.selection.dropdown .text {
    line-height: normal;
}
.ep_search_form .ui.selection.dropdown>.dropdown.icon {
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    padding: 0;
}
/* action input 높이 통일 */
#epSearchInputWrap.ui.action.input {
    max-width: 34rem;
    height: 44px;
}
#epSearchInputWrap.ui.action.input>input {
    font-size: 1.5rem;
    height: 44px;
}
#epSearchInputWrap.ui.action.input>input:focus {
    border-color: #5C3A93;
}
#epSearchSubmit.ui.button {
    background-color: #5C3A93;
    color: #fff;
    font-size: 1.5rem;
    font-weight: 500;
    letter-spacing: 0;
    transition: background-color 0.2s;
}
#epSearchSubmit.ui.button:hover {
    background-color: #4a2d7a;
    color: #fff;
}
/* 구분선 */
.ep_divider {
    border: 0;
    border-top: 2px solid #222;
    margin: 0 0 3rem 0;
}
/* 카드 그리드 */
.ep_card_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    list-style: none;
    padding: 0;
    margin: 0;
}
/* 카드 링크 */
.ep_card_link {
    display: block;
    text-decoration: none;
    color: inherit;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
    border: 1px solid #ddd;
    transition: box-shadow 0.3s ease;
}
.ep_card_link:hover {
    box-shadow: 0 8px 28px rgba(93, 64, 153, 0.15);
}
/* 이미지 영역 - aspect-ratio 500:300 */
.ep_card_img_wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 500 / 300;
    overflow: hidden;
    background-color: #ede8f5;
    border-radius: 8px 8px 0 0;
}
.ep_card_img_wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1);
    transition: transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
/* hover 시 이미지 scale 애니메이션 */
.ep_card_link:hover .ep_card_img_wrap img {
    transform: scale(1.08);
}
/* 카드 바디 */
.ep_card_body {
    padding: 2rem 2rem 2.4rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.ep_card_no {
    font-size: 1.5rem;
    color: #5C3A93;
    font-weight: 500;
    margin-bottom: 0.2rem;
}
.ep_card_title {
    font-size: 2.2rem;
    font-weight: 700;
    color: #1d1d1d;
    text-overflow: ellipsis;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;

}
.ep_card_link:hover .ep_card_title {
    color: #5C3A93;
}
.ep_card_meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 1rem;
    font-size: 1.5rem;
    color: #888;
    margin-top: 0.6rem;
}
.ep_card_meta span {
    position: relative;
    white-space: nowrap;
}
.ep_card_meta span+span {
    padding-left: 1rem;
}
.ep_card_meta span+span::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 1.2em;
    background-color: #ddd;
}
/* 반응형: 1024px 이하 - 2컬럼 */
@media (max-width: 1024px) {
    .ep_card_grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.6rem;
    }
    .ep_card_title {
        font-size: 1.7rem;
    }
    .ep_input {
        width: 200px;
    }
}
/* 반응형: 768px 이하 */
@media (max-width: 768px) {
    .ep_search_bar {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
    }
    .ep_total_count {
        flex-shrink: 0;
    }
    .ep_search_form {
        width: auto;
        flex-shrink: 1;
    }
    .ep_card_grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem 1.6rem;
    }
    .ep_card_body {
        padding: 1.6rem 1.6rem 2rem;
    }
    .ep_card_title {
        font-size: 2rem;
    }
    .ep_card_meta {
        font-size: 1.4rem;
    }
}
/* 반응형: 560px 이하 - 1컬럼 */
@media (max-width: 560px) {
    .ep_search_form {
        flex-wrap: wrap;
    }
    .ep_select {
        width: 100%;
    }
    .ep_input_wrap {
        flex: 1;
    }
    .ep_card_grid {
        grid-template-columns: 1fr;
        gap: 1.4rem;
    }
    .ep_card_title {
        font-size: 1.7rem;
    }
}
/*********************************************
?대Ŋ?곫⑥눘??(Curriculum) ??륁뵠筌왖
**********************************************/
/* --- ??됰선嚥?獄쏄퀡瑗?--- */
.curri_hero {
    background: linear-gradient(135deg, rgba(43, 92, 170, 0.88) 0%, rgba(74, 144, 217, 0.82) 40%, rgba(106, 180, 240, 0.88) 100%),
    url('/main_img/sub/mobility_hero_bg_v2.png') center/cover no-repeat;
    border-radius: 16px;
    padding: 4.5rem 4rem;
    margin-bottom: 5rem;
    color: #fff;
    position: relative;
    overflow: hidden;
}
.curri_hero_badge {
    display: inline-block;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(4px);
    padding: 0.5rem 1.6rem;
    border-radius: 100px;
    font-size: 1.4rem;
    font-weight: 500;
    margin-bottom: 1.6rem;
}
.curri_hero_title {
    font-size: 3.4rem;
    font-weight: 700;
    margin-bottom: 0.8rem;
    line-height: 1.3;
}
.curri_hero_en {
    font-size: 1.8rem;
    font-weight: 400;
    opacity: 0.85;
    margin-bottom: 2rem;
    font-style: italic;
}
.curri_hero_tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
}
.curri_hero_tags span {
    display: inline-block;
    padding: 0.5rem 1.4rem;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 100px;
    font-size: 1.4rem;
    font-weight: 500;
    background: rgba(255, 255, 255, 0.1);
}
@media (max-width: 768px) {
    .curri_hero {
        padding: 3rem 2.4rem;
        border-radius: 12px;
        margin-bottom: 3.5rem;
    }
    .curri_hero_title {
        font-size: 2.6rem;
    }
    .curri_hero_en {
        font-size: 1.5rem;
    }
}
/* --- ?諭???⑤벏??--- */
.curri_section {
    margin-bottom: 5rem;
}
.curri_section_head {
    margin-bottom: 2.4rem;
}
.curri_section_head .pageTitle {
    margin-bottom: 0.8rem;
}
.curri_section_head p {
    font-size: 1.8rem;
    color: #888;
    padding-left: 2rem;
}
@media (max-width: 768px) {
    .curri_section {
        margin-bottom: 4rem;
    }
    .curri_section_head .pageTitle {
        font-size: 2.4rem;
    }
    .curri_section_head p {
        font-size: 1.6rem;
    }
}
/* --- ?袁㏓궗 ???뻣 獄쏅벡??--- */
.curri_intro_box {
    background: #f8f9fb;
    border: 1px solid #e8eaef;
    border-radius: 12px;
    padding: 3rem 3.5rem;
}
.curri_intro_box p {
    font-size: 1.8rem;
    line-height: 1.8;
    color: #444;
    word-break: keep-all;
}
.curri_intro_box p+p {
    margin-top: 1.6rem;
}
.curri_intro_box strong {
    color: #1d1d1d;
    font-weight: 600;
}
@media (max-width: 768px) {
    .curri_intro_box {
        padding: 2rem 2rem;
    }
    .curri_intro_box p {
        font-size: 1.6rem;
    }
}
/* --- ?대Ŋ??筌뤴뫚紐?燁삳?諭?--- */
.curri_goal_grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.6rem;
}
.curri_goal_card {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 12px;
    padding: 2.4rem 2.8rem;
    transition: border-color 0.2s, box-shadow 0.2s;
    display: flex;
    align-items: flex-start;
    gap: 1.6rem;
}
.curri_goal_card:hover {
    border-color: #a0c4ff;
    box-shadow: 0 4px 16px rgba(42, 92, 170, 0.08);
}
.goal_num {
    flex-shrink: 0;
    background: #dbeafe;
    color: #2b5caa;
    font-size: 1.7rem;
    font-weight: 700;
    padding: 0.5rem 1.4rem;
    border-radius: 6px;
}
.curri_goal_card p {
    font-size: 1.8rem;
    font-weight: 600;
    color: #1d1d1d;
    line-height: 1.5;
    word-break: keep-all;
    margin-top: 0.2rem;
}
@media (max-width: 768px) {
    .curri_goal_grid {
        grid-template-columns: 1fr;
    }
    .curri_goal_card {
        padding: 2rem;
    }
    .curri_goal_card p {
        font-size: 1.6rem;
    }
}
/* --- ?紐꾩삺??--- */
.curri_talent_wrap {
    display: flex;
    gap: 2rem;
}
.curri_talent_list {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid #e5e5e5;
    border-radius: 12px;
    background: #fff;
    padding: 1rem 0;
}
.talent_item {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 2rem;
    padding: 1.6rem 2.4rem;
    border-bottom: 1px dashed #e0e0e0;
    transition: background 0.2s;
}
.talent_item:last-child {
    border-bottom: none;
}
.talent_item:hover {
    background: #fafbfc;
}
.talent_icon {
    flex: 0 0 52px;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: #f0f4fd;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    font-weight: 800;
}
.talent_icon i {
    font-size: 2.4rem;
}
.talent_icon.t_ai {
    color: #2563eb;
}
.talent_icon.t_system {
    color: #8b5cf6;
}
.talent_icon.t_creative {
    color: #3b82f6;
}
.talent_icon.t_practical {
    color: #f97316;
}
.talent_info strong {
    display: block;
    font-size: 1.8rem;
    color: #1d1d1d;
    margin-bottom: 0.3rem;
}
.talent_info p {
    font-size: 1.5rem;
    color: #888;
}
/* ???뼎 ????獄쏅벡??*/
.curri_competency {
    flex: 0 0 320px;
    background: linear-gradient(135deg, #0d6efd 0%, #0dcaf0 100%);
    border-radius: 12px;
    padding: 2.4rem;
    color: #fff;
    display: flex;
    flex-direction: column;
}
.curri_competency h5 {
    font-size: 1.8rem;
    font-weight: 600;
    margin-bottom: 2rem;
    opacity: 0.9;
    letter-spacing: 0.5px;
}
.curri_competency ul {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}
.curri_competency ul li {
    flex: 1;
    display: flex;
}
.comp_bar {
    flex: 1;
    display: flex;
    align-items: center;
    padding: 0.8rem 1.6rem;
    border-radius: 8px;
    font-size: 1.6rem;
    font-weight: 500;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.4);
    color: #fff;
    transition: background 0.2s;
}
.comp_bar em {
    font-size: 2.4rem;
    font-weight: 700;
    font-style: normal;
    margin-right: 0.6rem;
}
.comp_bar:hover {
    background: rgba(255, 255, 255, 0.1);
}
@media (max-width: 1024px) {
    .curri_talent_wrap {
        flex-direction: column;
    }
    .curri_competency {
        flex: none;
        width: 100%;
    }
    .comp_bar em {
        font-size: 2.2rem;
    }
}
@media (max-width: 768px) {
    .curri_competency h5 {
        font-size: 1.6rem;
    }
    .comp_bar {
        font-size: 1.5rem;
        padding: 1.2rem 1.6rem;
    }
    .comp_bar em {
        font-size: 2rem;
    }
}

/* --- ?대Ŋ???⑥눘???怨몃열 燁삳?諭?--- */
.curri_course_grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.4rem;
}
.course_area_card {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 12px;
    padding: 2.4rem 2rem;
}
.course_area_card h5 {
    font-size: 2.0rem;
    font-weight: 700;
    color: #2b5caa;
    margin-bottom: 1.6rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid #dbeafe;
}
.course_area_card h5 i {
    margin-right: 0.4rem;
}
.course_area_card.highlight {
    background: #f0f7ff;
    border-color: #b3d4fc;
}
.course_area_card.highlight h5 {
    color: #1e40af;
    border-bottom-color: #93c5fd;
}
.course_area_card ul {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}
.course_area_card ul li {
    font-size: 1.6rem;
    color: #444;
    padding-left: 1.4rem;
    position: relative;
    line-height: 1.5;
}
.course_area_card ul li::before {
    content: '';
    width: 4px;
    height: 4px;
    border-radius: 50%;
    position: absolute;
    left: 0;
    top: 1rem;
    background: #2b5caa;
}
.course_area_card.sys_card ul {
    gap: 1.4rem;
}
.course_area_card.major_card ul li {
    padding-left: 0;
}
.course_area_card.major_card ul li::before {
    display: none;
}
@media (max-width: 1024px) {
    .curri_course_grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 600px) {
    .curri_course_grid {
        grid-template-columns: 1fr;
    }
}
/* --- curri_method_grid--- */
.curri_method_grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.4rem;
}
.method_card {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 12px;
    padding: 3rem 2rem;
    text-align: center;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.method_card:hover {
    border-color: #a0c4ff;
    box-shadow: 0 4px 16px rgba(42, 92, 170, 0.08);
}
.method_icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 1.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 2.4rem;
}
.method_card:nth-child(1) .method_icon {
    background: #ede9fe;
    color: #7c3aed;
}
.method_card:nth-child(2) .method_icon {
    background: #fce7f3;
    color: #db2777;
}
.method_card:nth-child(3) .method_icon {
    background: #fef3c7;
    color: #d97706;
}
.method_card:nth-child(4) .method_icon {
    background: #dbeafe;
    color: #2563eb;
}
.method_card h6 {
    font-size: 1.8rem;
    font-weight: 700;
    color: #1d1d1d;
    margin-bottom: 1rem;
}
.method_card p {
    font-size: 1.5rem;
    color: #888;
    line-height: 1.5;
    word-break: keep-all;
}
@media (max-width: 1024px) {
    .curri_method_grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
.curri_method_grid.curri_method_grid_3 {
    grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 1024px) {
    .curri_method_grid.curri_method_grid_3 {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 600px) {
    .curri_method_grid {
        grid-template-columns: 1fr;
    }
    .method_card {
        padding: 2.4rem 1.6rem;
    }
}
/* --- ??곷땾筌ｋ떯??嚥≪뮆諭띰쭕????뵠??--- */
.curri_roadmap {
    margin-top: 2rem;
}
.curri_roadmap_scroll {
    width: 100%;
    overflow-x: auto;
}
.roadmap_table {
    width: 100%;
    min-width: 1200px;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid #d1d5db;
}
.roadmap_table th, .roadmap_table td {
    border: 1px solid #d1d5db;
    text-align: center;
    vertical-align: middle;
    padding: 1rem 0.8rem;
}
.roadmap_table thead th {
    font-size: 1.6rem;
    font-weight: 700;
}
.rm_th_top {
    background: #4a5568;
    color: #fff;
}
.rm_th_year {
    background: #718096;
    color: #fff;
}
.rm_th_sem {
    background: #a0aec0;
    color: #fff;
    font-size: 1.4rem !important;
}
.rm_cat_main {
    background: #f1f5f9;
    font-weight: 700;
    color: #1e293b;
    width: 40px;
}
.vertical_text {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    transform: rotate(180deg);
    white-space: nowrap;
    letter-spacing: 2px;
}
.rm_cat_sub {
    background: #f8fafc;
    font-size: 1.3rem;
    color: #475569;
    line-height: 1.4;
    width: 130px;
}
.rm_cat_sub strong {
    color: #1e293b;
    font-size: 1.4rem;
    display: block;
    margin-bottom: 0.2rem;
}
.rm_cat_sub br {
    display: none;
}
.rm_badge {
    display: block;
    padding: 0.6rem;
    border-radius: 6px;
    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1.3;
    word-break: keep-all;
    margin-bottom: 0.6rem;
}
.rm_badge:last-child {
    margin-bottom: 0;
}
.rm_badge.w_full {
    width: 100%;
    margin-bottom: 0;
}
/* Badge Colors */
.bg_req {
    background: #2b5caa;
    color: #fff;
    border: 1px solid #1e40af;
}
.bg_theory {
    background: #f0f9ff;
    color: #0369a1;
    border: 1px solid #bae6fd;
}
.bg_mix {
    background: #fdf4ff;
    color: #701a75;
    border: 1px solid #f5d0fe;
}
.bg_found {
    background: #f8fafc;
    color: #334155;
    border: 1px solid #cbd5e1;
}
.bg_prac {
    background: #fff7ed;
    color: #c2410c;
    border: 1px solid #fed7aa;
}
.text_red {
    color: #e11d48 !important;
    font-weight: 700;
}
/* Legend */
.rm_legend {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1.6rem;
    margin-top: 2rem;
    padding: 1.6rem 2.4rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
}
.legend_title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #475569;
    margin-right: auto;
}
.legend_item {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    font-size: 1.4rem;
    font-weight: 600;
    color: #334155;
}
.color_box {
    display: inline-block;
    width: 16px;
    height: 16px;
    border-radius: 4px;
}
/* --- Tab 2 Mint Theme --- */
.theme_mint .curri_hero {
    background: linear-gradient(135deg, rgba(15, 118, 110, 0.88) 0%, rgba(34, 165, 120, 0.82) 40%, rgba(52, 211, 153, 0.88) 100%),
    url('/main_img/sub/healthcare_hero_bg_v5.png') center/cover no-repeat;
}
.theme_mint .curri_hero_badge {
    background: rgba(255, 255, 255, 0.15);
}
.theme_mint .goal_num {
    background: #ecfdf5;
    color: #059669;
}
.theme_mint .curri_goal_card:hover {
    border-color: #34d399;
    box-shadow: 0 4px 16px rgba(5, 150, 105, 0.08);
}
.theme_mint .curri_goal_card .goal_text strong {
    display: block;
    font-size: 1.8rem;
    color: #1d1d1d;
    margin-bottom: 0.6rem;
}
.theme_mint .curri_goal_card .goal_text p {
    font-size: 1.5rem;
    color: #666;
    font-weight: 400;
    margin-top: 0;
}
.theme_mint .curri_competency {
    background: linear-gradient(135deg, #0f766e 0%, #059669 100%);
}
/* --- Stage & Track Layout --- */
.curri_stage_wrap {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    margin-bottom: 2rem;
}
.stage_box {
    border-radius: 12px;
    padding: 2.4rem 3.2rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.stage_box_header {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    border-bottom: none !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}
.stage_box_header::after,
.stage_box_header::before {
    display: none !important;
}
.stage_badge {
    display: inline-block;
    padding: 0.4rem 1.2rem;
    border-radius: 100px;
    font-size: 1.4rem;
    font-weight: 700;
    color: #fff;
}
.stage_box h5 {
    font-size: 2rem;
    font-weight: 700;
    margin: 0;
    border-bottom: none !important;
    padding-bottom: 0 !important;
}
.stage_box p {
    font-size: 1.6rem;
    color: #333;
    margin: 0;
}
.curri_track_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.6rem;
}
.track_card {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 12px;
    padding: 2.4rem 2.4rem;
}
.track_badge {
    display: inline-block;
    padding: 0.4rem 1.2rem;
    border-radius: 100px;
    font-size: 1.4rem;
    font-weight: 700;
    margin-bottom: 1.2rem;
}
.track_card h6 {
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 0.8rem;
    color: #1d1d1d;
}
.track_card p {
    font-size: 1.5rem;
    color: #666;
    line-height: 1.5;
}
@media (max-width: 768px) {
    .curri_track_grid {
        grid-template-columns: 1fr;
    }
}
.theme_mint .stage_box_1 {
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
}
.theme_mint .stage_box_1 .stage_badge {
    background: #10b981;
}
.theme_mint .stage_box_1 h5 {
    color: #065f46;
}
.theme_mint .stage_box_2 {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
}
.theme_mint .stage_box_2 .stage_badge {
    background: #10b981;
}
.theme_mint .stage_box_2 h5 {
    color: #166534;
}
.theme_mint .track_badge {
    background: #10b981;
    color: #fff;
}
.theme_mint .talent_icon {
    background: #ecfdf5;
    color: #059669;
}
.theme_mint .method_icon {
    background: #ecfdf5 !important;
    color: #059669 !important;
}
.theme_mint .text_mint {
    color: #059669 !important;
}
.theme_mint .bg_theory {
    background: #e5f5e0;
    color: #2e7d32;
    border: 1px solid #c8e6c9;
}
.theme_mint .bg_prac {
    background: #fff3e0;
    color: #e65100;
    border: 1px solid #ffe0b2;
}
/* --- Intro Diagram for Tab 2 --- */
.curri_intro_diagram {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    margin-top: 3rem;
}
.intro_diagram_step {
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    border-radius: 8px;
    padding: 1.8rem 2.4rem;
    text-align: center;
    flex: 1;
}
.intro_diagram_step i {
    font-size: 3.2rem;
    color: #059669;
    margin-bottom: 1.2rem;
    display: block;
}
.intro_diagram_step strong {
    display: block;
    font-size: 1.8rem;
    font-weight: 800;
    color: #065f46;
    margin-bottom: 0.8rem;
}
.intro_diagram_step span {
    font-size: 1.5rem;
    color: #555;
    font-weight: 500;
}
.intro_diagram_arrow {
    color: #059669;
    font-size: 2rem;
}
@media (max-width: 768px) {
    .curri_intro_diagram {
        flex-direction: column;
        gap: 1rem;
    }
    .intro_diagram_arrow {
        transform: rotate(90deg);
    }
}
/* --- 餓Β??쑴夷??怨밴묶 --- */
.curri_preparing {
    text-align: center;
    padding: 8rem 2rem;
    color: #999;
}
.curri_preparing i {
    font-size: 5rem;
    color: #ddd;
    margin-bottom: 2rem;
    display: block;
}
.curri_preparing h4 {
    font-size: 2.4rem;
    color: #666;
    margin-bottom: 1rem;
}
.curri_preparing p {
    font-size: 1.8rem;
}
/* --- 인재상 헤더 --- */
.curri_talent_header {
    display: flex;
    gap: 1.6rem;
    margin-bottom: 2.4rem;
}
.talent_header_box {
    flex: 1;
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 12px;
    padding: 2rem 2.4rem;
    display: flex;
    align-items: center;
    gap: 1.6rem;
}
.talent_header_box h2 {
    font-size: 3.6rem;
    font-weight: 800;
    margin: 0;
    line-height: 1;
}
.talent_header_box span {
    font-size: 1.5rem;
    color: #555;
    line-height: 1.4;
}
.talent_header_box strong {
    font-size: 1.8rem;
    color: #1d1d1d;
    display: block;
    margin-bottom: 0.2rem;
}
@media (max-width: 768px) {
    .curri_talent_header {
        flex-direction: column;
    }
}
/* --- 교육 과정 단계별 박스 --- */
.curri_stage_grid_3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.6rem;
}
.stage_box {
    background: #fafafa;
    border: 1px solid #e5e5e5;
    border-radius: 12px;
    padding: 2.8rem 2.4rem;
    display: flex;
    flex-direction: column;
}
.stage_badge {
    display: inline-block;
    padding: 0.4rem 1.2rem;
    border-radius: 6px;
    font-size: 1.4rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 1.6rem;
    align-self: flex-start;
}
.stage_box h5 {
    font-size: 2.0rem;
    font-weight: 800;
    color: #1d1d1d;
    margin-bottom: 1.6rem;
    padding-bottom: 1.6rem;
    border-bottom: 2px solid #e5e5e5;
}
.stage_box ul {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}
.stage_box ul li {
    font-size: 1.6rem;
    color: #444;
    line-height: 1.4;
}
@media (max-width: 1024px) {
    .curri_stage_grid_3 {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 600px) {
    .curri_stage_grid_3 {
        grid-template-columns: 1fr;
    }
}
/* ==========================================================================
   Tab 3 Purple Theme (諛⑹넚?곸긽誘몃뵒?댁쑖?⑹쟾怨?
   ========================================================================== */
.theme_purple .curri_hero {
    background: linear-gradient(135deg, rgba(46, 16, 101, 0.88) 0%, rgba(134, 25, 143, 0.82) 40%, rgba(219, 39, 119, 0.88) 100%),
    url('/main_img/sub/media_hero_bg_v2.png') center/cover no-repeat;
}
.theme_purple .curri_hero_badge {
    background: rgba(255, 255, 255, 0.15);
}
.theme_purple .curri_intro_box strong {
    color: #7e22ce;
}
.theme_purple .intro_highlight {
    background: #f3e8ff;
    padding: 2rem 2.4rem;
    margin-top: 2rem;
    border-radius: 8px;
}
.theme_purple .intro_highlight p {
    color: #4c1d95;
    font-size: 1.6rem;
    font-weight: 600;
    margin: 0 !important;
}
.theme_purple .intro_highlight strong {
    color: #7e22ce;
}
.theme_purple .curri_goal_card:hover {
    border-color: #d8b4fe;
    box-shadow: 0 4px 16px rgba(147, 51, 234, 0.08);
}
.theme_purple .curri_goal_card .goal_num {
    background: #fdf4ff;
    color: #9333ea;
}
.theme_purple .talent_header_box {
    background: #fdf4ff;
    color: #9333ea;
    border: 1px solid #f3e8ff;
}
.theme_purple .type_badge {
    background: #9333ea;
    color: #fff;
}
.theme_purple .bg_gradient {
    background: linear-gradient(135deg, rgba(107, 33, 168, 1) 0%, rgba(219, 39, 119, 1) 100%);
}
.theme_purple .bg_gradient .compe_list li {
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.3);
}
.theme_purple .stage_box_1 {
    background: #faf5ff;
    border: 1px solid #e9d5ff;
}
.theme_purple .stage_box_1 .stage_badge {
    background: #9333ea;
}
.theme_purple .stage_box_1 h5 {
    color: #581c87;
    border-bottom-color: #e9d5ff;
}
.theme_purple .stage_box_2 {
    background: #fdf4ff;
    border: 1px solid #f3e8ff;
}
.theme_purple .stage_box_2 .stage_badge {
    background: #9333ea;
}
.theme_purple .stage_box_2 h5 {
    color: #701a75;
    border-bottom-color: #f3e8ff;
}
.theme_purple .stage_box_3 {
    background: #f5f3ff;
    border: 1px solid #ede9fe;
}
.theme_purple .stage_box_3 .stage_badge {
    background: #9333ea;
}
.theme_purple .stage_box_3 h5 {
    color: #4c1d95;
    border-bottom-color: #ede9fe;
}
.theme_purple .track_badge {
    background: #9333ea;
    color: #fff;
}
.theme_purple .talent_icon {
    background: #faf5ff;
    color: #9333ea;
}
.theme_purple .method_icon {
    background: #faf5ff !important;
    color: #9333ea !important;
}
.theme_purple .text_purple {
    color: #9333ea !important;
}