/*
Theme Name: Divake 2026
Theme URI: https://divake.com
Description: Child theme GeneratePress cho divake.com — chứa design token và CSS component dv-* theo documents/Divake WordPress Handoff.dc.html. Mọi layout/màu khai báo qua Customizer + GenerateBlocks; file này chỉ giữ phần công cụ có sẵn không quản được.
Author: Minh
Template: generatepress
Version: 1.0.0
Text Domain: divake-2026
*/

/* ===================================================================
   1 · DESIGN TOKEN — CSS custom properties (mobile-first)
   Nguồn: documents/Divake WordPress Handoff.dc.html, mục 1
   =================================================================== */
:root {
  /* ===== Màu ===== */
  --divake-ink: #2B2420;        /* chữ chính — 14,4:1 trên paper */
  --divake-ink-2: #6B6259;      /* chữ phụ, meta, caption — 5,6:1 */
  --divake-accent: #9C3B1E;     /* link, nhấn — 6,5:1 */
  --divake-accent-hover: #8F3619;
  --divake-accent-onDark: #D98B66; /* chỉ dùng trên nền --divake-ink */
  --divake-paper: #FAF8F5;      /* nền trang */
  --divake-surface: #FFFFFF;    /* nền thẻ, bảng */
  --divake-tint: #F3E4DB;       /* nền callout, thông tin nhanh */
  --divake-line: #E7E0D8;       /* viền 1px */
  --divake-line-soft: #F0EAE2;  /* kẻ hàng trong bảng/list */

  /* ===== Font ===== */
  --divake-font-head: 'Bricolage Grotesque', sans-serif;
  --divake-font-body: 'Source Sans 3', sans-serif;

  /* ===== Cỡ chữ (mobile-first) ===== */
  --divake-fs-h1: 28px;   --divake-lh-h1: 1.25;
  --divake-fs-h2: 22px;   --divake-lh-h2: 1.3;
  --divake-fs-h3: 19px;   --divake-lh-h3: 1.35;
  --divake-fs-body: 17px; --divake-lh-body: 1.7;
  --divake-fs-caption: 15px;
  --divake-fs-meta: 13px;

  /* ===== Khoảng cách (thang 4px) ===== */
  --divake-sp-1: 4px;  --divake-sp-2: 8px;  --divake-sp-3: 12px;
  --divake-sp-4: 16px; --divake-sp-5: 20px; --divake-sp-6: 24px;
  --divake-sp-8: 32px; --divake-sp-12: 48px; --divake-sp-16: 64px;

  /* ===== Bo góc · bóng · bề rộng ===== */
  --divake-r-sm: 4px;
  --divake-r-md: 10px;
  --divake-r-pill: 999px;
  --divake-shadow: 0 1px 3px rgba(43, 36, 32, .07);
  --divake-content: 640px;   /* cột thân bài */
  --divake-container: 1200px;
}

@media (min-width: 1024px) {
  :root {
    --divake-fs-h1: 40px;  --divake-lh-h1: 1.15;
    --divake-fs-h2: 28px;  --divake-lh-h2: 1.25;
    --divake-fs-h3: 21px;
    --divake-fs-body: 19px;
    --divake-fs-meta: 13.5px;
  }
}

/* ===================================================================
   2 · TYPOGRAPHY NỘI DUNG THEO TOKEN (mobile-first — token tự đổi ở 1024px)
   Đặc tả: body 17/19px · h2 22/28px · h3 19/21px
   =================================================================== */
.entry-content { font-size: var(--divake-fs-body); line-height: var(--divake-lh-body); }
.entry-content h2 {
  font-family: var(--divake-font-head); font-weight: 600;
  font-size: var(--divake-fs-h2); line-height: var(--divake-lh-h2);
}
.entry-content h3 {
  font-family: var(--divake-font-head); font-weight: 600;
  font-size: var(--divake-fs-h3); line-height: var(--divake-lh-h3);
}
/* wpautop đôi khi chèn <p> rỗng vào giữa markup component — vô hiệu hóa */
.entry-content p:empty { display: none; margin: 0; }
/* Khối "Đọc tiếp" khi chưa có bài nào khác: ẩn cả tiêu đề lẫn khung rỗng */
.dv-related:empty { display: none; }
h2:has(+ .dv-related:empty) { display: none; }

