/* Insights listing + article pages (kept separate from style.css) */
.insights-section { padding: 5rem 0 6rem; }
.insights-list { max-width: 920px; margin: 2rem auto 0; display: grid; gap: 1.75rem; }

.post-card {
  display: grid; grid-template-columns: 1fr 280px; gap: 2rem; align-items: center;
  background: var(--cream-light); border: 1px solid var(--border-soft); border-radius: 8px;
  padding: 1.75rem; transition: transform .3s ease, box-shadow .3s ease;
}
.post-card:hover, .post-card:focus-visible { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(12,6,3,.16); outline: none; }
.post-tag { display: inline-flex; align-items: center; gap: .55rem; font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #0a6b46; margin-bottom: .8rem; }
.post-tag::before { content: ""; width: 22px; height: 2px; background: linear-gradient(90deg, #008751 0 33.4%, #fff 33.4% 66.6%, #008751 66.6%); box-shadow: 0 0 0 1px rgba(0,135,81,.25); }
.post-title { font-family: var(--font-serif); font-weight: 700; font-size: clamp(1.4rem, 2.6vw, 1.85rem); line-height: 1.25; margin-bottom: .35rem; }
.post-sub { font-family: var(--font-serif); font-style: italic; color: var(--text-muted); margin-bottom: .9rem; }
.post-excerpt { color: var(--text-muted); line-height: 1.75; margin-bottom: 1.1rem; }
.post-meta { font-size: .82rem; color: var(--text-muted); }
.post-more { display: inline-block; margin-top: 1rem; font-weight: 600; font-size: .9rem; }
.post-more span { display: inline-block; transition: transform .3s ease; }
.post-card:hover .post-more span { transform: translateX(5px); }
.post-thumb img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 6px; }

/* ---- Article ---- */
.read-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 1100; background: linear-gradient(90deg, #008751, var(--accent)); transform: scaleX(0); transform-origin: 0 50%; pointer-events: none; }
.article-hero { position: relative; background-size: cover; background-position: center; color: #fff; padding: 10rem 0 4.5rem; }
.article-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,6,3,.7) 0%, rgba(10,6,3,.92) 100%); }
.article-hero .wrap { position: relative; z-index: 1; max-width: 760px; margin: 0 auto; width: 90%; }
.article-kicker { display: flex; align-items: center; gap: .7rem; font-size: .74rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #bfe9d4; margin-bottom: 1.1rem; }
.article-kicker::before { content: ""; width: 34px; height: 2px; background: linear-gradient(90deg, #008751 0 33.4%, #fff 33.4% 66.6%, #008751 66.6%); }
.article-hero h1 { font-family: var(--font-serif); font-style: italic; font-weight: 400; font-size: clamp(2.2rem, 5.2vw, 3.7rem); line-height: 1.15; margin-bottom: 1.5rem; }
.article-meta { font-size: .88rem; color: #e6d9c8; line-height: 1.7; }
.article-meta strong { color: #fff; font-weight: 600; }

.article-body { max-width: 700px; width: 90%; margin: 0 auto; padding: 3.5rem 0 1rem; }
.back-link { display: inline-block; font-size: .88rem; font-weight: 600; margin-bottom: 2rem; color: var(--text-muted); }
.back-link:hover { color: var(--text-dark); }
.article-body p { font-size: 1rem; line-height: 1.5; margin-bottom: 1.6rem; overflow-wrap: break-word; }
.article-body .protocols { font-size: .75rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--text-muted); margin-bottom: .6rem; }
.article-body .salute { font-family: var(--font-serif); font-style: italic; font-size: 1.25rem; }
.article-body .emph { font-family: var(--font-serif); font-style: italic; font-weight: 700; font-size: 1.3rem; }
.article-body h2.charge { display: flex; align-items: baseline; gap: 1rem; font-family: var(--font-serif); font-weight: 700; font-size: clamp(1.4rem, 3vw, 1.75rem); line-height: 1.3; margin: 3.25rem 0 1.5rem; padding-top: 2rem; border-top: 1px solid var(--border-soft); }
.charge-no { font-style: italic; font-size: 2.6rem; line-height: 1; color: var(--accent); flex: 0 0 auto; }
.article-body blockquote { border-left: 3px solid #008751; padding: .25rem 0 .25rem 1.4rem; margin: 2rem 0; }
.article-body blockquote p { font-family: var(--font-serif); font-style: italic; font-size: 1.4rem; line-height: 1.6; margin: 0; }
.article-body blockquote .src { font-family: var(--font-sans); font-style: normal; font-size: .9rem; color: var(--text-muted); }
.article-body .closing { font-family: var(--font-serif); font-style: italic; font-weight: 700; font-size: 1.3rem; line-height: 1.8; text-align: center; margin: 2.5rem 0; }
.signoff { margin: 2.5rem 0 0; padding-top: 1.75rem; border-top: 1px solid var(--border-soft); }
.article-body .signoff p { margin: 0; line-height: 1.6; font-size: 1rem; color: var(--text-muted); }
.article-body .signoff .name { font-family: var(--font-serif); font-style: italic; font-weight: 700; font-size: 1.35rem; color: var(--text-dark); }
.article-foot { max-width: 700px; width: 90%; margin: 0 auto; padding: 2rem 0 5rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.share { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.share[hidden] { display: none; }
.share span { font-size: .8rem; color: var(--text-muted); margin-right: .2rem; }
.share a, .share button { font: inherit; font-size: .8rem; font-weight: 600; background: none; color: inherit; cursor: pointer; border: 1px solid var(--border-soft); padding: .5rem 1rem; border-radius: 30px; }
.share a:hover, .share button:hover { background: var(--accent); border-color: var(--accent); }

@media (max-width: 700px) {
  .post-card { grid-template-columns: 1fr; padding: 1.25rem; gap: 1.25rem; }
  .post-thumb { order: -1; }
  .post-thumb img { aspect-ratio: 16/9; }
  .article-hero { padding: 8rem 0 3rem; }
  .article-body p { font-size: 1.05rem; }
}
@media (prefers-reduced-motion: reduce) {
  .post-card, .post-more span { transition: none; }
  .post-card:hover { transform: none; }
}
