@charset "utf-8";
/* 전북기독신문 — 기독신문형 헤더 + 풀스크린 히어로 */

@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@600;700&display=swap');

:root {
    /* 전북기독신문 — 전북 그린·청록 정체성 (기독신문 네이비와 차별) */
    --jctv-navy: #0f3d32;
    --jctv-navy-deep: #0a2a23;
    --jctv-navy-mid: #176b52;
    --jctv-accent: #2bb673;
    --jctv-dot: #e8b84a;
    --jctv-text: #ffffff;
    --jctv-muted: rgba(255, 255, 255, 0.78);
    --jctv-surface: #f3f7f5;
    --jctv-line: #d5e5dc;
    /* 메인 섹션 밴드 */
    --jctv-bg-media: #ffffff;   /* 디지털·설교 */
    --jctv-bg-ads: #eaf3ee;     /* 광고 */
    --jctv-bg-news: #f3f7f5;    /* 주요뉴스 */
    --jctv-bg-opinion: #ffffff; /* 오피니언 */
}

/*
 * 버튼 위계 (색은 딥그린 통일, 형태로 역할 구분)
 * 1차 primary : 채움 — 구독신청 등 핵심 CTA
 * 2차 secondary : 외곽선 — 더보기·지역소식·신문지면보기
 * 3차 ghost : 텍스트 — 편집·보조 링크
 */
.jctv-btn-primary,
.jctv-subscribe-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 44px;
    padding: 12px 22px;
    border-radius: 6px;
    border: 1px solid var(--jctv-navy);
    background: var(--jctv-navy);
    color: #fff !important;
    font-weight: 800;
    font-size: 0.95rem;
    letter-spacing: -0.02em;
    text-decoration: none !important;
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.jctv-btn-primary:hover,
.jctv-subscribe-cta-btn:hover {
    background: var(--jctv-navy-mid);
    border-color: var(--jctv-navy-mid);
    color: #fff !important;
}

.jctv-btn-secondary,
.jctv-mainnews-more,
.jctv-opinion-more,
.jctv-digital-more,
.jctv-sermon-sec-more,
.jctv-civic-chip.is-news,
.jctv-subscribe-cta-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 38px;
    padding: 8px 14px;
    border-radius: 6px;
    border: 1px solid var(--jctv-navy);
    background: transparent;
    color: var(--jctv-navy) !important;
    font-weight: 700;
    font-size: 0.9rem;
    letter-spacing: -0.02em;
    text-decoration: none !important;
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.jctv-btn-secondary:hover,
.jctv-mainnews-more:hover,
.jctv-opinion-more:hover,
.jctv-digital-more:hover,
.jctv-sermon-sec-more:hover,
.jctv-civic-chip.is-news:hover,
.jctv-subscribe-cta-link:hover {
    background: #eaf3ee;
    color: var(--jctv-navy) !important;
}

.jctv-btn-ghost,
.jctv-civic-chip.is-edit,
.jctv-ads-edit {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 2px;
    border: 0;
    background: transparent;
    color: #5c7369 !important;
    font-weight: 700;
    font-size: 0.88rem;
    text-decoration: none !important;
    transition: color 0.18s ease;
}

.jctv-btn-ghost:hover,
.jctv-civic-chip.is-edit:hover,
.jctv-ads-edit:hover {
    color: var(--jctv-navy) !important;
}

/* ---------- 전체 톤 ---------- */
.jctv-wrap {
    font-family: 'Pretendard', 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
}

.jctv-wrap .basic-body.page-body,
.jctv-wrap .main-wrap {
    background: #ffffff;
}

.jctv-wrap .basic-body:not(.page-body) {
    padding-top: 0 !important;
    padding-bottom: 0;
}

.jctv-main-contents {
    padding-top: 0;
}

/* ---------- 헤더 (기독신문형) ---------- */
.jctv-header.header-wrap {
    background: #fff !important;
    border-bottom: 1px solid #e6e6e6;
    color: #232323;
    margin-bottom: 0;
}

/* 서브 페이지: 헤더 실선 ↔ 제목바 간격 제거 (메인 히어로와 동일) */
.jctv-header.header-wrap.page-header-wrap {
    border-bottom: 0 !important;
    margin-bottom: 0 !important;
}

.jctv-header .top-header,
.jctv-header .header-title {
    display: none !important;
}

.jctv-topbar {
    border-bottom: 1px solid #ececec;
    padding: 3px 0;
}

.jctv-topbar-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.jctv-topbar-left,
.jctv-topbar-right {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.jctv-menu-btn {
    color: #232323;
    border: 0;
    background: transparent;
    font-size: 1.15rem;
    padding: 2px 6px;
    line-height: 1;
}

.jctv-datetime {
    color: #232323;
    font-size: 0.8125rem;
}

.jctv-civic-links {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.jctv-civic-links a {
    color: #232323 !important;
    text-decoration: none !important;
    font-size: 0.8rem;
    font-weight: 700;
}

.jctv-civic-links a:hover {
    color: #1a56c8 !important;
}

.jctv-civic-sep {
    color: #b0b0b0;
    font-size: 0.75rem;
}

.jctv-top-link {
    color: #232323 !important;
    font-size: 0.875rem;
    text-decoration: none !important;
}

.jctv-top-link:hover {
    color: #1a56c8 !important;
}

.jctv-edit-toggle {
    margin: 0;
}

.jctv-edit-toggle .toggle {
    color: #232323;
    font-size: 0.8125rem;
}

.jctv-search-form {
    margin: 0;
    width: 260px;
}

.jctv-search-form .input {
    margin: 0;
}

.jctv-search-form .input input {
    height: 32px;
    border-radius: 999px !important;
    border: 1px solid #cfcfcf !important;
    background: #fff !important;
    color: #232323 !important;
    padding-left: 14px;
    font-size: 0.875rem;
}

.jctv-search-form .input input::placeholder {
    color: #8a8a8a;
}

.jctv-search-form .input .button {
    background: transparent !important;
    color: #232323 !important;
    border: 0 !important;
}

.jctv-mobile-search-btn {
    color: #232323;
    background: transparent;
    border: 0;
    font-size: 1.1rem;
}

/* 로고 + 좌우 공공기관 배너 (PC: 양끝 각 1개 · 모바일: 로고 아래 2줄)
   배너 표시 폭 ≈ 기존 대비 85% (−15%)
   상단(탑바·신문관리 ↔ 배너) / 하단(헤더 ↔ 본문) 여백 동일 */
:root {
    --jctv-hdr-banner-max: 323px; /* was 380 */
    --jctv-hdr-banner-max-md: 255px; /* was 300 */
    --jctv-hdr-banner-max-sm: 204px; /* was 240 */
    --jctv-hdr-v-gap: 18px; /* 상·하 동일 (기존 28px에서 축소) */
}

.jctv-brand {
    padding: 0;
    text-align: center;
}

.jctv-brand-container {
    max-width: 1600px;
    margin: 0 auto;
    padding-left: 20px;
    padding-right: 20px;
}

.jctv-brand-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    column-gap: clamp(28px, 4vw, 72px);
    width: 100%;
}

@media (min-width: 992px) {
    .jctv-brand {
        display: none !important;
    }
    .jctv-brand-row {
        grid-template-columns: 1fr;
        justify-items: center;
        column-gap: 0;
        padding: 4px 0 2px;
    }
    .jctv-brand-side {
        display: none !important;
    }
}

.jctv-brand-side {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    width: 100%;
}

/* PC: 왼쪽 배너=좌측 끝, 오른쪽 배너=우측 끝 (로고와 간격 확보) */
.jctv-brand-side-left {
    justify-content: flex-start;
}

.jctv-brand-side-right {
    justify-content: flex-end;
}

.jctv-brand-banner {
    display: block;
    flex: 0 1 auto;
    min-width: 0;
    width: 100%;
    max-width: var(--jctv-hdr-banner-max, 323px);
    height: auto;
    aspect-ratio: 7.6 / 3.7;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    text-decoration: none !important;
    overflow: hidden;
    transition: opacity 0.15s ease;
}

.jctv-brand-side-right .jctv-brand-banner {
    flex: 0 1 auto;
    width: 100%;
    max-width: var(--jctv-hdr-banner-max, 323px);
}

/* PC / 모바일 독립 노출 */
@media (min-width: 768px) {
    .jctv-brand-banner.is-mo-only {
        display: none !important;
    }
}

@media (max-width: 767.98px) {
    .jctv-brand-banner.is-pc-only {
        display: none !important;
    }
}

.jctv-brand-banner img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.jctv-brand-banner:hover {
    opacity: 0.92;
}

.jctv-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
    color: inherit;
    justify-self: center;
    flex-shrink: 0;
    padding: 0 8px;
}

.jctv-brand-lockup {
    display: block;
    width: auto;
    height: clamp(36px, 4.6vw, 52px);
    max-width: min(32vw, 380px);
    object-fit: contain;
    /* 감청 #010130 (너무 검지 않게) */
    filter: brightness(0) saturate(100%) invert(10%) sepia(85%) saturate(3200%) hue-rotate(228deg) brightness(0.92) contrast(112%);
}

.jctv-logo-text {
    display: inline-block;
    font-family: 'Pretendard', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
    font-weight: 800;
    font-size: clamp(1.55rem, 3.4vw, 2.45rem);
    letter-spacing: -0.05em;
    color: #010130 !important;
    line-height: 1.1;
    white-space: nowrap;
}

.jctv-brand-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 0;
    width: 100%;
}

.jctv-mobile-nav-strip {
    display: none;
}

@media (max-width: 991.98px) {
    .jctv-brand-center {
        grid-column: 1 / -1;
        order: 1;
    }

    .jctv-brand-side-left {
        order: 2;
    }

    .jctv-brand-side-right {
        order: 3;
    }

    .jctv-brand .jctv-mobile-nav-strip {
        display: block !important;
        width: 100%;
        max-width: none;
        margin: 2px -20px 0;
        padding: 0;
        text-align: left;
        overflow: hidden;
        background: transparent;
        border: 0;
    }

    .jctv-brand-center .jctv-logo {
        padding-bottom: 0;
    }

    .jctv-brand .jctv-mobile-nav-scroll {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center;
        justify-content: flex-start;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
        overscroll-behavior-x: contain;
        touch-action: pan-x;
        width: 100%;
        max-width: 100%;
        padding: 0 4px;
        gap: 0;
    }

    .jctv-brand .jctv-mobile-nav-scroll::-webkit-scrollbar {
        display: none;
    }

    .jctv-brand .jctv-mobile-nav-item {
        flex: 0 0 auto !important;
        scroll-snap-align: start;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        white-space: nowrap !important;
        word-break: keep-all;
        padding: 4px 16px;
        color: #333 !important;
        font-family: 'Pretendard', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
        font-size: 1.06rem;
        font-weight: 700;
        letter-spacing: -0.03em;
        line-height: 1.15;
        text-decoration: none !important;
        border-bottom: 2px solid transparent;
    }

    .jctv-brand .jctv-mobile-nav-item.is-on,
    .jctv-brand .jctv-mobile-nav-item:active {
        color: #010130 !important;
        font-weight: 800;
        border-bottom-color: #2bb673;
    }

    .jctv-header {
        margin-bottom: 0;
    }
}

@media (min-width: 992px) {
    .jctv-brand-center {
        display: contents;
    }
}

.jctv-logo .site-logo {
    max-height: 64px;
    width: auto;
}

@media (max-width: 1199.98px) {
    .jctv-brand-banner,
    .jctv-brand-side-right .jctv-brand-banner {
        max-width: var(--jctv-hdr-banner-max-md, 255px);
    }
}

@media (max-width: 991.98px) {
    .jctv-brand-row {
        column-gap: 18px;
    }

    .jctv-brand-banner,
    .jctv-brand-side-right .jctv-brand-banner {
        max-width: var(--jctv-hdr-banner-max-sm, 204px);
    }

    .jctv-brand-lockup {
        max-width: min(30vw, 260px);
        height: clamp(44px, 6.5vw, 68px);
    }
}

/* 모바일: 로고 다음 배너 2줄 세로 배치 */
@media (max-width: 767.98px) {
    .jctv-brand {
        padding: 12px 0 0;
    }

    .jctv-brand-container {
        padding-left: 14px;
        padding-right: 14px;
    }

    .jctv-mobile-nav-strip {
        margin-left: -14px;
        margin-right: -14px;
        margin-top: 0;
    }

    .jctv-brand-row {
        grid-template-columns: 1fr;
        gap: 12px;
        justify-items: stretch;
    }

    .jctv-logo {
        order: 1;
        justify-self: center;
        padding: 0;
    }

    .jctv-logo-text {
        font-size: clamp(1.22rem, 5.2vw, 1.38rem);
    }

    .jctv-brand-lockup {
        max-width: min(68vw, 280px);
        height: clamp(40px, 9vw, 58px);
    }

    .jctv-brand-side {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        width: 100%;
    }

    .jctv-brand-side-left {
        order: 2;
        justify-content: stretch;
    }

    .jctv-brand-side-right {
        order: 3;
        justify-content: stretch;
    }

    .jctv-brand-banner,
    .jctv-brand-side-right .jctv-brand-banner {
        flex: none;
        width: 100%;
        max-width: none;
        height: auto;
        aspect-ratio: 7.6 / 3.7;
        min-height: 0;
        background: transparent;
    }

    .jctv-brand-banner img {
        object-fit: contain;
        object-position: center;
    }
}

/* 메뉴 — 로고와 여유 간격, 블랙 바 제거 */
.jctv-nav-wrap.nav-wrap {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    margin-top: 0;
    padding-top: var(--jctv-hdr-v-gap, 18px); /* 탑바(신문관리 등) ↔ 공공배너 */
    border-top: 1px solid #ececec !important;
}

.jctv-nav-inner {
    display: block;
}

.jctv-nav-banner {
    display: none;
}

.jctv-nav-logo {
    display: none;
}

@media (min-width: 992px) {
    .jctv-nav-wrap > .container.jctv-nav-inner {
        max-width: 1600px;
        display: grid;
        grid-template-columns: minmax(153px, 323px) minmax(0, 1fr) minmax(153px, 323px);
        align-items: start;
        gap: 8px 16px;
        padding-left: 16px;
        padding-right: 16px;
    }
    .jctv-nav-center {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        align-self: stretch;
        min-width: 0;
        gap: 0;
        padding-top: 0;
        padding-bottom: 8px;
        position: relative;
        z-index: 2;
    }
    .jctv-nav-center .adm-edit-btn,
    .jctv-nav-center .btn-edit-mode {
        position: absolute;
        top: 0;
        right: 0;
        left: auto;
        z-index: 6;
    }
    .jctv-nav-logo {
        display: inline-flex;
        padding: 0;
        flex-shrink: 0;
    }
    .jctv-nav-logo .jctv-brand-lockup {
        height: clamp(40px, 4.2vw, 56px);
        max-width: 280px;
    }
    .jctv-nav-logo .jctv-logo-text {
        font-size: clamp(1.5rem, 2.4vw, 2.1rem);
    }
    .jctv-navbar {
        min-width: 0;
        width: 100%;
        flex-wrap: nowrap;
        padding: 0;
        margin-top: 18px;
        justify-content: center;
        position: relative;
        z-index: 1;
    }
    .jctv-navbar-nav {
        flex-wrap: nowrap !important;
        justify-content: center;
        gap: 0 4px;
        width: 100%;
        max-width: 100%;
    }
    .jctv-navbar-nav > li {
        flex: 0 0 auto;
        white-space: nowrap;
    }
    .jctv-header .navbar-nav > li > a.nav-link,
    .jctv-header .navbar-nav > li > a.dropdown-toggle {
        padding: 4px 10px !important;
        font-size: 0.95rem;
        white-space: nowrap;
    }
    .jctv-header .adm-edit-btn,
    .jctv-header .btn-edit-mode {
        top: 0;
        left: auto;
        right: 0;
    }
    .jctv-nav-banner {
        display: flex;
        align-items: center;
        min-width: 0;
        width: 100%;
    }
    .jctv-nav-banner-left {
        justify-content: flex-start;
    }
    .jctv-nav-banner-right {
        justify-content: flex-end;
    }
    .jctv-nav-banner .jctv-brand-banner,
    .jctv-nav-banner-right .jctv-brand-banner {
        width: 100%;
        max-width: var(--jctv-hdr-banner-max, 323px);
        height: auto;
        aspect-ratio: 7.6 / 3.7;
        flex: 0 1 auto;
    }
    .jctv-nav-banner .jctv-brand-banner img {
        width: 100%;
        height: 100%;
        max-width: none;
        object-fit: contain;
        object-position: center;
    }
    .jctv-navbar {
        min-width: 0;
        width: 100%;
    }
}

/* 테마 기본 .navbar { background:#17171a } 덮어쓰기 */
.jctv-header .navbar,
.jctv-header .jctv-navbar,
.jctv-nav-wrap .navbar {
    background: transparent !important;
    background-color: transparent !important;
}

.jctv-header.header-wrap.nav-sticky .nav-wrap,
.jctv-header.nav-sticky .jctv-nav-wrap.nav-wrap {
    background: #fff !important;
    border-bottom: 1px solid #e6e6e6 !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06) !important;
}

.jctv-header.nav-sticky .navbar,
.jctv-header.nav-sticky .jctv-navbar {
    background: transparent !important;
    background-color: transparent !important;
}

.jctv-navbar {
    justify-content: center;
    padding: 0 0 4px;
}

.jctv-navbar-nav {
    justify-content: center;
    flex-wrap: wrap;
    gap: 2px 10px;
    width: 100%;
}

.jctv-header .navbar-nav > li > a.nav-link,
.jctv-header .navbar-nav > li > a.dropdown-toggle {
    color: #232323 !important;
    font-weight: 600;
    font-size: 1.02rem;
    padding: 4px 12px !important;
    background: transparent !important;
    letter-spacing: -0.02em;
}

.jctv-header .navbar-nav > li.active > a.nav-link,
.jctv-header .navbar-nav > li > a.nav-link:hover {
    color: #1a56c8 !important;
}

.jctv-header .navbar-nav-home {
    display: none !important;
}

.jctv-header .darkmode-menu {
    display: none !important;
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    .jctv-nav-wrap > .container.jctv-nav-inner {
        grid-template-columns: minmax(140px, 280px) minmax(0, 1fr) minmax(140px, 280px);
        gap: 6px 10px;
    }
    .jctv-header .navbar-nav > li > a.nav-link,
    .jctv-header .navbar-nav > li > a.dropdown-toggle {
        padding: 4px 6px !important;
        font-size: 0.84rem;
    }
}

@media (min-width: 992px) {
    .jctv-header .sidebar-left.offcanvas {
        position: static !important;
        top: auto !important;
        left: auto !important;
        bottom: auto !important;
        visibility: visible !important;
        transform: none !important;
        background: transparent !important;
        border: 0 !important;
        width: auto !important;
        height: auto !important;
        max-height: none !important;
        z-index: auto !important;
        overflow: visible !important;
    }

    .jctv-header .sidebar-left .offcanvas-header {
        display: none;
    }

    .jctv-header .sidebar-left-content {
        background: transparent;
    }

    .jctv-header .navbar-nav {
        flex-direction: row;
        align-items: center;
    }
}

/* 회원가입/로그인 페이지 */
.jctv-wrap .page-body .member-skin {
    max-width: 860px;
    margin: 0 auto 40px;
    padding: 10px 0 30px;
}

.jctv-wrap .page-body .member-skin .register-btn-box .btn-e,
.jctv-wrap .page-body .member-skin #btn_submit {
    min-width: 200px;
    color: #fff !important;
}

.jctv-wrap .page-title-wrap {
    background: #eef5f1;
    border-bottom: 1px solid #d5e5dc;
    margin-top: -1px;
    margin-bottom: 24px;
}

.jctv-wrap .page-header-wrap + .page-title-wrap {
    margin-top: -1px;
}

.jctv-wrap .page-header-wrap + .basic-body.page-body {
    padding-top: 0;
}