/* ===================================================================
   3 · CSS COMPONENT dv-* (mobile-first)
   Nguồn: documents/Divake WordPress Handoff.dc.html, mục 3
   Trong editor chỉ gắn class — không chỉnh tay màu/khoảng cách từng block.
   =================================================================== */

/* ===== Bảng chi phí (mobile-first, không cuộn ngang) ===== */
.dv-cost {
  background: var(--divake-surface);
  border: 1px solid var(--divake-line);
  border-radius: var(--divake-r-md);
  overflow: hidden;
  margin: var(--divake-sp-6) 0;
}
.dv-cost__head {
  padding: var(--divake-sp-4) var(--divake-sp-4) var(--divake-sp-3);
  border-bottom: 1px solid var(--divake-line);
}
.dv-cost__scope { font-size: 14.5px; color: var(--divake-ink-2); margin-top: 2px; }
.dv-cost__group {
  margin: 0; padding: 6px var(--divake-sp-4) 4px;
  font: 700 13px/1.5 var(--divake-font-body);
  letter-spacing: .04em; text-transform: uppercase;
  color: var(--divake-ink-2); background: var(--divake-paper);
}
.dv-cost__row {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: var(--divake-sp-3);
  padding: var(--divake-sp-3) var(--divake-sp-4);
  font-size: 16px; line-height: 1.4;
}
.dv-cost__row + .dv-cost__row { border-top: 1px solid var(--divake-line-soft); }
.dv-cost__note { font-size: 13.5px; color: var(--divake-ink-2); }
.dv-cost__amount {
  font-weight: 600; font-variant-numeric: tabular-nums;
  flex: none;               /* số tiền không bao giờ bị bóp/gãy dòng */
  white-space: nowrap;
}
.dv-cost__row--total {
  border-top: 2px solid var(--divake-ink);
  background: var(--divake-paper);
  padding: 14px var(--divake-sp-4);
  font-size: 17px;
}
.dv-cost__row--total .dv-cost__label { font-weight: 700; }
.dv-cost__row--total .dv-cost__amount { color: var(--divake-accent); font-weight: 700; }
@media (min-width: 768px) {
  .dv-cost__head, .dv-cost__group, .dv-cost__row { padding-left: var(--divake-sp-6); padding-right: var(--divake-sp-6); }
  .dv-cost__row { font-size: 16.5px; }
}

/* ===== Thông tin nhanh ===== */
.dv-quick {
  background: var(--divake-tint); border-radius: var(--divake-r-md);
  padding: var(--divake-sp-4); margin: var(--divake-sp-5) 0;
}
.dv-quick__title {
  margin: 0 0 var(--divake-sp-2);
  font: 700 13px/1.5 var(--divake-font-body);
  letter-spacing: .04em; text-transform: uppercase; color: var(--divake-accent);
}
.dv-quick__grid { display: flex; flex-direction: column; gap: 10px; }
.dv-quick__row { display: flex; justify-content: space-between; gap: var(--divake-sp-3); font-size: 15px; line-height: 1.45; }
.dv-quick__key { color: var(--divake-ink-2); flex: none; }
.dv-quick__val { font-weight: 600; text-align: right; }
@media (min-width: 1024px) {
  .dv-quick { padding: var(--divake-sp-5) var(--divake-sp-6); }
  .dv-quick__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 32px; }
  .dv-quick__row--wide { grid-column: 1 / -1; }
}
/* Khối Thông tin nhanh do GP Element render từ ACF:
   ẩn hàng thiếu data, ẩn cả khối nếu bài không có field nào */
.dv-quick__row:has(.dv-quick__val:empty) { display: none; }
.dv-quick:not(:has(.dv-quick__val:not(:empty))) { display: none; }

