/* ============================================================
   Article body typography (.prose)
   ------------------------------------------------------------
   blog/article.php renders flat article HTML inside
   <div class="prose prose-primary max-w-none">, but the
   @tailwindcss/typography plugin is NOT installed, so ".prose"
   resolved to nothing while Tailwind's preflight still stripped
   paragraph margins and list markers. Result: articles rendered
   as an unspaced wall of text with invisible bullets.

   This file is deliberately PLAIN CSS (no Tailwind utilities):
   tailwind.config.js only scans *.php, so any utility class used
   inside the JSON articles would be purged from the build.

   Loaded after site-theme.css so it wins on the article body only.
   ============================================================ */

.prose {
  font-size: 1.0625rem;
  line-height: 1.75;
  color: #1f2937;
}

/* --- Flow: restore vertical rhythm killed by preflight --- */
.prose > * + * {
  margin-top: 1.15em;
}

.prose p {
  margin: 0 0 1.15em;
}

.prose > :last-child {
  margin-bottom: 0;
}

/* --- Headings ------------------------------------------------ */
.prose h2 {
  margin: 2.25em 0 0.75em;
  font-size: 1.5rem;
  line-height: 1.25;
  font-weight: 700;
  color: #001f3f;
}

.prose h3 {
  margin: 1.75em 0 0.6em;
  font-size: 1.185rem;
  line-height: 1.3;
  font-weight: 700;
  color: #001f3f;
}

.prose h2:first-child,
.prose h3:first-child {
  margin-top: 0;
}

/* --- Lists: preflight sets list-style:none + padding-left:0 --- */
.prose ul,
.prose ol {
  margin: 0 0 1.15em;
  padding-left: 1.5em;
}

.prose ul {
  list-style: disc outside;
}

.prose ol {
  list-style: decimal outside;
}

.prose li {
  margin: 0.4em 0;
  padding-left: 0.2em;
}

.prose li::marker {
  color: #f97316;
}

.prose li > ul,
.prose li > ol {
  margin: 0.4em 0 0.2em;
}

/* --- Inline ------------------------------------------------- */
.prose strong {
  font-weight: 700;
  color: #001f3f;
}

.prose a {
  color: #1d4ed8;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.prose a:hover {
  color: #f97316;
}

/* --- Tables (comparison tables in review articles) ----------- */
.prose table {
  width: 100%;
  margin: 0 0 1.5em;
  border-collapse: collapse;
  font-size: 0.9375rem;
  /* narrow screens: let wide comparison tables scroll, never the page */
  display: block;
  overflow-x: auto;
}

.prose thead {
  background: #001f3f;
  color: #ffffff;
}

.prose th,
.prose td {
  padding: 0.65em 0.85em;
  border: 1px solid #e5e7eb;
  text-align: left;
  vertical-align: top;
}

.prose th {
  font-weight: 700;
  white-space: nowrap;
}

.prose tbody tr:nth-child(even) {
  background: #f8fafc;
}

/* --- Blockquote / callout ----------------------------------- */
.prose blockquote {
  margin: 0 0 1.3em;
  padding: 0.85em 1.1em;
  border-left: 4px solid #f97316;
  background: #fff7ed;
  color: #374151;
  font-style: normal;
}

.prose blockquote p:last-child {
  margin-bottom: 0;
}

/* --- Media --------------------------------------------------- */
.prose img {
  max-width: 100%;
  height: auto;
  border-radius: 0.5rem;
  margin: 0 0 1.3em;
}

@media (min-width: 640px) {
  .prose {
    font-size: 1.09375rem;
  }
  .prose h2 {
    font-size: 1.6875rem;
  }
  .prose table {
    display: table;
  }
}