.jctv-wrap .page-title-wrap h2 {
    color: #0f3d32;
}

@media (max-width: 991.98px) {
    .jctv-brand {
        padding: 12px 0 0;
    }

    .jctv-nav-wrap.nav-wrap {
        margin-top: 0;
        padding-top: 0;
    }

    .jctv-header .sidebar-left.offcanvas {
        background: #fff;
    }

    .jctv-header .offcanvas-title,
    .jctv-header .sidebar-left .navbar-nav > li > a.nav-link {
        color: #232323 !important;
    }

    .jctv-header .sidebar-left .navbar-nav > li.active > a.nav-link,
    .jctv-header .sidebar-left .navbar-nav > li > a.nav-link:hover,
    .jctv-header .sidebar-left .navbar-nav > li > a.nav-link:focus {
        color: #1a56c8 !important;
    }

    /* 2차·3차 메뉴: 밝은 배경 위 어두운 글자 */
    .jctv-header .sidebar-left .dropdown-menu {
        background: #f7f8fa;
    }

    .jctv-header .sidebar-left .dropdown-menu .nav-link,
    .jctv-header .sidebar-left .dropdown-item,
    .jctv-header .sidebar-left .dropdown-submenu > a {
        color: #1d2939 !important;
    }

    .jctv-header .sidebar-left .dropdown-submenu > a:hover,
    .jctv-header .sidebar-left .dropdown-submenu > a.active,
    .jctv-header .sidebar-left .dropdown-item.active {
        color: #0f3d32 !important;
        background: #e8f0ec !important;
    }

    .jctv-header .sidebar-left .navbar-nav > li > .cate-dropdown-open {
        border-left-color: rgba(255, 255, 255, 0.18) !important;
    }

    .jctv-header .sidebar-left .navbar-nav > li > .cate-dropdown-open:before {
        color: rgba(255, 255, 255, 0.88) !important;
    }

    .jctv-header .sidebar-left .navbar-nav > li > .cate-dropdown-open.show:before {
        color: #e8b84a !important;
    }
}

/* ---------- 푸터 (브랜드 그린) ---------- */
.jctv-wrap .footer {
    margin-top: 0;
    background:
        linear-gradient(180deg, #123f34 0%, #0f3d32 42%, #0a2a23 100%);
    color: rgba(255, 255, 255, 0.82);
    border-top: 0;
}

.jctv-wrap .footer .container {
    max-width: 1200px;
}

.jctv-wrap .footer-cont-info {
    background: transparent !important;
    border-top: 0 !important;
    padding: 42px 0 28px !important;
}

.jctv-wrap .footer-cont-info .footer-info {
    padding-bottom: 0 !important;
    border-bottom: 0 !important;
    line-height: 1.75;
    font-size: 0.9rem;
}

.jctv-wrap .footer-cont-info .footer-info strong {
    color: #fff !important;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.jctv-wrap .footer-cont-info .footer-info span,
.jctv-wrap .footer-cont-info .footer-info a {
    color: rgba(255, 255, 255, 0.72) !important;
    text-decoration: none !important;
}

.jctv-wrap .footer-cont-info .footer-info a:hover {
    color: #e8b84a !important;
}

.jctv-wrap .footer-cont-info .footer-info span.info-divider {
    color: rgba(255, 255, 255, 0.28) !important;
    margin: 0 8px !important;
}

.jctv-footer-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(200px, 0.7fr);
    gap: 28px 40px;
    align-items: start;
}

.jctv-footer-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}

.jctv-footer-brand-lockup {
    display: block;
    height: 48px;
    width: auto;
    max-width: 260px;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

.jctv-footer-brand-name {
    display: inline-block;
    margin: 0;
    font-family: 'Pretendard', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
    font-size: 1.35rem;
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.03em;
}

.jctv-footer-links h3 {
    margin: 0 0 14px;
    font-size: 0.92rem;
    font-weight: 800;
    color: #e8b84a;
    letter-spacing: -0.02em;
}

.jctv-footer-links ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 16px;
}

.jctv-footer-links a {
    color: rgba(255, 255, 255, 0.82) !important;
    text-decoration: none !important;
    font-size: 0.9rem;
    font-weight: 600;
}

.jctv-footer-links a:hover {
    color: #fff !important;
}

.jctv-wrap .footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    float: none !important;
    padding: 18px 0 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-bottom: 0 !important;
}

.jctv-wrap .footer-nav,
.jctv-wrap .footer-right-nav {
    float: none !important;
    width: auto !important;
    text-align: left !important;
    margin: 0 !important;
}

.jctv-wrap .footer-nav a,
.jctv-wrap .footer-right-nav a {
    color: rgba(255, 255, 255, 0.7) !important;
    font-size: 0.84rem !important;
    margin-right: 14px !important;
    font-weight: 600;
}

.jctv-wrap .footer-nav a:hover,
.jctv-wrap .footer-right-nav a:hover {
    color: #e8b84a !important;
    text-decoration: none !important;
}

.jctv-footer-stats {
    margin: 4px 0 8px;
    padding: 14px 16px 16px;
    border-radius: 12px;
    background:
        linear-gradient(165deg, #f4faf6 0%, #e7f2ec 55%, #dcebe3 100%);
    border: 1px solid #c5ddd0;
    box-shadow:
        0 0 0 1px rgba(232, 184, 74, 0.35),
        0 10px 28px rgba(0, 0, 0, 0.18);
    color: #1d2939;
}

.jctv-footer-stats-head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 10px;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px dashed #b7cfc4;
}

.jctv-footer-stats-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: 4px;
    background: #0f3d32;
    color: #e8b84a;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.jctv-footer-stats-title {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 800;
    color: #0f3d32;
    letter-spacing: -0.02em;
}

.jctv-footer-stats-note {
    margin-left: auto;
    font-style: normal;
    font-size: 0.75rem;
    font-weight: 600;
    color: #667085;
}

.jctv-footer-stats-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 8px;
}

.jctv-footer-stats-grid li {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    padding: 10px 8px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid #d5e5dc;
    text-align: center;
}

.jctv-footer-stats-grid li span {
    font-size: 0.72rem;
    font-weight: 700;
    color: #667085;
    letter-spacing: -0.02em;
}

.jctv-footer-stats-grid li strong {
    font-size: 1.05rem;
    font-weight: 800;
    color: #0f3d32;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}

@media (max-width: 991.98px) {
    .jctv-footer-stats-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .jctv-footer-stats-note {
        margin-left: 0;
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .jctv-footer-stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.jctv-wrap .footer-copyright {
    color: rgba(255, 255, 255, 0.55) !important;
    font-size: 0.8rem !important;
    text-align: center;
    padding: 18px 0 34px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.jctv-wrap .footer-copyright .text-black,
.jctv-wrap .footer-copyright strong {
    color: rgba(255, 255, 255, 0.88) !important;
}

@media (max-width: 991.98px) {
    .jctv-wrap .footer .container {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .jctv-wrap .footer-cont-info {
        padding: 36px 0 24px !important;
    }

    .jctv-footer-grid {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 0 2px;
    }

    .jctv-footer-brand-name {
        padding-right: 8px;
    }

    .jctv-wrap .footer-cont-info .footer-info {
        word-break: keep-all;
        line-height: 1.8;
    }

    .jctv-wrap .footer-bottom {
        justify-content: center;
        text-align: center;
        padding-left: 4px;
        padding-right: 4px;
    }

    .jctv-wrap .footer-nav,
    .jctv-wrap .footer-right-nav {
        width: 100% !important;
        text-align: center !important;
    }

    .jctv-wrap .footer-copyright {
        padding-left: 4px;
        padding-right: 4px;
    }
}

/* ---------- 풀스크린 히어로 ---------- */
.jctv-hero {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: 0;
    overflow: hidden;
    background: var(--jctv-navy-deep);
}

@media (max-width: 991.98px) {
    /* 메인: 모바일 메뉴 실선 ↔ 히어로 간격 추가 축소 */
    .jctv-wrap .jctv-header.header-wrap:not(.page-header-wrap) .jctv-nav-wrap.nav-wrap {
        height: 0;
        min-height: 0;
        overflow: hidden;
        padding: 0 !important;
        margin: 0;
        border: 0 !important;
    }

    .jctv-wrap .jctv-header.header-wrap:not(.page-header-wrap) .jctv-brand {
        padding-bottom: 0;
    }

    .jctv-wrap .jctv-header.header-wrap:not(.page-header-wrap) .jctv-brand .jctv-mobile-nav-strip {
        margin-top: 0;
        margin-bottom: 0;
    }

    .jctv-wrap .jctv-header.header-wrap:not(.page-header-wrap) .jctv-brand .jctv-mobile-nav-item {
        padding-top: 2px;
        padding-bottom: 2px;
    }

    .jctv-wrap .basic-body:not(.page-body) .jctv-hero {
        margin-top: -1px;
    }
}

.jctv-hero-admin-bar {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 6;
}

.jctv-hero-admin-btn,
.jctv-hero-slide-edit {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: #0f3d32 !important;
    text-decoration: none !important;
    font-size: 0.875rem;
    font-weight: 700;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
}

.jctv-hero-admin-btn:hover,
.jctv-hero-slide-edit:hover {
    background: #fff;
}

.jctv-hero-slide-edit {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 5;
}

.jctv-hero .carousel,
.jctv-hero .carousel-inner,
.jctv-hero .carousel-item {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 2560 / 720;
}

.jctv-hero .carousel-inner {
    overflow: hidden;
}

/* 전환: Bootstrap 기본 0.6s 페이드는 끊겨 보임 → 긴 크로스페이드 */
.jctv-hero .carousel-fade .carousel-item {
    opacity: 0;
    transform: none;
    transition: opacity 0.9s ease-in-out;
}
.jctv-hero .carousel-fade .carousel-item.active,
.jctv-hero .carousel-fade .carousel-item-next.carousel-item-start,
.jctv-hero .carousel-fade .carousel-item-prev.carousel-item-end {
    z-index: 1;
    opacity: 1;
}
.jctv-hero .carousel-fade .active.carousel-item-start,
.jctv-hero .carousel-fade .active.carousel-item-end {
    z-index: 0;
    opacity: 0;
    transition: opacity 0.9s ease-in-out;
}

.jctv-hero-slide {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    background: #0a1a3f;
}

/* 배경: 2560×720 비율 맞춤 + cover → 여백(층) 없이 채움 */
.jctv-hero-bg {
    position: absolute;
    inset: -2.5%;
    z-index: 0;
    background-color: transparent;
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    transform: translate3d(0, 0, 0);
    will-change: transform;
    pointer-events: none;
}

.jctv-hero-slide-1 .jctv-hero-bg:not([style*="background-image"]) {
    background-image: linear-gradient(135deg, #0a1a3f 0%, #1a3a7a 45%, #0d2458 100%);
}
.jctv-hero-slide-2 .jctv-hero-bg:not([style*="background-image"]) {
    background-image: linear-gradient(135deg, #102048 0%, #24508f 50%, #0c1c44 100%);
}
.jctv-hero-slide-3 .jctv-hero-bg:not([style*="background-image"]) {
    background-image: linear-gradient(120deg, #0c1838 0%, #2a4f8c 55%, #132650 100%);
}
.jctv-hero-slide-4 .jctv-hero-bg:not([style*="background-image"]) {
    background-image: linear-gradient(145deg, #0b214d 0%, #3a5ea0 48%, #0a1840 100%);
}
.jctv-hero-slide-5 .jctv-hero-bg:not([style*="background-image"]) {
    background-image: linear-gradient(160deg, #08142e 0%, #1e457d 52%, #0d1f4a 100%);
}
.jctv-hero-slide-6 .jctv-hero-bg:not([style*="background-image"]) {
    background-image: linear-gradient(150deg, #0a1836 0%, #2c5a96 50%, #0e2048 100%);
}
.jctv-hero-slide-7 .jctv-hero-bg:not([style*="background-image"]) {
    background-image: linear-gradient(130deg, #07122a 0%, #1a3f78 48%, #102448 100%);
}

/* 한 방향으로만 천천히 한 번 이동 → 끝나면 다음 슬라이드 (interval 3.25s) */
.carousel-item.active .jctv-hero-ken-1,
.carousel-item.active .jctv-hero-ken-2 {
    animation: jctv-hero-pan-left 3s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}
.carousel-item.active .jctv-hero-ken-3 {
    animation: jctv-hero-pan-up 3s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}
.carousel-item.active .jctv-hero-ken-4 {
    animation: jctv-hero-pan-left 3s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}

@keyframes jctv-hero-pan-left {
    from { transform: translate3d(1.6%, 0, 0); }
    to   { transform: translate3d(-1.6%, 0, 0); }
}
@keyframes jctv-hero-pan-up {
    from { transform: translate3d(0, 1.4%, 0); }
    to   { transform: translate3d(0, -1.4%, 0); }
}

/* 문구: 부드럽게 페이드인 (전환과 겹쳐도 덜 튀게) */
.jctv-hero-title,
.jctv-hero-desc,
.jctv-hero-btn {
    opacity: 0;
    transform: translate3d(0, 12px, 0);
    transition: opacity 1.1s ease, transform 1.1s ease;
}
.carousel-item.active .jctv-hero-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.25s;
}
.carousel-item.active .jctv-hero-desc {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.5s;
}
.carousel-item.active .jctv-hero-btn {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.75s;
}

@media (prefers-reduced-motion: reduce) {
    .carousel-item.active .jctv-hero-ken-1,
    .carousel-item.active .jctv-hero-ken-2,
    .carousel-item.active .jctv-hero-ken-3,
    .carousel-item.active .jctv-hero-ken-4 {
        animation: none;
        transform: none;
    }
    .jctv-hero-title,
    .jctv-hero-desc,
    .jctv-hero-btn,
    .carousel-item.active .jctv-hero-title,
    .carousel-item.active .jctv-hero-desc,
    .carousel-item.active .jctv-hero-btn {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

.jctv-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(7, 21, 54, 0.1) 0%, rgba(7, 21, 54, 0.38) 55%, rgba(7, 21, 54, 0.7) 100%);
    transition: opacity 1.2s ease;
}

.jctv-hero-content {
    position: relative;
    z-index: 2;
    width: min(1100px, 92%);
    padding: 0 0 72px;
    text-align: center;
    color: #fff;
}

.jctv-hero-title {
    font-family: 'Noto Serif KR', serif;
    font-size: clamp(1.35rem, 2.8vw, 2.35rem);
    font-weight: 700;
    line-height: 1.35;
    margin: 0 0 12px;
    text-shadow: 0 2px 16px rgba(0, 0, 0, 0.35);
}

.jctv-hero-desc {
    margin: 0 0 18px;
    font-size: 1.05rem;
    color: rgba(255, 255, 255, 0.9);
}

/* 히어로: 어두운 배경 위 1차 CTA (흰 채움) */
.jctv-hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 12px 22px;
    border: 1px solid #fff;
    background: #fff;
    color: var(--jctv-navy) !important;
    text-decoration: none !important;
    border-radius: 6px;
    font-weight: 800;
    font-size: 0.95rem;
    transition: opacity 1.1s ease, transform 1.1s ease, background 0.2s ease, color 0.2s ease;
}

.jctv-hero-btn:hover {
    background: rgba(255, 255, 255, 0.9);
    color: var(--jctv-navy-deep) !important;
}

.jctv-hero .carousel-control-prev,
.jctv-hero .carousel-control-next {
    width: 64px;
    opacity: 1;
}

.jctv-hero-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
    font-size: 1.25rem;
    backdrop-filter: blur(2px);
}

.jctv-hero .carousel-indicators {
    margin-bottom: 22px;
}

.jctv-hero .carousel-indicators [data-bs-target] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 0;
    background-color: rgba(255, 255, 255, 0.45);
    opacity: 1;
}

.jctv-hero .carousel-indicators .active {
    background-color: var(--jctv-dot);
}

.jctv-main-contents {
    padding-top: 0;
}

/* ---------- 히어로 아래 교회 라이브 ---------- */
.jctv-live-section {
    padding: 28px 0 8px;
    background: #0f3d32;
    color: #fff;
}
.jctv-live-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}
.jctv-live-title-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
}
.jctv-live-badge {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 8px;
    border-radius: 4px;
    background: #e11d48;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
}
.jctv-live-title {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.03em;
}
.jctv-live-edit {
    color: #fff !important;
    border-color: rgba(255,255,255,.35);
}
.jctv-live-edit:hover {
    background: rgba(255,255,255,.12);
}
.jctv-live-stage {
    display: grid;
    grid-template-columns: minmax(220px, 0.9fr) minmax(0, 1.6fr);
    gap: 22px;
    align-items: center;
}
.jctv-live-meta {
    margin: 0 0 8px;
    color: rgba(255,255,255,.78);
    font-weight: 700;
}
.jctv-live-subject {
    margin: 0 0 10px;
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.35;
    color: #fff;
}
.jctv-live-help {
    margin: 0;
    color: rgba(255,255,255,.62);
    font-size: 0.88rem;
}
.jctv-live-player {
    position: relative;
    aspect-ratio: 16 / 9;
    background: #000;
    border-radius: 12px;
    overflow: hidden;
}
.jctv-live-player iframe,
.jctv-live-player .jctv-live-video,
.jctv-live-more-player iframe,
.jctv-live-more-player .jctv-live-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    background: #000;
}
.jctv-live-more {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 16px;
}
.jctv-live-more-player {
    position: relative;
    aspect-ratio: 16 / 9;
    background: #000;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 8px;
}
.jctv-live-more-meta {
    margin: 0 0 4px;
    color: rgba(255,255,255,.7);
    font-size: 0.85rem;
    font-weight: 700;
}
.jctv-live-more-title {
    display: block;
    color: #fff;
    font-size: 1rem;
}
.jctv-live-empty {
    padding: 22px 18px;
    border: 1px dashed rgba(255,255,255,.28);
    border-radius: 10px;
    color: rgba(255,255,255,.82);
    font-weight: 600;
}
.jctv-live-empty a {
    color: #e8b84a !important;
    font-weight: 800;
}
@media (max-width: 768px) {
    .jctv-live-stage,
    .jctv-live-more {
        grid-template-columns: 1fr;
    }
    .jctv-live-subject {
        font-size: 1.25rem;
    }
}

/* ---------- 디지털콘텐츠 ---------- */
.jctv-digital-section {
    padding: 42px 0 28px;
    background: var(--jctv-bg-media);
}

.jctv-digital-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}

.jctv-digital-title {
    margin: 0;
    font-size: 1.55rem;
    font-weight: 800;
    color: #0f3d32;
    letter-spacing: -0.03em;
}

.jctv-digital-sub {
    margin-left: 10px;
    color: #667085;
    font-size: 0.92rem;
    font-weight: 600;
}

.jctv-digital-tools {
    display: flex;
    gap: 10px;
    align-items: center;
}

.jctv-digital-edit,
.jctv-digital-more::after {
    content: "›";
    font-size: 1.05em;
    line-height: 1;
    margin-top: -1px;
}

.jctv-digital-cats-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    align-items: center;
    margin-bottom: 10px;
}

.jctv-digital-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 0;
}

.jctv-digital-slot-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: center;
    margin: 0;
    padding: 7px 14px;
    border-radius: 999px;
    border: 0;
    font-family: "Malgun Gothic", "Apple SD Gothic Neo", Pretendard, sans-serif;
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.25;
    text-align: center;
    white-space: nowrap;
    color: #fff;
}

.jctv-digital-slot-label.is-hot {
    background: #7a1f2e;
}

.jctv-digital-slot-label.is-popular {
    background: #0a2463;
}

.jctv-digital-card-slot {
    display: none;
}

.jctv-digital-cats a {
    display: inline-block;
    padding: 7px 13px;
    border-radius: 999px;
    border: 1px solid #d0d5dd;
    color: #344054 !important;
    text-decoration: none !important;
    font-size: 0.875rem;
    font-weight: 600;
}

.jctv-digital-cats a:hover {
    background: #0f3d32;
    border-color: #0f3d32;
    color: #fff !important;
}

.jctv-digital-pick-row,
.jctv-digital-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.jctv-digital-pick-row {
    margin-bottom: 22px;
    align-items: stretch;
}

.jctv-digital-pick-meta {
    grid-column: span 2;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 18px 24px;
    background: #f3f7f5;
    border-radius: 12px;
    box-sizing: border-box;
}

.jctv-digital-pick-label {
    margin: 0 0 10px;
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: #176b52;
}

.jctv-digital-pick-player,
.jctv-digital-pick-fallback {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9;
    width: 100%;
    height: 100%;
    border-radius: 12px;
    overflow: hidden;
    background: #0a2a23;
}

.jctv-digital-pick-player iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.jctv-digital-pick-fallback {
    background-position: center;
    background-size: cover;
}

.jctv-digital-pick-title {
    display: block;
    margin: 0;
    color: #12241e !important;
    text-decoration: none !important;
    font-size: 1.55rem;
    font-weight: 800;
    line-height: 1.45;
    letter-spacing: -0.03em;
    word-break: keep-all;
}

.jctv-digital-pick-intro {
    margin: 12px 0 0;
    color: #4b5c56;
    font-size: 1.02rem;
    line-height: 1.55;
}

.jctv-digital-pick-more {
    display: inline-flex;
    align-items: center;
    margin-top: 18px;
    padding: 8px 14px;
    border-radius: 8px;
    background: #0f3d32;
    color: #fff !important;
    text-decoration: none !important;
    font-size: 0.92rem;
    font-weight: 800;
    width: fit-content;
}

.jctv-digital-card {
    display: flex;
    flex-direction: column;
    text-decoration: none !important;
    color: inherit;
    transition: transform 0.22s ease;
}

.jctv-digital-card:hover {
    transform: translateY(-4px);
}

.jctv-digital-thumb {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(16, 24, 40, 0.08);
    background:
        linear-gradient(135deg, #176b52 0%, #0f3d32 55%, #0a2a23 100%);
    background-position: center;
    background-size: cover;
}

.jctv-digital-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
    opacity: 0.88;
    background: rgba(0, 0, 0, 0.08);
    transition: opacity 0.2s ease, background 0.2s ease;
}

.jctv-digital-card:hover .jctv-digital-play {
    opacity: 1;
    background: rgba(0, 0, 0, 0.2);
}

.jctv-digital-play i {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.42);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
}

