@charset "utf-8";

/* ==========================================================================
   01. 글로벌 및 라이브러리 스타일 (Global & Libraries)
   ========================================================================== */

/* Pretendard 웹폰트 로드 */
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css');

/* 기본 폰트 적용 */
body, *:not([class^="mce-i-"]):not([class*=" mce-i-"]):not(.mce-ico):not(.dashicons):not([class^="dashicons-"]) {
    font-family: "Pretendard", -apple-system, BlinkMacSystemFont, sans-serif !important;
}

/* Lenis 스무스 스크롤 라이브러리 */
html.lenis, html.lenis body {
    height: auto;
}

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

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

.lenis.lenis-scrolling iframe {
    pointer-events: none;
}

/* 헤더 래퍼 */
.layout-header {
    position: fixed !important;
    top: 0;
    left: 0;
    z-index: 99;
}

/* 공통 컨테이너 */
.container-md {
    position: relative;
    max-width: calc(1280px + 2rem);
    margin: 0 auto;
    padding: 0 2rem;
}


/* ==========================================================================
   02. 메인 페이지 섹션 (Main Page Sections)
   ========================================================================== */

/* --------------------------------------------------------------------------
   [MAIN] 비주얼 슬라이더 (main-visual)
   -------------------------------------------------------------------------- */
:root {
    /* 메인 슬라이더의 텍스트 영역 가로폭 제어 */
    --main-visual-max-width: 1240px; 
}

.main-visual {
    overflow: hidden;
    position: relative;
}

.main-visual .contents-container {
    display: flex;
    align-items: center;
    justify-content: center;
}

.main-visual .contents-container:not(.fullscreen) {
    height: 76rem;
}

.main-visual .slide-area {
    width: 100vw;
    height: 100%;
}

.main-visual .swiper {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100vw;
    height: 100%;
}

.main-visual .swiper-slide {
    display: flex;
    align-items: flex-end;
    padding: 0 4rem;
}


/* ========================================
   메인 비주얼 FOUC 방지
   (셔플 + Swiper 초기화 깜빡임 차단)
   ======================================== */
.main-visual .swiper:not(.swiper-initialized) {
    visibility: hidden;
}

.main-visual .swiper:not(.swiper-initialized) .swiper-slide {
    opacity: 0;
}

.main-visual .swiper.swiper-initialized {
    visibility: visible;
    animation: mainVisualFadeIn 0.4s ease-in;
}

@keyframes mainVisualFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.main-visual .swiper:not(.swiper-initialized) ~ .swiper-control {
    opacity: 0;
}

.main-visual .swiper.swiper-initialized ~ .swiper-control {
    opacity: 1;
    transition: opacity 0.4s ease-in 0.2s;
}


.main-visual .imageset {
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
}

.main-visual .imageset-img.img-pos-top {
    object-position: center 85%;
}

.main-visual .imageset::before {
    content: "";
    position: absolute;
    inset: auto 0 0;
    z-index: 1;
    height: 32%;
    background: linear-gradient(to top, rgba(var(--black-rgb), 0.8), rgba(var(--black-rgb), 0));
    pointer-events: none;
}

.main-visual .textset {
    position: relative;
    bottom: 25.0rem;
    z-index: 2;
    width: 100%;
    margin: 0 auto;
    text-align: left;
}

/* 메인 비주얼 - 자세히보기 버튼 */
.main-visual .textset .visual-btn {
    display: inline-block;
    position: relative;
    margin-top: 1rem;
    padding: 1.4rem 3.6rem;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 500;
    text-decoration: none;
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 999px;
    overflow: hidden;
    line-height: 1;
}

.main-visual .textset .visual-btn,
.main-visual .textset .visual-btn__inner,
.main-visual .textset .visual-btn__text {
    transform: translateZ(0);
    backface-visibility: hidden;
    will-change: transform;
}

.main-visual .textset .visual-btn__inner {
    display: block;
    position: relative;
    height: 1.6rem;
    overflow: hidden;
}

.main-visual .textset .visual-btn__text {
    display: block;
    height: 1.6rem;
    line-height: 1.6rem;
    transition: transform 0.4s cubic-bezier(0.7, 0, 0.3, 1);
}

/* 호버 시 두 텍스트 모두 위로 이동 */
.main-visual .textset .visual-btn:hover .visual-btn__text {
    transform: translateY(-100%);
}

/* 기본 상태: 투명하게 숨겨둠 */
.main-visual .swiper-slide .textset::before {
    content: "";
    position: absolute;
    top: -5.8rem;
    left: 6rem;
    z-index: -1;
    width: 20rem;
    height: calc(100% + 12rem);
    background: linear-gradient(to bottom, rgba(var(--primary-rgb), 1), rgba(var(--black-rgb), 0));
    transform: skewX(-30deg) translateX(-100px); /* 왼쪽으로 미리 밀어둠 */
    opacity: 0; /* 평소에는 안 보임 */
}

/* 활성화된 슬라이드(눈에 보이는 배너)일 때만 애니메이션 작동 */
.main-visual .swiper-slide-active .textset::before {
    animation: slideRight 3s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    animation-delay: 0.3s; /* 텍스트가 나오고 살짝 뒤에 나오면 더 고급스러움 */
}

@keyframes slideRight {
    0% {
        transform: skewX(-30deg) translateX(-100px);
        opacity: 0;
    }
    100% {
        transform: skewX(-30deg) translateX(0);
        opacity: 1;
    }
}

.main-visual .container-lg .textset {
    max-width: 128rem;
}

.main-visual .container-md .textset {
    max-width: 128rem;
}

.main-visual .container-sm .textset {
    max-width: 102.4rem;
}

/* 텍스트 정렬 및 개별 폭 설정 */
.main-visual .textset-tit {
    width: 100% !important;
    text-align: left !important;
}

.main-visual .textset-desc {
    width: 100% !important;
    text-align: left !important;
    margin-top: 1.2rem;
}

.main-visual .textset .textset-subtit,
.main-visual .textset .textset-tit,
.main-visual .textset .textset-desc {
    translate: 0 6rem;
    opacity: 0;
    color: var(--white);
}

.main-visual .textset .textset-subtit {
    display: block;
    margin: 0;
}

.main-visual .textset .textset-tit,
.main-visual .textset .textset-desc {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
}

.main-visual .textset .textset-tit {
    transform: translateY(30px);
    margin: 0;
    -webkit-line-clamp: 4;
}

.main-visual .textset .textset-tit+.textset-desc {
    margin-top: 0.4rem;
}

.main-visual .textset .textset-desc {
    transform: translateY(20px);
    margin-top: 1.2rem;
    -webkit-line-clamp: 5;
}

.main-visual .swiper-slide-active .textset .textset-tit,
.main-visual .swiper-slide-active .textset .textset-desc {
    opacity: 1;
}

.main-visual .swiper-control {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.4rem;
    position: absolute;
    bottom: 8rem;
    right: 0;
    z-index: 1;
    padding: 0 3rem;
    width: 100%;
}

.main-visual .swiper-pagination {
    display: flex;
    align-items: center;
    gap: 3.2rem;
    position: static;
    width: auto;
}

.main-visual .swiper-pagination-bullet {
    position: relative;
    width: 6px;
    height: 6px;
    background: rgba(var(--white-rgb), 0.4);
    opacity: 1;
    margin: 0 !important;
    transition: 0.3s;
}

.main-visual .swiper-pagination-bullet::after {
    content: "";
    position: absolute;
    inset: -1.1rem;
    border-radius: 50%;
}

.main-visual .swiper-pagination-bullet-active {
    background: var(--white);
}

.main-visual .swiper-pagination-bullet-active::after {
    background: conic-gradient(var(--white) calc(var(--progress, 0) * 360deg), transparent 0deg);
    mask: radial-gradient(circle, transparent 55%, var(--black) 60%);
    -webkit-mask: radial-gradient(circle, transparent 55%, var(--black) 60%);
}

.main-visual .btn-wrap {
    display: flex;
    align-items: center;
}

.main-visual .btn-wrap button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.8rem;
    height: 2.8rem;
    background: none;
    border: none;
    color: var(--white);
}

.swiper-pagination-bullet {
    position: relative;
    width: 12px;
    height: 12px;
    background: #ddd;
    opacity: 1;
    margin: 0 16px !important;
}

.swiper-pagination-bullet::after {
    content: "";
    position: absolute;
    inset: -8px;
    border-radius: 50%;
}

.main-visual .swiper-progress button {
    display: none;
}

.main-visual .swiper-progress button.active {
    display: flex;
}

/* main-visual 반응형 (태블릿) */
@media (max-width: 1200px) {
    .main-visual .slide-area {
        width: 100%;
    }
    .main-visual .swiper {
        margin-left: -4rem;
        width: calc(100% + 8rem);
    }
}

/* main-visual 반응형 (모바일) */
@media (max-width: 992px) {
    .main-visual .contents-container:not(.fullscreen) {
        height: 70dvh; 
        min-height: 500px; 
    }
    .main-visual .swiper {
        margin-left: -1.6rem;
        width: calc(100% + 3.2rem);
    }
    .main-visual .swiper-slide,
    .main-visual .swiper-control {
        padding: 0 1.6rem;
    }
    .main-visual .textset {
        bottom: 20.0rem;
    }
    .main-visual .textset .visual-btn {
        margin-top: 1rem;
        padding: 1.2rem 3rem;
        font-size: 1.5rem;
    }
    .main-visual .textset .visual-btn__inner,
    .main-visual .textset .visual-btn__text {
        height: 1.5rem;
        line-height: 1.5rem;
    }
    .main-visual .textset .textset-desc {
        margin-top: 0.8rem;
    }
    .main-visual .swiper-pagination {
        gap: 2.7rem;
    }
    .main-visual .swiper-control {
        gap: 2.7rem;
        bottom: 6rem;
    }
    .main-visual .swiper-pagination-bullet {
        width: 5px;
        height: 5px;
    }
    .main-visual .swiper-pagination-bullet::after {
        inset: -0.95px;
    }
    .main-visual .btn-wrap button {
        width: 2rem;
        height: 2rem;
    }
}

