/**
 * Grace Message 테마 시스템
 * 파일위치: /assets/css/grace-theme.css
 *
 * 다크/라이트 테마 CSS 변수 정의
 * 모든 grace-*.css 보다 먼저 로드
 * html[data-theme="dark"|"light"] 전환
 */

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 * COMMON (테마 무관)
 * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
:root {
    --grace-font-kr: 'Pretendard', -apple-system, BlinkMacSystemFont, sans-serif;
    --grace-font-en: 'Pretendard', sans-serif;
    --grace-radius-xs: 6px;
    --grace-radius-sm: 8px;
    --grace-radius: 12px;
    --grace-radius-lg: 16px;
    --grace-radius-xl: 20px;
    --grace-radius-full: 100px;
    --grace-content-max: 1400px;
    --grace-side: clamp(10px, 3vw, 24px);
    --grace-transition: 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 * DARK THEME (Default)
 * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
html[data-theme="dark"],
:root {
    /* ── Backgrounds ── */
    --grace-bg-deep:       #08090e;
    --grace-bg-surface:    #0e1017;
    --grace-bg-card:       #13151e;
    --grace-bg-card-hover: #191c28;
    --grace-bg-elevated:   #1c1f2e;
    --grace-bg-input:      #161824;

    /* ── Accent ── */
    --grace-primary:       #6c5ce7;
    --grace-primary-light: #a29bfe;
    --grace-primary-dark:  #5a4bd6;
    --grace-primary-dim:   rgba(108, 92, 231, 0.12);
    --grace-primary-glow:  rgba(108, 92, 231, 0.3);

    --grace-secondary:     #06b6d4;
    --grace-success:       #26de81;
    --grace-warning:       #f5a623;
    --grace-danger:        #ff4757;

    /* ── Text ── */
    --grace-text-primary:   #eef0f6;
    --grace-text-secondary: #8b8fa8;
    --grace-text-muted:     #505468;
    --grace-text-inverse:   #1a1c2e;

    /* ── Border & Glass ── */
    --grace-border:         rgba(255, 255, 255, 0.07);
    --grace-border-hover:   rgba(255, 255, 255, 0.12);
    --grace-glass:          rgba(255, 255, 255, 0.04);
    --grace-glass-hover:    rgba(255, 255, 255, 0.08);

    /* ── Header ── */
    --grace-header-bg:      rgba(8, 9, 14, 0.85);
    --grace-header-blur:    blur(20px) saturate(1.4);

    /* ── Hero ── */
    --grace-hero-bg:        linear-gradient(165deg, #0e1028 0%, #1a1040 40%, #0d0d1a 100%);
    --grace-hero-glow1:     rgba(108, 92, 231, 0.08);
    --grace-hero-glow2:     rgba(100, 80, 200, 0.05);
    --grace-filter-bg:      linear-gradient(180deg, #12102a 0%, #08090e 100%);

    /* ── Player ── */
    --grace-player-bg:      #000;
    --grace-player-info-bg: #13151e;

    /* ── Cards & Thumbnails ── */
    --grace-thumb-filter:       brightness(0.85);
    --grace-thumb-filter-hover: brightness(1);
    --grace-preacher-filter:       grayscale(15%) brightness(0.9);
    --grace-preacher-filter-hover: grayscale(0%) brightness(1);

    /* ── Badges ── */
    --grace-badge-new-bg:   linear-gradient(135deg, #26de81, #0fb874);
    --grace-badge-new-text: #fff;
    --grace-badge-popular-bg:   rgba(245, 158, 11, 0.15);
    --grace-badge-popular-text: #f5a623;
    --grace-badge-rec-bg:   rgba(108, 92, 231, 0.15);
    --grace-badge-rec-text: #a29bfe;

    /* ── Shadows ── */
    --grace-shadow-sm:  0 2px 8px rgba(0, 0, 0, 0.3);
    --grace-shadow-md:  0 8px 28px -6px rgba(0, 0, 0, 0.4);
    --grace-shadow-lg:  0 12px 40px -8px rgba(0, 0, 0, 0.5);
    --grace-shadow-glow: 0 4px 20px var(--grace-primary-glow);

    /* ── Toggle ── */
    --grace-toggle-bg:      rgba(255, 255, 255, 0.06);
    --grace-toggle-border:  rgba(255, 255, 255, 0.1);

    /* ── Misc ── */
    --grace-ambient-display: block;
    --grace-scrollbar-thumb: rgba(148, 163, 184, 0.3);
    --grace-overlay:         rgba(8, 9, 14, 0.7);

    /* ── Modal ── */
    --grace-modal-bg:       #1c1f2e;
    --grace-modal-border:   rgba(255, 255, 255, 0.08);

    /* ── Legacy compatibility ── */
    --grace-dark:    #eef0f6;
    --grace-light:   #13151e;
    --grace-white:   #13151e;
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 * LIGHT THEME
 * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
html[data-theme="light"] {
    /* ── Backgrounds ── */
    --grace-bg-deep:       #f4f5f8;
    --grace-bg-surface:    #edeef2;
    --grace-bg-card:       #ffffff;
    --grace-bg-card-hover: #f8f8fb;
    --grace-bg-elevated:   #ffffff;
    --grace-bg-input:      #ffffff;

    /* ── Accent (same hue, slightly darker for contrast) ── */
    --grace-primary:       #6c5ce7;
    --grace-primary-light: #5a4bd6;
    --grace-primary-dark:  #4e3fc5;
    --grace-primary-dim:   rgba(108, 92, 231, 0.08);
    --grace-primary-glow:  rgba(108, 92, 231, 0.15);

    --grace-secondary:     #0891b2;
    --grace-success:       #16a34a;
    --grace-warning:       #d97706;
    --grace-danger:        #e63946;

    /* ── Text ── */
    --grace-text-primary:   #1a1c2e;
    --grace-text-secondary: #5c5f78;
    --grace-text-muted:     #9496ab;
    --grace-text-inverse:   #eef0f6;

    /* ── Border & Glass ── */
    --grace-border:         rgba(0, 0, 0, 0.08);
    --grace-border-hover:   rgba(0, 0, 0, 0.14);
    --grace-glass:          rgba(0, 0, 0, 0.03);
    --grace-glass-hover:    rgba(0, 0, 0, 0.06);

    /* ── Header ── */
    --grace-header-bg:      rgba(244, 245, 248, 0.88);
    --grace-header-blur:    blur(20px) saturate(1.2);

    /* ── Hero ── */
    --grace-hero-bg:        linear-gradient(165deg, #e8e4f8 0%, #d5cff0 40%, #eeeaf8 100%);
    --grace-hero-glow1:     rgba(108, 92, 231, 0.06);
    --grace-hero-glow2:     rgba(100, 80, 200, 0.04);
    --grace-filter-bg:      linear-gradient(180deg, #e6e2f5 0%, #f4f5f8 100%);

    /* ── Player ── */
    --grace-player-bg:      #000;
    --grace-player-info-bg: #ffffff;

    /* ── Cards & Thumbnails ── */
    --grace-thumb-filter:       brightness(1);
    --grace-thumb-filter-hover: brightness(1.02);
    --grace-preacher-filter:       grayscale(0%) brightness(1);
    --grace-preacher-filter-hover: grayscale(0%) brightness(1.05);

    /* ── Badges ── */
    --grace-badge-new-bg:   rgba(34, 197, 94, 0.12);
    --grace-badge-new-text: #15803d;
    --grace-badge-popular-bg:   rgba(245, 158, 11, 0.12);
    --grace-badge-popular-text: #b45309;
    --grace-badge-rec-bg:   rgba(59, 130, 246, 0.12);
    --grace-badge-rec-text: #1d4ed8;

    /* ── Shadows ── */
    --grace-shadow-sm:  0 2px 8px rgba(0, 0, 0, 0.06);
    --grace-shadow-md:  0 8px 28px -6px rgba(0, 0, 0, 0.1);
    --grace-shadow-lg:  0 12px 40px -8px rgba(0, 0, 0, 0.12);
    --grace-shadow-glow: 0 4px 16px var(--grace-primary-glow);

    /* ── Toggle ── */
    --grace-toggle-bg:      rgba(0, 0, 0, 0.04);
    --grace-toggle-border:  rgba(0, 0, 0, 0.08);

    /* ── Misc ── */
    --grace-ambient-display: none;
    --grace-scrollbar-thumb: rgba(100, 116, 139, 0.3);
    --grace-overlay:         rgba(0, 0, 0, 0.5);

    /* ── Modal ── */
    --grace-modal-bg:       #ffffff;
    --grace-modal-border:   rgba(0, 0, 0, 0.08);

    /* ── Legacy compatibility ── */
    --grace-dark:    #1a1c2e;
    --grace-light:   #f4f5f8;
    --grace-white:   #ffffff;
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 * BASE OVERRIDES (body-level theming)
 * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body {
    background: var(--grace-bg-deep) !important;
    color: var(--grace-text-primary);
    transition: background 0.4s ease, color 0.4s ease;
}

/* ── 다크 테마 ambient glow ── */
body::before {
    content: '';
    position: fixed;
    top: -200px;
    left: 50%;
    transform: translateX(-50%);
    width: 800px;
    height: 500px;
    background: radial-gradient(ellipse, rgba(108, 92, 231, 0.06) 0%, transparent 70%);
    pointer-events: none;
    z-index: 0;
    display: var(--grace-ambient-display);
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 * THEME TOGGLE (헤더 우측)
 * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.grace-theme-toggle {
    display: flex;
    align-items: center;
    gap: 0;
    background: var(--grace-toggle-bg);
    border: 1px solid var(--grace-toggle-border);
    border-radius: var(--grace-radius-full);
    padding: 3px;
    margin-left: 6px;
    transition: background 0.3s, border-color 0.3s;
}

.grace-theme-toggle-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    color: var(--grace-text-muted);
    background: transparent;
    border: none;
    cursor: pointer;
    transition: all 0.3s;
    padding: 0;
}

.grace-theme-toggle-btn:hover {
    color: var(--grace-text-secondary);
}

.grace-theme-toggle-btn.active {
    background: var(--grace-primary);
    color: #fff;
    box-shadow: 0 2px 8px var(--grace-primary-glow);
}

/* 플로팅 토글 (헤더 없는 페이지용) - 오른쪽 하단에서 30px 더 아래로 */
.grace-theme-toggle--floating {
    bottom: 44px !important;
    right: 24px !important;
    box-shadow: var(--grace-shadow-md);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    background: var(--grace-bg-card) !important;
    border: 1px solid var(--grace-border) !important;
    padding: 4px !important;
    border-radius: var(--grace-radius-full) !important;
}
.grace-theme-toggle--floating .grace-theme-toggle-btn {
    color: var(--grace-text-muted) !important;
}
.grace-theme-toggle--floating .grace-theme-toggle-btn:hover {
    color: var(--grace-text-secondary) !important;
}
.grace-theme-toggle--floating .grace-theme-toggle-btn.active {
    background: var(--grace-primary) !important;
    color: #fff !important;
}
@media (max-width: 768px) {
    .grace-theme-toggle--floating {
        bottom: 36px !important;
        right: 16px !important;
    }
}

/* hc-joyn-menu 펼침 시 다크/라이트 토글 숨김 — Grace 전역(jmp-grace-message-page) + grace-main.js MutationObserver(.grace-theme-toggle--hc-menu-suppress) */
body.jmp-grace-message-page.hc-menu-open .grace-theme-toggle,
body.jmp-grace-message-page.hc-menu-open .grace-theme-toggle--floating,
body.hc-menu-open .grace-theme-toggle,
body.hc-menu-open .grace-theme-toggle--floating,
.grace-theme-toggle.grace-theme-toggle--hc-menu-suppress {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 * GLOBAL THEME TRANSITIONS
 * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.grace-list-header,
.grace-hero-title,
.grace-header,
.grace-main-player,
.grace-main-player .player-info,
.grace-hero-preacher-card,
.grace-hero-preacher-name,
.grace-hero-preachers-toggle,
.section-header,
.grace-filter-btn,
.grace-btn-header-secondary,
.grace-btn-outline,
.sermon-item,
.grace-preacher-list-card,
.grace-preacher-list-info,
.grace-search-modal-content,
.grace-search-preacher-card,
.grace-search-sermon-card,
.grace-search-modal-input,
.grace-search-tab,
.grace-theme-toggle,
.grace-sermon-detail .sermon-info,
.grace-sermon-detail .preacher-info,
.grace-sermon-detail .related-card,
.grace-modal-dialog,
.grace-settings-form,
.grace-preacher-profile,
.grace-preacher-profile .profile-hero,
.grace-preacher-profile .profile-section,
.grace-dashboard .dashboard-header,
.grace-dashboard .dashboard-card,
.grace-apply-wrap,
.grace-apply-section {
    transition: background 0.4s ease, border-color 0.4s ease, color 0.4s ease, box-shadow 0.4s ease;
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 * SCROLLBAR THEMING
 * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
    background: var(--grace-scrollbar-thumb);
    border-radius: 3px;
}


/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 * GRACE PAGES — COMPREHENSIVE THEME OVERRIDES
 * 기존 CSS 하드코딩 색상을 테마 변수로 대체
 * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* ── Header ── */
.grace-list-header {
    background: var(--grace-header-bg) !important;
    backdrop-filter: var(--grace-header-blur);
    -webkit-backdrop-filter: var(--grace-header-blur);
    border-bottom: 1px solid var(--grace-border) !important;
}

.grace-list-logo {
    color: var(--grace-primary) !important;
}
.grace-list-logo .grace-logo-accent {
    color: var(--grace-primary) !important;
}
.grace-list-logo .grace-logo-text {
    color: var(--grace-text-primary) !important;
    font-weight: 400;
}
.grace-list-logo i {
    color: var(--grace-primary) !important;
}

.grace-btn-header-primary {
    background: var(--grace-primary) !important;
    color: #fff !important;
    border: none !important;
}
.grace-btn-header-primary:hover {
    background: var(--grace-primary-light) !important;
    box-shadow: var(--grace-shadow-glow) !important;
    color: #fff !important;
}

.grace-btn-header-secondary {
    background: transparent !important;
    color: var(--grace-text-secondary) !important;
    border: 1px solid var(--grace-border) !important;
}
.grace-btn-header-secondary:hover {
    color: var(--grace-text-primary) !important;
    border-color: var(--grace-primary-dim) !important;
    background: var(--grace-primary-dim) !important;
}

.grace-btn-header-icon {
    background: var(--grace-glass) !important;
    color: var(--grace-text-secondary) !important;
    border: 1px solid var(--grace-border) !important;
}
.grace-btn-header-icon:hover {
    background: var(--grace-primary-dim) !important;
    color: var(--grace-text-primary) !important;
}


/* ── Hero Title ── */
.grace-hero-title {
    background: var(--grace-hero-bg) !important;
    color: var(--grace-text-primary) !important;
    position: relative;
    overflow: hidden;
}
.grace-hero-title::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 30% 20%, var(--grace-hero-glow1) 0%, transparent 50%),
        radial-gradient(ellipse at 70% 80%, var(--grace-hero-glow2) 0%, transparent 50%);
    pointer-events: none;
}
.grace-hero-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 120px;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--grace-primary), transparent);
    opacity: 0.4;
}
.grace-hero-heading {
    background: none !important;
    -webkit-text-fill-color: var(--grace-text-primary) !important;
    color: var(--grace-text-primary) !important;
}
.grace-hero-subtitle {
    color: var(--grace-text-secondary) !important;
}
.grace-stats-inline-item {
    color: var(--grace-text-secondary) !important;
}
.grace-stats-inline-item i {
    color: var(--grace-primary-light) !important;
    opacity: 0.7;
}


/* ── Filter Tabs ── */
.grace-header {
    background: var(--grace-filter-bg) !important;
}
.grace-filter-btn {
    color: var(--grace-text-secondary) !important;
    background: var(--grace-glass) !important;
    border: 1px solid var(--grace-border) !important;
}
.grace-filter-btn:hover {
    color: var(--grace-text-primary) !important;
    background: var(--grace-glass-hover) !important;
    border-color: var(--grace-border-hover) !important;
}
.grace-filter-btn.active {
    background: var(--grace-primary) !important;
    color: #fff !important;
    border-color: var(--grace-primary) !important;
    box-shadow: 0 2px 16px var(--grace-primary-glow) !important;
}


/* ── Player ── */
.grace-main-player {
    background: var(--grace-player-bg) !important;
    border: 1px solid var(--grace-border) !important;
    box-shadow: var(--grace-shadow-md) !important;
    border-radius: var(--grace-radius-lg) !important;
    overflow: hidden;
}
.grace-hero-player-wrap .grace-main-player {
    border-radius: var(--grace-radius-lg) !important;
}
.grace-main-player .player-info {
    background: var(--grace-player-info-bg) !important;
    border-top: 1px solid var(--grace-border);
    color: var(--grace-text-primary) !important;
}
.grace-main-player .player-title {
    color: var(--grace-text-primary) !important;
}
.grace-main-player .player-meta {
    color: var(--grace-text-muted) !important;
}
.grace-main-player .player-meta i {
    color: var(--grace-primary-light) !important;
    opacity: 0.6;
}
.now-playing-badge {
    background: rgba(0, 0, 0, 0.65) !important;
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 71, 87, 0.3) !important;
    box-shadow: none !important;
}
.now-playing-badge i {
    color: var(--grace-danger) !important;
    animation: grace-live-pulse 2s ease-in-out infinite;
}
@keyframes grace-live-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}


/* ── Preacher Cards ── */
.grace-hero-preacher-card {
    background: var(--grace-glass) !important;
    border: 1px solid var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
    box-shadow: none !important;
}
.grace-hero-preacher-card:hover {
    background: var(--grace-glass-hover) !important;
    border-color: var(--grace-primary-dim) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15) !important;
    transform: translateY(-3px);
}
.grace-hero-preacher-thumb img {
    filter: var(--grace-preacher-filter);
    transition: filter 0.4s, transform 0.4s;
}
.grace-hero-preacher-card:hover .grace-hero-preacher-thumb img {
    filter: var(--grace-preacher-filter-hover);
    transform: scale(1.05);
}
.grace-hero-preacher-name {
    background: var(--grace-bg-card) !important;
    color: var(--grace-text-primary) !important;
}
.grace-hero-preacher-placeholder {
    color: rgba(255, 255, 255, 0.5) !important;
}
.grace-hero-preachers-toggle {
    background: var(--grace-glass) !important;
    border: 1px solid var(--grace-border) !important;
    color: var(--grace-text-muted) !important;
}
.grace-hero-preachers-toggle:hover {
    background: var(--grace-glass-hover) !important;
    color: var(--grace-text-secondary) !important;
    border-color: var(--grace-primary) !important;
}
.grace-hero-preachers {
    scrollbar-color: var(--grace-scrollbar-thumb) transparent;
}


/* ── Section Header ── */
.section-header {
    border-bottom: 1px solid var(--grace-border) !important;
}
.section-title {
    color: var(--grace-text-primary) !important;
}
.section-title-icon {
    color: var(--grace-warning) !important;
}
.section-title-icon--green {
    color: var(--grace-success) !important;
}
.view-all-btn {
    color: var(--grace-primary) !important;
}
#grace-profile-view-btn.grace-btn {
    background: transparent !important;
    color: var(--grace-text-secondary) !important;
    border: 1px solid var(--grace-border) !important;
}
#grace-profile-view-btn.grace-btn:hover {
    color: var(--grace-primary) !important;
    border-color: var(--grace-primary-dim) !important;
    background: var(--grace-primary-dim) !important;
}


