.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.prose h2 { font-size: 1.4rem; font-weight: 700; margin-top: 2rem; margin-bottom: 0.75rem; scroll-margin-top: 16px; }
.prose h3 { font-size: 1.15rem; font-weight: 600; margin-top: 1.25rem; margin-bottom: 0.5rem; }
.prose p { margin-bottom: 1rem; line-height: 1.7; color: #374151; }
.prose ul { list-style-type: disc; padding-left: 1.5rem; margin-bottom: 1rem; }
.prose ol { list-style-type: decimal; padding-left: 1.5rem; margin-bottom: 1rem; }
.prose li { margin-bottom: 0.4rem; line-height: 1.7; color: #374151; }
.prose table { width: 100%; border-collapse: collapse; margin-bottom: 1rem; font-size: 0.95rem; }
.prose table th { background: #eff6ff; font-weight: 600; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.03em; }
.prose table td, .prose table th { border: 1px solid #e5e7eb; padding: 0.6rem 0.75rem; text-align: left; }
.prose table tr:last-child td { border-bottom: none; }
.prose details { background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; padding: 12px 16px; margin: 10px 0; }
.prose details summary { cursor: pointer; font-weight: 700; color: #1E2A3A; list-style: none; display: flex; justify-content: space-between; align-items: center; }
.prose details summary::-webkit-details-marker { display: none; }
.prose details summary::after { content: '+'; font-size: 1.2rem; color: #1A56DB; font-weight: 400; transition: transform .2s; }
.prose details[open] summary::after { content: '−'; }
.prose details p { margin: 0.6em 0 0; color: #374151; }
.prose .note { background: #eff6ff; border-left: 4px solid #1A56DB; padding: 12px 16px; border-radius: 0 8px 8px 0; margin: 1rem 0; }
.prose img.hero-img { width: 100%; border-radius: 10px; margin-bottom: 1.5rem; object-fit: cover; max-height: 320px; }