/* --------------------------------------------------------------------------
   [MAIN] 비전 섹션 (main-vision)
   -------------------------------------------------------------------------- */
:root {
    --padding-left: 4rem;
    --width: 443px;
    --height: 128px;
}

.main-vision {
    position: relative;
    overflow: hidden;
}

.main-vision .contents-container {
    display: flex;
    align-items: center;
    justify-content: center;
    position: static;
    height: 80rem;
    padding-left: var(--padding-left) !important;
}

.main-vision .contents-inner {
    width: 100%;
}

.main-vision .contents-left {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    width: 60%;
}

.main-vision .contents-title {
    display: flex;
    align-items: center;
    gap: 2rem;
    margin-bottom: 4rem;
}

.main-vision .contents-swiper {
    width: 100%;
    height: auto;
    padding: 0 2rem 0 0;
}

/* 슬라이드 높이 균일화 (PC) */
.main-vision .contents-swiper .swiper-wrapper {
    align-items: stretch;
}

.main-vision .contents-swiper .swiper-slide {
    display: flex !important;
    flex-direction: column;
    justify-content: flex-start;
    height: auto;
    min-height: 52rem;
    box-sizing: border-box;
}

/* 슬라이드 1: 예배 영상 영역 */
.main-vision .video-area {
    width: 100%;
    max-width: 64rem;
}

.main-vision .video-area-title {
    margin: 0 0 2.4rem;
    font-size: 5rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--text-color1);
    letter-spacing: -0.05rem;
}

.main-vision .video-frame {
    position: relative;
    width: 100%;
    max-width: 59rem;
    aspect-ratio: 16 / 9;
    background: #000;
    border-radius: 1.2rem;
    overflow: hidden;
}

.main-vision .video-frame iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

.main-vision .video-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #fff;
    font-size: 1.8rem;
    text-decoration: none;
}

.main-vision .video-info-title {
    margin: 2rem 0 1rem;
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--text-color1);
    letter-spacing: -0.05rem;
}

.main-vision .video-info-quote {
    margin: 0 0 -0.4rem;
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 1.4;
    color: #797981;
    letter-spacing: -0.03rem;
}

.main-vision .video-info-verse {
    margin: 0;
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 1.4;
    color: #797981;
    letter-spacing: -0.03rem;
}

/* 슬라이드 2: 텍스트 + 이미지 셋 */
.main-vision .textset .textset-tit {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

.main-vision .textset .textset-tit+.textset-desc {
    margin-top: 2.4rem;
}

.main-vision .textset .textset-tit+.textset-subtit {
    margin-top: 1.2rem;
}

.main-vision .textset .textset-subtit {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--primary);
}

.main-vision .textset .textset-desc {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #797981;
}

.main-vision .textset .textset-desc+.textset-desc {
    margin-top: 2.4rem;
}

.main-vision .imageset {
    width: var(--width);
    height: var(--height);
    margin-top: 6rem;
}

.main-vision .imageset .imageset-img {
    object-fit: contain;
}

/* 카드 영역 (가로 배치형 그리드) */
.main-vision .cardset-warp {
    --th-gutter: 0;
    margin-top: 2.4rem;
    overflow-y: visible;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
}

.main-vision .cardset-warp > .col,
.main-vision .cardset-warp > .cardset {
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin: 0;
}

.main-vision .cardset .cardset-inner {
    display: flex;
    align-items: center;
    gap: 2rem;
    width: 100%;
    height: 100%;
    padding: 5rem 2.8rem;
    border: 1px solid #e9ecf2;
    border-radius: 1rem;
    background: #f6f8fc;
    text-decoration: none;
    color: inherit;
    transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
    overflow: hidden;
}

.main-vision .cardset .cardset-inner:hover {
    background: #eef0f9;
    border-color: var(--primary);
    transform: translateY(-3px);
    box-shadow: 0 0.6rem 1.6rem rgba(var(--primary-rgb), 0.12);
}

.main-vision .cardset .cardset-figure {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 6rem;
    height: 6rem;
    margin: 0;
    border-radius: 50%;
    background: var(--primary);
}

.main-vision .cardset .cardset-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 2.6rem;
    line-height: 1;
}

.main-vision .cardset .cardset-body {
    flex: 1;
    min-width: 0;
    padding: 0;
}

.main-vision .cardset .cardset-tit {
    display: block;
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--text-color1);
    letter-spacing: -0.05rem;
    margin: 0 0 0.6rem;
}

.main-vision .cardset .cardset-desc {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    margin: 0;
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.5;
    color: #797981;
}

/* ========================================
   비전 섹션 Swiper loop 복제 슬라이드 링크 활성화
   (loop 모드에서 복제된 슬라이드의 a 태그 클릭 문제 해결)
   ======================================== */
.main-vision .swiper-slide-duplicate,
.main-vision .swiper-slide-duplicate * {
    pointer-events: auto !important;
}

.main-vision .swiper-slide-duplicate .cardset-inner {
    position: relative;
    z-index: 10;
    cursor: pointer;
}

.main-vision .swiper-slide-duplicate a {
    pointer-events: auto !important;
    position: relative;
    z-index: 11;
}

/* 네비게이션 및 컨트롤 */
.main-vision .swiper-controls {
    display: flex;
    position: absolute;
    top: 50%;
    right: 52.6rem;
    z-index: 20;
    background: #212126;
    border-radius: 0.8rem;
    overflow: hidden;
}

.main-vision .swiper-button-prev,
.main-vision .swiper-button-next {
    position: static;
    width: 9.2rem;
    height: 9.2rem;
    margin: 0;
    transition: background 0.3s;
}

.main-vision .swiper-button-next {
    transform: rotate(180deg);
}

.main-vision .swiper-button-prev:hover,
.main-vision .swiper-button-next:hover {
    background: var(--primary);
}

.main-vision .swiper-button-prev::after,
.main-vision .swiper-button-next::after {
    content: "";
    width: 4.8rem;
    height: 4.8rem;
    background: url(../icons/ico_arrow_lg_white.svg) no-repeat center/contain;
}

.main-vision .swiper-pagination {
    position: static;
    width: auto;
    margin-top: 3.2rem;
    text-align: left;
}

.main-vision .swiper-pagination-bullet {
    background: #d8d8d8;
    opacity: 1;
    margin: 0 10px !important;
}

.main-vision .swiper-pagination-bullet-active {
    background: var(--primary);
}

.main-vision .contents-visual {
    position: absolute;
    right: 0;
    top: 0;
    width: 61.8rem;
    height: 100%;
}

.main-vision .contents-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* main-vision 반응형 (중간 해상도) */
@media (max-width: 1400px) {
    .main-vision .contents-visual {
        width: calc(50% - 18rem);
    }
    .main-vision .swiper-controls {
        right: calc(50% - 18rem - 9.2rem);
    }
    .main-vision .contents-swiper {
        padding-right: 4rem;
    }
    .main-vision .video-area-title {
        font-size: 4.2rem;
    }
    .main-vision .video-frame {
        max-width: 100%;
    }
}

/* main-vision 반응형 (모바일) */
@media (max-width: 992px) {
    .main-vision {
        padding-top: 5rem !important;
        padding-bottom: 3rem !important;
    }
    .main-vision .contents-container {
        height: auto !important;
        min-height: auto !important;
        padding-left: 2rem !important;
        padding-right: 2rem !important;
    }
    .main-vision .contents-inner {
        height: 100%;
    }
    .main-vision .contents-title {
        margin-bottom: 2rem;
    }
    .main-vision .contents-left {
        justify-content: flex-start;
        width: 100%;
        max-width: 100%;
        height: 100%;
    }
    .main-vision .contents-swiper {
        height: auto;
        padding: 0 0 4rem 0;
    }
    .main-vision .contents-swiper .swiper-slide {
        min-height: 0 !important;
        height: auto !important;
    }
    .main-vision .textset .textset-tit+.textset-desc {
        margin-top: 2rem;
    }
    .main-vision .textset .textset-tit+.textset-subtit {
        margin-top: 1rem;
    }
    .main-vision .textset .textset-desc+.textset-desc {
        margin-top: 2rem;
    }
    .main-vision .imageset {
        width: 100% !important;
        height: auto !important;
        margin-top: 3rem;
    }
    .main-vision .imageset .imageset-img {
        width: 100% !important;
        height: auto !important;
    }
    /* 카드 메인 모바일 기본설정 */
    .main-vision .cardset-warp {
        max-height: none !important;
        overflow: visible !important;
        margin-top: 2rem;
        gap: 2rem;
    }
    .main-vision .cardset .cardset-inner {
        gap: 2.4rem;
        padding: 9.5rem 3rem;
        border-radius: 0.8rem;
        min-height: 13rem;
    }
    .main-vision .cardset .cardset-inner:hover {
        transform: none;
        box-shadow: none;
    }
    .main-vision .cardset .cardset-figure {
        width: 6rem;
        height: 6rem;
    }
    .main-vision .cardset .cardset-icon {
        font-size: 2.6rem;
    }
    .main-vision .cardset .cardset-tit {
        font-size: 2.4rem;
        margin-bottom: 0.6rem;
    }
    .main-vision .cardset .cardset-desc {
        font-size: 1.5rem;
        line-height: 1.5;
        -webkit-line-clamp: 2;
        display: -webkit-box;
    }
    /* 영상/비주얼 숨김 */
    .main-vision .video-area { max-width: 100%; }
    .main-vision .video-area-title { margin: 0 0 2rem; font-size: 3.2rem; }
    .main-vision .video-frame { max-width: 100%; border-radius: 0.8rem; }
    .main-vision .video-info-title { margin: 1.8rem 0 0.6rem; font-size: 2rem; }
    .main-vision .video-info-quote, .main-vision .video-info-verse { font-size: 1.6rem; }
    .main-vision .swiper-pagination { bottom: 1rem !important; margin-top: 2.4rem; }
    .main-vision .swiper-controls, .main-vision .contents-visual { display: none; }
}

