@font-face {
    font-family: Pretendard;
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
    src: url(../font/PretendardVariable.woff2) format("woff2-variations");
}

html.lenis,
html.lenis body {
    height: auto;
}

.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overflow: clip;
}

:root {
    --primary-color: #1457af;
    --sub-color: #3572c1;
    --text-dark: #222222;
    --text-basic: #333333;
    --text-muted: #555555;
    --text-llight: #F0F6FE;
    --border-color: #e5e7eb;
    --bg-popover: #ffffff;
    --transition-speed: 0.25s;
    --transition1: all 0.4s ease;
    --side-padding: 14px;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

ol,
ul,
li {
    list-style: none;
}

blockquote,
q {
    quotes: none;
}

a {
    text-decoration: none;
    color: inherit;
}

html {
    font-size: 1px;
}

@media (min-width: 1024px) {
    html {
        font-size: 0.07vw;
    }
}

@media (min-width: 1400px) {
    html {
        font-size: 1px;
    }
}

body {
    color: var(--text-basic);
    background-color: #fff;
    margin: 0;
    font-family:
        pretendard,
        나눔고딕,
        NanumGothic,
        Nanum Gothic,
        돋움,
        Dotum,
        Arial,
        sans-serif;
    line-height: 1.5;
    overflow-x: hidden;
    overflow-y: scroll;
    font-size: 16rem;
}

form {
    display: inline;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

label {
    cursor: pointer;
}

a,
a:link,
a:visited {
    color: var(--text-basic);
    transition: color var(--transition-speed) ease;
}

a:hover {
    color: var(--primary-color);
}

a:active {
    color: #444;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

.break {
    page-break-before: always;
}

/* ==========================================================================
   초기세팅 끝
   ========================================================================== */

.d-flex {
    display: flex !important;
}

.con-start,
.justify-content-start {
    justify-content: flex-start !important;
}

.con-end,
.justify-content-end {
    justify-content: flex-end !important;
}

.con-center,
.justify-content-center {
    justify-content: center !important;
}

.item-center,
.align-items-center {
    align-items: center !important;
}

.item-start,
.align-items-start {
    -webkit-box-align: flex-start !important;
    -ms-flex-align: flex-start !important;
    align-items: flex-start !important;
}

.item-end,
.align-items-end {
    -webkit-box-align: flex-end !important;
    -ms-flex-align: flex-end !important;
    align-items: flex-end !important;
}

.item-stretch,
.align-items-stretch {
    align-items: stretch !important;
}

.con-btw,
.justify-content-space-between {
    -webkit-box-align: space-between !important;
    -ms-flex-align: space-between !important;
    justify-content: space-between !important;
}

.con-vert {
    flex-direction: column;
}

.con-row {
    flex-direction: row;
}

.con-rev {
    flex-direction: row-reverse;
}

.flex-wrap {
    flex-wrap: wrap;
}

.con-left {
    float: left;
}

.con-right {
    float: right;
}

.w5 {
    width: 5%;
    display: inline-block;
}

.w10 {
    width: 10%;
    display: inline-block;
}

.w15 {
    width: 15%;
    display: inline-block;
}

.w20 {
    width: 20%;
    display: inline-block;
}

.w25 {
    width: 25%;
    display: inline-block;
}

.w30 {
    width: 30%;
    display: inline-block;
}

.w40 {
    width: 40%;
    display: inline-block;
}

.w45 {
    width: 44%;
    display: inline-block;
}

.w50 {
    width: 50%;
    display: inline-block;
}

.w60 {
    width: 60%;
    display: inline-block;
}

.w70 {
    width: 70%;
    display: inline-block;
}

.w80 {
    width: 80%;
    display: inline-block;
}

.w90 {
    width: 90%;
    display: inline-block;
}

.w100 {
    width: 100%;
    display: inline-block;
}

.h50 {
    height: 50rem !important;
}

.h70 {
    height: 70rem !important;
}

.h100 {
    height: 100rem !important;
}

.h150 {
    height: 150rem !important;
}

.mt5 {
    margin-top: 5rem !important;
}

.mt10 {
    margin-top: 10rem !important;
}

.mt20 {
    margin-top: 20rem !important;
}

.mt30 {
    margin-top: 30rem !important;
}

.mt40 {
    margin-top: 40rem !important;
}

.mt50 {
    margin-top: 50rem !important;
}

.mt130 {
    margin-top: 130rem !important;
}

.mb5 {
    margin-bottom: 5rem !important;
}

.mb0 {
    margin-bottom: 0 !important;
}

.mb10 {
    margin-bottom: 10rem !important;
}

.mb20 {
    margin-bottom: 20rem !important;
}

.mb30 {
    margin-bottom: 30rem !important;
}

.mb40 {
    margin-bottom: 40rem !important;
}

.mb50 {
    margin-bottom: 50rem !important;
}

.mb60 {
    margin-bottom: 60rem !important;
}

.mr5 {
    margin-right: 5rem !important;
}

.mr10 {
    margin-right: 10rem !important;
}

.mr20 {
    margin-right: 20rem !important;
}

.mr30 {
    margin-right: 30rem !important;
}

.mr40 {
    margin-right: 40rem;
}

.mr50 {
    margin-right: 50rem;
}

.mr100 {
    margin-right: 100rem;
}

.ml10 {
    margin-left: 10rem !important;
}

.ml20 {
    margin-left: 20rem !important;
}

.ml30 {
    margin-left: 30rem !important;
}

.ml40 {
    margin-left: 40rem;
}

.ml50 {
    margin-left: 50rem;
}

.pd0 {
    padding: 0 !important;
}

.pc-pt60 {
    padding-top: 60rem;
}

/* ==========================================================================
   기본 선언 끝
   ========================================================================== */

#wrap {
    position: relative;
    width: 100%;
}


.td-left {
    text-align: left !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* ==========================================================================
   헤더 및 상단 내비게이션 레이아웃
   ========================================================================== */

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #fff;
    border-bottom: 1px solid var(--border-color);
    z-index: 1010;
    transition: transform 0.3s ease-in-out;
}

.header-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1600rem;
    margin: 0 auto;
    padding: 0 20rem;
    height: 100rem;
}

.logo {
    font-size: 21rem;
    font-weight: 700;
}

.logo span {
    color: var(--text-dark);
}

.logo img {
    height: 50rem;
    display: block;
}

/* 대메뉴 리스트 */
.nav-list {
    display: flex;
    align-items: center;
    gap: 0rem;
    height: 100%;
}

.nav-item {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
}

.nav-item-sub {
    padding-left: 35rem;
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
}

/* 대메뉴 링크 스타일 */
a.nav-trigger {
    font-size: 19rem;
    font-weight: 700;
    padding: 30rem 25rem;
    height: 100%;
    display: flex;
    align-items: center;
    color: var(--text-dark);
    transition: color var(--transition-speed);
}

.nav-item:hover a.nav-trigger,
.nav-item.active a.nav-trigger {
    color: var(--primary-color) !important;
}

a.nav-trigger-sub {
    font-size: 15rem;
    font-weight: 600;
    padding: 30rem 10rem;
    color: var(--text-muted);
}

.mega-menu {
    position: absolute;
    top: 81rem;
    left: 50%;
    transform: translateX(-50%);

    /* [수정] 고정 가로폭 해제 및 자동 조절 설정 */
    width: max-content;
    /* 내부 컨텐츠의 최대 길이에 딱 맞게 가로폭 자동 조절 */
    min-width: 100rem;
    /* 메뉴가 너무 적을 때 지나치게 좁아지는 것 방지 */
    max-width: 90vw;
    /* 브라우저 화면을 벗어나지 않도록 최대 가로폭 제한 */

    background-color: var(--bg-popover);
    border: 1px solid var(--border-color);
    border-radius: 8rem;
    box-shadow: 0 10rem 25rem rgba(0, 0, 0, 0.1);
    padding: 20rem;

    opacity: 0;
    visibility: hidden;
    transition: opacity var(--transition-speed) ease, transform var(--transition-speed) ease;
    z-index: 1100;
}

/* 활성화 상태 (JS 연동) */
.nav-item.active .mega-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(5rem);
}

/* 서브메뉴 내부 그리드 (2열 정렬) */
.mega-menu-inner {
    display: grid;
    /* [수정] 개수에 맞춰 열을 무조건 고정하지 않고, 컨텐츠 길이에 맞게 반응형 배치 */
    grid-template-columns: repeat(auto-fit, minmax(220rem, 1fr));
    gap: 8rem;

    /* 메뉴가 늘어날 때 정렬이 깨지지 않도록 정렬 기준 인라인 지정 */
    align-items: start;
}

/* 서브메뉴 개별 카드 블록 */
.mega-sub-item {
    display: flex;
    flex-direction: column;
    gap: 4rem;
    padding: 10rem;
    border-radius: 6rem;
    transition: background-color var(--transition-speed);

    /* [추가] 텍스트가 길어져도 카드가 찌그러지지 않고 자연스럽게 확보되도록 설정 */
    white-space: nowrap;
}

.mega-sub-item:hover {
    background-color: #f4f7fa;
}

.sub-title {
    font-size: 16rem;
    font-weight: 700;
    color: var(--text-dark);
}

.mega-sub-item:hover .sub-title {
    color: var(--primary-color);
}

.sub-desc {
    font-size: 12.5rem;
    font-weight: 500;
    color: var(--text-muted);
    line-height: 1.4;
    letter-spacing: -0.3rem;
}


/* ==========================================================================
   푸터 레이아웃 (Footer Styling)
   ========================================================================== */
.site-footer {
    background-color: #ffffff;
    color: var(--text-basic);
    padding: 70rem 0;
    border-top: 1px solid #e4e4e4;
    font-size: 14.5rem;
}

.site-footer .inner {
    max-width: 1600rem;
    margin: 0 auto;
    padding: 0 0rem;
    display: flex;
    padding: 0 20rem;
    justify-content: space-between;
    align-items: flex-start;
}

.site-footer .left {
    display: flex;
    flex-direction: column;
    gap: 30rem;
}

.site-footer .link-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 35rem;
}

.site-footer .link {
    color: var(--text-basic);
    font-weight: 600;
    transition: color var(--transition-speed) ease;
    font-size: 16rem;
}

.site-footer .link:hover {
    color: var(--primary-color);
}

.site-footer .link.privacy {
    color: var(--text-dark);
    font-weight: 700;
}

.site-footer .info {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

.site-footer .addr {
    display: flex;
    flex-wrap: wrap;
    gap: 16rem;
    color: var(--text-muted);
    line-height: 1.5;
    margin-bottom: 0;
}

.site-footer .addr span {
    position: relative;
}


.site-footer .copyright {
    font-size: 14rem;
    color: var(--text-muted);
    margin-top: 5rem;
}

.site-footer .right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10rem;
}

.site-footer .right img {
    width: 126rem;
}

.site-footer .family-wrap {
    position: relative;
}

.site-footer .sns-wrap {
    display: flex;
    gap: 12rem;
}

.site-footer .sns-box {
    display: inline-block;
    width: 38rem;
    height: 38rem;
    border-radius: 50%;
    background-color: #fff;
    background-size: 20rem;
    background-position: center;
    background-repeat: no-repeat;
    transition: background-color var(--transition-speed) ease, transform 0.2s ease;
}

.site-footer .sns-box:hover {
    background-color: #e9e9e9;
    /* transform: translateY(-2rem); */
}

.site-footer .sns-box.youtube {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23444444'%3E%3Cpath d='M23.498 6.163a3.003 3.003 0 0 0-2.11-2.11C19.517 3.545 12 3.545 12 3.545s-7.516 0-9.387.507a3.003 3.003 0 0 0-2.11 2.11C0 8.033 0 12 0 12s0 3.967.502 5.837a3.003 3.003 0 0 0 2.11 2.11c1.871.507 9.387.507 9.387.507s7.517 0 9.387-.507a3.003 3.003 0 0 0 2.11-2.11C24 15.967 24 12 24 12s0-3.967-.502-5.837zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E");
}

.site-footer .sns-box.insta {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23444444'%3E%3Cpath d='M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.051.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z'/%3E%3C/svg%3E");
}

.site-footer .sns-box.linkedin {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23444444'%3E%3Cpath d='M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z'/%3E%3C/svg%3E");
}


/* ==========================================================================
   서브 레이아웃 
   ========================================================================== */

#contbody {
    position: relative;
    width: 100%;
}

#mainbody {
    position: relative;
    padding: 140rem 0 0rem;
    margin: 0 auto;
}

#subbody {
    position: relative;
    padding: 230rem 0 200rem;
    margin: 0 auto;
}

.cont,
.cont_b {
    max-width: 1400rem;
    margin: 0 auto;
    min-height: 28vh;
}

.cont {
    max-width: 1200rem;
}

.section-title {
    max-width: 1200rem;
    width: 100%;
    font-size: 55rem;
    font-weight: 800;
    color: var(--text-dark);
    line-height: 1.2;
    margin: 0 auto 70rem;
}

.section-title.alone {
    margin: 0 auto 70rem;
}

.section-title.alone2 {
    margin: 0 auto 140rem;
}

.greet-left-box {
    font-size: 25rem;
    font-weight: 700;
    width: 300rem;
}

.greet-right-box {
    width: 700rem;
    font-size: 18.2rem;
    font-weight: 400;
    line-height: 1.6;
    text-align: justify;
    word-break: keep-all;
}