.jctv-digital-card-title {
    display: block;
    margin-top: 10px;
    color: #12241e;
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: -0.02em;
}

.jctv-digital-card-intro {
    display: -webkit-box;
    margin-top: 4px;
    color: #667085;
    font-size: 0.86rem;
    line-height: 1.4;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

@media (max-width: 991.98px) {
    .jctv-digital-cats-row {
        grid-template-columns: 1fr;
        margin-bottom: 14px;
    }
    .jctv-digital-slot-label {
        display: none;
    }
    .jctv-digital-card-slot {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        align-self: center;
        margin: 0 0 10px;
        padding: 7px 14px;
        border-radius: 999px;
        font-family: "Malgun Gothic", "Apple SD Gothic Neo", Pretendard, sans-serif;
        font-size: 0.875rem;
        font-weight: 700;
        letter-spacing: -0.02em;
        line-height: 1.25;
        text-align: center;
        white-space: nowrap;
        color: #fff;
    }
    .jctv-digital-card-slot.is-hot {
        background: #7a1f2e;
    }
    .jctv-digital-card-slot.is-popular {
        background: #0a2463;
    }
    .jctv-digital-pick-row,
    .jctv-digital-grid {
        grid-template-columns: 1fr;
    }
    .jctv-digital-pick-meta {
        grid-column: auto;
        padding: 16px 18px;
    }
    .jctv-digital-pick-title {
        font-size: 1.28rem;
    }
}

/* ---------- 메인 광고 (그래픽 마퀴 + 스트립 마퀴) ---------- */
.jctv-ads-section {
    padding: 28px 0 36px;
    background: var(--jctv-bg-ads);
    border-top: 1px solid #d7e6dd;
    border-bottom: 1px solid #d7e6dd;
}

.jctv-ads-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
}

.jctv-ads-eyebrow {
    margin: 0 0 4px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #7a8f86;
}

.jctv-ads-title {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 800;
    color: #0f3d32;
    letter-spacing: -0.03em;
}

/* ads-edit: ghost 위계 (공통 규칙 사용) */

.jctv-ads-fixed {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 12px;
    overflow-x: auto;
    margin-bottom: 12px;
    padding: 2px 0 6px;
    -webkit-overflow-scrolling: touch;
}

/* 첫째 줄 고정: 6개면 가로 균등, 미만이면 같은 크기로 중앙 배치 */
.jctv-ads-fixed.jctv-ads-fixed-graphic {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: stretch;
    gap: 12px;
    overflow: visible;
    width: 100%;
}

.jctv-ads-fixed-graphic .jctv-ad-graphic {
    flex: 0 0 calc((100% - 60px) / 6);
    width: calc((100% - 60px) / 6);
    max-width: calc((100% - 60px) / 6);
    min-width: 0;
    aspect-ratio: 1 / 1.2305;
    border-radius: 16px;
    overflow: hidden;
    isolation: isolate;
}

.jctv-ads-fixed-graphic .jctv-ad-graphic img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: 16px;
    display: block;
}

.jctv-ads-fixed.jctv-ads-fixed-graphic.is-count-6 {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    justify-content: stretch;
}

.jctv-ads-fixed-graphic.is-count-6 .jctv-ad-graphic {
    width: 100%;
    max-width: none;
    flex: none;
}

.jctv-ads-marquee {
    overflow: hidden;
    width: 100%;
    margin-bottom: 12px;
    mask-image: linear-gradient(90deg, transparent 0, #000 2%, #000 98%, transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 2%, #000 98%, transparent 100%);
}

.jctv-ads-marquee-strip {
    margin-bottom: 0;
}

.jctv-ads-marquee-track {
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
    animation: jctv-ads-marquee 42s linear infinite;
}

.jctv-ads-marquee-strip .jctv-ads-marquee-track {
    animation-duration: 72s;
    animation-direction: reverse;
}

.jctv-ads-marquee:hover .jctv-ads-marquee-track {
    animation-play-state: paused;
}

.jctv-ads-marquee-group {
    display: flex;
    flex-wrap: nowrap;
    gap: 12px;
    padding-right: 12px;
    min-width: max-content;
}

.jctv-ads-marquee-strip .jctv-ads-marquee-group {
    gap: 4px;
    padding-right: 4px;
}

@keyframes jctv-ads-marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
    .jctv-ads-marquee-track {
        animation: none;
    }
}

.jctv-ad-graphic {
    position: relative;
    display: block;
    flex: 0 0 clamp(140px, 15vw, 188px);
    width: clamp(140px, 15vw, 188px);
    aspect-ratio: 1 / 1.2305;
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e4ebe7;
    box-shadow: 0 6px 18px rgba(15, 61, 50, 0.06);
    text-decoration: none !important;
}

.jctv-ad-graphic img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    background: #fff;
    border-radius: 16px;
}

.jctv-ad-graphic.is-pdf,
.jctv-ad-graphic.is-empty {
    background:
        linear-gradient(160deg, #123f34 0%, #176b52 55%, #0f3d32 100%);
}

.jctv-ad-graphic-pdf,
.jctv-ad-graphic-empty {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 12px;
    color: #fff;
    text-align: center;
}

.jctv-ad-graphic-pdf i,
.jctv-ad-graphic-empty i {
    font-size: 1.35rem;
    opacity: 0.92;
}

.jctv-ad-graphic-pdf strong {
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.3;
    max-width: 100%;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.jctv-ad-graphic-pdf em,
.jctv-ad-graphic-empty em {
    font-style: normal;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    opacity: 0.75;
    font-weight: 600;
}

.jctv-ad-graphic.is-empty {
    border-style: dashed;
    border-color: rgba(255, 255, 255, 0.25);
    opacity: 0.88;
}

/* 둘째 줄: 가로형 스트립 320×121 (원본 960×364의 1/3) */
.jctv-ad-strip {
    position: relative;
    display: block;
    flex: 0 0 clamp(94px, 10.7vw, 140px);
    width: clamp(94px, 10.7vw, 140px);
    height: auto;
    aspect-ratio: 320 / 121;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #dfe8e3;
    background: #fff;
    text-decoration: none !important;
    box-shadow: 0 2px 10px rgba(15, 61, 50, 0.05);
}

.jctv-ad-strip img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
    background: #fff;
}

.jctv-ad-strip.is-pdf,
.jctv-ad-strip.is-empty {
    background:
        linear-gradient(120deg, #0f3d32 0%, #176b52 100%);
}

.jctv-ad-strip-pdf,
.jctv-ad-strip-fallback {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 12px;
    color: #fff;
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    text-align: center;
}

.jctv-ad-strip-pdf i {
    font-size: 1rem;
    opacity: 0.9;
}

.jctv-ad-strip.is-empty {
    border-style: dashed;
    opacity: 0.9;
}

@media (max-width: 575.98px) {
    .jctv-ads-section {
        padding: 22px 0 32px;
    }
    .jctv-ads-marquee-group {
        gap: 8px;
        padding-right: 8px;
    }
    .jctv-ads-marquee-strip .jctv-ads-marquee-group {
        gap: 3px;
        padding-right: 3px;
    }
    .jctv-ads-section .jctv-ads-fixed.jctv-ads-fixed-graphic,
    .jctv-ads-section .jctv-ads-fixed.jctv-ads-fixed-graphic.is-count-6 {
        display: flex;
        flex-wrap: nowrap;
        justify-content: flex-start;
        align-items: stretch;
        gap: 8px;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 2px 4px 10px;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
        touch-action: pan-x;
        scroll-snap-type: x mandatory;
        scrollbar-width: thin;
    }
    .jctv-ads-fixed-graphic .jctv-ad-graphic,
    .jctv-ads-fixed-graphic.is-count-6 .jctv-ad-graphic {
        flex: 0 0 42vw;
        width: 42vw;
        max-width: 168px;
        min-width: 132px;
        aspect-ratio: 1 / 1.2305;
        border-radius: 16px;
        scroll-snap-align: start;
        scroll-snap-stop: normal;
    }
    .jctv-ad-graphic {
        flex-basis: 148px;
        width: 148px;
        aspect-ratio: 1 / 1.2305;
    }
    .jctv-ad-strip {
        flex-basis: min(92vw, 140px);
        width: min(92vw, 140px);
        height: auto;
        aspect-ratio: 320 / 121;
    }
}

/* ---------- 스크랩 광고 포스터 페이지 ---------- */
.jctv-ad-poster {
    max-width: 980px;
    margin: 24px auto 72px;
    padding: 0 16px 40px;
}

.jctv-ad-poster-kicker {
    margin: 0 0 8px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #7a8f86;
    text-align: center;
}

.jctv-ad-poster-title {
    margin: 0 0 22px;
    font-size: clamp(1.6rem, 3.5vw, 2.2rem);
    font-weight: 800;
    color: #0f3d32;
    letter-spacing: -0.04em;
    text-align: center;
}

.jctv-ad-poster-frame {
    background: #1a2420;
    border-radius: 14px;
    padding: 22px 18px;
    box-shadow: 0 18px 40px rgba(15, 61, 50, 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
}

.jctv-ad-poster-frame img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 88vh;
    height: auto;
    margin: 0 auto;
    background: #fff;
    border-radius: 4px;
}

.jctv-ad-poster-pdf {
    width: 100%;
    min-height: 78vh;
    border: 0;
    background: #fff;
    border-radius: 4px;
}

.jctv-ad-poster-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-top: 22px;
}

.jctv-ad-poster-back,
.jctv-ad-poster-home {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 18px;
    border-radius: 8px;
    font-weight: 700;
    text-decoration: none !important;
}

.jctv-ad-poster-back {
    background: #0f3d32;
    color: #fff !important;
}

.jctv-ad-poster-back:hover {
    background: #176b52;
}

.jctv-ad-poster-home {
    background: #fff;
    color: #0f3d32 !important;
    border: 1px solid #0f3d32;
}

/* ---------- 메인 설교방송 (4열 × 3줄) ---------- */
.jctv-sermon-section {
    padding: 40px 0 36px;
    background: var(--jctv-bg-media);
    border-top: 0;
}

.jctv-sermon-sec-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
}

.jctv-sermon-sec-title {
    margin: 0;
    font-size: 1.55rem;
    font-weight: 800;
    color: #0f3d32;
    letter-spacing: -0.03em;
}

.jctv-sermon-sec-more::after,
.jctv-mainnews-more::after,
.jctv-opinion-more::after {
    content: "›";
    font-size: 1.05em;
    line-height: 1;
    margin-top: -1px;
}

.jctv-sermon-sec-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px 16px;
}

.jctv-sermon-card {
    display: block;
    text-decoration: none !important;
    color: inherit;
    transition: transform 0.22s ease;
}

.jctv-sermon-card:hover {
    transform: translateY(-4px);
}

.jctv-sermon-section .jctv-sermon-card-thumb {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: 10px;
    overflow: hidden;
    background:
        linear-gradient(145deg, #176b52 0%, #0f3d32 60%, #0a2a23 100%);
    background-position: center;
    background-size: cover;
    box-shadow: 0 8px 22px rgba(15, 61, 50, 0.1);
}

.jctv-sermon-section .jctv-sermon-card-file,
.jctv-sermon-grid .jctv-sermon-card-file,
.jctv-sermon .jctv-sermon-card-file {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    pointer-events: none;
    background: #0a2a23;
    transition: transform 0.35s ease-out;
    will-change: transform;
}

/* 설교·플랫폼 영상 카드 — 마우스 호버 확대·패닝 (jctv-card-hover.js) */
.jctv-is-video-hover {
    overflow: hidden;
}

.jctv-video-card-media {
    position: absolute;
    inset: 0;
    display: block;
    background-position: 50% 50%;
    background-size: cover;
    background-repeat: no-repeat;
    pointer-events: none;
    transition: background-size 0.35s ease-out, background-position 0.12s ease-out;
    will-change: background-position, background-size;
}

.jctv-sermon-grid .jctv-sermon-card-thumb img,
.jctv-sermon .jctv-sermon-card-thumb img,
.jctv-sermon-section .jctv-sermon-card-thumb img,
.jctv-opinion-media img {
    transition: transform 0.35s ease-out;
    will-change: transform;
}

.jctv-is-video-hover.is-hover .jctv-sermon-card-play,
.jctv-is-video-hover.is-hover .jctv-sermon-play {
    opacity: 1;
    background: rgba(0, 0, 0, 0.2);
}

.jctv-sermon-card-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.12);
    opacity: 0;
    transition: opacity 0.2s ease;
}

.jctv-sermon-card:hover .jctv-sermon-card-play {
    opacity: 1;
}

.jctv-sermon-card-play i {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.48);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
}

.jctv-sermon-card-body {
    padding: 10px 2px 0;
}

.jctv-sermon-card-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0 0 6px;
    font-size: 0.98rem;
    font-weight: 800;
    color: #12241e;
    letter-spacing: -0.02em;
    line-height: 1.35;
    word-break: keep-all;
}

.jctv-sermon-card-meta {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    color: #667085;
    line-height: 1.4;
    word-break: keep-all;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 991.98px) {
    .jctv-sermon-sec-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px 12px;
    }
}

@media (max-width: 575.98px) {
    .jctv-sermon-section {
        padding: 28px 0 20px;
    }
    .jctv-sermon-sec-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px 10px;
    }
    .jctv-sermon-card-title {
        font-size: 0.9rem;
    }
    .jctv-sermon-card-meta {
        font-size: 0.74rem;
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }
}

/* ---------- 메인 뉴스 3단 + 필터 + 많이 본 ---------- */
.jctv-mainnews-section {
    padding: 40px 0 44px;
    background: var(--jctv-bg-news);
    border-top: 1px solid #dce8e2;
}

.jctv-mainnews-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.jctv-popular-head,
.jctv-opinion-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 22px;
}

.jctv-mainnews-title,
.jctv-popular-title,
.jctv-opinion-title {
    margin: 0;
    font-size: 1.55rem;
    font-weight: 800;
    color: #0f3d32;
    letter-spacing: -0.03em;
}

.jctv-news-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 28px;
    padding: 0 0 16px;
    border-bottom: 1px solid #dce8e2;
}

.jctv-news-filter {
    display: inline-flex;
    align-items: center;
    padding: 7px 14px;
    border: 1px solid #c5d6cd;
    border-radius: 999px;
    background: #fff;
    color: #2a4a40 !important;
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-decoration: none !important;
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.jctv-news-filter:hover {
    border-color: #0f3d32;
    color: #0f3d32 !important;
}

.jctv-news-filter.is-active {
    background: #0f3d32;
    border-color: #0f3d32;
    color: #fff !important;
}

.jctv-news-tri {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px 32px;
    align-items: start;
}

.jctv-news-col {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 26px;
}

.jctv-news-col-block {
    min-width: 0;
}

.jctv-news-col-head {
    margin-bottom: 12px;
}

.jctv-news-col-label {
    display: inline-block;
    padding: 5px 14px;
    border: 1px solid #0f3d32;
    border-radius: 999px;
    color: #0f3d32 !important;
    font-size: 0.88rem;
    font-weight: 800;
    text-decoration: none !important;
    letter-spacing: -0.02em;
}

.jctv-news-col-label:hover {
    background: #0f3d32;
    color: #fff !important;
}

.jctv-news-feature {
    margin-bottom: 10px;
    transition: transform 0.22s ease;
}

.jctv-news-feature:has(.jctv-news-feature-media:not(.is-placeholder):hover),
.jctv-news-feature:has(.jctv-news-feature-media:not(.is-placeholder).is-hover) {
    transform: translateY(-4px);
}

.jctv-news-feature-media {
    display: block;
    position: relative;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    aspect-ratio: 16 / 9;
    border-radius: 8px;
    background: linear-gradient(145deg, #d8e6df 0%, #b7cfc4 100%) center center / cover no-repeat;
    background-position: center center;
    background-size: cover;
    overflow: hidden;
    text-decoration: none !important;
}

.jctv-news-feature.is-video .jctv-news-feature-media .jctv-digital-play {
    opacity: 0.88;
    background: rgba(0, 0, 0, 0.08);
    transition: opacity 0.2s ease, background 0.2s ease;
}

.jctv-news-feature.is-video .jctv-news-feature-media.is-hover .jctv-digital-play,
.jctv-news-feature.is-video .jctv-news-feature-media:hover .jctv-digital-play {
    opacity: 1;
    background: rgba(0, 0, 0, 0.2);
}

.jctv-news-feature-media.is-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, #e8f0ec 0%, #c5d9cf 100%);
}

.jctv-news-feature-ph {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    color: #5a7268;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    pointer-events: none;
}

.jctv-news-feature-ph i {
    font-size: 1.75rem;
    color: #0f3d32;
    opacity: 0.72;
}

.jctv-news-thumb.is-video {
    position: relative;
}

.jctv-news-thumb.is-video .jctv-digital-play i {
    width: 46px;
    height: 46px;
    font-size: 0.95rem;
}

.jctv-news-feature-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 10px 0 0;
    color: #12241e !important;
    font-size: 1.16rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.45;
    text-decoration: none !important;
    word-break: keep-all;
    transition: color 0.18s ease;
}

.jctv-news-feature-title:hover {
    color: #176b52 !important;
}

.jctv-news-title-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.jctv-news-title-list li {
    border-top: 1px solid #e4ebe7;
}

.jctv-news-title-list li:first-child {
    border-top: 0;
}

.jctv-news-title-list a {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    padding: 11px 0;
    color: #1d2f29 !important;
    font-size: 1.06rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.45;
    text-decoration: none !important;
    word-break: keep-all;
    transition: color 0.18s ease;
}

