/* ============================================================
   BLOG — список статей + страница статьи
   ============================================================ */

/* ---------- Шапка раздела ---------- */
.blog-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto;
  padding: var(--space-12) 0 var(--space-12);
}
.blog-head .about-hero-title {
  font-family: var(--font-heading);
  font-weight: var(--fw-bold);
  font-size: clamp(2.8rem, 6vw, 4.5rem);
  line-height: 1.05;
  color: var(--color-dark-gray);
  margin: 0 0 var(--space-5);
}
.blog-head .about-hero-title .accent { color: var(--color-primary); }
.blog-head .about-hero-subtitle {
  font-size: clamp(1.05rem, 1.3vw, 1.2rem);
  color: var(--color-dark-gray);
  line-height: 1.6;
  margin: 0;
}

/* ---------- Сетка карточек ---------- */
.blog-grid {
  display: grid;
  /* min(300px, 100%): на узких экранах колонка сжимается до ширины экрана,
     а не держит жёсткие 300px (иначе сетка выпирала за вьюпорт на мобилке). */
  grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
  gap: var(--space-8);
  margin-bottom: var(--space-24);
}

.blog-card {
  display: flex;
  flex-direction: column;
  background: var(--color-white);
  border: 1px solid var(--color-light-grey);
  border-radius: var(--radius-lg);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform var(--transition-base), box-shadow var(--transition-base);
}
.blog-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}
.blog-card-media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--color-light-grey);
}
.blog-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--transition-slow);
}
.blog-card:hover .blog-card-media img {
  transform: scale(1.05);
}
.blog-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: var(--space-6);
}
.blog-card-cat {
  font-family: var(--font-heading);
  font-weight: var(--fw-bold);
  font-size: var(--fs-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-blue);
  margin-bottom: var(--space-3);
}
.blog-card h2 {
  font-size: var(--fs-xl);
  line-height: 1.25;
  margin: 0 0 var(--space-3);
}
.blog-card-excerpt {
  font-size: var(--fs-base);
  color: var(--color-medium-gray);
  margin: 0 0 var(--space-5);
  flex: 1;
}
.blog-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: var(--fs-sm);
  color: var(--color-gray);
}
.blog-card-readmore {
  font-family: var(--font-heading);
  font-weight: var(--fw-bold);
  color: var(--color-primary);
}

/* ---------- СТРАНИЦА СТАТЬИ ---------- */
.post-breadcrumb {
  font-size: var(--fs-sm);
  color: var(--color-gray);
  margin: var(--space-8) 0 0;
}
.post-breadcrumb a {
  color: var(--color-medium-gray);
  text-decoration: none;
}
.post-breadcrumb a:hover { color: var(--color-primary); }

.post-header {
  max-width: 820px;
  margin: var(--space-8) auto var(--space-10);
  text-align: center;
}
.post-header .about-hero-title {
  font-family: var(--font-heading);
  font-weight: var(--fw-bold);
  font-size: clamp(2.4rem, 5vw, 4rem);
  line-height: 1.06;
  color: var(--color-dark-gray);
  margin: 0;
}
.post-header .about-hero-title .accent { color: var(--color-primary); }

.post-cover {
  /* боковые поля через margin (не padding — иначе ломается border-radius+overflow) */
  max-width: min(920px, 100% - var(--space-5) * 2);
  margin: 0 auto var(--space-12);
  border-radius: var(--radius-xl);
  overflow: hidden;
}
.post-cover img {
  width: 100%;
  height: auto;
  display: block;
}

/* Тело статьи — узкая колонка для читаемости */
.post-body {
  max-width: 720px;
  margin: 0 auto var(--space-20);
  /* боковые поля, чтобы текст не липнул к краям экрана на мобилке */
  padding-inline: var(--space-5);
  font-size: var(--fs-lg);
  line-height: 1.75;
  color: var(--color-dark-gray);
}
.post-body h2 {
  font-size: clamp(1.5rem, 3vw, var(--fs-3xl));
  line-height: 1.2;
  margin: var(--space-12) 0 var(--space-4);
}
.post-body h3 {
  font-size: var(--fs-xl);
  line-height: 1.25;
  margin: var(--space-8) 0 var(--space-3);
}
.post-body p { margin: 0 0 var(--space-5); }
.post-body ul,
.post-body ol {
  margin: 0 0 var(--space-6);
  padding-left: var(--space-6);
}
.post-body li { margin-bottom: var(--space-2); }
.post-body strong { font-weight: var(--fw-semibold); color: var(--color-dark-gray); }
.post-body a { color: var(--color-primary); font-weight: var(--fw-medium); }
.post-body em { color: var(--color-dark-gray); }