.greet-right-box img {
    margin: 0 0 0 40rem;
}

.cont-left-box {
    width: 300rem;
    font-size: 24rem;
    font-weight: 700;
}

.cont-right-box {
    width: 800rem;
    font-size: 18.2rem;
    font-weight: 400;
    line-height: 1.6;
    text-align: justify;
    word-break: keep-all;
}

.greet_img img {
    position: relative;
    margin: -200rem 0 100rem 0;
    width: 700rem;
    height: auto !important;
    align-self: flex-end;
}

.his_img img {
    position: relative;
    margin: -500rem 0 100rem 0;
    width: 700rem;
    height: auto !important;
    align-self: flex-end;
}



.map-left-box {
    width: 300rem;
    font-size: 24rem;
    font-weight: 700;
}

.map-mid-box {
    width: 300rem;
    font-size: 19rem;
    font-weight: 500;
}

.map-right-box {
    width: 600rem;
    font-size: 18.2rem;
    font-weight: 400;
    line-height: 1.6;
    text-align: justify;
    word-break: keep-all;
    overflow: hidden;
}

/* ==========================================================================
   인터랙티브 연혁 페이지 스타일 (Interactive Timeline Styling)
   ========================================================================== */

/* 상단 고정 네비게이션 탭 */
.history-sticky-nav {
    position: sticky;
    top: 0;
    /* 화면 맨 위에 고정 */
    z-index: 1000;
    /* 헤더 99999보다 높은 z-index로 덮어씌움 */
    background-color: #ffffff;
    border-bottom: 1px solid #e2e8f0;
    margin-bottom: 50rem;
    width: 100%;
    height: 101rem;
}



.nav-inner {
    max-width: 1200rem;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0;
}

.nav-tab {
    flex: 1;
    max-width: 250rem;
    background: none;
    border: none;
    padding: 36.5rem 0;
    font-size: 22rem;
    font-weight: 600;
    color: var(--text-muted);
    cursor: pointer;
    text-align: center;
    position: relative;
    transition: color 0.3s ease;
    font-family: pretendard;
    display: block;
    text-decoration: none !important;
}

.nav-tab::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 3rem;
    background-color: var(--primary-color);
    transition: width 0.3s ease;
}

.nav-tab:hover {
    color: var(--primary-color);
}

.nav-tab.active {
    color: var(--primary-color);
    font-weight: 700;
}

.nav-tab.active::after {
    width: 100%;
}

/* 타임라인 컨테이너 */
.timeline-container {
    position: relative;
    margin-bottom: 120rem;
}

.timeline-wrapper {
    position: relative;
    width: 100%;
}

/* 스크롤 진행선 (옅은 회색 백그라운드 선) */
.timeline-line {
    position: absolute;
    left: 350rem;
    /* 스티키 사이드바 가로폭 350rem에 정렬 */
    top: 20rem;
    bottom: 20rem;
    width: 3rem;
    background-color: #e2e8f0;
    z-index: 1;
}

/* 스크롤에 따라 차오르는 컬러 바 */
.timeline-fill {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 0%;
    /* JS에서 동적 계산 */
    background-color: var(--primary-color);
    transition: height 0.1s ease-out;
}

/* 연도 구간 대역 섹션 */
.history-section {
    display: flex;
    position: relative;
    margin-bottom: 100rem;
}

.history-section:last-child {
    margin-bottom: 0;
}

/* 좌측 고정 사이드바 */
.section-sidebar {
    width: 350rem;
    flex-shrink: 0;
    position: relative;
    text-align: left;
    padding-right: 40rem;
}

/* 스티키 텍스트 (해당 년도가 스크롤될 때까지 화면에 고정) */
.sidebar-sticky {
    position: sticky;
    top: 130rem;
    /* 탭바 높이 70rem + 알파 */
    font-size: 45rem;
    font-weight: 500;
    color: var(--text-dark);
    letter-spacing: -0.5rem;
    transition: color 0.3s ease;
}



/* 우측 연혁 본문 영역 */
.section-content {
    width: 850rem;
    flex-shrink: 0;
    padding-left: 40rem;
    z-index: 2;
}

/* 개별 연도 로우 */
.history-row {
    display: flex;
    align-items: flex-start;
    margin-bottom: 60rem;
    position: relative;
    transition: transform 0.3s ease;
}

.history-row:last-child {
    margin-bottom: 0;
}

/* 연도 레이블 */
.history-row .year-label {
    width: 120rem;
    font-size: 23rem;
    font-weight: 800;
    color: var(--text-basic);
    /* 기본 비활성화 칼라 */
    position: relative;
    flex-shrink: 0;
    line-height: 1.2;
    transition: color 0.3s ease;
}

/* 개별 연도 포인트 도트 */
.history-row .year-dot {
    position: absolute;
    left: -44rem;
    /* timeline-line의 left 250rem에 맞춰 포인트 배치 */
    top: 10rem;
    width: 11rem;
    height: 11rem;
    border-radius: 50%;
    background-color: #ffffff;
    border: 3rem solid #cbd5e1;
    z-index: 3;
    transition: border-color 0.3s ease, background-color 0.3s ease, transform 0.3s ease;
}

/* 마우스 호버 및 스크롤 활성화(.on) 시 효과 */
.year-label {
    color: var(--primary-color);
}

.history-row.on .year-dot {
    border-color: var(--primary-color);
    background-color: var(--primary-color);
    transform: scale(1.3);
    box-shadow: 0 0 8rem rgba(0, 86, 179, 0.5);
}



/* 연도별 세부 내용 리스트 */
.history-row .year-list {
    display: flex;
    flex-direction: column;
    gap: 12rem;
    padding-left: 20rem;
    width: 100%;
}

.history-row .year-list span {
    display: flex;
    align-items: baseline;
    font-size: 18rem;
    font-weight: 400;
    color: var(--text-basic);
    line-height: 1.5;
    word-break: keep-all;
}

.history-row .year-list span em {
    font-style: normal;
    font-weight: 700;
    color: var(--text-basic);
    margin-right: 12rem;
    font-size: 15rem;
    white-space: nowrap;
    padding: 2rem 8rem;

}



/* 스티키 고정 시 헤더 슬라이드 퇴장 */
.site-header.hide-header {
    transform: translateY(-100%);
}



.report-div {
    position: relative;
    top: 50rem;
    width: calc((100% - 32rem) / 3);
    opacity: 1;
    transition: top 0.7s ease, opacity 0.7s ease;
    margin-bottom: 40rem;
}

.report-div .img {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 380rem;
    background: #f4f4f4;
}

.report-div img {
    width: 80%;
    box-shadow: 0 20rem 20rem 0 rgba(0, 0, 0, 0.05);
}

/* ==========================================================================
   선생님소개
   ========================================================================== */


.main-desc_team {
    margin: 0 auto 50rem;
    padding: 0 0 0 400rem;
    max-width: 1200rem;
    color: var(--text-basic);
    font-size: 32rem;
    line-height: 1.3;
    font-weight: 700;
}

.sub-desc_team {
    margin: 30rem 0 0 0;
    color: var(--text-muted);
    font-size: 22rem;
    line-height: 1.3;
    font-weight: 400;
}

.main-desc_team.leftnopad {
    padding: 0;
}

.top-line2,
.top-line {
    border-top: 2px solid #333;
}

/* 카드 개별 요소 */
.card {
    display: flex;
    width: 245rem;
    flex-direction: column;
    flex-shrink: 0;
}

.image-box {
    position: relative;
    height: 326rem;
    width: 100%;
    overflow: hidden;
    border-radius: 10rem;
    background-color: #e3e3e3;
}

.member-img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    transition: filter 0.3s ease;
}


.info-box {
    padding: 12rem 0;
    backdrop-filter: blur(4rem);
    box-sizing: border-box;
}

.info-name {
    margin: 0;
    font-size: 18rem;
    font-weight: 800;
    color: #171717;
}

.info-role {
    margin: 0rem 0 0 0;
    font-size: 15rem;
    font-weight: 500;
    color: #525252;
}

.map-right-box .map-link {
    width: 600px;
    height: 350px;
    border: 1px solid var(--border-color);
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
}

.map-right-box .map-link img {
    max-width: 1209px;
    width: 1209px;
    height: 747px;
}

.map-link-desc {
    margin: 0 0 20rem 0;
    font-size: 15rem;
    color: var(--text-muted);
    line-height: 1.3;
}

.map-track-box {
    margin: 0rem 0 0 0;
    line-height: 1.4;
}

.map-track {
    font-size: 14rem;
    color: var(--text-basic);
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    min-height: 35rem;
    border: 1px solid #cfcfcf;
    border-radius: 5rem;
    width: 140rem;
    margin: 0 0 7rem 0;
    transition: all 0.2s ease;
}

.map-track:hover {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
    color: #ffffff;
    cursor: pointer;
}

/* ==========================================================================
   교직원 카드 및 상세 모달 인터랙션 (Premium Aesthetics)
   ========================================================================== */

/* 카드 호버 효과 */
.card[data-teacher-id] {
    cursor: pointer;
}

.card[data-teacher-id] .member-img {
    transition: filter 0.3s ease;
}

.card[data-teacher-id]:hover .member-img {
    filter: brightness(0.95);
}


/* 모달 기본 컨테이너 */
.teacher-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}

.teacher-modal.show {
    opacity: 1;
    visibility: visible;
}

/* 모달 블러 오버레이 */
.modal-backdrop {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(15, 23, 42, 0.45);
    /* 다크 슬레이트 톤 투명도 */
    backdrop-filter: blur(5px);
    /* 고급스러운 Glassmorphism */
    -webkit-backdrop-filter: blur(5px);
    transition: opacity 0.2s ease;
}

/* 모달 래퍼 및 정렬 */
.modal-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20rem;
    box-sizing: border-box;
}

/* 모달 본체 */
.modal-content {
    background-color: #ffffff;
    border-radius: 20rem;
    width: 800rem;
    max-width: 100%;
    height: 620rem;
    /* 데스크톱 고정 높이 지정 */
    max-height: 85vh;
    /* 화면 크기에 맞추어 안전 높이 확보 */
    display: flex;
    flex-direction: column;
    box-shadow: 0 25rem 50rem -12rem rgba(0, 0, 0, 0.3);
    overflow: hidden;
    position: relative;
    transform: scale(0.94) translateY(10rem);
    transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.2s ease;
    z-index: 10;
}

.teacher-modal.show .modal-content {
    transform: scale(1) translateY(0);
}

/* 닫기 버튼 */
.modal-close-btn {
    position: absolute;
    top: 20rem;
    right: 25rem;
    background: none;
    border: none;
    font-size: 36rem;
    line-height: 1;
    font-weight: 300;
    color: #9ca3af;
    cursor: pointer;
    transition: color 0.2s ease, transform 0.2s ease;
    z-index: 12;
}

.modal-close-btn:hover {
    color: var(--text-dark);
    transform: rotate(90deg);
}

/* 모달 내부 구성 */
.modal-body {
    display: flex;
    gap: 45rem;
    padding: 45rem;
    flex: 1;
    min-height: 0;
    /* 자식이 부모 높이를 초과하지 않도록 제한 */
    box-sizing: border-box;
}

/* 좌측 프로필 이미지 */
.modal-left {
    width: 245rem;
    flex-shrink: 0;
}

.modal-img-container {
    width: 100%;
    aspect-ratio: 245 / 326;
    border-radius: 16rem;
    overflow: hidden;
    background-color: #f3f4f6;
    box-shadow: 0 4rem 15rem rgba(0, 0, 0, 0.08);
}

#modalTeacherImg {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 우측 상세 정보 */
.modal-right {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    height: 100%;
    min-height: 0;
}

/* 이력 상세 내용이 들어가는 스크롤 영역 */
.modal-details-container {
    flex: 1;
    overflow-y: auto;
    /* 직책, 이름 하단의 상세 정보들만 스크롤되도록 설정 */
    min-height: 0;
    /* 스크롤 동작을 위한 flex 자식 제한 */
    padding-right: 15rem;
    /* 스크롤바가 글자를 가리지 않도록 여백 제공 */
}

/* 상세 정보 스크롤바 커스텀 (Premium Aesthetics) */
.modal-details-container::-webkit-scrollbar {
    width: 6rem;
}

.modal-details-container::-webkit-scrollbar-track {
    background: #f1f5f9;
    border-radius: 10rem;
}

.modal-details-container::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 10rem;
    transition: background-color 0.2s ease;
}

.modal-details-container::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

.modal-label {
    display: inline-block;
    font-size: 14rem;
    font-weight: 700;
    color: var(--primary-color);
    letter-spacing: 1.5rem;
    margin-bottom: 6rem;
    background-color: rgba(20, 87, 175, 0.07);
    border: 1px solid #c5ceda;
    padding: 3rem 15rem;
    border-radius: 40rem;
    width: fit-content;
    letter-spacing: -0.3rem;
}

.modal-name {
    font-size: 30rem;
    font-weight: 800;
    color: var(--text-dark);
    margin: 0 0 25rem 0;

}

/* 정보 섹션 */
.modal-info-section {
    margin-bottom: 22rem;
}

.modal-info-section:last-child {
    margin-bottom: 0;
}