/* 카드 영역 해상도별 단계별 축소 (992px 이하구간 플러그인) */
@media (max-width: 900px) {
    .main-vision .cardset .cardset-inner { padding: 8rem 2.4rem; min-height: 9rem; }
}
@media (max-width: 800px) {
    .main-vision .cardset .cardset-inner { padding: 6.2rem 2.2rem; min-height: 9rem; gap: 1.6rem; }
    .main-vision .cardset .cardset-figure { width: 5.4rem; height: 5.4rem; }
    .main-vision .cardset .cardset-icon { font-size: 2.4rem; }
}
@media (max-width: 700px) {
    .main-vision .cardset .cardset-inner { padding: 6rem 2rem; min-height: 7rem; gap: 1.4rem; }
    .main-vision .cardset .cardset-figure { width: 4.8rem; height: 4.8rem; }
    .main-vision .cardset .cardset-icon { font-size: 2.2rem; }
    .main-vision .cardset .cardset-tit { font-size: 1.9rem; }
    .main-vision .cardset .cardset-desc { font-size: 1.3rem; }
}
@media (max-width: 580px) {
    .main-vision .cardset .cardset-inner { padding: 4rem 1.6rem; min-height: 6rem; gap: 1.2rem; }
    .main-vision .cardset .cardset-figure { width: 4.2rem; height: 4.2rem; }
    .main-vision .cardset .cardset-icon { font-size: 2rem; }
    .main-vision .cardset .cardset-tit { font-size: 1.7rem; }
    .main-vision .cardset .cardset-desc { font-size: 1.2rem; }
}
@media (max-width: 440px) {
    .main-vision .cardset-warp { gap: 1rem; }
    .main-vision .cardset .cardset-inner { padding: 2rem 1.2rem; min-height: 5rem; gap: 1rem; }
    .main-vision .cardset .cardset-figure { width: 3.6rem; height: 3.6rem; }
    .main-vision .cardset .cardset-icon { font-size: 1.7rem; }
    .main-vision .cardset .cardset-tit { font-size: 1.5rem; }
    .main-vision .cardset .cardset-desc { font-size: 1.15rem; }
}

/* --------------------------------------------------------------------------
   [MAIN] 미션 섹션 (main-mission)
   -------------------------------------------------------------------------- */
.main-mission {
    position: relative;
    overflow: hidden;
    background: url(../images/13979.jpg) no-repeat center / cover;
}

.main-mission .contents-container {
    display: flex;
    align-items: center;
    justify-content: center;
    position: static;
    height: 85rem;
}

.main-mission .contents-inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
}

.main-mission .contents-title {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 2rem;
    width: 30rem;
}

.main-mission .contents-title p {
    color: var(--white);
}

.main-mission .contents-body {
    width: 100%;
    max-width: 1240px;
    overflow: hidden;
}

.main-mission .contents-body > .textset {
    margin-bottom: 10rem;
}

.main-mission .textset .textset-tit {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--white);
    max-width: 1240px !important;
}

.main-mission .textset .textset-tit + .textset-desc {
    margin-top: 3rem;
}

.main-mission .textset .textset-desc {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #d8d8d8;
}

/* 더보기 버튼 */
.main-mission .view-more {
    display: inline-flex;
    align-items: center;
    margin-top: 2rem;
    font-size: 1.3rem;
    color: #ffffff;
    text-decoration: none;
    opacity: 0.7;
    transition: all 0.3s ease;
    font-weight: 400;
    letter-spacing: -0.05rem;
}

.main-mission .view-more span {
    margin-left: 0.6rem;
    font-size: 1.5rem;
    font-weight: 300;
    display: inline-block;
    transition: transform 0.3s ease;
}

.main-mission .view-more:hover {
    opacity: 1;
    color: #ffffff;
}

.main-mission .view-more:hover span {
    transform: rotate(90deg);
    color: #ffffff; 
}

.main-mission .contents-swiper {
    margin-left: -2rem;
}

.main-mission .swiper-slide {
    width: calc(100% / 4);
    padding: 0 2rem;
}

.main-mission .swiper-slide .textset {
    padding-top: 2rem;
    border-top: 1px solid #aaa;
}

.main-mission .swiper-slide .textset .textset-tit {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

.main-mission .swiper-slide .textset .textset-tit + .textset-desc {
    margin-top: 2rem;
}

.main-mission .swiper-slide .textset .textset-desc {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #e9e9e9;
}

.main-mission .swiper-pagination {
    top: calc(100% - 2rem);
    bottom: auto;
    text-align: left;
}

.main-mission .swiper-pagination-bullet {
    background: color-mix(in srgb, #fff 40%, transparent);
    opacity: 1;
}

.main-mission .swiper-pagination-bullet-active {
    background:#f08c00;
}

.main-mission .block_overlay {
    position: absolute;
    content: "";
    z-index: 0;
    top: 0; left: 0; right: 0; bottom: 0;
    opacity: 0.7;
    background-color: #121212ff;
}

/* main-mission 반응형 (모바일) */
@media (max-width: 992px) {
    .main-mission {
        padding: 8rem 2.4rem;
    }
    .main-mission .contents-container {
        height: auto;
        width: 100%;
    }
    .main-mission .contents-inner {
        display: block;
        width: 100%;
    }
    .main-mission .contents-body {
        width: 100%;
    }
    .main-mission .contents-body > .textset {
        margin-bottom: 5rem;
        text-align: left;
    }
    .main-mission .textset .textset-tit {
        width: 100%;
        text-align: left;
        font-size: 3.2rem;
    }
    .main-mission .textset .textset-desc {
        text-align: left;
    }
    .main-mission .view-more {
        margin-top: 1.5rem;
        font-size: 1.3rem;
    }
    .main-mission .contents-swiper {
        margin-left: 0;
        width: 100%;
    }
    .main-mission .swiper-slide {
        width: 100% !important;
        padding: 0;
    }
    .main-mission .swiper-slide .textset {
        width: 100%;
        text-align: left;
        padding-bottom: 5rem;
    }
    .main-mission .swiper-pagination {
        text-align: left;
        left: 0;
        width: 100%;
        bottom: 2rem;
    }
}

/* --------------------------------------------------------------------------
   [MAIN] 뉴스 섹션 (main-news)
   -------------------------------------------------------------------------- */
.main-news {
    position: relative;
    padding-top: 10rem;
    padding-bottom: 10rem;
    overflow: hidden;
    background: #f7f7fb;
}

.main-news .contents-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem 4rem;
    margin-bottom: 5rem;
}

.main-news .contents-link {
    position: relative;
    align-self: flex-end;
    padding-right: 2.8rem;
    color: var(--text-color1);
    transition: 0.3s;
}

.main-news .contents-link::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 2.4rem;
    height: 2.4rem;
    background-image: url(../icons/ico_plus_pri.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transition: 0.3s;
}

.main-news .contents-link:hover {
    color: var(--primary);
}

.main-news .contents-link:disabled,
.main-news .contents-link.disabled {
    cursor: default !important;
    color: var(--text-color3);
}

.main-news .contents-link:disabled::after,
.main-news .contents-link.disabled::after {
    background-image: url(../icons/ico_N9_plus_gray.svg) !important;
}

.main-news .cardset-wrap {
    display: flex;
    gap: 4rem;
}

.main-news .cardset {
    width: 25%;
}

.main-news .cardset .cardset-figure {
    width: 100%;
    height: 29rem;
    margin: 0;
    border-radius: 1.2rem !important; 
}

.main-news .cardset .cardset-figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 1.2rem !important;  
}

.main-news .cardset .cardset-body {
    padding-bottom: 0;
}

.main-news .cardset .cardset-tit {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;
}

.main-news .cardset .cardset-tit+.cardset-desc {
    margin-top: 1.2rem;
}

.main-news .cardset .cardset-desc {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;
    color: var(--text-color3);
}

.main-news .cardset .cardset-date {
    margin-top: 1.2rem;
    color: var(--text-color2);
}

/* main-news 반응형 (모바일) */
@media (max-width: 992px) {
    .main-news {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }
    .main-news .contents-top {
        margin-bottom: 3rem;
    }
    .main-news .contents-link {
        padding-right: 2.4rem;
    }
    .main-news .contents-link::after {
        width: 2rem;
        height: 2rem;
    }
    .main-news .cardset-wrap {
        flex-direction: column;
    }
    .main-news .cardset {
        width: 100%;
    }
    .main-news .cardset .cardset-figure {
        height: 20rem;
    }
    .main-news .cardset .cardset-body {
        padding-top: 1.6rem;
    }
    .main-news .cardset .cardset-tit+.cardset-desc {
        margin-top: 0.8rem;
    }
    .main-news .cardset .cardset-date {
        margin-top: 0.8rem;
    }
}

/* --------------------------------------------------------------------------
   [MAIN] 교육 섹션 (main-edu)
   -------------------------------------------------------------------------- */