/* ── Sermon Cards ── */
.sermon-item {
    background: var(--grace-bg-card) !important;
    border: 1px solid var(--grace-border) !important;
    box-shadow: var(--grace-shadow-sm) !important;
    color: var(--grace-text-primary) !important;
}
.sermon-item:hover {
    background: var(--grace-bg-card-hover) !important;
    border-color: rgba(108, 92, 231, 0.2) !important;
    box-shadow: var(--grace-shadow-lg), 0 0 0 1px rgba(108, 92, 231, 0.15) !important;
    transform: translateY(-3px);
}
.sermon-item .sermon-thumbnail {
    background: #0a0a0a !important;
}
.sermon-item .sermon-thumbnail img {
    filter: var(--grace-thumb-filter);
    transition: transform 0.5s ease, filter 0.3s;
}
.sermon-item:hover .sermon-thumbnail img {
    filter: var(--grace-thumb-filter-hover);
    transform: scale(1.06);
}
.sermon-item .play-overlay {
    background: linear-gradient(to top, var(--grace-overlay) 0%, transparent 60%) !important;
    opacity: 0;
    transition: opacity 0.3s;
}
.sermon-item:hover .play-overlay {
    opacity: 1;
}
.sermon-item .play-button {
    background: var(--grace-primary) !important;
    color: #fff !important;
    box-shadow: var(--grace-shadow-glow) !important;
}
.sermon-item .sermon-thumb-placeholder {
    color: rgba(255, 255, 255, 0.4) !important;
}
.sermon-title {
    color: var(--grace-text-primary) !important;
}
.sermon-item .sermon-title-link:hover .sermon-title {
    color: var(--grace-primary-light) !important;
}
.sermon-meta {
    color: var(--grace-text-muted) !important;
}
.sermon-meta i {
    color: var(--grace-primary-light) !important;
    opacity: 0.5;
}
.sermon-description {
    color: var(--grace-text-secondary) !important;
}