.section-subtitle {
    font-size: 16.5rem;
    font-weight: 700;
    color: var(--text-dark);
    margin: 0 0 10rem 0;
    position: relative;
    padding-left: 12rem;
}

.section-subtitle::before {
    content: '';
    position: absolute;
    left: 0;
    top: 3rem;
    bottom: 3rem;
    width: 3.5rem;
    background-color: var(--primary-color);
    border-radius: 2rem;
}

.modal-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

.modal-list li {
    font-size: 15rem;
    letter-spacing: -0.5rem;
    color: var(--text-basic);
    line-height: 1.55;
    position: relative;
    padding-left: 14rem;
}

/* .modal-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8.5rem;
    width: 4.5rem;
    height: 4.5rem;
    background-color: #94a3b8;
    border-radius: 50%;
} */

.modal-list li.no-data {
    color: #94a3b8;
    padding-left: 0;
}

.modal-list li.no-data::before {
    display: none;
}

/* 반응형 모바일 대응 */
@media (max-width: 768px) {
    .modal-wrapper {
        align-items: flex-end;
        padding: 0;
    }

    .modal-content {
        border-radius: 24rem 24rem 0 0;
        transform: translateY(100%);
        transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        max-height: 90vh;
        overflow-y: auto;
    }

    .teacher-modal.show .modal-content {
        transform: translateY(0);
    }

    .modal-close-btn {
        top: 15rem;
        right: 20rem;
    }

    .modal-body {
        flex-direction: column;
        gap: 25rem;
        padding: 35rem 24rem;
        align-items: center;
        text-align: center;
    }

    .modal-left {
        width: 160rem;
    }

    .modal-right {
        width: 100%;

    }

    .modal-label {
        margin: 0 auto 8rem;
    }

    .section-subtitle {
        padding-left: 0;
        display: inline-block;
    }

    .section-subtitle::before {
        display: none;
    }

    .modal-list {
        align-items: center;
    }

    .modal-list li {
        padding-left: 0;
        text-align: center;
    }

    .modal-list li::before {
        display: none;
    }
}

/* ==========================================================================
   학점은행제
   ========================================================================== */

.academic-table {
    overflow-x: auto;
    margin-bottom: 20px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    width: 100%;
}


table {
    width: 100%;
    border-collapse: collapse;
    text-align: center;
    font-size: 15rem;
    overflow-x: auto;
    border-bottom: none;
}

table th {
    background-color: var(--primary-color);
    color: white;
    font-weight: 500;
    padding: 14px 10px;
    border-right: 1px solid rgba(255, 255, 255, 0.08);
}

table tr:last-child td {
    border-bottom: none;
}

table th:last-child,
table td:last-child {
    border-right: none;
}

table th.hd-sub {
    background-color: var(--sub-color);
}

table td {
    padding: 14px 10px;
    border-bottom: 1px solid var(--border-color);
    background-color: #fff;
    color: var(--text-basic);
}

table td.no-right-border {
    border-right: none;
}

table td.no-bottom-border {
    border-bottom: none;
}

.highlight {
    font-weight: 600;
    color: var(--text-basic);
}

.table-note {
    background-color: var(--text-llight);
    font-size: 14rem;
    color: var(--text-basic);
    padding: 4px 8px;
    border-radius: 4px;
    display: inline-block;
    font-weight: 600;
}

.academic-cont h3 {
    font-size: 18rem;
    color: var(--text-basic);
    margin: 20px 0 10px 0;
    font-weight: 600;
}

.academic-cont h3:first-child {
    margin-top: 0;
}

.academic-cont ul {
    list-style: none;
    padding-left: 0;
}

.academic-cont li {
    position: relative;
    padding-left: 20rem;
    margin-bottom: 8rem;
    font-size: 16rem;
}

.academic-cont li::before {
    content: "•";
    color: var(--text-muted);
    font-weight: bold;
    position: absolute;
    left: 5rem;
}

.academic-cont .sub-text {
    font-size: 16.5rem;
    margin-top: -5rem;
    margin-bottom: 15rem;
    padding-left: 5rem;
}

.scholarship-table table tbody td {
    border-right: 1px solid var(--border-color);
}

.scholarship-table table tbody td:last-child {
    border-right: none;
}

.scholarship-table table tbody td.right-border {
    border-right: 1px solid var(--border-color);
}

.rule-section {
    width: 100%;
    margin-bottom: 30rem;
    padding-bottom: 20rem;
    border-bottom: 1px dashed var(--border-color);
}

.rule-section:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.rule-title {
    font-size: 19rem;
    font-weight: 700;
    color: var(--text-basic);
    margin-bottom: 12rem;
    display: flex;
    align-items: center;
    gap: 8rem;
}

.rule-title::before {
    content: '';
    display: inline-block;
    width: 4rem;
    height: 18rem;
    background-color: var(--secondary-color);
    border-radius: 2rem;
}

.rule-content {
    font-size: 16rem;
    color: var(--text-dark);
    padding-left: 12rem;
}

.rule-content p {
    margin-bottom: 6rem;
}

.rule-content ul {
    list-style-type: none;
    padding-left: 15rem;
    margin-top: 6rem;
    margin-bottom: 6rem;
}

.rule-content li {
    position: relative;
    padding-left: 10rem;
    margin-bottom: 4rem;
}

.rule-content li::before {
    content: "";
    position: absolute;
    left: 0;
    color: var(--secondary-color);
    font-weight: bold;
}


/* ==========================================================================
   취업정보
   ========================================================================== */
.job-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.employment-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 28px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}


/* 마우스 호버 시 포인트 효과 */
.employment-card:hover {
    transform: translateY(-3px);
    border-color: var(--secondary-color);
    box-shadow: 0 12px 20px -8px rgba(14, 165, 233, 0.15);
}

/* 상단 취업률 수치 영역 */
.job-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 16rem;
}

.rate-label {
    font-size: 14rem;
    font-weight: 700;
    color: var(--text-muted);
    border: 1px solid var(--border-color);
    background-color: #f4f4f5;
    padding: 4rem 12rem;
    border-radius: 30rem;
}

.rate-number {
    font-size: 58rem;
    font-weight: 900;
    color: var(--primary-color);
    line-height: 1;
    letter-spacing: -1px;
}

.rate-number span {
    font-size: 22rem;
    font-weight: 700;
    color: var(--sub-color);
    margin-left: 2rem;
}

/* 중간 과정명 영역 */
.card-body {
    margin-bottom: 20rem;
}

.course-tag {
    font-size: 13rem;
    color: var(--sub-color);
    font-weight: 700;
    display: inline-block;
    margin-bottom: 6rem;
    text-transform: uppercase;
}

.course-name {
    font-size: 18rem;
    font-weight: 700;
    color: var(--text-dark);
    line-height: 1.4;
    word-break: keep-all;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;

}

/* 하단 교육 기간 영역 */
.card-footer {
    border-top: 1px solid var(--border-color);
    padding-top: 14rem;
    display: flex;
    align-items: center;
    gap: 6rem;
    font-size: 15rem;
    color: var(--text-muted);
}

.calendar-icon {
    color: var(--secondary-color);
    font-weight: bold;
}

.job-grid2 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.info-card {
    position: relative;
    height: 520px;
    /* 세로형 카드 높이 지정 */
    border-radius: 20px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 30px 20px 20px 20px;
    background-color: var(--card-bg);
    background-size: cover;
    background-position: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* 각 카드별 배경 이미지 예시 (원하는 이미지 URL로 대체 가능) */
.info-card:nth-child(1) {
    background-image: url('/img/vision_bg_01.jpg');
}

.info-card:nth-child(2) {
    background-image: url('/img/vision_bg_02.jpg');
}

.info-card:nth-child(3) {
    background-image: url('/img/vision_bg_03.jpg');
}

.info-card:nth-child(4) {
    background-image: url('/img/vision_bg_04.jpg');
}

.info-card:nth-child(5) {
    background-image: url('/img/vision_bg_05.jpg');
}

.info-card:nth-child(6) {
    background-image: url('/img/vision_bg_06.jpg');
}

.info-card:nth-child(7) {
    background-image: url('/img/vision_bg_07.jpg');
}

.info-card:nth-child(8) {
    background-image: url('/img/vision_bg_08.jpg');
}

/* 배경 이미지 위 텍스트 가독성을 위한 어두운 그라데이션 오버레이 */
.info-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 30%, rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 0.9) 100%);
    z-index: 1;
}

.info-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 20px rgba(0, 0, 0, 0.3);
}

/* 텍스트 내용들을 오버레이 위로 올림 */
.card-header {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.card-body,
.card-footer2 {
    position: relative;
    z-index: 2;
}

/* 상단 타이틀 스타일 */
.keyword-badge {
    font-size: 14rem;
    font-weight: 700;
    color: #eeeeee;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 5px;
    opacity: 0.9;
}

.main-title {
    font-size: 25rem;
    font-weight: 800;
    color: #fff;
    line-height: 1.3;
    word-break: keep-all;
}

.sub-text {
    display: block;
    font-size: 14rem;
    color: #787f8d;
    font-weight: normal;
    margin-top: 4px;
    font-weight: 600;
}

/* 본문 상세 스타일 정리 */
.card-body {
    margin-top: auto;
    /* 본문을 아래쪽으로 밀어내어 하단 버튼 위에 안착 */
    margin-bottom: 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.info-row {
    display: flex;
    align-items: center;
    gap: 6px;
}

.row-label {
    font-size: 13rem;
    font-weight: 800;
    padding: 1px 5px;
    border-radius: 4px;
    white-space: nowrap;
}

.label-core {
    background: rgba(59, 130, 246, 0.2);
    color: #93c5fd;
    border: 1px solid rgba(59, 130, 246, 0.4);
}

.label-strength {
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    border: 1px solid rgba(16, 185, 129, 0.4);
}

.label-caution {
    background: rgba(249, 115, 22, 0.2);
    color: #fdba74;
    border: 1px solid rgba(249, 115, 22, 0.4);
}

.row-text {
    color: #e5e7eb;
    font-size: 13rem;
    font-weight: 500;
    word-break: keep-all;
}

/* 이미지 속 하단 타원형 'Discover More' 버튼 스타일 */
.card-footer2 .btn-more {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--bg-popover);
    color: var(--text-basic);
    text-decoration: none;
    padding: 12px 20px;
    border-radius: 30px;
    font-size: 14rem;
    font-weight: 700;
    transition: background 0.2s;
}

.card-footer2 .btn-more:hover {
    background: #f3f4f6;
}

.modal-name2 {
    font-size: 30rem;
    font-weight: 800;
    color: var(--text-dark);
    margin: 0 0 5rem 0;
}

/* 취업전망 전용 모달 크기 재지정 */
.vision-modal-content {
    width: 800rem;
    height: 650rem;
}

/* Swiper 슬라이더 커스텀 스타일 */
.vision-swiper {
    width: 100%;
    padding: 10rem 0 50rem 0 !important;
    position: relative;
    overflow: hidden;
}

.vision-swiper .swiper-wrapper {
    align-items: stretch;
}

.vision-swiper .swiper-slide {
    height: 520rem !important;
    display: flex;
}

/* Swiper 좌우 네비게이션 버튼 커스텀 */
.vision-swiper-container .swiper-button-prev,
.vision-swiper-container .swiper-button-next {
    color: #ffffff;
    background-color: rgba(15, 23, 42, 0.6);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    transition: background-color 0.2s, transform 0.2s;
    z-index: 10;
    top: calc(330rem);
}

.vision-swiper-container .swiper-button-prev::after,
.vision-swiper-container .swiper-button-next::after {
    font-size: 16rem;
    font-weight: bold;
}

.vision-swiper-container .swiper-button-prev:hover,
.vision-swiper-container .swiper-button-next:hover {
    background-color: var(--primary-color);
    transform: scale(1.05);
}

.vision-swiper-container .swiper-button-prev {
    left: -22rem;
}

.vision-swiper-container .swiper-button-next {
    right: -22rem;
}

/* 페이지네이션 도트 스타일 */
.vision-swiper .swiper-pagination-bullet {
    background: #cbd5e1;
    opacity: 0.8;
    width: 10rem;
    height: 10rem;
    transition: all 0.3s ease;
}

.vision-swiper .swiper-pagination-bullet-active {
    background: var(--primary-color);
    opacity: 1;
    width: 24rem;
    border-radius: 5rem;
}

/* ==========================================================================
   원서접수 (Admission Apply Form) 프리미엄 스타일
   ========================================================================== */


.admission-tabs {
    background-color: #ffffff;
    border-bottom: 1px solid #e2e8f0;
    margin-bottom: 50rem;
    width: 100%;
    height: 101rem;
}

.admission-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 35rem;
    margin-top: 90rem;
}

/* 과정 카드 전용 프리미엄 스타일 */
.admission-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 16rem;
    padding: 24rem;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    box-shadow: 0 4rem 15rem rgba(0, 0, 0, 0.02);
}

.admission-card:hover {
    transform: translateY(-0rem);
    border-color: var(--text-basic);
    box-shadow: 0 20rem 35rem rgba(20, 87, 175, 0.1);
}

/* 1. 이미지 (4:3 비율) 래퍼 */
.admission-img-wrap {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 10rem;
    position: relative;
    margin-bottom: 16rem;
    background-color: #f4f4f5;
}

.admission-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.admission-card:hover .admission-img-wrap img {
    transform: scale(1.05);
}