.main-edu {
    position: relative;
    overflow: hidden;
    background: url(../images/2148144531.jpg) no-repeat center / cover;
}

.main-edu .contents-container {
    display: flex;
    align-items: center;
    justify-content: center;
    position: static;
    height: 92rem; 
}

.main-edu .contents-inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    position: relative;
    z-index: 1;
    width: 100%;
}

.main-edu .contents-body {
    width: 100%;
}

.main-edu .contents-body > .textset {
    margin-bottom: 6rem;
}

.main-edu .textset .textset-tit {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--white);
}

.main-edu .textset .textset-tit + .textset-desc {
    margin-top: 3rem;
}

.main-edu .textset .textset-desc {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #d8d8d8;
}

.main-edu .contents-list {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 1.5rem;
}

/* 호버 시 이미지 전환 아이템 */
.main-edu .contents-item {
    position: relative;
    overflow: hidden; 
    width: calc(100% / 5 - 1.5rem);
    border-radius: 0.8rem;
    padding: 0;
}

.main-edu .contents-item::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
    transform: scale(1);
    transition: opacity 0.5s ease, transform 0.6s ease;
    z-index: 0;
    border-radius: 0.8rem;
}

.main-edu .contents-item::after {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    opacity: 0;
    transition: opacity 0.5s ease;
    z-index: 1;
    border-radius: 0.8rem;
}

/* 각 순서별 배경 매칭 */
.main-edu .contents-item:nth-child(1)::before { background-image: url(../images/yuabu.jpg); }
.main-edu .contents-item:nth-child(2)::before { background-image: url(../images/yuchibu.jpg); }
.main-edu .contents-item:nth-child(3)::before { background-image: url(../images/adongbu.jpg); }
.main-edu .contents-item:nth-child(4)::before { background-image: url(../images/haksaengbu.jpg); }
.main-edu .contents-item:nth-child(5)::before { background-image: url(../images/cheongnyeonhoe.jpg); }

.main-edu .contents-item:hover::before {
    opacity: 1;
    transform: scale(1.08);
}

.main-edu .contents-item:hover::after {
    opacity: 1;
}

.main-edu .contents-link {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.8rem;
    padding: 7.7rem 1.6rem !important; 
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: inherit;
    flex-direction: row !important;
    text-align: left !important;
}

/* 기본 단색배경 지그재그 배치 */
.main-edu .contents-item:nth-child(even) { margin-top: 4rem; }
.main-edu .contents-item:nth-child(1) { background-color: #6741d9; }
.main-edu .contents-item:nth-child(2) { background-color: #3b5bdb; }
.main-edu .contents-item:nth-child(3) { background-color: #1971c2; }
.main-edu .contents-item:nth-child(4) { background-color: #0c8599; }
.main-edu .contents-item:nth-child(5) { background-color: #099268; }

.main-edu .contents-figure {
    flex-shrink: 0;
    width: 4.8rem;
    height: 4.8rem;
    margin: 0;
}

.main-edu .contents-figure img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.main-edu .contents-item strong {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--white);
}

.main-edu .block_overlay {
    position: absolute;
    z-index: 0;
    top: 0; left: 0; right: 0; bottom: 0;
    opacity: 0.4;
    background-color: #01093BFF;
}

/* main-edu 반응형 (태블릿) */
@media (max-width: 1280px) {
    .main-edu .contents-list { gap: 1.2rem; }
    .main-edu .contents-item { width: calc(100% / 2 - 0.6rem); }
    .main-edu .contents-link {
        padding: 4.5rem 1.6rem !important;  
        flex-direction: row;
    }
    .main-edu .contents-item strong { text-align: left; }
    .main-edu .contents-item:nth-child(even) { margin-top: 0; }
    .main-edu .contents-figure { width: 3.6rem; height: 3.6rem; }
}

/* main-edu 반응형 (모바일) */
@media (max-width: 992px) {
    .main-edu { padding-top: 9rem; padding-bottom: 6rem; }
    .main-edu .contents-container { height: 75rem; } 
    .main-edu .contents-inner { flex-direction: column; }
}

/* --------------------------------------------------------------------------
   [MAIN] 지도 섹션 (main-map)
   -------------------------------------------------------------------------- */
.main-map {
    overflow: hidden;
    position: relative;
    padding-top: 9rem;
    padding-bottom: 10rem;
    background: #2D2D2DFF;
}

.main-map .th-block-option-wrap {
    position: absolute !important;
    top: 12px !important;
    right: 1.2rem !important;
}

.main-map .contents-inner {
    width: 100%;
}

.main-map .textset {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 6rem;
    width: 100% !important;
}

.main-map .textset .textset-tit {
    width: calc(50% - 6rem);
    color: var(--white) !important; 
}

.main-map .textset .textset-tit.h2 {
    color: var(--white) !important;
}

.main-map .textset .textset-wrap {
    width: 50%;
    padding-top: 1.2rem;
}

.main-map .textset .textset-subtit {
    display: block;
    margin: 0;
    font-weight: var(--fw-bold);
    color: #ffffff !important; 
}

.main-map .textset .textset-subtit.h5 {
    color: #ffffff !important;
}

.main-map .textset .textset-desc {
    margin: 0.8rem 0 0;
    color: var(--text-color3) !important;
}

.main-map .map-area {
    position: relative;
    margin-top: 6rem;
}

.main-map .map-area iframe {
    width: 100%;
    height: 72rem;
    border-radius: 3.2rem;
}

/* 연락처 팝업 카드 */
.main-map .contact-info {
    position: absolute;
    right: 4rem;
    bottom: 4rem;
}

.main-map .contact-info .info-btn {
    display: inline-flex;
    justify-content: flex-end;
    flex-direction: row-reverse;
    align-items: center;
    gap: 1.2rem;
    padding: 0 2.4rem;
    height: 7.8rem;
    color: var(--black);
    font-weight: var(--fw-bold);
    border-radius: 1.6rem;
    border: none;
    background: var(--white);
    box-shadow: 0 0 2.4rem 0 rgba(126, 126, 126, 0.25);
    transition: color 0.3s, background 0.3s;
}

.main-map .contact-info .info-btn:hover {
    color: var(--white);
    background: #37ac98;
}

.main-map .contact-info .info-content {
    overflow: hidden;
    position: absolute;
    right: 0;
    bottom: 0;
    opacity: 0;
    visibility: hidden;
    padding: 2.4rem;
    width: 36.8rem;
    border-radius: 3.2rem;
    background: var(--white);
    box-shadow: 0 0 2.4rem 0 rgba(161, 161, 161, 0.25);
    transition: opacity 0.3s, visibility 0.3s;
}

.main-map .contact-info .info-content.active {
    opacity: 1;
    visibility: visible;
}

.main-map .info-content .info-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.main-map .info-content .info-head h3 {
    font-weight: var(--fw-bold);
}

.main-map .info-content .info-head .close-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.2rem;
    height: 3.2rem;
    background: transparent;
    border: none;
    font-size: 2.8rem;
    color: var(--black);
}

.main-map .info-content .info-body {
    margin-top: 4.8rem;
}

.main-map .info-content .info-body dl {
    display: flex;
    align-items: center;
    gap: 0.8rem;
}

.main-map .info-content .info-body dl+dl {
    margin-top: 0.8rem;
}

.main-map .info-content .info-body dt {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.main-map .info-content .info-body dt i {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
}

.main-map .info-content .info-body dt i.ico-addr {
    background: url(../icons/ico_home_black.svg) no-repeat center/contain;
}

.main-map .info-content .info-body dt i.ico-call {
    background: url(../icons/ico_call_black.svg) no-repeat center/contain;
}

.main-map .info-content .info-body dd {
    margin: 0;
    font-weight: var(--fw-medium);
}

.main-map .info-content .info-body .call {
    font-weight: var(--fw-bold);
}

.main-map .info-content .info-footer {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    margin-top: 4rem;
}

.main-map .info-content .info-footer a {
    overflow: hidden;
    position: relative;
    padding: 2.4rem;
    width: 100%;
    height: 12rem;
    border-radius: 2.4rem;
}

.main-map .info-content .info-footer a span {
    display: flex;
    justify-content: flex-end;
    flex-direction: row-reverse;
    align-items: center;
    gap: 0.4rem;
    font-weight: var(--fw-bold);
}

.main-map .info-content .info-footer .naver {
    background: url(../images/median_N9_01.png) no-repeat center/cover;
}

.main-map .info-content .info-footer .naver span {
    color: var(--white);
}

.main-map .info-content .info-footer .kakao {
    background: url(../images/median_N9_02.png) no-repeat center/cover;
}

.main-map .info-content .info-footer .kakao span {
    color: var(--black);
}

.main-map .info-content .info-footer [class*="ico-"] {
    position: absolute;
    right: 2.4rem;
    bottom: 2.4rem;
    width: 4rem;
    height: 4rem;
}

.main-map .info-content .info-footer .ico-naver {
    background: url(../icons/ico_naver.svg) no-repeat center/contain;
}

.main-map .info-content .info-footer .ico-kakao {
    background: url(../icons/ico_kakao.svg) no-repeat center/contain;
}

/* main-map 반응형 (모바일) */
@media (max-width: 992px) {
    .main-map {
        padding-top: 4rem;
        padding-bottom: 8rem;
    }
    .main-map .textset { display: block; }
    .main-map .textset .textset-tit { width: 100%; }
    .main-map .textset .textset-wrap { width: 100%; padding: 0; }
    .main-map .textset .textset-subtit { margin: 3.2rem 0 0.4rem; }
    .main-map .textset .textset-desc { margin: 0; }
    .main-map .map-area { margin-top: 3rem; }
    .main-map .map-area iframe { height: 48rem; border-radius: 2.4rem; }
    .main-map .contact-info { right: 2.4rem; bottom: 2.4rem; }
    .main-map .contact-info .info-btn { gap: 0.8rem; padding: 0 1.6rem; height: 5.8rem; border-radius: 0.8rem; }
    .main-map .contact-info .info-content { padding: 1.6rem; width: 28.8rem; border-radius: 2.4rem; }
    .main-map .info-content .info-head .close-btn { width: 2.4rem; height: 2.4rem; font-size: 2.2rem; }
    .main-map .info-content .info-body { margin-top: 3.2rem; }
    .main-map .info-content .info-body dl { gap: 0.4rem; }
    .main-map .info-content .info-body dt i { width: 2rem; height: 2rem; }
    .main-map .info-content .info-footer { gap: 0.8rem; margin-top: 2.4rem; }
    .main-map .info-content .info-footer a { padding: 1.6rem; height: 10rem; border-radius: 1.8rem; }
    .main-map .info-content .info-footer [class*="ico-"] { right: 1.6rem; bottom: 1.6rem; width: 3.2rem; height: 3.2rem; }
}

/* --------------------------------------------------------------------------
   [MAIN] 퀵 메뉴 (main-quick)
   -------------------------------------------------------------------------- */
.main-quick {
    position: fixed;
    right: 4rem;
    bottom: 4rem;
    z-index: 50;
}

.main-quick .contents-container {
    max-width: 100%;
}

.main-quick .menu-list {
    position: absolute;
    right: 0;
    bottom: calc(100% + 1.2rem);
}

.main-quick .menu-list li+li {
    margin-top: 0.8rem;
}

.main-quick .menu-list a,
.main-quick .menu-list button {
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    width: 5.6rem;
    height: 5.6rem;
    color: var(--black);
    background: var(--white);
    border-radius: 10rem;
    box-shadow: 0 0.4rem 2rem 0 rgba(var(--black-rgb), 0.1);
    transition: width 0.3s, padding 0.3s, gap 0.3s 0.3s;
}

.main-quick .menu-list a:hover {
    width: 100%;
    padding: 1.5rem 1.8rem;
    gap: 0.8rem;
}

.main-quick .menu-list a:hover,
.main-quick .menu-list button:hover {
    background: var(--primary);
}

.main-quick .menu-list a:hover span {
    width: auto;
    opacity: 1;
    visibility: visible;
    transition: 0.2s;
}

.main-quick .menu-list span {
    width: 0;
    opacity: 0;
    visibility: hidden;
    white-space: nowrap;
    font-weight: var(--fw-medium);
    color: var(--white);
}

.main-quick .menu-list a i,
.main-quick .menu-list button i {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    font-size: 2rem;
    transition: color 0.3s;
}

/* 탑버튼 기본 리셋 */
.main-quick .menu-list button {
    border: 0;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    padding: 0;
}

.main-quick .menu-list a:hover i,
.main-quick .menu-list button:hover i {
    color: var(--white);
}

/* main-quick 반응형 (모바일) */
@media (max-width: 992px) {
    .main-quick {
        right: 1.6rem;
        bottom: 1.6rem;
    }
    .main-quick .menu-list a,
    .main-quick .menu-list button {
        width: 4rem;
        height: 4rem;
    }
    .main-quick .menu-list a i,
    .main-quick .menu-list button i {
        width: 1.6rem;
        height: 1.6rem;
    }
    /* 모바일: 터치(hover) 시 펼쳐지면서 메뉴명 표시 */
    .main-quick .menu-list a:hover {
        width: auto;
        padding: 1.2rem 1.6rem;
        gap: 0.6rem;
    }
    .main-quick .menu-list a:hover span {
        width: auto;
        opacity: 1;
        visibility: visible;
        font-size: 1.3rem;
    }
    .main-quick .menu-list button:hover {
        gap: 0.4rem;
        padding: 0.8rem 1.2rem;
    }
    .main-quick .menu-list a i::before,
    .main-quick .menu-list button i::before {
        font-size: 1.6rem;
    }
    .main-quick .menu-list li+li {
        margin-top: 0.4rem;
    }
}

/* --------------------------------------------------------------------------
   [MAIN] 햄버거 전체메뉴 레이아웃 (fullmenu)
   -------------------------------------------------------------------------- */
.fullmenu-gnblist {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 100px; 
    justify-content: center;
}

.fullmenu-gnbitem {
    display: block !important;
    min-width: 150px; 
    margin-bottom: 30px;
}

.fullmenu-sublist {
    margin-top: 15px !important; 
    display: block !important;
}

.fullmenu-subitem {
    margin-bottom: 8px; 
}


/* ==========================================================================
   03. 서브 페이지 섹션 (Sub Page Sections)
   ========================================================================== */

/* --------------------------------------------------------------------------
   [SUB] 서브 네비게이션 드롭다운 (sub-nav)
   -------------------------------------------------------------------------- */
.sub-nav {
    position: relative;
    border-bottom: 1px solid #e5e5e5;
}

.sub-nav .contents-container::before { left: -50%; }
.sub-nav .contents-container::after { right: -50%; }
.sub-nav .contents-inner { width: 100%; }

.sub-nav .dropset.dropset-relax .dropset-head,
.sub-nav .dropset.dropset-relax .dropset-toggle {
    border-bottom: none;
}

.sub-nav .dropset .dropset-head::after { font-size: 1.8rem; }
.sub-nav .dropset.dropset-relax .dropset-toggle::after { font-size: 1.6rem; }
.sub-nav .dropset + .dropset { flex-basis: 26rem; }

.sub-nav .dropset-list { display: none; }
.sub-nav .dropset-area.open .dropset-list { display: block; }

.dropset-head { position: relative; }
.dropset-head a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    position: absolute;
    inset: 0;
    z-index: 1;
}

.idmc-drop .dropset-list { display: none; }
.idmc-drop.open .dropset-list { display: block; }

/* sub-nav 반응형 (모바일) */
@media (max-width: 996px) {
    .sub-nav .dropset .dropset-head::after {
        width: auto;
        height: auto;
    }
}

/* --------------------------------------------------------------------------
   [SUB] 교회 비전 섹션 (vision)
   -------------------------------------------------------------------------- */
.vision {
    position: relative;
    padding-top: 5rem;
    padding-bottom: 20rem;
    overflow: hidden;
}

.vision .contents-inner {
    width: 100%;
}

.vision .title-area {
    margin-bottom: 6rem;
    text-align: center;
}

.vision .title-area h2 {
    font-size: 3rem;
    color: var(--text-color3);
    font-weight: var(--fw-medium);
}

.vision .vision-en {
    font-size: 15rem;
    line-height: 15rem;
    font-weight: var(--fw-bold);
    margin-top: 1.2rem;
}

.vision .vision-desc {
    font-size: 2rem;
    margin-top: 1.2rem;
    line-height: 3rem;
}

/* 아코디언형 비전 카드 리스트 */
.vision .detail-area {
    height: 46rem;
    display: flex;
    justify-content: center;
    gap: 2rem;
}

.vision .detail-item {
    flex: 1 0;
    display: flex;
    position: relative;
    border-radius: 0.8rem;
    overflow: hidden;
    transition: flex 0.4s ease;
    will-change: flex;
    cursor: pointer;
}

.vision .item-link {
    position: absolute;
    inset: 0;
    z-index: 3; 
}

.vision .detail-item::before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0; left: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.7) 30%, rgba(128,128,128,0));
    z-index: 1;
}