.jctv-news-title-list a:hover {
    color: #176b52 !important;
}

/* 레거시 핫/블록/아이템 (다른 페이지 호환용 유지) */
.jctv-mainnews-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 36px;
    align-items: start;
}

.jctv-news-hot {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    margin-bottom: 28px;
}

.jctv-news-hot-card {
    display: grid;
    grid-template-columns: minmax(140px, 46%) minmax(0, 1fr);
    gap: 14px;
    align-items: stretch;
    text-decoration: none !important;
    color: inherit;
    padding: 0;
    transition: opacity 0.2s ease;
}

.jctv-news-hot-card:hover {
    opacity: 0.9;
}

.jctv-news-hot-card:hover .jctv-news-hot-title {
    color: #176b52;
}

.jctv-news-hot-media {
    min-height: 148px;
    border-radius: 8px;
    background: linear-gradient(145deg, #d8e6df 0%, #b7cfc4 100%) center / cover no-repeat;
}

.jctv-news-hot-media.is-empty {
    background: linear-gradient(145deg, #e8f0ec 0%, #c5d9cf 100%);
}

.jctv-news-hot-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 4px 0;
}

.jctv-news-hot-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0 0 8px;
    font-size: 1.18rem;
    font-weight: 800;
    color: #12241e;
    letter-spacing: -0.03em;
    line-height: 1.35;
    word-break: keep-all;
    transition: color 0.2s ease;
}

.jctv-news-hot-excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: #5c6b66;
    font-size: 0.9rem;
    font-weight: 500;
    line-height: 1.55;
    word-break: keep-all;
}

.jctv-news-blocks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 32px;
}

.jctv-news-block-head {
    margin-bottom: 12px;
}

.jctv-news-block-label {
    display: inline-block;
    padding: 5px 14px;
    border: 1px solid #0f3d32;
    border-radius: 999px;
    color: #0f3d32 !important;
    font-size: 0.88rem;
    font-weight: 800;
    text-decoration: none !important;
    letter-spacing: -0.02em;
}

.jctv-news-block-label:hover {
    background: #0f3d32;
    color: #fff !important;
}

.jctv-news-block-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.jctv-mainnews-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 28px;
    row-gap: 20px;
}

.jctv-mainnews-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 132px;
    gap: 12px;
    align-items: start;
    text-decoration: none !important;
    color: inherit;
    padding-bottom: 16px;
    border-bottom: 1px solid #eef2ef;
    transition: opacity 0.2s ease;
}

.jctv-mainnews-item:hover {
    opacity: 0.88;
}

.jctv-mainnews-item:hover .jctv-mainnews-item-title {
    color: #176b52;
}

.jctv-mainnews-badge {
    display: inline-block;
    margin-bottom: 8px;
    padding: 3px 9px;
    border-radius: 4px;
    background: #0f3d32;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.4;
}

.jctv-mainnews-item-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0 0 6px;
    font-size: 1.02rem;
    font-weight: 800;
    color: #12241e;
    letter-spacing: -0.02em;
    line-height: 1.35;
    word-break: keep-all;
    transition: color 0.2s ease;
}

.jctv-mainnews-excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: #667085;
    font-size: 0.84rem;
    font-weight: 500;
    line-height: 1.45;
    word-break: keep-all;
}

.jctv-mainnews-media {
    width: 132px;
    aspect-ratio: 16 / 10;
    border-radius: 6px;
    background:
        linear-gradient(145deg, #d8e6df 0%, #b7cfc4 100%) center / cover no-repeat;
    flex-shrink: 0;
}

.jctv-mainnews-media.is-empty {
    background:
        linear-gradient(145deg, #e8f0ec 0%, #c5d9cf 100%);
}

.jctv-popular {
    padding: 18px 16px 14px;
    border: 1px solid #d7e6dd;
    border-radius: 10px;
    background: #ffffff;
}

.jctv-popular-below {
    margin-top: 32px;
}

.jctv-popular-below .jctv-popular-head {
    margin-bottom: 8px;
}

.jctv-popular-below .jctv-popular-list {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 4px 12px;
}

.jctv-popular-below .jctv-popular-list li {
    border-top: 0;
    border-left: 1px solid #e4ebe7;
    padding: 0 0 0 12px;
    min-width: 0;
}

/* 5열 × 2줄(1~10위): 각 줄 첫 칸은 좌측선 제거 */
.jctv-popular-below .jctv-popular-list li:nth-child(5n + 1) {
    border-left: 0;
    padding-left: 0;
}

.jctv-popular-below .jctv-popular-list li:nth-child(n + 6) {
    border-top: 1px solid #e4ebe7;
}

.jctv-popular-head {
    margin-bottom: 12px;
}

.jctv-popular-title {
    font-size: 1.15rem;
}

.jctv-popular-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.jctv-popular-list li {
    border-top: 1px solid #e4ebe7;
}

.jctv-popular-list li:first-child {
    border-top: 0;
}

.jctv-popular-item {
    display: grid;
    grid-template-columns: 28px 72px minmax(0, 1fr);
    gap: 8px;
    align-items: center;
    padding: 11px 0;
    text-decoration: none !important;
    color: inherit;
}

.jctv-popular-item:hover .jctv-popular-item-title {
    color: #176b52;
}

.jctv-popular-rank {
    font-size: 0.95rem;
    font-weight: 800;
    color: #0f3d32;
    letter-spacing: -0.02em;
    line-height: 1.3;
}

.jctv-popular-thumb {
    display: block;
    width: 72px;
    height: 54px;
    border-radius: 4px;
    overflow: hidden;
    background: linear-gradient(145deg, #e8f0ec 0%, #c5d9cf 100%);
    flex-shrink: 0;
}

.jctv-popular-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

.jctv-popular-item.is-no-thumb {
    grid-template-columns: 28px minmax(0, 1fr);
}

.jctv-popular-badge {
    display: inline-block;
    margin-bottom: 4px;
    color: #667085;
    font-size: 0.72rem;
    font-weight: 700;
}

.jctv-popular-item-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 0.9rem;
    font-weight: 700;
    color: #12241e;
    letter-spacing: -0.02em;
    line-height: 1.35;
    word-break: keep-all;
    transition: color 0.2s ease;
}

/* ---------- 메인 공고 ---------- */
.jctv-notices-section {
    padding: 28px 0 36px;
    background: #f7faf8;
    border-top: 1px solid #e7eee9;
}

.jctv-notices-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.jctv-notices-title {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 800;
    color: #0f3d32;
    letter-spacing: -0.03em;
}

.jctv-notices-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    background: #fff;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
    overflow: hidden;
}

.jctv-notices-list li {
    border-bottom: 1px solid #eef2f0;
    border-right: 1px solid #eef2f0;
}

.jctv-notices-list li:nth-child(2n) {
    border-right: 0;
}

.jctv-notices-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 14px;
    text-decoration: none !important;
    color: inherit;
    min-height: 46px;
    width: 100%;
    box-sizing: border-box;
}

.jctv-notices-cate {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 0.72rem;
    font-weight: 800;
    background: #e8f5ef;
    color: #0f3d32;
}

.jctv-notices-cate-obit {
    background: #f2f4f7;
    color: #344054;
}

.jctv-notices-cate-wed {
    background: #fdf2f8;
    color: #9d174d;
}

.jctv-notices-cate-call {
    background: #eef4ff;
    color: #175cd3;
}

.jctv-notices-item-title {
    flex: 1 1 auto;
    font-size: 0.92rem;
    font-weight: 700;
    color: #12241e !important;
    text-decoration: none !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jctv-notices-list time {
    flex: 0 0 auto;
    font-size: 0.78rem;
    color: #98a2b3;
}

.jctv-notices-imgbtn {
    flex: 0 0 auto;
    border: 1px solid #d0d5dd;
    background: #fff;
    color: #344054;
    border-radius: 4px;
    padding: 3px 8px;
    font-size: 0.72rem;
    font-weight: 800;
    cursor: pointer;
}

.jctv-notice-viewer {
    position: fixed;
    inset: 0;
    z-index: 12000;
    background: rgba(15, 23, 42, 0.82);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.jctv-notice-viewer[hidden] {
    display: none !important;
}

.jctv-notice-viewer img {
    max-width: min(920px, 100%);
    max-height: 88vh;
    object-fit: contain;
    background: #fff;
    border-radius: 8px;
}

.jctv-notice-viewer-close {
    position: absolute;
    top: 16px;
    right: 20px;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: #fff;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
}

.jctv-notices-empty {
    margin: 0;
    padding: 18px;
    background: #fff;
    border: 1px dashed #cbd5e1;
    border-radius: 10px;
    color: #667085;
}

@media (max-width: 767.98px) {
    .jctv-notices-list {
        grid-template-columns: 1fr;
    }
    .jctv-notices-list li,
    .jctv-notices-list li:nth-child(2n) {
        border-right: 0;
    }
}

/* ---------- 메인 오피니언 (3열 · 배지 위 · 인물+글 가로) ---------- */
.jctv-opinion-section {
    padding: 40px 0 52px;
    background: var(--jctv-bg-opinion);
    border-top: 1px solid #e7eee9;
}

.jctv-opinion-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px 28px;
}

.jctv-opinion-card {
    display: flex;
    flex-direction: column;
    text-decoration: none !important;
    color: inherit;
    transition: transform 0.22s ease;
}

.jctv-opinion-card:hover {
    transform: translateY(-4px);
}

.jctv-opinion-card:hover .jctv-opinion-card-title {
    color: #176b52;
}

.jctv-opinion-badge {
    display: inline-block;
    align-self: flex-start;
    margin-bottom: 10px;
    padding: 3px 9px;
    border-radius: 4px;
    background: #0f3d32;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
}

.jctv-opinion-body {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
}

.jctv-opinion-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
    padding-top: 2px;
}

.jctv-opinion-card-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0 0 6px;
    font-size: 1.02rem;
    font-weight: 800;
    color: #12241e;
    letter-spacing: -0.03em;
    line-height: 1.35;
    word-break: keep-all;
    transition: color 0.2s ease;
}

.jctv-opinion-meta {
    display: block;
    margin-bottom: 4px;
    color: #667085;
    font-size: 0.78rem;
    font-weight: 600;
}

.jctv-opinion-excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    color: #475467;
    font-size: 0.84rem;
    font-weight: 500;
    line-height: 1.45;
    word-break: keep-all;
}

.jctv-opinion-media {
    position: relative;
    flex: 0 0 112px;
    width: 112px;
    height: 140px;
    border-radius: 8px;
    background-color: #d8e6df;
    overflow: hidden;
}

.jctv-opinion-media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 18%;
    display: block;
    transition: transform 0.35s ease-out;
    will-change: transform;
}

.jctv-opinion-media.is-empty {
    display: none !important;
}

.jctv-opinion-body.is-no-media {
    gap: 0;
}

@media (max-width: 991.98px) {
    .jctv-mainnews-layout {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .jctv-news-tri {
        display: flex;
        flex-direction: column;
        gap: 28px;
        align-items: stretch;
    }
    /* 모바일 출력 순서: 교계 → 교회 → 취재현장 → 종합 → 피플 → 공연전시 → 지역뉴스 */
    .jctv-news-col {
        display: contents;
    }
    .jctv-news-col-block {
        width: 100%;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }
    .jctv-news-feature,
    .jctv-news-feature-media {
        width: 100%;
        margin-left: auto;
        margin-right: auto;
    }
    .jctv-news-key-christian_community { order: 1; }
    .jctv-news-key-church { order: 2; }
    .jctv-news-key-videos { order: 3; }
    .jctv-news-key-general { order: 4; }
    .jctv-news-key-people { order: 5; }
    .jctv-news-key-performances { order: 6; }
    .jctv-news-key-local_news { order: 7; }
    .jctv-news-key-events { order: 8; }
    .jctv-popular-below .jctv-popular-list {
        grid-template-columns: 1fr 1fr;
        gap: 0 16px;
    }
    .jctv-popular-below .jctv-popular-list li {
        border-left: 0;
        border-top: 1px solid #e4ebe7;
        padding-left: 0;
    }
    .jctv-popular-below .jctv-popular-list li:nth-child(-n+2) {
        border-top: 0;
    }
    .jctv-popular-item {
        grid-template-columns: 24px 64px minmax(0, 1fr);
        gap: 8px;
    }
    .jctv-popular-item.is-no-thumb {
        grid-template-columns: 24px minmax(0, 1fr);
    }
    .jctv-popular-thumb {
        width: 64px;
        height: 48px;
    }
    .jctv-news-hot {
        grid-template-columns: 1fr;
        gap: 18px;
    }
    .jctv-news-blocks,
    .jctv-mainnews-grid {
        grid-template-columns: 1fr;
        row-gap: 20px;
    }
    .jctv-opinion-grid {
        grid-template-columns: 1fr;
        gap: 22px;
    }
}

@media (max-width: 575.98px) {
    .jctv-mainnews-section {
        padding: 28px 0 32px;
    }
    .jctv-news-filters {
        gap: 6px;
        margin-bottom: 20px;
    }
    .jctv-news-filter {
        padding: 6px 11px;
        font-size: 0.8rem;
    }
    .jctv-popular-below .jctv-popular-list {
        grid-template-columns: 1fr;
    }
    .jctv-popular-below .jctv-popular-list li:nth-child(-n+2) {
        border-top: 1px solid #e4ebe7;
    }
    .jctv-popular-below .jctv-popular-list li:first-child {
        border-top: 0;
    }
    .jctv-popular-item {
        grid-template-columns: 22px 56px minmax(0, 1fr);
        gap: 8px;
    }
    .jctv-popular-item.is-no-thumb {
        grid-template-columns: 22px minmax(0, 1fr);
    }
    .jctv-popular-thumb {
        width: 56px;
        height: 42px;
    }
    .jctv-news-hot-card {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .jctv-news-hot-media {
        min-height: 160px;
        aspect-ratio: 16 / 10;
    }
    .jctv-news-hot-title {
        font-size: 1.05rem;
    }
    .jctv-news-hot-excerpt {
        -webkit-line-clamp: 2;
    }
    .jctv-mainnews-item {
        grid-template-columns: minmax(0, 1fr) 104px;
        gap: 10px;
    }
    .jctv-mainnews-media {
        width: 104px;
    }
    .jctv-opinion-section {
        padding: 0 0 36px;
    }
}

/* ---------- 디지털콘텐츠 분류 페이지 (시안) ---------- */
.jctv-dpage {
    max-width: 1200px;
    margin: 0 auto 56px;
    padding: 18px 16px 40px;
}

.jctv-dpage-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin: 8px 0 14px;
}

.jctv-dpage-title {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 800;
    color: #0f3d32;
    letter-spacing: -0.03em;
}

.jctv-dpage-admin {
    color: #0f3d32 !important;
    font-weight: 700;
    text-decoration: none !important;
    font-size: 0.92rem;
}

.jctv-dpage-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 22px;
    padding-bottom: 14px;
    border-bottom: 1px solid #e4e7ec;
}

.jctv-dpage-cats a {
    display: inline-block;
    padding: 7px 14px;
    border-radius: 999px;
    border: 1px solid #d0d5dd;
    color: #344054 !important;
    text-decoration: none !important;
    font-size: 0.9rem;
    font-weight: 600;
}

.jctv-dpage-cats a.on,
.jctv-dpage-cats a:hover {
    background: #0f3d32;
    border-color: #0f3d32;
    color: #fff !important;
}

.jctv-dpage-featured {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-bottom: 36px;
}

.jctv-dfeat {
    display: block;
    text-decoration: none !important;
    color: inherit;
}

.jctv-dfeat-thumb {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9;
    border-radius: 4px;
    overflow: hidden;
    background:
        linear-gradient(135deg, #176b52 0%, #0f3d32 55%, #0a2a23 100%) center / cover no-repeat;
}

.jctv-dfeat-play,
.jctv-ditem-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.jctv-dfeat-play i,
.jctv-ditem-play i {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.42);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}

.jctv-dfeat-title {
    display: block;
    margin-top: 10px;
    font-size: 0.98rem;
    font-weight: 700;
    color: #1d2939;
    line-height: 1.4;
    letter-spacing: -0.02em;
}

.jctv-dfeat-empty {
    min-height: 1px;
}

.jctv-dpage-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 28px;
    align-items: start;
}

.jctv-dpage-sec-title {
    margin: 0 0 16px;
    font-size: 1.2rem;
    font-weight: 800;
    color: #0f3d32;
    letter-spacing: -0.02em;
}

.jctv-dpage-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px 14px;
}

.jctv-ditem {
    display: block;
    text-decoration: none !important;
    color: inherit;
}