.admission-badge {
    position: absolute;
    top: 12rem;
    right: 12rem;
    font-size: 13rem;
    font-weight: 700;
    color: #ef4444;
    border: 1px solid #fee2e2;
    background-color: #fef2f2;
    padding: 4rem 12rem;
    border-radius: 30rem;
    white-space: nowrap;
    z-index: 2;
}

.admission-badge.free {
    color: #10b981;
    border-color: #d1fae5;
    background-color: #ecfdf5;
}

/* 2. 수강신청 / 상세보기 버튼 그룹 */
.admission-btn-group {
    display: flex;
    gap: 8rem;
    margin-bottom: 18rem;
}

.admission-btn-group .btn-apply {
    flex: 1;
    text-align: center;
    background-color: var(--primary-color);
    color: #ffffff !important;
    padding: 10rem 0;
    border-radius: 8rem;
    font-size: 14rem;
    font-weight: 700;
    transition: background-color 0.2s;
    text-decoration: none;
}

.admission-btn-group .btn-apply:hover {
    background-color: #0d3972;
}

.admission-btn-group .btn-detail {
    flex: 1;
    text-align: center;
    border: 1px solid #aaaaaa;
    background-color: #ffffff;
    color: var(--text-dark) !important;
    padding: 10rem 0;
    border-radius: 8rem;
    font-size: 14rem;
    font-weight: 700;
    transition: all 0.2s;
    text-decoration: none;
}

.admission-btn-group .btn-detail:hover {
    background-color: #f8fafc;
    border-color: var(--text-basic);
}

/* 3. 간략 설명 */
.admission-summary {
    font-size: 13.5rem;
    color: var(--sub-color);
    font-weight: 700;
    margin-bottom: 8rem;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 4. 과정명 */
.admission-course-title {
    font-size: 20rem;
    font-weight: 800;
    color: var(--text-dark);
    line-height: 1.3;
    margin-bottom: 18rem;
    /* word-break: keep-all; */
    text-align: left;
    min-height: 52rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-clamp: 2;
    letter-spacing: -0.2rem;
}

/* 5. 교육기간 & 6. 본인부담금 정보 리스트 */
.admission-info-list {
    border-top: 1px dashed #e2e8f0;
    padding-top: 16rem;
    display: flex;
    flex-direction: column;
    gap: 8rem;
    margin-top: auto;
}

.admission-info-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14rem;
    color: var(--text-muted);
}

.admission-info-item strong {
    color: var(--text-dark);
    font-weight: 600;
}

.admission-price {
    color: var(--primary-color);
    font-weight: 800;
    font-size: 15rem;
}

.admission-price.free {
    color: #10b981;
}

.admission-subsidy {
    font-size: 11.5rem;
    color: #71717a;
    text-align: right;
    margin-top: -4rem;
}

@media (max-width: 1024px) {
    .admission-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 30rem;
    }
}

@media (max-width: 768px) {
    .admission-grid {
        grid-template-columns: 1fr;
        gap: 20rem;
    }

    .admission-card {
        padding: 24rem;
    }
}

/* ==========================================================================
   로그인 페이지 전용 스타일 (Login Page Styling)
   ========================================================================== */
.login-wrapper {
    width: 480rem;
    padding: 40rem;
    border: 1px solid var(--border-color);
    border-radius: 12rem;
    box-shadow: 0 4rem 20rem rgba(0, 0, 0, 0.03);
    background-color: #ffffff;
    text-align: center;
    margin-bottom: 80rem;
    margin-top: 40rem;
}

.login-title {
    font-size: 24rem;
    font-weight: 800;
    color: var(--text-dark);
    margin-bottom: 30rem;
}

.login-form-group {
    display: flex;
    flex-direction: column;
    gap: 16rem;
    margin-bottom: 20rem;
    text-align: left;
}

.login-input-wrap {
    display: flex;
    flex-direction: column;
    gap: 6rem;
}

.login-input-wrap label {
    font-size: 14.5rem;
    font-weight: 700;
    color: var(--text-dark);
}

.login-input {
    height: 48rem;
    padding: 10rem 16rem;
    font-size: 15rem;
    border: 1px solid var(--border-color);
    border-radius: 8rem;
    outline: none;
    background-color: #fafafa;
    transition: all 0.25s ease;
}

.login-input:focus {
    border-color: var(--primary-color);
    background-color: #ffffff;
    box-shadow: 0 0 0 3px rgba(20, 87, 175, 0.1);
}

.login-options {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14rem;
    color: var(--text-muted);
    margin-bottom: 30rem;
}

.login-options label {
    display: flex;
    align-items: center;
    gap: 6rem;
    cursor: pointer;
}

.login-options input[type="checkbox"] {
    width: 16rem;
    height: 16rem;
    accent-color: var(--primary-color);
}

.login-options a {
    color: var(--sub-color);
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s;
}

.login-options a:hover {
    color: var(--primary-color);
    text-decoration: underline;
}

.btn-login-submit {
    width: 100%;
    height: 52rem;
    background-color: var(--primary-color);
    color: #ffffff;
    border: none;
    border-radius: 8rem;
    font-size: 16.5rem;
    font-weight: 700;
    cursor: pointer;
    transition: background-color 0.2s, transform 0.1s;
}

.btn-login-submit:hover {
    background-color: #0d3972;
}

.btn-login-submit:active {
    transform: scale(0.98);
}

.login-signup-link {
    margin-top: 24rem;
    padding-top: 20rem;
    border-top: 1px solid #f4f4f5;
    font-size: 14.5rem;
    color: var(--text-muted);
}

.login-signup-link a {
    color: var(--sub-color);
    font-weight: 700;
    margin-left: 6rem;
    text-decoration: none;
    transition: color 0.2s;
}

.login-signup-link a:hover {
    color: var(--primary-color);
    text-decoration: underline;
}


/* ==========================================================================
   아이디/비밀번호 찾기 페이지 전용 스타일 (ID/PW Search Styling)
   ========================================================================== */
.search-wrapper {
    width: 500rem;
    padding: 40rem;
    border: 1px solid var(--border-color);
    border-radius: 12rem;
    box-shadow: 0 4rem 20rem rgba(0, 0, 0, 0.03);
    background-color: #ffffff;
    margin-bottom: 80rem;
    margin-top: 40rem;
}

.search-section {
    margin-bottom: 40rem;
    padding-bottom: 35rem;
    border-bottom: 1px solid #f4f4f5;
}

.search-section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.search-title {
    font-size: 20rem;
    font-weight: 800;
    color: var(--text-dark);
    margin-bottom: 20rem;
    text-align: left;
}

.search-form-group {
    display: flex;
    flex-direction: column;
    gap: 12rem;
    margin-bottom: 20rem;
    text-align: left;
}

.search-input-wrap {
    display: flex;
    flex-direction: column;
    gap: 6rem;
}

.search-input-wrap label {
    font-size: 14rem;
    font-weight: 700;
    color: var(--text-dark);
}

.search-input {
    height: 46rem;
    padding: 10rem 14rem;
    font-size: 14.5rem;
    border: 1px solid var(--border-color);
    border-radius: 8rem;
    outline: none;
    background-color: #fafafa;
    transition: all 0.25s ease;
}

.search-input:focus {
    border-color: var(--primary-color);
    background-color: #ffffff;
    box-shadow: 0 0 0 3px rgba(20, 87, 175, 0.1);
}

.btn-search-id {
    width: 100%;
    height: 46rem;
    background-color: #ffffff;
    border: 1px solid var(--primary-color);
    color: var(--primary-color);
    border-radius: 8rem;
    font-size: 15rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
}

.btn-search-id:hover {
    background-color: rgba(20, 87, 175, 0.05);
    border-color: #0d3972;
    color: #0d3972;
}

.btn-search-pw {
    width: 100%;
    height: 46rem;
    background-color: var(--primary-color);
    border: none;
    color: #ffffff;
    border-radius: 8rem;
    font-size: 15rem;
    font-weight: 700;
    cursor: pointer;
    transition: background-color 0.2s;
}

.btn-search-pw:hover {
    background-color: #0d3972;
}

@media (max-width: 576px) {
    .search-wrapper {
        width: 100%;
        padding: 30rem 20rem;
        border: none;
        box-shadow: none;
    }
}

/* ==========================================================================
   수강신청 페이지 전용 스타일 (Admission Apply Styling)
   ========================================================================== */
.apply-table-wrapper {
    width: 100%;
    margin-bottom: 40rem;
    border-top: 0px solid var(--primary-color);
    border-bottom: 0px solid var(--border-color);
}

.apply-form-table {
    width: 100%;
    border-collapse: collapse;
    text-align: left;
}

.apply-form-table th {
    background-color: #f8fafc;
    color: var(--text-dark);
    font-size: 15rem;
    font-weight: 700;
    padding: 16rem 20rem;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
    vertical-align: middle;
}

.apply-form-table td {
    padding: 16rem 20rem;
    border-bottom: 1px solid var(--border-color);
    vertical-align: middle;
    background-color: #ffffff;
    text-align: left;
}

.apply-form-table .required {
    color: #ef4444;
    margin-left: 2rem;
}

.apply-form-table tr:last-child td {
    border-bottom: 1px solid var(--border-color);

}

/* 입력 필드 공통 */
.form-input,
.form-select {
    height: 46rem;
    padding: 10rem 14rem;
    font-size: 15rem;
    border: 1px solid var(--border-color);
    border-radius: 8rem;
    outline: none;
    background-color: #fafafa;
    transition: all 0.25s ease;
    box-sizing: border-box;
}

.form-input:focus,
.form-select:focus {
    border-color: var(--primary-color);
    background-color: #ffffff;
    box-shadow: 0 0 0 3px rgba(20, 87, 175, 0.1);
}

.form-input[readonly],
.form-select[readonly] {
    background-color: #f1f3f5;
    color: #868e96;
    cursor: default;
}

/* 입력 필드 너비 유틸리티 */
.w-150 {
    width: 150rem !important;
}

.w-200 {
    width: 200rem !important;
}

.w-300 {
    width: 300rem !important;
}

.w-400 {
    width: 400rem !important;
}

.w-full {
    width: 100% !important;
}

/* 라디오 버튼 그룹 */
.radio-group {
    display: flex;
    gap: 20rem;
    align-items: center;
}

.radio-label {
    display: flex;
    align-items: center;
    gap: 8rem;
    font-size: 15rem;
    font-weight: 500;
    color: var(--text-basic);
    cursor: pointer;
}

.radio-label input[type="radio"] {
    width: 18rem;
    height: 18rem;
    accent-color: var(--primary-color);
    cursor: pointer;
}

/* 서브 버튼 (우편번호 검색 등) */
.btn-zip-code {
    height: 46rem;
    padding: 0 20rem;
    background-color: #ffffff;
    border: 1px solid var(--primary-color);
    color: var(--primary-color);
    font-size: 14.5rem;
    font-weight: 600;
    border-radius: 8rem;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}

.btn-zip-code:hover {
    border: 1px solid var(--text-basic);
    background-color: #F1F3F5;
    color: var(--text-dark)
}

/* 간격 조정 및 정렬 */
.g-10 {
    gap: 10rem;
}

.mb-10 {
    margin-bottom: 10rem;
}

/* 개인정보 동의 박스 */
.apply-agree-box {
    margin-top: 30rem;
    margin-bottom: 40rem;
    padding: 24rem;
    border: 1px solid var(--border-color);
    border-radius: 12rem;
    background-color: #f8fafc;
}

.agree-label {
    display: flex;
    align-items: center;
    gap: 10rem;
    font-size: 15rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 10rem;
    cursor: pointer;
}

.agree-label input[type="checkbox"] {
    width: 18rem;
    height: 18rem;
    accent-color: var(--primary-color);
    cursor: pointer;
}

.agree-desc {
    font-size: 13.5rem;
    color: var(--text-muted);
    line-height: 1.6;
    padding-left: 28rem;
}

/* 신청 버튼 영역 */
.apply-btn-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 80rem;
}

.btn-apply-submit {
    width: 240rem;
    height: 54rem;
    background-color: var(--primary-color);
    color: #ffffff;
    border: none;
    border-radius: 8rem;
    font-size: 17rem;
    font-weight: 700;
    cursor: pointer;
    transition: background-color 0.2s, transform 0.1s;
    box-shadow: 0 4rem 12rem rgba(20, 87, 175, 0.2);
}

.btn-apply-submit:hover {
    background-color: #0d3972;
    transform: translateY(-0rem);
}

.btn-apply-submit:active {
    transform: translateY(0rem);
}

/* 반응형 테이블 디자인 */
@media (max-width: 768px) {

    .apply-form-table th,
    .apply-form-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }

    .apply-form-table th {
        border-bottom: none;
        padding-bottom: 6rem;
        background-color: transparent;
    }

    .apply-form-table td {
        padding-top: 6rem;
    }

    .form-input.w-150,
    .form-input.w-200,
    .form-input.w-300,
    .form-input.w-400 {
        width: 100% !important;
    }

    .agree-desc {
        padding-left: 0;
    }
}


/* ==========================================================================
   교육과정안내
   ========================================================================== */

.cont-title {
    font-size: 25rem;
    padding-bottom: 30rem;
    font-weight: 700;
}