.vision .detail-item.active {
    flex: 3.78;
}

.vision .detail-item img {
    width: 100%;
    object-fit: cover;
    object-position: center;
}

.vision .item-desc {
    padding: 2.4rem;
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 2;
}

.vision .item-letter {
    display: block;
    font-size: 8rem;
    line-height: 8rem;
    color: #fff;
    font-weight: var(--fw-bold);
    transform: translateY(0);
    transition: transform 0.4s ease;
}

.vision .item-desc strong {
    display: block;
    color: #fff;
    font-weight: var(--fw-bold);
    overflow: hidden;
    opacity: 0;
    transform: translateY(12px);
    margin: 0;
    max-height: 0;
    transition: opacity 0.35s ease, transform 0.35s ease, max-height 0.35s ease, margin 0.35s ease;
}

.vision .item-desc p {
    display: block;
    color: #fff;
    overflow: hidden;
    opacity: 0;
    transform: translateY(12px);
    max-height: 0;
    transition: opacity 0.35s ease 0.05s, transform 0.35s ease 0.05s, max-height 0.35s ease 0.05s;
}

/* 카드 활성화(Active) 애니메이션 */
.vision .detail-item.active .item-letter {
    transform: translateY(-6px);
}

.vision .detail-item.active .item-desc strong {
    opacity: 1;
    transform: translateY(0);
    max-height: 5rem;
    margin: 0.8rem 0 0.4rem;
}

.vision .detail-item.active .item-desc p {
    opacity: 1;
    transform: translateY(0);
    max-height: 5rem;
}

/* vision 반응형 */
@media (max-width: 992px) {
    .vision { padding-top: 7rem; padding-bottom: 7rem; }
    .vision .vision-en { font-size: 12rem; }
    .vision .detail-area { flex-direction: column; gap: 1.4rem; height: auto; }
    .vision .detail-item { height: 100vh; max-height: 20rem; transition: max-height 0.4s ease; }
    .vision .detail-item.active { flex: unset; max-height: 40rem; }
    .vision .item-desc { padding: 1.5rem; }
}
@media (max-width: 576px) {
    .vision .detail-item { max-height: 10rem; }
    .vision .detail-item.active { max-height: 20rem; }
}

