/* ==========================================================================
   XayDung247 - Stylesheet chính
   Tông màu: navy #0a1f3d / #10305c, vàng đồng #c8a24a, kem #f3e7cb
   ========================================================================== */

/* ---------- 1. Design tokens ---------- */
:root {
  /* Thương hiệu */
  --navy:        #0a1f3d;
  --navy-8:      #10305c;
  --navy-press:  #071730;
  --navy-soft:   #1b4a86;
  --gold:        #c8a24a;
  --gold-deep:   #a37f2e;
  --gold-text:   #8a6a1f;
  --cream:       #f3e7cb;
  --cream-soft:  #faf5ea;

  /* Chữ */
  --ink:         #172033;
  --ink-2:       #334155;
  --ink-3:       #475467;
  --muted:       #667085;
  --muted-2:     #98a2b3;

  /* Đường viền & nền */
  --line:        #e4e7ec;
  --line-soft:   #f0f1f4;
  --bg:          #ffffff;

  /* Bố cục */
  --wrap:        1200px;
  --gutter:      24px;
  --topbar-h:    38px;
  --header-h:    74px;

  --radius:      12px;
  --radius-sm:   8px;
  --pill:        9999px;
}

/* ---------- 2. Reset & nền tảng ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 1.6;
  font-feature-settings: "ss01";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-wrap: pretty;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: var(--navy-8); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--gold-deep); }

h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 400; letter-spacing: -.5px; color: var(--navy); }

p { margin: 0 0 1em; }

button, input, select, textarea { font-family: inherit; font-size: inherit; }

/* Số dạng bảng - dùng cho mã văn bản, ngày tháng */
.tnum { font-feature-settings: 'tnum'; font-variant-numeric: tabular-nums; }

/* Chỉ hiện cho trình đọc màn hình */
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* Bỏ qua tới nội dung - hỗ trợ bàn phím */
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--navy); color: #fff; padding: 12px 20px;
}
.skip-link:focus { left: 8px; top: 8px; color: #fff; }

/* Viền focus rõ ràng cho người dùng bàn phím */
:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

/* ---------- 3. Bố cục chung ---------- */
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }

.section { padding: 56px 0; }
.section--tight { padding: 40px 0; }

/* Khối đầu tiên trong main nằm ngay dưới dải tin nóng, nên 56px đệm trên
   tạo một mảng trống lớn trước khi vào nội dung. Thu còn một nửa để phần
   đọc bắt đầu sớm hơn. Trang chủ không bị ảnh hưởng vì khối mở đầu ở đó
   mang class .hero chứ không phải .section. */
main > .section:first-child { padding-top: 28px; }

/* Tiêu đề khối: gạch chân đậm màu navy */
.section-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 16px;
  border-bottom: 2px solid var(--navy);
  padding-bottom: 12px;
  margin-bottom: 28px;
}
.section-head h2 {
  margin: 0; font-size: 24px; font-weight: 300;
  letter-spacing: -.6px; color: var(--navy);
}
.section-head .more { font-size: 13.5px; color: var(--muted); }
.section-head .more:hover { color: var(--gold-deep); }

/* Nhãn nhỏ in hoa (kicker) */
.kicker {
  font-size: 11px; letter-spacing: 1.1px; text-transform: uppercase;
  color: var(--gold);
}
.kicker--dark { color: var(--gold-text); }

