@charset "utf-8";
/* ================================================================== */
/* Name	: main.css
/* Script : Main Layout
/* Author : Design Geulggol
/* Date	: 2017-10-10
/* ================================================================== */


/* ----------------------------- */
/* visual
/* ----------------------------- */
#floatingBtn {
    position: fixed;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);

    /* 정사각형 */
    width: 56px;
    height: 56px;

    /* 🔥 관리자페이지 버튼 톤과 거의 동일 */
    background: #6f4ef6;   /* 핵심 */

    border-radius: 16px;
    cursor: pointer;
    z-index: 1000;

    /* 그림자도 버튼이랑 맞춤 */
    box-shadow: 0 4px 12px rgba(111, 78, 246, 0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* hover 효과 */
#floatingBtn:hover {
    transform: translateY(-50%) scale(1.06);
    box-shadow: 0 6px 16px rgba(111, 78, 246, 0.45);
}

/* =========================
   말풍선 꼬리 (우측 하단)
========================= */
#floatingBtn::after {
    content: "";
    position: absolute;
    right: -9px;
    bottom: 6px;

    width: 0;
    height: 0;

    /* 🔥 단색으로 통일 */
    border-top: 8px solid transparent;
    border-bottom: 0 solid transparent;
    border-left: 12px solid #6f4ef6;
}

/* 점 3개 */
.bubble-dots {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    gap: 6px;
}

.bubble-dots span {
    width: 6px;
    height: 6px;
    background: #ffffff;
    border-radius: 50%;
}



#rightQuickPanel {
    position: fixed;
    top: 50%;
    right: -360px;
    transform: translateY(-50%);
    width: 340px;
    z-index: 999;
    transition: right 0.35s ease;
}

#rightQuickPanel.open {
    right: 80px;
}

.quick-panel-inner {
    background: #ffffff;
    border-radius: 22px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);
    padding: 26px 24px;
}

.quick-panel-card {
    text-align: center;
}

/* 카드 간격 */
.quick-panel-card > *:not(:last-child) {
    margin-bottom: 18px;
}

.quick-panel-title {
    font-size: 15px;
    line-height: 1.6;
    color: #222;
}

.quick-panel-title .highlight {
    color: #7a3df0;
    font-weight: 700;
}

.quick-panel-btn {
    width: 100%;
    height: 48px;
    border: none;
    border-radius: 14px;
    font-size: 15px;
    font-weight: 600;
    color: #ffffff;
    background: linear-gradient(90deg, #7a3df0, #6b4cff); /* 일반회원 색 */
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.quick-panel-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(122, 61, 240, 0.35);
}

.quick-panel-stats {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #f6f7fb;
    border-radius: 16px;
    padding: 18px 16px;
}

/* 텍스트 영역 */
.stats-text {
    flex: 1;
    text-align: left;
}

.stats-text p {
    font-size: 14px;
    color: #333;
    display: flex;
    justify-content: space-between;
    margin: 6px 0;
}

/* 숫자 강조 */
.stats-text span {
    color: #ff3b7a;
    font-weight: 700;
}

/* 관리자/비로그인 텍스트 */
.stats-text.admin-text {
    font-size: 14px;
    line-height: 1.5;
    color: #444;
}

/* 이미지 */
.stats-image img {
    width: 72px;
    margin-left: 10px;
}

/*메뉴 아이콘*/
.nav_li_depth_1 > a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.nav_li_depth_1 > a .nav_icon {
    width: 32px;
    height: 32px;
    object-fit: contain;
    display: inline-block;
    flex-shrink: 0;
}

.nav_li_depth_1 > a em {
    font-style: normal;
}

/*부산컨텐츠 아카데미 info*/
.program_img_box {
    width: 393px;
    height: 234px;
    overflow: hidden;
}

.program_img_box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
}

.program_img_box2{
	width: 550px;
    height: 350px;
    overflow: hidden;
}

.program_img_box2 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
}
/*
.util {
    display: flex;
    align-items: center;
    gap: 8px;
}

.util a {
    text-decoration: none;
}

.util a span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 64px;
    height: 30px;
    padding: 0 12px;
    border: 1px solid #d0d0d0;
    border-radius: 20px;
    color: #333;
    font-size: 13px;
    font-weight: 600;
    background: #fff;
    box-sizing: border-box;
    transition: all 0.2s ease;
}

.util a:hover span {
    color: #6f2cff;
    border-color: #6f2cff;
    background: #f7f3ff;
}*/
.util {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-right: 45px;
}