.jctv-ditem-thumb {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9;
    border-radius: 4px;
    overflow: hidden;
    background:
        linear-gradient(135deg, #176b52 0%, #0f3d32 55%, #0a2a23 100%) center / cover no-repeat;
}

.jctv-ditem-play i {
    width: 40px;
    height: 40px;
    font-size: 0.9rem;
}

.jctv-ditem-title {
    display: block;
    margin-top: 8px;
    font-size: 0.9rem;
    font-weight: 600;
    color: #344054;
    line-height: 1.4;
    letter-spacing: -0.02em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.jctv-dpage-side {
    position: sticky;
    top: 90px;
}

.jctv-dside-brand {
    background: #0f3d32;
    color: #fff;
    text-align: center;
    font-weight: 700;
    font-size: 0.92rem;
    letter-spacing: -0.02em;
    padding: 14px 12px;
    margin-bottom: 18px;
}

.jctv-drank {
    list-style: none;
    margin: 0;
    padding: 0;
}

.jctv-drank li {
    border-bottom: 1px solid #eef0f4;
}

.jctv-drank li:last-child {
    border-bottom: 0;
}

.jctv-drank a {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) 64px;
    gap: 10px;
    align-items: center;
    padding: 12px 0;
    text-decoration: none !important;
    color: inherit;
}

.jctv-drank-num {
    font-size: 1.35rem;
    font-weight: 800;
    color: #0f3d32;
    line-height: 1;
}

.jctv-drank-title {
    font-size: 0.88rem;
    font-weight: 600;
    color: #344054;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.jctv-drank-thumb {
    width: 80px;
    height: 45px;
    aspect-ratio: 16 / 9;
    border-radius: 3px;
    background: #d0d5dd center / cover no-repeat;
    flex-shrink: 0;
}

.jctv-dpage-empty {
    padding: 36px 16px;
    text-align: center;
    color: #667085;
    border: 1px dashed #d0d5dd;
    border-radius: 8px;
}

.jctv-dpage-empty.soft {
    border-style: solid;
    border-color: #eef0f4;
    background: #fafbfc;
    padding: 28px 16px;
    font-size: 0.92rem;
}

@media (max-width: 991.98px) {
    .jctv-dpage-body {
        grid-template-columns: 1fr;
    }

    .jctv-dpage-side {
        position: static;
        order: 2;
    }

    .jctv-dpage-featured,
    .jctv-dpage-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .jctv-dfeat-empty {
        display: none;
    }
}

@media (max-width: 575.98px) {
    .jctv-dpage-featured,
    .jctv-dpage-grid {
        grid-template-columns: 1fr;
    }

    .jctv-dpage-title {
        font-size: 1.45rem;
    }
}

@media (max-width: 991.98px) {
    /* 태블릿: 2:1 — 2560×720 원본은 좌우를 잘라 중앙만 보여 줌 */
    .jctv-hero .carousel,
    .jctv-hero .carousel-inner,
    .jctv-hero .carousel-item {
        height: auto;
        min-height: 240px;
        aspect-ratio: 2 / 1;
    }
}

@media (max-width: 767.98px) {
    /* 모바일: 16:9. 원본(2560×720)은 그대로 두고, 화면만 세로를 키워 중앙을 확대 */
    .jctv-hero .carousel,
    .jctv-hero .carousel-inner,
    .jctv-hero .carousel-item {
        height: auto;
        min-height: 220px;
        aspect-ratio: 16 / 9;
    }

    .jctv-hero-content {
        width: min(1100px, 88%);
        padding-bottom: 28px;
    }

    .jctv-hero-title {
        font-size: 1.12rem;
        margin-bottom: 6px;
    }

    .jctv-hero-desc {
        margin-bottom: 10px;
        font-size: 0.86rem;
        line-height: 1.4;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .jctv-hero-btn {
        min-height: 34px;
        padding: 6px 14px;
        font-size: 0.78rem;
        font-weight: 700;
        border-radius: 4px;
    }

    .jctv-hero .carousel-control-prev,
    .jctv-hero .carousel-control-next {
        width: 44px;
    }

    .jctv-hero-arrow {
        width: 32px;
        height: 32px;
        font-size: 0.9rem;
    }

    .jctv-hero .carousel-indicators {
        margin-bottom: 10px;
    }

    .jctv-search-form {
        display: none;
    }
}

/* ---------- 실시간뉴스 티커 (히어로 아래) ---------- */
.jctv-ticker {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    background: linear-gradient(90deg, #0a2a23 0%, #0f3d32 42%, #176b52 100%);
    color: #fff;
    border-top: 1px solid rgba(232, 184, 74, 0.28);
}

.jctv-ticker-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 16px;
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 14px;
}

.jctv-ticker-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.jctv-ticker-time {
    font-size: 0.82rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: rgba(255, 255, 255, 0.78);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.jctv-ticker-label {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: 4px;
    background: #e8b84a;
    color: #0a2a23;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    white-space: nowrap;
}

.jctv-ticker-viewport {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    height: 46px;
    overflow: hidden;
}

.jctv-ticker-item {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    color: #fff !important;
    text-decoration: none !important;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    opacity: 0;
    transform: translateY(8px);
    pointer-events: none;
    transition: opacity 0.35s ease, transform 0.35s ease;
}

.jctv-ticker-item.is-active {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.jctv-ticker-item:hover {
    color: #e8b84a !important;
}

.jctv-ticker-nav {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-shrink: 0;
}

.jctv-ticker-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: rgba(255, 255, 255, 0.88);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.jctv-ticker-btn:hover,
.jctv-ticker-btn:focus-visible {
    background: rgba(255, 255, 255, 0.12);
    color: #e8b84a;
    outline: none;
}

@media (max-width: 767.98px) {
    .jctv-ticker-inner {
        gap: 8px;
        padding: 0 10px;
        min-height: 42px;
    }

    .jctv-ticker-time {
        display: none;
    }

    .jctv-ticker-label {
        font-size: 0.68rem;
        padding: 2px 7px;
    }

    .jctv-ticker-viewport {
        height: 42px;
    }

    .jctv-ticker-item {
        font-size: 0.88rem;
    }

    .jctv-ticker-btn {
        width: 30px;
        height: 30px;
    }
}

/* ---------- 설교방송 ---------- */
.jctv-sermon {
    max-width: 1200px;
    margin: 0 auto 56px;
    padding: 18px 16px 40px;
}

.jctv-sermon-head {
    margin: 6px 0 18px;
}

.jctv-sermon-title {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 800;
    color: #0f3d32;
    letter-spacing: -0.03em;
}

.jctv-sermon-hero {
    display: grid;
    grid-template-columns: minmax(240px, 340px) minmax(0, 1fr);
    gap: 22px;
    margin-bottom: 28px;
    align-items: stretch;
}

.jctv-sermon-hero-info {
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.jctv-sermon-hero-church {
    font-size: 1.15rem;
    font-weight: 800;
    color: #0f3d32;
    margin-bottom: 10px;
    letter-spacing: -0.02em;
    line-height: 1.4;
}

.jctv-sermon-hero-bible {
    font-size: 1rem;
    font-weight: 700;
    color: #344054;
    line-height: 1.5;
    margin-bottom: 8px;
    padding-bottom: 0;
    border-bottom: 0;
}

.jctv-sermon-hero-posted {
    font-size: 0.92rem;
    font-weight: 600;
    color: #667085;
    line-height: 1.45;
    margin-bottom: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid #e4e7ec;
}

.jctv-sermon-hero-select .jctv-sermon-hero-bible {
    margin-bottom: 6px;
}

.jctv-sermon-hero-select .jctv-sermon-hero-posted {
    margin-bottom: 10px;
    padding-bottom: 10px;
}

.jctv-platform .jctv-sermon-hero-bible {
    margin-bottom: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid #e4e7ec;
}

.jctv-sermon-hero-subject {
    font-size: 1.02rem;
    font-weight: 600;
    color: #667085;
    line-height: 1.45;
    margin-bottom: 10px;
}

.jctv-sermon-hero-intro {
    margin: 0 0 16px;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #475467;
}

.jctv-sermon-recent {
    list-style: none;
    margin: auto 0 0;
    padding: 0;
    border-top: 1px solid #eef0f4;
}

.jctv-sermon-recent li {
    border-bottom: 1px solid #eef0f4;
}

.jctv-sermon-recent li.on .jctv-sermon-recent-btn {
    color: #0f3d32;
    font-weight: 800;
}

.jctv-sermon-recent-btn {
    display: block;
    width: 100%;
    text-align: left;
    border: 0;
    background: transparent;
    padding: 10px 4px;
    cursor: pointer;
    font-size: 0.88rem;
    color: #475467;
    line-height: 1.4;
}

.jctv-sermon-titles {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid #e4e7ec;
    max-height: 420px;
    overflow: auto;
}

.jctv-sermon-titles li {
    border-bottom: 1px solid #eef0f4;
}

.jctv-sermon-titles li.on {
    background: #f3f7f5;
}

.jctv-sermon-title-btn {
    display: block;
    width: 100%;
    text-align: left;
    border: 0;
    background: transparent;
    padding: 12px 10px;
    cursor: pointer;
}

.jctv-sermon-title-btn strong {
    display: block;
    font-size: 0.98rem;
    font-weight: 700;
    color: #1d2939;
    line-height: 1.4;
    letter-spacing: -0.02em;
}

.jctv-sermon-titles li.on .jctv-sermon-title-btn strong {
    color: #0f3d32;
}

.jctv-sermon-title-btn span {
    display: block;
    margin-top: 4px;
    font-size: 0.82rem;
    color: #667085;
}

.jctv-sermon-hero-player {
    min-width: 0;
}

.jctv-sermon-player-frame {
    position: relative;
    aspect-ratio: 16 / 9;
    background: #0f3d32;
    border-radius: 4px;
    overflow: hidden;
}

.jctv-unmute-hit,
.jctv-unmute-chip {
    display: none !important;
}

.jctv-sview-player {
    position: relative;
}

.jctv-sermon-player-frame iframe,
.jctv-sermon-player-frame video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.jctv-sermon-player-fallback {
    position: absolute;
    inset: 0;
    display: block;
    background: #0f3d32 center / cover no-repeat;
    text-decoration: none !important;
}

.jctv-sermon-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.jctv-sermon-play i {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    color: #0f3d32;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}

.jctv-sermon-play.sm i {
    width: 40px;
    height: 40px;
    font-size: 0.85rem;
    background: rgba(0, 0, 0, 0.42);
    color: #fff;
}

.jctv-sermon-player-caption {
    margin-top: 10px;
    font-size: 0.95rem;
    font-weight: 700;
    color: #1d2939;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.jctv-sermon-player-caption a {
    color: inherit !important;
    text-decoration: none !important;
}

.jctv-sermon-player-caption .jctv-sermon-btn-edit {
    color: #fff !important;
}

.jctv-sermon-player-caption em {
    font-style: normal;
    color: #667085;
    font-weight: 600;
}

.jctv-sermon-hero-btns {
    display: inline-flex;
    gap: 8px;
}

.jctv-sermon-btn-view,
.jctv-sermon-btn-edit,
.jctv-sermon-card-edit {
    display: inline-flex;
    align-items: center;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: none !important;
}

.jctv-sermon-btn-view {
    border: 1px solid #d0d5dd;
    color: #344054 !important;
    background: #fff;
}

.jctv-sermon-btn-edit,
.jctv-sermon-card-edit {
    background: #0f3d32;
    color: #fff !important;
}

.jctv-sermon-card-wrap {
    position: relative;
}

.jctv-sermon-card-wrap.is-active .jctv-sermon-card {
    box-shadow: none;
}

.jctv-sermon-card-wrap.is-active .jctv-sermon-card-thumb {
    /* 썸네일 아래 바깥에 두꺼운 강조선 — overflow에 잘리지 않음 */
    box-shadow: 0 5px 0 0 #2bb673;
    margin-bottom: 5px;
}

.jctv-sermon-card-wrap.is-active .jctv-sermon-card-thumb::after {
    content: none;
}

.jctv-sermon-card-wrap.is-active .jctv-sermon-card-txt strong {
    color: #0f3d32;
}

.jctv-sermon-card-edit {
    margin-top: 6px;
    padding: 5px 10px;
}

.jctv-sermon-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 8px 0 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid #e4e7ec;
}

.jctv-sermon-filters a {
    display: inline-block;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid #d0d5dd;
    color: #344054 !important;
    text-decoration: none !important;
    font-size: 0.9rem;
    font-weight: 700;
}

.jctv-sermon-filters a.on,
.jctv-sermon-filters a:hover {
    background: #0f3d32;
    border-color: #0f3d32;
    color: #fff !important;
}

.jctv-sermon-filter-reset {
    margin-left: auto;
}

/* 시무교회·목사명 선택 히어로 (플레이어 왼쪽 + 목록) */
.jctv-sermon-hero-select {
    grid-template-columns: minmax(0, 1.35fr) minmax(240px, 360px);
    padding: 16px;
    border: 1px solid #dfe8e3;
    border-radius: 10px;
    background: #f7faf8;
}

.jctv-sermon-player-empty {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: #0a2a23;
    color: #fff;
}

.jctv-sermon-player-empty em {
    font-style: normal;
    font-size: 0.9rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.82);
}

.jctv-sermon-hero-select .jctv-sermon-titles {
    margin-top: 8px;
    border: 1px solid #d0d5dd;
    border-radius: 8px;
    background: #fff;
}

.jctv-sermon-playlist-paging {
    margin-top: 10px;
    padding: 6px 4px;
    text-align: center;
    font-size: 0.82rem;
    line-height: 1.4;
}

.jctv-sermon-playlist-paging .pg_page,
.jctv-sermon-playlist-paging .pg_current {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    margin: 0 2px;
    padding: 0 6px;
    border-radius: 4px;
    text-decoration: none !important;
}

.jctv-sermon-playlist-paging .pg_page {
    color: #344054 !important;
    background: #f2f4f7;
}

.jctv-sermon-playlist-paging .pg_page:hover {
    background: #e4e7ec;
}

.jctv-sermon-playlist-paging .pg_current {
    background: #0f3d32;
    color: #fff !important;
    font-weight: 700;
}

.jctv-sermon-hero-select .jctv-sermon-titles li.on {
    background: #e3f0ec;
    box-shadow: inset 3px 0 0 #0f3d32;
}

.jctv-sermon-hero-select .jctv-sermon-titles li.on .jctv-sermon-title-btn strong {
    color: #0a2a23;
}

.jctv-sermon-hero-select .jctv-sermon-title-btn {
    text-decoration: none !important;
    color: inherit;
}

/* 초성 색인 */
.jctv-sermon-cho {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 0 0 18px;
    padding: 8px 10px;
    border-radius: 6px;
    background: #1d2939;
}

.jctv-sermon-cho a {
    display: inline-flex;
    min-width: 34px;
    height: 32px;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    border-radius: 4px;
    color: #e4e7ec !important;
    text-decoration: none !important;
    font-size: 0.84rem;
    font-weight: 700;
}

.jctv-sermon-cho a:hover,
.jctv-sermon-cho a.on {
    background: #0f3d32;
    color: #fff !important;
}

/* 교회·목사 디렉터리 카드 */
.jctv-sermon-dir {
    margin: 0 0 28px;
}

.jctv-sermon-dir-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 18px 14px;
}

.jctv-sermon-dir-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    text-decoration: none !important;
    color: inherit;
    padding: 6px;
    border-radius: 8px;
    transition: background 0.15s ease, box-shadow 0.15s ease;
}

.jctv-sermon-dir-card:hover,
.jctv-sermon-dir-card.is-selected {
    background: #eef6f2;
    box-shadow: 0 0 0 2px #0f3d32;
}

.jctv-sermon-dir-photo {
    display: block;
    width: 100%;
    max-width: 132px;
    aspect-ratio: 4 / 5;
    margin: 0 auto 10px;
    border-radius: 6px;
    overflow: hidden;
    background: linear-gradient(145deg, #176b52, #0f3d32);
}

.jctv-sermon-dir-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.jctv-sermon-dir-photo em {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    font-style: normal;
    font-size: 1.8rem;
    font-weight: 800;
    color: #fff;
}

.jctv-sermon-dir-name {
    display: block;
    font-size: 0.92rem;
    font-weight: 800;
    color: #1d2939;
    line-height: 1.35;
    letter-spacing: -0.02em;
}

.jctv-sermon-dir-sub {
    display: block;
    margin-top: 3px;
    font-size: 0.8rem;
    font-weight: 600;
    color: #667085;
    line-height: 1.35;
}

.jctv-choir-dir .jctv-sermon-dir-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px 12px;
}

.jctv-choir-dir .jctv-sermon-dir-photo {
    max-width: none;
    width: 100%;
    /* 기존 4/3 대비 세로 약 27% 축소 (23% + 추가 5%) */
    aspect-ratio: 4 / 2.1945;
    border-radius: 6px;
}

.jctv-choir-dir .jctv-sermon-dir-card:hover {
    background: #eef6f2;
    box-shadow: none;
}

.jctv-choir-dir .jctv-sermon-dir-card.is-selected {
    background: transparent;
    box-shadow: none;
}

.jctv-choir-dir .jctv-sermon-dir-card.is-selected .jctv-sermon-dir-photo {
    box-shadow: 0 5px 0 0 #2bb673;
    margin-bottom: 15px;
}

.jctv-choir-dir .jctv-sermon-dir-name {
    font-size: 0.82rem;
}

#jctv-watch-player,
.jctv-sermon-hero-select {
    scroll-margin-top: 120px;
}

/* 주제별 · 성경말씀 카탈로그 */
.jctv-sermon-catalog {
    margin: 0 0 28px;
}

.jctv-sermon-catalog-head,
.jctv-sermon-catalog-subhead {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
}

.jctv-sermon-catalog-subhead {
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px dashed #d0d5dd;
}

.jctv-sermon-catalog-bar {
    width: 4px;
    height: 16px;
    border-radius: 2px;
    background: #0f3d32;
    flex-shrink: 0;
}

.jctv-sermon-catalog-title,
.jctv-sermon-catalog-subtitle {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
    color: #0f3d32;
    letter-spacing: -0.02em;
}

.jctv-sermon-catalog-count {
    margin-left: auto;
    font-size: 0.84rem;
    font-weight: 700;
    color: #667085;
}

.jctv-sermon-topics {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin: 0 0 8px;
}

.jctv-sermon-topics a {
    color: #1d2939 !important;
    text-decoration: none !important;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.jctv-sermon-topics a:hover,
.jctv-sermon-topics a.on {
    color: #0f3d32 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.jctv-sermon-bible-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px 28px;
    margin: 0 0 8px;
    padding: 14px 16px;
    border: 1px solid #dfe8e3;
    border-radius: 8px;
    background: #f7faf8;
}

.jctv-sermon-bible-sec {
    margin: 0 0 10px;
    font-size: 0.9rem;
    font-weight: 800;
    color: #0f3d32;
}

.jctv-sermon-bible-books {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 8px;
}

.jctv-sermon-bible-books a {
    display: inline-flex;
    min-width: 34px;
    height: 30px;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    border-radius: 4px;
    color: #98a2b3 !important;
    text-decoration: none !important;
    font-size: 0.86rem;
    font-weight: 700;
}

.jctv-sermon-bible-books a.has {
    color: #1d2939 !important;
}

.jctv-sermon-bible-books a:hover,
.jctv-sermon-bible-books a.on {
    background: #0f3d32;
    color: #fff !important;
}

.jctv-sermon-table-wrap {
    overflow-x: auto;
    border: 1px solid #d0d5dd;
    border-radius: 8px;
}

.jctv-sermon-table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
    table-layout: fixed;
    background: #fff;
}

.jctv-sermon-table th,
.jctv-sermon-table td {
    padding: 11px 10px;
    font-size: 0.9rem;
    border-bottom: 1px solid #e4e7ec;
    text-align: center;
    vertical-align: middle;
    color: #344054;
}

.jctv-sermon-table th {
    background: #eef2ef;
    color: #0f3d32;
    font-weight: 800;
    border-bottom-color: #d0d5dd;
}

.jctv-sermon-table th:nth-child(1),
.jctv-sermon-table td:nth-child(1) {
    width: 56px;
}

.jctv-sermon-table th:nth-child(2),
.jctv-sermon-table td.is-title {
    width: auto;
    text-align: left;
}

.jctv-sermon-table th:nth-child(3),
.jctv-sermon-table td:nth-child(3) {
    width: 22%;
}

.jctv-sermon-table th:nth-child(4),
.jctv-sermon-table td:nth-child(4) {
    width: 14%;
}

.jctv-sermon-table th:nth-child(5),
.jctv-sermon-table td:nth-child(5) {
    width: 110px;
}

.jctv-sermon-table th:nth-child(6),
.jctv-sermon-table td:nth-child(6) {
    width: 64px;
}

.jctv-sermon-table tr:last-child td {
    border-bottom: 0;
}

.jctv-sermon-table tr.is-current {
    background: #eef6f2;
}

.jctv-sermon-table td.is-title a {
    color: #1d2939 !important;
    text-decoration: none !important;
    font-weight: 700;
}

.jctv-sermon-table td.is-title a:hover {
    color: #0f3d32 !important;
}

.jctv-sermon-vod {
    display: inline-flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    background: #e6f4ee;
    color: #0f3d32 !important;
    text-decoration: none !important;
}

.jctv-sermon-vod:hover {
    background: #0f3d32;
    color: #fff !important;
}

/* 플랫폼콘텐츠: 글쓰기 + 카테고리(한 줄 밀착) */
.jctv-platform-toolbar {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    margin: 0 0 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e4e7ec;
}

.jctv-platform-admin-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.jctv-platform-admin-tools .eyoom-form .select {
    min-width: 140px;
    margin: 0;
}

.jctv-platform-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.jctv-platform-cat {
    display: inline-flex;
    align-items: center;
    padding: 7px 14px;
    border: 1px solid #c5d6cd;
    border-radius: 999px;
    background: #fff;
    color: #2a4a40 !important;
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-decoration: none !important;
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.jctv-platform-cat:hover {
    border-color: #0f3d32;
    color: #0f3d32 !important;
}

.jctv-platform-cat.is-current {
    background: #0f3d32;
    border-color: #0f3d32;
    color: #fff !important;
}

.jctv-platform-subs,
.jctv-platform-choirs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 20px;
}

.jctv-platform-subs a,
.jctv-platform-choirs a {
    display: inline-flex;
    align-items: center;
    padding: 6px 12px;
    border: 1px solid #e4e7ec;
    border-radius: 6px;
    background: #f8faf9;
    color: #344054 !important;
    font-size: 0.86rem;
    font-weight: 700;
    text-decoration: none !important;
}

.jctv-platform-subs a.on,
.jctv-platform-subs a:hover,
.jctv-platform-choirs a.on,
.jctv-platform-choirs a:hover {
    background: #0f3d32;
    border-color: #0f3d32;
    color: #fff !important;
}

.jctv-platform-card-choir {
    display: block;
    margin: 0 0 4px;
    color: #667085;
    font-size: 0.78rem;
    font-style: normal;
    font-weight: 700;
}

.jctv-sermon-values {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 22px;
}

.jctv-sermon-values a {
    display: inline-block;
    padding: 6px 12px;
    border: 1px solid #e4e7ec;
    border-radius: 6px;
    color: #475467 !important;
    text-decoration: none !important;
    font-size: 0.86rem;
    font-weight: 600;
    background: #fafbfc;
}

.jctv-sermon-values a.on,
.jctv-sermon-values a:hover {
    border-color: #0f3d32;
    color: #0f3d32 !important;
    background: #eef2ff;
}

.jctv-sermon-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px 14px;
}

.jctv-sermon-grid .jctv-sermon-card,
.jctv-sermon .jctv-sermon-card {
    display: block;
    text-decoration: none !important;
    color: inherit;
    transition: transform 0.22s ease;
}

.jctv-sermon-grid .jctv-sermon-card:hover,
.jctv-sermon .jctv-sermon-card:hover {
    transform: translateY(-4px);
}

.jctv-sermon-grid .jctv-sermon-card-thumb,
.jctv-sermon .jctv-sermon-card-thumb {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9 !important;
    border-radius: 8px;
    overflow: hidden;
    background: #0a2a23;
}

.jctv-sermon-grid .jctv-sermon-card-thumb img,
.jctv-sermon .jctv-sermon-card-thumb img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    background: #0a2a23;
    transition: transform 0.35s ease-out;
    will-change: transform;
}

