/* Koinonia Stories Hub 1.1.0 */
.ksh-blog-archive,
.ksh-relief-hub,
.ksh-relief-story {
    --ksh-text: #1d1d1d;
    --ksh-muted: #7a7a7a;
    --ksh-line: #e8e8e6;
    --ksh-soft: #f7f7f5;
    --ksh-dark: #171717;
    --ksh-white: #fff;
    color: var(--ksh-text);
    background: #fff;
}

.ksh-relief-hub,
.ksh-relief-story {
    padding-top: var(--ksh-page-offset, 0px);
}

body.ksh-relief-hub-active .content .content_inner,
body.ksh-relief-story-active .content .content_inner {
    margin-top: 0 !important;
}

.ksh-preview-bar {
    background: #fff8d8;
    border-bottom: 1px solid #eadb87;
    color: #514612;
    font-size: 13px;
    line-height: 1.5;
    padding: 10px 0;
}

.ksh-blog-intro {
    border-bottom: 1px solid var(--ksh-line);
    padding: 0 0 26px;
}
.ksh-blog-intro__inner,
.ksh-section-heading,
.ksh-relief-cta__inner,
.ksh-story-after__cta {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
}
.ksh-blog-intro p {
    margin: 0;
    color: var(--ksh-muted);
    font-size: 17px;
    line-height: 1.55;
}
.ksh-count { display:flex; align-items:baseline; gap:8px; white-space:nowrap; color:var(--ksh-muted); }
.ksh-count strong { color:var(--ksh-text); font-size:32px; line-height:1; font-weight:600; }
.ksh-count span { font-size:15px; }