.course-info-section {
    padding-top: 60rem;
    max-width: 1200rem;
    margin: 0 auto;
}

.course-info-item {
    margin-bottom: 30rem;
}

.course-info-item.w-full {
    width: 100%;
}

.course-info-item.mb-0 {
    margin-bottom: 0;
}

.course-info-sub-title {
    font-size: 19rem;
    font-weight: 700;
    color: var(--primary-color);
    margin-bottom: 10rem;
}

.course-info-desc {
    font-size: 17rem;
    color: var(--text-basic);
    line-height: 1.6;
}

.course-info-desc.mb-0 {
    margin-bottom: 0;
}

.course-info-desc.mb-10 {
    margin-bottom: 10rem;
}

.course-info-list {
    list-style: disc;
    padding-left: 20rem;
    font-size: 16rem;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    gap: 6rem;
    margin-bottom: 0rem;
}

.course-info-list.mb-10 {
    margin-bottom: 10rem;
}

.course-info-list.gap-4 {
    gap: 4rem;
}

.course-info-list.f-135 {
    font-size: 15rem;
}

.course-info-tip-box {
    background-color: #f8fafc;
    border: 1px solid var(--border-color);
    border-radius: 8rem;
    padding: 20rem;
    line-height: 1.6;
}

.course-info-tip-title {
    color: var(--text-dark);
    display: block;
    margin-bottom: 6rem;
    font-size: 14.5rem;
}

.course-info-tip-desc {
    font-size: 15rem;
    color: var(--text-basic);
    margin-bottom: 8rem;
}

.course-info-tip-note {
    font-size: 14rem;
    color: var(--text-muted);
    display: block;
    line-height: 1.5;
    margin-bottom: 5rem;
}

.course-info-caution-text {
    font-size: 15rem;
    color: #ef4444;
    display: block;
    font-weight: 700;
    margin-bottom: 15rem;
}

.btn-course-link {
    display: inline-block;
    margin-left: 10rem;
    padding: 5rem 12rem;
    background-color: #ffffff;
    border: 1px solid #ccc;
    color: var(--text-basic);
    font-size: 13rem;
    font-weight: 700;
    border-radius: 8rem;
    text-decoration: none;
    transition: all 0.2s;
}

.btn-course-link:hover {
    background-color: var(--sub-color);
    color: #ffffff;
    border: 1px solid var(--sub-color);
}

.course-info-steps {
    display: flex;
    flex-direction: column;
    gap: 25rem;
    width: 100%;
}

.course-info-step-item {
    border-left: 3px solid var(--primary-color);
    padding-left: 15rem;
}

.course-info-step-title {
    font-size: 18rem;
    color: var(--text-dark);
    display: block;
    margin-bottom: 6rem;
}

.course-info-step-desc {
    font-size: 16rem;
    color: var(--text-muted);
    display: block;
    line-height: 1.6;
}

.course-info-step-note {
    font-size: 13rem;
    color: var(--text-muted);
    font-weight: 500;
}

.btn-course-step-link {
    display: inline-block;
    margin-left: 5rem;
    padding: 2rem 8rem;
    border: 1px solid var(--border-color);
    border-radius: 4rem;
    font-size: 12rem;
    color: var(--primary-color);
    text-decoration: none;
    font-weight: 700;
}

.btn-course-step-link:hover {
    background-color: #f1f5f9;
}

.course-info-step-warning {
    font-size: 13rem;
    color: #ef4444;
    font-weight: 700;
}

/* 공통 레이어 모달 */
.custom-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.custom-modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

.custom-modal-content {
    background-color: #fff;
    width: 90%;
    max-width: 420px;
    padding: 25px;
    border-radius: 8px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    transform: scale(0.85);
    transition: transform 0.3s ease;
    text-align: center;
}

.custom-modal-overlay.active .custom-modal-content {
    transform: scale(1);
}

.custom-modal-header {
    font-size: 18px;
    font-weight: 600;
    color: #333;
    margin-bottom: 15px;
}

.custom-modal-body {
    font-size: 15px;
    color: #666;
    line-height: 1.6;
    margin-bottom: 20px;
}

.custom-modal-body .temp-password-box {
    background-color: #f8f9fa;
    border: 1px dashed #ced4da;
    padding: 10px;
    font-size: 20px;
    font-weight: 700;
    color: #d9534f;
    letter-spacing: 1px;
    margin: 15px 0;
    border-radius: 4px;
    user-select: all;
    /* 더블클릭 시 전체 선택 */
}

.custom-modal-footer {
    display: flex;
    justify-content: center;
}

.custom-modal-close-btn {
    background-color: #3f51b5;
    color: #fff;
    border: none;
    padding: 10rem 24rem;
    font-size: 14rem;
    font-weight: 600;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.custom-modal-close-btn:hover {
    background-color: #303f9f;
}

body.modal-open {
    overflow: hidden;
}




.curri-view-header {
    margin-top: -130rem;
    padding: 100rem 0 50rem;
    border-bottom: 1px solid #e6e6e6;
}

.curri_title {
    font-weight: 700;
    color: #444;
    letter-spacing: 0rem;
    font-size: 44rem;
    max-width: 1200rem;
    margin: 0 auto;
}

.curri_title-cate {
    font-weight: 500;
    color: #888;
    padding: 5rem 0rem;
    font-size: 17rem;
}

div.top_bar {
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    font-size: 15rem;
    color: #444;
    font-weight: 400;
}



.hero-meta {
    display: flex;
    align-items: center;
    gap: 12rem;
    margin-bottom: 20rem;
    flex-wrap: wrap;
    max-width: 1200rem;
    margin: 0 auto;
    padding: 5rem 0;
}

.category-badge {
    color: var(--text-basic);
    padding: 6rem 14rem;
    border-radius: 50rem;
    font-size: 13.5rem;
    font-weight: 500;
    background-color: #efefef;
    border: 1px solid var(--border-color);
}

.state-badge {
    background-color: #3b82f6;
    color: #ffffff;
    padding: 6rem 14rem;
    border-radius: 50rem;
    font-size: 13.5rem;
    font-weight: 700;
}

.state-badge.state-모집중 {
    background-color: #10b981;
}

.state-badge.state-모집예정 {
    background-color: #f59e0b;
}

.state-badge.state-교육중 {
    background-color: #3b82f6;
}

.state-badge.state-수료 {
    background-color: #6b7280;
}

.hero-tags {
    gap: 15rem;
    font-size: 15rem;
    color: #797979;
    max-width: 1200rem;
    margin: 0 auto;
}

.hero-tags span {
    display: flex;
    align-items: center;
    gap: 5px;
}

.hero-tags span::before {
    content: '#';
    color: #6491db;
    font-weight: bold;
}

.course-view-container {
    max-width: 1200rem;
    margin: 60rem auto 80rem;
    padding: 0 0px;
    color: #1e293b;
    font-size: 16rem;
}

/* 2단 구성 */
.course-details-layout {
    display: grid;
    grid-template-columns: 8fr 4fr;
    gap: 40rem;
}

.section-headline {
    font-size: 22rem;
    font-weight: 700;
    margin-bottom: 24rem;
    padding-bottom: 12rem;
    border-bottom: 2px solid #e2e8f0;
    position: relative;
    color: #0f172a;
}

.section-headline::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 100rem;
    height: 2px;
    background-color: #3b82f6;
}

/* 훈련목표 */
.summary-box {
    background-color: #f8fafc;
    padding: 24rem;
    border-radius: 12rem;
    font-size: 15rem;
    margin-bottom: 40rem;
    white-space: pre-wrap;
    line-height: 1.6;
}



/* 지원 혜택 테이블 스타일 */
.benefit-list {
    display: flex;
    flex-direction: column;
    gap: 16rem;
    margin-bottom: 45rem;
}

.benefit-item {
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12rem;
    padding: 20rem;
    display: grid;
    grid-template-columns: 150rem 1fr;
    gap: 20rem;
    align-items: center;
}

.benefit-title {
    font-weight: 700;
    color: #0f172a;
    font-size: 16rem;
    display: flex;
    align-items: center;
    gap: 8rem;
}

.benefit-title::before {
    content: '';
    display: inline-block;
    width: 6rem;
    height: 6rem;
    background-color: #3b82f6;
    border-radius: 50%;
}

.benefit-content {
    color: #475569;
    font-size: 15rem;
    line-height: 1.6;
    white-space: pre-wrap;
}

.curri-teach {
    display: grid;
    grid-template-columns: 175rem 1fr;
    gap: 20rem;
}

.curri-teach-img {
    width: 100%;
    max-width: 150rem;
}

.curri-teach-name {
    max-width: 150rem;
    text-align: center;
    font-size: 16rem;
    font-weight: 600;
    margin-top: 10rem
}

.curri-teach-img img {
    border-radius: 10rem;
}

.curri-teach-con dt {
    font-size: 17rem;
    font-weight: 600;
}

.bottom-actions {
    margin-top: 50rem;
    border-top: 1px solid #e2e8f0;
    padding-top: 30rem;
    display: flex;
    justify-content: center;
}

.btn-list-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12rem 30rem;
    border: 1px solid #c6c6c6;
    background-color: #f5f5f5;
    color: #444;
    font-size: 15rem;
    font-weight: 500;
    border-radius: 4rem;
    transition: all .3s ease;
}

.btn-list-back:hover {
    border: 1px solid #666;
    color: #222;
    transition: all .3s ease;
}

.btn-action-primary {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 52rem;
    background-color: #1e3a8a;
    color: #ffffff;
    font-size: 16rem;
    font-weight: 700;
    border-radius: 10rem;
    text-decoration: none;
    transition: background-color 0.2s, transform 0.1s;
    border: none;
    cursor: pointer;
}

.btn-action-primary:hover {
    background-color: #1d4ed8;
}

.btn-action-primary:active {
    transform: scale(0.98);
}

a.btn-action-primary {
    color: #ffffff;
}

.btn-action-secondary {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 50rem;
    background-color: #ffffff;
    border: 1.5px solid #cbd5e1;
    color: #475569;
    font-size: 16rem;
    font-weight: 700;
    border-radius: 10rem;
    text-decoration: none;
    transition: all 0.2s;
}

.btn-action-secondary:hover {
    border-color: #94a3b8;
    background-color: #f8fafc;
    color: #1e293b;
}

.contact-info-box {
    margin-top: 20rem;
    border-top: 1px solid #f1f5f9;
    padding-top: 20rem;
}

.contact-phone {
    font-size: 22rem;
    font-weight: 800;
    color: #1e3a8a;
    display: flex;
    align-items: center;
    gap: 8rem;
    margin-top: 6rem;
}


/* 우측 사이드바 */
.sidebar-sticky {
    position: sticky;
    top: 120rem;
    display: flex;
    flex-direction: column;
    gap: 25rem;
}

.sidebar-card {
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 16rem;
    padding: 24rem;
    box-shadow: 0 4rem 12rem rgba(0, 0, 0, 0.02);
}

.sidebar-image-wrap {
    border-radius: 12rem;
    overflow: hidden;
    border: 1px solid #e2e8f0;
    margin-bottom: 20rem;
    background-color: #f8fafc;
    display: flex;
    justify-content: center;
    align-items: center;
    aspect-ratio: 4/3;
}

.sidebar-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sidebar-btn-group {
    display: flex;
    flex-direction: column;
    gap: 12rem;
}

.sidebar-info {
    margin-bottom: 20rem;
    font-size: 16rem;
    display: grid;
    grid-template-columns: 100rem 1fr;
}

.sidebar-info-title {
    font-size: 15rem;
    font-weight: 600;
    margin-bottom: 3rem;
    display: flex;
    align-items: center;
    gap: 5rem;
}

.sidebar-info-title::before {
    content: '';
    display: inline-block;
    width: 5rem;
    height: 5rem;
    background-color: #4e84db;
    border-radius: 50%;
}

.sidebar-info-body {
    font-size: 15rem;
    color: #64748b;
}

/* Swiper Main Slide Custom */
.mySwiper {
    max-width: 1600rem;
    width: 100%;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    border-radius: 20rem;
    aspect-ratio: 16 / 6.8;
}


.mySwiper .swiper-slide {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.mySwiper .swiper-slide img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transform: scale(1);
    transition: transform 0.3s ease-out;
    will-change: transform;
}

.mySwiper .swiper-slide.zoom-active img {
    transform: scale(1.05);
    transition: transform 7s cubic-bezier(0.25, 1, 0.5, 1);
}

/* 네비게이션 버튼 및 페이징 버튼 색상 커스텀 */
.mySwiper .swiper-button-next,
.mySwiper .swiper-button-prev {
    color: #a3a3a3;
}

.mySwiper .swiper-pagination-bullet-active {
    background: #dddddd;
}

/* Swiper Autoplay Progress Timer Custom */
.autoplay-progress {
    position: absolute;
    right: 24rem;
    bottom: 24rem;
    z-index: 10;
    width: 48rem;
    height: 48rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13rem;
    font-weight: 700;
    color: #ffffff;
    background: rgba(0, 0, 0, 0.4);
    border-radius: 50%;
    box-shadow: 0 4rem 12rem rgba(0, 0, 0, 0.15);
}