/* ===== Mục lục (bài pillar) — mobile: hộp trắng, links trong hộp, icon +/− (đặc tả 3c) ===== */
.dv-toc { margin: 0 0 var(--divake-sp-6); } /* cách phần nội dung bên dưới 24px */
.dv-toc__fold {
  background: var(--divake-surface); border: 1px solid var(--divake-line);
  border-radius: var(--divake-r-md); padding: 0 var(--divake-sp-4);
}
.dv-toc__fold summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; gap: var(--divake-sp-3);
  min-height: 44px; padding: 10px 0;
  font-weight: 600; font-size: 15.5px; color: var(--divake-ink);
}
.dv-toc__fold summary::-webkit-details-marker { display: none; }
.dv-toc__fold[open] summary { border-bottom: 1px solid var(--divake-line-soft); }
.dv-toc__icon {
  margin-left: auto; flex: none; width: 24px; height: 24px;
  border-radius: var(--divake-r-pill); border: 1px solid var(--divake-line);
  position: relative;
}
.dv-toc__icon::before, .dv-toc__icon::after {
  content: ""; position: absolute; background: var(--divake-accent);
  top: 50%; left: 50%; translate: -50% -50%;
}
.dv-toc__icon::before { width: 10px; height: 2px; }
.dv-toc__icon::after  { width: 2px;  height: 10px; }
.dv-toc__fold[open] .dv-toc__icon::after { display: none; }
.dv-toc__fold nav a {
  display: block; padding: 9px 0; font-size: 15px;
  color: var(--divake-ink); border-bottom: 1px solid var(--divake-line-soft);
  text-decoration: none;
}
.dv-toc__fold nav a:last-child { border-bottom: 0; }
.dv-toc__fold nav br { display: none; } /* wpautop chèn <br> sau mỗi link — bỏ để khớp nhịp 9px của mockup */
@media (min-width: 1024px) {
  .dv-pillar { display: grid; grid-template-columns: 260px 1fr; gap: var(--divake-sp-12); }

  /* Bài có khối Mục lục ở đầu nội dung → entry-content tự thành layout pillar 2 cột, căn giữa */
  .entry-content:has(> .dv-toc) { display: grid; grid-template-columns: 260px minmax(0, 1fr); column-gap: var(--divake-sp-12); max-width: 948px; margin-left: auto; margin-right: auto; }
  .entry-content:has(> .dv-toc) > * { grid-column: 2; max-width: var(--divake-content); }
  .entry-content:has(> .dv-toc) > .dv-toc { grid-column: 1; grid-row: 1 / span 500; max-width: none; }

  .dv-toc { position: sticky; top: var(--divake-sp-8); align-self: start; }
  /* Desktop: bỏ hộp, chỉ còn nhãn + nav kẻ trái; ép details luôn mở
     (trình duyệt cũ không hỗ trợ ::details-content thì thành mục lục bấm-để-mở) */
  .dv-toc__fold { background: none; border: 0; border-radius: 0; padding: 0; }
  .dv-toc__fold::details-content { content-visibility: visible; }
  .dv-toc__fold summary {
    min-height: 0; padding: 0 0 8px;
    font-size: 12.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    color: var(--divake-ink-2);
  }
  .dv-toc__fold[open] summary { border-bottom: 0; }
  .dv-toc__fold summary .dv-toc__count, .dv-toc__fold .dv-toc__icon { display: none; } /* desktop chỉ còn nhãn "Mục lục" */
  .dv-toc__fold nav { border-left: 1px solid var(--divake-line); padding-left: 14px; }
  .dv-toc__fold nav a { border: 0; padding: 5px 0; font-size: 14.5px; color: var(--divake-ink-2); }
  .dv-toc__fold nav a:hover { color: var(--divake-accent); }
  /* Mục hiện tại (scroll-spy): chữ đất đỏ 600 + thanh 3px trái (mockup 3c) */
  .dv-toc__fold nav a.dv-toc-active {
    color: var(--divake-accent); font-weight: 600;
    border-left: 3px solid var(--divake-accent);
    margin-left: -15px; padding-left: 12px;
  }
}

/* ===== Card bài viết ===== */
.dv-card__cat { font: 600 12.5px/1.4 var(--divake-font-body); letter-spacing: .04em; text-transform: uppercase; color: var(--divake-accent); }
.dv-card__title { font-family: var(--divake-font-head); font-weight: 600; font-size: 17px; line-height: 1.35; margin: 0; }
.dv-card__meta { font-size: 13.5px; color: var(--divake-ink-2); }
.dv-card:hover .dv-card__title { color: var(--divake-accent); }
.dv-card--row { display: flex; gap: var(--divake-sp-3); align-items: flex-start; }
.dv-card--row .dv-card__img { width: 96px; height: 72px; flex: none; border-radius: var(--divake-r-md); object-fit: cover; }
.dv-card--nocat .dv-card__cat { display: none; }