/* --------------------------------------------------------------------------
   [SUB] 서비스 소개 섹션 (service-info)
   -------------------------------------------------------------------------- */
.service-info {
    position: relative;
    padding-top: 12rem;
    padding-bottom: 28rem;
}

.service-info .contents-inner {
    display: flex;
    align-items: flex-start;
    gap: 6rem;
    width: 100%;
}

.service-info .title-area {
    flex: 1 1 46.6rem;
    position: sticky;
    top: calc(50% - 17rem);
}

.service-info .textset-tit {
    font-size:50px;
    line-height:60px;
}

.service-info .title-area .textset-desc {
    margin: 0.8rem 0 0;
    color: var(--text-color3);
}

.service-info .list-area {
    flex: 1 1 91.4rem;
}

.service-info .list-area .cardset-wrap {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: flex-start;
    gap: 4rem;
}

.service-info .cardset-wrap .cardset {
    padding: 3rem;
    border: 1px solid var(--border-color);
    background: var(--white);
}

.service-info .cardset-wrap .cardset-round {
    border-radius: 2rem;
}

.service-info .cardset-wrap .cardset:nth-child(2n) {
    transform: translateY(10rem);
}

.service-info .cardset-wrap a.cardset:hover {
    border-color: var(--primary);
}

.service-info .cardset-wrap .cardset-figure {
    height: 26rem;
}

.service-info .cardset-wrap .cardset-figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 1.4rem;
}

.service-info .cardset-wrap .cardset-body {
    margin-top: 2.5rem;
    padding: 0;
}

.service-info .cardset-wrap .cardset-body .cardset-desc {
    margin-top: 0.5rem;
}

.service-info .cardset-wrap .cardset-body .cardset-desc span{
    font-weight:600;
    font-size:18px;
    background: linear-gradient(to top, #c9c9ff 50%, transparent 50%);
    padding: 0;
}

.service-info .cardset-wrap .cardset-tit {
    font-size:23px;
    font-weight: var(--fw-bold);
}

.service-info .cardset-wrap .cardset-desc {
    margin: 1.2rem 0 0;
    -webkit-line-clamp: unset;
}

/* 링크 비활성 처리용 */
.service-info .cardset-wrap a.cardset.cardset-nolink {
    pointer-events: none;
    cursor: default;
}
.service-info .cardset-wrap a.cardset.cardset-nolink:hover {
    border-color: var(--border-color);
}

/* service-info 반응형 (모바일) */
@media (max-width: 992px) {
    .service-info { padding-top: 6rem; padding-bottom: 8rem; }
    .service-info .contents-inner { flex-direction: column; gap: 4rem; }
    .service-info .title-area { flex: none; width: 100%; position: static; }
    .service-info .textset-tit { font-size:40px; line-height:50px; }
    .service-info .list-area { flex: none; width: 100%; }
    .service-info .list-area .cardset-wrap { grid-template-columns: 1fr; gap: 2.8rem; }
    .service-info .cardset-wrap .cardset:nth-child(2n) { transform: none; }
    .service-info .cardset-wrap .cardset-figure { height: 21rem; }
    .service-info .cardset-wrap .cardset-figure img { border-radius: 1rem; }
    .service-info .cardset-wrap .cardset-body { margin-top: 2rem; }
    .service-info .cardset-wrap .cardset-body .cardset-tit{ font-size:23px; }
    .service-info .cardset-wrap .cardset-desc { margin-top: 0.4rem; }
}

/* --------------------------------------------------------------------------
   [SUB] 찬양대 소개 섹션 (gloria-choir)
   -------------------------------------------------------------------------- */
.gloria-choir {
    position: relative;
    padding-top: 5rem;
    padding-bottom: 15rem;
    overflow: hidden;
}

.gloria-choir .contents-inner {
    width: 100%;
}

.gloria-choir .title-area {
    margin-bottom: 6rem;
    text-align: center;
}

.gloria-choir .title-area h2 {
    font-size: 2.5rem;
    color: var(--primary);
    font-weight: 700;
    letter-spacing: 0.1rem;
    margin: 0;
}

.gloria-choir .choir-en {
    font-size: 6rem;
    line-height: 1.2;
    font-weight: var(--fw-bold);
    color: var(--text-color1);
    margin: 1.6rem 0 0;
}

.gloria-choir .choir-desc {
    font-size: 1.8rem;
    line-height: 1.7;
    color: var(--text-color3);
    margin-top: 2rem;
}

/* 이미지 그리드 (교차 배치 크기 가변) */
.gloria-choir .thumb-area {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.gloria-choir .wrap {
    display: flex;
    gap: 2rem;
    width: 100%;
}

.gloria-choir .thumb {
    position: relative;
    overflow: hidden;
    border-radius: 1.2rem;
    aspect-ratio: 2 / 1;
    height: auto;
}

.gloria-choir .thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.gloria-choir .thumb:hover img {
    transform: scale(1.05);
}

.gloria-choir .thumb.lg { flex: 1.6; }
.gloria-choir .thumb.sm { flex: 1; }

/* gloria-choir 반응형 */
@media (max-width: 992px) {
    .gloria-choir { padding-top: 3rem; padding-bottom: 8rem; }
    .gloria-choir .title-area { margin-bottom: 4rem; }
    .gloria-choir .title-area h2 { font-size: 2rem; }
    .gloria-choir .choir-en { font-size: 4rem; }
    .gloria-choir .choir-desc { font-size: 1.5rem; margin-top: 1.6rem; }
    .gloria-choir .choir-desc br { display: none; }
    .gloria-choir .thumb-area, .gloria-choir .wrap { flex-direction: column; gap: 1.4rem; }
    .gloria-choir .thumb { flex: none; height: 24rem; }
}
@media (max-width: 576px) {
    .gloria-choir .choir-en { font-size: 4rem; }
    .gloria-choir .thumb { height: 20rem; }
}

/* --------------------------------------------------------------------------
   [SUB] 예배단 소개 섹션 (ds-worship)
   -------------------------------------------------------------------------- */
.ds-worship {
    position: relative;
    padding-top: 5rem;
    padding-bottom: 15rem;
    overflow: hidden;
}

.ds-worship .contents-inner {
    width: 100%;
}

.ds-worship .title-area {
    margin-bottom: 6rem;
    text-align: center;
}

.ds-worship .title-area h2 {
    font-size: 2rem;
    color: var(--primary);
    font-weight: 700;
    letter-spacing: 0.0rem;
    margin: 0;
}

.ds-worship .worship-en {
    font-size: 6rem;
    line-height: 1.2;
    font-weight: var(--fw-bold);
    color: var(--text-color1);
    margin: 1.6rem 0 0;
}

.ds-worship .worship-desc {
    font-size: 1.8rem;
    line-height: 1.7;
    color: var(--text-color3);
    margin-top: 2rem;
}

/* 이미지 그리드 균등형 4:3 */
.ds-worship .thumb-area {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.ds-worship .wrap {
    display: flex;
    gap: 2rem;
    width: 100%;
}

.ds-worship .thumb {
    position: relative;
    flex: 1;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border-radius: 1.2rem;
}

.ds-worship .thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.ds-worship .thumb:hover img {
    transform: scale(1.05);
}

/* ds-worship 반응형 */
@media (max-width: 992px) {
    .ds-worship { padding-top: 3rem; padding-bottom: 8rem; }
    .ds-worship .title-area { margin-bottom: 4rem; }
    .ds-worship .title-area h2 { font-size: 2rem; }
    .ds-worship .worship-en { font-size: 4rem; }
    .ds-worship .worship-desc { font-size: 1.5rem; margin-top: 1.6rem; }
    .ds-worship .worship-desc br { display: none; }
    .ds-worship .thumb-area, .ds-worship .wrap { flex-direction: column; gap: 1.4rem; }
    .ds-worship .thumb { flex: none; }
}
@media (max-width: 576px) {
    .ds-worship .worship-en { font-size: 4rem; }
}

/* --------------------------------------------------------------------------
   [SUB] 담임목사 소개 섹션 (people-intro)
   -------------------------------------------------------------------------- */
.people-intro {
    overflow: hidden;
    position: relative;
    padding-top: 2rem;
    padding-bottom: 0rem;
}

.people-intro .contents-container::before {
    content: "";
    position: absolute;
    left: 50%; top: 0;
    transform: translateX(-50%);
    width: 100vw;
    height: 100%;
    background: #eef2fa;
    overflow: hidden;
}

.people-intro .contents-inner {
    display: flex;
    gap: 8rem;
    position: relative;
    margin-top: 4rem;
    padding: 6rem 0 0;
    width: 100%;
}

.people-intro .desc-area {
    flex: 1 1 83rem;
    padding: 5rem 0 10rem;
}

.people-intro .desc-area h2 {
    font-size: 5rem !important;
    line-height: 6rem !important;
}

.people-intro .desc-area p {
    margin: 4rem 0;
    color: var(--text-color3);
    font-size: 1.8rem;
}

.people-intro .info-wrap {
    display: flex;
    align-items: flex-end;
    gap: 0.8rem;
}

.people-intro .info-wrap span {
    color: var(--text-color3);
    font-size: 2rem;
    padding-right:0.5rem;
    padding-top: 1.5rem;
}

.people-intro .info-wrap strong {
    font-weight: var(--fw-bold);
    white-space: nowrap;
    font-size: 3.5rem;
}

.people-intro .thumb-area {
    flex: 1 0 45.9rem;
    position: relative;
}

.people-intro .thumb-area img {
    position: absolute;
    bottom: 0;
    z-index: 1;
    width: 45.9rem;
    height: 74rem;
}

/* 소개 영상 플레이 팝업 버튼 세팅 */
.people-intro .video-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
    margin-left: 5rem;
    padding: 1.0rem 2.2rem;
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 999px;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.08);
    cursor: pointer;
    font-size: 1.6rem;
    font-weight: 600;
    color: #222;
    line-height: 1;
    transform: translateY(1rem);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.people-intro .video-btn:hover {
    transform: translateY(calc(1rem - 2px));
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.10);
}

.people-intro .video-btn svg {
    display: block;
    flex-shrink: 0;
}

.people-intro .video-btn span {
    display: inline-block;
    line-height: 1;
    position: relative;
    top: -0.7rem;
}

/* 소개 영상 전용 라이트박스 모달 */
.video-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
}