.autoplay-progress svg {
    --progress: 0;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 10;
    width: 100%;
    height: 100%;
    stroke-width: 4rem;
    stroke: #dddddd;
    /* 타이머 진행선 색상 */
    fill: none;
    stroke-dasharray: 125.66;
    stroke-dashoffset: calc(125.66 * (1 - var(--progress)));
    transform: rotate(-90deg);
    /* 12시 방향부터 타이머가 깎이도록 회전 */
    transition: stroke-dashoffset 0.1s linear;
    /* 부드러운 움직임 보정 */
}

/* Swiper Controls (Play/Pause & Pagination) */
.swiper-controls {
    position: absolute;
    left: 70rem;
    bottom: 40rem;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 14rem;
    background: rgba(0, 0, 0, 0.4);
    padding: 10rem 18rem;
    border-radius: 20rem;
    color: #ffffff;
    box-shadow: 0 4rem 12rem rgba(0, 0, 0, 0.15);
}

.btn-autoplay-toggle {
    background: none;
    border: none;
    color: #ffffff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    width: 16rem;
    height: 16rem;
    outline: none;
    transition: opacity 0.2s ease;
}

.btn-autoplay-toggle:hover {
    opacity: 0.8;
}

/* Swiper Fraction Pagination Reset */
.swiper-controls .swiper-pagination {
    position: static !important;
    /* 기본 absolute 포지션 무력화 */
    width: auto !important;
    font-size: 14rem;
    font-weight: 600;
    color: #ffffff;
    line-height: 1;
    letter-spacing: 0.5px;
}

/* 현재 페이지 강조 및 사선 색상 조정 */
.swiper-controls .swiper-pagination-current {
    font-weight: 700;
    color: #ffffff;
}

.swiper-controls .swiper-pagination-total {
    color: rgba(255, 255, 255, 0.6);
}

.page-content-main {
    max-width: 1600rem;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    margin-top: 75rem;
}

.page-content-main-100 {
    max-width: 100%;
    margin: 0;
    position: relative;
    overflow: hidden;
    margin-top: 75rem;
}

.section-title-main {
    font-size: 55rem;
    font-weight: 800;
    color: #222222;
    text-align: center;
    margin-bottom: 55rem;
}

.section-title-main-left {
    font-size: 55rem;
    font-weight: 800;
    color: #222222;
    text-align: left;
    line-height: 1.2;
    margin-top: 10rem;

}

.recruitingSwiper {
    max-width: 1600rem;
    margin: 0 auto;
    padding: 0rem 0rem;
    position: relative;
    overflow: hidden;
}

/* [추가] 양 끝 카드의 보더라인 및 그림자 잘림 방지 */
.recruitingSwiper .swiper-wrapper {
    padding: 0px 0px;
    /* 좌우 패딩을 균등하게 4px로 조절 */
    box-sizing: border-box;
}

/* [추가] 4개 이하 정지 상태일 때 마지막 카드의 불필요한 우측 마진을 없애 대칭 정렬 보정 */
.recruitingSwiper.recruiting-locked .swiper-slide:last-child {
    margin-right: 0 !important;
}

/* recruiting Swiper Arrows */
.recruitingSwiper .recruiting-next,
.recruitingSwiper .recruiting-prev {
    color: #475569;
    width: 44rem;
    height: 44rem;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 50%;
    box-shadow: 0 4rem 6rem -1rem rgba(0, 0, 0, 0.05), 0 2rem 4rem -1rem rgba(0, 0, 0, 0.03);
    transition: all 0.2s ease;
}

.recruitingSwiper .recruiting-next:after,
.recruitingSwiper .recruiting-prev:after {
    font-size: 16rem;
    font-weight: 800;
}

.recruitingSwiper .recruiting-next:hover,
.recruitingSwiper .recruiting-prev:hover {
    background: #f8fafc;
    border-color: #cbd5e1;
    color: #1e293b;
}

.recruitingSwiper .recruiting-prev {
    left: 5rem;
}

.recruitingSwiper .recruiting-next {
    right: 5rem;
}

/* Swiper 4개 이하 Lock 걸렸을 때 화살표 숨김 */
.recruitingSwiper .swiper-button-lock {
    display: none !important;
}

.recruitingSwiper {
    /* 하단 스크롤바가 들어올 공간(padding-bottom)을 추가로 확보합니다 */
    padding-bottom: 40rem !important;
}

.recruitingSwiper .recruiting-scrollbar {
    position: absolute;
    bottom: 12rem;
    left: 70rem;
    /* 화살표 버튼 안쪽 여백에 맞춤 */
    width: calc(100% - 140rem);
    height: 3rem !important;
    background: #e2e8f0;
    /* 상태바 배경 트랙 색상 */
    border-radius: 10rem;
    opacity: 1 !important;
    /* 항상 노출 */
}

.recruitingSwiper .recruiting-scrollbar .swiper-scrollbar-drag {
    background: #2853ab;
    /* 실제 드래그할 핸들러 색상 */
    border-radius: 10rem;
    cursor: grab;
}

.recruitingSwiper .recruiting-scrollbar .swiper-scrollbar-drag:active {
    cursor: grabbing;
}

/* 4개 이하 잠금 시 및 Swiper 기본 lock 시 스크롤바 비노출 */
.recruitingSwiper.recruiting-locked .recruiting-scrollbar,
.recruitingSwiper .swiper-scrollbar-lock {
    display: none !important;
}

.main-pr {
    max-width: 1600rem;
    margin: 0 auto;
    height: 600rem;
    background: url(/img/main-pr.jpg) center top no-repeat;
    position: relative;
    padding-top: 105rem;
    padding-left: 25rem;
    box-sizing: border-box;
}

.main-pr .pr-title {
    font-size: 48rem;
    color: #ffffff;
    font-weight: 700;
    line-height: 1.2;
}

.main-pr .pr-title span {
    display: block;
    font-size: 24rem;
    color: #ffffff;
    font-weight: 600;
    margin-top: 30rem;
    line-height: 1.3;
}

.pr-num {
    background-color: #ffffff;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30rem;
    max-width: 1150rem;
    border-radius: 20rem;
    height: 136rem;
    margin: 0 auto;
    position: relative;
    z-index: 10;
    top: 65rem;
}

.pr-num div {
    padding-top: 30rem;
    text-align: center;
    font-size: 54rem;
    color: #222;
    font-weight: 800;
    line-height: 1.2;
}

.pr-num div span {
    font-size: 17rem;
    color: #a5a9ac;
    font-weight: 500;
    display: block;
    line-height: 1.4;

}

.pr-num .etc {
    font-size: 13rem;
    color: #8e959a;
    font-weight: 400;
    display: block;
}

.job-certi {
    display: grid;
    grid-template-columns: 4fr 2.5fr 2.5fr;
    gap: 40rem;
}

.section-title-main-left span {
    font-size: 21rem;
    color: #636363;
    font-weight: 400;
    display: block;
    line-height: 1.4;
    margin-top: 30rem;
}