/* Badges */
.badge-new {
    background: var(--grace-badge-new-bg) !important;
    color: var(--grace-badge-new-text) !important;
}
.badge-popular {
    background: var(--grace-badge-popular-bg) !important;
    color: var(--grace-badge-popular-text) !important;
}
.badge-recommended {
    background: var(--grace-badge-rec-bg) !important;
    color: var(--grace-badge-rec-text) !important;
}


/* ── Scroll Reveal Animation ──
 * old1(테마 개편 전)에는 이 블록이 없었고, .sermon-item에 opacity를 건드리지 않아 항상 보였음.
 * 현재: 전역 .sermon-item은 opacity:0 → .grace-visible 시 1. 메인 목록만 아래에서 예외 처리.
 */
.sermon-item {
    opacity: 0;
    transform: translateY(20px);
}
.sermon-item.grace-visible {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.5s ease, transform 0.5s ease, background 0.4s, border-color 0.4s, box-shadow 0.35s !important;
}

/* 메인 페이지 재생기 하단 설교 목록: old1과 동일 — Scroll Reveal 미적용, 항상 표시 */
#grace-sermons-section .sermon-item,
.grace-sermons-list-inner .sermon-item {
    opacity: 1 !important;
    transform: none !important;
    transition: background 0.4s, border-color 0.4s, box-shadow 0.35s !important;
}