/* ===== FAQ ===== */
.dv-faq { margin: 0 0 var(--divake-sp-8); } /* cách khối bên dưới (Nguồn tham khảo…) 32px */
.dv-faq__item { border-top: 1px solid var(--divake-line); }
.dv-faq__item:last-child { border-bottom: 1px solid var(--divake-line); }
.dv-faq__item summary {
  list-style: none; cursor: pointer;
  display: flex; justify-content: space-between; align-items: center; gap: var(--divake-sp-3);
  padding: 14px 0; min-height: 48px;
  font-weight: 600; font-size: 16.5px; line-height: 1.4;
}
.dv-faq__item summary::-webkit-details-marker { display: none; }
.dv-faq__icon { flex: none; width: 24px; height: 24px; border-radius: var(--divake-r-pill); border: 1px solid var(--divake-line); position: relative; }
.dv-faq__icon::before, .dv-faq__icon::after {
  content: ""; position: absolute; background: var(--divake-accent);
  top: 50%; left: 50%; translate: -50% -50%;
}
.dv-faq__icon::before { width: 10px; height: 2px; }
.dv-faq__icon::after  { width: 2px;  height: 10px; }
.dv-faq__item[open] .dv-faq__icon::after { display: none; }
.dv-faq__item p { margin: 0 0 var(--divake-sp-4); font-size: 16px; line-height: 1.65; max-width: 60ch; }

