@charset "utf-8";

/*
 * KAPA 데스크톱 메가메뉴 (방식 2)
 * - 8열 전부 표시
 * - 상단 대메뉴의 실제 간격을 계산해 각 열을 1:1 정렬
 * - 호버 열 강조, 나머지 흐리게
 * - 그림자 없음
 * - 모바일(<=1024)은 기존 mn-sub 유지
 */

@media (min-width: 1025px) {
    .main-nav:not(.mobile-on) {
        position: relative;
    }

    .main-nav:not(.mobile-on) .desktop-nav > ul > li > .mn-sub {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
        opacity: 0 !important;
    }

    .desktop-nav {
        position: static;
    }

    .kapa-mega {
        display: none;
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        z-index: 1200;
        padding: 20px 0 28px;
        background: #fff;
        border-top: 3px solid var(--kapa-blue, #0082C8);
    }

    .main-nav.kapa-mega-open .kapa-mega,
    .kapa-mega.is-open {
        display: block;
    }

    .kapa-mega__inner {
        position: relative;
        width: 100%;
        min-height: 140px;
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    .kapa-mega__col {
        position: absolute;
        top: 0;
        left: var(--kapa-mega-col-left, 0);
        width: var(--kapa-mega-col-width, 12.5%);
        min-width: 0;
        padding: 12px clamp(8px, 1vw, 14px);
        border-left: 1px solid rgba(var(--kapa-blue-rgb, 0, 130, 200), 0.18);
        text-align: left;
        box-sizing: border-box;
        z-index: 1;
        transition:
            opacity 0.25s ease,
            background-color 0.25s ease,
            filter 0.25s ease;
    }

    .kapa-mega__col:last-child {
        border-right: 1px solid rgba(var(--kapa-blue-rgb, 0, 130, 200), 0.18);
    }

    /* 비활성 열 */
    .kapa-mega.is-open .kapa-mega__col {
        opacity: 0.72;
        filter: grayscale(0.06);
    }

    /* 호버 열: 고정된 열 너비를 유지한 채 강조 */
    .kapa-mega.is-open .kapa-mega__col.is-active {
        opacity: 1;
        filter: none;
        z-index: 3;
        background: #e8f4fb;
    }

    .kapa-mega__section + .kapa-mega__section {
        margin-top: 16px;
        padding-top: 12px;
        border-top: 1px dashed rgba(var(--kapa-blue-rgb, 0, 130, 200), 0.25);
    }

    .kapa-mega__title {
        margin: 0 0 10px;
        padding-bottom: 8px;
        border-bottom: 2px solid rgba(var(--kapa-blue-rgb, 0, 130, 200), 0.35);
        font-size: 14px;
        font-weight: 700;
        letter-spacing: -0.02em;
        color: #334155;
        line-height: 1.35;
        text-align: left;
        overflow-wrap: anywhere;
        transition: color 0.2s ease, border-color 0.2s ease, font-size 0.3s ease;
    }

    .kapa-mega__col.is-active .kapa-mega__section.is-section-active .kapa-mega__title {
        color: var(--kapa-blue-dark, #005DAB);
        border-bottom-color: var(--kapa-blue, #0082C8);
        font-size: 15px;
    }

    /* GNB 중앙정렬·li margin 상속 차단 */
    .kapa-mega ul {
        text-align: left;
        margin: 0;
        padding: 0;
        font-size: inherit;
        font-weight: inherit;
        letter-spacing: inherit;
        line-height: inherit;
    }

    .kapa-mega li {
        margin: 0 !important;
        text-align: left;
    }

    .kapa-mega__list {
        list-style: none;
    }

    .kapa-mega__list > li > a {
        display: block;
        padding: 6px 0;
        font-size: 14px;
        font-weight: 600;
        line-height: 1.4;
        letter-spacing: -0.03em;
        color: #1e2432 !important;
        text-align: left;
        text-decoration: none;
        overflow-wrap: break-word;
        height: auto !important;
        opacity: 1 !important;
        transition: color 0.15s ease;
    }

    .kapa-mega__list > li > a:hover,
    .kapa-mega__list > li > a:focus-visible {
        color: var(--kapa-blue, #0082C8) !important;
        text-decoration: underline;
        text-underline-offset: 2px;
        background: transparent;
        outline: 2px solid var(--kapa-blue, #0082C8);
        outline-offset: 2px;
    }

    .kapa-mega__nested {
        list-style: none;
        margin: 0 0 4px;
        padding: 0 0 0 2px;
    }

    .kapa-mega__nested > li > a {
        display: block;
        padding: 3px 0 3px 10px;
        font-size: 13px;
        font-weight: 500;
        line-height: 1.4;
        letter-spacing: -0.03em;
        color: #3a4150 !important;
        text-align: left;
        text-decoration: none;
        position: relative;
        height: auto !important;
        opacity: 1 !important;
    }

    .kapa-mega__nested > li > a::before {
        content: "└";
        position: absolute;
        left: 0;
        color: #9aa3ad;
        font-size: 11px;
    }

    .kapa-mega__nested > li > a:hover,
    .kapa-mega__nested > li > a:focus-visible {
        color: var(--kapa-blue, #0082C8) !important;
        outline: 2px solid var(--kapa-blue, #0082C8);
        outline-offset: 2px;
    }

    /* 상단 선택 메뉴 강조 */
    .desktop-nav > ul > li > .mn-has-sub {
        position: relative;
        transition: color 0.2s ease, opacity 0.2s ease;
    }

    .desktop-nav > ul > li > .mn-has-sub:focus-visible {
        outline: 2px solid var(--kapa-blue, #0082C8);
        outline-offset: 3px;
    }

    .main-nav.kapa-mega-open .desktop-nav > ul > li.is-mega-active > .mn-has-sub {
        color: var(--kapa-blue-dark, #005DAB) !important;
        opacity: 1 !important;
        font-weight: 700;
    }

    .main-nav.kapa-mega-open .desktop-nav > ul > li.is-mega-active > .mn-has-sub .mi-chevron-down {
        color: var(--kapa-blue, #0082C8);
        opacity: 1;
    }

    .main-nav.kapa-mega-open .desktop-nav > ul > li.is-mega-active > .mn-has-sub::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 6px;
        height: 3px;
        border-radius: 2px;
        background: var(--kapa-blue, #0082C8);
    }

    .main-nav.kapa-mega-open .desktop-nav > ul > li[data-mega-col]:not(.is-mega-active) > .mn-has-sub {
        opacity: 0.55;
    }

    @media (prefers-reduced-motion: reduce) {
        .kapa-mega__col,
        .kapa-mega__title {
            transition: none;
        }
    }
}

@media (min-width: 1025px) and (max-width: 1399px) {
    .kapa-mega__col {
        padding: 10px 8px;
    }

    .kapa-mega__list > li > a {
        font-size: 13px;
        padding: 5px 0;
    }

    .kapa-mega__nested > li > a {
        font-size: 12px;
    }
}

@media (max-width: 1024px) {
    .kapa-mega {
        display: none !important;
    }
}