.ksh-blog-browser { padding: 36px 0 70px; }
.ksh-topic-tabs { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 36px; }
.ksh-topic-tab {
    display:inline-flex; align-items:center; min-height:42px; padding:0 18px;
    border:1px solid #dededb; border-radius:999px; color:#555; background:#fff;
    font-size:13px; line-height:1.2; text-decoration:none; transition:border-color .2s ease,background .2s ease,color .2s ease;
}
.ksh-topic-tab:hover,
.ksh-topic-tab:focus { border-color:#222; color:#111; }
.ksh-topic-tab.is-active { background:#1d1d1d; border-color:#1d1d1d; color:#fff; }

.ksh-story-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:44px 28px;
}
.ksh-story-grid__sizer,
.ksh-story-grid__gutter { display:none; }
.ksh-story-card { min-width:0; margin:0; }
.ksh-story-card__link { display:block; color:inherit; text-decoration:none; }

/* Blog cards intentionally keep each historic Featured Image at its natural
 * aspect ratio. Many legacy covers contain typography inside the artwork, so
 * cropping them into a fixed 16:10 window would destroy the original design. */
.ksh-story-card__media {
    position:relative; overflow:hidden; background:#ececea; border-radius:3px;
}
.ksh-story-card__image {
    width:100%; height:auto; display:block; object-fit:contain;
    transition:opacity .2s ease;
}
.ksh-story-card__link:hover .ksh-story-card__image { opacity:.94; }
.ksh-story-card__placeholder {
    width:100%; aspect-ratio:16/10; display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg,#efefed,#deded9); color:#aaa; font-size:46px;
}
.ksh-story-card__content { padding:15px 2px 0; }

/* Once the bundled WordPress Masonry library is available we replace the
 * grid fallback with a true masonry layout. Source order remains unchanged. */
.ksh-story-grid.is-masonry { display:block; position:relative; }
.ksh-story-grid.is-masonry .ksh-story-grid__sizer,
.ksh-story-grid.is-masonry .ksh-story-card { width:calc((100% - 56px) / 3); }
.ksh-story-grid.is-masonry .ksh-story-grid__gutter { width:28px; }
.ksh-story-grid.is-masonry .ksh-story-grid__sizer,
.ksh-story-grid.is-masonry .ksh-story-grid__gutter {
    display:block; height:0; visibility:hidden; pointer-events:none;
}
.ksh-story-grid.is-masonry .ksh-story-card { margin:0 0 44px; }
.ksh-story-card__eyebrow,
.ksh-kicker { color:#9a8d85; font-size:11px; line-height:1.35; letter-spacing:.065em; text-transform:uppercase; }
.ksh-story-card h2,
.ksh-story-card h3 { margin:7px 0 7px; font-size:23px; line-height:1.22; font-weight:400; color:#1c1c1c; }
.ksh-blog-archive .ksh-story-card h2 { font-size:21px; line-height:1.24; }
.ksh-story-card time { display:block; color:#aaa; font-size:12px; margin-bottom:12px; }
.ksh-story-card p { margin:0 0 15px; color:#707070; font-size:14px; line-height:1.65; }
.ksh-read-link { display:inline-flex; align-items:center; gap:8px; color:#222; font-size:13px; font-weight:500; text-decoration:none; }
.ksh-story-card__link:hover .ksh-read-link,
.ksh-read-link:hover { text-decoration:underline; }

.ksh-pagination { margin:52px 0 0; }
.ksh-pagination ul { list-style:none; display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:0; }
.ksh-pagination li { margin:0; }
.ksh-pagination a,
.ksh-pagination span { min-width:42px; height:42px; padding:0 13px; border:1px solid #dededb; display:flex; align-items:center; justify-content:center; color:#555; background:#fff; text-decoration:none; border-radius:3px; }
.ksh-pagination .current { background:#1d1d1d; border-color:#1d1d1d; color:#fff; }
.ksh-empty { padding:50px 0; }

/* Ukraine Relief hub */
.ksh-relief-hero { padding:72px 0 78px; background:#f5f3ef; border-bottom:1px solid #e6e2da; }
.ksh-relief-hero__content { max-width:920px; }
.ksh-relief-hero .ksh-kicker { color:#84756d; margin-bottom:17px; }
.ksh-relief-hero h1 { margin:0 0 24px; max-width:900px; font-size:52px; line-height:1.08; letter-spacing:-.025em; font-weight:400; color:#171717; }
.ksh-relief-hero__intro { max-width:850px; color:#5d5b57; font-size:18px; line-height:1.75; }
.ksh-relief-hero__intro p { margin:0; }
.ksh-relief-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.ksh-button { display:inline-flex; min-height:46px; padding:0 22px; align-items:center; justify-content:center; border:1px solid #1d1d1d; border-radius:3px; text-decoration:none; font-size:13px; font-weight:600; letter-spacing:.02em; transition:background .2s ease,color .2s ease; }
.ksh-button--dark { background:#1d1d1d; color:#fff; }
.ksh-button--dark:hover { background:#3a3a3a; color:#fff; }
.ksh-button--light { background:#fff; color:#1d1d1d; }
.ksh-button--light:hover { background:#f1f1ef; color:#1d1d1d; }

.ksh-relief-stories { padding:70px 0 78px; }
.ksh-section-heading { margin-bottom:34px; }
.ksh-section-heading h2 { margin:7px 0 0; font-size:34px; line-height:1.18; font-weight:400; }
.ksh-relief-feature { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr); gap:42px; align-items:center; padding-bottom:60px; margin-bottom:54px; border-bottom:1px solid var(--ksh-line); }
.ksh-relief-feature__media { display:block; overflow:hidden; aspect-ratio:16/10; background:#eee; border-radius:3px; }
.ksh-relief-feature__image { width:100%; height:100%; object-fit:cover; display:block; }
.ksh-relief-feature__content h3 { margin:9px 0 9px; font-size:36px; line-height:1.13; font-weight:400; }
.ksh-relief-feature__content h3 a { color:inherit; text-decoration:none; }
.ksh-relief-feature__content time { color:#aaa; font-size:12px; }
.ksh-relief-feature__content p { margin:19px 0; color:#666; font-size:16px; line-height:1.7; }
.ksh-relief-empty { background:#f7f7f5; border:1px solid #e7e7e3; padding:38px; border-radius:3px; }
.ksh-relief-empty h3 { margin:0 0 8px; font-size:24px; font-weight:400; }
.ksh-relief-empty p { margin:0; color:#777; }
.ksh-relief-cta { padding:58px 0; background:#f5f3ef; border-top:1px solid #e6e2da; }
.ksh-relief-cta h2 { margin:7px 0 0; font-size:30px; line-height:1.2; font-weight:400; }

/* Relief story */
.ksh-story-hero { padding:48px 0 0; background:#fff; }
.ksh-back-link { display:inline-block; margin-bottom:34px; color:#666; font-size:13px; text-decoration:none; }
.ksh-back-link:hover { color:#111; text-decoration:underline; }
.ksh-story-hero__meta { display:flex; flex-wrap:wrap; gap:14px; color:#999; font-size:12px; margin-bottom:12px; }
.ksh-story-hero__meta span { color:#8a7c74; text-transform:uppercase; letter-spacing:.065em; }
.ksh-story-hero h1 { max-width:940px; margin:0 0 18px; font-size:52px; line-height:1.08; letter-spacing:-.02em; font-weight:400; }
.ksh-story-hero__dek { max-width:900px; margin:0 0 34px; color:#6b6864; font-size:18px; line-height:1.6; }
.ksh-story-hero__media { overflow:hidden; max-height:720px; background:#eee; }
.ksh-story-hero__image { width:100%; height:auto; display:block; max-height:720px; object-fit:contain; margin:0 auto; }
.ksh-story-reading { padding:54px 20px 66px; }
.ksh-reading-column { max-width:820px; margin:0 auto; }
.ksh-story-body { color:#3c3c3c; font-size:17px; line-height:1.78; }
.ksh-story-body p { margin:0 0 1.45em; }
.ksh-story-body h2 { margin:2em 0 .7em; font-size:31px; line-height:1.2; font-weight:400; }
.ksh-story-body h3 { margin:1.7em 0 .65em; font-size:24px; line-height:1.25; font-weight:400; }
.ksh-story-body img { max-width:100%; height:auto; }
.ksh-story-figure { margin:2.2em 0 2.4em; }
.ksh-story-figure img { display:block; width:100%; height:auto; border-radius:2px; }
.ksh-video-embed { position:relative; width:100%; aspect-ratio:16 / 9; margin:1.3em 0 2.35em; overflow:hidden; background:#111; }
.ksh-video-embed iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.ksh-story-body blockquote { margin:2em 0; padding:8px 0 8px 24px; border-left:3px solid #c8bbb1; color:#5b5652; font-size:19px; line-height:1.65; }
.ksh-story-body blockquote p { margin:0; }
.ksh-story-body .vc_row { margin-left:0; margin-right:0; }
.ksh-story-after { padding:0 0 72px; }
.ksh-story-after__cta { padding:36px; background:#f5f3ef; border:1px solid #e6e2da; border-radius:3px; align-items:center; }
.ksh-story-after__cta h2 { max-width:650px; margin:7px 0 0; font-size:28px; line-height:1.25; font-weight:400; }
.ksh-story-after__cta .ksh-relief-actions { margin-top:0; justify-content:flex-end; }
.ksh-related { padding-top:58px; }
.ksh-related > h2 { margin:0 0 28px; font-size:30px; font-weight:400; }

@media (max-width: 1000px) {
    .ksh-story-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .ksh-story-grid.is-masonry .ksh-story-grid__sizer,
    .ksh-story-grid.is-masonry .ksh-story-card { width:calc((100% - 28px) / 2); }
    .ksh-relief-feature { grid-template-columns:1fr 1fr; gap:28px; }
    .ksh-relief-hero h1,
    .ksh-story-hero h1 { font-size:44px; }
}

@media (max-width: 700px) {
    .ksh-blog-intro__inner,
    .ksh-section-heading,
    .ksh-relief-cta__inner,
    .ksh-story-after__cta { align-items:flex-start; flex-direction:column; gap:18px; }
    .ksh-blog-intro { padding-bottom:20px; }
    .ksh-blog-browser { padding-top:24px; }
    .ksh-topic-tabs { flex-wrap:nowrap; overflow-x:auto; padding-bottom:5px; margin-bottom:26px; -webkit-overflow-scrolling:touch; }
    .ksh-topic-tab { flex:0 0 auto; }
    .ksh-story-grid { grid-template-columns:1fr; gap:34px; }
    .ksh-story-grid.is-masonry .ksh-story-grid__sizer,
    .ksh-story-grid.is-masonry .ksh-story-card { width:100%; }
    .ksh-story-grid.is-masonry .ksh-story-grid__gutter { width:0; }
    .ksh-story-grid.is-masonry .ksh-story-card { margin-bottom:34px; }
    .ksh-story-card h2,
    .ksh-story-card h3 { font-size:22px; }
    .ksh-blog-archive .ksh-story-card h2 { font-size:20px; }
    .ksh-relief-hero { padding:48px 0 52px; }
    .ksh-relief-hero h1,
    .ksh-story-hero h1 { font-size:36px; }
    .ksh-relief-hero__intro { font-size:16px; }
    .ksh-story-hero__dek { font-size:16px; line-height:1.55; margin-bottom:26px; }
    .ksh-relief-stories { padding:48px 0 56px; }
    .ksh-relief-feature { grid-template-columns:1fr; gap:24px; padding-bottom:44px; margin-bottom:42px; }
    .ksh-relief-feature__content h3 { font-size:29px; }
    .ksh-section-heading h2 { font-size:29px; }
    .ksh-story-hero { padding-top:34px; }
    .ksh-story-hero__media { margin-left:-20px; margin-right:-20px; }
    .ksh-story-reading { padding-top:40px; }
    .ksh-story-body { font-size:16px; line-height:1.72; }
    .ksh-story-after__cta { padding:28px 24px; }
    .ksh-story-after__cta .ksh-relief-actions { justify-content:flex-start; }
}

@media (prefers-reduced-motion: reduce) {
    .ksh-story-card__image,
    .ksh-button,
    .ksh-topic-tab { transition:none; }
}

/* Ministries 2.0 · Koinonia Stories Hub 1.1.0 */
.ksh-ministries-archive {
    color: var(--ksh-text);
    background: #fff;
}
.ksh-ministry-overview {
    margin: 0 0 44px;
    padding: 30px 32px;
    border: 1px solid var(--ksh-line);
    border-radius: 3px;
    background: #fafaf8;
    overflow: hidden;
}
.ksh-ministry-overview__content {
    color: #575757;
    font-size: 15px;
    line-height: 1.72;
}
.ksh-ministry-overview__content > :first-child { margin-top: 0; }
.ksh-ministry-overview__content > :last-child { margin-bottom: 0; }
.ksh-ministry-overview__content .vc_row,
.ksh-ministry-overview__content .section,
.ksh-ministry-overview__content .full_section_inner {
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100%;
}
.ksh-ministry-overview__content img {
    max-width: 100%;
    height: auto;
}
.ksh-ministry-overview__content h2,
.ksh-ministry-overview__content h3,
.ksh-ministry-overview__content h4 {
    line-height: 1.25;
}
@media (max-width: 700px) {
    .ksh-ministry-overview {
        margin-bottom: 32px;
        padding: 24px 20px;
    }
    .ksh-ministry-overview__content {
        font-size: 15px;
        line-height: 1.65;
    }
}
