/* Страницы статей используют основные переменные и шапку главного сайта. */
.reading-progress { position: fixed; z-index: 30; left: 0; top: 0; width: 0; height: 2px; background: var(--metal); }
.article-hero { min-height: 70svh; display: flex; align-items: flex-end; padding: 150px 0 80px; border-bottom: 1px solid var(--line); background: radial-gradient(circle at 78% 35%, rgba(255,255,255,.08), transparent 28%); }
.article-hero__grid { display: grid; grid-template-columns: .65fr 1.35fr; gap: 70px; align-items: end; }
.article-hero__meta { display: grid; gap: 20px; color: var(--muted); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.article-hero__meta a { color: var(--text); }
.article-hero h1 { margin: 0; font-size: clamp(58px, 9vw, 132px); }
.article-hero p { max-width: 760px; margin: 34px 0 0; color: var(--muted); font-size: clamp(17px, 1.5vw, 21px); }
.article-shell { display: grid; grid-template-columns: 260px minmax(0, 760px); gap: 100px; justify-content: center; padding: 100px 0 130px; }
.article-toc { align-self: start; position: sticky; top: 120px; }
.article-toc > span { display: block; margin-bottom: 18px; color: var(--muted); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.article-toc nav { display: grid; border-top: 1px solid var(--line); }
.article-toc a { padding: 12px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.article-toc a:hover { color: var(--text); }
.article-body { font-size: 17px; line-height: 1.75; }
.article-body h2 { margin: 90px 0 30px; padding-top: 25px; border-top: 1px solid var(--line); font-size: clamp(34px, 5vw, 56px); }
.article-body h2:first-child { margin-top: 0; }
.article-body h3 { margin: 45px 0 16px; font-size: 24px; font-weight: 500; }
.article-body p, .article-body li { color: #b5bdc2; }
.article-body strong { color: var(--text); font-weight: 500; }
.article-body ul, .article-body ol { display: grid; gap: 12px; padding-left: 22px; }
.article-callout { margin: 40px 0; padding: 28px; border-left: 2px solid var(--accent); background: var(--surface); }
.article-callout span { display: block; margin-bottom: 9px; color: var(--accent); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.article-callout p { margin: 0; color: var(--text); }
.article-checklist { margin: 38px 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.article-checklist li { position: relative; padding: 16px 0 16px 30px; border-bottom: 1px solid var(--line); }
.article-checklist li::before { content: "✓"; position: absolute; left: 0; color: var(--accent); }
.article-next { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 30px; margin-top: 90px; padding: 34px; border: 1px solid var(--line); background: var(--surface); }
.article-next span { color: var(--muted); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.article-next h3 { margin: 8px 0 0; }
.article-footer { padding: 38px 0; border-top: 1px solid var(--line); }
.article-footer__inner { display: flex; justify-content: space-between; gap: 30px; color: var(--muted); font-size: 11px; }

@media (max-width: 900px) {
  .article-hero__grid { grid-template-columns: 1fr; }
  .article-shell { grid-template-columns: 1fr; gap: 50px; }
  .article-toc { position: static; }
}

@media (max-width: 720px) {
  .article-hero { min-height: 620px; padding: 120px 0 60px; }
  .article-shell { padding: 70px 0 90px; }
  .article-body { font-size: 16px; }
  .article-next { grid-template-columns: 1fr; padding: 24px; }
  .article-footer__inner { flex-direction: column; }
}