.util a {
    text-decoration: none;
}

.util a span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 68px;
    height: 28px;
    padding: 0 12px;
    border: 1px solid #d0d0d0;
    border-radius: 20px;
    color: #555;
    font-size: 13px;
    font-weight: 600;
    background: #fff;
    box-sizing: border-box;
    transition: all 0.2s ease;
}

.util a:hover span {
    color: #6f2cff;
    border-color: #6f2cff;
    background: #f7f3ff;
}

.util a span.login-bg {
    color: #fff;
    border-color: #333;
    background: #333;
}

.util a:hover span.login-bg {
    color: #fff;
    border-color: #6f2cff;
    background: #6f2cff;
}











.academy-item .academy-img {
    position: relative;
    display: block;
    overflow: hidden;
}

.academy-item .academy-img img {
    display: block;
    width: 100%;
    height: auto;
}

.academy-item.preparing .academy-img img {
    filter: blur(1.5px) brightness(0.65);
    transform: scale(1.02);
}

.academy-item.preparing .academy-img::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 18, 28, 0.55);
    z-index: 1;
}

.academy-item.preparing .academy-img::after {
    content: "준비중";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) skewX(-8deg);

    color: #fff;
    font-size: 58px;
    font-weight: 900;
    font-family: 'GmarketSansBold', 'Black Han Sans', 'Noto Sans KR', sans-serif;

    letter-spacing: -4px;
    z-index: 2;
    white-space: nowrap;

    text-shadow:
        0 0 4px rgba(255, 255, 255, 0.9),
        0 0 10px rgba(0, 220, 255, 0.9),
        0 0 22px rgba(0, 180, 255, 0.75),
        0 0 40px rgba(0, 140, 255, 0.55);
}

.academy-item.preparing .academy-txt2 > a {
    opacity: 0.45;
    pointer-events: none;
    cursor: not-allowed;
}






/*교육일정 테이블 시작*/
.event-schedule-wrap {
    width: 100%;
    max-width: 1400px;
    padding: 0 10px 15px;
    margin: 0 auto;
    box-sizing: border-box;
    background: #fff;
}

/* 제목 */
.event-schedule-title {
    position: relative;
    margin: 0 0 10px;
    text-align: center;
    font-size: 26px;
    font-weight: 800;
    color: #0f1b33;
    letter-spacing: -1.5px;
    line-height: 1.15;
}

.event-schedule-title::before,
.event-schedule-title::after {
    content: "";
    display: inline-block;
    width: 45px;
    height: 1px;
    margin: 0 12px 7px;
    background: #7fa5d8;
}

/* 표 영역 */
.event-schedule-table {
    width: 100%;
    overflow: hidden;
    border: 1px solid #9da8b8;
    border-radius: 14px;
    background: #fff;
}

/* 표 */
.event-schedule-table table {
    width: 100%;
    min-width: 950px;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
}

.event-schedule-table th,
.event-schedule-table td {
    border-right: 1px solid #b8c0cc;
    border-bottom: 1px solid #b8c0cc;
    text-align: center;
    vertical-align: middle;
    color: #111827;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    word-break: keep-all;
    padding: 2px;
    box-sizing: border-box;
}

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

.event-schedule-table tbody tr:last-child td {
    border-bottom: none;
}

/* 헤더 */
.event-schedule-table thead th {
    height: 28px;
    background: #edf3fb;
    color: #0f1b33;
    font-size: 13px;
    font-weight: 800;
}

.event-schedule-table thead tr:first-child th {
    height: 24px;
}

/* 본문 셀 높이 */
.event-schedule-table tbody td {
    height: 60px;
    background: #fbfdff;
}

.event-schedule-table tbody td:not(.event-info) {
    background: #f8fbff;
}

.event-schedule-table tbody td[colspan] {
    background: #f6faff;
}

/* 구분 칸: 이미지 위 / 글자 아래 */
.event-info.vertical {
    padding: 4px 5px;
    box-sizing: border-box;
    text-align: center !important;
    background: #fff !important;
}

/* 이미지 비율 유지 */
.event-info.vertical img {
display: block;
    width: 100%;
    height: 95px;

    object-fit: fill; /* 이미지 비율 무시하고 셀 너비/높이에 맞춤 */
    margin: 0 auto 4px;

    border-radius: 4px;
    border: 1px solid #d7dde6;
    box-sizing: border-box;
}

