  /* GEO Lab v3 Shared Content Styles
     Canonical source: /var/www/thegeolab/wp-content/themes/geolab-theme/v3-shared-css.html
     Last updated: 2 April 2026
     Copy this entire <style> block into every post/page content.
     DO NOT edit individual post copies — edit this file and propagate. */

  /* ── Post meta & subtitle ── */
  .post-meta { font-family: -apple-system, sans-serif; font-size: 0.88rem; color: #666; margin-bottom: 0.4rem; }
  .subtitle { font-size: 1.05rem; color: #444; font-style: italic; margin: 0.4rem 0 2rem; }

  /* ── TL;DR / Definition block ── */
  .definition-block { background: #f5f5f5; border-left: 5px solid #111; padding: 1.25rem 1.6rem; margin: 2rem 0; border-radius: 0 6px 6px 0; }
  .definition-block .label { font-family: -apple-system, sans-serif; font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: #666; margin-bottom: 0.5rem; display: block; }
  .definition-block p { margin: 0 0 0.5rem; }
  .definition-block p:last-child { margin: 0; }

  /* ── Callout — amber/gold (data, stats, evidence) ── */
  .callout { background: #fffbf0; border-left: 5px solid #d4a012; padding: 1.1rem 1.5rem; margin: 2rem 0; border-radius: 0 6px 6px 0; }
  .callout p { margin: 0 0 0.4rem; }
  .callout p:last-child { margin: 0; }

  /* ── Callout — blue (cross-references, field manual links) ── */
  .callout-note { background: #f0f4ff; border-left: 5px solid #3b5bdb; padding: 1.1rem 1.5rem; margin: 2rem 0; border-radius: 0 6px 6px 0; }
  .callout-note p { margin: 0 0 0.4rem; }
  .callout-note p:last-child { margin: 0; }

  /* ── Variable rows (grey left border, small caps label) ── */
  .variable-row { border-left: 3px solid #ddd; padding: 0.2rem 0 0.2rem 1.25rem; margin: 1.5rem 0; }
  .variable-row .v-label { font-family: -apple-system, sans-serif; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #999; display: block; margin-bottom: 0.2rem; }
  .variable-row h3 { margin: 0 0 0.5rem; font-size: 1.05rem; border: none; padding: 0; }
  .variable-row p { margin: 0 0 0.5rem; font-size: 0.97rem; }
  .variable-row p:last-child { margin: 0; }

  /* ── Signal lists — positive (green) / negative (red) ── */
  .signal-list { list-style: none; padding: 0; margin: 1rem 0 1.5rem; }
  .signal-list li { padding: 0.65rem 1rem 0.65rem 1.25rem; border-left: 3px solid #ddd; margin-bottom: 0.75rem; font-size: 0.97rem; }
  .signal-list.positive li { border-left-color: #166534; }
  .signal-list.negative li { border-left-color: #b91c1c; }
  .signal-list li strong { display: block; margin-bottom: 0.2rem; }
  .signal-list li .example { font-family: -apple-system, sans-serif; font-size: 0.83rem; color: #555; font-style: italic; margin-top: 0.3rem; display: block; }

  /* ── Numbered step protocol (black circles) ── */
  .protocol { counter-reset: step; list-style: none; padding: 0; margin: 1.25rem 0 1.75rem; }
  .protocol li { counter-increment: step; display: flex; gap: 1.1rem; align-items: flex-start; margin-bottom: 1.5rem; }
  .protocol li::before { content: counter(step); background: #111; color: #fff; font-family: -apple-system, sans-serif; font-size: 0.85rem; font-weight: 700; min-width: 1.75rem; height: 1.75rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 0.15rem; }
  .protocol li .step-content { flex: 1; }
  .protocol li .step-content strong { display: block; margin-bottom: 0.3rem; font-size: 1rem; }
  .protocol li .step-content p { margin: 0; font-size: 0.97rem; }

  /* ── Comparison table — navy header (#1B4F8A) ── */
  .comparison-table { width: 100%; border-collapse: collapse; margin: 1.5rem 0 2rem; font-size: 0.93rem; font-family: 'DM Sans', -apple-system, sans-serif; border-radius: 8px; overflow: hidden; border: 1px solid #e0ddd8; }
  .comparison-table thead { background: #1B4F8A; }
  .comparison-table th { padding: 0.75rem 1rem; text-align: left; font-weight: 700; color: #fff; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.05em; border-bottom: none; }
  .comparison-table td { padding: 0.75rem 1rem; border-bottom: 1px solid #e0ddd8; vertical-align: top; color: #4a4540; }
  .comparison-table td:first-child { font-weight: 700; color: #1a1714; white-space: nowrap; }
  .comparison-table tbody tr:nth-child(even) { background: #f8f5f0; }
  .comparison-table tbody tr:nth-child(odd) { background: #fff; }
  .comparison-table tbody tr:hover { background: #f0ede8; }
  .comparison-table tbody tr:last-child td { border-bottom: none; }
  @media (max-width: 580px) { .comparison-table { font-size: 0.82rem; } .comparison-table th, .comparison-table td { padding: 0.6rem 0.7rem; } .comparison-table td:first-child { white-space: normal; } }

  /* ── Key takeaways (black numbered circles) ── */
  .takeaway-list { counter-reset: takeaway; list-style: none; padding: 0; margin: 1rem 0 1.5rem; }
  .takeaway-list li { counter-increment: takeaway; display: flex; gap: 1rem; margin-bottom: 1.1rem; align-items: flex-start; font-size: 0.97rem; }
  .takeaway-list li::before { content: counter(takeaway); background: #111; color: #fff; font-family: -apple-system, sans-serif; font-size: 0.78rem; font-weight: 700; min-width: 1.5rem; height: 1.5rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 0.18rem; }

  /* ── Related reading cards — 2-column grid ── */
  .related-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.85rem; margin: 1.25rem 0; }
  .related-card { border: 1px solid #e0e0e0; border-radius: 8px; padding: 1rem 1.1rem; text-decoration: none; color: inherit; display: block; }
  .related-card:hover { border-color: #111; }
  .related-card .r-label { font-family: -apple-system, sans-serif; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: #888; margin-bottom: 0.3rem; display: block; }
  .related-card .r-title { font-family: -apple-system, sans-serif; font-size: 0.88rem; font-weight: 700; color: #111; line-height: 1.35; display: block; margin-bottom: 0.25rem; }
  .related-card .r-desc { font-family: -apple-system, sans-serif; font-size: 0.78rem; color: #666; line-height: 1.45; }

  /* ── FAQ ── */
  .faq-item { margin-bottom: 1.75rem; }
  .faq-item h3 { margin-bottom: 0.5rem; font-size: 1.05rem; }

  /* ── Meta footer / Sources ── */
  .meta-section { font-family: -apple-system, sans-serif; font-size: 0.88rem; color: #555; border-top: 1px solid #e0e0e0; padding-top: 1.5rem; margin-top: 3rem; }
  .meta-section h2 { font-size: 1rem; font-family: -apple-system, sans-serif; border: none; margin-top: 1.5rem; padding: 0; color: #333; font-weight: 700; }
  .meta-section ul { margin-left: 1.2rem; }
  .meta-section li { margin-bottom: 0.3rem; }

  /* ── Testimonial / Review cards ── */
  .testimonial-card { border: 1px solid #e0e0e0; border-radius: 8px; padding: 1rem 1.25rem; margin-bottom: 1rem; font-size: 0.93rem; }
  .testimonial-card .t-body { font-style: italic; margin-bottom: 0.5rem; }
  .testimonial-card .t-author { font-weight: 700; font-size: 0.85rem; }
  .testimonial-card .t-role { font-size: 0.8rem; color: #666; }

  /* ── Mobile responsive ── */
  @media (max-width: 580px) { .related-grid { grid-template-columns: 1fr; } }
