/* ==========================================================================
   KS INSIGHTS HUB — magazine landing page for /insights/
   Featured + Editor's pick + All articles + Topics index
   Reuses pillar/cluster font/color tokens
   ========================================================================== */

body.page-insights-hub,
body.page.page-insights-hub {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    color: #0f1419;
    background: #fafaf7;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

/* === Container === */
.ks-hub__article {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 32px 80px;
}

/* === HERO === */
.ks-hub__hero {
    border-top: 1px solid #e6e4dd;
    border-bottom: 1px solid #e6e4dd;
    padding: 56px 0 56px;
    margin-bottom: 56px;
}
.ks-hub__hero-inner { max-width: 920px; }

.ks-hub__eyebrow {
    display: inline-block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #0f1419;
    background: #f4f1ea;
    padding: 6px 12px;
    border: 1px solid #e6e4dd;
    margin-bottom: 24px;
}

.ks-hub__h1 {
    font-family: 'DM Serif Display', Georgia, serif;
    font-size: clamp(36px, 5vw, 64px);
    line-height: 1.05;
    font-weight: 400;
    margin: 0 0 20px;
    letter-spacing: -0.02em;
    color: #0f1419;
}
.ks-hub__lede {
    font-size: clamp(17px, 1.4vw, 20px);
    line-height: 1.55;
    color: #2a2a2a;
    margin: 0 0 24px;
    max-width: 780px;
}
.ks-hub__lede p { margin: 0 0 12px; }
.ks-hub__lede p:last-child { margin-bottom: 0; }

.ks-hub__meta {
    font-size: 13px;
    color: #6b6b6b;
    letter-spacing: 0.02em;
}
.ks-hub__sep { margin: 0 8px; color: #c4c4c0; }

/* === Section heading (used in featured/picks/main) === */
.ks-hub-section__h {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin: 0 0 12px;
    color: #0f1419;
}
.ks-hub-section__sub {
    font-size: 14px;
    line-height: 1.5;
    color: #6b6b6b;
    margin: 0 0 28px;
    max-width: 620px;
}

/* === FEATURED === */
.ks-hub__featured { margin-bottom: 64px; }
.ks-hub-featured__card {
    display: block;
    background: #0f1419;
    color: white;
    padding: 48px 56px;
    text-decoration: none;
    border: 1px solid #0f1419;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.ks-hub-featured__card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(15, 20, 25, 0.12);
}
.ks-hub-featured__copy { max-width: 820px; }

.ks-hub-featured__head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
}
.ks-hub-featured__cat {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #c4c4c0;
}
.ks-hub-featured__tier {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.1em;
    color: #0f1419;
    background: #f4f1ea;
    padding: 3px 8px;
    border: 1px solid #f4f1ea;
}
.ks-hub-featured__h2 {
    font-family: 'DM Serif Display', Georgia, serif;
    font-size: clamp(28px, 3.5vw, 44px);
    line-height: 1.1;
    font-weight: 400;
    margin: 0 0 16px;
    color: white;
    letter-spacing: -0.015em;
}
.ks-hub-featured__excerpt {
    font-size: 16px;
    line-height: 1.55;
    color: #c4c4c0;
    margin: 0 0 24px;
}
.ks-hub-featured__foot {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 13px;
    color: #c4c4c0;
}
.ks-hub-featured__cta {
    font-weight: 600;
    color: white;
    letter-spacing: 0.02em;
}

/* === EDITOR'S PICK === */
.ks-hub__picks { margin-bottom: 80px; }
.ks-hub-picks__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
}
.ks-hub-pick__card {
    display: block;
    background: white;
    border: 1px solid #e6e4dd;
    padding: 28px 28px 24px;
    text-decoration: none;
    color: inherit;
    transition: all 0.15s ease;
}
.ks-hub-pick__card:hover {
    border-color: #0f1419;
    transform: translateY(-2px);
}
.ks-hub-pick__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
}
.ks-hub-pick__cat {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #6b6b6b;
}
.ks-hub-pick__tier {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    font-weight: 600;
    color: #0f1419;
    background: #f4f1ea;
    padding: 2px 6px;
    border: 1px solid #e6e4dd;
    letter-spacing: 0.08em;
}
.ks-hub-pick__h3 {
    font-family: 'DM Serif Display', Georgia, serif;
    font-size: 20px;
    line-height: 1.25;
    font-weight: 400;
    margin: 0 0 12px;
    color: #0f1419;
    letter-spacing: -0.01em;
}
.ks-hub-pick__excerpt {
    font-size: 14px;
    line-height: 1.5;
    color: #4a4a4a;
    margin: 0 0 20px;
}
.ks-hub-pick__foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    color: #6b6b6b;
    border-top: 1px solid #e6e4dd;
    padding-top: 12px;
}
.ks-hub-pick__cta {
    font-weight: 600;
    color: #0f1419;
    letter-spacing: 0.04em;
}