/* 이미지 아래 제목 */
.event-info.vertical strong {
    display: block;
    color: #111;
    font-size: 10.5px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.5px;
    word-break: keep-all;
}

/* 모바일 대응 */
@media (max-width: 768px) {
    .event-schedule-wrap {
        padding: 20px 12px;
    }

    .event-schedule-title {
        font-size: 24px;
        margin-bottom: 14px;
    }

    .event-schedule-title::before,
    .event-schedule-title::after {
        width: 30px;
        margin: 0 8px 6px;
    }

    .event-schedule-table {
        overflow-x: auto;
    }

    .event-schedule-table table {
        min-width: 850px;
    }

    .event-schedule-table th,
    .event-schedule-table td {
        font-size: 11px;
        padding: 2px;
    }

    .event-schedule-table thead th {
        height: 28px;
        font-size: 12px;
    }

    .event-schedule-table tbody td {
        height: 86px;
    }

    .event-info.vertical {
        padding: 4px;
    }

    .event-info.vertical img {
        width: 125px;
        height: auto;
        margin-bottom: 3px;
    }

    .event-info.vertical strong {
        font-size: 10px;
        line-height: 1.1;
    }
}

/*교육일정 테이블 끝*/

/*교육일정 테이블 준비중 글자 시작*/
/* 준비중 이미지 박스 - 기존 이미지 크기와 동일하게 */
.event-info.vertical .event-img-box {
    position: relative;
    display: block;
    width: 100%;
    height: 95px;
    margin: 0 auto 4px;
    overflow: hidden;
    border-radius: 4px;
    border: 1px solid #d7dde6;
    box-sizing: border-box;
}

/* 박스 안 이미지 */
.event-info.vertical .event-img-box img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    margin: 0;
    border: none;
    border-radius: 0;
}

/* 준비중 상태 이미지 */
.event-info.vertical.preparing .event-img-box img {
    filter: blur(1.5px) brightness(0.45);
    transform: scale(1.04);
}

/* 어두운 오버레이 */
.event-info.vertical.preparing .event-img-box::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 20, 35, 0.35);
    z-index: 1;
}

/* 준비중 글자 */
.event-info.vertical.preparing .event-img-box::after {
    content: "준비중";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) skewX(-8deg);
    z-index: 2;

    color: #fff;
    font-size: 24px;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
    letter-spacing: -2px;

    text-shadow:
        0 0 3px rgba(255,255,255,0.95),
        0 0 8px rgba(0,220,255,0.9),
        0 0 16px rgba(0,180,255,0.8),
        0 0 26px rgba(0,140,255,0.65);
}
/*교육일정 테이블 준비중 글자 끝*/


.schedule-box {
    width: 100%;
    border-radius: 6px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    font-weight: 600;
    line-height: 1.6;
    box-sizing: border-box;
}

/* 색상 종류 */
.schedule-green {
    background: #e5f5d7;
    border: 1px solid #cfe7bf;
}

.schedule-yellow {
    background: #fff0bc;
    border: 1px solid #eadb9d;
}

.schedule-purple {
    background: #eadcff;
    border: 1px solid #d7c4f5;
}

.schedule-blue {
    background: #dff1ff;
    border: 1px solid #c7def0;
}

.schedule-blue_wide {
    background: #dff1ff;
    border: 1px solid #c7def0;
    height: 90px;
}

.schedule-pink {
    background: #ffe1e8;
    border: 1px solid #f3c7d2;
}

.schedule-mint {
    background: #dff7ee;
    border: 1px solid #c3e5d8;
}

.schedule-orange_wide{
    background: #ffe6c7;
    border: 1px solid #efd0a8;
    height: 90px;
}

.schedule-light-blue{
    background: #E3EBFF;
    border: 1px solid #C4D2F3;
}
.schedule-dark-blue{
    background: #D3DFFA;
    border: 1px solid #B5C7ED;
}

.schedule-list {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: center;
    border-radius: 6px;
    box-sizing: border-box;
    color: #111827;
    font-size: 12px;
}

.schedule-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1.6;
    text-align: center;
}

.schedule-item strong {
    font-weight: 600;
}

.schedule-item span {
    font-weight: 600;
    white-space: nowrap;
}


