/* ============================================================
   TAILWIND MINIMAL — Custom prose styles
   Wichtig: cdn.tailwindcss.com lädt das Typography-Plugin NICHT
   automatisch, deshalb sind alle `.prose *` Regeln hier manuell
   ausgeschrieben.
   ============================================================ */

:root { --accent: #0f172a; --muted: #57534e; --line: #e7e5e4; }
body { font-family: 'Geist', ui-sans-serif, system-ui, sans-serif; }
img { max-width: 100%; height: auto; display: block; }
*:focus-visible { outline: 2px solid #0f172a; outline-offset: 2px; }

/* ---- Prose base ---- */
.prose {
  color: #1c1917;
  max-width: 65ch;
  font-size: 1.05rem;
  line-height: 1.75;
}
.prose-lg { font-size: 1.125rem; line-height: 1.78; }
.prose.max-w-none { max-width: none; }

/* Paragraphs */
.prose p { margin: 0 0 1.3em; }

/* Headings */
.prose h2 {
  font-size: 1.75rem;
  font-weight: 500;
  letter-spacing: -0.015em;
  line-height: 1.25;
  margin: 2.5em 0 0.8em;
  color: #0c0a09;
}
.prose h3 {
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.35;
  margin: 2em 0 0.6em;
  color: #0c0a09;
}
.prose h4 {
  font-size: 1.1rem;
  font-weight: 600;
  margin: 1.8em 0 0.5em;
}
.prose > :first-child { margin-top: 0; }
.prose > :last-child { margin-bottom: 0; }

/* Lists with bullets */
.prose ul,
.prose ol {
  margin: 0 0 1.3em;
  padding-left: 1.6em;
}
.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: #78716c; }
.prose ul ul,
.prose ol ol,
.prose ul ol,
.prose ol ul { margin: 0.4em 0; }

/* Links */
.prose a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.prose a:hover { text-decoration-thickness: 2px; }

/* Bold + italic */
.prose strong { font-weight: 600; color: #0c0a09; }
.prose em { font-style: italic; }

/* Inline code */
.prose code {
  background: #f5f5f4;
  padding: 0.15em 0.4em;
  border-radius: 3px;
  font-size: 0.92em;
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
}

/* Blockquote */
.prose blockquote {
  border-left: 3px solid var(--accent);
  margin: 1.8em 0;
  padding: 0.6em 0 0.6em 1.2em;
  font-style: italic;
  color: var(--muted);
}
.prose blockquote p { margin: 0; }

/* Tables */
.prose table {
  border-collapse: collapse;
  width: 100%;
  margin: 1.5em 0;
  font-size: 0.95em;
}
.prose th, .prose td {
  text-align: left;
  padding: 0.6em 0.8em;
  border-bottom: 1px solid var(--line);
}
.prose th { font-weight: 600; }

/* Figures + images */
.prose figure { margin: 1.8em 0; }
.prose figcaption {
  margin-top: 0.6em;
  font-size: 0.9em;
  color: var(--muted);
  text-align: center;
}

/* HR */
.prose hr { border: 0; border-top: 1px solid var(--line); margin: 2.5em 0; }

/* Fallback selectors for non-prose article body wrappers */
[class*="article-body"] p,
.article-content p,
.content p { margin: 0 0 1.3em; }
[class*="article-body"] ul,
[class*="cat-intro"] ul,
[class*="home-intro"] ul,
.article-content ul,
.content ul {
  list-style: disc outside !important;
  padding-left: 1.6em;
  margin: 0 0 1.3em;
}
[class*="article-body"] ol,
[class*="cat-intro"] ol,
[class*="home-intro"] ol,
.article-content ol,
.content ol {
  list-style: decimal outside !important;
  padding-left: 1.6em;
  margin: 0 0 1.3em;
}
[class*="article-body"] li,
[class*="cat-intro"] li,
[class*="home-intro"] li {
  margin-bottom: 0.4em;
  line-height: 1.6;
}