.job-certi-card {
    background-color: #0e1b32;
    border-radius: 14rem;
    padding: 30rem;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.job-certi-card:hover {
    background-color: #112446;
    /* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.68); */
}

.jobCertiSwiper-employment,
.jobCertiSwiper-license {
    width: 100%;
    height: 370rem;
    border-radius: 14rem;
    overflow: hidden;
}

.jobCertiSwiper-employment .job-certi-card,
.jobCertiSwiper-license .job-certi-card {
    height: 100%;
}

.job-certi-card-title {
    background-color: #2d394d;
    border-radius: 100rem;
    font-size: 20rem;
    font-weight: 700;
    color: #ffffff;
    max-width: 165rem;
    margin: 0 auto;
    text-align: center;
    padding: 6rem 0;
}

.job-certi-card-percent {
    font-size: 110rem;
    font-weight: 900;
    color: #fd8643;
    text-align: center;
    padding: 45rem 0 30rem 0;
    line-height: 1;
    letter-spacing: -3px;
}

.job-certi-card-percent-2 {
    color: #5eb9ff;
}

.job-certi-card-percent span {
    font-size: 70rem;
}

.job-certi-card-footer {
    max-width: 100%;
    border-top: 1px solid #283449;
    margin: 0 auto;
}

.job-certi-card-footer span:first-child {
    display: block;
    font-size: 19rem;
    color: #ffffff;
    font-weight: 700;
    margin: 25rem 0 10rem 0;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.job-certi-card-footer span:last-child {
    display: block;
    font-size: 16rem;
    color: #909193;
    font-weight: 500;
}

.news-cate {
    width: 100%;
    margin-top: 20rem;
}

.news-cate .tab-menu {
    display: flex;
    list-style: none;
    gap: 40px;
    padding-left: 0px;
}

.news-cate .tab-menu .tab-item {
    position: relative;
    padding: 15px 0;
}

.news-cate .tab-menu .tab-item a {
    text-decoration: none;
    color: #888888;
    font-size: 20rem;
    font-weight: 500;
    transition: color 0.2s ease;
}

.news-cate .tab-menu .tab-item a:hover {
    color: #222222;
}

.news-cate .tab-menu .tab-item.active a {
    color: #222222;
    font-weight: 800;
}

.news-cate .tab-menu .tab-item::after {
    content: '';
    position: absolute;
    bottom: 0px;
    left: 50%;
    width: 0;
    height: 2rem;
    background-color: var(--primary-color);
    transition: width 0.3s ease;
    transform: translateX(-50%);
}

.news-cate .tab-menu .tab-item.active::after {
    width: 100%;
}



.main-news {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 50rem;
    margin-top: 50rem;
}

.main-news.tab-content {
    display: none;
}

.main-news.tab-content.active {
    display: grid;
}

.news-card .news-card-img {
    width: 100%;
    aspect-ratio: 4 / 2.5;
    overflow: hidden;
    border-radius: 10rem;
    position: relative;
    margin-bottom: 25rem;
    background-color: #f4f4f5;
}

.news-card .news-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.4s ease;
}

.news-card:hover .news-card-img img {
    transform: scale(1.03);
}

.news-card .news-card-title {
    font-size: 19rem;
    color: #363636;
    font-weight: 600;
    margin-bottom: 10rem;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.news-card .news-card-date {
    font-size: 16rem;
    color: #828282;
    font-weight: 400;
}

.partner-wrapper {
    max-width: 1600rem;
    margin: 40rem auto 0 auto;
    position: relative;
    overflow: hidden;
}

.partner-wrapper::before,
.partner-wrapper::after {
    content: "";
    position: absolute;
    top: 0;
    width: 150rem;
    height: 100%;
    z-index: 2;
    pointer-events: none;
}

.partner-wrapper::before {
    left: 0;
    background: linear-gradient(to right, #ffffff, transparent);
}

.partner-wrapper::after {
    right: 0;
    background: linear-gradient(to left, #ffffff, transparent);
}

.partner-container {
    display: flex;
    flex-direction: column;
    gap: 24rem;
    padding: 10rem 0;
}

.banner-row {
    display: flex;
    width: max-content;
}

.banner-track {
    display: flex;
    gap: 20rem;
    padding-right: 20rem;
}

.partner-item {
    width: 200rem;
    height: 60rem;
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    color: #334155;
    box-shadow: 0 2rem 4rem rgba(0, 0, 0, 0.02);

    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    padding: 10rem;
}

.to-left .banner-track {
    animation: scroll-left 45s linear infinite;
}

.to-right .banner-track {
    animation: scroll-right 45s linear infinite;
}

.partner-container:hover .banner-track {
    animation-play-state: paused;
}

@keyframes scroll-left {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-100%);
    }
}

@keyframes scroll-right {
    0% {
        transform: translateX(-100%);
    }

    100% {
        transform: translateX(0);
    }
}



.cs-container {
    width: 100%;
    max-width: 1600rem;
    margin: 0 auto;
    padding: 40rem 20rem;
    text-align: center;
}

.cs-menu {
    display: flex;
    justify-content: center;
    gap: 20rem;
    list-style: none;
    margin-bottom: 15rem;
}

.cs-menu-item {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    color: #333333;
    font-size: 19rem;
    font-weight: 700;
}

.cs-phone {
    margin-bottom: 15rem;
}

.cs-phone a {
    text-decoration: none;
    color: #000000;
    font-size: 54rem;
    font-weight: 800;
    letter-spacing: -1rem;
}

.cs-info {
    color: #666666;
    font-size: 15rem;
    font-weight: 400;
    display: flex;
    justify-content: center;
    align-items: center;
}

.cs-info .divider {
    display: inline-block;
    width: 3rem;
    height: 3rem;
    background-color: #999999;
    border-radius: 50%;
    margin: 0 12rem;
}

@media screen and (max-width: 1600px) {
    .page-content-main {
        padding-left: 20rem;
        padding-right: 20rem;
    }
}


.myinfo-wrapper {
    width: 560rem;
    padding: 40rem;
    border: 1px solid var(--border-color);
    border-radius: 12rem;
    box-shadow: 0 4rem 20rem rgba(0, 0, 0, 0.03);
    background-color: #ffffff;
    margin-bottom: 80rem;
}




/* 팝업 레이어 스타일링 (가로 550rem, 세로 최대 745rem, 화면 정중앙 고정) */
.integrated-popup-wrap {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 550rem;
    max-height: 734rem;
    z-index: 10000;
    background: rgba(255, 255, 255, 0.98);
    border: 0px solid rgba(0, 0, 0, 0.1);
    border-radius: 12rem;
    box-shadow: 0 25rem 55rem rgba(0, 0, 0, 0.3);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.popup-box-container {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.popup-body-content {
    flex: 1;
    background-color: #fff;
    height: 680rem;
    /* 세로 규격 680rem 피팅 */
    max-height: 680rem;
    position: relative;
}

.popup-html-render {
    padding: 0rem;
    font-size: 14rem;
    line-height: 1.6;
    color: #334155;
}

.popup-html-render img {
    max-width: 100% !important;
    height: auto !important;
    display: block;
    margin: 0 auto;
}

.popup-link-wrapper {
    display: block;
    text-decoration: none;
    color: inherit;
}


.popup-swiper {
    width: 100%;
    height: 100%;
    position: relative;
}

.popup-nav-btn {
    width: 35rem !important;
    height: 35rem !important;
    background-color: rgba(30, 41, 59, 0.7);
    border-radius: 50%;
    color: #fff !important;
    transition: background-color 0.2s;
}

.popup-nav-btn:after {
    font-size: 14rem !important;
    font-weight: bold;
}

.popup-nav-btn:hover {
    background-color: rgba(30, 41, 59, 0.95);
}

.swiper-button-prev {
    left: 4rem !important;
}

.swiper-button-next {
    right: 4rem !important;
}

.popup-swiper-controls-bar {
    position: absolute;
    bottom: 10rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 12rem;
    background: rgba(30, 41, 59, 0.5);
    backdrop-filter: blur(8rem);
    -webkit-backdrop-filter: blur(8rem);
    padding: 6rem 14rem;
    border-radius: 30rem;
}

.btn-autoplay-toggle {
    background: none;
    border: none;
    color: #fff;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20rem;
    height: 20rem;
    outline: none;
    transition: opacity 0.2s;
}

.btn-autoplay-toggle:hover {
    opacity: 0.8;
}

.popup-page-counter {
    font-size: 13rem;
    color: #e2e8f0;
    font-weight: 600;
    letter-spacing: 0.5rem;
    user-select: none;
}

.popup-footer-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12rem 20rem;
    background-color: #f8fafc;
    border-top: 1px solid #e2e8f0;
}

.today-hide-label {
    font-size: 14rem;
    font-weight: 500;
    color: #64748b;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6rem;
    user-select: none;
}

.popup-close-btn {
    background-color: #475569;
    color: #fff;
    border: none;
    padding: 6rem 16rem;
    font-size: 14rem;
    font-weight: 500;
    border-radius: 4rem;
    cursor: pointer;
    transition: background-color 0.2s;
}

.popup-close-btn:hover {
    background-color: #334155;
}

/* 모바일 반응형 대응 (중앙 정렬 유지) */
@media (max-width: 576px) {
    .integrated-popup-wrap {
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 92%;
        max-height: 85%;
    }

    .popup-body-content {
        height: auto;
        max-height: 480rem;
    }
}

.join-wrapper {
    width: 560rem;
    padding: 40rem;
    border: 1px solid var(--border-color);
    border-radius: 12rem;
    box-shadow: 0 4rem 20rem rgba(0, 0, 0, 0.03);
    background-color: #ffffff;
    margin-bottom: 80rem;
}


/* ==========================================
   입력창 + 버튼 가로 결합 그룹 (.input-btn-group)
   ========================================== */

/* PC 기본 스타일 */
.input-btn-group {
    display: flex;
    gap: 10rem;
    width: 100%;
    align-items: center;
}

.input-btn-group .form-input {
    flex: 1;
    min-width: 0;
    /* Flex 자식 찌그러짐 방지 치트키 */
    height: 48rem;
    padding: 10rem 16rem;
    font-size: 15rem;
    border: 1px solid var(--border-color);
    border-radius: 8rem;
    outline: none;
    background-color: #fafafa;
    transition: border-color 0.2s, background-color 0.2s;
}

.input-btn-group .form-input:focus {
    border-color: var(--primary-color);
    background-color: #ffffff;
}

.input-btn-group .btn-check {
    height: 48rem;
    padding: 0 20rem;
    background-color: #ffffff;
    border: 1px solid var(--primary-color);
    color: var(--primary-color);
    font-size: 14rem;
    font-weight: 700;
    border-radius: 8rem;
    cursor: pointer;
    white-space: nowrap;
    /* 중복확인 텍스트 줄바꿈 방지 */
    flex-shrink: 0;
    /* 모바일에서 버튼 폭 축소 방지 */
    transition: all 0.2s ease;
}

.input-btn-group .btn-check:hover {
    background-color: var(--primary-color);
    color: #ffffff;
}

/* ==========================================
   768px 미만 모바일 반응형
   ========================================== */
@media (max-width: 767px) {
    .input-btn-group {
        gap: 8px;
    }

    .input-btn-group .form-input {
        height: 44px;
        padding: 8px 12px;
        font-size: 14px;
    }

    .input-btn-group .btn-check {
        height: 44px;
        padding: 0 14px;
        font-size: 13px;
    }
}



@media (max-width: 767px) {

    .search-wrapper,
    .join-wrapper,
    .login-wrapper,
    .myinfo-wrapper {
        width: 100%;
        padding: 30rem 20rem;
        border: none;
        box-shadow: none;
    }


}



/* ==========================================================================
   (1024px 이하 )
   ========================================================================== */

/* 미디어 쿼리 헬퍼 클래스 */
@media (min-width: 1024px) {
    .mobile-only {
        display: none !important;
    }
}

@media (max-width: 1023px) {

    .search-wrapper,
    .join-wrapper,
    .login-wrapper,
    .myinfo-wrapper {
        margin: 0 auto !important;
        max-width: 100%;
    }

    .pc-only {
        display: none !important;
    }

    /* 최상위 레이아웃 컨테이너 안전 구역(Safe Area) 통합 패딩 적용 */
    .header-container,
    #contbody,
    .site-footer .inner {
        padding-left: max(var(--side-padding), env(safe-area-inset-left)) !important;
        padding-right: max(var(--side-padding), env(safe-area-inset-right)) !important;
        box-sizing: border-box;
    }


    .header-container {
        height: 70rem;
    }

    .logo img {
        height: 38rem;
    }

    .logo span {
        font-size: 16rem;
    }

    #subbody {
        padding: 130rem 0 100rem;
    }

    .section-title {
        font-size: 45rem;
        margin: 0 auto 40rem;
    }

    .greet_img img {
        position: relative;
        margin: -100rem 0 80rem 0;
        width: 500rem;
    }

    .sub-desc_team {
        margin: 10rem 0 0 0;
        font-size: 18rem;
    }

    .grid-list {
        flex-direction: column;
        align-items: stretch;
        /* 또는 center (가로 폭 채우기) */
        gap: 24px;
    }

    .cont-right-box,
    .greet-left-box,
    .greet-right-box {
        width: 100%;
        word-break: normal;
    }

    .cont-right-box {
        padding: 0 !important;
    }

    .main-desc_team {
        font-size: 22rem;
    }

    .main-desc_team {
        margin: 0 auto 30rem;
        padding: 0 0 0 0rem;
    }

    .cont-left-box {
        padding-top: 30rem !important;
    }

    .top-line {
        border-top: 0px solid #333;
    }
}


@media (max-width: 1023px) {


    .section-sidebar {
        display: none !important;
    }

    .timeline-line {
        left: 15px !important;
    }

    .section-content {
        width: 100% !important;
        padding-left: 35px !important;
    }

    .history-row .year-dot {
        left: -25.5px !important;
    }

    .history-row .year-label {
        width: 65px !important;
        font-size: 17px !important;
    }

    .history-row .year-list span {
        font-size: 15px !important;
    }
}

@media (max-width: 1023px) {
    .section-title.alone {
        margin: 0 auto 40rem;
    }

    .history-sticky-nav {
        top: 0px !important;
        /* 모바일 헤더(70px) 바로 아래 고정 */
        height: 54px !important;
        margin-bottom: 30px !important;
    }

    .nav-inner {
        width: 100%;
        height: 100%;
    }

    .nav-tab {
        font-size: 14px !important;
        padding: 18px 0 !important;
        max-width: none !important;
    }

    .nav-tab::after {
        height: 2px;
        /* 밑줄 두께 조절 */
    }
}

@media (max-width: 1023px) {
    .admission-tabs {
        height: 54rem;
        margin-bottom: 50rem;
    }

    .admission-grid {
        margin-top: 30rem;
    }

    .main-desc_team {
        font-size: 22rem !important;
    }

    .timeline-container {
        margin-bottom: 0rem;
    }

    .cont-right-box {
        gap: 16px !important;
    }

    .cont-right-box .card {
        width: calc(33.333% - 11px) !important;
        /* 3열 배치 */
    }

    .card .image-box {
        aspect-ratio: 3 / 4;
        height: auto !important;
    }


}

/* ==========================================
   오시는 길 (/info/location) 1024px 이하 반응형
   ========================================== */
@media (max-width: 1023px) {
    .pc-pt60 {
        padding-top: 10rem;
    }

    .map-right-box .map-link {
        height: auto;
    }

    /* 1. 좌측 타이틀 (현대직업전문학교 오시는 길) */
    .map-left-box {
        width: 100% !important;
        font-size: 22px !important;
        font-weight: 700;
        margin-bottom: 0px;
    }

    /* 2. 중앙 출발지안내 및 링크 박스 */
    .map-mid-box {
        width: 100% !important;
        margin-bottom: 24px;
    }

    .map-link-desc {
        font-size: 15px !important;
        color: var(--text-muted);
        margin-bottom: 12px;
        word-break: keep-all;
    }

    /* 출발지 버스/역 링크 버튼 묶음 (모바일 버튼 칩 스타일) */
    .map-track-box {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
    }

    .map-track {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        padding: 10px 16px !important;
        font-size: 14px !important;
        font-weight: 600;
        color: #334155 !important;
        background-color: #f1f5f9;
        border: 1px solid #e2e8f0;
        border-radius: 6px;
        text-decoration: none !important;
        transition: all 0.2s ease;
    }

    .map-track:hover,
    .map-track:active {
        background-color: var(--primary-color);
        color: #ffffff !important;
        border-color: var(--primary-color);
    }

    /* 3. 우측 지도 이미지 약도 영역 */
    .map-right-box {
        width: 100% !important;
    }

    .map-right-box .map-link {
        display: block;
        width: 100%;
    }

    .map-right-box img {
        width: 100% !important;
        /* 이미지 가로 100% 반응형 조절 */
        height: auto !important;
        border-radius: 8px;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    }
}


/* 768px 미만 (모바일): 한 줄에 2명 배치 */
@media (max-width: 767px) {
    .radio-group {
        gap: 8rem;
    }

    .mo-only {
        display: none !important;
    }

    .mo-inline {
        display: inline-block !important;
    }

    .cont-right-box .card {
        width: calc(50% - 8px) !important;
        /* 2열 배치 */
    }

    .card .image-box {
        height: 180px;
        /* 모바일 카드 이미지 높이 비율 최적화 */
    }

    .card .info-name {
        font-size: 16px;
    }

    .card .info-role {
        font-size: 13px;
    }

    .gallery-grid-image {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}


/* ==========================================
   768px 미만 푸터 반응형 (모바일 최적화)
   ========================================== */
@media (max-width: 767px) {

    .greet_img img {
        margin: -30rem 0 50rem 0;
    }

    /* 1. 푸터 상하 여백 조절 */
    .site-footer {
        padding: 40px 0;
    }

    /* 2. 좌우 분할 구조를 세로 1열 정렬로 변경 */
    .site-footer .inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 28px;
    }

    .site-footer .left {
        width: 100%;
        gap: 20px;
    }

    /* 3. 약관/이용안내 링크 줄바꿈 및 간격 조절 */
    .site-footer .link-wrap {
        gap: 10px 18px;
    }

    .site-footer .link {
        font-size: 14px;
    }

    /* 4. 주소 및 연락처 텍스트 모바일 폰트 최적화 */
    .site-footer .info {
        gap: 6px;
    }

    .site-footer .addr {
        gap: 4px 10px;
        font-size: 13px;
        line-height: 1.6;
    }

    .site-footer .copyright {
        font-size: 12px;
        margin-top: 10px;
    }

    /* 5. 우측 뱃지 이미지 정렬 및 크기 축소 */
    .site-footer .right {
        width: 100%;
        align-items: flex-start;
        /* 좌측 정렬로 통일 */
        margin-top: 10px;
    }

    .site-footer .right img {
        width: 100px;
        /* 뱃지 이미지 크기 적절히 축소 */
    }
}















/* 모바일 햄버거 버튼 */
.btn-hamburger {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 26px;
    height: 19px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 1020;
}

.btn-hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background-color: var(--text-dark);
    border-radius: 2px;
    transition: all 0.3s ease;
}

.btn-hamburger.active span:nth-child(1) {
    transform: translateY(8.5px) rotate(45deg);
}

.btn-hamburger.active span:nth-child(2) {
    opacity: 0;
}

.btn-hamburger.active span:nth-child(3) {
    transform: translateY(-8.5px) rotate(-45deg);
}

/* 모바일 네비게이션 드로어 & 오버레이 */
.mobile-navigation-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 2000;
    pointer-events: none;
    visibility: hidden;
    transition: visibility 0.3s;
}

.mobile-navigation-wrapper.active {
    pointer-events: auto;
    visibility: visible;
}

