/* blog.css — страничная специфика блога (список постов, карточка, статья,
   пагинация). Токены и шрифты не объявляет — берёт их из site.css, который
   подключает базовый шаблон раньше этого файла. Источник правил — старый
   public.css (раздел «Этап 5: блог»), токены переименованы под канон
   (--muted→--ink-2, --marker→--yellow). Правила `.prose` сюда не входят: они
   уже есть в site.css и переопределять их здесь запрещено (см. task-4-brief). */

.post-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}
.post-card img{width:100%;height:auto;border-radius:8px;display:block;margin-bottom:12px}
.post-card__title{font-size:1.25rem;margin:6px 0}
.post-card__title a{color:var(--ink);text-decoration:none}
.post-card__title a:hover{text-decoration:underline}
.post-meta{color:var(--ink-2);font-size:.9rem;margin:0 0 8px}
.post-meta a{color:inherit}
.pagination{display:flex;gap:16px;align-items:center;margin-top:32px;color:var(--ink-2)}
.post__cover{width:100%;height:auto;border-radius:12px;margin:0 0 36px;display:block}
/* Больше воздуха между заголовком статьи и тем, что под ним (обложка или
   сразу текст): канон даёт h1 20px, для поста 28px. Размер 44px вместо
   канонических 52px: в колонке 843px заголовок в три строки по 52px читается
   как плакат. Составной селектор — не подмена примитива из site.css. */
.post h1{margin-bottom:28px;font-size:clamp(2rem,4vw,2.75rem)}
/* Заголовок, мета и обложка статьи чуть уже .container, как в public.css
   (.post > * { max-width: calc(var(--measure) + 40px) }). :not(.prose) —
   намеренно: тот же селектор без исключения имел бы специфичность (0,1,0),
   как у .prose{max-width:var(--measure)} в site.css, и, загрузившись позже
   (blog.css после site.css), переопределил бы канон — то самое, что бриф
   прямо запрещает («не переопределяй их»). :not() поднимает специфичность
   до (0,2,0) и одновременно исключает .prose из совпадения — оба эффекта
   нужны разом. */
/* Ширина в rem, а не в ch: ch считается от шрифта самого элемента, и h1 на
   52px получал колонку втрое шире текста — заголовок висел над пустотой
   правее обложки (замечено 23.09.2026 на первой опубликованной статье).
   52.75rem = колонка текста (72ch при 18px ≈ 803px) + 40px. При смене
   --measure или размера .prose пересчитать. */
.post>:not(.prose){max-width:52.75rem}
.post-preview{background:var(--yellow);padding:8px 12px;border-radius:6px;display:inline-block}
/* Кнопка после списка постов и в конце статьи — тот же отступ, что был у
   .cta-row в public.css. */
.cta-row{margin:24px 0 0}
/* .final h2{max-width:26ch} переехало в site.css: это общий компонент
   финальной секции с призывом (блог, инструменты, «Прогноз заявок»), а не
   особенность блога — дублировался дословно и в prognoz-zayavok.css, и
   отсутствовал в tools.css, хотя .final используется и там. */