/* ── Search Modal ── */
.grace-search-modal-backdrop {
    background: var(--grace-overlay) !important;
}
.grace-search-modal-content {
    background: var(--grace-modal-bg) !important;
    border: 1px solid var(--grace-modal-border);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4) !important;
}
.grace-search-modal-header {
    border-bottom: 1px solid var(--grace-border) !important;
}
.grace-search-modal-title {
    color: var(--grace-text-primary) !important;
}
.grace-search-modal-close {
    color: var(--grace-text-muted) !important;
    background: var(--grace-glass) !important;
}
.grace-search-modal-close:hover {
    background: var(--grace-glass-hover) !important;
    color: var(--grace-text-primary) !important;
}
.grace-search-tab {
    background: var(--grace-glass) !important;
    border: 1px solid var(--grace-border) !important;
    color: var(--grace-text-secondary) !important;
}
.grace-search-tab:hover {
    background: var(--grace-glass-hover) !important;
    color: var(--grace-text-primary) !important;
}
.grace-search-tab.active {
    background: var(--grace-primary) !important;
    border-color: var(--grace-primary) !important;
    color: #fff !important;
}
.grace-search-modal-input {
    background: var(--grace-bg-input) !important;
    border: 1px solid var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
}
.grace-search-modal-input:focus {
    border-color: var(--grace-primary) !important;
}
.grace-search-preacher-card,
.grace-search-sermon-card {
    background: var(--grace-glass) !important;
    border: 1px solid var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
}
.grace-search-preacher-card:hover,
.grace-search-sermon-card:hover {
    background: var(--grace-glass-hover) !important;
    border-color: var(--grace-primary-dim) !important;
}
.grace-search-preacher-name {
    color: var(--grace-text-primary) !important;
}
.grace-search-sermon-title {
    color: var(--grace-text-primary) !important;
}
.grace-search-sermon-preacher {
    color: var(--grace-text-secondary) !important;
}
.grace-search-sermon-bible {
    color: var(--grace-text-muted) !important;
}
.grace-search-modal-empty,
.grace-search-modal-no-result {
    color: var(--grace-text-secondary) !important;
}