.mobile-nav-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.mobile-navigation-wrapper.active .mobile-nav-overlay {
    opacity: 1;
}

.mobile-nav-drawer {
    position: absolute;
    top: 0;
    right: -320px;
    width: 300px;
    max-width: 85vw;
    height: 100%;
    background-color: #ffffff;
    box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);
    display: flex;
    flex-direction: column;
    transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow-y: auto;
}

.mobile-navigation-wrapper.active .mobile-nav-drawer {
    right: 0;
}

/* 모바일 드로어 헤더 & 회원 영역 */
.mobile-nav-header {
    padding: 24px 20px;
    background-color: #f8fafc;
    border-bottom: 1px solid var(--border-color);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.mobile-user-area {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 80%;
}

.mobile-user-area .user-name {
    font-size: 15px;
    color: var(--text-dark);
}

.mobile-user-area .user-btns {
    display: flex;
    gap: 8px;
}

.mobile-user-area .m-btn {
    display: inline-block;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 4px;
    background-color: var(--primary-color);
    color: #fff !important;
    text-align: center;
}

.mobile-user-area .m-btn.outline {
    background-color: transparent;
    color: var(--primary-color) !important;
    border: 1px solid var(--primary-color);
}

.btn-close-nav {
    background: none;
    border: none;
    font-size: 28px;
    line-height: 1;
    color: #64748b;
    cursor: pointer;
    padding: 0;
}

/* 모바일 네비게이션 아코디언 메뉴 목록 */
.mobile-navigation {
    padding: 10px 0;
    flex: 1;
}

.m-nav-list {
    display: flex;
    flex-direction: column;
}

.m-nav-item {
    border-bottom: 1px solid #f1f5f9;
}

.m-nav-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.m-nav-title:hover,
.m-nav-item.active .m-nav-title {
    background-color: #f8fafc;
}

.m-nav-trigger {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-dark);
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    text-align: left;
    cursor: pointer;
    font-family: inherit;
}

.m-nav-item.active .m-nav-trigger {
    color: var(--primary-color);
}

.m-arrow {
    width: 8px;
    height: 8px;
    border-right: 2px solid #94a3b8;
    border-bottom: 2px solid #94a3b8;
    transform: rotate(45deg);
    transition: transform 0.3s ease;
}

.m-nav-item.active .m-arrow {
    transform: rotate(-135deg);
    border-color: var(--primary-color);
}

.m-sub-list {
    display: none;
    background-color: #f8fafc;
    padding: 8px 0;
    border-top: 1px solid #f1f5f9;
}

.m-sub-list li a {
    display: block;
    padding: 10px 20px 10px 32px;
    font-size: 14px;
    font-weight: 500;
    color: #475569;
    transition: color 0.2s;
}

.m-sub-list li a:hover {
    color: var(--primary-color);
}



/* ==========================================
   과정 상세 페이지 (Course View) 1024px 이하 반응형
   ========================================== */
@media (max-width: 1023px) {

    /* 1. 좌/우 2열 구조를 세로 1열 정렬로 변경 */
    .course-details-layout {
        display: flex !important;
        flex-direction: column !important;
        gap: 30px !important;
    }

    /* 2. 우측 사이드바 (수강신청 카드) 모바일 상단 우선 배치 및 고정 해제 */
    .details-right {
        width: 100% !important;
        order: -1;
        /* 수강신청 상자를 모바일 본문 상단에 먼저 노출시킵니다 */
    }

    .sidebar-sticky {
        position: static !important;
        /* PC용 sticky 고정 해제 */
    }

    .sidebar-card {
        width: 100% !important;
        padding: 20px !important;
    }

    /* 3. 수강신청하기 / 1:1 상담 버튼을 모바일 가로 2열로 나란히 배치 */


    /* 4. 좌측 본문 상세 영역 */
    .details-left {
        width: 100% !important;
    }

    .details-section {
        margin-bottom: 32px !important;
    }

    .section-headline {
        font-size: 20px !important;
        margin-bottom: 16px !important;
    }

    .summary-box {
        font-size: 15px !important;
        line-height: 1.7 !important;
        padding: 16px !important;
    }

    /* 5. 훈련 지원 내용 (지원자격/교육비 등 항목) 세로 정렬 */
    .benefit-item {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
        padding: 16px !important;
    }

    .benefit-title {
        width: 100% !important;
        font-size: 16px !important;
        font-weight: 700;
        color: var(--primary-color);
    }

    .benefit-content {
        width: 100% !important;
        font-size: 14px !important;
        line-height: 1.6 !important;
        white-space: pre-wrap;
        text-align: left;
        /* 줄바꿈 텍스트 보존 */
    }
}

/* ==========================================
   취업현황 & 자격증 현황 (.job-grid) 반응형
   ========================================== */

/* 1. 1024px 이하 (태블릿): 한 줄에 2개씩 (2열 배치) */
@media (max-width: 1023px) {
    .job-grid {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        /* 2열 배치 */
        gap: 16px !important;
        padding-top: 24px !important;
    }

    .employment-card {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        padding: 20px !important;
        border-radius: 10px;
    }

    .rate-number {
        font-size: 28px !important;
        /* 취업률 % 숫자 크기 조정 */
    }

    .course-name {
        font-size: 16px !important;
        /* 과정명 폰트 조절 */
        line-height: 1.5 !important;
    }
}

/* 2. 768px 미만 (모바일): 한 줄에 1개씩 (1열 세로 배치) */
@media (max-width: 767px) {
    .job-grid {
        grid-template-columns: 1fr !important;
        /* 모바일: 1열 세로 배치 */
        gap: 14px !important;
    }

    .employment-card {
        padding: 18px !important;
    }

    .rate-label {
        font-size: 13px !important;
    }

    .rate-number {
        font-size: 25px !important;
    }

    .course-tag {
        font-size: 12px !important;
    }

    .course-name {
        font-size: 15px !important;
        word-break: keep-all;
    }

    .card-footer {
        font-size: 13px !important;
        margin-top: 14px;
    }
}

@media (max-width: 1023px) {

    /* 부모 컨테이너를 가로(row) -> 세로(column)로 변경 */
    .cont {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    /* 상단으로 올라가는 좌측 제목 박스 */
    .cont-left-box {
        width: 100% !important;
        padding-top: 0 !important;
        font-size: 20px !important;
        font-weight: 700;
        margin-bottom: 12px;
        /* 우측 박스와의 세로 간격 */
    }

    /* 하단으로 내려가는 우측 내용 박스 */
    .cont-right-box {
        width: 100% !important;
        padding-top: 0 !important;
    }
}


@media (max-width: 1023px) {
    #mainbody {
        padding: 100rem 0 0rem;
    }

    .autoplay-progress,
    .swiper-controls {
        display: none !important;
    }

    .page-content-main {
        padding-left: 10rem;
        padding-right: 10rem;
        margin-top: 45rem;
    }

    .section-title-main {
        font-size: 35rem;
        margin-bottom: 30rem;
    }

    .main-pr {
        max-width: 1600rem;
        margin: 0 auto;
        height: 520rem;
        padding-top: 95rem;
        padding-left: 0rem;
    }

    .main-pr .pr-title {
        font-size: 34rem;
        line-height: 1.2;
        padding-left: 20rem;
    }

    .pr-num {
        gap: 30rem;
        max-width: 95%;
        height: 136rem;
    }

    .pr-num div {
        padding-top: 30rem;
        font-size: 43rem;
    }

    .pr-num div span {
        font-size: 14rem;
    }

    .pr-num .etc {
        font-size: 12rem;
    }

    .odometer-number {
        font-size: 43rem;
    }
}

@media (max-width: 767px) {
    .mySwiper {
        aspect-ratio: 8/7;
    }

    .main-pr {
        height: 470rem;
        padding-top: 95rem;
    }

    .pr-num {
        gap: 0rem;
        max-width: 95%;
    }

    .pr-num div {
        padding-top: 18rem;
        font-size: 22rem;
    }

    .pr-num div span {
        font-size: 10rem;
    }

    .pr-num .etc {
        font-size: 8rem;
    }

    .mt130 {
        margin-top: 70rem !important;
    }
}

.mt110 {
    margin-top: 110rem;
}

.mt166 {
    margin-top: 166rem;
}

@media (max-width: 1023px) {
    .job-certi {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20rem !important;
    }

    .job-certi .section-title-main-left {
        grid-column: 1 / -1 !important;
        margin-bottom: 15rem !important;
    }

    .section-title-main-left {
        font-size: 43rem;
    }

    .section-title-main-left span {
        font-size: 16rem;
        margin-top: 10rem;
    }

    .mt110,
    .mt166 {
        margin-top: 80rem;
    }

    .cs-container {
        padding: 20rem 20rem;
    }

    .cs-menu {
        margin-bottom: 5rem;
    }

    .cs-phone {
        margin-bottom: 5rem;
    }

    .cs-phone a {
        font-size: 44rem;
    }

    .cs-info {
        font-size: 14rem;
    }
}

/* 576px 이하 소형 스마트폰에서는 하단 카드도 1열 세로 스택 */
@media (max-width: 767px) {
    .job-certi {
        grid-template-columns: 1fr !important;
    }

    .section-title-main-left {
        font-size: 36rem;
    }

    .partner-wrapper::before,
    .partner-wrapper::after {
        left: 0;
        background: none;
    }

    .cs-menu {
        margin-bottom: 0rem;
    }

    .cs-phone {
        margin-bottom: 0rem;
    }

    .cs-phone a {
        font-size: 30rem;
    }

    .cs-info {
        font-size: 13rem;
    }
}

/* ==========================================
   NEWS 섹션 1024px 이하 반응형 (탭 폰트 & 카드 2열 배치)
   ========================================== */
@media (max-width: 1023px) {

    /* 1. NEWS 탭 메뉴 간격 및 폰트 크기 조절 */
    .news-cate {
        margin-top: 10rem !important;
    }

    .news-cate .tab-menu {
        gap: 16rem !important;
        /* 탭 사이 간격 축소 (기존 40px -> 16rem) */
        overflow-x: auto;
        /* 좁은 모바일 화면 시 가로 터치 스크롤 허용 */
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
    }

    .news-cate .tab-menu .tab-item {
        padding: 10rem 0 !important;
    }

    .news-cate .tab-menu .tab-item a {
        font-size: 16rem !important;
        /* 탭 글자 크기 조절 (기존 20rem -> 16rem) */
    }

    /* 2. 메인 뉴스 카드 1024px 이하에서 한 줄에 2개씩 (2열 배치) */
    .main-news.tab-content.active {
        grid-template-columns: repeat(2, 1fr) !important;
        /* 2열 배치 */
        gap: 24rem 16rem !important;
        /* 세로/가로 카드 간격 */
        margin-top: 24rem !important;
    }

    .news-card .news-card-img {
        margin-bottom: 12rem !important;
        /* 이미지 하단 여백 축소 */
    }

    .news-card .news-card-title {
        font-size: 16rem !important;
        /* 카드 제목 폰트 조절 */
        margin-bottom: 6rem !important;
    }

    .news-card .news-card-date {
        font-size: 13.5rem !important;
        /* 등록일자 폰트 조절 */
    }
}

/* 480px 이하 극소형 스마트폰 화면 시 (필요 시 1열로 변경) */
@media (max-width:767px) {
    .main-news.tab-content.active {
        grid-template-columns: 1fr !important;
        /* 1열 세로 정렬 */
    }
}

/* 웹접근성 및 SEO 전용 숨김 텍스트 클래스 */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* 오도미터 1.1em 무결점 수직 정렬 CSS */
.pr-num div .count-num {
    text-align: center;
    font-size: 54rem !important;
    color: rgb(34, 34, 34) !important;
    font-weight: 800 !important;
    line-height: 1.1em !important;
    display: inline-flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    height: 1.1em !important;
    opacity: 0;
    transition: opacity 0.8s ease;
}

.pr-num div .count-num.visible {
    opacity: 1;
}

.odometer-digit {
    display: inline-block !important;
    height: 100% !important;
    line-height: 1.1em !important;
    overflow: hidden !important;
    position: relative !important;
    vertical-align: top !important;
    margin: 0 0px !important;
}

.odometer-digit-inner {
    display: flex !important;
    flex-direction: column !important;
    transition: transform 1.2s cubic-bezier(0.1, 0.9, 0.2, 1);
    will-change: transform;
}

.odometer-number {
    display: block !important;
    height: 1.1em !important;
    line-height: 1.1em !important;
    text-align: center !important;
    font-size: 54rem !important;
    color: rgb(34, 34, 34) !important;
    font-weight: 800 !important;
}

.odometer-separator,
.count-num-suffix {
    display: inline-block !important;
    font-size: 54rem !important;
    color: rgb(34, 34, 34) !important;
    font-weight: 800 !important;
    line-height: 1.1em !important;
    height: 1.1em !important;
    vertical-align: top !important;
}


@media (max-width: 1023px) {

    .odometer-separator,
    .count-num-suffix,
    .odometer-number {
        font-size: 43rem !important;
    }

    .pr-num div .count-num,
    .odometer-digit {
        height: 43rem !important;
    }
}

@media (max-width: 767px) {

    .odometer-separator,
    .count-num-suffix,
    .odometer-number {
        font-size: 22rem !important;
    }

    .pr-num div .count-num,
    .odometer-digit {
        height: 22rem !important;
    }

}