/* ===== Breadcrumb (đặc tả 3f) ===== */
.dv-crumbs { font-size: var(--divake-fs-meta); color: var(--divake-ink-2); margin-bottom: var(--divake-sp-3); }
/* 1 dòng + ellipsis: đặt trên phần tử trong cùng chứa text (p của Rank Math) */
.dv-crumbs p { margin: 0; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dv-crumbs .separator { color: #B7ACA0; }
.dv-crumbs a { color: var(--divake-ink-2); text-decoration: none; }
.dv-crumbs a:hover { color: var(--divake-accent); }
.dv-crumbs .breadcrumb_last, .dv-crumbs .last { color: var(--divake-ink); }

/* ===== Chú thích ảnh ===== */
.entry-content figure { margin: var(--divake-sp-6) 0; }
.entry-content figure img { border-radius: var(--divake-r-md); }
.entry-content figcaption {
  font-size: var(--divake-fs-caption); line-height: 1.55;
  color: var(--divake-ink-2); font-style: normal;
  text-align: left; margin-top: var(--divake-sp-2); padding: 0 var(--divake-sp-1);
}

/* ===== Bảng dữ liệu trong nội dung (bài import từ CTC) ===== */
.entry-content table {
  width: 100%; border-collapse: collapse;
  background: var(--divake-surface);
  border: 1px solid var(--divake-line); border-radius: var(--divake-r-md);
  font-size: 15.5px; line-height: 1.5; margin: var(--divake-sp-6) 0;
  font-variant-numeric: tabular-nums;
}
.entry-content th, .entry-content td { padding: 10px 14px; text-align: left; border-top: 1px solid var(--divake-line-soft); }
.entry-content thead th {
  border-top: 0; background: var(--divake-paper);
  font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: var(--divake-ink-2);
}

/* ===== Callout "Đọc trước" trong bài ===== */
.dv-callout { background: var(--divake-tint); border-radius: var(--divake-r-sm); padding: 14px var(--divake-sp-4); font-size: 15.5px; line-height: 1.55; margin: var(--divake-sp-6) 0; }
.dv-callout a { font-weight: 600; }

/* ===================================================================
   4 · CLASS DÙNG LẠI (thay cho GB Global Styles — GB 2.x lưu style
   per-site trong DB, còn class ở đây theo child theme sang staydep).
   Nguồn: documents/Divake WordPress Handoff.dc.html, mục 4.
   Trong editor: gõ tên class vào ô "Additional CSS class(es)" của block.
   =================================================================== */
.dv-h2 {
  font-family: var(--divake-font-head); font-weight: 600;
  font-size: var(--divake-fs-h2); line-height: var(--divake-lh-h2);
  margin-top: var(--divake-sp-8);
}
.dv-h3 {
  font-family: var(--divake-font-head); font-weight: 600;
  font-size: var(--divake-fs-h3); line-height: var(--divake-lh-h3);
}
.dv-eyebrow {
  font-family: var(--divake-font-body); font-size: 13px; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase; color: var(--divake-accent);
}
.dv-meta { font-size: 13.5px; color: var(--divake-ink-2); }
.dv-panel {
  background: var(--divake-surface); border: 1px solid var(--divake-line);
  border-radius: var(--divake-r-md); overflow: hidden;
}
.dv-tintbox {
  background: var(--divake-tint); border-radius: var(--divake-r-md);
  padding: var(--divake-sp-4);
}
@media (min-width: 1024px) {
  .dv-tintbox { padding: var(--divake-sp-5) var(--divake-sp-6); }
}
.dv-chip {
  display: inline-flex; align-items: center;
  min-height: 40px; padding: 8px 14px;
  font-size: 14px; font-weight: 600; line-height: 1;
  color: var(--divake-ink); background: var(--divake-surface);
  border: 1px solid var(--divake-line); border-radius: var(--divake-r-pill);
  text-decoration: none;
}
.dv-chip:hover { border-color: var(--divake-ink); color: var(--divake-ink); text-decoration: none; }
.dv-chip--active, .dv-chip--active:hover {
  background: var(--divake-ink); border-color: var(--divake-ink); color: var(--divake-paper);
}
.dv-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 10px 18px;
  font-size: 15px; font-weight: 600;
  color: #fff; background: var(--divake-accent);
  border-radius: var(--divake-r-sm); text-decoration: none;
}
.dv-btn:hover { background: var(--divake-accent-hover); color: #fff; text-decoration: none; }
.dv-grid-cards { display: grid; grid-template-columns: 1fr; gap: var(--divake-sp-6); }
@media (min-width: 480px)  { .dv-grid-cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .dv-grid-cards { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .dv-grid-cards--4 { grid-template-columns: repeat(4, 1fr); } }

/* ===== Trang chủ ===== */
.dv-section-label {
  font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: var(--divake-ink-2); margin: var(--divake-sp-8) 0 var(--divake-sp-3);
}
/* Khối query chưa có bài: ẩn cả khung lẫn nhãn đứng trước nó */
.dv-autohide:not(:has(li)) { display: none; }
.dv-section-label:has(+ .dv-autohide:not(:has(li))) { display: none; }

/* Hero: bài mới nhất — 1 cột mobile, ảnh 7fr + chữ 5fr desktop */
ul.dv-home-hero { list-style: none; margin: 0; padding: 0; }
.dv-home-hero li { display: flex; flex-direction: column; gap: 10px; }
.dv-home-hero figure { margin: 0; }
.dv-home-hero__title { font-family: var(--divake-font-head); font-weight: 700; font-size: 24px; line-height: 1.25; margin: 0; text-wrap: pretty; }
.dv-home-hero__title a { color: var(--divake-ink); text-decoration: none; }
.dv-home-hero__title a:hover { color: var(--divake-accent); }
.dv-home-hero__excerpt { font-size: 15.5px; line-height: 1.6; color: var(--divake-ink-2); margin: 0; }
@media (min-width: 1024px) {
  .dv-home-hero li { display: grid; grid-template-columns: 7fr 5fr; column-gap: var(--divake-sp-8); align-content: center; }
  .dv-home-hero figure { grid-column: 1; grid-row: 1 / span 4; }
  .dv-home-hero li > *:not(figure) { grid-column: 2; }
  .dv-home-hero li { align-items: center; }
  .dv-home-hero__title { font-size: 32px; line-height: 1.2; }
}
/* List "Vừa đi vừa kể" — card ngang, kẻ giữa các bài */
ul.dv-home-list { list-style: none; margin: 0; padding: 0; }
.dv-home-list li { display: grid; grid-template-columns: 110px 1fr; column-gap: var(--divake-sp-3); padding: var(--divake-sp-4) 0; }
.dv-home-list li + li { border-top: 1px solid var(--divake-line-soft); }
.dv-home-list figure { margin: 0; grid-column: 1; grid-row: 1 / span 3; }
.dv-home-list li > *:not(figure) { grid-column: 2; }
.dv-home-list .dv-card__title { font-size: 16.5px; }
@media (min-width: 1024px) {
  .dv-home-list li { grid-template-columns: 160px 1fr; }
}
/* Lưới chuyên mục "Đi theo vùng" */
.dv-catgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (min-width: 1024px) { .dv-catgrid { grid-template-columns: repeat(4, 1fr); } }
.dv-catgrid a {
  display: flex; flex-direction: column; gap: 2px;
  border: 1px solid var(--divake-line); border-radius: var(--divake-r-md);
  padding: 14px; text-decoration: none; background: var(--divake-surface);
}
.dv-catgrid a:hover { border-color: var(--divake-ink); }
.dv-catgrid .dv-catgrid__name { font-family: var(--divake-font-head); font-weight: 600; font-size: 16px; color: var(--divake-ink); }
.dv-catgrid .dv-catgrid__desc { font-size: 13.5px; color: var(--divake-ink-2); }
/* Hộp giới thiệu */
.dv-intro { display: flex; gap: 14px; align-items: flex-start; }
.dv-intro__name { font-family: var(--divake-font-head); font-weight: 600; font-size: 17px; margin: 0 0 4px; }
.dv-intro p { margin: 0; font-size: 15px; line-height: 1.6; }

/* ===== Đầu bài viết (Header Element "Divake — Đầu bài viết") ===== */
.dv-post-hero {
  max-width: 680px; margin: 0 auto; /* cột bài 640 + padding, căn giữa theo đặc tả 1c */
  padding: var(--divake-sp-4) 20px 0;
  display: flex; flex-direction: column; gap: var(--divake-sp-3);
}
.dv-post-hero .dv-crumbs { margin-bottom: 0; }
.dv-post-cat, .dv-post-cat a {
  font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
  color: var(--divake-accent); text-decoration: none;
}
.dv-post-title {
  margin: 0; font-family: var(--divake-font-head); font-weight: 700;
  font-size: var(--divake-fs-h1); line-height: var(--divake-lh-h1);
  color: var(--divake-ink); text-wrap: pretty;
}
.dv-post-meta { display: flex; align-items: center; gap: 10px; font-size: 14.5px; line-height: 1.4; color: var(--divake-ink-2); }
.dv-post-meta__avatar { width: 36px; height: 36px; border-radius: var(--divake-r-pill); border: 1px solid var(--divake-line); flex: none; }
.dv-post-meta .author-name { color: var(--divake-ink); font-weight: 700; }
.dv-post-meta a { color: inherit; text-decoration: none; }
.dv-post-meta a:hover { color: var(--divake-accent); }
@media (min-width: 1024px) {
  .dv-post-hero { padding: var(--divake-sp-5) 40px 0; }
}

/* Bài thường: cột nội dung 640px CĂN GIỮA (đặc tả 1c; bài pillar đã có grid riêng) */
.single-post .entry-content:not(:has(> .dv-toc)) { max-width: var(--divake-content); margin-left: auto; margin-right: auto; }
.single-post .dv-quick { max-width: var(--divake-content); margin-left: auto; margin-right: auto; }

/* ===== Trang chuyên mục / trang Bài viết (archive) ===== */
.archive .page-header, .blog .page-header { margin: var(--divake-sp-2) 0 var(--divake-sp-4); }
.archive .page-title, .blog .page-title {
  font-family: var(--divake-font-head); font-weight: 700;
  font-size: var(--divake-fs-h1); line-height: var(--divake-lh-h1); margin: 0 0 var(--divake-sp-2);
}
.archive .taxonomy-description { max-width: var(--divake-content); color: var(--divake-ink-2); }
.archive .taxonomy-description p, .blog .page-header p { margin: 0; font-size: 16px; line-height: 1.65; }

/* Card trong vòng lặp (GP Content Template) — mobile: card ngang có kẻ */
article.dynamic-content-template {
  display: grid; grid-template-columns: 110px 1fr; column-gap: var(--divake-sp-3); row-gap: 4px;
  padding: var(--divake-sp-4) 0; align-items: start;
}
article.dynamic-content-template + article.dynamic-content-template { border-top: 1px solid var(--divake-line-soft); }
article.dynamic-content-template figure { margin: 0; grid-column: 1; grid-row: 1 / span 2; }
article.dynamic-content-template > *:not(figure) { grid-column: 2; }
article.dynamic-content-template .dv-card__title { font-size: 16.5px; }

@media (min-width: 1024px) {
  .archive .site-main, .blog .site-main { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--divake-sp-6); }
  .archive .site-main > *, .blog .site-main > * { grid-column: 1 / -1; }
  .archive .site-main > article.dynamic-content-template, .blog .site-main > article.dynamic-content-template {
    grid-column: auto; display: flex; flex-direction: column; gap: 9px;
    padding: 0; border-top: 0;
  }
  article.dynamic-content-template .dv-card__title { font-size: 18px; }
}

/* ===== Trang tác giả: khối hồ sơ trên danh sách bài ===== */
.dv-author-hero { margin: 0 0 var(--divake-sp-4); }
.dv-author-card { display: flex; gap: var(--divake-sp-4); align-items: flex-start; }
.dv-author-card .dv-post-meta__avatar { width: 64px; height: 64px; flex: none; }
.dv-author-card__body { display: flex; flex-direction: column; gap: 10px; }
.dv-author-card__name { margin: 0; font-family: var(--divake-font-head); font-weight: 600; font-size: 18px; }
.dv-author-card__body p { margin: 0; font-size: 15.5px; line-height: 1.65; }
.dv-author-card__facts { margin: 0; padding-left: 18px; font-size: 15px; line-height: 1.7; }
.dv-author-hero .dv-section-label { margin-top: var(--divake-sp-6); }
@media (max-width: 480px) {
  .dv-author-card { flex-direction: column; }
}

/* Phân trang */
.nav-links { display: flex; flex-wrap: wrap; gap: var(--divake-sp-2); justify-content: center; padding: var(--divake-sp-6) 0; }
.nav-links .page-numbers {
  min-width: 40px; height: 40px; padding: 0 12px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--divake-line); border-radius: var(--divake-r-md);
  background: var(--divake-surface); color: var(--divake-ink);
  font-size: 15px; font-weight: 600; text-decoration: none;
}
.nav-links .page-numbers.current { background: var(--divake-ink); border-color: var(--divake-ink); color: var(--divake-paper); }
.nav-links a.page-numbers:hover { border-color: var(--divake-ink); }

/* ===== Wordmark header: "divake." với dấu chấm đất đỏ ===== */
.main-title { margin: 0; }
.main-title a {
  font-family: var(--divake-font-head); font-weight: 800;
  font-size: 21px; letter-spacing: -.01em;
  color: var(--divake-ink); text-decoration: none;
}
.main-title a::after { content: "."; color: var(--divake-accent); }
.main-title a:hover { color: var(--divake-ink); }
@media (min-width: 1024px) {
  .main-title a { font-size: 24px; }
}

/* ===== Mobile menu (GP off-canvas slideout) — 2 nhóm Đi đâu / Đi kiểu gì (mockup 2a) =====
   Selector dài .slideout-navigation.main-navigation .main-nav ul li a là để
   thắng specificity CSS inline của GP — đừng rút gọn. */
@media (max-width: 767px) {
  /* mockup 2a: panel phủ toàn bề ngang, không phải ngăn kéo hẹp.
     html:root để thắng :root inline của GP (in sau child CSS). */
  html:root { --gp-slideout-width: 100vw; }
}
.slideout-navigation .inside-navigation { padding: 20px; }
/* Nút đóng ✕ (GP render khi Close Button = Inside) — góc phải trên, hit target 44px.
   Selector 3 class để thắng CSS inline của GP (width:100%). */
.slideout-navigation.main-navigation button.slideout-exit {
  position: absolute; top: 8px; right: 12px;
  width: 44px; height: 44px; padding: 0;
  display: flex; align-items: center; justify-content: center;
  background: none; border: 0; cursor: pointer;
  color: var(--divake-paper); font-size: 22px; line-height: 1;
}
.slideout-navigation.main-navigation button.slideout-exit:hover,
.slideout-navigation.main-navigation button.slideout-exit:focus {
  background: none; color: var(--divake-accent-onDark);
}
.slideout-navigation.main-navigation button.slideout-exit svg { width: 22px; height: 22px; fill: currentColor; }
/* chừa chỗ cho nút ✕ ở hàng nhãn đầu tiên */
.slideout-navigation.main-navigation .main-nav ul li.dv-nav-label:first-child a { padding-right: 48px; }
.slideout-navigation.main-navigation .main-nav ul li { float: none; width: 100%; }
.slideout-navigation.main-navigation .main-nav ul li a {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  font-family: var(--divake-font-head); font-weight: 600; font-size: 19px; line-height: 1.4;
  padding: 9px 0; margin: 0;
  border-bottom: 1px solid rgba(250, 248, 245, .12);
}
.slideout-navigation.main-navigation .main-nav ul li a::after {
  content: "\2192"; /* → */
  color: var(--divake-accent-onDark); flex: none;
}
/* Mục cuối mỗi nhóm và mục cuối cùng: bỏ kẻ dưới (đúng mockup) */
.slideout-navigation.main-navigation .main-nav ul li:has(+ .dv-nav-label) a,
.slideout-navigation.main-navigation .main-nav ul li:last-child a { border-bottom: 0; }
/* Nhãn nhóm: mục menu mang class dv-nav-label */
.slideout-navigation.main-navigation .main-nav ul li.dv-nav-label a {
  font-family: var(--divake-font-body); font-size: 12px; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase;
  color: #B7ACA0; pointer-events: none;
  padding: 16px 0 8px; border-bottom: 0;
}
.slideout-navigation.main-navigation .main-nav ul li.dv-nav-label a::after { content: none; }
.slideout-navigation.main-navigation .main-nav ul li.dv-nav-label:first-child a { padding-top: 0; }

/* ===== Footer nền mực (bản SEO: trust page + sitemap + liên hệ) ===== */
.site-footer { background: var(--divake-ink); margin-top: var(--divake-sp-12); }
.site-footer .site-info { display: none; } /* ẩn dòng copyright mặc định của GP */
.dv-footer {
  max-width: var(--divake-container); margin: 0 auto;
  padding: var(--divake-sp-8) 20px;
  display: flex; flex-direction: column; gap: var(--divake-sp-6);
}
.dv-footer__grid { display: flex; flex-direction: column; gap: var(--divake-sp-6); }
.dv-footer__logo { font-family: var(--divake-font-head); font-weight: 800; font-size: 19px; color: var(--divake-paper); letter-spacing: -.01em; }
.dv-footer__logo span { color: var(--divake-accent-onDark); }
.dv-footer__tag { font-size: 14px; line-height: 1.55; color: #B7ACA0; margin-top: 6px; max-width: 34ch; }
.dv-footer__contact { font-size: 14px; line-height: 1.7; color: #B7ACA0; margin-top: 12px; }
.dv-footer__contact a { color: var(--divake-paper); text-decoration: none; }
.dv-footer__contact a:hover { color: var(--divake-accent-onDark); }
.dv-footer__label {
  margin: 0 0 var(--divake-sp-2);
  font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: #B7ACA0;
}
.dv-footer__col a {
  display: block; padding: 4px 0;
  font-size: 14.5px; color: var(--divake-paper); text-decoration: none;
}
.dv-footer__col a:hover { color: var(--divake-accent-onDark); }
.dv-footer__bottom {
  border-top: 1px solid rgba(250, 248, 245, .12); padding-top: var(--divake-sp-4);
  font-size: 13px; line-height: 1.6; color: #B7ACA0;
}
@media (min-width: 1024px) {
  .dv-footer { padding-left: 40px; padding-right: 40px; }
  .dv-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.2fr; gap: var(--divake-sp-8); }
}

/* dv-grid-cards khi là Query Loop (ul.wp-block-post-template) */
ul.dv-grid-cards { list-style: none; margin: 0; padding: 0; }
.dv-grid-cards li { display: flex; flex-direction: column; gap: var(--divake-sp-2); }
.dv-grid-cards figure { margin: 0; }
.dv-card__img img { width: 100%; border-radius: var(--divake-r-md); object-fit: cover; }
.dv-card__title a { color: inherit; text-decoration: none; }
.dv-card__cat a { color: inherit; text-decoration: none; }
.dv-grid-cards li:hover .dv-card__title,
.dv-grid-cards li:hover .dv-card__title a { color: var(--divake-accent); }

/* Reset margin phần tử văn bản bên trong component (theme/GP tự thêm) */
.dv-cost__head h3 { margin: 0; }
.dv-cost__scope { margin: 2px 0 0; }
.dv-faq__item summary { margin: 0; }