/* Видимое фокус-кольцо на ссылках статьи (клавиатурная навигация) */
.post-body a:focus-visible,
.post-breadcrumb a:focus-visible {
  outline: var(--focus-ring-width) solid var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
  border-radius: var(--radius-sm);
}

/* Выноска / цитата */
.post-body blockquote {
  margin: var(--space-8) 0;
  padding: var(--space-5) var(--space-6);
  border-left: 4px solid var(--color-primary);
  background: var(--color-primary-bg);
  border-radius: var(--radius-md);
  font-size: var(--fs-lg);
}
.post-body blockquote p:last-child { margin: 0; }

/* Карточка-разделитель «callout» */
.post-callout {
  margin: var(--space-8) 0;
  padding: var(--space-6);
  background: var(--color-secondary-bg);
  border: 1px solid var(--color-secondary-light);
  border-radius: var(--radius-lg);
}
.post-callout p:last-child { margin: 0; }

/* Подпись автора в конце */
.post-author {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  max-width: 720px;
  margin: 0 auto var(--space-16);
  padding: var(--space-6);
  background: var(--color-light-grey);
  border-radius: var(--radius-lg);
}
.post-author-avatar {
  width: 64px;
  height: 64px;
  border-radius: var(--radius-full);
  object-fit: cover;
  flex-shrink: 0;
}
.post-author-info h4 { margin: 0 0 var(--space-1); font-size: var(--fs-lg); }
.post-author-info p { margin: 0; font-size: var(--fs-sm); color: var(--color-medium-gray); }

/* Бренд рядом с именем автора: тише имени, но читается */
.post-author-brand {
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--color-primary);
}
.post-author-brand::before {
  content: "·";
  color: var(--color-gray);
  margin: 0 0.4em;
}

/* «Читать ещё» под статьёй */
.post-more {
  max-width: 1240px;
  margin: 0 auto var(--space-20);
}
.post-more h2 {
  text-align: center;
  font-size: var(--fs-3xl);
  margin-bottom: var(--space-10);
}

/* ============================================================
   МОБИЛЬНЫЕ: меньше заголовки (были слишком крупными на телефоне),
   единый размер со всеми страницами сайта
   ============================================================ */
@media (max-width: 600px) {
  .blog-head .about-hero-title,
  .post-header .about-hero-title {
    font-size: 2rem;
    line-height: 1.1;
    margin-bottom: var(--space-4);
  }
  .blog-head .about-hero-subtitle,
  .post-header .about-hero-subtitle {
    font-size: 0.95rem;
    line-height: 1.55;
  }
}

/* ============================================================
   Блок «From the Blog» на главной.
   Переиспользует .blog-card из блога — отдельных стилей карточкам
   не пишем, чтобы вид блога и главной не разъезжался со временем.
   ============================================================ */
.home-blog-grid {
  /* ровно 3 в ряд: на главной статей всегда три, auto-fill тут не нужен */
  grid-template-columns: repeat(3, 1fr);
  margin-bottom: var(--space-10);
}

.home-blog-more {
  display: flex;
  justify-content: center;
}

@media (max-width: 1024px) {
  .home-blog-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .home-blog-grid {
    grid-template-columns: 1fr;
  }
}

/* Блок «Read next» в конце статьи */
.post-related {
  margin-bottom: var(--space-16);
}

.post-related-title {
  margin-bottom: var(--space-8);
}

.post-related-grid {
  grid-template-columns: repeat(2, 1fr);
  margin-bottom: 0;
}

@media (max-width: 768px) {
  .post-related-grid {
    grid-template-columns: 1fr;
  }
}

/* Таблицы в теле статьи. На узких экранах таблица не ломает вёрстку,
   а прокручивается внутри своей области. */
.post-body table {
  width: 100%;
  border-collapse: collapse;
  margin: var(--space-8) 0;
  font-size: 0.95rem;
  display: block;
  overflow-x: auto;
}

.post-body table thead th {
  text-align: left;
  font-weight: 700;
  padding: var(--space-3) var(--space-4);
  border-bottom: 2px solid var(--color-primary);
  white-space: nowrap;
}

.post-body table td {
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid oklch(from var(--color-gray) l c h / 0.3);
  vertical-align: top;
}

.post-body table tbody tr:last-child td {
  border-bottom: none;
}

.post-body table code,
.post-body p code,
.post-body li code {
  background: var(--color-light-grey);
  padding: 0.1em 0.4em;
  border-radius: var(--radius-sm);
  font-size: 0.9em;
}