.video-modal.is-open { display: flex; }
.video-modal__overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.85); cursor: pointer; }
.video-modal__inner { position: relative; width: 90%; max-width: 110rem; z-index: 1; }

.video-modal__close {
    position: absolute;
    top: -5rem; right: 0;
    width: 4rem; height: 4rem;
    background: transparent;
    border: none;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: opacity 0.2s ease;
}

.video-modal__close:hover { opacity: 0.7; }
.video-modal__frame { position: relative; width: 100%; padding-bottom: 56.25%; background: #000; border-radius: 1rem; overflow: hidden; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4); }
.video-modal__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* people-intro 반응형 */
@media (max-width: 992px) {
    .people-intro { padding-top: 0; padding-bottom: 0; }
    .people-intro .contents-container::before { content: none; }
    .people-intro .contents-inner { flex-direction: column-reverse; gap: 3rem; margin-top: 0; padding: 3rem 0; }
    .people-intro .desc-area h2 { font-size: 4rem !important; line-height: 5rem !important; }
    .people-intro .desc-area { flex: none; width: 100%; padding: 2rem 0 0; }
    .people-intro .desc-area p { margin: 2rem 0 2.4rem; }
    .people-intro .info-wrap { gap: 0.4rem; align-items: flex-end; }
    .people-intro .info-wrap span { font-size: 2rem; padding-right:0.5rem; padding-top: 1.5rem; }
    .people-intro .info-wrap strong { font-size: 3rem; }
    .people-intro .thumb-area {
        flex: none; display: flex; align-items: center; justify-content: center; position: relative;
        margin-left: -1.6rem; padding: 3.9rem 1.6rem 0; width: calc(100% + 3.2rem); min-height: 37.8rem; background: #eef2fa;
    }
    .people-intro .thumb-area img { position: static; width: 28.4rem; height: 45.8rem; }
    .people-intro .video-btn { margin-left: 2rem; padding: 0.8rem 1.8rem; font-size: 1.4rem; gap: 0.6rem; transform: translateY(1rem); }
    .people-intro .video-btn svg { width: 15px; height: 15px; }
}
@media (max-width: 600px) {
    .people-intro .video-btn { margin-left: 0; margin-top: 1.2rem; }
    .video-modal__inner { width: 94%; }
    .video-modal__close { top: -4.5rem; width: 3.6rem; height: 3.6rem; }
}

/* --------------------------------------------------------------------------
   [SUB] 인물 리스트 그리드 섹션 (people-list)
   -------------------------------------------------------------------------- */
.people-list {
    overflow: hidden;
    position: relative;
    padding-top: 5rem;
    padding-bottom: 4rem;
}

.people-list .contents-inner {
    width: 100%;
}

.people-list .title-area {
    margin-bottom: 2rem;
}

.people-list .title-area h2 {
    font-weight: 700;
    font-size: 4rem;
    letter-spacing: -0.2rem;
}

/* 열 제어 멀티클래스 스택 */
.people-list .list-area { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4rem 3rem; } /* 기본 3열 */
.people-list.people-list--4 .list-area { grid-template-columns: repeat(4, 1fr); gap: 4rem 2rem; } /* 4열 */
.people-list.people-list--6 .list-area { grid-template-columns: repeat(6, 1fr); gap: 4rem 1.5rem; } /* 6열 */
.people-list.people-list--6:last-of-type .list-area { padding-bottom: 10rem; }

/* 썸네일 세로형 프로필 최적화 */
.people-list .thumb {
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border-radius: 1.4rem;
}

.people-list.people-list--6 .thumb {
    aspect-ratio: 2 / 3;
}

.people-list .thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
    border-radius: 1.4rem;
}

