/* Blog-Layout — fehlende/gepurgte Tailwind-Klassen + Custom Helpers */

.blog-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 60; background: transparent; }
.blog-progress > div { height: 3px; width: 0; background: #2563eb; }

.blog-wrap-narrow { max-width: 48rem; margin-left: auto; margin-right: auto; }
.blog-wrap-image  { max-width: 64rem; margin-left: auto; margin-right: auto; }
.blog-wrap-main   { max-width: 72rem; margin-left: auto; margin-right: auto; }

.blog-grid { display: grid; gap: 3rem; }
@media (min-width: 1024px) {
  .blog-grid { grid-template-columns: 16rem 1fr; gap: 4rem; }
}

.blog-hero-img { width: 100%; height: 280px; object-fit: cover; border-radius: 0.75rem; }
@media (min-width: 768px) { .blog-hero-img { height: 420px; } }

.prose { color: #334155; font-size: 1.0625rem; line-height: 1.8; max-width: 44rem; }
.prose p { margin-bottom: 1.4rem; }
.prose h2 { font-weight: 800; font-size: 1.75rem; margin-top: 3.25rem; margin-bottom: 1rem; color: #0f172a; letter-spacing: -0.01em; line-height: 1.25; }
.prose h2:first-of-type { margin-top: 0; }
.prose h3 { font-weight: 700; font-size: 1.25rem; margin-top: 2rem; margin-bottom: 0.6rem; color: #0f172a; }
.prose ul { margin-bottom: 1.4rem; padding-left: 1.25rem; }
.prose ul li { margin-bottom: .5rem; list-style-type: disc; }
.prose strong { color: #0f172a; font-weight: 600; }
.prose a { color: #2563eb; text-decoration: underline; text-underline-offset: 2px; }

.lead { font-size: 1.25rem; line-height: 1.7; color: #475569; }
.eyebrow { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.18em; }
.lead-quote { border-left: 3px solid #2563eb; padding-left: 1.25rem; font-style: italic; margin-bottom: 2.5rem; }

.toc { border-left: 1px solid #e2e8f0; }
.toc ul { list-style: none; padding: 0; margin: 0; }
.toc-link { display: block; padding: 0.4rem 0 0.4rem 1rem; margin-left: -1px; border-left: 2px solid transparent; color: #475569; font-size: 0.875rem; line-height: 1.4; transition: color .15s, border-color .15s; }
.toc-link:hover { color: #0f172a; }
.toc-link.active { color: #2563eb; border-left-color: #2563eb; }

/* Inline-Callouts im Article */
.callout { background: #f8fafc; border-left: 3px solid #94a3b8; padding: 1.1rem 1.4rem; margin: 2rem 0; border-radius: 0 0.5rem 0.5rem 0; }
.callout.callout-blue { background: #eff6ff; border-left-color: #2563eb; }
.callout.callout-warn { background: #fffbeb; border-left-color: #f59e0b; }
.callout p { margin: 0 !important; color: #334155; line-height: 1.7; }
.callout-label { display: block; margin-top: 0.6rem; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; color: #64748b; }

/* Pro/Contra-Vergleich */
.compare { display: grid; gap: 2rem; margin: 2.25rem 0; padding: 1.5rem 0; border-top: 1px solid #e2e8f0; border-bottom: 1px solid #e2e8f0; }
@media (min-width: 768px) { .compare { grid-template-columns: 1fr 1fr; gap: 3rem; } }
.compare h4 { font-size: 0.75rem !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: 0.15em; color: #64748b; margin: 0 0 1rem !important; }
.compare h5 { font-size: 1rem !important; font-weight: 700 !important; color: #0f172a; margin: 1rem 0 .35rem !important; }
.compare ul { list-style: none !important; padding-left: 0 !important; margin-bottom: 0 !important; }
.compare ul li { padding-left: 0; line-height: 1.6; margin-bottom: 0.4rem !important; font-size: 0.9375rem; list-style: none !important; }
.compare ul li::before { font-weight: bold; margin-right: 0.5rem; }
.compare .list-pros li::before { content: "✓"; color: #10b981; }
.compare .list-cons li::before { content: "✗"; color: #ef4444; }
.compare .list-neutral li::before { content: "—"; color: #94a3b8; }

/* Daten-/Preistabellen */
.data-table { width: 100%; border-collapse: collapse; margin: 1.75rem 0; font-size: 0.9375rem; }
.data-table th { text-align: left; padding: 0.75rem 1rem; border-bottom: 2px solid #e2e8f0; color: #0f172a; font-weight: 700; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; }
.data-table td { padding: 0.875rem 1rem; border-bottom: 1px solid #f1f5f9; color: #334155; vertical-align: top; }
.data-table td.num { font-weight: 600; color: #0f172a; white-space: nowrap; }
.data-table tbody tr:last-child td { border-bottom: none; }
.data-table-wrap { overflow-x: auto; margin: 1.75rem 0; }
.data-table-wrap .data-table { margin: 0; }

/* Anonymisierte Fallbeispiele */
.case { padding: 1.25rem 1.5rem; border: 1px solid #e2e8f0; border-radius: 0.75rem; margin: 1rem 0; background: #fafbfc; }
.case h4 { margin: 0 !important; font-size: 1rem !important; color: #0f172a !important; font-weight: 700 !important; }
.case-meta { display: flex; flex-wrap: wrap; gap: 0.4rem 1.4rem; margin-top: 0.6rem; font-size: 0.8125rem; color: #64748b; }
.case-meta span strong { color: #0f172a; font-weight: 600; }
.case-note { margin-top: 0.75rem !important; margin-bottom: 0 !important; font-size: 0.875rem !important; color: #475569 !important; line-height: 1.6 !important; }

/* FAQ */
.faq { margin: 2rem 0; }
.faq-item { border-bottom: 1px solid #e2e8f0; padding: 1.25rem 0; }
.faq-item:first-child { border-top: 1px solid #e2e8f0; }
.faq-q { font-weight: 700 !important; color: #0f172a !important; font-size: 1.0625rem !important; line-height: 1.4 !important; margin: 0 !important; }
.faq-a { margin-top: 0.6rem !important; color: #475569; line-height: 1.7; }
.faq-a p { margin-bottom: 0.5rem !important; }
.faq-a p:last-child { margin-bottom: 0 !important; }

/* Vorher/Nachher-Bildvergleich */
.before-after { display: grid; gap: 1rem; margin: 2rem 0; }
@media (min-width: 768px) { .before-after { grid-template-columns: 1fr 1fr; gap: 1.5rem; } }
.before-after figure { margin: 0; }
.before-after img { width: 100%; height: auto; border-radius: 0.5rem; border: 1px solid #e2e8f0; display: block; }
.before-after figcaption { margin-top: 0.5rem; font-size: 0.8125rem; color: #64748b; text-align: center; }
.before-after .label-before { display: inline-block; padding: 0.15rem 0.6rem; background: #fef3c7; color: #92400e; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; border-radius: 999px; margin-bottom: 0.5rem; }
.before-after .label-after { display: inline-block; padding: 0.15rem 0.6rem; background: #dbeafe; color: #1e40af; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; border-radius: 999px; margin-bottom: 0.5rem; }

/* Listing */
.blog-list { display: grid; gap: 2.5rem; }
@media (min-width: 768px) { .blog-list { grid-template-columns: repeat(2, 1fr); gap: 3rem; } }
@media (min-width: 1024px) { .blog-list { grid-template-columns: repeat(3, 1fr); } }

.blog-card { display: block; }
.blog-card-img { width: 100%; height: 220px; object-fit: cover; border-radius: 0.75rem; transition: transform .3s ease; }
.blog-card:hover .blog-card-img { transform: scale(1.02); }
.blog-card-title { font-weight: 700; font-size: 1.25rem; line-height: 1.3; color: #0f172a; margin-top: 1rem; transition: color .15s; }
.blog-card:hover .blog-card-title { color: #2563eb; }
.blog-card-excerpt { color: #475569; font-size: 0.9375rem; line-height: 1.6; margin-top: 0.5rem; }
.blog-card-meta { display: flex; gap: 0.5rem; align-items: center; font-size: 0.75rem; color: #64748b; margin-top: 0.75rem; }