/* ── Preachers List Page ── */
.grace-preacher-list-card {
    background: var(--grace-bg-card) !important;
    border: 1px solid var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
    box-shadow: var(--grace-shadow-sm) !important;
}
.grace-preacher-list-card:hover {
    border-color: rgba(108, 92, 231, 0.2) !important;
    box-shadow: var(--grace-shadow-md) !important;
}
.grace-preacher-list-name {
    color: var(--grace-text-primary) !important;
}
.grace-preacher-list-title,
.grace-preacher-list-affiliation {
    color: var(--grace-text-secondary) !important;
}
.grace-preacher-list-stats {
    color: var(--grace-text-muted) !important;
}


/* ── Apply Page Header ── */
.grace-apply-header {
    background: var(--grace-hero-bg) !important;
    color: var(--grace-text-primary) !important;
}
.grace-apply-header .grace-apply-logo,
.grace-apply-header h1 {
    color: var(--grace-text-primary) !important;
}
.grace-apply-header-desc {
    color: var(--grace-text-secondary) !important;
}

/* ── Preacher Settings ── */
.grace-settings-header .grace-settings-back {
    color: var(--grace-primary) !important;
}
.grace-settings-header .grace-settings-title {
    color: var(--grace-text-primary) !important;
}
.grace-settings-form {
    background: var(--grace-bg-card) !important;
    border: 1px solid var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
}
.grace-settings-section-title {
    color: var(--grace-text-primary) !important;
}
.grace-settings-textarea {
    background: var(--grace-bg-input) !important;
    border-color: var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
}
.grace-settings-textarea:focus {
    border-color: var(--grace-primary) !important;
}
.grace-settings-photo-hint {
    color: var(--grace-text-muted) !important;
}
.grace-settings-back {
    color: var(--grace-primary) !important;
}
.grace-settings-actions {
    border-top-color: var(--grace-border) !important;
}


/* ── Apply Page ── */
.grace-apply-section {
    background: var(--grace-bg-card) !important;
    border: 1px solid var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
}
.grace-apply-section-title {
    color: var(--grace-text-primary) !important;
}
.grace-form-control {
    background: var(--grace-bg-input) !important;
    border-color: var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
}
.grace-form-control:focus {
    border-color: var(--grace-primary) !important;
    box-shadow: 0 0 0 3px var(--grace-primary-dim) !important;
}
.grace-radio-item {
    border-color: var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
}
.grace-radio-item:hover {
    border-color: var(--grace-primary) !important;
    background: var(--grace-primary-dim) !important;
}
.grace-terms-box {
    background: var(--grace-bg-surface) !important;
    border-color: var(--grace-border) !important;
    color: var(--grace-text-secondary) !important;
}
.grace-terms-box h4 {
    color: var(--grace-text-primary) !important;
}
.grace-btn-primary {
    background: var(--grace-primary) !important;
    color: #fff !important;
}
.grace-btn-primary:hover {
    background: var(--grace-primary-dark) !important;
    box-shadow: var(--grace-shadow-glow) !important;
}
.grace-btn-secondary {
    background: var(--grace-bg-card) !important;
    color: var(--grace-text-primary) !important;
    border-color: var(--grace-border) !important;
}
.grace-notice-info {
    background: var(--grace-primary-dim) !important;
    border-left-color: var(--grace-primary) !important;
    color: var(--grace-text-primary) !important;
}
.grace-notice-warning {
    background: rgba(245, 166, 35, 0.1) !important;
    border-left-color: var(--grace-warning) !important;
    color: var(--grace-text-primary) !important;
}
.grace-progress-step.completed .grace-step-circle,
.grace-progress-step.active .grace-step-circle {
    background: var(--grace-primary) !important;
    color: #fff !important;
}


