/* ---------- Blog index: cards from the Query Loop ---------- */
#content .kb-posts .wp-block-post-template { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
#content .kb-posts .wp-block-post-template > li { margin: 0; display: flex; }
.kb-post-card { display: flex; flex-direction: column; width: 100%; background: #fff; border: 1px solid var(--kb-line); border-radius: 16px; overflow: hidden; transition: transform .18s, border-color .18s, box-shadow .18s; }
.kb-post-card:hover { transform: translateY(-3px); border-color: var(--kb-gold-ink); box-shadow: 0 14px 30px rgba(26, 31, 40, .08); }
.kb-post-card .wp-block-post-featured-image { margin: 0; aspect-ratio: 16 / 9; background: var(--kb-cream-2); }
.kb-post-card .wp-block-post-featured-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.kb-post-card .wp-block-post-terms { margin: 18px 20px 0; }
.kb-post-card .wp-block-post-terms a { color: var(--kb-gold-ink); text-decoration: none; }
.kb-post-card .wp-block-post-title { margin: 8px 20px 0; font-family: var(--kb-font-head); font-weight: 700; font-size: 18px; line-height: 1.3; }
.kb-post-card .wp-block-post-title a { color: var(--kb-ink); text-decoration: none; }
.kb-post-card .wp-block-post-title a:hover, .kb-post-card .wp-block-post-title a:focus { color: var(--kb-gold-ink); }
.kb-post-card .wp-block-post-excerpt { margin: 8px 20px 0; font-size: 15.5px; line-height: 1.55; color: var(--kb-body); }
.kb-post-card .wp-block-post-excerpt p { margin: 0; }
.kb-post-card .wp-block-post-excerpt__more-text { display: none; }
.kb-post-card .wp-block-post-date { margin: auto 20px 0; padding: 16px 0 18px; font-size: 13.5px; color: var(--kb-body); }

.kb-posts .wp-block-query-pagination { margin-top: 40px; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; }
.kb-posts .wp-block-query-pagination a, .kb-posts .wp-block-query-pagination .page-numbers,
.archive #content .ast-pagination a, .archive #content .ast-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px;
  border: 1px solid var(--kb-line); border-radius: 10px; background: #fff; color: var(--kb-ink); font-size: 15px; font-weight: 600; text-decoration: none;
}
.kb-posts .wp-block-query-pagination .page-numbers.current, .archive .ast-pagination .page-numbers.current { background: var(--kb-navy); border-color: var(--kb-navy); color: #fff; }
.kb-posts .wp-block-query-pagination a:hover, .archive .ast-pagination a:hover { border-color: var(--kb-gold-ink); color: var(--kb-gold-ink); }
.kb-posts .wp-block-query-pagination .page-numbers.dots { border: 0; background: none; min-width: 20px; padding: 0; }

/* ---------- Category, tag and date archives (Astra's markup) ---------- */
.archive #content, .single-post #content { background: var(--kb-cream); }
.archive #content > .ast-container, .single-post #content > .ast-container { display: block; max-width: calc(var(--kb-width) + 2 * var(--kb-gutter)); padding: 56px var(--kb-gutter) 72px; }
.archive #content #primary, .single-post #primary { width: 100%; margin: 0; padding: 0; }
.archive #content .ast-archive-description { background: none; border: 0; margin: 0 0 30px; padding: 0; }
.archive #content .ast-archive-description h1 { font-family: var(--kb-font-head); font-weight: 800; font-size: clamp(28px, 4vw, 40px); color: var(--kb-ink); margin: 0; }
.archive #content .site-main > .ast-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 0; }
.archive #content .ast-article-post { width: auto; float: none; margin: 0; padding: 0; background: #fff; border: 1px solid var(--kb-line); border-radius: 16px; overflow: hidden; }
.archive #content .ast-article-post .ast-article-inner, .archive #content .ast-article-post .post-content { padding: 0; margin: 0; background: none; }
.archive #content .ast-article-post .post-thumb { margin: 0; }
.archive #content .ast-article-post .post-thumb img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.archive #content .ast-article-post .entry-title { margin: 18px 20px 0; font-family: var(--kb-font-head); font-weight: 700; font-size: 18px; line-height: 1.3; }
.archive #content .ast-article-post .entry-title a { color: var(--kb-ink); text-decoration: none; }
.archive #content .ast-article-post .entry-meta, .archive #content .ast-article-post .ast-taxonomy-container { margin: 6px 20px 0; font-size: 13.5px; color: var(--kb-body); }
.archive #content .ast-article-post .entry-meta a, .archive #content .ast-article-post .ast-taxonomy-container a { color: var(--kb-body); text-decoration: none; }
.archive #content .ast-article-post .ast-excerpt-container { margin: 8px 20px 20px; font-size: 15.5px; line-height: 1.55; color: var(--kb-body); }
.archive #content .ast-article-post .ast-excerpt-container p { margin: 0; }
.archive #content .ast-article-post .read-more { display: none; }
.archive #content .ast-pagination { margin-top: 40px; text-align: center; }
.archive #content .ast-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }

/* ---------- Single post ---------- */
.single-post #content .ast-article-single { max-width: 720px; margin: 0 auto; padding: 0; background: none; }
.single-post #content .entry-header { margin: 0 0 26px; }
.single-post #content .entry-header .post-thumb-img-content, .single-post #content .entry-header .post-thumb { margin: 0 0 26px; }
.single-post #content .entry-header img { display: block; width: 100%; height: auto; border-radius: 16px; }
.single-post #content .entry-title { font-family: var(--kb-font-head); font-weight: 800; font-size: clamp(28px, 4.4vw, 42px); line-height: 1.14; letter-spacing: -.01em; color: var(--kb-ink); margin: 0 0 12px; }
.single-post #content .entry-meta, .single-post #content .entry-meta a { font-size: 14.5px; color: var(--kb-body); text-decoration: none; }
.single-post #content .entry-content { font-size: 17.5px; line-height: 1.7; color: #333B46; }
.single-post #content .entry-content > p, .single-post .entry-content > ul, .single-post #content .entry-content > ol { margin: 0 0 22px; }
.single-post #content .entry-content h2 { font-family: var(--kb-font-head); font-weight: 700; font-size: 25px; line-height: 1.25; color: var(--kb-ink); margin: 40px 0 14px; }
.single-post #content .entry-content h3 { font-family: var(--kb-font-head); font-weight: 600; font-size: 20px; color: var(--kb-ink); margin: 32px 0 10px; }
.single-post #content .entry-content a { color: var(--kb-gold-ink); text-underline-offset: 3px; }
.single-post #content .entry-content img { height: auto; border-radius: 12px; }
.single-post #content .entry-content li { margin-bottom: 8px; }

.kb-post-cta { margin: 48px 0 0; padding: 30px; background: #fff; border: 1px solid var(--kb-line); border-left: 4px solid var(--kb-gold); border-radius: 16px; }
.kb-post-cta .kb-eyebrow { margin: 0 0 8px; }
.single-post #content .entry-content .kb-post-cta h2 { margin: 0 0 8px; font-size: 23px; }
.kb-post-cta p { margin: 0; font-size: 16.5px; line-height: 1.6; color: var(--kb-body); }
.kb-post-cta__buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.single-post #content .entry-content a.kb-post-cta__btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px; border-radius: 10px; font-size: 15.5px; font-weight: 700; text-decoration: none; transition: background .16s, transform .16s; }
.single-post #content .entry-content a.kb-post-cta__btn.kb-btn-gold { background: var(--kb-gold); color: var(--kb-navy); }
.single-post #content .entry-content a.kb-post-cta__btn.kb-btn-gold:hover { background: var(--kb-gold-hover); transform: translateY(-1px); }
.single-post #content .entry-content a.kb-post-cta__btn.kb-btn-dark { background: var(--kb-navy); color: #fff; }
.single-post #content .entry-content a.kb-post-cta__btn.kb-btn-dark:hover { background: #1B2233; transform: translateY(-1px); }

.single-post #content .post-navigation { max-width: 720px; margin: 44px auto 0; padding: 22px 0 0; border-top: 1px solid var(--kb-line); }
.single-post #content .post-navigation .nav-links { display: flex; justify-content: space-between; gap: 20px; }
.single-post #content .post-navigation a { display: inline-flex; align-items: center; min-height: 44px; color: var(--kb-ink); font-weight: 600; font-size: 15px; text-decoration: none; }
.single-post #content .post-navigation a:hover, .single-post #content .post-navigation a:focus { color: var(--kb-gold-ink); }
.single-post #content .ast-author-box, .single-post #content .comments-area { display: none; }

@media (max-width: 900px) {
  #content .kb-posts .wp-block-post-template, .archive #content .site-main > .ast-row { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  #content .kb-posts .wp-block-post-template, .archive #content .site-main > .ast-row { grid-template-columns: 1fr; }
  .archive #content > .ast-container, .single-post #content > .ast-container { padding-top: 36px; padding-bottom: 52px; }
  .single-post #content .entry-content { font-size: 17px; }
  .kb-post-cta { padding: 22px 18px; }
  .kb-post-cta__buttons .kb-post-cta__btn { width: 100%; }
  .single-post #content .post-navigation .nav-links { flex-direction: column; gap: 4px; }
}

/* The query wrapper is a plain container: the grid above does the layout. */
#content .kb-posts { max-width: none; margin: 0; padding: 0; }
/* Astra shows post details in capitals; sentence case reads better at this size. */
.single-post #content .entry-meta, .archive .ast-article-post .entry-meta { text-transform: none; letter-spacing: 0; }

/* Astra pulls archive thumbnails outside the card with negative margins; keep them inside. */
.archive #content .ast-article-post .post-thumb, .archive #content .ast-article-post .post-thumb img,
.archive #content .ast-article-post .ast-blog-featured-section { margin: 0; width: 100%; max-width: 100%; }
.archive #content .ast-article-post .ast-blog-single-element { padding-left: 0; padding-right: 0; }
.archive #content .ast-article-post .ast-taxonomy-container { margin-top: 16px; }
.archive #content .ast-article-post .entry-title { margin-top: 8px; }

/* Previous and next post: a small label over the post's title. */
.single-post #content .post-navigation .nav-links > div { flex: 1; width: auto; max-width: 50%; border: 0; padding: 0; }
.single-post #content .post-navigation a { flex-direction: column; align-items: flex-start; gap: 2px; }
.single-post #content .post-navigation .nav-next { text-align: right; margin-left: auto; }
.single-post #content .post-navigation .nav-next a { align-items: flex-end; }
.single-post #content .post-navigation .ast-post-nav { display: inline-flex; align-items: center; gap: 6px; font-family: var(--kb-font-mono); font-size: 13px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--kb-gold-ink); }
.single-post #content .post-navigation .ast-post-nav svg { width: 12px; height: 12px; fill: currentColor; }
.single-post #content .post-navigation p { margin: 0; font-size: 15.5px; font-weight: 600; line-height: 1.4; white-space: normal; overflow: visible; max-width: none; color: inherit; }
@media (max-width: 600px) { .single-post #content .post-navigation .nav-links > div { max-width: 100%; } .single-post #content .post-navigation .nav-next, .single-post #content .post-navigation .nav-next a { text-align: left; align-items: flex-start; margin-left: 0; } }

/* Card pictures are always a 16:9 box, whatever shape the uploaded image is. */
#content .kb-post-card .wp-block-post-featured-image { aspect-ratio: 16 / 9; overflow: hidden; }
#content .kb-post-card .wp-block-post-featured-image a { display: block; width: 100%; height: 100%; }
#content .kb-post-card .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