/* ---------- 4. Thanh trên cùng ---------- */
.topbar {
  background: var(--navy);
  color: rgba(255,255,255,.72);
  font-size: 12.5px;
  letter-spacing: .1px;
}
.topbar__inner {
  max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter);
  min-height: var(--topbar-h);
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.topbar__note { display: flex; align-items: center; gap: 10px; min-width: 0; }
.topbar__dot {
  width: 6px; height: 6px; border-radius: var(--pill);
  background: var(--gold); flex: none;
}
.topbar__note span {
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.topbar__links { display: flex; align-items: center; gap: 18px; flex: none; }
.topbar__links a { color: rgba(255,255,255,.72); }
.topbar__links a:hover { color: #fff; }
.topbar__links a.is-gold { color: #e8d7ad; }
.topbar__sep { width: 1px; height: 14px; background: rgba(255,255,255,.16); }

/* ---------- 5. Header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 40;
  background: rgba(255,255,255,.96);
  backdrop-filter: saturate(140%) blur(6px);
  border-bottom: 1px solid var(--line);
}
.site-header__inner {
  max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter);
  min-height: var(--header-h);
  display: flex; align-items: center; gap: 16px;
}

/* Logo ảnh.
   line-height:0 để thẻ a không thừa vài pixel dưới ảnh, gây lệch trục dọc header. */
.brand { display: block; flex: none; line-height: 0; }
.brand__img { display: block; height: 52px; width: auto; }

/* Logo chữ — giữ lại cho trường hợp cần dựng lại bằng chữ, không dùng ở header nữa */
.brand__a { font-size: 23px; font-weight: 400; letter-spacing: -.7px; color: var(--navy); }
.brand__b { font-size: 23px; font-weight: 500; letter-spacing: -.7px; color: var(--gold); font-feature-settings: 'tnum'; }
.brand__tld { font-size: 11px; color: var(--muted); letter-spacing: .4px; margin-left: 6px; padding-bottom: 2px; }

/* Menu chính */
.nav { display: flex; align-items: center; gap: 4px; margin-left: 18px; flex: 1 1 auto; min-width: 0; }
.nav ul { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
.nav a {
  display: inline-block; padding: 8px 13px;
  font-size: 14.5px; color: var(--ink-2); border-radius: var(--pill);
  white-space: nowrap;
}
.nav a:hover { background: #f6f7f9; color: var(--navy); }
.nav .current-menu-item > a,
.nav .current_page_item > a {
  background: var(--cream); color: var(--gold-text);
}

/* Ô tìm kiếm trên header */
.header-search { display: flex; align-items: center; gap: 8px; flex: none; }
.header-search input[type="search"] {
  width: 190px; padding: 9px 14px;
  border: 1px solid var(--line); border-radius: var(--pill);
  font-size: 13.5px; color: var(--ink); background: #fff;
}
.header-search input::placeholder { color: var(--muted-2); }
.header-search input:focus { outline: none; border-color: var(--gold); }

/* Nút mở menu trên mobile */
.nav-toggle {
  display: none; flex: none;
  background: transparent; border: 1px solid var(--line);
  border-radius: var(--radius-sm); padding: 8px 12px;
  color: var(--navy); cursor: pointer;
}

/* ---------- 6. Nút ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 11px 20px; border-radius: var(--pill);
  font-size: 14px; font-weight: 400; line-height: 1;
  border: 1px solid transparent; cursor: pointer;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.btn--primary { background: var(--navy-8); color: #fff; }
.btn--primary:hover { background: var(--navy); color: #fff; }
.btn--gold { background: var(--gold); color: var(--navy); }
.btn--gold:hover { background: var(--gold-deep); color: #fff; }
.btn--ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.28); }
.btn--ghost:hover { background: rgba(255,255,255,.08); color: #fff; }
.btn--outline { background: #fff; color: var(--navy-8); border-color: var(--line); }
.btn--outline:hover { border-color: var(--gold); color: var(--gold-deep); }
.btn--sm { padding: 9px 16px; font-size: 13.5px; }

/* ---------- 7. Thẻ nhãn ---------- */
.tag {
  display: inline-block;
  font-size: 11px; letter-spacing: .6px;
  color: var(--gold-text); background: var(--cream);
  padding: 3px 9px; border-radius: var(--pill);
}
.tag--hot {
  font-size: 10.5px; letter-spacing: 1px; font-weight: 500;
  padding: 5px 12px;
  white-space: nowrap;   /* giữ "TIN NÓNG" trên một dòng, không bị méo */
  flex: none;
}

/* ---------- 8. Thanh tin nóng ---------- */
.ticker {
  border-bottom: 1px solid var(--line);
  background: #fff;
  overflow: hidden;
}
.ticker__inner {
  max-width: var(--wrap); margin: 0 auto; padding: 10px var(--gutter);
  display: flex; align-items: center; gap: 14px;
}
/* Khung cắt: mờ dần hai mép cho chữ trôi vào/ra tự nhiên */
.ticker__viewport {
  overflow: hidden; flex: 1 1 auto; min-width: 0;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 40px), transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 40px), transparent 100%);
}

/* Băng chạy gồm 2 nhóm giống hệt nhau.
   Dịch -50% đúng bằng bề rộng 1 nhóm nên vòng lặp liền mạch, không giật. */
.ticker__track {
  display: flex; width: max-content;
  animation: xd-tick 45s linear infinite;
}
.ticker__group {
  display: flex; align-items: center; gap: 28px;
  padding-right: 28px;
}
/* Dừng lại khi người dùng rê chuột để kịp đọc */
.ticker:hover .ticker__track,
.ticker:focus-within .ticker__track { animation-play-state: paused; }

@keyframes xd-tick {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

.ticker__item {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--ink-3); white-space: nowrap;
}
.ticker__item::before {
  content: ""; width: 4px; height: 4px; border-radius: var(--pill);
  background: var(--gold); flex: none;
}
.ticker__item:hover { color: var(--navy); }

/* ---------- 9. Hero ---------- */
.hero { background: var(--navy); color: #fff; }
.hero__grid {
  display: grid; grid-template-columns: 1fr 380px; gap: 48px;
  padding: 52px 0 56px; align-items: start;
}
.hero__kicker { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.hero__title {
  margin: 0; color: #fff;
  font-size: 46px; line-height: 1.14; font-weight: 300; letter-spacing: -1.4px;
}
.hero__excerpt {
  margin: 20px 0 0; max-width: 62ch;
  font-size: 15.5px; line-height: 1.68; color: rgba(255,255,255,.74);
}
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

/* Hộp "Điểm tin trong ngày" */
.digest {
  border: 1px solid rgba(255,255,255,.14); border-radius: var(--radius);
  background: rgba(255,255,255,.03);
  overflow: hidden;
}
.digest__head {
  padding: 14px 18px; border-bottom: 1px solid rgba(255,255,255,.12);
}
.digest__list { padding: 4px 18px 8px; }
.digest__item {
  display: flex; gap: 12px; align-items: flex-start;
  padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.08);
}
.digest__item:last-child { border-bottom: 0; }
.digest__num {
  font-size: 12px; color: var(--gold); flex: none; width: 20px;
  font-feature-settings: 'tnum'; padding-top: 2px;
}
.digest__text { font-size: 14px; line-height: 1.55; color: rgba(255,255,255,.86); }
.digest__item:hover .digest__text { color: #fff; }
.digest__more { display: inline-block; margin: 12px 0 16px; font-size: 13.5px; color: var(--gold); }
.digest__more:hover { color: #fff; }

/* ---------- 10. Dải công cụ nhanh ---------- */
.quicktools { background: var(--navy-press); border-top: 1px solid rgba(255,255,255,.08); }
.quicktools__grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
}
.quicktools__item {
  padding: 22px 24px;
  border-right: 1px solid rgba(255,255,255,.08);
  display: block;
}
.quicktools__item:last-child { border-right: 0; }
.quicktools__item:hover { background: rgba(255,255,255,.04); }
.quicktools__num { display: block; font-size: 11px; color: var(--gold); font-feature-settings: 'tnum'; }
.quicktools__label { display: block; font-size: 14.5px; color: #fff; margin-top: 6px; }
.quicktools__desc { display: block; font-size: 12.5px; color: rgba(255,255,255,.55); margin-top: 3px; line-height: 1.45; }

/* ---------- 11. Khối nội dung chính + sidebar ---------- */
.main-grid {
  display: grid; grid-template-columns: 1fr 340px; gap: 48px;
  align-items: start;
}

/* Danh sách bài viết */
.article-list { display: flex; flex-direction: column; gap: 28px; }

.article-row {
  display: grid; grid-template-columns: 190px 1fr; gap: 22px;
  align-items: start;
  padding-bottom: 28px; border-bottom: 1px solid var(--line);
}
.article-row:last-child { border-bottom: 0; padding-bottom: 0; }

/* Ô mã văn bản bên trái */
.article-tile {
  display: flex; flex-direction: column; justify-content: space-between;
  height: 124px; border-radius: var(--radius-sm);
  padding: 14px 16px; border: 1px solid var(--line);
  background: #f8f9fb; overflow: hidden;
}
.article-tile--dark { background: var(--navy); border-color: var(--navy); }
.article-tile--cream { background: var(--cream); border-color: #e7d6ae; }
.article-tile__kicker { font-size: 10px; letter-spacing: 1.1px; color: var(--muted); text-transform: uppercase; }
.article-tile--dark .article-tile__kicker { color: var(--gold); }
.article-tile--cream .article-tile__kicker { color: var(--gold-text); }
.article-tile__code {
  font-size: 19px; letter-spacing: -.5px; line-height: 1.25; color: var(--navy);
  font-feature-settings: 'tnum'; font-variant-numeric: tabular-nums;
}
.article-tile--dark .article-tile__code { color: #fff; }
.article-tile--cream .article-tile__code { color: var(--navy); }
/* Ảnh đại diện thay cho ô mã (nếu bài có ảnh) */
.article-tile--img { padding: 0; border: 1px solid var(--line); }
.article-tile--img img { width: 100%; height: 100%; object-fit: cover; }

.article-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 9px; flex-wrap: wrap; }
.article-meta__date { font-size: 12.5px; color: var(--muted-2); font-feature-settings: 'tnum'; }
.article-row__title {
  display: block; font-size: 20px; line-height: 1.35;
  letter-spacing: -.5px; color: var(--navy); font-weight: 400;
}
.article-row:hover .article-row__title { color: var(--navy-8); }
.article-row__excerpt {
  display: block; font-size: 14.5px; line-height: 1.62;
  color: var(--ink-3); margin-top: 8px;
}

/* ---------- 12. Sidebar ---------- */
.sidebar {
  display: flex; flex-direction: column; gap: 22px;
  position: sticky; top: calc(var(--header-h) + 56px);
}
.card { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.card__head {
  background: var(--navy); padding: 14px 18px;
  font-size: 11px; letter-spacing: 1.1px; color: var(--gold);
  display: flex; align-items: center; justify-content: space-between;
  text-transform: uppercase;
}
.card__body { padding: 6px 18px 14px; }

/* Danh sách văn bản trong sidebar */
.doc-item { display: block; padding: 13px 0; border-bottom: 1px solid var(--line-soft); }
.doc-item:last-of-type { border-bottom: 0; }
.doc-item__top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.doc-item__code { font-size: 12.5px; color: var(--gold-deep); font-feature-settings: 'tnum'; font-variant-numeric: tabular-nums; }
.doc-item__status { font-size: 11px; }
.is-active   { color: #2e7d52; }
.is-expired  { color: #b42318; }
.doc-item__title { display: block; font-size: 14px; line-height: 1.5; color: var(--ink); margin-top: 4px; }
.doc-item:hover .doc-item__title { color: var(--navy-8); }
.card__more { display: inline-block; margin-top: 14px; font-size: 13.5px; color: var(--navy-8); }

/* Đọc nhiều */
.popular { display: flex; flex-direction: column; gap: 16px; padding: 18px 18px 20px; }
.popular__item { display: flex; gap: 12px; align-items: flex-start; }
.popular__num {
  font-size: 20px; font-weight: 300; color: var(--line);
  font-feature-settings: 'tnum'; line-height: 1; width: 24px; flex: none;
}
.popular__title { font-size: 14px; line-height: 1.5; color: var(--ink); }
.popular__item:hover .popular__title { color: var(--navy-8); }

/* Hộp hỗ trợ hồ sơ */
.support-box {
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: 22px; background: var(--cream-soft);
}
.support-box p { margin: 10px 0 14px; font-size: 14.5px; line-height: 1.6; color: var(--ink-2); }

/* ---------- 13. Bản đồ văn bản (khối tối) ---------- */
.docmap { background: var(--navy); color: #fff; border-radius: var(--radius); padding: 40px; }
.docmap__title {
  margin: 14px 0 12px; color: #fff;
  font-size: 30px; font-weight: 300; letter-spacing: -1px; line-height: 1.2;
}
.docmap__desc { font-size: 14.5px; line-height: 1.65; color: rgba(255,255,255,.68); max-width: 76ch; margin: 0 0 26px; }
.docmap__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.docmap__cell {
  border: 1px solid rgba(255,255,255,.14); border-radius: var(--radius-sm);
  padding: 14px 16px; background: rgba(255,255,255,.03); display: block;
}
.docmap__cell:hover { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.24); }
.docmap__cell-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.docmap__cell-num { font-size: 11px; color: var(--gold); font-feature-settings: 'tnum'; }
.docmap__cell-date { font-size: 11px; color: rgba(255,255,255,.4); font-feature-settings: 'tnum'; }
.docmap__cell-code { display: block; font-size: 15px; color: #fff; margin-top: 10px; font-feature-settings: 'tnum'; }
.docmap__cell-desc { display: block; font-size: 12.5px; color: rgba(255,255,255,.7); margin-top: 4px; line-height: 1.5; }
.docmap__foot {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin-top: 24px; font-size: 13.5px; color: rgba(255,255,255,.6);
}
.docmap__foot a { color: var(--gold); }

/* ---------- 14. Khối công cụ kiểm tra (nền kem) ---------- */
.tool-section { background: var(--cream-soft); }
.tool-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.tool-title {
  margin: 14px 0 12px; font-size: 34px; font-weight: 300;
  letter-spacing: -1.1px; color: var(--navy); line-height: 1.18;
}
.tool-desc { font-size: 15px; line-height: 1.7; color: var(--ink-2); }
.tool-list { margin: 18px 0 0; padding-left: 18px; }
.tool-list li { font-size: 14.5px; line-height: 1.7; color: var(--ink-2); margin-bottom: 8px; }

.tool-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 26px; }
.field { margin-bottom: 20px; }
.field__label { display: block; font-size: 12.5px; color: var(--muted); margin-bottom: 9px; }
.chipset { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  padding: 8px 14px; border-radius: var(--pill);
  border: 1px solid var(--line); background: #fff;
  font-size: 13.5px; color: var(--ink-2); cursor: pointer;
  transition: all .15s ease;
}
.chip:hover { border-color: var(--gold); }
.chip.is-on { background: var(--navy); border-color: var(--navy); color: #fff; }
.chip.is-on-cream { background: var(--cream); border-color: #e7d6ae; color: var(--gold-text); }

.range-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.range-row input[type="range"] { flex: 1 1 auto; accent-color: var(--navy-8); }
.range-row output { font-size: 13.5px; color: var(--navy); font-feature-settings: 'tnum'; flex: none; }

/* Kết quả tra cứu */
.tool-result {
  display: flex; gap: 16px; align-items: flex-start;
  border-top: 1px solid var(--line); margin-top: 6px; padding-top: 22px;
}
.tool-result__badge {
  width: 54px; height: 54px; border-radius: var(--pill); flex: none;
  background: var(--navy); color: #fff;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  line-height: 1.1;
}
.tool-result__badge small { font-size: 8px; letter-spacing: .6px; color: var(--gold); }
.tool-result__badge b { font-size: 17px; font-weight: 400; }
.tool-result__title { display: block; font-size: 16px; color: var(--navy); }
.tool-result__desc { display: block; font-size: 13.5px; line-height: 1.6; color: var(--ink-3); margin-top: 6px; }
.tool-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 20px; }
.tool-actions small { font-size: 12.5px; color: var(--muted); }

/* ---------- 15. Lưới chuyên mục ---------- */
.cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
.cat-col__head {
  display: flex; align-items: center; gap: 8px;
  font-size: 11px; letter-spacing: 1.1px; color: var(--gold-text);
  text-transform: uppercase; margin-bottom: 16px;
}
.cat-col__head::before { content: ""; width: 14px; height: 1px; background: var(--gold); flex: none; }
.cat-thumb {
  display: block; aspect-ratio: 16 / 10; border-radius: var(--radius-sm);
  background: #f2f4f7; border: 1px solid var(--line);
  overflow: hidden; margin-bottom: 14px;
}
.cat-thumb img { width: 100%; height: 100%; object-fit: cover; }
.cat-thumb--empty {
  display: flex; align-items: center; justify-content: center;
  font-size: 10.5px; letter-spacing: 1.2px; color: var(--muted-2);
}
.cat-item__title { display: block; font-size: 16px; line-height: 1.4; color: var(--navy); }
.cat-item__excerpt { font-size: 13.5px; line-height: 1.6; color: var(--ink-3); margin-top: 7px; }
.cat-col__list { margin-top: 18px; display: flex; flex-direction: column; gap: 14px; }
.cat-col__list a { font-size: 14px; line-height: 1.5; color: var(--ink); }
.cat-col__list a:hover { color: var(--navy-8); }

/* ---------- 16. Bài viết đơn ---------- */
.entry-header { margin: 0 0 28px; }
.breadcrumb { font-size: 12.5px; color: var(--muted); margin-bottom: 18px; }
.breadcrumb a { color: var(--muted); }
.breadcrumb a:hover { color: var(--navy-8); }
.entry-title {
  font-size: 38px; line-height: 1.2; font-weight: 300;
  letter-spacing: -1.2px; color: var(--navy); margin: 14px 0 0;
}
.entry-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 16px; font-size: 13px; color: var(--muted-2); }

/* Đoạn dẫn đầu bài - to hơn thân bài để tách bạch */
.entry-lead {
  margin: 18px 0 0;
  font-size: 17.5px; line-height: 1.65; color: var(--ink-3);
}

/* Ảnh đầu bài */
.entry-figure { margin: 0 0 32px; }
.entry-figure img { width: 100%; border-radius: var(--radius); }
.entry-figure figcaption {
  margin-top: 10px; font-size: 13px; line-height: 1.5;
  color: var(--muted); text-align: center;
}

/* Ghi chú miễn trừ cuối bài */
.entry-disclaimer {
  margin-top: 28px; padding: 14px 18px;
  border-left: 3px solid var(--gold);
  background: var(--cream-soft); border-radius: 3px;
  font-size: 13.5px; line-height: 1.6; color: var(--ink-2);
}

/* Trang tĩnh ngắn: giữ một cột hẹp cho dễ đọc */
.page-narrow { max-width: 800px; }

/* Ngày cập nhật cuối trang tĩnh */
.entry-updated {
  margin-top: 32px; padding-top: 16px;
  border-top: 1px solid var(--line);
  font-size: 13px; color: var(--muted);
}

.entry-content { font-size: 17px; line-height: 1.78; color: var(--ink-2); }
/* Chừa chỗ cho header dính khi bấm vào mục lục */
.entry-content h2, .entry-content h3 { scroll-margin-top: calc(var(--header-h) + 16px); }
.entry-content > * + * { margin-top: 1.15em; }
/* Khoảng trên đề mục tính theo em của chính nó, nên 1.8em ở cỡ 26px thành
   gần 47px — trong khi khoảng dưới chỉ 20px. Đề mục bị đẩy xa khỏi đoạn nó
   dẫn vào và trông như rời khỏi mạch bài. Thu còn khoảng 35px, giữ tỷ lệ
   trên gấp khoảng 1,75 lần dưới để vẫn phân tách rõ các phần. */
.entry-content h2 { font-size: 26px; font-weight: 400; margin-top: 1.35em; letter-spacing: -.7px; }
.entry-content h3 { font-size: 20px; font-weight: 400; margin-top: 1.2em; letter-spacing: -.4px; }
.entry-content ul, .entry-content ol { padding-left: 22px; }
.entry-content li { margin-bottom: .5em; }
.entry-content img { border-radius: var(--radius-sm); }
.entry-content blockquote {
  margin: 1.6em 0; padding: 18px 24px;
  border-left: 3px solid var(--gold); background: var(--cream-soft);
  font-size: 16px; color: var(--ink-2);
}
.entry-content a { text-decoration: underline; text-underline-offset: 2px; }
.entry-content table { width: 100%; border-collapse: collapse; font-size: 15px; }
.entry-content th, .entry-content td { border: 1px solid var(--line); padding: 10px 12px; text-align: left; }
.entry-content th { background: #f8f9fb; font-weight: 500; color: var(--navy); }

/* Hộp căn cứ pháp lý trong bài */
.legal-box {
  margin: 36px 0 0;
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: 22px; background: #f8f9fb;
}

/* ---------- Trang chi tiết văn bản ---------- */

/* Cảnh báo hiệu lực - đặt ngay đầu bài để không ai bỏ lỡ */
.doc-alert {
  margin: 0 0 28px; padding: 14px 18px;
  border-radius: var(--radius-sm);
  font-size: 14.5px; line-height: 1.6;
}
.doc-alert--expired { background: #fdf0ef; border-left: 3px solid #b42318; color: #7a1c12; }
.doc-alert--pending { background: #fdf6e7; border-left: 3px solid #d4a72c; color: #614e1a; }

.doc-section-head {
  margin: 34px 0 14px;
  font-size: 20px; font-weight: 400; letter-spacing: -.4px; color: var(--navy);
  padding-bottom: 10px; border-bottom: 1px solid var(--line);
}
.doc-section-head:first-of-type { margin-top: 0; }

/* Bảng thông tin văn bản */
.doc-meta-table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.doc-meta-table th {
  width: 170px; text-align: left; font-weight: 400; color: var(--muted);
  padding: 11px 0; vertical-align: top;
  border-bottom: 1px solid var(--line-soft);
}
.doc-meta-table td {
  padding: 11px 0; color: var(--ink); vertical-align: top;
  border-bottom: 1px solid var(--line-soft);
}
.doc-meta-table tr:last-child th,
.doc-meta-table tr:last-child td { border-bottom: 0; }

/* Danh sách điểm thay đổi */
.doc-changes { margin: 0; padding-left: 0; list-style: none; counter-reset: chg; }
.doc-changes li {
  position: relative; padding: 10px 0 10px 32px;
  font-size: 15px; line-height: 1.65; color: var(--ink-2);
  border-bottom: 1px solid var(--line-soft);
}
.doc-changes li:last-child { border-bottom: 0; }
.doc-changes li::before {
  counter-increment: chg; content: counter(chg);
  position: absolute; left: 0; top: 12px;
  width: 20px; height: 20px; border-radius: var(--pill);
  background: var(--cream); color: var(--gold-text);
  font-size: 11px; display: flex; align-items: center; justify-content: center;
  font-feature-settings: 'tnum';
}

/* Khối tải bản gốc ở cột bên */
.download-box .card__body { padding: 16px 18px 18px; }
/* Nút tải: nhãn dài như "Xem bản gốc tại congbao.chinhphu.vn" sẽ xuống hai dòng.
   .btn dùng flex nên justify-content chỉ canh giữa cả khối chữ, không canh từng
   dòng — phải có text-align. Và line-height 1 của .btn làm hai dòng dính nhau. */
.download-box__btn {
  width: 100%; margin-bottom: 9px;
  text-align: center; line-height: 1.35;
}
.download-box__size { font-size: 12.5px; opacity: .8; }
.download-box__note {
  margin: 10px 0 0; font-size: 12.5px; line-height: 1.55; color: var(--muted);
}
/* Ngày tải xuống dòng riêng — span xếp chồng dọc phải khai display:block */
.download-box__ngay { display: block; margin-top: 5px; opacity: .85; }

/* ---------- Khối căn cứ pháp lý cuối bài ---------- */
.citations {
  margin: 40px 0 0;
  border: 1px solid var(--line); border-left: 3px solid var(--gold);
  border-radius: var(--radius);
  padding: 26px 28px; background: #f8f9fb;
}
.citations__head {
  margin: 0 0 8px;
  font-size: 12px; letter-spacing: 1.1px; text-transform: uppercase;
  color: var(--gold-text); font-weight: 600;
}
.citations__intro {
  margin: 0 0 18px;
  font-size: 13.5px; line-height: 1.6; color: var(--ink-3);
}
.citations__list {
  list-style: none; margin: 0; padding: 0;
  counter-reset: cite;
}
.citations__item {
  position: relative;
  padding: 14px 0 14px 30px;
  border-top: 1px solid var(--line);
}
.citations__item::before {
  counter-increment: cite; content: "[" counter(cite) "]";
  position: absolute; left: 0; top: 15px;
  font-size: 12px; color: var(--muted-2);
  font-feature-settings: 'tnum';
}
.citations__top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.citations__code {
  font-size: 14px; color: var(--gold-deep);
  font-feature-settings: 'tnum'; font-variant-numeric: tabular-nums;
}
.citations__code--plain { color: var(--ink-2); }
.citations__title {
  font-size: 14.5px; line-height: 1.5; color: var(--navy); margin-top: 4px;
}
.citations__note {
  font-size: 13px; line-height: 1.5; color: var(--ink-3); margin-top: 5px;
}
.citations__note--warn { color: #8a6a1f; }
.citations__foot {
  margin: 18px 0 0; padding-top: 16px;
  border-top: 1px solid var(--line);
  font-size: 13px; line-height: 1.6; color: var(--ink-3);
}

/* ---------- Mục lục ở cột bên ---------- */
.toc__list {
  list-style: none; margin: 0; padding: 14px 18px 18px;
  counter-reset: toc;
}
.toc__item { position: relative; padding: 7px 0 7px 26px; }
.toc__item::before {
  counter-increment: toc; content: counter(toc, decimal-leading-zero);
  position: absolute; left: 0; top: 8px;
  font-size: 11px; color: var(--muted-2);
  font-feature-settings: 'tnum';
}
.toc__item a {
  font-size: 13.5px; line-height: 1.5; color: var(--ink);
  display: block;
}
.toc__item a:hover { color: var(--navy-8); }
/* Đề mục cấp 3 thụt vào, không đánh số riêng */
.toc__item--h3 { padding-left: 40px; }
.toc__item--h3::before { content: ""; counter-increment: none; left: 26px; top: 15px; width: 8px; height: 1px; background: var(--line); }
.toc__item--h3 a { font-size: 13px; color: var(--ink-3); }
/* Đang xem mục nào thì làm nổi mục đó */
.toc__item.is-current > a { color: var(--gold-deep); }
.legal-box h3 { font-size: 11px; letter-spacing: 1.1px; color: var(--gold-text); text-transform: uppercase; margin-bottom: 12px; }

/* ---------- 17. Trang lưu trữ ---------- */
.page-header { border-bottom: 1px solid var(--line); padding-bottom: 22px; margin-bottom: 34px; }
.page-header h1 { font-size: 32px; font-weight: 300; letter-spacing: -1px; }
.page-header p { margin: 10px 0 0; font-size: 14.5px; color: var(--ink-3); }

/* Phân trang */
.pagination { display: flex; justify-content: center; gap: 6px; margin-top: 48px; flex-wrap: wrap; }
.pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 38px; height: 38px; padding: 0 12px;
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  font-size: 14px; color: var(--ink-2);
}
.pagination .page-numbers:hover { border-color: var(--gold); color: var(--gold-deep); }
.pagination .page-numbers.current { background: var(--navy); border-color: var(--navy); color: #fff; }

/* ---------- 18. Bảng tra cứu văn bản ---------- */
.doc-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 26px; }
.doc-table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.doc-table th {
  text-align: left; font-size: 11px; letter-spacing: 1px; text-transform: uppercase;
  color: var(--gold-text); border-bottom: 2px solid var(--navy); padding: 0 12px 12px;
  font-weight: 500;
}
.doc-table td { border-bottom: 1px solid var(--line); padding: 16px 12px; vertical-align: top; }
.doc-table tr:hover td { background: #fbfcfd; }
.doc-table__code { color: var(--gold-deep); font-feature-settings: 'tnum'; white-space: nowrap; }
.doc-table__title { color: var(--navy); }

/* ---------- 19. Footer ---------- */
/* Đệm dưới để chừa chỗ cho cặp nút liên hệ nổi.
   Nút neo theo đáy khung nhìn nên khi cuộn hết trang nó đè lên dải cuối chân
   trang — đã đo được "Chính sách bảo mật" bị che và không bấm được. Đệm này
   kết hợp với việc dồn dải cuối về bên trái (xem .footer__bottom) mới đủ. */
.site-footer { background: var(--navy-press); color: rgba(255,255,255,.6); font-size: 14px; padding-bottom: 72px; }
.site-footer a { color: rgba(255,255,255,.6); }
.site-footer a:hover { color: var(--gold); }
.footer__grid {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px;
  padding: 52px 0 40px;
}
.footer__col h3 {
  font-size: 11px; letter-spacing: 1.1px; color: var(--gold);
  text-transform: uppercase; margin-bottom: 16px;
}
.footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.footer__about { font-size: 14px; line-height: 1.7; color: rgba(255,255,255,.55); margin: 14px 0 0; max-width: 42ch; }
/* Dồn về bên trái thay vì space-between.
   Đẩy hai đầu ra sát mép thì cụm liên kết pháp lý nằm đúng góc phải dưới —
   chỗ nút liên hệ nổi chiếm. Dồn trái thì cả hai khối gói gọn trong khoảng
   960px bên trái, không bao giờ chạm vùng nút. */
.footer__bottom {
  border-top: 1px solid rgba(255,255,255,.1);
  padding: 16px 0 20px;
  display: flex; align-items: center; justify-content: flex-start; gap: 10px 28px; flex-wrap: wrap;
  font-size: 13px; color: rgba(255,255,255,.45);
}
.footer__copy { line-height: 1.5; }

/* Menu pháp lý: xếp ngang, ngăn nhau bằng vạch mảnh thay vì dấu chấm đầu dòng. */
.footer__legal {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: 6px 20px;
  list-style: none; margin: 0; padding: 0;
}
.footer__legal li { position: relative; }
.footer__legal li + li::before {
  content: ""; position: absolute; left: -10px; top: 50%;
  width: 1px; height: 11px; margin-top: -6px;
  background: rgba(255,255,255,.18);
}

/* ---------- 20. Nút nổi (hotline / Zalo) ---------- */
.floating { position: fixed; right: 20px; bottom: 20px; z-index: 50; display: flex; flex-direction: column; gap: 10px; align-items: flex-end; }
.floating a {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 18px; border-radius: var(--pill);
  font-size: 13.5px; box-shadow: 0 6px 20px rgba(10,31,61,.18);
}
.floating__icon { flex: none; display: block; }
.floating__phone { background: #fff; color: var(--navy); border: 1px solid var(--line); }
.floating__zalo { background: var(--gold); color: var(--navy); }
.floating__zalo:hover { background: var(--gold-deep); color: #fff; }

/* ---------- 21. Form ---------- */
.form-row { margin-bottom: 18px; }
.form-row label { display: block; font-size: 13px; color: var(--muted); margin-bottom: 7px; }
.form-row input[type="text"],
.form-row input[type="email"],
.form-row input[type="tel"],
.form-row select,
.form-row textarea {
  width: 100%; padding: 11px 14px;
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  font-size: 14.5px; color: var(--ink); background: #fff;
}
/* ----- Trang liên hệ và Contact Form 7 -----
   Contact Form 7 không kèm giao diện. Phần dưới cho form dùng chung ngôn ngữ
   với thiết kế của site, và gói form vào một tấm thẻ để cân với hai thẻ liên
   hệ ở cột phải — trước đây form nằm trần nên trông rời rạc. */

.contact-grid {
  display: grid; grid-template-columns: 1.75fr 1fr;
  gap: 40px; align-items: start; margin-top: 10px;
}
.contact-form { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 24px 26px 26px; }
.contact-form > h2:first-child { margin-top: 0; }
.contact-note { font-size: 14px; color: var(--muted); margin: 5px 0 18px; line-height: 1.55; }

/* wpautop chèn <br> vào giữa các dòng bên trong div của mình. Trong thẻ liên
   hệ chúng thành flex item cao 20px, đẩy thẻ từ 68px nội dung thật lên 170px.
   Ẩn đi, khoảng cách để cho gap quyết định. */
.contact-grid br, .contact-side br { display: none; }

/* Thẻ liên hệ nhanh ở cột phải */
.contact-side .contact-card {
  display: flex; flex-direction: column; gap: 3px;
  border: 1px solid var(--line); border-left: 3px solid var(--gold);
  border-radius: var(--radius); padding: 12px 15px; margin-bottom: 10px; background: #fff;
}
.contact-card__label { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.contact-card__value { font-size: 17px; color: var(--navy); text-decoration: none; line-height: 1.35; }
.contact-card__value:hover { color: var(--gold-deep); }
.contact-card__note { font-size: 12.5px; color: var(--muted); line-height: 1.45; }

/* Đề mục trong trang liên hệ không cần khoảng trên rộng như trong bài đọc */
.contact-side h2, .contact-form h2 { font-size: 21px; margin-top: 0; }
.contact-side > h2 { margin-top: 26px; }
.contact-side > h2:first-child { margin-top: 0; }
.contact-side ul { margin: 8px 0 0; padding-left: 18px; }
.contact-side li { margin-bottom: 6px; font-size: 14.5px; }
.contact-side p { font-size: 14.5px; margin-bottom: 0; }

/* Bố cục các ô nhập */
.cf7-hang { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.wpcf7 .cf7-o { margin-bottom: 13px; }
.wpcf7 .cf7-o label {
  display: block; font-size: 12.5px; font-weight: 500; color: var(--navy);
  margin-bottom: 6px; letter-spacing: .01em;
}
.wpcf7 .cf7-o label em { font-style: normal; color: var(--gold-deep); }
.wpcf7 .wpcf7-form-control-wrap { display: block; }

.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"],
.wpcf7 select, .wpcf7 textarea {
  width: 100%; padding: 11px 13px;
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  font-size: 14.5px; font-family: inherit; color: var(--ink); background: #fcfcfd;
  transition: border-color .15s, background .15s;
}
.wpcf7 textarea { min-height: 112px; resize: vertical; line-height: 1.55; }
.wpcf7 select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%); background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; padding-right: 38px; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { outline: none; border-color: var(--gold); background: #fff; }
.wpcf7 input::placeholder, .wpcf7 textarea::placeholder { color: #a7aeb9; }

/* Dãy nút gửi */
.cf7-day { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 16px; }
.wpcf7 input[type="submit"] {
  background: var(--navy); color: #fff; border: 0; cursor: pointer;
  padding: 13px 32px; border-radius: var(--pill); font-size: 15px; font-family: inherit;
}
.wpcf7 input[type="submit"]:hover { background: var(--navy-8); }
.cf7-day__note { font-size: 12.5px; color: var(--muted); }
.wpcf7 .wpcf7-spinner { margin: 0; }

/* Thông báo của Contact Form 7 */
.wpcf7 form .wpcf7-response-output {
  margin: 18px 0 0; padding: 12px 15px;
  border-width: 1px; border-radius: var(--radius-sm); font-size: 14px; line-height: 1.55;
}
.wpcf7 form.sent .wpcf7-response-output { border-color: #2f6f4f; background: #f1f8f4; color: #1f5237; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output { border-color: #a4472e; background: #fdf3f0; color: #8a3b26; }
.wpcf7 .wpcf7-not-valid-tip { color: #a4472e; font-size: 12.5px; margin-top: 5px; }
.wpcf7 .wpcf7-not-valid { border-color: #a4472e; background: #fffbfa; }

@media (max-width: 900px) {
  .contact-grid { grid-template-columns: 1fr; gap: 30px; }
  .contact-form { padding: 22px 20px 24px; }
  .cf7-hang { grid-template-columns: 1fr; gap: 0; }
}

.form-row textarea { min-height: 130px; resize: vertical; }
.form-row input:focus, .form-row select:focus, .form-row textarea:focus {
  outline: none; border-color: var(--gold);
}

/* ---------- 22. Đáp ứng màn hình nhỏ ---------- */
@media (max-width: 1080px) {
  .hero__grid { grid-template-columns: 1fr; gap: 34px; padding: 42px 0 46px; }
  .hero__title { font-size: 38px; }
  .main-grid { grid-template-columns: 1fr; gap: 44px; }
  .sidebar { position: static; }
  .docmap__grid { grid-template-columns: repeat(2, 1fr); }
  .tool-grid { grid-template-columns: 1fr; gap: 32px; }
  .cat-grid { grid-template-columns: 1fr; gap: 30px; }
  .footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .quicktools__grid { grid-template-columns: repeat(2, 1fr); }
  .quicktools__item:nth-child(2) { border-right: 0; }
  .quicktools__item:nth-child(1), .quicktools__item:nth-child(2) { border-bottom: 1px solid rgba(255,255,255,.08); }
}

@media (max-width: 782px) {
  /* Chừa chỗ cho thanh admin của WordPress */
  .site-header { top: 0; }

  .nav-toggle { display: inline-flex; margin-left: auto; }
  .nav {
    display: none; order: 10; width: 100%;
    margin: 0 0 2px; padding-top: 8px;
    border-top: 1px solid var(--line);
  }
  .nav.is-open { display: block; }
  .nav ul { flex-direction: column; align-items: stretch; gap: 0; }
  .nav a { display: block; padding: 12px 4px; border-radius: 0; }

  /* Có padding dưới, nếu không nút mở menu dính sát mép dưới của header.
     Khi menu mở, .nav là dòng thứ hai nên lề dưới của nó thu lại để tổng
     khoảng cách không bị cộng dồn thành quá rộng. */
  .site-header__inner { flex-wrap: wrap; padding-top: 12px; padding-bottom: 12px; min-height: 0; }
  .header-search { display: none; }

  /* Logo nhỏ lại trên điện thoại để còn chỗ cho nút menu. */
  .brand__img { height: 38px; }

  .topbar__note span { font-size: 12px; }
  .topbar__links .is-hide-sm { display: none; }

  .hero__title { font-size: 30px; letter-spacing: -1px; }
  .hero__grid { padding: 34px 0 38px; }

  .article-row { grid-template-columns: 92px 1fr; gap: 14px; }
  .article-tile { height: 92px; padding: 10px 12px; }
  .article-tile__code { font-size: 15px; }
  .article-tile__kicker { font-size: 9px; }
  .article-row__title { font-size: 17px; }
  .article-row__excerpt { display: none; }

  .docmap { padding: 26px 20px; }
  .docmap__grid { grid-template-columns: 1fr; }
  .docmap__title { font-size: 24px; }

  .tool-title { font-size: 26px; }
  .entry-title { font-size: 28px; }
  .section { padding: 40px 0; }
  main > .section:first-child { padding-top: 20px; }
  .footer__grid { grid-template-columns: 1fr; gap: 28px; padding: 40px 0 30px; }

  /* Ba mục pháp lý không đủ chỗ trên một dòng ở màn hình hẹp nên sẽ xuống dòng.
     Vạch ngăn đặt tuyệt đối lúc đó lơ lửng ở đầu dòng mới, phải bỏ đi. */
  .footer__bottom { justify-content: flex-start; padding: 14px 0 18px; }
  .footer__legal { gap: 4px 16px; }
  .footer__legal li + li::before { display: none; }

  .doc-table thead { display: none; }
  .doc-table tr { display: block; border-bottom: 1px solid var(--line); padding: 14px 0; }
  .doc-table td { display: block; border: 0; padding: 3px 0; }

  /* Trên điện thoại thu gọn còn nút tròn chỉ có biểu tượng. Chỉ ẩn nhãn chữ,
     biểu tượng SVG giữ nguyên — quy tắc cũ ẩn mọi span nên ẩn luôn cả biểu
     tượng, để lại hai nút tròn trống trơn. */
  .floating a span { display: none; }
  .floating a { padding: 0; width: 46px; height: 46px; justify-content: center; gap: 0; }

  /* Chữ và khoảng cách trong bài đọc trên điện thoại.
     Cỡ chữ 17px và các khoảng cách tính theo em vốn đặt cho màn hình rộng;
     giữ nguyên ở khổ ~390px thì chữ quá lớn, mỗi dòng chỉ còn hơn 30 ký tự
     và khoảng trên mỗi đề mục lên tới gần 47px. Thu lại theo tỷ lệ dưới đây,
     dòng chữ đạt khoảng 40 ký tự — vùng dễ đọc trên điện thoại. */
  :root { --gutter: 18px; }

  .entry-content { font-size: 16px; line-height: 1.7; }
  .entry-content > * + * { margin-top: 1.05em; }
  .entry-content h2 { font-size: 22px; margin-top: 1.25em; letter-spacing: -.4px; }
  .entry-content h3 { font-size: 18px; margin-top: 1.15em; letter-spacing: -.2px; }
  .entry-content ul, .entry-content ol { padding-left: 18px; }
  .entry-content li { margin-bottom: .4em; }
  .entry-content blockquote { margin: 1.3em 0; padding: 14px 16px; font-size: 15px; }
  .entry-content table { font-size: 14px; }
  .entry-content th, .entry-content td { padding: 8px 10px; }

  .entry-title { font-size: 25px; letter-spacing: -.6px; }
  .legal-box { padding: 18px; margin-top: 30px; }
}

/* ---------- 23. In ấn ---------- */
@media print {
  .topbar, .site-header, .ticker, .floating, .site-footer, .sidebar, .quicktools { display: none !important; }
  body { font-size: 12pt; color: #000; }
  .entry-content { max-width: none; }
}

/* ---------- 24. Giảm chuyển động ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Danh sach bai phan tich con lai duoi luoi the, tren trang van ban
   duoc nhieu bai dan (NĐ 212 co toi 67 bai). Dang gon de khong lan at luoi the. */
.vb-them {
  list-style: none; margin: 30px 0 0; padding: 22px 0 0;
  border-top: 1px solid var(--line);
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 10px 34px;
}
.vb-them li { display: flex; gap: 10px; font-size: 14px; line-height: 1.5; }
.vb-them li::before {
  content: ""; flex: none; width: 5px; height: 5px; margin-top: 8px;
  background: var(--gold); border-radius: 50%;
}
.vb-them a { color: var(--ink-2); text-decoration: none; }
.vb-them a:hover { color: var(--navy-soft); text-decoration: underline; }
@media (max-width: 860px) {
  .vb-them { grid-template-columns: 1fr; gap: 12px; }
}

/* ---------- Tin Sở: hub tin chứng chỉ hành nghề 34 tỉnh ---------- */

/* Bản hẹp cho trang đọc một tin — dài dòng chữ khoảng 70 ký tự cho dễ đọc. */
.wrap--hep { max-width: 760px; }

.page-header__dan { margin-top: 12px; font-size: 14px; color: var(--ink-3); }
.page-header__dan a { color: var(--navy-soft); }

/* .chip vốn viết cho <button>; ở đây dùng <a> nên phải bỏ gạch chân và canh giữa. */
a.chip { display: inline-flex; align-items: center; gap: 7px; text-decoration: none; }
.chip__dem {
  font-size: 11px; line-height: 1; padding: 3px 6px; border-radius: 999px;
  background: var(--line-soft); color: var(--muted);
}
a.chip.is-on .chip__dem { background: rgba(255,255,255,.18); color: #fff; }

.tin-loc { display: flex; flex-direction: column; gap: 14px; margin-bottom: 30px; }
.tin-loc__hang { display: flex; align-items: flex-start; gap: 14px; }
.tin-loc__nhan {
  flex: none; width: 86px; padding-top: 9px;
  font-size: 11px; letter-spacing: 1.1px; text-transform: uppercase; color: var(--gold-text);
}
.tin-loc__chips { display: flex; flex-wrap: wrap; gap: 8px; }

.tin-ds { display: flex; flex-direction: column; }
.tin-the { padding: 22px 0; border-bottom: 1px solid var(--line); }
.tin-the:first-child { padding-top: 0; }

.tin-the__dau, .tin-don__dau { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.tin-the__tinh {
  font-size: 11px; letter-spacing: 1px; text-transform: uppercase;
  color: var(--gold-text); text-decoration: none;
  padding: 4px 10px; border: 1px solid #e7d6ae; border-radius: var(--pill); background: var(--cream-soft);
}
.tin-the__tinh:hover { border-color: var(--gold); }
.tin-the__ngay { font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; }
/* Ngày ghi nhận, không phải ngày Sở đăng — phải nhìn ra được là khác. */
.tin-the__ngay--uoc { font-style: italic; color: var(--muted-2); }

.tin-the__tieu-de { font-size: 19px; font-weight: 400; line-height: 1.4; margin: 0; }
.tin-the__tieu-de a { color: var(--ink); text-decoration: none; }
.tin-the__tieu-de a:hover { color: var(--navy-soft); }
.tin-the__so-hieu { margin: 7px 0 0; font-size: 13px; color: var(--gold-text); }
.tin-the__yeu { margin: 9px 0 0; font-size: 14.5px; line-height: 1.6; color: var(--ink-3); }

.tin-rong { padding: 40px 0; text-align: center; color: var(--muted); font-size: 14.5px; }

.tin-don__so-hieu { margin: 10px 0 0; font-size: 14px; color: var(--gold-text); }

/* Khối nguồn: đặt TRƯỚC thân bài để người đọc biết ngay đây là tin của cơ quan nào. */
.tin-nguon {
  border-left: 3px solid var(--gold); background: var(--cream-soft);
  padding: 16px 20px; margin-bottom: 30px;
}
.tin-nguon__nhan {
  margin: 0 0 6px; font-size: 11px; letter-spacing: 1.1px;
  text-transform: uppercase; color: var(--gold-text);
}
.tin-nguon__than { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--ink-2); }
.tin-nguon__than a { color: var(--navy-soft); }
.tin-nguon__luu { margin: 10px 0 0; font-size: 13.5px; line-height: 1.55; color: var(--ink-3); }

.tin-tiep { margin-top: 40px; padding-top: 22px; border-top: 1px solid var(--line); }
.tin-tiep__nhan {
  margin: 0 0 10px; font-size: 11px; letter-spacing: 1.1px;
  text-transform: uppercase; color: var(--gold-text);
}
.tin-tiep ul { margin: 0; padding-left: 18px; }
.tin-tiep li { font-size: 14.5px; line-height: 1.8; color: var(--ink-3); }
.tin-tiep a { color: var(--navy-soft); }

@media (max-width: 860px) {
  .tin-loc__hang { flex-direction: column; gap: 8px; }
  .tin-loc__nhan { width: auto; padding-top: 0; }
  .tin-the__tieu-de { font-size: 17px; }
}

/* Nguyên văn thông báo của Sở.
   Phải nhìn ra ngay đây là chữ của cơ quan nhà nước, không phải chữ của site —
   nếu người đọc nhầm hai thứ thì thành sai lệch thông tin. Nền, viền và nhãn
   "Nguyên văn" đánh dấu rõ phạm vi trích dẫn. */
.tin-don .entry-content blockquote {
  position: relative;
  margin: 26px 0;
  padding: 40px 26px 22px;
  background: #fbfaf6;
  border: 1px solid #e6dcc4;
  border-left: 3px solid var(--gold);
  border-radius: 4px;
  font-style: normal;
  color: var(--ink-2);
}
.tin-don .entry-content blockquote::before {
  content: "Nguyên văn từ cơ quan ban hành";
  position: absolute; top: 0; left: 0;
  padding: 7px 14px;
  font-size: 10.5px; letter-spacing: 1.1px; text-transform: uppercase;
  color: var(--gold-text); background: #f3ecd9;
  border-radius: 4px 0 4px 0;
}
.tin-don .entry-content blockquote p { margin: 0 0 12px; }
.tin-don .entry-content blockquote p:last-child { margin-bottom: 0; }

@media (max-width: 600px) {
  .tin-don .entry-content blockquote { padding: 38px 16px 18px; }
}

/* Khối tin mới chèn trong bài tỉnh — nối bài hướng dẫn với dòng tin của Sở. */
.tin-trong-bai {
  margin: 34px 0; padding: 20px 22px;
  background: var(--cream-soft); border: 1px solid #eadfc6; border-radius: 6px;
}
.tin-trong-bai__nhan {
  margin: 0 0 12px; font-size: 11px; letter-spacing: 1.1px;
  text-transform: uppercase; color: var(--gold-text);
}
.tin-trong-bai ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 9px; }
.tin-trong-bai li { display: flex; gap: 12px; font-size: 14.5px; line-height: 1.5; }
.tin-trong-bai__ngay {
  flex: none; width: 86px; color: var(--muted);
  font-size: 13px; font-variant-numeric: tabular-nums;
}
.tin-trong-bai a { color: var(--navy-soft); text-decoration: none; }
.tin-trong-bai a:hover { text-decoration: underline; }
.tin-trong-bai__them { display: inline-block; margin-top: 14px; font-size: 13.5px; }
@media (max-width: 600px) {
  .tin-trong-bai li { flex-direction: column; gap: 2px; }
  .tin-trong-bai__ngay { width: auto; }
}

/* Khối cập nhật tình trạng ở đầu tin Sở — thứ người đọc cần biết trước tiên
   ("đã mở lại chưa?"), nên đặt trên cùng và đánh dấu khác khối nguyên văn. */
.tin-capnhat {
  margin: 0 0 26px; padding: 16px 20px;
  background: #f4f7fb; border: 1px solid #d6e0ee; border-left: 3px solid var(--navy-soft);
  border-radius: 4px;
}
.tin-capnhat p { margin: 0 0 10px; font-size: 14.5px; line-height: 1.65; color: var(--ink-2); }
.tin-capnhat p:last-child { margin-bottom: 0; font-size: 13.5px; color: var(--ink-3); }