/* ── Player Detail Page ── */
.grace-sermon-detail {
    background: var(--grace-bg-deep) !important;
    color: var(--grace-text-primary) !important;
}
.grace-sermon-detail .sermon-info {
    background: var(--grace-bg-card) !important;
    box-shadow: var(--grace-shadow-sm) !important;
    border: 1px solid var(--grace-border);
}
.grace-sermon-detail .sermon-info h1 {
    color: var(--grace-text-primary) !important;
}
.grace-sermon-detail .sermon-meta {
    color: var(--grace-text-muted) !important;
}
.grace-sermon-detail .sermon-meta i {
    color: var(--grace-primary) !important;
}
.grace-sermon-detail .bible-reference {
    background: var(--grace-primary-dim) !important;
    color: var(--grace-primary-light) !important;
}
.grace-sermon-detail .sermon-description {
    color: var(--grace-text-secondary) !important;
}
.grace-sermon-detail .btn-action {
    background: var(--grace-bg-card) !important;
    border: 2px solid var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
}
.grace-sermon-detail .btn-action:hover {
    background: var(--grace-glass-hover) !important;
    border-color: var(--grace-primary) !important;
    color: var(--grace-primary) !important;
}
.grace-sermon-detail .preacher-info {
    background: var(--grace-bg-card) !important;
    box-shadow: var(--grace-shadow-sm) !important;
    border: 1px solid var(--grace-border);
}
.grace-sermon-detail .preacher-details h3 {
    color: var(--grace-text-primary) !important;
}
.grace-sermon-detail .preacher-details p {
    color: var(--grace-text-secondary) !important;
}
.grace-sermon-detail .related-sermons h2 {
    color: var(--grace-text-primary) !important;
}
.grace-sermon-detail .related-card {
    background: var(--grace-bg-card) !important;
    box-shadow: var(--grace-shadow-sm) !important;
    border: 1px solid var(--grace-border);
}
.grace-sermon-detail .related-card:hover {
    box-shadow: var(--grace-shadow-lg) !important;
}
.grace-sermon-detail .related-title {
    color: var(--grace-text-primary) !important;
}
.grace-sermon-detail .related-preacher {
    color: var(--grace-text-muted) !important;
}
.grace-sermon-detail .pagination-list a {
    border-color: var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
}
.grace-sermon-detail .pagination-list a:hover {
    border-color: var(--grace-primary) !important;
    color: var(--grace-primary) !important;
}
.grace-sermon-detail .pagination-list a.active {
    background: var(--grace-primary) !important;
    border-color: var(--grace-primary) !important;
    color: #fff !important;
}

/* Modal */
.grace-modal-dialog {
    background: var(--grace-modal-bg) !important;
    color: var(--grace-text-primary) !important;
}
.grace-modal-header h3 {
    color: var(--grace-text-primary) !important;
}
.grace-modal-close {
    background: var(--grace-glass) !important;
    color: var(--grace-text-muted) !important;
}
.grace-modal-body .form-control {
    background: var(--grace-bg-input) !important;
    border-color: var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
}
.grace-modal-body .form-group label {
    color: var(--grace-text-secondary) !important;
}
.grace-modal-body .suggested-amounts button {
    background: var(--grace-bg-card) !important;
    border-color: var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
}


/* ── Preacher Profile Page ── */

/* :root 변수 충돌 해결 — 프로필 CSS 자체 변수를 테마 변수로 재정의 */
.grace-preacher-profile {
    --grace-primary: #6c5ce7 !important;
    --grace-primary-light: #a29bfe !important;
    --grace-primary-dark: #5a4bd6 !important;
    --grace-dark: var(--grace-text-primary) !important;
    --grace-secondary: var(--grace-text-secondary) !important;
    --grace-gray: var(--grace-text-muted) !important;
    --grace-light: var(--grace-bg-elevated) !important;
    --grace-border: var(--grace-border) !important;
    --grace-white: var(--grace-bg-card) !important;
    --shadow-sm: var(--grace-shadow-sm) !important;
    --shadow-md: var(--grace-shadow-md) !important;
    color: var(--grace-text-primary);
    font-family: var(--grace-font-kr), -apple-system, BlinkMacSystemFont, sans-serif !important;
}

