.single-post .content-page__inner--narrow,
.content-page:has(.feature-landing) .content-page__inner--narrow { max-width: 1120px; }
.single-post .content-page__header { max-width: 1000px; margin-bottom: 32px; }
.single-post .content-page__header h1 { font-size: 42px; line-height: 1.22; letter-spacing: 0; }
.single-post article > figure { margin: 0 0 40px; }
.single-post article > figure img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 8px; }
.single-post .entry-content > *,
.feature-landing.entry-content > * { max-width: none; }
.single-post .entry-content,
.feature-landing { font-size: 17px; line-height: 1.85; }
.single-post .entry-content p,
.single-post .entry-content li { color: var(--kv-text); }
.single-post .entry-content > p,
.single-post .entry-content section > p { max-width: 86ch; }
.entry-content .article-lead { font-size: 20px; line-height: 1.75; color: var(--kv-text); }
.entry-content > aside { margin: 32px 0; padding: 22px 28px; border-inline-start: 4px solid var(--kv-primary); background: var(--kv-surface); }
.entry-content > aside p { margin: 0; }
.entry-content .article-toc { margin: 36px 0 48px; padding: 24px 0; border-block: 1px solid var(--kv-border); }
.article-toc ol { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 40px; margin: 0; padding-inline-start: 24px; }
.article-toc li { padding-inline-start: 6px; }
.article-toc a { text-decoration: none; line-height: 1.6; }
.article-toc a:hover { text-decoration: underline; }
.single-post .entry-content h2,
.feature-landing h2 { margin: 56px 0 22px; font-size: 29px; line-height: 1.35; scroll-margin-top: 110px; }
.single-post .entry-content section { margin-block: 40px; }
.entry-content .article-table-wrap { max-width: 100%; overflow-x: auto; margin: 32px 0; border: 1px solid var(--kv-border); border-radius: 8px; }
.entry-content .article-table-wrap table { width: 100%; margin: 0; border-collapse: separate; border-spacing: 0; font-size: 15px; line-height: 1.65; }
.entry-content .article-table-wrap caption { padding: 18px 22px; color: var(--kv-text); background: var(--kv-surface); text-align: start; font-weight: 700; border-bottom: 1px solid var(--kv-border); }
.entry-content .article-table-wrap th,
.entry-content .article-table-wrap td { min-width: 150px; padding: 18px 22px; text-align: start; vertical-align: top; border: 0; border-bottom: 1px solid var(--kv-border); }
.entry-content .article-table-wrap th { color: var(--kv-text); background: var(--kv-surface); font-weight: 700; }
.entry-content .article-table-wrap tr:last-child td { border-bottom: 0; }
.entry-content .article-table-wrap tbody tr:nth-child(even) { background: color-mix(in srgb,var(--kv-surface) 55%,var(--kv-bg)); }
.entry-content .article-table-wrap tbody tr:hover { background: var(--kv-surface); }
.entry-content .article-faq { counter-reset: editorial-faq; padding-top: 8px; }
.article-faq details,
.faq-list details,
.faq-page-list details { counter-increment: editorial-faq; position: relative; margin: 12px 0; border: 1px solid var(--kv-border); border-radius: 8px; background: var(--kv-card); transition: border-color 180ms ease,background-color 180ms ease,box-shadow 180ms ease; }
.article-faq details:hover,
.faq-list details:hover,
.faq-page-list details:hover { border-color: var(--kv-primary); }
.article-faq details[open],
.faq-list details[open],
.faq-page-list details[open] { border-color: var(--kv-primary); box-shadow: 0 3px 16px color-mix(in srgb,var(--kv-primary) 9%,transparent); }
.article-faq summary,
.faq-list summary,
.faq-page-list summary { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 12px; position: relative; margin: 0; padding: 24px 72px 24px 22px; list-style: none; font: 600 17px/1.6 "Poppins","Montserrat",sans-serif; cursor: pointer; color: var(--kv-text); }
.article-faq summary::-webkit-details-marker,
.faq-list summary::-webkit-details-marker,
.faq-page-list summary::-webkit-details-marker { display: none; }
.article-faq summary::before,
.faq-list summary::before,
.faq-page-list summary::before { content: counter(editorial-faq,decimal-leading-zero); color: var(--kv-primary); font-size: 13px; padding-top: 3px; }
.article-faq summary::after,
.faq-list summary::after,
.faq-page-list summary::after { content: "+"; display: grid; place-items: center; position: absolute; inset-inline-end: 22px; top: 23px; width: 30px; height: 30px; border: 1px solid var(--kv-border); border-radius: 6px; background: var(--kv-surface); color: var(--kv-primary); font: 400 22px/1 sans-serif; }
.article-faq details[open] summary::after,
.faq-list details[open] summary::after,
.faq-page-list details[open] summary::after { content: "-"; border-color: var(--kv-primary); }
.article-faq details > p,
.faq-list details > p,
.faq-page-list details > p { max-width: 84ch; margin: 0; padding: 0 72px 26px 68px; color: var(--kv-muted); font-size: 16px; line-height: 1.85; }
.editorial-split { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 40px; margin: 64px 0; }
.editorial-split > * { min-width: 0; }
.editorial-split figure { margin: 0; }
.editorial-split img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 8px; }
.editorial-split figcaption { margin-top: 10px; color: var(--kv-muted); font-size: 13px; line-height: 1.6; }
.editorial-split h2 { margin-top: 0; }
.editorial-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; margin-top: 56px; padding: 28px 0; border-block: 1px solid var(--kv-border); }
.editorial-cta p { margin: 0; max-width: 62ch; }
.entry-content .editorial-cta .button { color: #fff; text-decoration: none; }
@media (prefers-reduced-motion: no-preference) {
  .article-faq details[open] > p,
  .faq-list details[open] > p,
  .faq-page-list details[open] > p { animation: editorial-answer 180ms ease-out; }
  @keyframes editorial-answer { from { opacity: .35; transform: translateY(-3px); } to { opacity: 1; transform: none; } }
}
@media (max-width: 700px) {
  .single-post .content-page__header h1 { font-size: 30px; }
  .single-post .entry-content,.feature-landing { font-size: 16px; }
  .entry-content .article-lead { font-size: 18px; }
  .single-post .entry-content h2,.feature-landing h2 { font-size: 24px; margin-top: 40px; }
  .article-toc ol { grid-template-columns: minmax(0,1fr); }
  .editorial-split { grid-template-columns: minmax(0,1fr); gap: 24px; margin: 40px 0; }
  .article-faq summary,.faq-list summary,.faq-page-list summary { padding: 19px 54px 19px 14px; grid-template-columns: 26px minmax(0,1fr); gap: 8px; font-size: 15px; }
  .article-faq summary::after,.faq-list summary::after,.faq-page-list summary::after { inset-inline-end: 13px; top: 19px; width: 26px; height: 26px; }
  .article-faq details > p,.faq-list details > p,.faq-page-list details > p { padding: 0 20px 22px 48px; font-size: 15px; }
  .entry-content .article-table-wrap th,.entry-content .article-table-wrap td { padding: 14px; min-width: 135px; }
}
