/* ==========================================================================
   Section news — element trang chủ
   TỰ SINH — không sửa tay. Nguồn: figma mcp/css/sections/news.css
   Sinh lại bằng scratchpad/prefix_css.py (xem CLAUDE.md muc 8).
   Mọi selector đã được bọc trong `.tbtc-page` để không đụng CSS của
   Flatsome/WooCommerce, nhờ đó markup giữ nguyên tên class của prototype.
   ========================================================================== */

/* ==========================================================================
   Tin tức & Kiến thức — Figma node 61:2176 (1440 × 1004)
   ========================================================================== */

.tbtc-page .news {
  padding-block: var(--sp-20);
  background: linear-gradient(180deg, var(--c-white) 0%, #f4f9ff 100%);
}

.tbtc-page .news__inner {
  max-width: var(--page-w);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.tbtc-page .news__tabs {
  margin-top: var(--sp-12);
}

/* Bố cục: 1 bài nổi bật bên trái + 3 bài nhỏ bên phải.
   Thanh chia và hàng điều hướng chỉ nằm trong cột phải (Figma: x=505, rộng 871). */
.tbtc-page .news__grid {
  display: grid;
  grid-template-columns: 421px 1fr;
  gap: var(--sp-5);
  margin-top: var(--sp-12);
  align-items: start;
}

.tbtc-page .news__col {
  display: flex;
  flex-direction: column;
}

.tbtc-page .news__side {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-5);
}

/* Thanh tiến trình — Figma 71:2740 (ray xanh 10%, đoạn chạy 170px) */
.tbtc-page .news__progress {
  position: relative;
  height: 2px;
  margin-top: 30px;
  background: rgba(0, 86, 214, 0.1);
}

.tbtc-page .news__progress span {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 170px;
  background: var(--c-blue);
}

/* ---- Nhãn chuyên mục — Figma component_set 210:3005 ------------------- */

.tbtc-page .news-tag {
  position: absolute;
  padding: 9px 10px;
  border-radius: var(--r-sm);
  font-size: var(--fs-caption);
  line-height: 9px;
  font-weight: var(--fw-medium);
  color: var(--c-white);
  z-index: 1;
}

/* Mỗi chuyên mục một màu riêng — Figma component_set 210:3005, đều ở 80% */
.tbtc-page .news-tag--tech {
  background: rgba(0, 86, 214, 0.8); /* #0056D6 */
}

.tbtc-page .news-tag--product {
  background: rgba(255, 107, 0, 0.8); /* #FF6B00 */
}

.tbtc-page .news-tag--trend {
  background: rgba(167, 0, 0, 0.8); /* #A70000 */
}

.tbtc-page .news-tag--event {
  background: rgba(0, 150, 15, 0.8); /* #00960F */
}

/* ---- Dòng ngày tháng --------------------------------------------------- */

.tbtc-page .news-date {
  display: flex;
  align-items: center;
  gap: var(--sp-1);
  font-size: var(--fs-body-sm);
  line-height: var(--lh-body-sm);
  font-weight: var(--fw-medium);
  color: var(--c-text);
}

.tbtc-page .news-date img {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* ---- Bài nổi bật 421×550 — Figma 61:2323 ----------------------------- */

.tbtc-page .card-news-lead {
  position: relative;
  display: block;
  width: 421px;
  height: 550px;
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  box-shadow: 0 2px 12px 0 rgba(0, 86, 214, 0.04);
  overflow: hidden;
  transition:
    transform var(--dur) var(--ease),
    box-shadow var(--dur) var(--ease);
}

.tbtc-page .card-news-lead:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-card-hover);
}

.tbtc-page .card-news-lead__media {
  position: absolute;
  inset: -1px -1px auto -1px;
  height: 313px;
  overflow: hidden;
}

.tbtc-page .card-news-lead__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Lớp trắng loang lên ảnh — Figma 76:3680 */
.tbtc-page .card-news-lead__fade {
  position: absolute;
  left: 0;
  right: 0;
  top: 133px;
  height: 180px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, var(--c-white) 100%);
  pointer-events: none;
  z-index: 1;
}

.tbtc-page .card-news-lead .news-tag {
  right: 8px;
  top: 254px;
}

.tbtc-page .card-news-lead__date {
  position: absolute;
  left: 32px;
  top: 296px;
  z-index: 2;
}

.tbtc-page .card-news-lead__text {
  position: absolute;
  left: 32px;
  top: 326px;
  width: 357px;
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}

/* Figma giới hạn khung chữ ở 3 dòng (96px) và mô tả 2 dòng (40px) */
.tbtc-page .card-news-lead__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  font-size: var(--fs-h1);
  line-height: var(--lh-h1);
  font-weight: var(--fw-semibold);
  color: var(--c-text);
}

.tbtc-page .card-news-lead__desc {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--c-desc);
}

.tbtc-page .card-news-lead__link {
  position: absolute;
  left: 32px;
  top: 498px;
}

/* ---- Bài nhỏ 277×440 — Figma component 210:3033 ---------------------- */

.tbtc-page .card-news {
  position: relative;
  display: block;
  height: 440px;
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  box-shadow: 0 2px 12px 0 rgba(0, 86, 214, 0.04);
  overflow: hidden;
  transition:
    transform var(--dur) var(--ease),
    box-shadow var(--dur) var(--ease);
}

