/* Rich text (case study body, legal pages). Becomes core blocks in WordPress.
   Screenshots sit in a minimal frame: 1px border on --ws-dark-3 (BRAND.md 7). */
.ws-prose{ max-width:65ch; color:var(--ws-fg-muted); }
.ws-prose > * + *{ margin-top:1em; }
.ws-prose h2{
  margin-top:var(--ws-space-5);
  font-size:var(--ws-fs-h3);
  color:var(--ws-fg);
}
.ws-prose h3{
  margin-top:var(--ws-space-4);
  font-size:24px;
  color:var(--ws-fg);
}
.ws-prose h2 + *,
.ws-prose h3 + *{ margin-top:var(--ws-space-2); }
.ws-prose strong{ color:var(--ws-fg); }
.ws-prose a{ color:var(--ws-fg); }
.ws-prose a:hover{ color:var(--ws-accent-text); }
.ws-prose ul,
.ws-prose ol{ display:grid; gap:8px; padding-left:1.25em; }
.ws-prose ul{ list-style:square; }
.ws-prose li::marker{ color:var(--ws-fg-dim); }
.ws-prose blockquote{
  padding-left:16px;
  border-left:3px solid var(--ws-red);
  font-style:italic;
}

.ws-frame{ margin:0; }
.ws-frame img{
  width:100%;
  background:var(--ws-dark-3);
  border:1px solid var(--ws-border-dark);
}
:is(.ws-section--light,.ws-section--off-white) .ws-frame img{ border-color:var(--ws-border-light); }
.ws-frame figcaption{ margin-top:var(--ws-space-1); font-size:var(--ws-fs-small); color:var(--ws-fg-dim); }
.ws-frame-pair{ display:grid; gap:var(--ws-space-2); }
@media (min-width:768px){ .ws-frame-pair{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--ws-space-3); } }
.ws-prose .ws-frame-pair{ margin-block:var(--ws-space-4); }
/* An eyebrow in the text belongs to the heading that follows it. */
.ws-prose .ws-eyebrow{ margin-top:var(--ws-space-5); color:var(--ws-accent-text); }
.ws-prose .ws-eyebrow + h2,
.ws-prose .ws-eyebrow + h3{ margin-top:var(--ws-space-1); }
