/* Running text: .prose (project/news bodies, legal pages) and the Elementor "Text-Editor" widget.
   .prose uses direct children only → no leaking into components (quote, callout …) inside the text. */

.prose { max-width: 760px; }

.prose > :first-child,
.elementor-widget-text-editor > :first-child { margin-top: 0; }

.prose > :last-child,
.elementor-widget-text-editor > :last-child,
.elementor-widget-text-editor .elementor-widget-container > :last-child { margin-bottom: 0; }

.prose > h2,
.elementor-widget-text-editor h2 {
  margin-top: 2.2em;
  font-size: clamp(1.45rem, 2.4vw, 1.85rem);
}

.prose > h3,
.elementor-widget-text-editor h3 { margin-top: 1.8em; }

.prose :where(a:not(.btn, .link-arrow, .project-card, .news-card)),
.elementor-widget-text-editor :where(a:not(.btn, .link-arrow)) {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  overflow-wrap: anywhere;
}

.prose > ul,
.prose > ol,
.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol {
  padding-left: 1.3em;
  margin: 0 0 1.2em;
}

.prose > ul > li,
.prose > ol > li,
.elementor-widget-text-editor li { margin-bottom: .4em; }

.prose :where(li)::marker,
.elementor-widget-text-editor li::marker { color: var(--color-primary); }

.prose > blockquote,
.elementor-widget-text-editor blockquote {
  margin: 2em 0;
  padding: 4px 0 4px 24px;
  border-left: 3px solid var(--color-primary);
  font-size: 1.15rem;
  color: var(--color-ink);
}

/* block editor output */
.prose > figure { margin: 2em 0; }
.prose > .wp-block-image img { border-radius: var(--radius-lg); }
.prose > hr {
  margin: 2.5em 0;
  border: 0;
  border-top: 1px solid var(--color-line);
}