.jctv-sermon-card-thumb .jctv-sermon-play {
    z-index: 1;
}

.jctv-sermon-card-txt {
    display: block;
    margin-top: 8px;
    text-align: left;
}

.jctv-sermon-card-txt strong {
    display: block;
    font-size: 0.96rem;
    font-weight: 700;
    color: #1d2939;
    line-height: 1.4;
    letter-spacing: -0.02em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.jctv-platform-card-intro {
    display: -webkit-box;
    margin-top: 4px;
    font-size: 0.82rem;
    line-height: 1.38;
    color: #667085;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 플랫폼콘텐츠 목록(그리드) 삭제 선택 UI */
.jctv-sermon-delete-chk {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 3;
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(15, 61, 50, 0.2);
    cursor: pointer;
}
.jctv-sermon-delete-chk input[type="checkbox"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}
.jctv-sermon-delete-chk i {
    width: 16px;
    height: 16px;
    border-radius: 4px;
    background: #fff;
    border: 2px solid #0f3d32;
}
.jctv-sermon-card-wrap .jctv-sermon-delete-chk input[type="checkbox"]:checked + i {
    background: #0f3d32;
}

.jctv-sermon-card-txt em {
    display: block;
    margin-top: 2px;
    font-style: normal;
    font-size: 0.8rem;
    color: #667085;
    font-weight: 600;
}

@media (max-width: 1199.98px) {
    .jctv-sermon-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .jctv-sermon-dir-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .jctv-choir-dir .jctv-sermon-dir-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .jctv-sermon-hero,
    .jctv-sermon-hero-select {
        grid-template-columns: 1fr;
    }

    .jctv-sermon-titles {
        max-height: 260px;
    }

    .jctv-sermon-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .jctv-sermon-dir-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .jctv-choir-dir .jctv-sermon-dir-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .jctv-sermon-bible-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .jctv-sermon-grid {
        grid-template-columns: 1fr;
    }

    .jctv-sermon-dir-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .jctv-choir-dir .jctv-sermon-dir-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .jctv-sermon-title {
        font-size: 1.45rem;
    }

    .jctv-sermon-cho a {
        min-width: 30px;
        height: 30px;
        font-size: 0.78rem;
    }

    .jctv-sermon-table th:nth-child(3),
    .jctv-sermon-table td:nth-child(3),
    .jctv-sermon-table th:nth-child(4),
    .jctv-sermon-table td:nth-child(4) {
        display: none;
    }
}


/* ---------- 뉴스 (기독신문형) ---------- */
.jctv-news {
    max-width: none;
    width: 100%;
    margin: 0 auto 56px;
    padding: 8px 0 40px;
}

.jctv-news-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 12px;
    margin: 6px 0 14px;
    flex-wrap: wrap;
}

.jctv-news-head-left {
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.jctv-news-title {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 800;
    color: #0f3d32;
    letter-spacing: -0.03em;
}

.jctv-news-count {
    color: #4a8f72;
    font-size: 0.92rem;
    font-weight: 700;
}

.jctv-news-head-right {
    display: flex;
    align-items: center;
    gap: 12px;
}

.jctv-news-write {
    display: inline-flex;
    padding: 7px 12px;
    border-radius: 6px;
    background: #0f3d32;
    color: #fff !important;
    text-decoration: none !important;
    font-size: 0.86rem;
    font-weight: 700;
}

.jctv-news-sort {
    color: #667085;
    font-size: 0.88rem;
    font-weight: 600;
}

.jctv-news-sort i {
    margin-right: 4px;
}

.jctv-news-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid #e4e7ec;
}

.jctv-news-tabs.is-single {
    display: none;
}

.jctv-news-tabs a {
    display: inline-block;
    padding: 7px 13px;
    border-radius: 999px;
    border: 1px solid #d0d5dd;
    color: #344054 !important;
    text-decoration: none !important;
    font-size: 0.88rem;
    font-weight: 700;
}

.jctv-news-tabs a.on,
.jctv-news-tabs a:hover {
    background: #0f3d32;
    border-color: #0f3d32;
    color: #fff !important;
}

.jctv-news-item {
    position: relative;
    margin-bottom: 10px;
    background: #f7f8fa;
    border-radius: 6px;
    overflow: hidden;
}

.jctv-news-link {
    display: grid;
    grid-template-columns: minmax(176px, 22%) minmax(0, 1fr);
    gap: 16px;
    padding: 14px 16px;
    text-decoration: none !important;
    color: inherit;
    align-items: stretch;
}

.jctv-news-link.is-no-thumb {
    grid-template-columns: minmax(0, 1fr);
}

.jctv-news-thumb {
    display: block;
    position: relative;
    width: 100%;
    min-height: 0;
    aspect-ratio: 16 / 9;
    border-radius: 4px;
    background: #d0d5dd center / cover no-repeat;
}

.jctv-news-thumb.is-portrait {
    background-color: #e8ece9;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.jctv-news-link.is-no-thumb .jctv-news-body {
    max-width: none;
}

.jctv-news-link.is-no-thumb .jctv-news-excerpt {
    -webkit-line-clamp: 4;
}

.jctv-news-body {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding-right: 4px;
}

.jctv-news-item-title {
    display: block;
    font-size: 1.16rem;
    font-weight: 800;
    color: #101828;
    line-height: 1.4;
    letter-spacing: -0.03em;
    margin-bottom: 6px;
}

/* 오피니언 목록: 제목 ↔ 본문 발췌 사이 요약글 */
.jctv-news.is-opinion .jctv-news-summary {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: #344054;
    font-size: 0.98rem;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: -0.02em;
    margin: 0 0 6px;
    word-break: keep-all;
}

.jctv-news.is-opinion .jctv-news-item-title {
    margin-bottom: 4px;
}

.jctv-news.is-opinion .jctv-news-excerpt {
    -webkit-line-clamp: 2;
    color: #667085;
    font-size: 0.9rem;
}

.jctv-news-excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: #475467;
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 8px;
    word-break: keep-all;
}

.jctv-news-date {
    margin-top: auto;
    color: #98a2b3;
    font-size: 0.84rem;
    font-weight: 600;
}

.jctv-news-check {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
}

.jctv-news-paging {
    margin-top: 28px;
    text-align: center;
}

/* 뉴스 본문: 기독신문형 가독 폭 (참고보다 약간 넓게) */
.jctv-nview {
    max-width: 840px !important;
    width: 100%;
    margin: 0 auto 56px !important;
    padding: 12px 0 48px !important;
}

.jctv-nview h1 {
    text-align: center;
    font-size: 1.9rem !important;
    line-height: 1.4 !important;
}

.jctv-nview-head {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center;
}

.jctv-nview-actions {
    justify-content: center;
    margin-top: 10px;
}

.jctv-nview-meta {
    text-align: center;
}

.jctv-nview-atc {
    font-size: 1.1rem !important;
    line-height: 1.9 !important;
    overflow: visible;
}

.jctv-nview-atc p,
.jctv-nview-atc div,
.jctv-nview-atc span,
.jctv-nview-atc font,
.jctv-nview-atc td,
.jctv-nview-atc th,
.jctv-nview-atc li,
.jctv-nview-atc a {
    font-size: 1.1rem !important;
    line-height: 1.9 !important;
}

.jctv-nview-atc h1 { font-size: 1.55rem !important; line-height: 1.4 !important; }
.jctv-nview-atc h2 { font-size: 1.35rem !important; line-height: 1.4 !important; }
.jctv-nview-atc h3 { font-size: 1.2rem !important; line-height: 1.45 !important; }

.jctv-nview-lead {
    font-size: 1.12rem !important;
    line-height: 1.65 !important;
}

/* 본문 사진: float 유지 (가운데 강제·clear 금지) */
.jctv-nview-atc img {
    max-width: 100%;
    height: auto;
    border-radius: 2px;
}

.jctv-nview-atc img.jctv-float-left,
.jctv-nview-atc img[align="left"],
.jctv-nview-atc img[style*="float:left"],
.jctv-nview-atc img[style*="float: left"] {
    float: left !important;
    display: block !important;
    clear: none !important;
    box-sizing: border-box !important;
    width: 50% !important;
    max-width: 50% !important;
    height: auto !important;
    margin: 6px 28px 24px 0 !important;
    padding-right: 0 !important;
}

.jctv-nview-atc img.jctv-float-right,
.jctv-nview-atc img[align="right"],
.jctv-nview-atc img[style*="float:right"],
.jctv-nview-atc img[style*="float: right"] {
    float: right !important;
    display: block !important;
    clear: none !important;
    box-sizing: border-box !important;
    width: 50% !important;
    max-width: 50% !important;
    height: auto !important;
    margin: 6px 0 24px 28px !important;
    padding-left: 0 !important;
}

.jctv-nview-atc div.jctv-float-left {
    float: left !important;
    width: 48% !important;
    max-width: 48% !important;
    box-sizing: border-box !important;
    margin: 6px 28px 24px 0 !important;
    clear: none !important;
}

.jctv-nview-atc div.jctv-float-right {
    float: right !important;
    width: 48% !important;
    max-width: 48% !important;
    box-sizing: border-box !important;
    margin: 6px 0 24px 28px !important;
    clear: none !important;
}

.jctv-nview-atc div.jctv-float-left img,
.jctv-nview-atc div.jctv-float-right img {
    float: none !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 !important;
}

.jctv-nview-atc img.jctv-img-center,
.jctv-nview-atc p.jctv-img-center > img,
.jctv-nview-atc p.jctv-img-center > a > img,
.jctv-nview-atc p[style*="text-align:center"] > img:not([style*="float"]),
.jctv-nview-atc p[style*="text-align: center"] > img:not([style*="float"]),
.jctv-nview-atc p[style*="text-align:center"] > a > img,
.jctv-nview-atc p[style*="text-align: center"] > a > img,
.jctv-nview-atc p[style*="clear:both"] > img,
.jctv-nview-atc p[style*="clear: both"] > img,
.jctv-nview-atc p[style*="clear:both"] > a > img,
.jctv-nview-atc p[style*="clear: both"] > a > img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 28px 0 !important;
    float: none !important;
    clear: both !important;
    border-radius: 2px;
}

.jctv-nview-atc p.jctv-img-center,
.jctv-nview-atc p[style*="text-align:center"][style*="clear"],
.jctv-nview-atc p[style*="text-align: center"][style*="clear"] {
    text-align: center !important;
    clear: both !important;
    margin: 28px 0 !important;
    width: 100% !important;
}

/* 오피니언 인물사진: 이미지 없는 단락의 clear는 무시(텍스트가 오른쪽으로 감쌈) */
.jctv-nview-atc.has-portrait .jctv-nview-atc-body p.jctv-img-center:not(:has(img)),
.jctv-nview-atc.has-portrait .jctv-nview-atc-body p[style*="clear:both"]:not(:has(img)),
.jctv-nview-atc.has-portrait .jctv-nview-atc-body p[style*="clear: both"]:not(:has(img)) {
    clear: none !important;
    width: auto !important;
    max-width: 100% !important;
    margin-top: 0 !important;
}

/* 실제 가운데 사진만 본문 폭 100% */
.jctv-nview-atc.has-portrait .jctv-nview-atc-body p.jctv-img-center:has(img),
.jctv-nview-atc.has-portrait .jctv-nview-atc-body p[style*="text-align:center"]:has(> img),
.jctv-nview-atc.has-portrait .jctv-nview-atc-body p[style*="text-align: center"]:has(> img),
.jctv-nview-atc.has-portrait .jctv-nview-atc-body p[style*="clear:both"]:has(img),
.jctv-nview-atc.has-portrait .jctv-nview-atc-body p[style*="clear: both"]:has(img) {
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: center !important;
}

.jctv-nview-atc.has-portrait .jctv-nview-atc-body img.jctv-img-center,
.jctv-nview-atc.has-portrait .jctv-nview-atc-body p.jctv-img-center > img,
.jctv-nview-atc.has-portrait .jctv-nview-atc-body p.jctv-img-center > a > img,
.jctv-nview-atc.has-portrait .jctv-nview-atc-body p[style*="text-align:center"] > img,
.jctv-nview-atc.has-portrait .jctv-nview-atc-body p[style*="text-align: center"] > img,
.jctv-nview-atc.has-portrait .jctv-nview-atc-body p[style*="clear:both"] > img,
.jctv-nview-atc.has-portrait .jctv-nview-atc-body p[style*="clear: both"] > img {
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    margin: 28px 0 !important;
    height: auto !important;
}

.jctv-nview-atc p.jctv-img-center > a,
.jctv-nview-atc p[style*="text-align:center"] > a.view_image,
.jctv-nview-atc p[style*="clear:both"] > a.view_image {
    display: block !important;
    width: 100% !important;
}

.jctv-nview-atc table.jctv-img-text {
    width: 100% !important;
    border: 0 !important;
    border-collapse: collapse;
    table-layout: fixed;
    margin: 16px 0 24px;
}

.jctv-nview-atc table.jctv-img-text td {
    border: 0 !important;
    vertical-align: top;
    padding: 0;
    background: transparent;
    font-size: 1.1rem !important;
    line-height: 1.9 !important;
}

.jctv-nview-atc table.jctv-img-text td:first-child {
    width: 50%;
    padding: 0 18px 0 0;
}

.jctv-nview-atc table.jctv-img-text img {
    float: none !important;
    clear: none !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    height: auto !important;
}

.jctv-nview-atc p:has(> img.jctv-float-left),
.jctv-nview-atc p:has(> img[align="left"]),
.jctv-nview-atc p:has(> img[style*="float:left"]),
.jctv-nview-atc p:has(> img[style*="float: left"]),
.jctv-nview-atc p:has(> img.jctv-float-right),
.jctv-nview-atc p:has(> img[align="right"]),
.jctv-nview-atc p:has(> img[style*="float:right"]),
.jctv-nview-atc p:has(> img[style*="float: right"]) {
    text-align: left !important;
    clear: none !important;
    margin: 0;
    overflow: visible;
}

.jctv-nview-atc .jctv-clear {
    clear: both !important;
    display: block;
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    overflow: hidden;
}

/* 저장 후에도 좌·우 50:50 유지 */
.jctv-nview-atc .jctv-split {
    display: flex !important;
    align-items: flex-start;
    gap: 28px;
    margin: 18px 0 28px;
    width: 100%;
    clear: both;
}

.jctv-nview-atc .jctv-split-media {
    flex: 0 0 calc(50% - 14px);
    max-width: calc(50% - 14px);
    box-sizing: border-box;
}

.jctv-nview-atc .jctv-split-media img,
.jctv-nview-atc .jctv-split-media a {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    float: none !important;
    margin: 0 !important;
}

.jctv-nview-atc .jctv-split-body {
    flex: 1 1 calc(50% - 14px);
    min-width: 0;
    box-sizing: border-box;
}

.jctv-nview-atc .jctv-split-body p {
    margin: 0 0 1em;
}

@media (max-width: 767.98px) {
    .jctv-nview-atc img.jctv-float-left,
    .jctv-nview-atc img[align="left"],
    .jctv-nview-atc img[style*="float:left"],
    .jctv-nview-atc img[style*="float: left"],
    .jctv-nview-atc img.jctv-float-right,
    .jctv-nview-atc img[align="right"],
    .jctv-nview-atc img[style*="float:right"],
    .jctv-nview-atc img[style*="float: right"],
    .jctv-nview-atc div.jctv-float-left,
    .jctv-nview-atc div.jctv-float-right {
        float: none !important;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 20px auto !important;
    }

    .jctv-nview-atc .jctv-split {
        flex-direction: column;
        gap: 14px;
    }

    .jctv-nview-atc .jctv-split-media,
    .jctv-nview-atc .jctv-split-body {
        flex: 1 1 auto;
        max-width: 100%;
    }

    .jctv-nview-atc table.jctv-img-text,
    .jctv-nview-atc table.jctv-img-text tbody,
    .jctv-nview-atc table.jctv-img-text tr,
    .jctv-nview-atc table.jctv-img-text td {
        display: block;
        width: 100% !important;
    }

    .jctv-nview-atc table.jctv-img-text td:first-child {
        padding: 0 0 12px;
    }
}

/* 뉴스 목록: 넓은 폭 유지 / 본문: 가독 폭 */
.jctv-wrap .page-body > .container:has(.jctv-news) {
    max-width: 1280px;
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
}

.jctv-wrap .page-body > .container:has(.jctv-nview) {
    max-width: 960px;
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
}

/* 독자투고: 목록·본문 모두 중앙 가독 폭 */
.jctv-wrap .page-body > .container:has(.jctv-reader),
.jctv-wrap .page-body > .container:has(.jctv-reader-view) {
    max-width: 900px !important;
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
}

.board-list.jctv-news.jctv-reader {
    max-width: 820px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
}

.jctv-news.jctv-reader {
    max-width: 820px !important;
}

.jctv-nview.jctv-reader-view {
    max-width: 760px !important;
    width: 100% !important;
    margin: 0 auto 56px !important;
    padding: 12px 16px 48px !important;
    box-sizing: border-box;
}

.jctv-reader-view .jctv-nview-atc {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: keep-all;
}

.jctv-reader-view .jctv-nview-atc iframe,
.jctv-reader-view .jctv-nview-atc video,
.jctv-reader-view .jctv-reader-player iframe,
.jctv-reader-view .jctv-reader-player video {
    display: block;
    width: 100%;
    max-width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    min-height: 0;
    margin: 0 auto;
    border: 0;
    border-radius: 8px;
    background: #0b1f19;
}

.jctv-reader-player {
    margin: 0 0 22px;
    border-radius: 8px;
    overflow: hidden;
    background: #0b1f19;
}

.jctv-reader-view .jctv-nview-atc img {
    max-width: 100%;
    height: auto;
}

.jctv-reader-view .jctv-nview-atc table {
    max-width: 100%;
}

/* 뉴스: 본문 영역 좌우 여백 최소화 */
.jctv-wrap .page-body:has(.jctv-news) .basic-body-main,
.jctv-wrap .page-body:has(.jctv-nview) .basic-body-main,
.jctv-wrap .page-body:has(.jctv-reader) .basic-body-main,
.jctv-wrap .page-body:has(.jctv-reader-view) .basic-body-main {
    padding-left: 0;
    padding-right: 0;
}

@media (max-width: 767.98px) {
    .jctv-news-link {
        grid-template-columns: 120px minmax(0, 1fr);
        gap: 12px;
        padding: 12px;
        align-items: start;
    }

    .jctv-news-link.is-no-thumb {
        grid-template-columns: minmax(0, 1fr);
    }

    .jctv-news-title {
        font-size: 1.45rem;
    }

    .jctv-news-item-title {
        font-size: 1.02rem;
    }
}