/* === ALL ARTICLES + TOPICS (2-col main + rail) === */
.ks-hub__main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 64px;
    align-items: start;
}
@media (max-width: 960px) {
    .ks-hub__main { grid-template-columns: 1fr; gap: 48px; }
}

/* === All articles list === */
.ks-hub-list {
    list-style: none;
    margin: 0;
    padding: 0;
    counter-reset: hub-list;
}
.ks-hub-list__item {
    border-top: 1px solid #e6e4dd;
}
.ks-hub-list__item:last-child { border-bottom: 1px solid #e6e4dd; }

.ks-hub-list__link {
    display: grid;
    grid-template-columns: 36px 1fr 80px;
    gap: 20px;
    align-items: start;
    padding: 24px 0;
    text-decoration: none;
    color: inherit;
    transition: background 0.1s ease;
}
.ks-hub-list__link:hover { background: #f4f1ea; }
.ks-hub-list__link:hover .ks-hub-list__title { color: #0f1419; }
.ks-hub-list__link:hover .ks-hub-list__cta { color: #0f1419; }

.ks-hub-list__num {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: #c4c4c0;
    padding-top: 3px;
    font-weight: 600;
}
.ks-hub-list__body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.ks-hub-list__meta {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 11px;
    color: #6b6b6b;
    letter-spacing: 0.02em;
}
.ks-hub-list__tier {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 600;
    color: #0f1419;
    background: #f4f1ea;
    padding: 2px 6px;
    letter-spacing: 0.08em;
}
.ks-hub-list__cat { font-weight: 500; }
.ks-hub-list__date::before { content: '·'; margin-right: 6px; color: #c4c4c0; }

.ks-hub-list__title {
    font-family: 'DM Serif Display', Georgia, serif;
    font-size: 22px;
    line-height: 1.25;
    font-weight: 400;
    color: #0f1419;
    margin: 0;
    letter-spacing: -0.01em;
}
.ks-hub-list__excerpt {
    font-size: 14px;
    line-height: 1.5;
    color: #4a4a4a;
}
.ks-hub-list__cta {
    font-size: 12px;
    font-weight: 600;
    color: #6b6b6b;
    text-align: right;
    letter-spacing: 0.04em;
    padding-top: 4px;
}

/* === Topics rail === */
.ks-hub__rail {
    position: sticky;
    top: 32px;
}
.ks-hub-topics {
    list-style: none;
    margin: 0 0 32px;
    padding: 0;
}
.ks-hub-topic {
    border-top: 1px solid #e6e4dd;
}
.ks-hub-topic:last-child { border-bottom: 1px solid #e6e4dd; }
.ks-hub-topic__link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 0;
    text-decoration: none;
    color: inherit;
    transition: color 0.1s;
}
.ks-hub-topic__link:hover .ks-hub-topic__name {
    color: #0f1419;
    text-decoration: underline;
}
.ks-hub-topic__name {
    font-size: 15px;
    font-weight: 500;
    color: #2a2a2a;
}
.ks-hub-topic__count {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: #6b6b6b;
    font-weight: 600;
    background: #f4f1ea;
    padding: 2px 8px;
    border: 1px solid #e6e4dd;
}

/* === Rail CTA === */
.ks-hub-rail__cta {
    background: #0f1419;
    color: white;
    padding: 24px 28px;
}
.ks-hub-rail__cta-h {
    font-size: 15px;
    font-weight: 600;
    margin: 0 0 14px;
    color: white;
}
.ks-hub-rail__cta-btn {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    color: #0f1419;
    background: white;
    padding: 10px 16px;
    text-decoration: none;
    letter-spacing: 0.02em;
    transition: background 0.1s;
}
.ks-hub-rail__cta-btn:hover { background: #f4f1ea; }
