.cms-article { background: #f6efe3; color: #17130d; }
.cms-article .cms-article-intro { max-width: 940px; margin: 0 auto; padding: 38px 28px 22px; }
.cms-article-intro .cms-back { display: inline-block; font-size: 13px; color: #344e43; margin-bottom: 24px; }
.cms-article-intro h1 { font-size: clamp(28px, 3.5vw, 44px); line-height: 1.4; letter-spacing: -.025em; max-width: 860px; }
.cms-article-intro > p:not(.teacher-kicker) { font-size: 16px; line-height: 1.85; color: #6f675c; }
.cms-toc { max-width: 780px; margin: 8px auto 20px; padding: 0 28px; }
.cms-toc details { padding: 0 18px; border: 1px solid #d9cdbb; border-radius: 10px; background: #fffaf1; }
.cms-toc summary, .cms-sources > summary { padding: 16px 0; min-height: 48px; color: #344e43; cursor: pointer; font-weight: 600; font-size: 15px; }
.cms-toc ol { margin: 0; padding: 0 0 16px 20px; }
.cms-toc a { display: inline-block; padding: 8px 0; font-size: 14px; line-height: 1.6; text-decoration: underline; text-underline-offset: 4px; }
.cms-prose { max-width: 780px; margin: 0 auto; padding: 10px 28px 52px; font-size: 18px; line-height: 1.95; overflow-wrap: anywhere; }
.cms-prose h2,.cms-prose h3 { margin-top: 2em; line-height: 1.5; }
.cms-prose :is(h2,h3,h4,h5,h6), .cms-anchor { scroll-margin-top: 110px; }
.cms-anchor { display: block; }
.cms-prose img { display: block; max-width: 100%; height: auto; border-radius: 12px; margin: 24px 0; }
.cms-prose pre,.cms-service-body pre { overflow: auto; padding: 20px; background: #eae6dd; border-radius: 10px; white-space: pre-wrap; }
.cms-prose blockquote { border-left: 3px solid #3d5c4a; margin: 28px 0; padding: 0 22px; }
.cms-prose a,.cms-service-body a { text-decoration: underline; text-underline-offset: 4px; }
.cms-code { margin: 24px 0; border: 1px solid #d9cdbb; background: #fffaf1; border-radius: 10px; overflow: hidden; }
.cms-code-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 9px 12px 9px 18px; background: #e9eddf; font-size: 12px; color: #344e43; }
.cms-code-actions button { min-height: 40px; border: 1px solid #344e43; background: #fffaf1; color: #344e43; border-radius: 5px; padding: 7px 13px; font: inherit; cursor: pointer; }
.cms-prose .cms-code pre { margin: 0; border-radius: 0; background: transparent; font-size: 14px; line-height: 1.85; }
.cms-copy-status { margin: 0; padding: 0 18px 12px; color: #344e43; font-size: 12px; line-height: 1.6; }
.cms-copy-status:empty { display: none; }
.cms-table-scroll { max-width: 100%; overflow-x: auto; margin: 24px 0; border: 1px solid #d9cdbb; border-radius: 8px; }
.cms-table-scroll table { width: 100%; min-width: 480px; border-collapse: collapse; font-size: 15px; line-height: 1.75; background: #fffaf1; }
.cms-table-scroll th, .cms-table-scroll td { padding: 13px 15px; text-align: left; vertical-align: top; border-bottom: 1px solid #d9cdbb; }
.cms-table-scroll th { background: #e9eddf; color: #344e43; font-weight: 600; }
.cms-table-scroll tr:last-child td { border-bottom: 0; }
.cms-sources { margin-top: 40px; border-top: 1px solid #d9cdbb; font-size: 14px; }
.cms-sources h3 { font-size: 20px; margin-top: 18px; }
.cms-article :is(a,button,summary,[tabindex]):focus-visible { outline: 3px solid #9d814c; outline-offset: 4px; }
.cms-service-body { line-height: 1.8; overflow-wrap: anywhere; }
.cms-service-body img { max-width: 100%; height: auto; }
.cms-project-details { white-space: normal; overflow-wrap: anywhere; }
@media(max-width: 640px) {
  .cms-article .cms-article-intro { padding: 26px 22px 14px; }
  .cms-article-intro .cms-back { margin-bottom: 18px; }
  .cms-article-intro h1 { font-size: 28px; }
  .cms-article-intro > p:not(.teacher-kicker) { font-size: 15px; }
  .cms-toc { padding: 0 22px; }
  .cms-prose { padding: 10px 22px 38px; font-size: 16px; }
  .cms-prose .cms-code pre { padding: 16px; font-size: 13px; }
  .cms-table-scroll table { font-size: 14px; }
}
