/* ============================================================
   TTCC — BLOG INDEX
   blog.html only: the heading, its rule, and the two-up card grid.
   The shell (top bar, menu panel, search overlay, footer) comes from
   base.css + nav.css + footer.css, shared with the other pages.
   The heading stands alone: no filter, no radio column, no upcoming
   row — just the rule and the cards below it.
   ============================================================ */
.blog {
  padding-top: calc(var(--topbar-h) + 90px);   /* clears the fixed top bar */
  padding-bottom: 120px;                       /* clear of the footer */
}

/* Same gutter as the top bar, no full-bleed override. */
.blog__inner {
  max-width: 2000px;
  margin: 0 auto;
  padding: 0 var(--gutter);
}

/* ----- Header ----- */

.blog-header__title {
  font-size: 52px;
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: #000000;
}

.blog-divider {
  margin: 70px 0 0;
  border: 0;
  border-top: 1px solid #e6e6e6;
}

/* ----- Card grid ----- */
.blog-list__grid {
  margin-top: 70px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 24px;
  row-gap: 70px;
  align-items: start;
}

/* The whole card is the link; colour and underline already come from
   base.css, so display is all that is left. */
.blog-card {
  display: block;
  color: inherit;
}

/* Clips the grayscale-to-colour cover. */
.blog-card__media-wrap {
  overflow: hidden;
  background: #ececec;          /* shows through until the image lands */
  border-radius: 0;
}

.blog-card__media {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 0;
  filter: grayscale(1);
  transition: filter 400ms ease;
}

.blog-card:hover .blog-card__media {
  filter: grayscale(0);
}

.blog-card__date {
  margin-top: 14px;
  font-size: 13px;
  font-weight: 400;
  color: #666666;
}

.blog-card__title {
  margin-top: 8px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.35;
  color: #000000;
}

.blog-card__desc {
  margin-top: 2px;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.45;
  color: #666666;
}

@media (max-width: 1300px) {
  .blog-divider,
  .blog-list__grid {
    margin-top: 56px;
  }
}

@media (max-width: 900px) {
  .blog {
    padding-bottom: 80px;
  }

  .blog-header__title {
    font-size: 40px;
  }

  .blog-list__grid {
    grid-template-columns: 1fr;
    row-gap: 48px;
  }
}

@media (max-width: 700px) {
  .blog-header__title {
    font-size: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .blog-card__media {
    transition: none !important;
  }
}
