/* blog-content-base.css — GENERATED by _scripts/split-blog-components.mjs.
   Do not edit; edit blog-content.css and regenerate.

   This is blog-content.css with the editorial COMPONENT layer removed.
   Those components are defined once in public/blog-editorial.css instead of
   being redefined across three recovered stylesheets and 14 merged per-post
   dialects. Everything else here is preserved verbatim; compound rules that
   mixed component and non-component selectors are rewritten to keep the
   survivors rather than deleted. */

/* ═══════════════════════════════════════════════════════════════════════════
   blog-content.css — design system for the modern self-contained posts.

   16 posts were authored with an inline "Design System v3" <style> shell
   (.vshr-blog components). WordPress kses stripped those <style> blocks on
   import, so the posts rendered as raw unstyled markup. This restores the
   system as a THEME stylesheet (DRY, survives kses), loaded on single posts.

   Scoped to .vshr-blog, so the 166 plain posts are unaffected.

   The rebuilt single-post FRAME (content-single.blade.php) already provides the
   header, featured image, sidebar ToC, author card and closing CTA — so the
   post's OWN duplicates of those (.vshr-blog-hero / .toc / .cta-section /
   .author-card) are hidden to avoid double chrome. The unique body components
   (.lead / .insight-box / .checklist-card / .faq-*) are what we style.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── hide chrome the new frame already renders (no double header/toc/cta/author) ── */
.e-content .vshr-blog-hero,
.e-content .toc,
.e-content .cta-section,
.e-content .author-card { display: none !important; }

/* ── body typography ── */
.vshr-blog { color: #0f1a2a; font-family: 'Work Sans', var(--font-sans, system-ui), sans-serif; }
.vshr-blog p { color: #0f1a2a; font-size: 17px; line-height: 1.78; margin-bottom: 20px; }
.vshr-blog h2 { color: #07192E; font-size: 26px; font-weight: 700; line-height: 1.18; letter-spacing: -0.01em; margin: 44px 0 14px; }
.vshr-blog h2:first-of-type { margin-top: 0; }
.vshr-blog h3 { color: #07192E; font-size: 17px; font-weight: 700; line-height: 1.25; }
.vshr-blog ul, .vshr-blog ol { color: #0f1a2a; margin: 0 0 16px; padding-left: 24px; font-size: 17px; line-height: 1.7; }
.vshr-blog li { margin-bottom: 3px; }
.vshr-blog li::marker { color: #2170b5; }
.vshr-blog a { color: #1665a8; text-decoration: underline; text-decoration-color: rgba(22,101,168,.32); text-underline-offset: 3px; }
.vshr-blog a:hover { color: #07192E; text-decoration-color: #07192E; }
.vshr-blog strong { color: #07192E; }
.vshr-blog .lead { font-size: 18px; color: #0f1a2a; line-height: 1.8; margin-bottom: 28px; }

/* ── disclaimer ── */
.vshr-blog .vshr-disclaimer { margin-top: 40px; padding: 16px 20px; background: #f9fafb; border-radius: 10px; border: 1px solid #e5e7eb; font-size: 11.5px; line-height: 1.65; color: #6b7280; }
.vshr-blog .vshr-disclaimer p { margin: 0; font-size: 11.5px; color: #6b7280; }
.vshr-blog .vshr-disclaimer strong { color: #4b5563; }

/* ── alternate inline "red flag" note (a single post uses .check-red-flag as a
   block span inside .check-content, with a <strong> uppercase prefix) ── */
.vshr-blog .check-red-flag {
  display: block;
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.55;
  font-style: italic;
  color: #991b1b;
}
.vshr-blog .check-red-flag strong {
  display: inline;
  margin-right: 3px;
  font-style: normal;
  font-weight: 700;
  font-size: 11.5px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #b42318;
}

/* ── source / citation note (sits under a section or the article body) ── */
.vshr-blog .source-note {
  margin: 18px 0 24px;
  font-size: 13px;
  line-height: 1.65;
  color: #5f6d7e;
}
.vshr-blog .source-note a { color: #1665a8; }

/* ── pull quotes ─────────────────────────────────────────────────────────────
   .pull-quote (.vshr-pull-quote) ships with an inline style attribute that
   survives kses, so we only brand its inner type and supply a fallback rule for
   posts where the inline style is absent (no !important — inline wins by design,
   we just fill the gaps). .vshr-pullquote is the bare variant with no inline
   style at all and needs the full treatment. ── */
.vshr-blog .pull-quote,
.vshr-blog .vshr-pull-quote,
.vshr-blog .vshr-pullquote {
  margin: 28px 0;
  padding: 18px 22px;
  background: #f6f8fb;
  border-left: 4px solid #2170b5;
  border-radius: 0 10px 10px 0;
}
.vshr-blog .pull-quote p,
.vshr-blog .vshr-pull-quote p,
.vshr-blog .vshr-pullquote p {
  margin: 0;
  font-size: 18px;
  line-height: 1.55;
  font-style: italic;
  color: #1f2937;
}
.vshr-blog .vshr-pullquote cite {
  display: block;
  margin-top: 12px;
  font-size: 14px;
  font-style: normal;
  line-height: 1.4;
  color: #5f6d7e;
}
.vshr-blog .vshr-pullquote cite strong { color: #07192E; }