/* ---------- 신문지면보기 ---------- */
.jctv-epage {
    max-width: 1080px;
    margin: 0 auto 64px;
    padding: 36px 20px 48px;
}

.jctv-epage-hero {
    text-align: center;
    padding: 20px 0 28px;
}

.jctv-epage-kicker {
    margin: 0 0 12px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #7a8f86;
}

.jctv-epage-h1 {
    margin: 0;
    font-size: clamp(2.1rem, 5vw, 3rem);
    font-weight: 800;
    color: var(--jctv-navy);
    letter-spacing: -0.04em;
    line-height: 1.15;
}

.jctv-epage-h2 {
    margin: 0 0 10px;
    font-size: clamp(1.45rem, 3.2vw, 1.9rem);
    font-weight: 800;
    color: var(--jctv-navy-mid);
    letter-spacing: -0.03em;
    line-height: 1.25;
}

.jctv-epage-h2.dark {
    color: #1a2e28;
}

.jctv-epage-lead,
.jctv-epage-sub {
    margin: 0;
    color: #6b7c76;
    font-size: 1.02rem;
    line-height: 1.65;
}

.jctv-epage-lead {
    margin-top: 14px;
    max-width: 28em;
    margin-left: auto;
    margin-right: auto;
}

.jctv-epage-sub {
    margin-bottom: 20px;
    max-width: 36em;
}

.jctv-epage-sub.dark {
    color: #5c7369;
}

.jctv-epage-admin-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 22px;
    min-height: 58px;
    min-width: 240px;
    padding: 16px 32px;
    border-radius: 10px;
    border: 1px solid var(--jctv-navy);
    background: var(--jctv-navy);
    color: #fff !important;
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    text-decoration: none !important;
    box-shadow: 0 6px 18px rgba(15, 61, 50, 0.22);
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.jctv-epage-admin-btn i {
    font-size: 1.15rem;
}

.jctv-epage-admin-btn:hover {
    background: var(--jctv-navy-mid);
    border-color: var(--jctv-navy-mid);
    color: #fff !important;
    transform: translateY(-1px);
}

.jctv-epage-archive {
    padding: 8px 0 24px;
}

.jctv-epage-foot {
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid var(--jctv-line);
    text-align: center;
}

.jctv-epage-foot-text {
    margin: 0 0 10px;
    color: #7a8f86;
    font-size: 0.9rem;
    line-height: 1.5;
}

.jctv-epage-foot-link {
    display: inline-block;
    color: var(--jctv-navy) !important;
    font-weight: 800;
    font-size: 0.95rem;
    text-decoration: none !important;
}

.jctv-epage-foot-link:hover {
    text-decoration: underline !important;
}

.jctv-epaper-empty {
    padding: 48px 20px;
    text-align: center;
    color: #667085;
    background: var(--jctv-surface);
    border-radius: 12px;
}

.jctv-epaper-empty a {
    color: var(--jctv-navy);
    font-weight: 700;
}

.jctv-epaper-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 18px;
}

.jctv-epaper-card {
    display: flex;
    flex-direction: column;
    text-decoration: none !important;
    color: inherit;
    background: #fff;
    border: 1px solid var(--jctv-line);
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.jctv-epaper-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(15, 61, 50, 0.1);
}

.jctv-epaper-card-thumb {
    position: relative;
    display: block;
    aspect-ratio: 2 / 3.15;
    min-height: 380px;
    background-color: #e8eee9;
    background-position: top center;
    background-size: contain;
    background-repeat: no-repeat;
}

.jctv-epaper-card-badge {
    position: absolute;
    left: 10px;
    top: 10px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(15, 61, 50, 0.88);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
}

.jctv-epaper-card-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 14px 16px;
}

.jctv-epaper-card-body strong {
    font-size: 1.05rem;
    color: var(--jctv-navy);
}

.jctv-epaper-card-body em {
    font-style: normal;
    font-size: 0.86rem;
    color: #5c7369;
}

.jctv-epaper-card-sum {
    margin-top: 4px;
    font-size: 0.84rem;
    color: #7a8f86;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 열람기 */
.jctv-ereader {
    max-width: 1320px;
    margin: 0 auto 48px;
    padding: 12px 12px 32px;
    min-width: 0;
    overflow: visible;
}

.jctv-ereader-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.jctv-ereader-back {
    color: var(--jctv-navy) !important;
    font-weight: 700;
    text-decoration: none !important;
}

.jctv-ereader-meta {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 2px;
}

.jctv-ereader-meta strong {
    color: var(--jctv-navy);
    font-size: 1.05rem;
}

.jctv-ereader-meta span,
.jctv-ereader-count {
    font-size: 0.86rem;
    color: #5c7369;
}

.jctv-ereader-stage {
    position: relative;
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 8px;
    min-height: 420px;
    min-width: 0;
}

.jctv-ereader-frame {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    max-width: 1180px;
    background: #0a2a23;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 16px 40px rgba(15, 61, 50, 0.18);
}

.jctv-ereader-nav {
    flex: 0 0 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--jctv-line);
    color: var(--jctv-navy) !important;
    text-decoration: none !important;
    font-size: 1.1rem;
}

.jctv-ereader-nav:hover {
    background: var(--jctv-bg-ads);
}

.jctv-ereader-cover {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
    min-height: 520px;
    padding: 36px 28px 40px;
    background:
        radial-gradient(ellipse at 50% 0%, rgba(43, 182, 115, 0.22), transparent 55%),
        linear-gradient(165deg, #0a2a23 0%, #0f3d32 55%, #176b52 100%);
    color: #fff;
}

.jctv-ereader-cover-eye {
    margin: 0 0 12px;
    font-size: 0.72rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.65);
}

.jctv-ereader-cover-title {
    margin: 0;
    font-size: clamp(2rem, 6vw, 3rem);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.15;
}

.jctv-ereader-cover-date {
    margin: 16px 0 0;
    font-size: 1.1rem;
    color: rgba(255, 255, 255, 0.9);
}

.jctv-ereader-cover-no {
    margin: 8px 0 0;
    font-size: 0.95rem;
    color: #e8b84a;
    font-weight: 700;
}

.jctv-ereader-cover-sum-label {
    margin: 22px 0 0;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #e8b84a;
}

.jctv-ereader-cover-sum {
    margin: 8px 0 0;
    max-width: 26em;
    padding: 12px 16px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.18);
    font-size: clamp(1.05rem, 2.4vw, 1.22rem);
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: -0.02em;
    color: #fff;
    word-break: keep-all;
}

.jctv-ereader-cover-preview {
    margin-top: 26px;
    width: min(100%, 280px);
    border-radius: 10px;
    overflow: hidden;
    border: 2px solid rgba(255, 255, 255, 0.28);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
    background: #111;
}

.jctv-ereader-cover-preview img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 2 / 3.15;
    object-fit: contain;
    object-position: top center;
    vertical-align: top;
    background: #111;
}

.jctv-ereader-cover-cta {
    margin-top: 22px;
    padding: 12px 16px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.18);
}

.jctv-ereader-cover-cta p {
    margin: 0 0 8px;
    font-size: 0.9rem;
}

.jctv-ereader-cover-cta a {
    color: #e8b84a !important;
    font-weight: 800;
    text-decoration: none !important;
}

.jctv-ereader-cover-start {
    margin-top: 18px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 13px 26px;
    border-radius: 999px;
    background: #fff;
    color: #0f3d32 !important;
    font-size: 1.05rem;
    font-weight: 800;
    text-decoration: none !important;
}

.jctv-ereader-page {
    position: relative;
    margin: 0;
    background: #111;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
}

.jctv-ereader-page-scroll {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
}

.jctv-ereader-page-tools {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px 4px;
    background: #0a2a23;
}

.jctv-ereader-hscroll {
    flex: 1 1 auto;
    min-width: 0;
    height: 18px;
    overflow-x: auto;
    overflow-y: hidden;
}

.jctv-ereader-hscroll-inner {
    height: 1px;
}

.jctv-ereader-page img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    vertical-align: top;
    transition: width 0.22s ease;
}

.jctv-ereader-zoom-btn {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    font-size: 1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.jctv-ereader-zoom-btn:hover {
    background: rgba(255, 255, 255, 0.24);
}

.jctv-ereader-zoom-btn:disabled {
    opacity: 0.38;
    cursor: default;
}

.jctv-ereader-thumbs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 16px 4px 4px;
    -webkit-overflow-scrolling: touch;
}

.jctv-ereader-thumb {
    position: relative;
    flex: 0 0 56px;
    width: 56px;
    height: 74px;
    border-radius: 6px;
    border: 2px solid transparent;
    background: #dfeae4 center/cover no-repeat;
    text-decoration: none !important;
    overflow: hidden;
}

.jctv-ereader-thumb.on {
    border-color: var(--jctv-accent);
    box-shadow: 0 0 0 2px rgba(43, 182, 115, 0.25);
}

.jctv-ereader-thumb-cover,
.jctv-ereader-thumb-no {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 800;
    color: #fff;
    background: rgba(15, 61, 50, 0.55);
}

.jctv-ereader-thumb-cover {
    background: linear-gradient(160deg, #0f3d32, #176b52);
}

@media (max-width: 767.98px) {
    .jctv-ereader-nav {
        display: none;
    }

    .jctv-ereader-cover {
        min-height: 0;
        padding: 28px 18px 32px;
    }

    .jctv-ereader-cover-preview {
        width: min(100%, 220px);
    }

    .jctv-ereader-meta {
        order: 3;
        width: 100%;
    }

    .jctv-epage {
        padding: 24px 16px 40px;
    }

    .jctv-epage-admin-btn {
        min-width: 0;
        width: 100%;
        max-width: 320px;
        font-size: 1.12rem;
        min-height: 54px;
    }
}

/* ---------- 메인 구독 CTA ---------- */
.jctv-subscribe-cta {
    padding: 40px 0 48px;
    background: linear-gradient(180deg, #f3f7f5 0%, #eaf3ee 100%);
    border-top: 1px solid var(--jctv-line);
}

.jctv-subscribe-cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    padding: 8px 0;
}

.jctv-subscribe-cta-eye {
    margin: 0 0 6px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #7a8f86;
}

.jctv-subscribe-cta-title {
    margin: 0;
    font-size: 1.55rem;
    font-weight: 800;
    color: var(--jctv-navy);
    letter-spacing: -0.03em;
}

.jctv-subscribe-cta-lead {
    margin: 10px 0 0;
    color: #5c7369;
    font-size: 0.98rem;
    line-height: 1.55;
}

.jctv-subscribe-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.jctv-subscribe-cta-btn {
    min-width: 148px;
}

.jctv-subscribe-cta-link {
    min-width: 140px;
}

/* ---------- 구독신청 페이지 ---------- */
.jctv-subpage {
    max-width: 880px;
    margin: 0 auto 64px;
    padding: 32px 16px 48px;
}

.jctv-subpage-hero {
    text-align: center;
    padding: 12px 0 36px;
}

.jctv-subpage-kicker {
    margin: 0 0 10px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #7a8f86;
}

.jctv-subpage-h1 {
    margin: 0;
    font-size: clamp(2rem, 4.5vw, 2.6rem);
    font-weight: 800;
    color: var(--jctv-navy);
    letter-spacing: -0.04em;
}

.jctv-subpage-lead {
    margin: 14px 0 0;
    color: #5c7369;
    line-height: 1.6;
}

.jctv-subpage-admin {
    display: inline-block;
    margin-top: 14px;
    color: var(--jctv-navy) !important;
    font-weight: 700;
}

.jctv-subpage-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-bottom: 36px;
}

.jctv-subpage-box {
    padding: 20px 18px;
    background: #f7faf8;
    border: 1px solid var(--jctv-line);
    border-radius: 10px;
}

.jctv-subpage-box h2 {
    margin: 0 0 10px;
    font-size: 0.95rem;
    color: var(--jctv-navy);
}

.jctv-subpage-box p {
    margin: 0 0 8px;
    color: #5c7369;
    font-size: 0.92rem;
    line-height: 1.5;
}

.jctv-subpage-admin-bar {
    margin: 22px auto 0;
    max-width: 560px;
    padding: 20px 22px 22px;
    background: #fff;
    border: 2px solid var(--jctv-navy);
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(15, 61, 50, 0.1);
    text-align: center;
}

.jctv-subpage-admin-title {
    margin: 0;
    font-size: 1.45rem;
    font-weight: 800;
    color: var(--jctv-navy);
    letter-spacing: -0.03em;
}

.jctv-subpage-admin-desc {
    margin: 8px 0 0;
    font-size: 0.92rem;
    color: #5c7369;
}

.jctv-subpage-admin-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-top: 16px;
}

.jctv-subpage-admin-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 160px;
    padding: 12px 18px;
    border-radius: 8px;
    background: var(--jctv-navy);
    color: #fff !important;
    font-size: 1.02rem;
    font-weight: 800;
    text-decoration: none !important;
}

.jctv-subpage-admin-btn:hover {
    background: #176b52;
}

.jctv-subpage-admin-btn-alt {
    background: #fff;
    color: var(--jctv-navy) !important;
    border: 2px solid var(--jctv-navy);
}

.jctv-subpage-admin-btn-alt:hover {
    background: #eaf3ee;
}

.jctv-subpage-admin {
    display: none;
}

.jctv-subpage-price {
    font-size: 1.15rem !important;
    color: #1a2e28 !important;
}

.jctv-subpage-price strong {
    font-size: 1.45rem;
    color: var(--jctv-navy);
}

.jctv-subpage-bank {
    font-weight: 700 !important;
    color: #1a2e28 !important;
}

.jctv-subpage-note {
    font-size: 0.84rem !important;
}

.jctv-sub-zip-row {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    margin-bottom: 4px;
}

.jctv-sub-zip-field {
    flex: 1 1 auto;
    margin-bottom: 12px;
}

.jctv-sub-zip-btn {
    flex: 0 0 auto;
    margin-bottom: 12px;
    padding: 11px 16px;
    border: 0;
    border-radius: 8px;
    background: var(--jctv-navy);
    color: #fff;
    font-weight: 700;
    font-size: 0.92rem;
    cursor: pointer;
    white-space: nowrap;
}

.jctv-sub-zip-btn:hover {
    background: #176b52;
}

.jctv-subpage-h2 {
    margin: 0 0 8px;
    font-size: 1.35rem;
    color: var(--jctv-navy);
    font-weight: 800;
}

.jctv-subpage-form-lead {
    margin: 0 0 20px;
    color: #5c7369;
}

.jctv-subpage-form fieldset {
    margin: 0 0 22px;
    padding: 18px 16px 8px;
    border: 1px solid var(--jctv-line);
    border-radius: 10px;
}

.jctv-subpage-form legend {
    padding: 0 8px;
    font-weight: 800;
    color: var(--jctv-navy);
}

.jctv-sub-grid2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.jctv-sub-field {
    display: block;
    margin-bottom: 12px;
    font-weight: 700;
    font-size: 0.88rem;
    color: #344054;
}

.jctv-sub-field em {
    color: #b42318;
    font-style: normal;
}

.jctv-sub-field input,
.jctv-sub-field textarea {
    display: block;
    width: 100%;
    margin-top: 6px;
    padding: 10px 12px;
    border: 1px solid #d0d5dd;
    border-radius: 8px;
    box-sizing: border-box;
    font-weight: 400;
}

.jctv-sub-pay {
    display: grid;
    gap: 10px;
    margin-bottom: 14px;
}

.jctv-sub-pay-opt {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 12px 14px;
    background: #f7faf8;
    border: 1px solid var(--jctv-line);
    border-radius: 8px;
    cursor: pointer;
}

.jctv-sub-pay-opt strong {
    color: #1a2e28;
}

.jctv-sub-agree {
    margin: 8px 0 18px;
    padding: 14px;
    background: #f8faf9;
    border-radius: 8px;
    font-size: 0.86rem;
    color: #5c7369;
    line-height: 1.5;
}

.jctv-sub-agree label {
    display: block;
    margin-top: 10px;
    font-weight: 700;
    color: #1a2e28;
}

.jctv-sub-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 200px;
    padding: 14px 24px;
    border: 0;
    border-radius: 8px;
    background: var(--jctv-navy);
    color: #fff;
    font-size: 1.05rem;
    font-weight: 800;
    cursor: pointer;
}

.jctv-sub-honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.jctv-subpage-err {
    margin-bottom: 16px;
    padding: 12px 14px;
    background: #fef3f2;
    border: 1px solid #fecdca;
    color: #b42318;
    border-radius: 8px;
}

.jctv-subpage-done {
    text-align: center;
    padding: 36px 20px;
    background: #f3faf6;
    border: 1px solid #abefc6;
    border-radius: 12px;
}

.jctv-subpage-done h2 {
    margin: 0 0 10px;
    color: #067647;
}

.jctv-subpage-done-bank {
    margin: 18px auto;
    max-width: 420px;
    padding: 14px;
    background: #fff;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.jctv-subpage-done-actions {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
}

.jctv-subpage-done-actions a {
    color: var(--jctv-navy);
    font-weight: 700;
}

@media (max-width: 900px) {
    .jctv-subpage-info-grid,
    .jctv-sub-grid2 {
        grid-template-columns: 1fr;
    }
}

/* ---------- 지역 공공기관 ---------- */
.jctv-civic-section {
    padding: 32px 0 36px;
    background: #fff;
    border-top: 1px solid var(--jctv-line);
}

.jctv-civic-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.jctv-civic-head-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.jctv-civic-strip-eye {
    margin: 0 0 4px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #7a8f86;
}

.jctv-civic-strip-title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--jctv-navy);
    letter-spacing: -0.03em;
}

.jctv-civic-strip-lead {
    margin: 6px 0 0;
    color: #5c7369;
    font-size: 0.92rem;
}

.jctv-civic-banners {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    align-items: stretch;
}

.jctv-civic-banner {
    display: block;
    overflow: hidden;
    border: 1px solid var(--jctv-line);
    background: #fff;
    aspect-ratio: 3 / 2;
    width: 100%;
    height: auto;
    box-sizing: border-box;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.jctv-civic-banner img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    background: #fff;
}

.jctv-civic-banner.is-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #7a8f86;
    font-size: 0.88rem;
    font-weight: 700;
    text-decoration: none !important;
    border-style: dashed;
}

.jctv-civic-banner:hover {
    border-color: #c5d9ce;
    box-shadow: 0 8px 22px rgba(15, 61, 50, 0.1);
    transform: translateY(-2px);
}

/* civic chips: secondary/ghost 위계 (공통 규칙 사용) */
.jctv-civic-chip.is-news {
    min-width: 120px;
}

@media (max-width: 900px) {
    .jctv-civic-banners {
        grid-template-columns: 1fr;
    }
}

/* 모바일 왼쪽 하단 회원 사이드바 버튼 숨김 */
.sidebar-user-btn,
.sidebar-user-btn.mo-btn {
    display: none !important;
}

/* 상담문의 플로팅 + 최고관리자 숨김/노출 */
.jctv-counsel-wrap {
    position: fixed;
    bottom: 65px;
    right: 10px;
    z-index: 1001;
}
.jctv-counsel-wrap .counsel-btn {
    position: static;
    bottom: auto;
    right: auto;
}
.jctv-counsel-toggle {
    position: absolute;
    top: -10px;
    left: -18px;
    min-width: 36px;
    height: 20px;
    padding: 0 6px;
    border: 0;
    border-radius: 10px;
    background: #1d2939;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    line-height: 20px;
    cursor: pointer;
    z-index: 2;
}
.jctv-counsel-wrap.is-hidden .counsel-btn {
    opacity: .45;
    background: #667085;
}
.jctv-counsel-wrap.is-hidden .jctv-counsel-toggle {
    background: #027a48;
}
@media (max-width: 991px) {
    .jctv-counsel-wrap {
        bottom: 10px;
        right: 65px;
    }
}