.tbtc-page .card-news:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-card-hover);
}

.tbtc-page .card-news__media {
  position: absolute;
  inset: -1px -1px auto -1px;
  height: 206px;
  overflow: hidden;
}

.tbtc-page .card-news__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tbtc-page .card-news .news-tag {
  right: 8px;
  top: 171px;
}

.tbtc-page .card-news__date {
  position: absolute;
  left: 24px;
  top: 226px;
}

.tbtc-page .card-news__title {
  position: absolute;
  left: 24px;
  top: 252px;
  right: 24px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  font-size: var(--fs-h3);
  line-height: var(--lh-h3);
  font-weight: var(--fw-semibold);
  color: var(--c-text);
}

.tbtc-page .card-news__desc {
  position: absolute;
  left: 24px;
  top: 344px;
  right: 24px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  font-size: var(--fs-body-sm);
  line-height: var(--lh-body-sm);
  color: var(--c-desc);
}

.tbtc-page .card-news__link {
  position: absolute;
  left: 24px;
  bottom: 24px;
}

/* ---- Chân section ----------------------------------------------------- */

.tbtc-page .news__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-6);
  margin-top: 30px;
}

.tbtc-page .news__pager {
  display: flex;
  align-items: center;
  gap: var(--sp-4);
}

/* Hai nút này nằm trong luồng, không định vị tuyệt đối như trong băng chuyền */
.tbtc-page .news__pager-btn.carousel-nav {
  position: static;
  transform: none;
  top: auto;
  left: auto;
  right: auto;
}

/* ---- Responsive fallback --------------------------------------------- */

@media (max-width: 1279px) {
  .tbtc-page .news__inner {
    padding-inline: var(--sp-6);
  }

  .tbtc-page .news__grid {
    grid-template-columns: 1fr;
  }

  .tbtc-page .card-news-lead {
    width: 100%;
  }
}

@media (max-width: 991px) {
  .tbtc-page .news__side {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  }

  /* Card tin nhỏ dùng định vị tuyệt đối theo toạ độ Figma nên phải giữ
     chiều cao cố định; ở khổ hẹp chỉ cần giãn chiều ngang. */
  .tbtc-page .card-news {
    min-width: 260px;
  }
}

/* ==========================================================================
   Mobile — Figma 401:5718 (393 × 822)
   Bốn tin cùng một cỡ 277×440 nằm trong dải cuộn ngang: bài nổi bật không
   còn khổ lớn riêng mà mang đúng kiểu dáng của bài nhỏ (Figma 401:6141..6144).
   ========================================================================== */

@media (max-width: 767px) {
  .tbtc-page .news {
    padding-block: var(--sp-12);
  }

  .tbtc-page .news__inner {
    padding-inline: 0;
  }

  .tbtc-page .news__inner > .section-head, .tbtc-page .news__tabs, .tbtc-page .news__footer {
    padding-inline: var(--gutter);
  }

  .tbtc-page .news__tabs {
    margin-top: var(--sp-6);
  }

  /* display: contents đưa card của hai nhóm lên cùng một hàng cuộn mà không
     phải đổi cấu trúc HTML */
  .tbtc-page .news__col, .tbtc-page .news__side {
    display: contents;
  }

  /* scroll-padding là bắt buộc: không có nó, scroll-snap kéo card đầu về
     sát mép trái và ăn mất đúng phần padding vừa thêm. */
  .tbtc-page .news__grid {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--sp-5);
    margin-top: var(--sp-5);
    padding-inline: var(--gutter);
    scroll-padding-inline: var(--gutter);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .tbtc-page .news__grid::-webkit-scrollbar {
    display: none;
  }

  .tbtc-page .news__grid > * {
    scroll-snap-align: start;
  }

  /* Thanh tiến trình và bộ số trang không có trong thiết kế mobile */
  .tbtc-page .news__progress, .tbtc-page .news__pager {
    display: none;
  }

  /* ---- Bài nổi bật mang đúng kích thước và toạ độ của bài nhỏ -------- */

  .tbtc-page .card-news-lead, .tbtc-page .card-news {
    width: 277px;
    min-width: 277px;
    height: 440px;
    border-radius: var(--r-md);
  }

  .tbtc-page .card-news-lead__media {
    height: 206px;
  }

  /* Vệt trắng loang chỉ hợp với khổ lớn của bản desktop */
  .tbtc-page .card-news-lead__fade {
    display: none;
  }

  .tbtc-page .card-news-lead .news-tag {
    top: 170px;
  }

  .tbtc-page .card-news-lead__date {
    left: 24px;
    top: 226px;
  }

  .tbtc-page .card-news-lead__text {
    left: 24px;
    top: 252px;
    right: 24px;
    width: auto;
    gap: var(--sp-2);
  }

  .tbtc-page .card-news-lead__title {
    font-size: var(--fs-h3);
    line-height: var(--lh-h3);
  }

  .tbtc-page .card-news-lead__desc {
    font-size: var(--fs-body-sm);
    line-height: var(--lh-body-sm);
  }

  .tbtc-page .card-news-lead__link {
    top: auto;
    bottom: 24px;
  }

  .tbtc-page .news__footer {
    justify-content: center;
    margin-top: var(--sp-8);
  }
}