.people-list .desc { margin-top: 1.6rem; }
.people-list .desc strong { display: block; font-weight: 700; }
.people-list .desc p { margin-top: 0.8rem; color: #666; font-size: 1.4rem; line-height: 1.7; }

/* people-list 반응형 (모바일 일괄 2열 병합구간) */
@media (max-width: 992px) {
    .people-list-first::before { content: ""; display: block; border-top: 1px dashed #e5e5e5; margin: 0 1.6rem; padding-top: 5rem; }
    .people-list-first { border-top: none; padding-top: 3rem; }
    .people-list + .people-list::before { content: ""; display: block; border-top: 1px dashed #e5e5e5; margin: 0 1.6rem 5rem; }
    .people-list + .people-list { padding-top: 0; }
    .people-list { padding-top: 3rem; padding-bottom: 5rem; }
    .people-list .title-area h2 { font-size: 3.2rem; }
    
    /* 2열 고정 전환 */
    .people-list .list-area,
    .people-list.people-list--4 .list-area,
    .people-list.people-list--6 .list-area {
        grid-template-columns: repeat(2, 1fr);
        gap: 3rem 2rem;
    }
    .people-list .thumb,
    .people-list.people-list--4 .thumb,
    .people-list.people-list--6 .thumb {
        aspect-ratio: 4 / 5;
    }
    .people-list .desc { margin-top: 1.2rem; }
    .people-list .desc p { margin-top: 0.6rem; }
}

/* --------------------------------------------------------------------------
   [SUB] 다음 카카오 오프라인 맵 (map-section)
   -------------------------------------------------------------------------- */
.map-section {
    padding: 2rem 1rem 3rem !important;
    max-width: 1280px;
    margin: 0 auto;
}

.root_daum_roughmap {
    width: 100% !important;
    max-width: 1280px;
    margin: 0 auto;
}

.root_daum_roughmap .wrap_map {
    height: 600px !important; 
}

/* map-section 반응형 */
@media screen and (max-width: 1024px) {
    .root_daum_roughmap .wrap_map { height: 500px !important; }
}
@media screen and (max-width: 768px) {
    .root_daum_roughmap .wrap_map { height: 350px !important; }
    .map-section { padding: 1rem 1rem 2rem !important; }
}
@media screen and (max-width: 480px) {
    .map-section { padding: 2rem 1.5rem 3rem !important; }
    .root_daum_roughmap .wrap_map { height: 300px !important; }
}

/* --------------------------------------------------------------------------
   [SUB] 선교지 후원 리스트 그리드 (mission-list)
   -------------------------------------------------------------------------- */
.mission-list {
    overflow: hidden;
    position: relative;
    padding-top: 5rem;
    padding-bottom: 10rem;
}

.mission-list .contents-inner {
    width: 100%;
}

.mission-list .list-area {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4rem 2rem;
}

.mission-list .thumb {
    width: 100%;
    aspect-ratio: 6 / 4;
    overflow: hidden;
    border-radius: 1.4rem;
    border: 1px solid #f0f0f0;
}

.mission-list .thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    border-radius: 1.4rem;
}

.mission-list .desc { margin-top: 1.6rem; }
.mission-list .desc strong { display: block; font-weight: 700; }
.mission-list .desc p { margin-top: 0.8rem; color: #666; font-size: 1.6rem; line-height: 1.2; }

/* KBoard 디폴트 스킨 아이콘 핸들링 상속구역 */
.mission-list .item .thumb {
    aspect-ratio: 16 / 9;
    background-color: #f8fafc;
    display: flex;
    align-items: center;
    justify-content: center;
}

.mission-list .item .thumb .kboard-card-img-fallback {
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
}

.mission-list .item .thumb .kboard-icon-thumbnail {
    width: 40px;
    height: 40px;
    opacity: 0.8;
}

/* mission-list 반응형 */
@media (max-width: 992px) {
    .mission-list .list-area { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .mission-list .list-area { grid-template-columns: repeat(1, 1fr); }
}

/* --------------------------------------------------------------------------
   [SUB] 내부 부서 서브 레이아웃 (edu)
   -------------------------------------------------------------------------- */
.edu {
    overflow: hidden;
    position: relative;
    padding-bottom: 18rem;
}

.edu .contents-inner {
    width: 100%;
    container-type: inline-size;
}

.edu .title-area .textset-desc {
    margin: 0.8rem 0 0;
    color: var(--text-color3);
}

.edu .list-area {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-top: 4rem;
}

.edu .list-area .cardset { position: relative; padding: 0; }
.edu .list-area .cardset.cardset-round { border-radius: 2rem; }
.edu .list-area .cardset .cardset-cont { display: flex; flex-direction: column; justify-content: space-between; padding: 0; height: 100%; }
.edu .list-area .cardset .cardset-body { padding: 1.4rem 2.4rem 4rem; }
.edu .list-area .badge { display: inline-flex; align-items: center; gap: 0.4rem; max-width: 100%; white-space: wrap; }
.edu .list-area .cardset-tit { display: block; margin: 2rem 0 0.4rem; font-size: 3.5rem; line-height: 4rem; font-weight: var(--fw-bold); }
.edu .cardset.cardset-border .cardset-cont .cardset-tit + .cardset-desc { margin: 0; padding: 0; bottom: 0; border: none; }
.edu .list-area .cardset-figure { margin-top: 0; height: 24.4rem; }

/* 호버 슬라이드 정보창 오버레이 */
.edu .list-area .cardset-hover {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 4rem;
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    padding: 5rem;
    background: rgba(var(--black-rgb), 0.6);
    backdrop-filter: blur(1.4rem);
    transition: opacity 0.3s, visibility 0.3s;
    pointer-events: none;
}

.edu .list-area .cardset:hover .cardset-hover { opacity: 1; visibility: visible; }
.edu .cardset-hover .cardset-info .info-item + .info-item { margin-top: 2.4rem; }
.edu .cardset-hover .cardset-info dt, .edu .cardset-hover .cardset-info dd { color: var(--white); pointer-events: auto; }
.edu .cardset-hover .cardset-info dt { font-weight: var(--fw-regular); }
.edu .cardset-hover .cardset-info dd { margin: 0.2rem 0 0; font-weight: var(--fw-bold); }
.edu .cardset-hover .btnset { pointer-events: auto; }

/* 대타이틀 세팅 박스 */
.edu-sub-tit {
    max-width: 1280px;
    margin: 0 auto;
    padding: 5rem 2rem 0;
}

.edu-sub-tit h1 {
    text-align: left;
    font-size: 4rem;
    color: #222;
    font-weight: 700;
}

/* 컨테이너 및 미디어 쿼리 반응형 처리 */
@container (max-width: 1200px) {
    .edu .list-area { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 992px) {
    .edu { padding-top: 2rem; padding-bottom: 8rem; }
    .edu .list-area { grid-template-columns: repeat(2, 1fr); gap: 2rem; margin-top: 2rem; }
    .edu .list-area .cardset .cardset-cont { height: auto; }
    .edu .list-area .cardset .cardset-body { padding: 2rem 2rem 0; }
    .edu .list-area .badge::before { font-size: 1.4rem; }
    .edu .list-area .cardset-tit { margin-top: 1.6rem; }
    .edu .list-area .cardset-figure { margin-top: 0; height: 23rem; }
    .edu .list-area .cardset-hover { gap: 1.6rem; position: static; opacity: 1; visibility: visible; padding: 2rem; background: var(--white); }
    .edu .cardset-hover .cardset-info .info-item { display: flex; align-items: flex-start; justify-content: flex-start; gap: 0.8rem; padding: 1.2rem 0; }
    .edu .cardset-hover .cardset-info .info-item + .info-item { margin: 0; border-top: 1px solid var(--border-color); }
    .edu .cardset-hover .cardset-info .info-item:last-child { padding-bottom: 0; }
    .edu .cardset-hover .cardset-info dt, .edu .cardset-hover .cardset-info dd { color: var(--text-color1); }
    .edu .cardset-hover .cardset-info dt { flex-shrink: 0; width: 4rem; }
    .edu .cardset-hover .cardset-info dd { margin: 0; }
}

@media (max-width: 768px) {
    .edu .list-area { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   [SUB] 교육 부서 미디어 갤러리 (edu-gallery)
   -------------------------------------------------------------------------- */
.edu-gallery {
    overflow: hidden;
    position: relative;
    padding-top: 5rem;
    padding-bottom: 24rem;
    background: #fff;
}

.edu-gallery .contents-inner { width: 100%; }
.edu-gallery .textset-tit, .edu-gallery .textset-desc { color: var(--black); }
.edu-gallery .title-sub { font-weight: 200; font-size: 0.6em; opacity: 0.7; }
.edu-gallery .title-area { position: relative; text-align: center; }

/* 우측 상단 소셜 공유 링크 그룹 */
.edu-gallery-sns {
    position: absolute;
    top: 0; right: 0;
    display: flex;
    align-items: center;
    gap: 15px;
    z-index: 2;
}

.edu-gallery-sns a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 35px;
    height: 35px;
}

.edu-gallery-sns a img {
    width: 30px; height: 30px;
    object-fit: contain;
    transform: scale(1);
    transform-origin: center center;
    transition: transform 0.3s ease;
    will-change: transform;
    backface-visibility: hidden;
}

.edu-gallery-sns a:hover img {
    transform: scale(1.1667);
}

.edu-gallery .title-area .textset-desc { overflow: hidden; margin-top: 0.4rem; }
.edu-gallery .title-area .textset-desc span { display: block; font-size: 2rem; }

/* 정보 배지 및 데이터셋 메타라인 */
.edu-info { display: flex; justify-content: center; align-items: center; gap: 3rem; margin-top: 5rem; flex-wrap: wrap; }
.edu-info-item { display: flex; align-items: center; gap: 1.2rem; }
.edu-info-label { display: inline-block; background: #4d40ae; color: #fff; font-size: 2rem; font-weight: 700; padding: 0.6rem 1.6rem; border-radius: 0.6rem; }
.edu-info-text { font-size: 2.4rem; font-weight: 500; color: var(--black); }

/* 와이드 스와이퍼 가로 롤링 슬라이더 */
.edu-gallery .swiper { overflow: visible; margin-top: 8rem; }
.edu-gallery .cardset { width: 50rem; }
.edu-gallery .cardset .cardset-figure { height: 60rem; }
.edu-gallery .cardset .cardset-figure img { border-radius: 1rem; width: 100%; height: 100%; object-fit: cover; }

/* 진행 바(Progressbar) 인디케이터 */
.edu-gallery .swiper-pagination { position: relative; margin-top: 4rem; }
.edu-gallery .swiper-pagination-progressbar { height: 0.2rem; background: rgba(var(--black-rgb), 0.1); }
.edu-gallery .swiper-pagination-progressbar .swiper-pagination-progressbar-fill { height: 0.4rem; background: var(--black); }

/* edu-gallery 반응형 */
@media (max-width: 992px) {
    .edu-info { margin-top: 3rem; }
    .edu-gallery { padding-top: 2rem; padding-bottom: 10rem; }
    .edu-gallery .swiper { margin-top: 4rem; }
    .edu-gallery .cardset { width: 32rem; }
    .edu-gallery .cardset .cardset-figure { height: 38rem; }
    .edu-gallery .swiper-pagination { margin-top: 2.4rem; }
    .edu-info-label { font-size: 1.8rem; padding: 0.5rem 1.2rem; }
    .edu-info-text { font-size: 2rem; }
    .edu-gallery .title-area .textset-tit { font-size: 5rem; }
    .edu-gallery .title-area .textset-desc span { font-size: 1.8rem; }
}
@media (max-width: 576px) {
    .edu-info { flex-direction: column; align-items: flex-start; display: inline-flex; gap: 1.4rem; }
    .edu-gallery .title-area { display: flex; flex-direction: column; align-items: center; }
    .edu-gallery-sns { position: static; justify-content: flex-end; width: 100%; margin-bottom: 1rem; }
}


/* ==========================================================================
   04. 에디터 및 게시판 공통 스타일 (Editor & Board Commons)
   ========================================================================== */

/* --------------------------------------------------------------------------
   [BOARD] 케이보드(KBoard) 및 본문 iframe 16:9 반응형 처리
   -------------------------------------------------------------------------- */
.kboard-content iframe,
.content-view iframe {
    width: 100% !important;
    max-width: 100%;
    aspect-ratio: 16 / 9;
    height: auto !important;
}

.kboard-thumbnail-poweredby { display: none !important; }

/* --------------------------------------------------------------------------
   [EDITOR] 에디터 내부 출력용 컴포넌트 클래스
   -------------------------------------------------------------------------- */

/* 상단 메인 커버 이미지 단독 세팅 */
#kboard-thumbnail-document .content-view .img-top {
    width: 100%;
    height: 40vh;
    overflow: hidden;
    border-radius: 10px;
    margin-bottom: 3rem;
}

#kboard-thumbnail-document .content-view .img-top img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;  
}

/* object-position 커스텀 디플렉터 포지셔닝 */
#kboard-thumbnail-document .content-view .img-top.pos-bottom img { object-position: center 70% !important; }
#kboard-thumbnail-document .content-view .img-top.pos-top img { object-position: center 30% !important; }

/* 본문 반응형 이미지 가로배치 다단 그리드 구조 */
#kboard-thumbnail-document .content-view .img-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 디폴트 3열 */
    gap: 16px;
    border-radius: 10px;
    margin-top: 4rem;
    margin-bottom: 4rem;
    line-height: 0;
}

/* n단 컬럼 분기용 제어 멀티클래스 */
#kboard-thumbnail-document .content-view .img-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
#kboard-thumbnail-document .content-view .img-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
#kboard-thumbnail-document .content-view .img-grid.cols-5 { grid-template-columns: repeat(5, 1fr); }

/* 래퍼 아이템을 경유하여 렌더링 시 */
#kboard-thumbnail-document .content-view .img-item {
    overflow: hidden;
    border-radius: 8px;
    aspect-ratio: 4/3;
}
#kboard-thumbnail-document .content-view .img-item img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

/* 그리드 다이렉트 자식 이미지 렌더링 시 (인라인 폭 리셋 강제 강화) */
#kboard-thumbnail-document .content-view .img-grid > img {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: 4/3;
    object-fit: cover !important;
    display: block !important;
    overflow: hidden;
    border-radius: 8px;
    max-width: 100% !important;
}

/* 에디터 자동 줄바꿈 무력화 및 자잘한 공백 제거 */
#kboard-thumbnail-document .content-view .img-grid br,
#kboard-thumbnail-document .content-view > br {
    display: none;
}

#kboard-thumbnail-document .content-view p {
    line-height: 2.3rem;
}

/* 에디터 내부 그리드 모바일 전용 (일괄 2열 다운스케일) */
@media (max-width: 600px) {
    #kboard-thumbnail-document .content-view .img-grid,
    #kboard-thumbnail-document .content-view .img-grid.cols-4,
    #kboard-thumbnail-document .content-view .img-grid.cols-5 {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }
}