/* Minimal styles for content features not present in the original prototype. */
.blog-pagination { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin:32px 0; }
.blog-pagination a, .blog-pagination span { padding:10px 16px; border:1px solid currentColor; }
.blog-pagination [aria-current] { font-weight:bold; }

/* Separate new prose sections from preceding copy without moving first headings
   or changing card, billboard, and navigation spacing. */
.service-detail :is(p, ul, ol, blockquote, pre, table):not(.kicker, .case-label) + :is(h2, h3, h4, h5, h6) {
  margin-top: clamp(28px, 3vw, 44px);
}

/* Keep card eyebrows close to their titles on both listing surfaces. */
.case-page .case-card .case-label, .home-case-studies .case-card .case-label {
  margin-bottom: 8px;
}

/* Give prose lists the same type scale as paragraphs. Explicitly scoped to
   content, not navigation, author cards, pricing controls or profile skill chips.
   Fixed sizes avoid compounding the font size in nested Markdown lists. */
.service-detail .service-prose :is(p, ul, ol) {
  color: var(--detail-muted);
  font-size: 17px;
  line-height: 1.75;
}
.blog-page .article-prose :is(ul, ol) {
  color: var(--detail-muted);
  font-size: 18px;
  line-height: 1.85;
}
.staff-profile-page #profile-about :is(p:not(.profile-label, .profile-intro), ul, ol) {
  color: var(--profile-muted);
  font-size: 16px;
  line-height: 1.85;
}
@media (max-width: 720px) {
  .blog-page .article-prose :is(ul, ol) { font-size: 17px; }
}

/* Editable content can contain arbitrary paragraphs/lists, not fixed text slots.
   Keep prose readable without applying card/step decoration to nested items. */
.service-detail .detail-overview > div > :is(ul, ol, blockquote) {
  max-width: 72ch;
  color: var(--detail-muted);
  font-size: 17px;
  line-height: 1.75;
}
.service-detail .detail-process {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
}
.service-detail .detail-process > li :is(ul, ol, blockquote) {
  color: var(--detail-muted);
  font-size: 15px;
  line-height: 1.75;
}
.service-detail :is(.detail-process > li, .detail-checklist > li) > :is(p, ul, ol) + :is(p, ul, ol) {
  margin-top: 12px;
}
.service-detail .detail-checklist > li > :first-child { margin-top: 0; }
.service-detail .detail-checklist > li > :last-child { margin-bottom: 0; }
.home-pricing > div:last-child > :is(ul, ol, blockquote),
.pricing-explainer-content > :is(ul, ol, blockquote) {
  font-size: 16px;
  line-height: 1.75;
}
@media (max-width: 720px) {
  .service-detail .detail-process { grid-template-columns: 1fr; }
}

.staff-profile-page .profile-section :is(ul, ol, blockquote):not(.profile-approach) {
  color: var(--profile-muted);
  font-size: 16px;
  line-height: 1.85;
}
.staff-profile-page .profile-facts dd > :first-child { margin-top: 0; }
.staff-profile-page .profile-facts dd > :last-child { margin-bottom: 0; }

/* Linked single-post attribution, below the title and introductory description. */
.blog-single-page .blog-intro .post-byline {
  display: block;
  margin: 20px 0 0;
  color: var(--detail-muted);
  font: 500 14px/1.7 var(--mono);
}
.blog-single-page .post-byline a {
  color: var(--info-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.blog-single-page .post-byline a:hover,
.blog-single-page .post-byline a:focus-visible { color: var(--cyan); }