/* 메인 A4 세로 팝업 — PC 우측, 여러 장 나란히 (누적 축소 유지, 최근 -7%) */
.jctv-popup-root {
    position: fixed;
    top: var(--jctv-popup-top, 200px);
    right: 18px;
    left: auto;
    bottom: auto;
    z-index: 12050;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
    pointer-events: none;
    font-family: Pretendard, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}
.jctv-popup-root[hidden] {
    display: none !important;
}
.jctv-popup-stage {
    position: relative;
    display: flex;
    flex-direction: row-reverse;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 14px;
    width: auto;
    max-width: calc(100vw - 36px);
    height: auto;
    max-height: calc(100vh - var(--jctv-popup-top, 200px) - 18px);
    overflow: auto;
    pointer-events: none;
}
.jctv-popup-card {
    position: relative;
    left: auto;
    top: auto;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: 397px;
    flex: 0 0 397px;
    transform: none;
    pointer-events: auto;
    background: #fff;
    border: 1px solid #d8e0db;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(15, 23, 22, .16);
}
.jctv-popup-card[data-popup-i="1"],
.jctv-popup-card[data-popup-i="2"] {
    transform: none;
}
.jctv-popup-card.is-current {
    z-index: 5;
}
.jctv-popup-art {
    display: block;
    width: 100%;
    aspect-ratio: 210 / 297;
    background: #e8eee9;
    overflow: hidden;
}
.jctv-popup-art img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    vertical-align: top;
}
.jctv-popup-art-video {
    background: #0f1514;
}
.jctv-popup-art video,
.jctv-popup-art iframe {
    width: 100%;
    height: 100%;
    border: 0;
    object-fit: contain;
    background: #000;
    vertical-align: top;
}
.jctv-popup-x {
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 2;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 50%;
    background: rgba(15, 23, 22, .5);
    color: #fff;
    font-size: 20px;
    line-height: 28px;
    cursor: pointer;
}
.jctv-popup-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 7px 10px;
    background: #0f3d32;
    color: #e8f5ef;
    font-size: 11px;
}
.jctv-popup-bar label {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    cursor: pointer;
}
.jctv-popup-bar button {
    border: 0;
    background: transparent;
    color: #fff;
    font-weight: 800;
    cursor: pointer;
    padding: 4px 2px;
}
.jctv-popup-pager {
    display: none;
    pointer-events: auto;
    margin-top: 8px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 397px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(15, 23, 22, .78);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}
.jctv-popup-pager button {
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

@media (max-height: 820px) and (min-width: 768px) {
    .jctv-popup-stage {
        width: auto;
        height: auto;
    }
    .jctv-popup-card {
        width: 343px;
        flex-basis: 343px;
    }
    .jctv-popup-pager {
        width: 343px;
    }
}

@media (max-width: 1279px) and (min-width: 768px) {
    .jctv-popup-stage {
        width: auto;
        height: auto;
    }
    .jctv-popup-card {
        width: 343px;
        flex-basis: 343px;
    }
    .jctv-popup-pager {
        width: 343px;
    }
}

@media (max-width: 767px) {
    /* 모바일: 활성 팝업을 세로로 모두 표시 (PC처럼 여러 장 확인 가능) */
    .jctv-popup-root {
        top: 10px;
        left: 0;
        right: 0;
        bottom: 10px;
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
        max-height: calc(100vh - 20px);
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        pointer-events: auto;
        padding: 0 10px;
        box-sizing: border-box;
    }
    .jctv-popup-stage {
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
        justify-content: flex-start;
        align-items: stretch;
        gap: 12px;
        width: min(255px, calc(100vw - 20px));
        max-width: min(255px, calc(100vw - 20px));
        height: auto;
        max-height: none;
        min-height: 0;
        overflow: visible;
        pointer-events: auto;
    }
    .jctv-popup-card {
        display: flex !important;
        position: relative;
        transform: none !important;
        flex: 0 0 auto;
        width: 100%;
        max-width: 100%;
    }
    .jctv-popup-art {
        max-height: 42vh;
    }
    .jctv-popup-pager {
        display: none !important;
    }
}

/* 방문자: 이미지 우클릭·드래그 복사 억제 (완전 차단은 불가) */
body.jctv-img-protect img,
body.jctv-img-protect video {
    -webkit-user-drag: none;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}

.jctv-ereader-online {
    max-width: 920px;
    margin: 0 auto 48px;
    padding: 0 16px 8px;
}
.jctv-ereader-online h2 {
    margin: 28px 0 6px;
    font-size: 1.15rem;
    color: #0f3d32;
}
.jctv-ereader-online p {
    margin: 0 0 12px;
    color: #667085;
    font-size: .88rem;
}
.jctv-ereader-online ul {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid #d5e5dc;
}
.jctv-ereader-online li {
    display: flex;
    gap: 10px;
    align-items: baseline;
    padding: 10px 0;
    border-bottom: 1px solid #eef2ee;
}
.jctv-ereader-online em {
    flex: 0 0 4.5rem;
    font-style: normal;
    font-size: .78rem;
    font-weight: 800;
    color: #176b52;
}
.jctv-ereader-online a {
    color: #14241f;
    text-decoration: none;
    font-weight: 600;
}
.jctv-ereader-online a:hover {
    color: #0f3d32;
    text-decoration: underline;
}


/* ---------- 전북 날씨: 메인 요약 바 + 상세 페이지 ---------- */
.jctv-wxstrip {
    display: block;
    text-decoration: none !important;
    color: inherit !important;
    background: linear-gradient(90deg, #0a2a23 0%, #0f3d32 48%, #176b52 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    font-family: Pretendard, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
    transition: filter 0.2s ease, transform 0.2s ease;
}
.jctv-wxstrip:hover {
    filter: brightness(1.06);
}
.jctv-wxstrip:focus-visible {
    outline: 2px solid #2bb673;
    outline-offset: -2px;
}
.jctv-wxstrip-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 11px 20px;
    display: flex;
    align-items: center;
    gap: 12px 16px;
    flex-wrap: wrap;
    color: #f3f7f5;
}
.jctv-wxstrip-badge {
    flex: 0 0 auto;
    padding: 2px 8px;
    border-radius: 999px;
    background: #e8b84a;
    color: #1b2437;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: -0.02em;
}
.jctv-wxstrip-brand {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-weight: 800;
    font-size: 0.95rem;
    letter-spacing: -0.03em;
    white-space: nowrap;
}
.jctv-wxstrip-brand i {
    color: #9fe0c0;
    font-size: 1rem;
}
.jctv-wxstrip-sum {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.92);
}
.jctv-wxstrip-sum strong {
    font-weight: 800;
    color: #fff;
}
.jctv-wxstrip-sum em {
    font-style: normal;
    font-size: 1.15rem;
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.04em;
}
.jctv-wxstrip-sum > i {
    color: #9fe0c0;
}
.jctv-wxstrip-minmax {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.82rem;
    font-weight: 600;
}
.jctv-wxstrip-go {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    font-weight: 700;
    color: #c8f0da;
    white-space: nowrap;
}
.jctv-wxstrip-go i {
    font-size: 0.72rem;
    transition: transform 0.2s ease;
}
.jctv-wxstrip:hover .jctv-wxstrip-go i {
    transform: translateX(3px);
}

@media (max-width: 767.98px) {
    .jctv-wxstrip-inner {
        padding: 7px 12px;
        gap: 6px 8px;
        flex-wrap: nowrap;
    }
    .jctv-wxstrip-brand {
        font-size: 0.82rem;
        gap: 5px;
    }
    .jctv-wxstrip-brand i {
        font-size: 0.88rem;
    }
    .jctv-wxstrip-sum {
        gap: 5px;
        font-size: 0.8rem;
        overflow: hidden;
    }
    .jctv-wxstrip-sum em {
        font-size: 0.98rem;
    }
    .jctv-wxstrip-minmax {
        display: none;
    }
    .jctv-wxstrip-go {
        width: auto;
        margin-left: auto;
        flex: 0 0 auto;
        font-size: 0.72rem;
        gap: 3px;
    }
    .jctv-wxstrip-go .go-full {
        display: none;
    }
    .jctv-wxstrip-go .go-short {
        display: inline;
    }
}
@media (min-width: 768px) {
    .jctv-wxstrip-go .go-short {
        display: none;
    }
}

/* 상세 페이지 */
.jctv-wxpage {
    max-width: 1080px;
    margin: 0 auto 56px;
    padding: 0 16px;
    font-family: Pretendard, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
    color: #1b2437;
}
.jctv-wxpage-hero {
    margin: 8px 0 22px;
    padding: 0;
    border-radius: 16px;
    overflow: hidden;
    background:
        radial-gradient(90% 120% at 92% 18%, rgba(255, 214, 102, 0.22), transparent 42%),
        radial-gradient(70% 90% at 78% 78%, rgba(43, 182, 115, 0.28), transparent 50%),
        linear-gradient(135deg, #0a2a23 0%, #0f3d32 52%, #145a45 100%);
    color: #f3f7f5;
}
.jctv-wxpage-hero-inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 28px 28px 28px 26px;
    min-height: 148px;
}
.jctv-wxpage-hero-copy {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    min-width: 0;
}
.jctv-wxpage-kicker {
    margin: 0 0 6px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #9fe0c0;
}
.jctv-wxpage-h1 {
    margin: 0 0 8px;
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    font-weight: 800;
    letter-spacing: -0.04em;
}
.jctv-wxpage-lead {
    margin: 0;
    max-width: 28em;
    font-size: 0.95rem;
    line-height: 1.55;
    color: rgba(243, 247, 245, 0.86);
}
.jctv-wxpage-hero-art {
    position: relative;
    flex: 0 0 240px;
    width: 240px;
    height: 140px;
    z-index: 1;
}
.jctv-wxpage-hero-art .wx-art {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border-radius: 0;
    box-shadow: none;
    filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.18));
}
.jctv-wxpage-hero-art .wx-art-sun {
    right: 6px;
    top: 4px;
    font-size: 2.35rem;
    color: #ffd76a;
    animation: jctv-wx-float-a 6.5s ease-in-out infinite;
}
.jctv-wxpage-hero-art .wx-art-cloud {
    left: 8px;
    top: 36px;
    font-size: 2rem;
    color: rgba(255, 255, 255, 0.92);
    animation: jctv-wx-float-b 7.8s ease-in-out infinite;
}
.jctv-wxpage-hero-art .wx-art-rain {
    right: 72px;
    bottom: 8px;
    font-size: 1.85rem;
    color: #8ec8ef;
    animation: jctv-wx-float-c 7.2s ease-in-out infinite 0.35s;
}
.jctv-wxpage-hero-art .wx-art-leaf {
    left: 88px;
    bottom: 18px;
    font-size: 1.45rem;
    color: #7ee0b0;
    animation: jctv-wx-float-d 8.4s ease-in-out infinite 0.7s;
}
@keyframes jctv-wx-float-a {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    40% { transform: translate(-4px, -10px) rotate(8deg); }
    70% { transform: translate(3px, -4px) rotate(-4deg); }
}
@keyframes jctv-wx-float-b {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(10px, -8px); }
}
@keyframes jctv-wx-float-c {
    0%, 100% { transform: translate(0, 0); }
    45% { transform: translate(-6px, -12px); }
    75% { transform: translate(4px, -5px); }
}
@keyframes jctv-wx-float-d {
    0%, 100% { transform: translate(0, 0) rotate(-8deg); }
    50% { transform: translate(6px, -14px) rotate(10deg); }
}
@media (prefers-reduced-motion: reduce) {
    .jctv-wxpage-hero-art .wx-art {
        animation: none;
    }
}
.jctv-wxpage-tools {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
}
.jctv-wxpage-badge {
    display: inline-block;
    padding: 3px 9px;
    border-radius: 999px;
    background: #e8b84a;
    color: #1b2437;
    font-size: 0.72rem;
    font-weight: 800;
}
.jctv-wxpage-set {
    color: #c8f0da !important;
    font-size: 0.84rem;
    font-weight: 700;
    text-decoration: none !important;
}
.jctv-wxpage-set:hover {
    color: #fff !important;
    text-decoration: underline !important;
}
.jctv-wxpage-panel {
    background: #fff;
    border: 1px solid #d5e5dc;
    border-radius: 16px;
    padding: 18px 18px 22px;
    box-shadow: 0 10px 28px rgba(15, 61, 50, 0.06);
}
.jctv-wxpage-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}
.jctv-wxpage-chip {
    display: inline-flex;
    align-items: center;
    padding: 7px 14px;
    border-radius: 999px;
    border: 1px solid #c5d6cc;
    background: #f7fbf8;
    color: #334155 !important;
    font-size: 0.86rem;
    font-weight: 700;
    text-decoration: none !important;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.jctv-wxpage-chip:hover {
    border-color: #0f3d32;
    color: #0f3d32 !important;
}
.jctv-wxpage-chip.is-on {
    background: #0f3d32;
    border-color: #0f3d32;
    color: #fff !important;
}
.jctv-wxpage-focus {
    display: grid;
    gap: 10px;
    padding: 18px 18px 16px;
    margin-bottom: 22px;
    border-radius: 14px;
    background: linear-gradient(180deg, #f3f7f5 0%, #eaf3ee 100%);
    border: 1px solid #d5e5dc;
}
.jctv-wxpage-place {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 800;
    color: #0f3d32;
    letter-spacing: -0.03em;
}
.jctv-wxpage-place span {
    margin-left: 8px;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(15, 61, 50, 0.08);
    color: #176b52;
    font-size: 0.75rem;
    font-weight: 700;
    vertical-align: middle;
}
.jctv-wxpage-now {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.jctv-wxpage-now > i {
    font-size: 2rem;
    color: #176b52;
}
.jctv-wxpage-now strong {
    font-size: clamp(2.4rem, 6vw, 3.2rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.05em;
    color: #0a2a23;
}
.jctv-wxpage-now small {
    font-size: 0.55em;
    font-weight: 700;
}
.jctv-wxpage-now em {
    font-style: normal;
    font-size: 1.05rem;
    font-weight: 700;
    color: #334155;
}
.jctv-wxpage-range {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    font-size: 0.9rem;
    color: #667085;
}
.jctv-wxpage-range b {
    color: #0f3d32;
    font-weight: 800;
}
.jctv-wxpage-meta {
    margin: 0;
    font-size: 0.78rem;
    color: #98a2b3;
}
.jctv-wxpage-h2 {
    margin: 0 0 12px;
    font-size: 1.05rem;
    font-weight: 800;
    color: #0f3d32;
    letter-spacing: -0.03em;
}
.jctv-wxpage-week {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
    gap: 10px;
}
.jctv-wxpage-day {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 14px 10px 12px;
    border-radius: 12px;
    border: 1px solid #e2ebe5;
    background: #fff;
    text-align: center;
}
.jctv-wxpage-day.is-today {
    border-color: #2bb673;
    box-shadow: 0 0 0 1px rgba(43, 182, 115, 0.28), 0 8px 18px rgba(15, 61, 50, 0.06);
}
.jctv-wxpage-day.is-selected,
.jctv-wxpage-day.is-toggle.is-open {
    border-color: #2bb673;
    background: #f3faf6;
}
.jctv-wxpage-day.is-toggle {
    cursor: pointer;
    font: inherit;
    color: inherit;
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    transition: background 0.2s ease, box-shadow 0.2s ease;
}
.jctv-wxpage-day.is-toggle:hover,
.jctv-wxpage-day.is-toggle:focus-visible {
    background: #f3faf6;
    outline: none;
}
.jctv-wxpage-day .w-chev {
    margin-left: 4px;
    font-size: 0.65rem;
    color: #2bb673;
    transition: transform 0.2s ease;
}
.jctv-wxpage-day.is-open .w-chev {
    transform: rotate(180deg);
}
.jctv-wxpage-hint {
    margin: -4px 0 12px;
    font-size: 0.82rem;
    color: #667085;
}
.jctv-wxpage-h3 {
    margin: 0 0 12px;
    font-size: 0.95rem;
    font-weight: 800;
    color: #0f3d32;
}
.jctv-wxpage-hours {
    display: none;
    margin-top: 14px;
    padding: 16px 14px 12px;
    border-radius: 14px;
    border: 1px solid #d8ebe1;
    background: linear-gradient(180deg, #f7fcf9 0%, #fff 100%);
}
.jctv-wxpage-hours.is-open {
    display: block;
    animation: jctv-wx-fade 0.25s ease;
}
@keyframes jctv-wx-fade {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}
.jctv-wxpage-hours-track {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.jctv-wxpage-hour {
    flex: 0 0 auto;
    min-width: 72px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 10px 8px;
    border-radius: 10px;
    background: #fff;
    border: 1px solid #e8f0ec;
}
.jctv-wxpage-hour .h-time {
    font-size: 0.78rem;
    font-weight: 800;
    color: #0f3d32;
}
.jctv-wxpage-hour > i {
    font-size: 1.1rem;
    color: #176b52;
    margin: 2px 0;
}
.jctv-wxpage-hour .h-tmp {
    font-size: 1rem;
    font-weight: 800;
    color: #0f3d32;
}
.jctv-wxpage-hour .h-sky {
    font-size: 0.7rem;
    font-weight: 700;
    color: #64748b;
}
.jctv-wxpage-hour .h-pcp {
    font-size: 0.7rem;
    font-weight: 800;
    color: #1d6fa5;
    line-height: 1.2;
}
.jctv-wxpage-hour .h-pop {
    font-size: 0.68rem;
    color: #94a3b8;
}
.jctv-wxpage-day .w-label {
    font-weight: 800;
    color: #0f3d32;
    font-size: 0.9rem;
}
.jctv-wxpage-day .w-md {
    font-size: 0.75rem;
    color: #98a2b3;
}
.jctv-wxpage-day > i {
    margin: 6px 0 2px;
    font-size: 1.35rem;
    color: #176b52;
}
.jctv-wxpage-day .w-sky {
    font-size: 0.78rem;
    font-weight: 700;
    color: #475569;
}
.jctv-wxpage-day .w-temp {
    display: flex;
    gap: 6px;
    align-items: baseline;
    font-size: 0.9rem;
}
.jctv-wxpage-day .w-temp em {
    font-style: normal;
    color: #64748b;
    font-weight: 700;
}
.jctv-wxpage-day .w-temp b {
    color: #0f3d32;
    font-weight: 800;
}
.jctv-wxpage-day .w-pop {
    font-size: 0.72rem;
    color: #94a3b8;
}
.jctv-wxpage-empty {
    padding: 28px 16px;
    text-align: center;
    color: #667085;
}
.jctv-wxpage-empty a {
    display: inline-block;
    margin-top: 8px;
    color: #0f3d32;
    font-weight: 800;
}
.jctv-wxpage-source {
    margin: 16px 4px 0;
    font-size: 0.78rem;
    color: #98a2b3;
    text-align: right;
}

@media (max-width: 767.98px) {
    .jctv-wxpage-hero {
        border-radius: 12px;
    }
    .jctv-wxpage-hero-inner {
        padding: 22px 16px 22px 18px;
        min-height: 0;
        gap: 10px;
    }
    .jctv-wxpage-hero-art {
        flex: 0 0 108px;
        width: 108px;
        height: 84px;
    }
    .jctv-wxpage-hero-art .wx-art-sun {
        font-size: 1.45rem;
        right: 2px;
        top: 2px;
    }
    .jctv-wxpage-hero-art .wx-art-cloud {
        font-size: 1.25rem;
        left: 2px;
        top: 24px;
    }
    .jctv-wxpage-hero-art .wx-art-rain {
        font-size: 1.15rem;
        right: 30px;
        bottom: 4px;
    }
    .jctv-wxpage-hero-art .wx-art-leaf {
        font-size: 0.95rem;
        left: 40px;
        bottom: 10px;
    }
    .jctv-wxpage-panel {
        padding: 14px;
        border-radius: 12px;
    }
    .jctv-wxpage-chips {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: 4px;
    }
    .jctv-wxpage-chips::-webkit-scrollbar { display: none; }
    .jctv-wxpage-chip { flex: 0 0 auto; }
    .jctv-wxpage-week {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
