/* 서브 — 말씀·찬양 갤러리형(주일예배 등). main.css 이후 로드 */

.top_banner {
    position: relative;
    z-index: 1;
    background: var(--main3-section-bg, #fbfbfb);
    color: var(--main3-heading, #4a2d7a);
    padding: clamp(36px, 5vw, 56px) 0;
}
/* script.js initTopBannerArt — SVG(sub-top-banner-n)와 동일 보조 그라데이션 톤 */
.top_banner.top_banner--art {
    position: relative;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center right;
}
.top_banner.top_banner--art::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
}
/* 1 우리 교회는 — 따뜻한 크림·로즈(메시지 스카이 톤과 대비) */
.top_banner.top_banner--art.top_banner--art-1 {
    background-color: #fff8f4;
}
.top_banner.top_banner--art.top_banner--art-1::before {
    background: linear-gradient(
        90deg,
        rgba(255, 250, 245, 0.97) 0%,
        rgba(244, 232, 238, 0.82) 36%,
        rgba(253, 232, 232, 0.34) 68%,
        transparent 100%
    );
}
/* 2 메시지 — 차가운 스카이·시안(우리 교회 웜 톤과 구분) */
.top_banner.top_banner--art.top_banner--art-2 {
    background-color: #eff8ff;
}
.top_banner.top_banner--art.top_banner--art-2::before {
    background: linear-gradient(
        90deg,
        rgba(239, 248, 255, 0.97) 0%,
        rgba(219, 234, 254, 0.82) 38%,
        rgba(207, 250, 254, 0.32) 70%,
        transparent 100%
    );
}
/* 3 다음 세대 — 배경 이미지 없음, 타 서브와 동일 그라데이션 레이아웃·부서별 색만 구분 */
.top_banner.top_banner--art.top_banner--art-3.top_banner--art-3-tones{
    background-image: none;
    background-size: auto;
    background-position: center;
}
.top_banner.top_banner--art.top_banner--art-3.top_banner--art-3-kids {
    background-color: #fff9e7;
}
.top_banner.top_banner--art.top_banner--art-3.top_banner--art-3-kids::before {
    background: linear-gradient(
        90deg,
        rgba(255, 249, 231, 0.97) 0%,
        rgba(255, 244, 220, 0.9) 42%,
        rgba(255, 236, 244, 0.72) 100%
    );
}
/* 청소년 — 연한 시안 파스텔 */
.top_banner.top_banner--art.top_banner--art-3.top_banner--art-3-teen {
    background-color: #ecfeff;
}
.top_banner.top_banner--art.top_banner--art-3.top_banner--art-3-teen::before {
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.94) 0%,
        rgba(236, 254, 255, 0.82) 40%,
        rgba(224, 247, 250, 0.65) 100%
    );
}
/* 청년 공동체 — 몽글·파스텔 버블 톤 */
.top_banner.top_banner--art.top_banner--art-3.top_banner--art-3-youth {
    background-color: #fffbfb;
}
.top_banner.top_banner--art.top_banner--art-3.top_banner--art-3-youth::before {
    background: linear-gradient(
        90deg,
        rgba(255, 251, 251, 0.95) 0%,
        rgba(255, 245, 252, 0.78) 45%,
        rgba(252, 240, 255, 0.62) 100%
    );
}
/* 4 양육과 훈련 — b4 */
.top_banner.top_banner--art.top_banner--art-4 {
    background-color: #f4f9ff;
}
.top_banner.top_banner--art.top_banner--art-4::before {
    background: linear-gradient(
        90deg,
        rgba(244, 249, 255, 0.96) 0%,
        rgba(232, 236, 252, 0.76) 40%,
        rgba(228, 240, 248, 0.28) 72%,
        transparent 100%
    );
}
/* 5 사역 — 민트·세이지(교육위 등 전체 사역 공통) */
.top_banner.top_banner--art.top_banner--art-5 {
    background-color: #f2faf6;
}
.top_banner.top_banner--art.top_banner--art-5::before {
    background: linear-gradient(
        90deg,
        rgba(242, 250, 246, 0.97) 0%,
        rgba(228, 243, 235, 0.82) 40%,
        rgba(210, 238, 224, 0.32) 72%,
        transparent 100%
    );
}
/* 6 나눔 — 크림·연노랑(다른 상위 메뉴와 구분) */
.top_banner.top_banner--art.top_banner--art-6 {
    background-color: #fffbeb;
}
.top_banner.top_banner--art.top_banner--art-6::before {
    background: linear-gradient(
        90deg,
        rgba(255, 253, 245, 0.97) 0%,
        rgba(255, 248, 228, 0.85) 38%,
        rgba(254, 240, 199, 0.42) 70%,
        transparent 100%
    );
}
.top_banner.top_banner--art .container {
    position: relative;
    z-index: 1;
}
.top_banner .container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 30px;
}
.top_banner h2 {
    font-size: clamp(22px, 2.5vw, 28px);
    font-weight: 800;
    letter-spacing: -0.06em;
    margin-bottom: 10px;
    line-height: 1.32;
}
.top_banner p {
    font-size: 15px;
    font-weight: 500;
    color: var(--main3-text-body, #6b5a8c);
    line-height: 1.55;
    letter-spacing: -0.03em;
    max-width: 52em;
    margin-top: 0;
}
/* 부서 페이지: 부서명 · 슬로건(성경) 한 줄 */
.top_banner p.top_banner_lead {
    font-size: clamp(18px, 2.1vw, 24px);
    font-weight: 800;
    color: var(--main3-heading, #4a2d7a);
    line-height: 1.35;
    letter-spacing: -0.05em;
    margin-bottom: 12px;
    max-width: none;
}
.top_banner .top_banner_dept {
    color: var(--main3-accent, #6b4ba3);
}
.top_banner .top_banner_sep {
    color: #c4bdc9;
    font-weight: 600;
    margin: 0 0.1em;
}
.top_banner .top_banner_ref {
    color: #8e8899;
    font-weight: 600;
    white-space: nowrap;
}

/* 부서형 배너 — 좁은 화면: 긴 슬로건·성경 구절 줄바꿈·여백 */
@media (max-width: 639.98px) {
    .top_banner:has(p.top_banner_lead) {
        padding-top: clamp(26px, 4.5vw, 40px);
        padding-bottom: clamp(26px, 4.5vw, 40px);
    }
    .top_banner p.top_banner_lead {
        font-size: clamp(16px, 4vw, 21px);
        line-height: 1.38;
        letter-spacing: -0.045em;
    }
}
@media (max-width: 399.98px) {
    .top_banner .top_banner_ref {
        white-space: normal;
    }
}

.tab_menu_depth2,
.tab_menu_depth3 {
    background: #fff;
    border-bottom: 1px solid #e8e6ec;
}
.tab_menu_depth2 .wrap,
.tab_menu_depth3 .wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 30px;
    display: flex;
    flex-wrap: wrap;
    gap: 0;
}
.tab_menu_depth2 .wrap a,
.tab_menu_depth3 .wrap a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 18px;
    font-size: 15px;
    font-weight: 600;
    color: #6b6578;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: color 0.2s ease, border-color 0.2s ease;
}
.tab_menu_depth2 .wrap a:hover,
.tab_menu_depth3 .wrap a:hover {
    color: var(--main3-accent, #6b4ba3);
}
.tab_menu_depth2 .wrap a.active,
.tab_menu_depth3 .wrap a.active {
    color: var(--main3-accent, #6b4ba3);
    font-weight: 700;
    border-bottom-color: var(--main3-accent, #6b4ba3);
}

.tab_menu_depth3 .wrap a {
    padding: 12px 14px;
    font-size: 14px;
}

.board_gallery_type {
    padding: clamp(40px, 5vw, 64px) 0 80px;
    background: #fff;
}
/* main.css 전역 section{padding:110px}와 겹치지 않도록(말씀·찬양은 div 권장) */
section.board_gallery_type {
    padding: clamp(40px, 5vw, 64px) 0 80px;
}
.board_gallery_type > .container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 30px;
}
/* LNB 있는 서브: 부서 페이지(.sub_text)와 동일 — 바깥 .container 패딩만 쓰고 이중 여백 제거 */
.sub_page .board_gallery_type > .container {
    max-width: none;
    margin: 0;
    padding-left: 0;
    padding-right: 0;
}
.board_gallery_type .title {
    margin-bottom: 28px;
}
.board_gallery_type .title :is(h1, h2) {
    margin: 0;
    font-size: clamp(26px, 3vw, 34px);
    font-weight: 800;
    color: #222;
    letter-spacing: -0.06em;
}
.board_gallery_type .title .underline {
    display: block;
    width: 48px;
    height: 3px;
    margin-top: 12px;
    background: var(--main3-accent, #6b4ba3);
    border-radius: 2px;
}

.board_gallery_type .board_top {
    display: flex;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 24px;
}
/* 공통 검색 입력 — 공지사항·메시지 영상 등 동일 디자인 */
.board_gallery_type .search_group,
.notice_board_search_group {
    display: flex;
    align-items: stretch;
    flex: 0 0 auto;
    width: auto;
    max-width: min(400px, 100%);
    min-width: 0;
    border: 1px solid #ddd;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    box-sizing: border-box;
}
.board_gallery_type .search_group {
    margin-left: auto;
}
.board_gallery_type .search_group input,
.notice_board_search_group input {
    flex: 1;
    min-width: 0;
    padding: 10px 14px;
    border: none;
    font-size: 15px;
    font-family: inherit;
    letter-spacing: -0.03em;
    outline: none;
}
.board_gallery_type .search_group button,
.notice_board_search_group button {
    padding: 0 14px;
    border: none;
    border-left: 1px solid #eee;
    background: #fafafa;
    cursor: pointer;
}
.board_gallery_type .search_group button:hover,
.notice_board_search_group button:hover {
    background: #f0eef5;
}
.board_gallery_type .search_group button img,
.notice_board_search_group button img {
    width: 20px;
    height: 20px;
    display: block;
}

@media (max-width: 767.98px) {
    .board_gallery_type .board_top {
        flex-wrap: wrap;
        gap: 10px;
    }
    .board_gallery_type .search_group,
    .notice_board_search_group {
        margin-left: 0;
        flex: 1 1 auto;
        max-width: none;
        width: 100%;
    }
}

.board_gallery_type .board_list .row {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 24px 20px;
}
/* 메시지형 영상 갤러리: 4×4 그리드(주일·타 메시지 페이지 공통) */
.board_gallery_type--message .board_list .row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.board_gallery_type--message .board_list a.item .thumb .thumb--empty {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: linear-gradient(145deg, #f2eef8, #e8e4f0);
}
@media (max-width: 991.98px) {
    .board_gallery_type--message .board_list .row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 479.98px) {
    .board_gallery_type--message .board_list .row {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* 주일 예배(sundayGrid): 3열·페이지당 12개(4행), 썸네일 보라 오버레이 + 하단 제목·본문·목사·날짜(가운뎃점) */
.board_gallery_type--sundayGrid .board_list .row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(20px, 2.4vw, 30px);
    align-items: stretch;
}
@media (max-width: 991.98px) {
    .board_gallery_type--sundayGrid .board_list .row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 479.98px) {
    .board_gallery_type--sundayGrid .board_list .row {
        grid-template-columns: minmax(0, 1fr);
    }
}

.board_gallery_type--sundayGrid .board_list .row > a.sunday_sermon_card {
    min-width: 0;
}

a.sunday_sermon_card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    text-decoration: none;
    color: inherit;
    border-radius: 14px;
    border: 1px solid #e4e0ec;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 12px rgba(74, 45, 122, 0.06);
    transition: border-color 0.2s ease, box-shadow 0.22s ease, transform 0.2s ease;
}
a.sunday_sermon_card:hover {
    border-color: rgba(107, 75, 163, 0.35);
    box-shadow: 0 10px 32px rgba(74, 45, 122, 0.12);
    transform: translateY(-2px);
}
a.sunday_sermon_card:focus-visible {
    outline: 2px solid var(--main3-accent, #6b4ba3);
    outline-offset: 3px;
}

.sunday_sermon_card_thumb {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: 14px 14px 0 0;
    overflow: hidden;
    background: linear-gradient(145deg, #4a2d7a 0%, #5a3a8a 42%, #6b4ba3 100%);
}
.sunday_sermon_card_bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.02);
    transition: transform 0.35s ease;
}
a.sunday_sermon_card:hover .sunday_sermon_card_bg {
    transform: scale(1.06);
}

.sunday_sermon_card_thumb_inner {
    position: relative;
    z-index: 1;
    height: 100%;
    min-height: 0;
    display: block;
}

.sunday_sermon_card_gradient {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    /* main.css 톤: --main3-heading #4a2d7a · --main3-accent #6b4ba3 */
    background: linear-gradient(
        125deg,
        rgba(74, 45, 122, 0.9) 0%,
        rgba(74, 45, 122, 0.78) 32%,
        rgba(107, 75, 163, 0.55) 68%,
        rgba(107, 75, 163, 0.18) 100%
    );
}
.sunday_sermon_card--no-thumb .sunday_sermon_card_gradient {
    background: linear-gradient(145deg, #4a2d7a 0%, #5c3d8f 48%, #6b4ba3 100%);
}

.sunday_sermon_card_overlay {
    position: absolute;
    left: 14px;
    right: 12px;
    bottom: 12px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    max-width: min(100%, 88%);
    pointer-events: none;
}
.sunday_sermon_card_thumb_inner:has(.sunday_sermon_card_face) .sunday_sermon_card_overlay {
    max-width: min(100%, 52%);
}

.sunday_sermon_card_overlay_title {
    font-size: clamp(14px, 1.05vw, 17px);
    font-weight: 800;
    line-height: 1.18;
    letter-spacing: -0.05em;
    color: #fff;
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.45);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.sunday_sermon_card_overlay_sub {
    font-size: 12px;
    font-weight: 500;
    line-height: 1.28;
    letter-spacing: -0.02em;
    color: rgba(255, 255, 255, 0.9);
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.42);
    max-width: 100%;
    margin-top: 1px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.sunday_sermon_card_face {
    position: absolute;
    right: -4%;
    bottom: 0;
    z-index: 3;
    height: 92%;
    width: 46%;
    max-width: 180px;
    pointer-events: none;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
}
.sunday_sermon_card_face img {
    height: 100%;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: right bottom;
    filter: drop-shadow(-4px 4px 16px rgba(0, 0, 0, 0.25));
}

.sunday_sermon_card_cap {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    padding: 14px 14px 16px;
    text-align: left;
    background: #fff;
}
.sunday_sermon_card_cap_title {
    font-size: 15px;
    font-weight: 800;
    line-height: 1.38;
    letter-spacing: -0.05em;
    color: #222;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.sunday_sermon_card_cap_meta {
    margin: 0;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: -0.02em;
    color: #8a8494;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

@media (max-width: 767.98px) {
    /* 모바일: 오버레이를 하단 고정 대신 세로 중앙에 두어 읽기 쉽게 */
    .sunday_sermon_card_overlay {
        left: 12px;
        right: 12px;
        top: 50%;
        bottom: auto;
        transform: translateY(-50%);
        max-width: calc(100% - 24px);
        gap: 5px;
    }
    .sunday_sermon_card_thumb_inner:has(.sunday_sermon_card_face) .sunday_sermon_card_overlay {
        max-width: calc(100% - 24px);
        transform: translateY(-50%);
    }
    .sunday_sermon_card_overlay_title {
        font-size: clamp(16px, 4.2vw, 18px);
        line-height: 1.22;
        -webkit-line-clamp: 3;
        line-clamp: 3;
    }
    .sunday_sermon_card_overlay_sub {
        font-size: clamp(13px, 3.5vw, 15px);
        line-height: 1.32;
        font-weight: 600;
        -webkit-line-clamp: 3;
        line-clamp: 3;
    }
    .sunday_sermon_card_face {
        width: 40%;
        max-width: 140px;
    }
}

/* 주일 목록 1열(폰 세로): 오버레이 글자 더 크게 */
@media (max-width: 479.98px) {
    .board_gallery_type--sundayGrid .sunday_sermon_card_overlay {
        left: 14px;
        right: 14px;
        gap: 6px;
    }
    .board_gallery_type--sundayGrid .sunday_sermon_card_overlay_title {
        font-size: clamp(18px, 5.6vw, 23px);
        line-height: 1.2;
        font-weight: 800;
        -webkit-line-clamp: 4;
        line-clamp: 4;
    }
    .board_gallery_type--sundayGrid .sunday_sermon_card_overlay_sub {
        font-size: clamp(15px, 4.6vw, 18px);
        line-height: 1.35;
        font-weight: 600;
        -webkit-line-clamp: 4;
        line-clamp: 4;
    }
}

.board_gallery_type .board_list .row > p {
    grid-column: 1 / -1;
    padding: 48px 16px;
    text-align: center;
    color: #888;
    font-size: 15px;
}
.board_gallery_type .board_list .row > p.gallery_empty_hint {
    padding: 0 20px 48px;
    max-width: 560px;
    margin: 0 auto;
    color: #222;
    font-size: 14px;
    line-height: 1.65;
    font-weight: 500;
}

.board_gallery_type .board_list .row > p.gallery_probe_banner {
    grid-column: 1 / -1;
    margin: 0 0 12px;
    padding: 10px 14px;
    text-align: center;
    font-size: 13px;
    line-height: 1.5;
    color: #222;
    background: #f4f4ef;
    border-radius: 6px;
}

.board_gallery_type .board_list a.item {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    border-radius: 14px;
    border: 1px solid #e8e6ec;
    overflow: hidden;
    background: #fff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.board_gallery_type .board_list a.item:hover {
    border-color: rgba(107, 75, 163, 0.35);
    box-shadow: 0 8px 28px rgba(74, 45, 122, 0.08);
}
.board_gallery_type .board_list a.item .thumb {
    aspect-ratio: 16 / 9;
    border-radius: 0;
}
.board_gallery_type .board_list a.item .text {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 16px 16px 18px;
    text-align: left;
}
.board_gallery_type .board_category {
    font-size: 12px;
    font-weight: 800;
    color: var(--main3-accent, #6b4ba3);
    letter-spacing: -0.03em;
}
.board_gallery_type .board_title {
    font-size: 15px;
    font-weight: 700;
    color: #222;
    line-height: 1.45;
    letter-spacing: -0.04em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.board_gallery_type .board_bottom {
    margin-top: 4px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.board_gallery_type .board_bottom li {
    font-size: 13px;
    color: #6b6578;
    font-weight: 500;
    letter-spacing: -0.02em;
}
.board_gallery_type .board_bottom li.board_date {
    color: #9a96a3;
    font-variant-numeric: tabular-nums;
    margin-top: 2px;
}

.board_gallery_type .pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 6px;
    margin-top: 40px;
}
.notice_board_pagination.pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 5px;
    margin-top: 40px;
}
.board_gallery_type .pagination button {
    min-width: 40px;
    height: 40px;
    padding: 0 10px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    color: #222;
    background: #f5f5f7;
    border: 1px solid transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.board_gallery_type .pagination button:hover:not(:disabled):not(.active) {
    background: #ebe8f0;
    color: var(--main3-heading, #4a2d7a);
}
.board_gallery_type .pagination button.active {
    background: var(--main3-accent, #6b4ba3);
    color: #fff;
    border-color: transparent;
}
.board_gallery_type .pagination button.disabled {
    opacity: 0.4;
    cursor: not-allowed;
}
/* 공지 페이징: 숫자·< > 모두 박스 없음 */
.notice_board_pagination.pagination button {
    min-width: auto;
    height: auto;
    min-height: 40px;
    padding: 6px 8px;
    border-radius: 0;
    font-size: 15px;
    font-weight: 600;
    color: #222;
    background: transparent !important;
    border: none !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.notice_board_pagination.pagination button:hover:not(:disabled):not(.active) {
    background: transparent !important;
    color: var(--main3-accent, #6b4ba3);
}
.notice_board_pagination.pagination button.active {
    background: transparent !important;
    color: var(--main3-accent, #6b4ba3);
    font-weight: 800;
    border: none !important;
}
.notice_board_pagination.pagination button.disabled {
    opacity: 0.35;
    cursor: not-allowed;
}
.board_gallery_type .pagination button.page-prev,
.board_gallery_type .pagination button.page-next {
    font-weight: 700;
}
/* 공지 페이징: < > 는 박스 없음 */
.notice_board_pagination.pagination button.page-prev,
.notice_board_pagination.pagination button.page-next {
    min-width: auto;
    width: auto;
    height: auto;
    padding: 6px 10px;
    border-radius: 0;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    color: var(--main3-heading, #4a2d7a);
    background: transparent !important;
    border: none !important;
}
.notice_board_pagination.pagination button.page-prev:hover:not(:disabled):not(.active),
.notice_board_pagination.pagination button.page-next:hover:not(:disabled):not(.active) {
    background: transparent !important;
    color: var(--main3-accent, #6b4ba3);
}
.notice_board_pagination.pagination button.page-prev.disabled,
.notice_board_pagination.pagination button.page-next.disabled {
    opacity: 0.35;
}

@media (max-width: 1199.98px) {
    .top_banner .container,
    .tab_menu_depth2 .wrap,
    .tab_menu_depth3 .wrap,
    .board_gallery_type > .container {
        padding-left: 16px;
        padding-right: 16px;
    }
    .sub_page .board_gallery_type > .container {
        padding-left: 0;
        padding-right: 0;
    }
    .top_banner p.top_banner_body,
    .top_banner h2 + p {
        font-size: 14px;
        line-height: 1.6;
        letter-spacing: -0.02em;
    }
}

/* 준비 중 페이지 — 아이콘 + 안내 + 홈으로 가기(박스 없음) */
.page-soon {
    max-width: 520px;
    margin: 0 auto;
    padding: clamp(32px, 6vw, 56px) 0 clamp(48px, 8vw, 80px);
}
.page-soon_inner {
    text-align: center;
    padding: 0;
    background: none;
    border: none;
    box-shadow: none;
    border-radius: 0;
}
.page-soon_icon {
    display: flex;
    justify-content: center;
    margin: 0 0 18px;
}
.page-soon_icon img {
    width: clamp(26px, 6.5vw, 32px);
    height: auto;
    display: block;
}
.page-soon_msg {
    margin: 0 0 20px;
    font-size: clamp(15px, 1.9vw, 17px);
    font-weight: 600;
    color: var(--main3-heading, #4a2d7a);
    letter-spacing: -0.03em;
    line-height: 1.65;
}
.page-soon_msg_sub {
    display: block;
    margin-top: 8px;
    font-size: clamp(13px, 1.65vw, 15px);
    font-weight: 500;
    color: #6b6578;
    line-height: 1.55;
}
.page-soon .btn_type1 {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 132px;
    max-width: 100%;
    height: 36px;
    margin: 0 auto;
    padding: 0 14px;
    text-decoration: none;
    border: 2px solid var(--main3-accent, #6b4ba3);
    border-radius: 10px;
    color: var(--main3-accent, #6b4ba3);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: -0.02em;
    transition: background 0.2s ease-in-out, color 0.2s ease-in-out;
}
.page-soon .btn_type1:hover {
    background: var(--main3-accent, #6b4ba3);
    color: #fff;
}
.page-soon .btn_type1 span {
    display: inline;
}
@media (max-width: 1199.98px) {
    .page-soon .btn_type1 {
        width: 118px;
        height: 34px;
        border-radius: 9px;
        font-size: 12px;
    }
}

/* 예배 안내 — 보라 톤·카드형 표 */
.worship_guide {
    max-width: 720px;
    margin: 0 auto;
    padding: clamp(28px, 4vw, 48px) 0 clamp(48px, 6vw, 80px);
}
.worship_guide_intro {
    margin: 0 0 clamp(28px, 4vw, 36px);
    font-size: 16px;
    line-height: 1.65;
    font-weight: 500;
    color: var(--main3-text-body, #6b5a8c);
    letter-spacing: -0.03em;
}
.worship_guide_section {
    margin-bottom: clamp(28px, 3.5vw, 36px);
}
.worship_guide_section:last-of-type {
    margin-bottom: 0;
}
.worship_guide_h {
    margin: 0 0 14px;
    font-size: clamp(17px, 2vw, 19px);
    font-weight: 800;
    letter-spacing: -0.05em;
    color: var(--main3-heading, #4a2d7a);
    padding-bottom: 10px;
    border-bottom: 2px solid var(--main3-accent, #6b4ba3);
}
.worship_guide_list {
    background: #faf9fc;
    border: 1px solid rgba(107, 75, 163, 0.12);
    border-radius: 12px;
    overflow: hidden;
}
.worship_guide_row {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1.25fr) minmax(0, 0.9fr);
    gap: 10px 16px;
    padding: 14px 18px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    font-size: 15px;
    line-height: 1.5;
    letter-spacing: -0.03em;
    align-items: start;
}
.worship_guide_row:last-child {
    border-bottom: none;
}
.worship_guide_name {
    font-weight: 700;
    color: #222;
}
.worship_guide_time {
    font-weight: 500;
    color: #222;
    font-variant-numeric: tabular-nums;
}
.worship_guide_place {
    font-weight: 600;
    color: var(--main3-accent, #6b4ba3);
}
.worship_guide_note {
    margin: clamp(20px, 3vw, 28px) 0 0;
    padding: 14px 16px;
    border-radius: 10px;
    background: rgba(107, 75, 163, 0.06);
    border: 1px solid rgba(107, 75, 163, 0.1);
    font-size: 14px;
    line-height: 1.55;
    color: #222;
    letter-spacing: -0.02em;
}
@media (max-width: 639.98px) {
    .worship_guide_row {
        grid-template-columns: 1fr;
        gap: 6px;
        padding: 16px 16px;
    }
    .worship_guide_time::before {
        content: "시간 · ";
        font-weight: 700;
        color: #6b6578;
        font-size: 12px;
    }
    .worship_guide_place::before {
        content: "장소 · ";
        font-weight: 700;
        color: #6b6578;
        font-size: 12px;
    }
}

/* 예배 안내 표 — 예배 / 시간·장소 2열 */
.dept_plan_table.dept_plan_table--worship {
    table-layout: fixed;
    --worship-line: rgba(107, 75, 163, 0.22);
}
.dept_plan_table.dept_plan_table--worship thead th {
    min-width: 0;
    text-align: center;
}
.dept_plan_table.dept_plan_table--worship thead th:first-child {
    width: 34%;
    border-right: 1px solid var(--worship-line);
}
.dept_plan_table.dept_plan_table--worship thead th:nth-child(2) {
    width: 66%;
}
.dept_plan_table.dept_plan_table--worship tbody th[scope="row"] {
    white-space: normal;
    word-break: keep-all;
    text-align: center;
    border-right: 1px solid var(--worship-line);
    border-bottom: 1px solid var(--worship-line);
}
.dept_plan_table.dept_plan_table--worship tbody td {
    border-bottom: 1px solid var(--worship-line);
    text-align: center;
}
.dept_plan_table.dept_plan_table--worship tbody tr:last-child th[scope="row"],
.dept_plan_table.dept_plan_table--worship tbody tr:last-child td {
    border-bottom: 1px solid var(--worship-line);
}

/* 연락처·간단 정보 — dept_plan_table 행 높이 축소 */
.dept_plan_table.dept_plan_table--contact {
    font-size: 15px;
    line-height: 1.42;
    width: 100%;
    max-width: 38rem;
}
.dept_plan_table.dept_plan_table--contact tbody th[scope="row"] {
    font-size: 14px;
    padding: 7px 11px;
    width: 1%;
    white-space: nowrap;
}
.dept_plan_table.dept_plan_table--contact tbody td {
    padding: 7px 11px;
    font-variant-numeric: tabular-nums;
}
.dept_plan_table.dept_plan_table--contact .directions_info_phone {
    font-size: inherit;
    font-weight: 800;
    color: var(--main3-text-body, #6b5a8c);
}
.dept_plan_table.dept_plan_table--contact .directions_info_phone:hover {
    color: var(--main3-heading, #4a2d7a);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.dept_plan_table.dept_plan_table--contact .directions_info_muted {
    font-size: inherit;
    font-weight: 700;
}
@media (max-width: 1199.98px) {
    .dept_plan_table.dept_plan_table--contact {
        font-size: 14px;
    }
    .dept_plan_table.dept_plan_table--contact tbody th[scope="row"],
    .dept_plan_table.dept_plan_table--contact tbody td {
        padding: 6px 9px;
    }
}

/* 예배 안내 — 하단 「안내」문단(부서 페이지 본문보다 한 단계 작게) */
.dept_page .worship_foot_note {
    font-size: 16px;
    line-height: 1.62;
    font-weight: 500;
    color: var(--main3-text-body, #6b5a8c);
    letter-spacing: -0.02em;
}

/* 오시는 길 */
.directions_section--map .directions_map_wrap {
    margin-top: 0;
}
.directions_section--map .directions_info_address {
    margin-top: clamp(16px, 2.2vw, 22px);
    margin-bottom: 0;
    padding: 0;
    padding-bottom: 0;
    border: none;
    border-bottom: none;
    border-radius: 0;
    background: none;
    box-shadow: none;
    box-sizing: border-box;
    text-align: left;
}
.directions_section--map .directions_info_address .directions_info_badge {
    margin-bottom: 10px;
}
.directions_section--map .directions_info_address .directions_addr_stack {
    align-items: flex-start;
    margin-left: 0;
    width: 100%;
    max-width: 100%;
    gap: 6px;
}
/* 지도 아래 주소 — 읽기 순서: 시·구(보조) → 도로(핵심) → 건물명 */
.directions_section--map .directions_addr_stack > .directions_addr_line:first-child {
    font-size: clamp(14px, 1.55vw, 15px);
    font-weight: 500;
    line-height: 1.55;
    letter-spacing: -0.02em;
    color: var(--main3-text-body, #6b5a8c);
}
.directions_section--map .directions_addr_line--road {
    font-size: clamp(17px, 1.95vw, 19px);
    font-weight: 800;
    line-height: 1.45;
    letter-spacing: -0.035em;
    color: var(--main3-heading, #4a2d7a);
}
.directions_section--map .directions_addr_line--place {
    margin-top: 6px;
    padding-top: 10px;
    border-top: 1px solid rgba(107, 75, 163, 0.14);
    font-size: clamp(16px, 1.85vw, 18px);
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: -0.04em;
    color: var(--main3-heading, #4a2d7a);
}
.directions_addr_stack {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    margin: 0;
}
.directions_addr_line {
    display: block;
    margin: 0;
    font-size: clamp(16px, 1.85vw, 18px);
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: -0.03em;
    color: var(--default-color, #2a2633);
}
.directions_addr_line--road {
    font-weight: 700;
    color: var(--main3-heading, #4a2d7a);
}
.directions_addr_line--place {
    margin-top: 10px;
    padding-top: 12px;
    border-top: 1px dashed rgba(107, 75, 163, 0.22);
    font-size: clamp(17px, 2vw, 20px);
    font-weight: 800;
    letter-spacing: -0.04em;
    color: var(--main3-heading, #4a2d7a);
}
.directions_info_panel {
    margin: 0;
    padding: clamp(22px, 3.2vw, 32px);
    border-radius: 14px;
    border: 1px solid rgba(107, 75, 163, 0.14);
    background: linear-gradient(165deg, #fdfcfe 0%, #f7f4fc 45%, #faf8fc 100%);
    box-shadow: 0 4px 24px rgba(74, 45, 122, 0.06);
    box-sizing: border-box;
}
.directions_info_badge {
    display: inline-block;
    margin-bottom: 8px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: var(--main3-accent, #6b4ba3);
    background: rgba(107, 75, 163, 0.1);
    border: 1px solid rgba(107, 75, 163, 0.16);
}
.directions_info_address {
    padding-bottom: clamp(18px, 2.5vw, 22px);
    margin-bottom: clamp(18px, 2.5vw, 22px);
    border-bottom: 1px solid rgba(107, 75, 163, 0.12);
}
.directions_info_address_text {
    margin: 0;
    font-size: clamp(17px, 2vw, 20px);
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: -0.04em;
    color: var(--main3-heading, #4a2d7a);
    word-break: keep-all;
}
.directions_info_grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(16px, 3vw, 28px);
    align-items: start;
}
.directions_info_cell {
    min-width: 0;
}
.directions_info_phone {
    display: inline-block;
    margin: 0;
    font-size: clamp(18px, 2.1vw, 22px);
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--main3-accent, #6b4ba3);
    text-decoration: none;
    font-variant-numeric: tabular-nums;
    transition: color 0.15s ease;
}
.directions_info_phone:hover {
    color: var(--main3-heading, #4a2d7a);
    text-decoration: underline;
    text-underline-offset: 4px;
}
.directions_info_muted {
    display: inline-block;
    font-size: clamp(17px, 2vw, 20px);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--main3-text-body, #6b5a8c);
    font-variant-numeric: tabular-nums;
}
.directions_contact_plain {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(14px, 2vw, 20px) clamp(20px, 4vw, 40px);
    align-items: start;
}
.directions_contact_line {
    margin: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    min-width: 0;
}
.directions_contact_line .directions_info_badge {
    margin-bottom: 0;
    flex-shrink: 0;
    width: auto;
    min-width: 0;
    height: 34px;
    padding: 0 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: -0.05em;
    line-height: 1.15;
    text-align: center;
    box-sizing: border-box;
}
@media (max-width: 639.98px) {
    .directions_contact_plain {
        grid-template-columns: 1fr;
    }
}
.directions_map_wrap {
    position: relative;
    width: 100%;
    max-width: 100%;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid rgba(107, 75, 163, 0.2);
    background: #ece8f4;
    aspect-ratio: 16 / 9;
    min-height: 240px;
    box-shadow: 0 6px 28px rgba(74, 45, 122, 0.08);
}
.directions_map_wrap iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.directions_map_actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
    align-items: center;
}
.directions_map_chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 16px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--main3-heading, #4a2d7a);
    background: #fff;
    border: 1px solid rgba(107, 75, 163, 0.22);
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.directions_map_chip:hover {
    border-color: var(--main3-accent, #6b4ba3);
    color: var(--main3-accent, #6b4ba3);
    background: rgba(107, 75, 163, 0.06);
}
.directions_map_chip--primary {
    color: #fff;
    background: var(--main3-accent, #6b4ba3);
    border-color: var(--main3-accent, #6b4ba3);
}
.directions_map_chip--primary:hover {
    color: #fff;
    background: var(--main3-heading, #4a2d7a);
    border-color: var(--main3-heading, #4a2d7a);
}
@media (max-width: 639.98px) {
    .directions_map_wrap {
        aspect-ratio: 4 / 3;
        min-height: 200px;
        border-radius: 12px;
    }
    .directions_info_grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .directions_map_actions {
        flex-direction: column;
        align-items: stretch;
    }
    .directions_map_chip {
        width: 100%;
        box-sizing: border-box;
    }
}

/* 오시는 길 — 교통 카드 */
.directions_route_cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(14px, 2.5vw, 20px);
    margin: 0;
}
.directions_route_card {
    margin: 0;
    padding: clamp(20px, 2.8vw, 26px) clamp(16px, 2vw, 22px);
    border-radius: 14px;
    border: 1px solid rgba(107, 75, 163, 0.22);
    background: #fff;
    box-shadow: 0 4px 18px rgba(74, 45, 122, 0.06);
    box-sizing: border-box;
    min-width: 0;
}
.directions_route_icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    font-size: 20px;
    color: var(--main3-accent, #6b4ba3);
    background: rgba(107, 75, 163, 0.1);
    border: 1px solid rgba(107, 75, 163, 0.15);
}
.directions_route_title {
    margin: 0 0 10px;
    font-size: clamp(17px, 1.9vw, 19px);
    font-weight: 800;
    letter-spacing: -0.04em;
    color: var(--main3-heading, #4a2d7a);
}
.directions_route_text {
    margin: 0;
    font-size: 15px;
    line-height: 1.62;
    letter-spacing: -0.02em;
    color: var(--default-color, #2a2633);
    word-break: keep-all;
}
.directions_metro_line3 {
    color: #ef7c1c;
    font-weight: 800;
}
.directions_route_steps {
    margin: 0;
}
/* 대중교통: 두 문단 대신 한 줄(줄바꿈 시 래핑) + 항목 앞 구분 기호 */
.directions_route_transit_line {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35em 0.65em;
}
.directions_route_transit_item {
    display: inline-flex;
    align-items: baseline;
    gap: 0.3em;
    min-width: 0;
}
.directions_route_transit_prefix {
    flex-shrink: 0;
    font-weight: 800;
    font-size: 1.08em;
    line-height: 1;
    color: var(--main3-accent, #6b4ba3);
}
.directions_route_transit_body {
    min-width: 0;
}
/* 기본: 일반 문단(번호 span 없을 때) — 다른 카드 본문과 동일 톤 */
.directions_route_pstep {
    margin: 0 0 10px;
    font-size: 15px;
    line-height: 1.62;
    letter-spacing: -0.02em;
    color: var(--default-color, #2a2633);
    word-break: keep-all;
}
.directions_route_pstep:last-child {
    margin-bottom: 0;
}
/* 1. / 2. 열이 있을 때만 이전 그리드 정렬 */
.directions_route_pstep:has(.directions_route_pstep_n) {
    display: grid;
    grid-template-columns: 1.4em minmax(0, 1fr);
    column-gap: 0.45em;
    align-items: start;
    font-size: 14.5px;
    line-height: 1.58;
}
.directions_route_pstep_n {
    font-weight: 800;
    color: var(--main3-heading, #4a2d7a);
    text-align: right;
    line-height: inherit;
}
.directions_route_pstep_txt {
    min-width: 0;
}
.directions_route_footnote {
    margin: clamp(20px, 3vw, 28px) 0 0;
    padding: 14px 16px;
    border-radius: 10px;
    font-size: 14px;
    line-height: 1.65;
    letter-spacing: -0.02em;
    color: var(--main3-text-body, #6b5a8c);
    background: rgba(107, 75, 163, 0.06);
    border: 1px solid rgba(107, 75, 163, 0.1);
}
@media (max-width: 899.98px) {
    .directions_route_cards {
        grid-template-columns: 1fr;
    }
}

/* 담임목사 인사말 레이아웃 */
.pastor_intro_bg {
    position: relative;
    overflow: visible;
}
@media (max-width: 1199.98px) {
    .pastor_intro_bg {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }
    .pastor_intro_bg .sub_visual,
    .pastor_intro_bg .sub_text {
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }
}
@media (max-width: 767.98px) {
    .pastor_intro_bg {
        overflow-x: clip;
    }
    /*
     * 담임목사 사진(모바일): main.css `.sub_visual img` 공통 규칙(16/10, max-height)과 겹치지 않도록
     * 페이지에서 sub.css가 main.css 다음에 로드되므로 여기서 속성을 한 번에 덮어씀.
     */
    .pastor_intro_bg .sub_visual {
        width: 100%;
        /* 가로 확대 — 세로는 이전(3:4·220px)과 비슷하게 두려면 프레임을 5:6으로 살짝 완만하게 */
        max-width: min(256px, 72vw);
        margin-left: auto;
        margin-right: auto;
    }
    .pastor_intro_bg .sub_visual img:not(.sub_visual_img--fallback) {
        display: block;
        width: 100%;
        max-width: 100%;
        height: auto;
        aspect-ratio: 5 / 6;
        max-height: none;
        object-fit: cover;
        object-position: center top;
    }
}
.sub_page .sub_main:has(> .pastor_intro_bg) {
    position: relative;
    overflow: visible;
}
.sub_page .container.sub_with_lnb:has(.pastor_intro_bg) {
    overflow: visible;
}
.pastor_intro_bg .sub_visual,
.pastor_intro_bg .sub_text {
    position: relative;
}
/* 텍스트 열과 같은 z-index면 노란 선(왼쪽으로 삐져나감)이 사진 위에 그려짐 → 사진만 위로 */
.pastor_intro_bg .sub_visual {
    z-index: 2;
}
.pastor_intro_bg .sub_text {
    z-index: 1;
    overflow: visible;
}
.pastor_intro_bg .sub_body {
    position: relative;
}
/* 리드 강조 타이포(본문 p와 동일 규칙과 맞춤 — flex만으로 작아 보이던 것 방지) */
.pastor_intro_bg .sub_lead_text {
    font-size: 1.08em;
    line-height: 1.42;
    font-weight: 800;
    letter-spacing: -0.04em;
    flex: 0 0 auto;
    min-width: 0;
}

/* 담임목사 인사말 서명: 직함·「올림」은 회색, 이름만 기존 헤딩 컬러 */
.pastor_intro_bg .sub_sign {
    color: #737373;
}
.pastor_intro_bg .sub_sign_name {
    color: var(--main3-heading, #4a2d7a);
}

/* 나눔 — 공지사항 게시판(연간계획·부서 표와 동일 톤: 래퍼는 각진 스크롤 영역만) */
.notice_board_section {
    margin: 0;
    padding: 0;
}
.notice_board_toolbar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-bottom: 14px;
    flex-wrap: wrap;
    gap: 10px;
}
.notice_board_wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -2px;
}
.notice_board_table {
    width: 100%;
    min-width: 0;
    border-collapse: collapse;
    font-size: 15px;
    line-height: 1.45;
    color: var(--default-color, #2a2633);
    border-top: 2px solid rgba(74, 45, 122, 0.64);
}
.notice_board_title_row {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: 100%;
    vertical-align: middle;
}
.notice_board_title_row .notice_pin_svg {
    flex-shrink: 0;
    width: 17px;
    height: 17px;
    display: block;
    object-fit: contain;
    vertical-align: middle;
    opacity: 0.95;
}
.notice_board_td--date {
    width: 6.5rem;
    text-align: center;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    font-size: 13px;
}
.notice_board_td {
    border-bottom: 1px solid rgba(0, 0, 0, 0.07);
    padding: 10px 14px;
    vertical-align: middle;
}
.notice_board_td--title {
    padding: 10px clamp(18px, 2.8vw, 28px);
}
.notice_board_td--title a {
    display: inline;
    color: inherit;
    font-weight: 600;
    text-decoration: none;
    letter-spacing: -0.02em;
}
.notice_board_td--title a:hover {
    text-decoration: underline;
    color: var(--main3-accent, #6b4ba3);
}
.notice_board_table tbody tr:last-child td {
    border-bottom: none;
}
/* 고정 공지(핀): 연보라 배경 — 페이징과 무관하게 항상 상단 노출 */
.notice_board_table tbody tr.notice_row--pinned .notice_board_td {
    background: rgba(107, 75, 163, 0.05);
}
@media (max-width: 767.98px) {
    .notice_board_toolbar {
        justify-content: stretch;
        margin-bottom: 12px;
    }
    .notice_board_wrap {
        overflow-x: visible;
        margin: 0;
        -webkit-overflow-scrolling: auto;
    }
    .notice_board_table {
        display: block;
        min-width: 0;
        width: 100%;
        border-top: none;
    }
    .notice_board_table tbody {
        display: block;
    }
    .notice_board_table tbody tr {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        padding: 10px clamp(18px, 4.5vw, 26px);
        margin-bottom: 0;
        border-radius: 0;
        border: none;
        border-bottom: 1px solid rgba(0, 0, 0, 0.08);
        background: #fff;
        box-sizing: border-box;
    }
    .notice_board_table tbody tr.notice_row--pinned {
        background: rgba(107, 75, 163, 0.05);
        border-bottom-color: rgba(107, 75, 163, 0.18);
    }
    .notice_board_table tbody tr.notice_row--pinned .notice_board_td {
        background: transparent;
    }
    .notice_board_table tbody td {
        display: block;
        border-right: none !important;
        border-bottom: none !important;
    }
    .notice_board_table tbody .notice_board_td {
        padding: 0;
    }
    .notice_board_table tbody .notice_board_td--title {
        flex: 1 0 100%;
        min-width: 0;
        order: 1;
        padding: 0;
    }
    .notice_board_title_row .notice_pin_svg {
        width: 15px;
        height: 15px;
    }
    .notice_board_td--title a {
        font-size: 16px;
        font-weight: 700;
        line-height: 1.45;
        letter-spacing: -0.03em;
        color: var(--default-color, #2a2633);
        word-break: keep-all;
    }
    .notice_board_td--date {
        order: 2;
        flex: 0 1 auto;
        width: auto;
        min-width: 0;
        text-align: center;
        font-size: 12px;
        font-weight: 500;
        color: #898989;
        line-height: 1.4;
        white-space: nowrap;
        padding: 0;
    }
}

/* 공지 상세 — 셸 min-height 시 여백이 본문이 아니라 adj 위로만 가지 않도록 article·본문이 flex로 남는 높이를 사용 */
.sub_page--notice_detail .notice_detail_shell {
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    padding: clamp(28px, 4vw, 48px) 0 clamp(40px, 5.5vw, 72px);
    box-sizing: border-box;
    min-height: clamp(520px, 72vh, 900px);
    display: flex;
    flex-direction: column;
    --notice-detail-inline: clamp(12px, 3.2vw, 22px);
}
.notice_detail_nav {
    flex-shrink: 0;
    margin-bottom: 12px;
}
.notice_detail_back {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 14px;
    font-weight: 700;
    color: var(--main3-accent, #6b4ba3);
    text-decoration: none;
    letter-spacing: -0.02em;
}
.notice_detail_back:hover {
    text-decoration: underline;
}
.notice_detail {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    width: 100%;
    border-top: 2px solid rgba(74, 45, 122, 0.64);
    padding-top: 11px;
    padding-left: var(--notice-detail-inline);
    padding-right: var(--notice-detail-inline);
    box-sizing: border-box;
}
.notice_detail_header {
    flex-shrink: 0;
}
.notice_detail_meta {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: #898989;
    font-variant-numeric: tabular-nums;
    text-align: right;
}
.notice_detail_time {
    color: inherit;
}
.notice_detail_title {
    margin: 0 0 12px;
    font-size: clamp(22px, 4.2vw, 28px);
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: -0.06em;
    color: var(--default-color, #2a2633);
}
.notice_detail_body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: visible;
    font-size: 16px;
    line-height: 1.75;
    color: #222;
    letter-spacing: -0.02em;
    padding: clamp(36px, 5vw, 52px) 0 0;
    border-top: 1px solid rgba(0, 0, 0, 0.07);
    min-height: clamp(270px, calc(48vh - 10px), 510px);
}
.notice_detail_body p {
    margin: 0 0 1em;
}
.notice_detail_body p:last-child {
    margin-bottom: 0;
}

/* 첨부 O: 본문 상단선은 첨부 블록 border-bottom으로 통일 */
.notice_detail.notice_detail--has_attach .notice_detail_body {
    border-top: none;
}

/* 첨부 X: 헤더·본문 사이 구분 */
.notice_detail:not(.notice_detail--has_attach) .notice_detail_header {
    padding-bottom: 16px;
    margin-bottom: 10px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
.notice_detail:not(.notice_detail--has_attach) .notice_detail_body {
    border-top: none;
    padding-top: clamp(22px, 3.2vw, 34px);
}

/* 메시지 영상 상세 — 셸을 넓혀 16:9 플레이어를 크게 */
.sub_page--notice_detail .notice_detail_shell.message_video_detail_shell {
    max-width: min(1080px, 100%);
    min-height: 0;
}
.message_video_detail .notice_detail_body {
    min-height: 0;
    padding-top: clamp(22px, 3.2vw, 34px);
}
.message_video_detail .notice_detail_title {
    margin-bottom: 0.35em;
}
.message_video_detail_sub {
    margin: 0 0 0;
    padding-top: 6px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.55;
    letter-spacing: -0.02em;
    color: #7a7388;
}
.message_video_detail_sub .main2_feature_sub_dot {
    margin: 0 0.28em;
    color: #d4d0dc;
    font-weight: 500;
}
.message_video_detail_sub_pastor {
    font-weight: 700;
    color: #6b6578;
    letter-spacing: -0.02em;
}
.message_video_detail_sub_script {
    font-weight: 600;
    color: #7a7388;
}
.message_video_player_frame {
    position: relative;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    aspect-ratio: 16 / 9;
    background: #0f0b14;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 12px 40px rgba(74, 45, 122, 0.14);
}
.message_video_player_frame iframe {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.message_video_facts {
    margin-top: clamp(18px, 2.6vw, 28px);
    font-size: 15px;
    line-height: 1.65;
    color: #222;
    letter-spacing: -0.02em;
}
.message_video_facts p {
    margin: 0 0 0.5em;
}
.message_video_facts p:last-child {
    margin-bottom: 0;
}

/* 영상 상세 이전·다음 — 메인 main2_card 톤 · 메인 1199/599 규칙이 여기까지 오지 않도록 덮음 */
.sub_page--notice_detail .message_video_adj {
    margin-top: clamp(28px, 4vw, 44px);
}
.sub_page--notice_detail .message_video_adj .message_video_adj_track.main2_recent_track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(10px, 2vw, 18px);
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}
.sub_page--notice_detail .message_video_adj .main2_card_text {
    padding: clamp(10px, 2.4vw, 16px) clamp(11px, 3.2vw, 18px);
    gap: clamp(5px, 1.2vw, 8px);
}
.sub_page--notice_detail .message_video_adj .main2_card_media {
    flex: 0 0 clamp(88px, 28vw, 118px);
    width: clamp(88px, 28vw, 118px);
}
.sub_page--notice_detail .message_video_adj .message_video_adj_track.message_video_adj_track--single {
    grid-template-columns: 1fr;
    max-width: min(640px, 100%);
    margin-left: auto;
    margin-right: auto;
}
@media (max-width: 430px) {
    /* 메인 함께 듣는 메시지와 동일: 좁은 화면에서도 가로 카드(텍스트 | 96px 썸네일), 세로 쌓기는 트랙만 1열 */
    .sub_page--notice_detail .message_video_adj .message_video_adj_track.main2_recent_track {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .sub_page--notice_detail .message_video_adj .main2_card {
        min-height: 0;
    }
    .sub_page--notice_detail .message_video_adj .main2_card_media {
        flex: 0 0 96px;
        width: 96px;
        max-width: none;
    }
    .sub_page--notice_detail .message_video_adj .main2_card_text {
        padding: 12px 14px;
        gap: 5px;
    }
    .sub_page--notice_detail .message_video_adj .main2_card_title {
        font-size: 13px;
        line-height: 1.4;
    }
    .sub_page--notice_detail .message_video_adj .main2_card_meta {
        font-size: 11px;
        margin-top: 4px;
        line-height: 1.45;
    }
}

.notice_detail_empty {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 12px 40px;
    text-align: center;
    min-height: min(460px, 58vh);
}
.notice_detail_empty_msg {
    margin: 0 0 8px;
    font-size: 17px;
    font-weight: 700;
    color: var(--default-color, #2a2633);
}
.notice_detail_empty_hint {
    margin: 0 0 22px;
    font-size: 14px;
    color: #898989;
    line-height: 1.5;
}
.notice_detail_empty_btn {
    display: inline-flex;
}

/* 첨부 — 전역 section{padding} 무력화; 항목 간 선 없음, 마지막 행만 하단선(본문과 구분) */
.notice_detail_attach {
    flex-shrink: 0;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 4px 0 0;
    border: none;
    background: none;
}
.notice_detail_attach_list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.notice_detail_attach_item {
    border-bottom: none;
}
.notice_detail_attach_item + .notice_detail_attach_item {
    margin-top: 4px;
    padding-top: 0;
    border-top: none;
}
.notice_detail_attach_item:last-child .notice_detail_attach_link {
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.notice_detail_attach_link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 1px 0;
    text-decoration: none;
    color: #222;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: -0.02em;
    word-break: break-word;
}
.notice_detail_attach_link:hover {
    color: var(--main3-accent, #6b4ba3);
}
.notice_detail_attach_main {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    flex: 1 1 auto;
}
.notice_detail_attach_icon {
    flex-shrink: 0;
    width: 12px;
    height: 12px;
    display: block;
    object-fit: contain;
    opacity: 0.72;
}
.notice_detail_attach_link:hover .notice_detail_attach_icon {
    opacity: 0.92;
}
.notice_detail_attach_name {
    min-width: 0;
    line-height: 1.4;
}

.notice_detail_adj {
    flex-shrink: 0;
    margin-top: auto;
    padding-top: 16px;
    padding-left: var(--notice-detail-inline, clamp(12px, 3.2vw, 22px));
    padding-right: var(--notice-detail-inline, clamp(12px, 3.2vw, 22px));
    border-top: 1px solid rgba(74, 45, 122, 0.12);
    box-sizing: border-box;
}
.notice_detail_adj_grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 28px;
    align-items: start;
}
.notice_detail_adj_cell--next {
    text-align: right;
}
.notice_detail_adj_label {
    display: block;
    font-size: 12px;
    font-weight: 800;
    color: var(--main3-heading, #4a2d7a);
    letter-spacing: -0.04em;
    margin-bottom: 8px;
}
.notice_detail_adj_link {
    display: inline-block;
    font-size: 14px;
    font-weight: 600;
    color: var(--default-color, #2a2633);
    text-decoration: none;
    letter-spacing: -0.03em;
    line-height: 1.45;
    word-break: keep-all;
    max-width: 100%;
}
.notice_detail_adj_link:hover {
    color: var(--main3-accent, #6b4ba3);
    text-decoration: underline;
}
.notice_detail_adj_none {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #a8a3af;
    letter-spacing: -0.02em;
    line-height: 1.45;
}

/* PC: 날짜(위·우) → 제목, 하단 구분선 — 날짜 줄은 내용 너비만 우측 붙여 제목과 같은 우측 기준선 */
@media (min-width: 768px) {
    .sub_page--notice_detail .notice_detail {
        padding-top: 14px;
    }
    .notice_detail_header {
        padding: 0;
        margin: 0;
        border-bottom: none;
        box-sizing: border-box;
    }
    .notice_detail_meta {
        margin: 0;
        margin-left: auto;
        width: fit-content;
        max-width: 100%;
        font-size: 13px;
        font-weight: 600;
        text-align: right;
        letter-spacing: 0.03em;
        color: #898989;
    }
    .notice_detail_time {
        font-weight: 600;
        font-variant-numeric: tabular-nums;
        color: #767086;
    }
    .notice_detail_title {
        margin: 0 0 16px;
        font-size: clamp(24px, 2.25vw, 30px);
        line-height: 1.3;
        letter-spacing: -0.055em;
        color: var(--default-color, #2a2633);
    }
    .notice_detail:not(.notice_detail--has_attach) .notice_detail_header {
        padding: 0 0 20px;
        margin: 0 0 12px;
        border-bottom: 1px solid rgba(0, 0, 0, 0.09);
    }
    .sub_page--notice_detail .notice_detail_body {
        padding-top: 33px;
    }
    .sub_page--notice_detail .notice_detail:not(.notice_detail--has_attach) .notice_detail_body {
        padding-top: 22px;
    }
    .notice_detail_body {
        padding-bottom: 36px;
    }
    .notice_detail_adj {
        margin-top: 0;
        padding-top: 22px;
        border-top: 2px solid rgba(74, 45, 122, 0.64);
    }
}

@media (max-width: 767.98px) {
    .sub_page--notice_detail .notice_detail_shell {
        min-height: clamp(480px, 68vh, 800px);
        padding: clamp(16px, 3.5vw, 28px) 0 clamp(24px, 4.5vw, 40px);
    }
    .notice_detail_nav {
        margin-bottom: 10px;
    }
    .notice_detail {
        padding-top: 9px;
    }
    .notice_detail_meta {
        margin: 0;
    }
    .notice_detail_title {
        margin: 0 0 10px;
    }
    /* 첨부 있을 때만: 제목↔첨부 간격 (모바일에서만 살짝) */
    .notice_detail.notice_detail--has_attach .notice_detail_title {
        margin-bottom: 14px;
    }
    .notice_detail_body {
        font-size: 16px;
        line-height: 1.8;
        padding-bottom: 2px;
        min-height: clamp(220px, calc(52vh - 20px), 420px);
    }
    .notice_detail_attach {
        max-width: 100%;
        padding: 3px 0 0;
    }
    .notice_detail_attach_link {
        padding: 1px 0;
        font-size: 13px;
        gap: 8px;
    }
    .notice_detail_attach_icon {
        width: 12px;
        height: 12px;
    }
    .notice_detail_adj {
        margin-top: auto;
        padding-top: 16px;
        border-top: 2px solid rgba(74, 45, 122, 0.64);
    }
    .notice_detail_adj_grid {
        gap: 8px 16px;
        align-items: stretch;
    }
    .notice_detail_adj_label {
        margin-bottom: 3px;
        font-size: 13px;
        font-weight: 700;
        letter-spacing: -0.02em;
        color: var(--main3-heading, #4a2d7a);
    }
    .notice_detail_adj_link {
        display: block;
        font-size: 13px;
        padding: 2px 0 3px;
        line-height: 1.45;
        -webkit-tap-highlight-color: rgba(107, 75, 163, 0.12);
    }
    .notice_detail_adj_none {
        display: block;
        font-size: 13px;
        padding: 2px 0 3px;
        line-height: 1.45;
        color: #9e97a8;
    }

    @media (max-width: 599.98px) {
        .notice_detail_adj_grid {
            grid-template-columns: 1fr;
            gap: 0;
        }
        .notice_detail_adj_cell--next {
            text-align: left;
        }
        .notice_detail_adj_cell--prev {
            padding-bottom: 9px;
            margin-bottom: 0;
            border-bottom: 1px solid rgba(74, 45, 122, 0.11);
        }
        .notice_detail_adj_cell--next {
            padding-top: 9px;
        }
    }
}

/* 온라인 헌금 안내 */
.online_giving_lead {
    margin: 0 0 12px;
    font-size: 14px;
    line-height: 1.6;
    color: #222;
    letter-spacing: -0.02em;
}
.online_giving_accounts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(14px, 2.5vw, 20px);
    margin: 0;
    padding: 0;
    list-style: none;
}
.online_giving_card {
    margin: 0;
    padding: clamp(18px, 2.4vw, 22px) clamp(18px, 2.2vw, 22px) clamp(14px, 1.8vw, 17px);
    border-radius: 12px;
    border: 1px solid rgba(107, 75, 163, 0.16);
    background: #fff;
    box-shadow: 0 2px 14px rgba(74, 45, 122, 0.055);
    box-sizing: border-box;
    min-width: 0;
}
.online_giving_card_head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}
.online_giving_card_icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    color: var(--main3-heading, #4a2d7a);
}
.online_giving_card_icon svg {
    display: block;
    width: 26px;
    height: 26px;
}
.online_giving_card_label {
    margin: 0;
    font-size: clamp(17px, 1.85vw, 18px);
    font-weight: 800;
    letter-spacing: -0.04em;
    color: var(--main3-heading, #4a2d7a);
}
.online_giving_account_line {
    display: block;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: -0.03em;
    color: #222;
    text-align: left;
    word-break: break-all;
}
.online_giving_account_line .online_giving_num {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
    color: inherit;
}
.online_giving_copy {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    width: 100%;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
    color: inherit;
    -webkit-tap-highlight-color: rgba(107, 75, 163, 0.1);
}
.online_giving_copy:hover .online_giving_copy_meta {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.online_giving_copy:focus-visible {
    outline: 2px solid var(--main3-accent, #6b4ba3);
    outline-offset: 3px;
    border-radius: 6px;
}
.online_giving_copy.is-copied .online_giving_account_line {
    color: #256b3a;
}
.online_giving_copy_meta {
    display: inline-flex;
    align-items: center;
    align-self: flex-end;
    gap: 5px;
    font-size: 12px;
    font-weight: 600;
    color: #8068b8;
    white-space: nowrap;
}
.online_giving_copy_meta .fa-copy {
    font-size: 12px;
    color: var(--main3-accent, #6b4ba3);
    opacity: 0.95;
}
.online_giving_name_stack {
    display: block;
    width: 100%;
    max-width: 100%;
    margin-top: 12px;
    box-sizing: border-box;
    container-type: inline-size;
    container-name: online-giving-name;
}
.online_giving_name_stack .online_giving_example {
    margin-top: 0;
}
.online_giving_example {
    padding: 10px 12px;
    border-radius: 8px;
    background: rgba(107, 75, 163, 0.06);
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: -0.02em;
}
.online_giving_example code {
    font-size: 0.95em;
    padding: 1px 5px;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.85);
}
.online_giving_suffix {
    margin: 12px 0 0;
    padding: 0 12px 6px;
    width: 100%;
    max-width: 100%;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: clamp(8px, 1.6vw, 18px);
    align-items: center;
    box-sizing: border-box;
}
.online_giving_suffix_item {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    min-width: 0;
}
.online_giving_suffix_circle {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: -0.06em;
    line-height: 1;
    color: var(--main3-heading, #4a2d7a);
    background: rgba(107, 75, 163, 0.1);
    border: 1px solid rgba(107, 75, 163, 0.22);
    box-sizing: border-box;
}
.online_giving_suffix_name {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--default-color, #2a2633);
    line-height: 1.3;
    text-align: center;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: anywhere;
    min-width: 0;
}
@media (max-width: 767.98px) {
    /* 예시 박스와 같은 폭(스택) 안에서: 기본 3열(3+2), 스택이 좁으면 컨테이너 쿼리로 2열(2+2+1) */
    .online_giving_suffix {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 10px 8px;
        padding: 0 12px 8px;
        align-items: stretch;
    }
    .online_giving_suffix_item {
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 6px;
        padding: 6px 4px;
    }
    .online_giving_suffix_name {
        text-align: center;
        white-space: normal;
        font-size: 12px;
        line-height: 1.25;
    }
    .online_giving_suffix_circle {
        width: 34px;
        height: 34px;
        font-size: 13px;
    }
}
@container online-giving-name (max-width: 300px) {
    .online_giving_suffix {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@container online-giving-name (max-width: 260px) {
    .online_giving_suffix_name {
        font-size: 11px;
    }
    .online_giving_suffix_circle {
        width: 32px;
        height: 32px;
        font-size: 12px;
    }
}
@media (max-width: 899.98px) {
    .online_giving_accounts {
        grid-template-columns: 1fr;
    }
}

/* ----- 주보(썸네일 4×4) ----- */
/* 주보: 본문 상단 ↔ 검색바 간격을 공지(표 상단 보라선·툴바 리듬)에 가깝게 */
.bulletin_board_section {
    margin-top: 0;
    padding-top: clamp(22px, 3.2vw, 38px);
}

.bulletin_board_section .notice_board_toolbar {
    margin-bottom: 18px;
}

.bulletin_board_section #bulletin-pagination {
    margin-top: 20px;
}

.bulletin_board_root {
    min-height: 120px;
}

.bulletin_board_empty {
    margin: 2rem 0;
    padding: 2rem 1rem;
    text-align: center;
    font-size: 15px;
    color: #6b5a7d;
    background: #f8f6fb;
    border-radius: 10px;
}

.bulletin_search_empty {
    margin: 1rem 0 0;
    padding: 1.25rem 1rem;
    text-align: center;
    font-size: 15px;
    font-weight: 500;
    color: #6b5a7d;
    letter-spacing: -0.02em;
}

.bulletin_board {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px 16px;
}

.bulletin_detail .bulletin_detail_pages {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 24px;
    padding-bottom: 20px;
    box-sizing: border-box;
}

.bulletin_detail .notice_detail_header {
    text-align: center;
}

.bulletin_detail .bulletin_detail_actions {
    text-align: center;
}

.bulletin_board_item {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
}

/* 테두리·호버는 썸네일 박스(링크)만 — 제목은 밖의 .bulletin_tile_caption */
.bulletin_tile {
    display: block;
    text-decoration: none;
    color: inherit;
    border-radius: 14px;
    overflow: hidden;
    background: transparent;
    border: 1px solid #e4e0ec;
    box-shadow: 0 2px 12px rgba(74, 45, 122, 0.06);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.bulletin_tile:hover {
    border-color: rgba(107, 75, 163, 0.35);
    box-shadow: 0 10px 32px rgba(74, 45, 122, 0.12);
    transform: translateY(-2px);
}

.bulletin_tile:hover .bulletin_tile_img {
    transform: scale(1.06);
}

.bulletin_board_item:hover .bulletin_tile_line {
    text-decoration: underline;
}

.bulletin_board_item:hover .bulletin_tile_date,
.bulletin_board_item:hover .bulletin_tile_suffix {
    color: var(--main3-accent, #6b4ba3);
}

.bulletin_tile:focus-visible {
    outline: 2px solid var(--main3-accent, #6b4ba3);
    outline-offset: 3px;
}

.bulletin_tile_fig {
    margin: 0;
    padding: 0;
    display: block;
    line-height: 0;
    border-radius: 14px;
    overflow: hidden;
    background: transparent;
}

.bulletin_tile_img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    object-position: center top;
    background: transparent;
    transform: scale(1);
    transition: transform 0.35s ease;
}

/* 테두리 박스 바로 아래에 붙이듯 간격 축소 */
.bulletin_tile_caption {
    margin: 3px 0 0;
    padding: 0 2px;
    text-align: center;
    min-width: 0;
}

.bulletin_tile_line {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.35;
    letter-spacing: -0.02em;
}

/* 날짜·「 주보」 동일 색 (공지 본문 톤) */
.bulletin_tile_date,
.bulletin_tile_suffix {
    font-size: 13px;
    font-weight: 600;
    color: var(--default-color, #2a2633);
    letter-spacing: -0.02em;
    transition: color 0.2s ease;
}

.bulletin_detail_actions {
    margin: 0 0 20px;
}

.bulletin_detail_figure {
    margin: 0;
    border-radius: 14px;
    overflow: hidden;
    background: #f0ecf6;
    box-shadow: 0 2px 12px rgba(40, 24, 70, 0.08);
}

.bulletin_detail_img {
    display: block;
    width: 100%;
    max-width: 900px;
    height: auto;
    margin: 0 auto;
}

@media (max-width: 991.98px) {
    .bulletin_board {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px 14px;
    }
}

@media (max-width: 639.98px) {
    .bulletin_board {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px 12px;
    }

    .bulletin_tile_caption {
        margin-top: 2px;
        padding: 0 1px;
    }

    .bulletin_tile_date,
    .bulletin_tile_suffix {
        font-size: 12px;
    }
}



/* 부서 페이지 하단 갤러리 — 헤더·배너처럼 섹션은 화면 전체 너비 */
.dept_gallery{
    background: #fff;
    padding: clamp(12px, 2vw, 20px) 0 clamp(20px, 3vw, 32px);
    width: 100%;
    max-width: none;
    overflow-x: clip;
    box-sizing: border-box;
}
/* 제목만 사이트 공통 컨텐츠 폭(1440px) */
.dept_gallery > .container{
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 30px;
    padding-right: 30px;
}
.dept_gallery_empty{
    margin: 0;
    padding: clamp(28px, 4vw, 48px) 16px;
    text-align: center;
    font-size: clamp(15px, 1.6vw, 17px);
    color: rgba(74, 45, 122, 0.72);
    letter-spacing: -0.03em;
}
.dept_gallery .title{
    margin-bottom: clamp(8px, 1.4vw, 14px);
}
.dept_gallery .title h2{
    margin: 0;
    font-size: clamp(18px, 2vw, 22px);
    font-weight: 800;
    letter-spacing: -0.06em;
    color: var(--main3-heading, #4a2d7a);
}
.dept_gallery .title .more{
    font-weight: 700;
    gap: 10px;
    color: var(--default-color);
    font-size: 14px;
}
.dept_gallery .content{
    max-width: 100%;
    min-width: 0;
}
/* Swiper — 뷰포트 좌우 끝까지(본문 820px 영역과 분리) */
.dept_gallery_track{
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 0;
    overflow: hidden;
    box-sizing: border-box;
}
.dept_gallery_track .dept_gallery_swiper{
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
@media (min-width: 1200px){
    .dept_gallery .title{text-align: center;}
}
@media (max-width: 1199.98px){
    .dept_gallery .title{
        display: block;
    }
    /* 모바일·태블릿: 슬라이드 영역 좌우 살짝 여백 */
    .dept_gallery_track{
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
        padding-left: 16px;
        padding-right: 16px;
        box-sizing: border-box;
    }
    .dept_gallery > .container{
        padding-left: 16px;
        padding-right: 16px;
    }
}