/* 히어로 섹션 */
.grace-preacher-profile .profile-hero {
    background: linear-gradient(165deg, #1a1040 0%, #0e1028 50%, #0d0d1a 100%) !important;
}
html[data-theme="light"] .grace-preacher-profile .profile-hero {
    background: var(--grace-hero-bg) !important;
}

/* 히어로 내 통계 대시보드 — 흰색 카드 (stats-dashboard-white) */
.grace-preacher-profile .profile-hero .stats-dashboard.stats-dashboard-white {
    background: var(--grace-bg-card) !important;
    border-color: var(--grace-border) !important;
    box-shadow: var(--grace-shadow-md) !important;
}
.grace-preacher-profile .profile-hero .stats-dashboard.stats-dashboard-white .stat-card {
    background: var(--grace-primary-dim) !important;
}
.grace-preacher-profile .profile-hero .stats-dashboard.stats-dashboard-white .stat-card:hover {
    background: rgba(108, 92, 231, 0.12) !important;
}
.grace-preacher-profile .profile-hero .stats-dashboard.stats-dashboard-white .stat-icon {
    background: var(--grace-primary-dim) !important;
    color: var(--grace-primary) !important;
}
.grace-preacher-profile .profile-hero .stats-dashboard.stats-dashboard-white .stat-number {
    color: var(--grace-primary) !important;
}
.grace-preacher-profile .profile-hero .stats-dashboard.stats-dashboard-white .stat-label {
    color: var(--grace-text-muted) !important;
}

/* 프로필 액션 버튼 — 다크모드 시 btn-white 색상 반전 */
.grace-preacher-profile .profile-actions .btn-white {
    background: var(--grace-bg-card) !important;
    color: var(--grace-primary) !important;
}

/* 인증 배지 */
.grace-preacher-profile .verified-badge {
    border-color: var(--grace-bg-card) !important;
}

/* stat-change 색상 */
.grace-preacher-profile .stat-change {
    color: var(--grace-success) !important;
}

/* 탭 네비게이션 */
.grace-preacher-profile .content-tabs {
    background: var(--grace-bg-card) !important;
    border-color: var(--grace-border) !important;
    box-shadow: var(--grace-shadow-sm) !important;
}
.grace-preacher-profile .tab-button {
    color: var(--grace-text-secondary) !important;
    background: transparent !important;
}
.grace-preacher-profile .tab-button:hover {
    background: var(--grace-bg-elevated) !important;
    color: var(--grace-text-primary) !important;
}
.grace-preacher-profile .tab-button.active {
    background: linear-gradient(135deg, #6c5ce7, #7c6cf5) !important;
    color: #fff !important;
    box-shadow: 0 2px 8px rgba(108, 92, 231, 0.35) !important;
}

/* 카드 (profile-section, card, sidebar-card) — 연락처/뉴스레터 포함 */
.grace-preacher-profile .profile-section,
.grace-preacher-profile .card,
.grace-preacher-profile .sidebar-card,
.grace-preacher-profile .sidebar-card.grace-newsletter-sidebar {
    background: var(--grace-bg-card) !important;
    border-color: var(--grace-border) !important;
    box-shadow: var(--grace-shadow-sm) !important;
    color: var(--grace-text-primary) !important;
}
.grace-preacher-profile .sidebar-card .sidebar-title,
.grace-preacher-profile .sidebar-card p,
.grace-preacher-profile .sidebar-card .description {
    color: var(--grace-text-secondary) !important;
}
.grace-preacher-profile .sidebar-card .contact-value a {
    color: var(--grace-primary-light) !important;
}
.grace-preacher-profile .sidebar-card .contact-value a:hover {
    color: var(--grace-primary) !important;
}

/* 카드 타이틀 */
.grace-preacher-profile .profile-section h3,
.grace-preacher-profile .card-title,
.grace-preacher-profile .section-title,
.grace-preacher-profile .sidebar-title {
    color: var(--grace-text-primary) !important;
}
.grace-preacher-profile .card-title i,
.grace-preacher-profile .profile-section h3 i,
.grace-preacher-profile .sidebar-title i {
    color: var(--grace-primary) !important;
}
.grace-preacher-profile .profile-section h3,
.grace-preacher-profile .section-title,
.grace-preacher-profile .preacher-sermons h3 {
    border-bottom-color: var(--grace-primary) !important;
}
.grace-preacher-profile .card-header {
    border-bottom-color: var(--grace-border) !important;
}
.grace-preacher-profile .card-action {
    color: var(--grace-primary) !important;
}

/* 본문 텍스트 */
.grace-preacher-profile .profile-bio p,
.grace-preacher-profile .profile-text {
    color: var(--grace-text-secondary) !important;
}

/* 인용 블록 */
.grace-preacher-profile .quote-block {
    background: var(--grace-primary-dim) !important;
    border-left-color: var(--grace-primary) !important;
    color: var(--grace-text-primary) !important;
}

/* 정보 테이블 */
.grace-preacher-profile .info-row {
    border-bottom-color: var(--grace-border) !important;
}
.grace-preacher-profile .info-label {
    color: var(--grace-text-muted) !important;
}
.grace-preacher-profile .info-value {
    color: var(--grace-text-primary) !important;
}

/* 태그 클라우드 */
.grace-preacher-profile .tag {
    background: var(--grace-primary-dim) !important;
    color: var(--grace-primary) !important;
    border-color: rgba(108, 92, 231, 0.2) !important;
}
.grace-preacher-profile .tag:hover {
    background: linear-gradient(135deg, var(--grace-primary), var(--grace-primary-light)) !important;
    color: #fff !important;
    border-color: var(--grace-primary) !important;
}

/* 설교 리스트 (프로필 내) */
.grace-preacher-profile .sermon-item {
    border-color: transparent !important;
}
.grace-preacher-profile .sermon-item:hover {
    background: var(--grace-bg-elevated) !important;
    border-color: var(--grace-primary) !important;
}
.grace-preacher-profile .sermon-title,
.grace-preacher-profile .sermon-row-title {
    color: var(--grace-text-primary) !important;
}
.grace-preacher-profile .sermon-meta,
.grace-preacher-profile .sermon-stats,
.grace-preacher-profile .sermon-row-meta,
.grace-preacher-profile .sermon-row-bible {
    color: var(--grace-text-muted) !important;
}

/* 설교 카드 (sermons-list-profile) */
.grace-sermons-list-profile .sermon-profile-row {
    background: var(--grace-bg-card) !important;
    border-color: var(--grace-border) !important;
}
.grace-sermons-list-profile .sermon-row-thumb {
    background: var(--grace-bg-elevated) !important;
}
.grace-sermons-list-profile .sermon-row-title {
    color: var(--grace-text-primary) !important;
}
.grace-sermons-list-profile .sermon-row-meta {
    color: var(--grace-text-muted) !important;
}

/* 신앙 상담 섹션 */
.grace-preacher-profile .counsel-highlight {
    background: var(--grace-primary-dim) !important;
    border-color: rgba(108, 92, 231, 0.2) !important;
}
.grace-preacher-profile .counsel-highlight h3 {
    color: var(--grace-text-primary) !important;
}
.grace-preacher-profile .time-slot {
    background: var(--grace-bg-card) !important;
    border-color: var(--grace-border) !important;
}
.grace-preacher-profile .time-slot.available {
    border-color: var(--grace-success) !important;
    background: rgba(38, 222, 129, 0.06) !important;
}
.grace-preacher-profile .time-day {
    color: var(--grace-text-primary) !important;
}
.grace-preacher-profile .time-hours {
    color: var(--grace-text-muted) !important;
}

/* 추천사 */
.grace-preacher-profile .testimonial-item {
    background: var(--grace-glass) !important;
    border-left-color: var(--grace-primary) !important;
}
.grace-preacher-profile .testimonial-text {
    color: var(--grace-text-secondary) !important;
}
.grace-preacher-profile .testimonial-name {
    color: var(--grace-text-primary) !important;
}
.grace-preacher-profile .testimonial-role {
    color: var(--grace-text-muted) !important;
}

/* 사이드바 */
.grace-preacher-profile .contact-item:hover {
    background: var(--grace-bg-elevated) !important;
}
.grace-preacher-profile .contact-label {
    color: var(--grace-text-muted) !important;
}
.grace-preacher-profile .contact-value {
    color: var(--grace-text-primary) !important;
}
.grace-preacher-profile .social-link {
    background: var(--grace-bg-elevated) !important;
    color: var(--grace-text-muted) !important;
}
.grace-preacher-profile .social-link:hover {
    background: var(--grace-primary) !important;
    color: #fff !important;
}

/* 활동 피드 */
.grace-preacher-profile .activity-item {
    border-left-color: var(--grace-primary) !important;
    background: linear-gradient(to right, var(--grace-primary-dim), transparent) !important;
}
.grace-preacher-profile .activity-date {
    color: var(--grace-text-muted) !important;
}
.grace-preacher-profile .activity-type {
    color: var(--grace-primary) !important;
}
.grace-preacher-profile .activity-text {
    color: var(--grace-text-primary) !important;
}

/* 뉴스레터 구독 */
.grace-preacher-profile .grace-newsletter-subscribe {
    background: var(--grace-primary-dim) !important;
    border-color: rgba(108, 92, 231, 0.2) !important;
}
.grace-preacher-profile .grace-newsletter-subscribe h3 {
    color: var(--grace-text-primary) !important;
}

/* 모달 (헌금/상담) */
.grace-preacher-profile .modal-dialog,
#grace-counsel-modal .modal-dialog {
    background: var(--grace-bg-card) !important;
    box-shadow: var(--grace-shadow-lg) !important;
}
.grace-preacher-profile .modal-header {
    border-bottom-color: var(--grace-border) !important;
}
.grace-preacher-profile .modal-header h2 {
    color: var(--grace-text-primary) !important;
}
.grace-preacher-profile .modal .close {
    background: var(--grace-bg-elevated) !important;
    color: var(--grace-text-muted) !important;
}
.grace-preacher-profile .modal .close:hover {
    background: var(--grace-primary) !important;
    color: #fff !important;
}
.grace-preacher-profile .form-label {
    color: var(--grace-text-secondary) !important;
}
.grace-preacher-profile .form-control {
    background: var(--grace-bg-input) !important;
    border-color: var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
}
.grace-preacher-profile .form-control:focus {
    border-color: var(--grace-primary) !important;
}
.grace-preacher-profile .modal-footer {
    border-top-color: var(--grace-border) !important;
}
.grace-preacher-profile .btn-secondary {
    background: var(--grace-bg-elevated) !important;
    color: var(--grace-text-primary) !important;
}

/* 페이지네이션 */
.grace-sermons-pagination {
    border-top-color: var(--grace-border) !important;
}
.grace-sermons-pagination .page-link {
    background: var(--grace-bg-elevated) !important;
    color: var(--grace-text-primary) !important;
}
.grace-sermons-pagination .page-link:hover:not(.disabled),
.grace-sermons-pagination .page-link.active {
    background: var(--grace-primary) !important;
    color: #fff !important;
}
.grace-sermons-pagination .page-ellipsis {
    color: var(--grace-text-muted) !important;
}

/* 비디오 모달 */
.grace-sermon-video-modal .grace-sermon-video-dialog {
    background: var(--grace-bg-card) !important;
}

/* 프로필 body 배경 */
.grace-preacher-profile {
    background: var(--grace-bg-deep) !important;
}


/* ── Dashboard Page ── */
.grace-dashboard.dashboard {
    color: var(--grace-text-primary) !important;
}
.grace-dashboard .dashboard-card,
.grace-dashboard .stat-card {
    background: var(--grace-bg-card) !important;
    border: 1px solid var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
    box-shadow: var(--grace-shadow-sm) !important;
}
.grace-dashboard .stat-label {
    color: var(--grace-text-muted) !important;
}
.grace-dashboard .stat-value {
    color: var(--grace-text-primary) !important;
}
.grace-dashboard .tab-btn {
    color: var(--grace-text-secondary) !important;
}
.grace-dashboard .tab-btn.active {
    color: var(--grace-primary) !important;
    border-color: var(--grace-primary) !important;
}


/* ── Common Elements ── */
.grace-no-content {
    color: var(--grace-text-secondary) !important;
}
.grace-container {
    color: var(--grace-text-primary);
}
.grace-header-stats {
    background: linear-gradient(135deg, var(--grace-primary), var(--grace-secondary)) !important;
}
.grace-main {
    color: var(--grace-text-primary);
}

/* Preacher cards (generic) */
.preacher-card {
    background: var(--grace-bg-card) !important;
    border: 1px solid var(--grace-border) !important;
    color: var(--grace-text-primary) !important;
}
.preacher-card:hover {
    box-shadow: var(--grace-shadow-md) !important;
    border-color: rgba(108, 92, 231, 0.2) !important;
}
.preacher-name {
    color: var(--grace-text-primary) !important;
}
.preacher-church {
    color: var(--grace-text-secondary) !important;
}
.preacher-stats {
    border-top-color: var(--grace-border) !important;
    color: var(--grace-text-secondary) !important;
}
.preacher-stat strong {
    color: var(--grace-primary) !important;
}

/* Pagination */
.grace-sermons-pagination .page-link {
    background: var(--grace-glass) !important;
    color: var(--grace-text-primary) !important;
}
.grace-sermons-pagination .page-link:hover:not(.disabled) {
    background: var(--grace-primary) !important;
    color: #fff !important;
}
.grace-sermons-pagination .page-link.active {
    background: var(--grace-primary) !important;
    color: #fff !important;
}


/* ── Breadcrumb ── */
.grace-breadcrumb {
    color: var(--grace-text-secondary) !important;
}
.grace-breadcrumb a {
    color: var(--grace-text-primary) !important;
}
