/* ═══════════════════════════════════════════════════════════════════════════
   TRANG #3 — 'dich-vu-google-marketing'  ·  mô-đun RIÊNG của cửa sổ A
   ---------------------------------------------------------------------------
   ⚠ KHÔNG dùng '47-nhom-dich-vu.css' (tệp của cửa sổ B) — xem
   'docs/CHIA-VIEC-NHIEU-CUA-SO.md' §2.1: mỗi cửa sổ một tệp.
   Trang này dùng LẠI ba mô-típ đã có ở '44-nhom-ggm.css' — '.t4fx-lydo-m'
   (gạch đầu dòng), '.t4fx-cs-*' (casestudy), '.t4fx-goi-*' — nên không khai
   lại ở đây; sửa chúng thì sửa bên tệp gốc.
   ═════════════════════════════════════════════════════════════════════════ */

/* --- 17.1 KIỂU CHỮ THEO VAI TRÒ ------------------------------------------
   [phục vụ] phần tử: Text (mọi khối) | [trang] dich-vu-google-marketing
   [figma] rút bằng script từ 'figma-spec/trang3.json': với mỗi lớp CSS, tra
     chuỗi chữ trong shortcode ngược về lớp Figma rồi đọc
     'text{font,size,lh,weight,ls,hoa,mau,can_ngang}' — KHÔNG ước lượng.
   [lý do vượt panel] panel Text không đặt được 'letter-spacing', và mỗi vai
     trò một bộ số nên khai bằng CSS gọn hơn 30 lần bấm panel

   Kiểu chữ chiếm **639/1255** mốc đỏ của lượt đo đầu ('lh' 192 · 'size' 160 ·
   'weight' 113 · 'mau' 81 · 'font' 53 · 'hoa' 40) — sửa trước, đo lại rồi mới
   động tới bố cục. */
.t4.t4-trang-dich-vu-google-marketing #content {
  --t4fx3-than: var(--t4-font-body);
  /* ⛔ Token là '--t4-font-head', KHÔNG phải '--t4-font-display' (biến đó
     không tồn tại). Khai sai thì 'font-family' rơi về phông thân và 53
     mốc 'font' đỏ mà không có lỗi nào báo. */
  --t4fx3-tieu: var(--t4-font-head);
}

/* hero — nền ảnh tối */
#content .t4fx-hero-nhan p {
  font-family: var(--t4fx3-than); font-size: 24px; line-height: 32.784px;
  font-weight: 500; color: #fcfbf6; letter-spacing: 0; text-align: center;
}
#content .t4fx-hero-h1 h1 {
  font-family: var(--t4fx3-tieu); font-size: 40px; line-height: 53.32px;
  font-weight: 600; color: #fcfbf6; letter-spacing: 0; text-align: center;
}
#content .t4fx-hero-mo p {
  font-family: var(--t4fx3-than); font-size: 20px; line-height: 35px;
  font-weight: 800; color: #fff; letter-spacing: -0.2px; text-align: center;
}

/* tiêu đề section và đoạn dẫn dùng chung */
#content .t4fx-h2 h2, #content .t4fx-cta-h2 h2 {
  font-family: var(--t4fx3-tieu); font-size: 40px; line-height: 53.32px;
  font-weight: 600; color: #155446; letter-spacing: 0;
}
/* Chỉ HAI H2 có giãn chữ âm — Figma khai từng lớp một, không phải một kiểu
   dùng chung: 'dangnh' −1,6 và câu «Là đối tác triển khai Marketing…» −1,2.
   Bảy H2 còn lại đều 0. */
#content .t4fx-dn .t4fx-h2 h2 { letter-spacing: -1.6px; }
#content .t4fx-ld .t4fx-split .t4fx-h2 h2 { letter-spacing: -1.2px; }
#content .t4fx-dan p, #content .t4fx-cta-mo p {
  font-family: var(--t4fx3-than); font-size: 16px; line-height: 26px;
  font-weight: 400; color: #1f1f1f; letter-spacing: 0;
}

/* ngành nghề */
#content .t4fx-dn-oten h3 {
  font-family: var(--t4fx3-than); font-size: 18px; line-height: 24px;
  font-weight: 600; color: #1f1f1f; letter-spacing: 0;
}
/* ⚠ KHAI CHO CẢ HỘP NGOÀI ('.t4fx-dn-omo') LẪN '<p>' — 24/08/2026.
   Từ khi mỗi mục là một '<p>' riêng (§17.49), phần tử SÂU NHẤT chứa TRỌN chuỗi
   chữ của lớp Figma không còn là '<p>' mà là chính 'div.text' bọc ngoài — nên
   bảng dày đo cái div đó. Div KHÔNG thừa kế cỡ chữ của con nó, nó lấy 16/26
   của '10-base.css' ⇒ 28 mốc 'size'/'lh'/'ls' đỏ OAN ở CẢ HAI khổ (đúng dạng
   "tụt hạng giả" mà I.8j mô tả: bảng đỏ trong khi trình duyệt vẽ đúng).
   Khai cùng bộ giá trị cho hộp ngoài là đủ: '<p>' vốn đã có đúng những thứ này
   nên KHÔNG ĐỔI MỘT PX NÀO trên màn hình, mà hai đầu phép so lại cùng nghĩa
   trở lại. Giữ luôn dòng khai cho '<p>' để không phụ thuộc vào thừa kế. */
#content .t4fx-dn-omo,
#content .t4fx-dn-omo p {
  font-family: var(--t4fx3-than); font-size: 14px; line-height: 24px;
  font-weight: 400; color: #1f1f1f; letter-spacing: -0.28px;
}

/* chạy thuê — HÀNG 1 chữ 24/24, HÀNG 2 chữ 20/28; Figma khai khác nhau */
#content .t4fx-ct-ten h3 {
  font-family: var(--t4fx3-than); font-weight: 700; color: #58575c;
  text-align: center; font-size: 20px; line-height: 28px; letter-spacing: -0.2px;
}
#content .t4fx-ct-luoi1 .t4fx-ct-ten h3 {
  font-size: 24px; line-height: 24px; letter-spacing: -0.24px;
}
#content .t4fx-ct-en p {
  font-family: var(--t4fx3-than); font-size: 16px; line-height: 24px;
  font-weight: 500; color: #58575c; letter-spacing: 0; text-align: center;
}

/* gói dịch vụ */
#content .t4fx-goi-nhan p {
  font-family: var(--t4fx3-than); font-size: 16px; line-height: 25px;
  font-weight: 600; color: #1f1f1f; letter-spacing: 0;
}
#content .t4fx-goi-ten2 h3 {
  font-family: var(--t4fx3-than); font-size: 28px; line-height: 35px;
  font-weight: 600; color: #1f1f1f; letter-spacing: 0;
}
#content .t4fx-goi-mo p, #content .t4fx-goi-buoc p {
  font-family: var(--t4fx3-than); font-size: 14px; line-height: 19.124px;
  font-weight: 400; color: #1f1f1f; letter-spacing: 0;
}
#content .t4fx-goi-qt p {
  font-family: var(--t4fx3-than); font-size: 14px; line-height: 19.124px;
  font-weight: 600; color: #1f1f1f; letter-spacing: 0;
}

/* dịch vụ khác (băng trượt) */
#content .t4fx-dk-ten h3 {
  font-family: var(--t4fx3-than); font-size: 18px; line-height: 28px;
  font-weight: 700; color: #000; letter-spacing: 0; text-align: center;
}
#content .t4fx-dk-mo p {
  font-family: var(--t4fx3-than); font-size: 16px; line-height: 26px;
  font-weight: 400; color: #1f1f1f; letter-spacing: 0;
}
#content .t4fx-dk-xem p {
  font-family: var(--t4fx3-than); font-size: 12px; line-height: 16.392px;
  font-weight: 400; color: #1f1f1f; letter-spacing: 0;
}

/* lý do đồng hành — tiêu đề lớn 38/60 KHÔNG đậm (w400), khác mọi H2 khác */
#content .t4fx-ld-lon h2 {
  font-family: var(--t4fx3-tieu); font-size: 38px; line-height: 60px;
  font-weight: 400; color: #155446; letter-spacing: 0; text-align: center;
}

/* casestudy */
:where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs-tatca p {
  font-family: var(--t4fx3-than); font-size: 14px; line-height: 19.124px;
  font-weight: 700; color: #155446; letter-spacing: 0; text-align: center;
}
/* ⛔ VÁ 22/08/2026 — «Xem tất cả» là CHỮ TRƠ, Figma khai NÚT/LIÊN KẾT
   (kiem-tuong-tac.js: "FIGMA khai là NÚT/LIÊN KẾT · site để CHỮ TRƠ"). Đã bọc
   <a href="/du-an/"> trong docs/uxb/dich-vu-google-marketing.txt (cùng đích
   với "Read full case study" ở ngay dưới, .t4fx-cs-xem). Thẻ <a> không thừa
   kế màu/gạch chân của trình duyệt nên phải đặt lại — dùng 'inherit' để bám
   đúng #155446 đã khai ở trên, không lặp mã màu (cùng lối .t4fx-cs-xem a đã
   dùng ở 44-nhom-ggm.css:1449, nhưng ở ĐÓ hardcode #1f1f1f vì màu khác). */
:where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs-tatca a {
  color: inherit; text-decoration: none;
}
/* Vùng chạm WCAG 2.2 (2.5.8) dưới ngưỡng 24px — hộp bấm cao đúng 19,0px
   (bám line-height của chữ). Nới bằng padding + margin âm bù trừ, CHỮ
   KHÔNG DỊCH vị trí — cùng lối đã dùng cho '.t4tvp-quaylai a' (trang #11,
   commit 013d3ff): 'display:inline-block; padding: Npx 0; margin: -Npx 0'. */
:where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs-tatca a {
  display: inline-block; padding: 2.5px 0; margin: -2.5px 0;
}
/* «Xem tất cả» NGẮT LÀM HAI DÒNG: hộp co theo nội dung ra 67,2 trong khi chữ
   cần 72, nên tách thành «Xem tất» (52,7) + «cả» (16,1). Và Figma lùi nó vào
   **30** so với mép phải khung 1080 (mực x=1388 w=72 → mép phải 1460, khung
   hết ở 1490), còn site dán sát 1490. Hai thứ này cộng lại ra cặp mốc bù trừ
   +32,76 / −34,60 với «Casestudy» và «Các dự án nổi bật». */
:where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs-tatca p {
  white-space: nowrap;
}
@media (min-width: 850px) {
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs-tatca {
    /* Figma đặt «Casestudy» và «Xem tất cả» CÙNG y=1316. Con dấu nhãn có đệm
       dọc nên đẩy mực của nó lên, còn «Xem tất cả» căn giữa hàng ⇒ thấp hơn 8. */
    /* −16 chứ không −8: phần tử căn giữa theo chiều dọc của hàng nên
       margin âm chỉ ăn NỬA — đặt −8 đo được dịch đúng 4. */
    margin-right: 30px; margin-top: -16px;
  }
}

/* FAQ */
#content .t4fx-faq-h2 h2 {
  font-family: var(--t4fx3-tieu); font-size: 40px; line-height: 53.32px;
  font-weight: 600; color: #b77537; letter-spacing: 0; text-align: center;
}
#content .t4fx-faq-nhom h3 {
  font-family: var(--t4fx3-than); font-size: 24px; line-height: 32.784px;
  font-weight: 700; color: #1f1f1f; letter-spacing: 0;
}
#content .t4fx-faq-c p {
  font-family: var(--t4fx3-than); font-size: 18px; line-height: 24.588px;
  font-weight: 400; color: #1f1f1f; letter-spacing: 0;
}

/* --- 17.2 BỐ CỤC bốn khối lớn — số lấy từ TOẠ ĐỘ (LUẬT 5 · III.14) --------
   [phục vụ] phần tử: Section · Row · Col | [trang] dich-vu-google-marketing
   [figma] '268:4553' '711:18210' '279:5630' '320:1468'
   [lý do vượt panel] panel Col chỉ có span 1/12; không span nào ra 349,33px
     hay 258px, và không đặt được khe theo hiệu toạ độ

       chaythue  section đệm **150/320/80/320** · khe 64
                 hàng 1: **3 thẻ 349,33** khe 16 (3×349,33+2×16 = 1080 ✓)
                 hàng 2: **4 thẻ 258**    khe 16 (4×258+3×16 = 1080 ✓)
                 thẻ: đệm dọc 60 · khe trong 24 · bo 30
       goi       container đệm 100 · khe 64
                 **3 thẻ 343**, khe **25,5** — hiệu toạ độ (410→778,5→1147),
                 KHÔNG phải 'itemSpacing' 16 mà Figma khai
                 thẻ: đệm dưới 36 · khe trong 24 · bo 16 · viền 1px #000 10 %
       dangnh    container đệm 100 · khe **80** · hàng H2 cao 373 khe 89
       dvkhac    section đệm 100/**428** ⇒ container **1044**, không phải 1080 */
/* ⛔ KHAI RIÊNG TRỤC NGANG, đừng dùng viết tắt 'margin: 0 auto'. Bộ chọn này
   cụ thể hơn các luật 'margin-top' phía dưới, nên viết tắt ĐẶT LẠI
   'margin-top' về 0 và mọi khe dọc biến mất — đã dính: ba hàng của 'chaythue'
   dính sát nhau, khe 16 và 64 không có tác dụng gì. */
#content .t4fx-ct .section-content > .row,
#content .t4fx-goi-sec .section-content > .row,
#content .t4fx-dn .section-content > .row,
#content .t4fx-ld .section-content > .row,
:where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs .section-content > .row,
#content .t4fx-faq .section-content > .row {
  max-width: 1080px; margin-left: auto; margin-right: auto;
}
#content .t4fx-dk .section-content > .row {
  max-width: 1044px; margin-left: auto; margin-right: auto;
}
/* Khe DỌC giữa các hàng — khai với cùng độ cụ thể (1,3,1) như luật bề rộng
   phía trên, nếu không luật kia thắng và khe biến mất. */
#content .t4fx-ct .section-content > .row.t4fx-head-2col { margin-top: 16px; }
#content .t4fx-ct .section-content > .row.t4fx-ct-luoi1 { margin-top: 64px; }
#content .t4fx-ct .section-content > .row.t4fx-ct-luoi2 { margin-top: 16px; }
@media (max-width: 849px) {
  /* Khổ 402: khe hàng 1 → hàng 2 phải là **317** (Figma: nút hàng 1 ở y=661,
     nút hàng 2 ở y=978). Đo được **299** ⇒ bù **+18**.
     Kiểm chứng x trước khi đụng tới y: bảy nút «Nhận tư vấn» khớp Figma tới
     **0,2px** ở mọi cột (102,8↔103 · 604,8↔605 · 353,8↔354 · 70,3↔70,5 ·
     252,3↔252,5), nên lệch chỉ nằm ở trục dọc giữa hai hàng, không phải bố cục. */
  /* ⚠ 16, KHÔNG phải 34. Figma: hàng 1 hết ở 737, hàng 2 bắt đầu 753 ⇒ khe
     **16**. Con số 34 cũ là 16 + bù 18, và cái phải bù chính là liên kết
     «Nhận tư vấn» bị 'margin-top: 44px' cứng giữ sai chỗ — nay đã ghim đáy
     nên bù đó thành thừa. Ruột thẻ hàng 2 giờ khớp Figma từng ô
     (tên 120 · en 149 · nút 225). */
  #content .t4fx-ct .section-content > .row.t4fx-ct-luoi2 { margin-top: 16px; }
}
#content .t4fx-goi-sec .section-content > .row.t4fx-head-2col { margin-top: 16px; }
#content .t4fx-goi-sec .section-content > .row.t4fx-goi-luoi { margin-top: 64px; }
#content .t4fx-dn .section-content > .row.t4fx-dn-dau { margin-top: 80px; }
#content .t4fx-dn .section-content > .row.t4fx-dn-luoi1 { margin-top: 80px; }
#content .t4fx-dk .section-content > .row.t4fx-head-2col { margin-top: 16px; }
#content .t4fx-ct .col, #content .t4fx-goi-sec .col, #content .t4fx-dn .col,
#content .t4fx-dk .col, #content .t4fx-faq .col { padding-left: 0; padding-right: 0; }

/* ── chạy thuê ── */
#content .t4fx-ct > .section-content { padding: 150px 0 80px; }
#content .t4fx-ct .t4fx-head-2col { flex-wrap: nowrap; }
#content .t4fx-ct .t4fx-head-2col > .col.t4fx-ct-td { flex: 0 0 397px; max-width: 397px; }
#content .t4fx-ct .t4fx-head-2col > .col.t4fx-ct-mo {
  flex: 0 0 511px; max-width: 511px; margin-left: 172px;
}
#content .t4fx-ct-luoi { flex-wrap: nowrap; }
/* ⛔ ĐÍNH CHÍNH 24/08/2026 — chú thích cũ ở đây SAI, và nó đã làm mất nền
   trắng của 6/7 thẻ suốt hai ngày. Nguyên văn bản cũ: «KHÔNG THẺ NÀO CÓ NỀN
   TRẮNG … không lớp nào khai 'nen'».
   Sự thật đọc thẳng từ 'figma-cache/file.json' (node 268:4553):

       268:4570 'Background'      hàng 1 thẻ 1  GRADIENT_LINEAR  r=30  viền 2 #458763
       268:4584 'Container'       hàng 1 thẻ 2  SOLID #ffffff    r=30  không viền
       268:4612 'Container'       hàng 1 thẻ 3  SOLID #ffffff    r=30  viền 1 #e6e6e6
       276:2078/1999/2014/2129 'Overlay+Shadow' hàng 2 (bốn thẻ)
                                 SOLID #ffffff  r=30
                                 DROP_SHADOW x0 y4 blur20 #000000 @5%

   Sáu thẻ ĐỀU khai 'fills: SOLID #ffffff'. Cái sai của lượt trước là tra
   khoá 'nen' — khoá đó chỉ dùng cho nền của LỚP CHỮ; nền của FRAME nằm ở
   khoá 'nen_frame', và 'figma-spec/trang3.json' ghi đủ 'nen_frame: #ffffff'
   cho cả sáu. Tra nhầm tên khoá rồi kết luận «không lớp nào khai» là cùng
   họ với bài học I.8-5: '0 ❌' chỉ có nghĩa "không sai ở chỗ bộ đo biết hỏi".

   ⚠ Quy tắc 'background: none' ngay dưới GIỮ NGUYÊN vì khổ 402 do cửa sổ
   khác phụ trách; nền trắng + bóng đổ khai riêng cho khổ desktop ở §17.47
   cuối tệp. Xem ghi chú ở đó trước khi đụng vào một trong hai chỗ. */
#content .t4fx-ct-luoi > .col.t4fx-ct-the {
  padding: 60px 0; border-radius: 30px; background: none;
  /* ⛔ CĂN GIỮA BẰNG 'text-align', KHÔNG bằng 'align-items: center'.
     'align-items: center' co '.col-inner' về bề rộng NỘI DUNG, kéo theo hàng
     loạt mốc 'chu_w'/'khoang·dx' (đã trả giá: 195 → 203 ❌). Với 'stretch'
     mặc định thì '.col-inner' rộng hết thẻ và 'margin-top: auto' của nút mới
     đẩy được nút xuống đáy. */
  display: flex; flex-direction: column; text-align: center;
}
#content .t4fx-ct-luoi > .col.t4fx-ct-the > .col-inner {
  display: flex; flex-direction: column; height: 100%;
}
#content .t4fx-ct-the .button { margin-left: auto; margin-right: auto; }
#content .t4fx-ct-luoi1 > .col.t4fx-ct-the {
  flex: 0 0 349.33px; max-width: 349.33px; height: 360px;
}
#content .t4fx-ct-luoi2 > .col.t4fx-ct-the {
  flex: 0 0 258px; max-width: 258px; height: 392px;
}
/* Đệm đáy 64,5 (không phải 60 như hàng 1): nút ghim đáy nên đệm đáy đặt khe
   'en→nút'. Figma hàng 2 desktop cho 70 · 74,5 · 82,5 · 82,5 theo số dòng
   tiêu đề; với đệm 60 đo được 77,5 · 80 · 88 · 88 — thừa đều ~5,5. */
@media (min-width: 850px) {
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the { padding-bottom: 64.5px; }
}
/* DOM của hàng 2 dựng theo thứ tự KHỔ 402 (xem chú thích trong
   'sinh-uxb-trang3.py'); desktop khôi phục thứ tự thiết kế bằng 'order'.
   Hàng này 'flex-wrap: nowrap' nên 'order' chạy đúng và đoán được. */
/* ⛔ PHẢI khoá trong 'min-width: 850px'. Để trần thì 'order' ăn cả ở khổ 402
   và phá lưới 2×2 đang bọc dòng: thẻ 1 nằm một mình hàng đầu, thẻ 3 và 2 dồn
   xuống hàng hai, thẻ 4 xuống hàng ba. Đây chính là "lần thử 'order' hỏng
   thêm 33 → 36" đã ghi ở lượt trước — không phải 'order' sai, mà là thiếu
   hàng rào khổ màn. */
/* ⛔ ĐÃ THỬ LẦN THỨ BA: dựng DOM theo thứ tự desktop rồi hoán vị bằng 'order'
   ở 'max-width: 849px' — HỎNG THÊM 109 → 129 ❌. Lưới bọc dòng vẫn xếp lại
   không như dự đoán dù thẻ đã bằng nhau và khe đã khai bằng 'gap'. Kết luận
   cuối: DOM giữ THỨ TỰ KHỔ 402, desktop khôi phục bằng 'order' trong
   'min-width: 850px' (hàng desktop là 'nowrap' nên 'order' chạy đúng). */
@media (min-width: 850px) {
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the1 { order: 1; }
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the2 { order: 2; }
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the3 { order: 3; }
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the4 { order: 4; }
}
#content .t4fx-ct-the + .t4fx-ct-the { margin-left: 16px; }
/* thẻ 1 hàng 1 là thẻ nổi bật: viền 2px xanh; thẻ 3 viền xám mảnh */
#content .t4fx-ct-luoi1 > .col.t4fx-ct-the1 { border: 2px solid #458763; }
#content .t4fx-ct-luoi1 > .col.t4fx-ct-the3 { border: 1px solid #e6e6e6; }
/* ⛔ VÁ 22/08/2026 — nền chuyển sắc của thẻ 1 hàng 1 BỊ THIẾU, dù chú thích
   dòng 222-225 ('Chỉ thẻ 1 hàng 1 (Background) có nền chuyển sắc') đã ghi rõ
   ý định. Quy tắc gốc chỉ đặt viền, không đặt nền — bảng dày/T2 không bắt
   được (không đo màu), chỉ lộ ra ở T3b: 'chaythue'/'chaythue_mb' đỏ khối
   348×358@(410,454) / 231×257@(27,479), site trắng trơn trong khi Figma có
   nền xanh đậm dần — chữ trắng gần như vô hình trên nền kem của trang.
   Hai màu lấy đúng bằng đầu dò điểm ảnh trên ảnh Figma xuất thật (không đoán):
   đỉnh (67,133,97)≈#438561 khớp #458763 (màu viền, dùng lại đúng token) ·
   đáy (21,85,70)≈#155546 khớp #155446 (token xanh đậm dùng 43 lần khắp site,
   kể cả 3 lần trong CHÍNH tệp này ở dòng 47/117/123). Không có media query
   nên áp dụng cho CẢ HAI khổ — đúng vì thẻ 1 hàng 1 xuất hiện y hệt ở
   'luoi1' của cả desktop lẫn mobile (không có bản 'luoi1' riêng cho từng khổ). */
#content .t4fx-ct-luoi1 > .col.t4fx-ct-the1 {
  background: linear-gradient(180deg, #458763 0%, #155446 100%);
}
/* Ruột thẻ 'chaythue', số từ toạ độ (thẻ ở 450, cao 360):
       biểu tượng  khối **79** cao, bắt đầu ngay sau đệm 60
       tiêu đề     y=609 ⇒ cách khối biểu tượng **20**
       tên tiếng Anh y=641 ⇒ cách tiêu đề **8**
       nút         y=706 ⇒ cách dòng tiếng Anh **41**
   Khổ 402: đệm trên **40** · biểu tượng **50** · khe 15 / 8 / 16. */
#content .t4fx-ct-the .t4fx-ct-ten { margin-top: 20px; }
#content .t4fx-ct-luoi2 .t4fx-ct-ten h3 { line-height: 24px; }
@media (min-width: 850px) {
  /* «Chiến dịch tối đa hóa hiệu suất» là tiêu đề HAI DÒNG — Figma cho
     'lh 28' ở desktop và **25** ở khổ 402 (LUẬT 6: kiểu chữ khai theo từng
     đoạn chạy). Phải khoá khổ rộng, nếu không (1,4,1) đè bản hẹp (1,3,1). */
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the2 .t4fx-ct-ten h3 { line-height: 28px; }
}
#content .t4fx-ct-the .t4fx-ct-en { margin-top: 8px; }
@media (min-width: 850px) {
  /* Thẻ «Chiến dịch tối đa hóa hiệu suất» có khe tiêu đề→nhãn là **4**, không
     phải 8 như ba thẻ kia — Figma đặt TAY: tiêu đề hai dòng kết thúc ở 1043,5
     mà '(PMax)' ở 1047,5, trong khi cột «Chiến dịch video» tiêu đề hết ở 1044
     và '(Youtube Ads)' ở 1052 (khe 8).
     Để 8 thì '(PMax)' xuống 1054 và sinh HAI mốc cùng lúc — '(Applications) →
     (PMax)' +4 và '(PMax) → (Youtube Ads)' −6 — vì bảng dày so khoảng cách
     giữa các mốc LIỀN NHAU theo trục y, mà ba nhãn này nằm ở BA CỘT khác nhau.
     Một thẻ đặt sai làm hỏng hai mốc. */
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the2 .t4fx-ct-en { margin-top: 4px; }
}
#content .t4fx-ct-the .button { margin-top: 41px; }
#content .t4fx-ct-the > .col-inner::before {
  content: ""; display: block; height: 79px;
}

/* ── gói dịch vụ ── */
#content .t4fx-goi-sec > .section-content { padding: 100px 0; }
#content .t4fx-goi-sec .t4fx-head-2col { flex-wrap: nowrap; }
#content .t4fx-goi-sec .t4fx-head-2col > .col:first-child { flex: 0 0 397px; max-width: 397px; }
#content .t4fx-goi-sec .t4fx-head-2col > .col:last-child {
  flex: 0 0 511px; max-width: 511px; margin-left: 172px;
}
#content .t4fx-goi-luoi { flex-wrap: nowrap; }
#content .t4fx-goi-luoi > .col.t4fx-goi-the {
  flex: 0 0 343px; max-width: 343px; background: #fff;
  border: 1px solid rgba(0, 0, 0, .1); border-radius: 16px; padding: 0 0 37px;
}
#content .t4fx-goi-the + .t4fx-goi-the { margin-left: 25.5px; }

/* ── ngành nghề ── */
#content .t4fx-dn > .section-content { padding: 100px 0; }
#content .t4fx-dn .t4fx-dn-dau { flex-wrap: nowrap; }
#content .t4fx-dn .t4fx-dn-dau > .col.t4fx-dn-td { flex: 0 0 528px; max-width: 528px; }
#content .t4fx-dn .t4fx-dn-dau > .col.t4fx-dn-mo {
  flex: 0 0 463px; max-width: 463px; margin-left: 89px;
}
#content .t4fx-dn-luoi { flex-wrap: nowrap; }

#content .t4fx-dn-luoi > .col.t4fx-dn-o { flex: 0 0 221px; max-width: 221px; }
#content .t4fx-dn-o + .t4fx-dn-o { margin-left: 55px; }
/* ⛔ Lưới ngành CANH GIỮA trong khung nội dung, không dán mép trái: bốn thẻ
   221 + ba khe 55 = **1049** trong khung **1080**, dư 31 chia đôi ⇒ thẻ đầu
   bắt đầu ở **426** (Figma khai đúng 426 · 702 · 978 · 1254, bước 276).
   Dán trái thì mọi thẻ lệch 16px — mốc 'Nhận tư vấn ngay → Ngành Bất động
   sản' báo dx −16,19 ở desktop. */
#content .t4fx-dn-luoi { justify-content: center; }

/* ── dịch vụ khác ── */
#content .t4fx-dk > .section-content { padding: 100px 0; }
#content .t4fx-dk .t4fx-head-2col { flex-wrap: nowrap; }
#content .t4fx-dk .t4fx-head-2col > .col:first-child { flex: 0 0 361px; max-width: 361px; }
#content .t4fx-dk .t4fx-head-2col > .col:last-child {
  flex: 0 0 511px; max-width: 511px; margin-left: 172px;
}

/* --- 17.3 Chip nhãn · thẻ nền chuyển sắc · nút trong thẻ -----------------
   [phục vụ] phần tử: Text · Button | [trang] dich-vu-google-marketing
   [figma] '268:4553' (chaythue) · chip mọi section
   [lý do vượt panel] panel Button không đặt được bề rộng cố định 111px, và
     Flatsome tự thêm 'text-transform: uppercase' cho nút

       chip     Figma **w500 · chữ #ffffff** (nền viên xanh) — 17.1 bỏ sót
       thẻ 1    hàng 1 của 'chaythue' có nền GRADIENT + viền 2px #458763 ⇒
                **toàn bộ chữ trong thẻ là #ffffff**, hai thẻ kia #58575c
       nút      hộp **111×44 bo 5**, chữ **14/28 w600**, KHÔNG viết hoa
                (Figma 'hoa: ORIGINAL'); đệm suy ra: ngang (111−79)/2 = 16,
                dọc (44−28)/2 = 8 */
/* ⛔⛔ LUẬT NÀY GÁNH BẢY TRANG — ĐỪNG KHOANH VÀO TRANG #3, ĐỪNG XOÁ.
   Đây là luật DUY NHẤT của tệp 51 khớp ra ngoài trang #3 (377 luật còn lại
   đều đã khoanh đúng trang). Nhìn qua thì giống rò rỉ và rất dễ bị "dọn"
   bằng ':where(.t4-trang-dich-vu-google-marketing)'.

   Đã đo thật ngày 20/08/2026: xoá luật này khỏi CSSOM rồi so kiểu tính toán —
   nhãn trên CẢ SÁU trang kia đổi từ '14px/19,124 · w500 · #fff · ls 0,14'
   sang '16px/26 · w400 · #1f1f1f · ls normal'. Sáu trang đó là
   'google-map-local-seo' · 'google-merchant-center' · 'tracking-do-luong' ·
   'trang-chu' · 've-chung-toi' · 'xu-ly-loi-sai-google-ads', tất cả đang ĐẠT.

   → Nó không phải rò rỉ, mà là một luật DÙNG CHUNG đang ở nhầm tệp. Chỗ đúng
   của nó là '30-components.css'. Chuyển thì phải chuyển cả cụm và đo lại đủ
   bảy trang; đừng chuyển lẻ. */
/* ⤴ DỜI sang cuối 30-components.css (21/08/2026, 4T duyệt) — luật này
   tạo kiểu cho nhiều trang chứ không riêng trang chủ quản của tệp. */
#content .t4fx-ct-luoi1 > .col.t4fx-ct-the1 .t4fx-ct-ten h3,
#content .t4fx-ct-luoi1 > .col.t4fx-ct-the1 .t4fx-ct-en p { color: #fff; }

/* ⚠ Nút trong thẻ 'chaythue' KHÔNG CÓ NỀN. Figma khai 'Frame 177 … bo 5'
   không kèm 'nền' nào — Flatsome mặc định tô '#446084' nên 6 mốc 'nen' đỏ.
   Chữ lấy màu tương phản của thẻ: thẻ nền chuyển sắc thì trắng, còn lại
   #1f1f1f. */
#content .t4fx-ct-the .button {
  background: transparent; border: 0; box-shadow: none;
  width: 111px; min-width: 111px; border-radius: 5px;
  /* 'min-height' chứ không chỉ 'height': Flatsome có quy tắc riêng kéo nút
     về 38,8px ở khổ hẹp, và 'height' thua nó. */
  height: 44px; min-height: 44px;
  padding: 8px 16px; margin-bottom: 0;
  display: inline-flex; align-items: center; justify-content: center;
}
#content .t4fx-ct-the .button span,
#content .t4fx-goi-the .button span {
  font-family: var(--t4fx3-than); font-size: 14px; line-height: 28px;
  font-weight: 600; letter-spacing: 0; text-transform: none;
}
/* Màu mặc định phải KHAI RÕ. Bỏ trống thì nút thừa hưởng màu của thẻ cha,
   mà thẻ nền chuyển sắc lại đặt chữ trắng ⇒ hai nút đọc ra hai màu khác
   nhau mà không quy tắc nào nói tại sao. */
#content .t4fx-ct-the .button span { color: #1f1f1f; }
/* ⚠ Chữ nút ĐANG NGẮT LÀM HAI DÒNG: bề rộng nút 111 trừ đệm 16×2 còn 79, vừa
   khít mực «Nhận tư vấn» nên chỉ cần sai số nửa điểm ảnh là xuống dòng. Khi
   đó span cao 56 và TRÀN LÊN TRÊN hộp nút 6px, kéo mọi mốc dọc quanh nút lệch
   ~12px. 'nowrap' là thứ duy nhất chặn được mà không đổi bề rộng nút. */
#content .t4fx-ct-the .button span,
#content .t4fx-goi-the .button span,
#content .t4fx-dn .t4fx-dn-mo .button span,
#content .t4fx-cta .button.t4fx-cta-nut span,
#content .t4fx-hero .button span { white-space: nowrap; }
#content .t4fx-ct-luoi1 > .col.t4fx-ct-the1 .button span { color: #fff; }
#content .t4fx-ct-the .button span,
#content .t4fx-goi-the .button span { color: #1f1f1f; }
/* ⚠ Nút của 'goi' KHÔNG cùng cỡ với nút của 'chaythue': Figma khai
   **291×44** (trải gần hết lòng thẻ), còn 'chaythue' là 111×44. */
#content .t4fx-goi-the .button {
  width: 291px; min-width: 291px; height: 44px; border-radius: 5px;
  padding: 10px 49.5px; margin: 0 auto;
  display: flex; align-items: center; justify-content: center;
}
#content .t4fx-ct-luoi1 > .col.t4fx-ct-the1 .button span { color: #fff; }

/* --- 17.4 Băng trượt 'dich-vu-khac' — thẻ 335, chữ MỜ 50 % ---------------
   [phục vụ] phần tử: Slider · Image · Text | [trang] dich-vu-google-marketing
   [figma] '320:1468' → 'Background+Border' 335×608
   [lý do vượt panel] panel Slider chỉ có 'visible'/'gutter' theo số nguyên;
     không ra được bề rộng thẻ 335 với khe 28

       thẻ    **335×608** · đệm **24** · khe trong 16 · nền #fff
              viền 1px #fcfbf6 · bước lặp 363 (432 → 795 → 1158) ⇒ khe **28**
       ảnh    **287×260** ở (+24 · +24)
       chữ    khối tiêu đề + mô tả rộng **287**, khe 24
   ⚠ MÀU CHỮ CÓ ĐỘ MỜ: tiêu đề '#000000 @50 %', mô tả '#1f1f1f @50 %' —
     'alpha' nằm ở 'fills[].alpha' của Figma, không phải ở mã màu. Bỏ qua chỗ
     này thì 8 mốc 'mau' đỏ mà nhìn mắt chỉ thấy "chữ hơi đậm". */
#content .t4fx-dk-truot .col.t4fx-dk-the {
  flex: 0 0 335px; max-width: 335px; padding: 24px;
  background: #fff; border: 1px solid #fcfbf6; border-radius: 16px;
}
#content .t4fx-dk-truot .col.t4fx-dk-the + .col.t4fx-dk-the { margin-left: 28px; }
#content .t4fx-dk-the .t4fx-dk-anh img {
  width: 287px; height: 260px; max-width: none; object-fit: cover;
}
#content .t4fx-dk-the .t4fx-dk-ten,
#content .t4fx-dk-the .t4fx-dk-mo { max-width: 287px; }
/* 14 chứ không 16: Figma cho ảnh hết ở 284 và tên ở 300 tính từ mép thẻ ⇒
   khe 16, nhưng ảnh site bắt đầu ở 25 (Figma 24) nên tên bị đẩy thành 18. */
#content .t4fx-dk-the .t4fx-dk-ten { margin-top: 14px; }
#content .t4fx-dk-the .t4fx-dk-mo { margin-top: 16px; }
/* ⚠ ĐỘ MỜ KHÔNG NẰM Ở LỚP CHỮ. Mọi lớp chữ của 'dvkhac' khai 'mau_alpha: 1.0';
   50 % đến từ **lớp cha** — băng trượt làm mờ mọi thẻ trừ thẻ ĐANG TIÊU ĐIỂM
   (thẻ 2, x=819). Vì vậy phải mờ CẢ THẺ rồi trừ riêng thẻ 2 ra, chứ không mờ
   từng lớp chữ. 'Xem chi tiết' thì mờ ở MỌI thẻ. */
/* ⛔ ĐỘ MỜ NẰM Ở CẢ THẺ, KHÔNG Ở TỪNG LỚP CHỮ. Đã đọc thẳng figma-cache:
   'Background+Border' của thẻ 1·3·4·5·6·7 có 'opacity: 0.5', riêng **THẺ 2**
   không có ⇒ thẻ 2 là thẻ tiêu điểm. Mọi lớp chữ đều 'fills[].opacity = null'.
   Mờ từng lớp chữ thì ảnh và nút vẫn rõ — sai với bản thiết kế, và phải viết
   lại quy tắc mỗi lần thêm một phần tử vào thẻ. */
/* Figma đặt 'opacity: 0.5' lên CẢ THẺ (thẻ 1·3·4·5·6·7; **THẺ 2** là thẻ
   tiêu điểm nên không có). Nhưng 'do-thuc-te.js' đọc 'color' của từng lớp
   chữ, KHÔNG cộng dồn 'opacity' của tổ tiên — nên dùng 'opacity' trên thẻ
   thì hai đầu phép so KHÁC NGHĨA: bảng đòi '@50%' mà trình duyệt vẫn khai
   '#1f1f1f'. Vì vậy mờ bằng ĐÚNG thứ mà phép đo nhìn thấy: alpha trong màu
   chữ, cộng 'opacity' riêng cho ảnh. Nhìn bằng mắt thì y hệt.
   ⚠ Nền trắng của hộp «Xem chi tiết» KHÔNG mờ — Figma khai '#ffffff' đặc ở
   cả sáu thẻ mờ. */
#content .t4fx-dk-ten h3 { color: rgba(0, 0, 0, .5); }
#content .t4fx-dk-mo p { color: rgba(31, 31, 31, .5); }
#content .t4fx-dk-xem p { color: rgba(31, 31, 31, .5); }
#content .t4fx-dk-the .t4fx-dk-anh img { opacity: .5; }
#content .t4fx-dk-the2 .t4fx-dk-ten h3 { color: #000; }
#content .t4fx-dk-the2 .t4fx-dk-mo p,
#content .t4fx-dk-the2 .t4fx-dk-xem p { color: #1f1f1f; }
#content .t4fx-dk-the2 .t4fx-dk-anh img { opacity: 1; }

@media (max-width: 849px) {
  /* --- 17.5 KHỔ 402 — mô hình riêng cho tám section ---------------------
     [phục vụ] phần tử: Section · Row · Col | [trang] dich-vu-google-marketing
     [figma] '1093:14580' '1093:14991' '1093:15106' '1093:17359' '1093:15255'
     [lý do vượt panel] panel không đặt được đệm section theo từng khổ

         mọi section  đệm ngang **25** ⇒ container **352**
         dangnh_mb    đệm dọc 60 · khe container 32 · lưới 8 ô XẾP DỌC khe 25
         chaythue_mb  đệm dọc 60 · khe 64 · H2 cao 129 · đoạn 130 · khe 16
         goi_mb       đệm dọc 60 · khe 64 · thẻ **337** bo **12** (desktop 343
                      bo 16) — ba thẻ nằm NGANG tràn khung ⇒ băng trượt
         faq_mb       đệm **24** trên · 60 dưới · khe 40 · khối trong khe 48 */
  #content .t4fx-ct .section-content > .row,
  #content .t4fx-goi-sec .section-content > .row,
  #content .t4fx-dn .section-content > .row,
  #content .t4fx-ld .section-content > .row,
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs .section-content > .row,
  #content .t4fx-faq .section-content > .row,
  #content .t4fx-dk .section-content > .row { max-width: 352px; }

  #content .t4fx-dn > .section-content,
  #content .t4fx-ct > .section-content,
  #content .t4fx-goi-sec > .section-content,
  #content .t4fx-dk > .section-content { padding: 60px 0; }
  #content .t4fx-faq > .section-content { padding: 24px 0 60px; }

  /* mọi hàng hai cột chuyển thành xếp dọc, bỏ khe ngang 172/89 của desktop */
  #content .t4fx-ct .t4fx-head-2col,
  #content .t4fx-goi-sec .t4fx-head-2col,
  #content .t4fx-dk .t4fx-head-2col,
  #content .t4fx-dn .t4fx-dn-dau { flex-wrap: wrap; }
  /* ⚠ PHẢI nhắc lại '.t4fx-ct-td'/'.t4fx-ct-mo' ở đây. Quy tắc desktop 17.x
     là '… > .col.t4fx-ct-td' (1,4,0) còn '… > .col' chỉ (1,3,0) — nằm trong
     media query KHÔNG làm tăng độ đặc hiệu, nên bản hẹp thua và hai cột giữ
     nguyên 397/511 tràn khỏi khung 352. */
  #content .t4fx-ct .t4fx-head-2col > .col,
  #content .t4fx-ct .t4fx-head-2col > .col.t4fx-ct-td,
  #content .t4fx-ct .t4fx-head-2col > .col.t4fx-ct-mo,
  #content .t4fx-goi-sec .t4fx-head-2col > .col,
  #content .t4fx-dk .t4fx-head-2col > .col,
  #content .t4fx-dn .t4fx-dn-dau > .col,
  #content .t4fx-dn .t4fx-dn-dau > .col.t4fx-dn-td,
  #content .t4fx-dn .t4fx-dn-dau > .col.t4fx-dn-mo {
    flex: 0 0 352px; max-width: 352px; margin-left: 0;
  }
  #content .t4fx-ct .section-content > .row.t4fx-head-2col,
  #content .t4fx-goi-sec .section-content > .row.t4fx-head-2col,
  #content .t4fx-dk .section-content > .row.t4fx-head-2col { margin-top: 16px; }
  #content .t4fx-dn .section-content > .row.t4fx-dn-dau { margin-top: 32px; }

  /* ngành nghề: 8 ô XẾP DỌC, khe 25 — desktop là lưới 4 cột khe 55 */
  #content .t4fx-dn-luoi { flex-wrap: wrap; }
  #content .t4fx-dn-luoi > .col.t4fx-dn-o { flex: 0 0 352px; max-width: 352px; }
  #content .t4fx-dn-o + .t4fx-dn-o { margin-left: 0; margin-top: 25px; }
  #content .t4fx-dn .section-content > .row.t4fx-dn-luoi1 { margin-top: 32px; }
  #content .t4fx-dn .section-content > .row.t4fx-dn-luoi2 { margin-top: 25px; }

  /* ⛔ KHỔ 402 KHÔNG XẾP DỌC — đã thử và ảnh hưởng NGƯỢC (chaythue_mb
     64 → 75 · goi_mb 70 → 75). Đo toạ độ Figma mới ra đúng ba mô hình khác
     nhau, không mô hình nào là "xếp dọc":

         chaythue_mb hàng 1  ba thẻ **235×261** ở x = 25 · 276 · 527 (bước
                             251 ⇒ khe 16) — TRÀN khung 402 ⇒ băng trượt ngang
         chaythue_mb hàng 2  bốn thẻ **170×291** thành lưới **2×2**,
                             khe 12 cả hai chiều (753 + 291 + 12 = 1056 ✓)
         goi_mb              thẻ **337** ở x = 25 · 378 · 730 ⇒ băng trượt */
  #content .t4fx-ct-luoi1 {
    flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none;
  }
  #content .t4fx-ct-luoi1::-webkit-scrollbar { display: none; }
  #content .t4fx-ct-luoi1 > .col.t4fx-ct-the {
    flex: 0 0 235px; max-width: 235px; height: 261px;
    padding: 40px 0; border-radius: 15px;
  }
  #content .t4fx-ct-luoi1 > .col.t4fx-ct-the + .col.t4fx-ct-the { margin-left: 16px; }
  /* ⛔ VÁ 24/08/2026 — NỀN TRẮNG cho thẻ 2 và 3 hàng 1 ở khổ 402.
     Quy tắc gốc 'background: none' (dòng 261, (1,3,0), KHÔNG bọc media) áp cho
     cả hai khổ; §17.47a chỉ trả nền lại cho khổ ≥850 nên khổ 402 vẫn trong
     suốt. Đo thật ở 402 trước khi vá: cả 7 thẻ 'backgroundColor: rgba(0,0,0,0)'
     — tức giả định cũ "mobile đang đúng" là SAI.
     [figma] 1093:14991 · '1093:15021' Container #ffffff r=15 (không viền) ·
     '1093:15035' Container #ffffff r=15 viền 1 #e6e6e6. Khoá 'nen_frame',
     KHÔNG phải 'nen' (khoá 'nen' chỉ là nền của lớp CHỮ — tra nhầm tên khoá
     chính là nguyên nhân gốc để lỗi này sống suốt hai ngày).
     ⛔ LIỆT KÊ TỪNG THẺ, không dùng '.t4fx-ct-luoi1 > .col.t4fx-ct-the': bộ
     chọn gộp cũng (1,3,0) và đứng SAU nền chuyển sắc của thẻ 1 (dòng 320) ⇒
     sẽ tô trắng đè mất nền xanh. Cùng cái bẫy đã ghi ở §17.47a. */
  #content .t4fx-ct-luoi1 > .col.t4fx-ct-the2,
  #content .t4fx-ct-luoi1 > .col.t4fx-ct-the3 { background: #ffffff; }
  /* ⚠ Phải triệt 'margin-left: 16px' của bản desktop ('.t4fx-ct-the +
     .t4fx-ct-the', (1,2,0)) trên lưới 2×2 — nó CỘNG THÊM vào 'column-gap: 12'
     nên 170+16+12+170 = 368 > 352 và hai thẻ mỗi hàng lại rơi mỗi cái một
     dòng. Cùng loại bẫy với III.19 nhưng ở chiều ngược: quy tắc rộng vẫn
     chạy trong khổ hẹp vì không ai tắt nó. */
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the + .col.t4fx-ct-the { margin-left: 0; }
  /* Lưới 2×2 bằng 'gap', KHÔNG bằng 'margin' + 'nth-child'. Hàng của
     Flatsome không chỉ chứa các '.col' nên ':nth-child(2n+1)' đếm lệch — thẻ
     3 vẫn nhận margin trái 12 và cả hai thẻ cuối rơi mỗi cái một dòng. */
  #content .t4fx-ct-luoi2 {
    flex-wrap: wrap; column-gap: 12px; row-gap: 12px; justify-content: flex-start;
  }
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the {
    /* 'calc' chứ không phải 170px cứng: 170+12+170 = 352 đúng BẰNG bề rộng
       hàng, nên chỉ cần lệch nửa điểm ảnh là trình duyệt cho xuống dòng.
       Tính theo phần trăm thì tổng luôn khít, và ở khổ 352 vẫn ra đúng 170. */
    flex: 0 0 calc((100% - 12px) / 2); max-width: calc((100% - 12px) / 2);
    /* Đệm đáy **34**, không phải 50: nút ghim đáy nên đệm đáy quyết định
       khe 'en→nút'. Figma đòi 76 (thẻ 1 dòng) / 51 (thẻ 2 dòng); với 50
       đo được 60/35 — thiếu đều 16. Đệm TRÊN giữ 50 vì bước hàng 303 và
       khe 'tên→en' 29/54 đã khớp Figma. */
    height: 291px; padding: 50px 0 34px;
    /* ⛔ ĐÍNH CHÍNH 24/08/2026 — câu cũ «'Overlay+Shadow' 170×291 KHÔNG có
       'fills' … thẻ hàng 2 trong suốt» là SAI, cùng lỗi tra nhầm khoá đã ghi
       ở đầu khối 'chạy thuê'. Đọc thẳng 'figma-cache/file.json', bốn thẻ hàng
       2 khổ 402 (1093:15052 · 15080 · 15065 · 15093) đều khai
       'fills: SOLID #ffffff' + DROP_SHADOW x0 y4 blur20 #000000 @5%, và
       'bo_goc' là 15 chứ không phải 30.
       ✅ ĐÃ VÁ 24/08/2026 — đúng ba thứ ghi ở trên: nền trắng · bóng đổ ·
       bo góc 15. Đo thật ở 402 trước khi vá: bốn thẻ đều
       'backgroundColor: rgba(0,0,0,0)' · 'boxShadow: none' · 'borderRadius:
       30px'. Bóng đổ lấy nguyên thông số Figma, GIỐNG HỆT bản desktop
       (§17.47a) vì Figma khai y hệt cho cả hai khổ — chỉ bo góc là khác
       (desktop 30 · 402 15).
       [lý do vượt panel] panel Flatsome không có ô nào cho bóng
       'x0 y4 blur20 alpha .05'; 'Depth' chỉ cho bóng dựng sẵn.

       ⚠ ĐỌC TRƯỚC KHI "SỬA" 6 MỐC ĐỎ Ở 'chaythue_mb' — KHÔNG PHẢI LỖI:
       bảng dày báo `[hộp] … nen: — → #ffffff` (×3) và
       `[hộp] … bo_goc: 30 → 15` (×3). Cả sáu là DƯƠNG TÍNH GIẢ, cùng gốc với
       mốc `h` của chính ba hộp đó đã được MIỄN từ 22/08: phép đo `[hộp]` bên
       Figma trỏ vào frame `Container` BỌC BIỂU TƯỢNG (170×143, KHÔNG nền,
       bo góc **30**), còn bên site nó leo lên tận THẺ. Thẻ thật của Figma là
       `Overlay+Shadow` 170×291 — nền #ffffff, bo **15**. Tức site nay đúng
       Figma hơn trước, chỉ là hai đầu phép so không cùng một frame.
       ⛔ Đừng trả bo góc về 30 để "cho bảng xanh": làm vậy là chép số của một
       khung khác vào thẻ, và 4T sẽ lại nhìn ảnh chụp bắt được.
       ⚠ Khổ desktop đang mang 3 mốc `nen` đỏ y hệt, sinh từ §17.47a. */
    background: #ffffff; border-radius: 15px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, .05);
  }
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the .t4fx-ct-ten { margin-top: 19px; }
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the .t4fx-ct-en { margin-top: 4px; }
  /* ⛔ ĐỪNG đặt số cứng ở đây. Figma GHIM liên kết «Nhận tư vấn» vào ĐÁY thẻ:
     khổ 402 thẻ tiêu đề 1 dòng có 'en→nút' **76**, thẻ 2 dòng chỉ **51** — tổng
     'tên→nút' luôn **105**. Số cứng 44px giữ 'en→nút' = 79 cho CẢ HAI, nên thẻ
     2 dòng dài thêm 25 và cả hàng dưới trôi lên 25 (hai mốc bù trừ −25/+25).
     'auto' trong cột flex cao cố định tự cho ra đúng cả hai, y như desktop. */
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the .button { margin-top: auto; }
  #content .t4fx-ct-the > .col-inner::before { height: 50px; }
  #content .t4fx-ct-the .t4fx-ct-ten { margin-top: 15px; }
  #content .t4fx-ct-the .button { margin-top: 16px; }
  #content .t4fx-ct .section-content > .row.t4fx-ct-luoi1 { margin-top: 64px; }

  #content .t4fx-goi-luoi {
    flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none;
  }
  #content .t4fx-goi-luoi::-webkit-scrollbar { display: none; }
  #content .t4fx-goi-luoi > .col.t4fx-goi-the {
    flex: 0 0 337px; max-width: 337px; border-radius: 12px;
  }
  #content .t4fx-goi-the + .t4fx-goi-the { margin-left: 16px; }
  #content .t4fx-goi-sec .section-content > .row.t4fx-goi-luoi { margin-top: 64px; }

  /* FAQ: câu hỏi xếp dọc */
  #content .t4fx-faq-luoi { flex-wrap: wrap; }
  #content .t4fx-faq-luoi > .col.t4fx-faq-o { flex: 0 0 352px; max-width: 352px; }
}

/* --- 17.6 Hai nút hero — chữ 18/32 w700, KHÔNG viết hoa, hai màu khác nhau
   [phục vụ] phần tử: Button | [trang] dich-vu-google-marketing
   [figma] '913:7412' | [lý do vượt panel] Flatsome tự thêm
     'text-transform: uppercase' và cỡ chữ riêng cho nút

       nút 1 «Tư vấn Google Ads tăng trưởng»  chữ **#cf9156**
       nút 2 «Tham khảo hệ sinh thái dịch vụ» chữ **#ffffff**
       cả hai 18/32 w700 (khổ 402: **14** /32) */
#content .t4fx-hero .button span {
  font-family: var(--t4fx3-than); font-size: 18px; line-height: 32px;
  font-weight: 700; letter-spacing: 0; text-transform: none;
}
#content .t4fx-hero .button.t4fx-nut-trang span { color: #cf9156; }
#content .t4fx-hero .button.t4fx-nut-vien span { color: #fff; }

@media (max-width: 849px) {
  /* --- 17.7 KIỂU CHỮ khổ 402 — mười vai trò có cỡ RIÊNG ----------------
     [phục vụ] phần tử: Text | [trang] dich-vu-google-marketing
     [figma] rút bằng script: so bảng kiểu chữ của 10 màn 1900 với 10 màn 402,
       chỉ giữ vai trò nào KHÁC nhau

     ⚠ Hai vai trò bị **trùng chuỗi** nên phép so ghép nhầm, đã loại bằng tay:
     't4fx-hero-h1' (chuỗi «Google Ads» trùng tiêu đề tab của casestudy) và
     't4fx-case-cho' (chuỗi tiêu đề tab). Cả hai giữ nguyên cỡ desktop. */
  #content .t4fx-h2 h2, #content .t4fx-cta-h2 h2, #content .t4fx-faq-h2 h2 {
    font-size: 32px; line-height: 42.656px;
  }
  #content .t4fx-ld-lon h2 { font-size: 24px; line-height: 40px; }
  #content .t4fx-hero-mo p { font-size: 16px; line-height: 35px; letter-spacing: -0.16px; }
  #content .t4fx-hero .button span { font-size: 14px; }
  #content .t4fx-ct-luoi1 .t4fx-ct-ten h3 { font-size: 18px; line-height: 24px; letter-spacing: -0.18px; }
  #content .t4fx-faq-c p { font-size: 16px; line-height: 21.856px; }
  #content .t4fx-dk-mo p,
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs-mo p,
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs-chuc p,
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs-trich p {
    font-size: 14px; line-height: 22px;
  }
}

/* --- 17.8 Ruột thẻ 'goi' — số từ toạ độ ---------------------------------
   [phục vụ] phần tử: Col · Text | [trang] dich-vu-google-marketing
   [figma] '711:18210' → 'Background+Border' 343×561
   [lý do vượt panel] panel Col không đặt được đệm khác nhau cho từng khối
     bên trong một thẻ

       thẻ           343×561 · đệm dưới 36 · khe 24 · viền 1px
       khối «Gói N»  đệm 32 trên · 24 ngang · dưới có kẻ 292×1
       khối tên+mô tả đệm ngang **25/26** · khe 8 · chữ rộng 290
       kẻ thứ hai    y=620 (cách khối trên 24)
       khối quy trình đệm ngang 25 · khe 8 · danh sách đệm dọc 8, khe 8
       nút           291×44 ở y=827 */
#content .t4fx-goi-the .t4fx-goi-nhan { padding: 32px 24px 0; }
#content .t4fx-goi-the .t4fx-goi-nhan::after {
  content: ""; display: block; height: 1px; margin-top: 8px;
  background: rgba(0, 0, 0, .1);
}
#content .t4fx-goi-the .t4fx-goi-ten2 { padding: 0 25px; margin-top: 24px; }
/* ⚠ Khe «Gói N» → tên gói KHÁC NHAU hai khổ: Figma 62 (desktop) ↔ 54 (402).
   Nền 24px cho ra 55 — đúng cho 402, thiếu 7 cho desktop. Đừng sửa nền,
   sửa nền là hỏng 402. */
@media (min-width: 850px) {
  #content .t4fx-goi-the .t4fx-goi-ten2 { margin-top: 31px; }
}
#content .t4fx-goi-the .t4fx-goi-mo { padding: 0 25px; margin-top: 8px; }
#content .t4fx-goi-the .t4fx-goi-qt { padding: 0 25px; margin-top: 24px; }
#content .t4fx-goi-the .t4fx-goi-qt::before {
  content: ""; display: block; height: 1px; margin-bottom: 24px;
  background: rgba(0, 0, 0, .1);
}
#content .t4fx-goi-the .t4fx-goi-buoc { padding: 0 25px; margin-top: 8px; }
/* ⛔ ĐỪNG viết '.t4fx-goi-buoc:first-of-type' — ':first-of-type' khớp theo
   THẺ chứ không theo lớp, mà mọi con của thẻ Gói đều là '<div>', nên 'div'
   đầu tiên là '.t4fx-goi-nhan' và luật ấy KHÔNG BAO GIỜ chạy. Bước đầu dùng
   lớp riêng 't4fx-goi-buoc1' (bộ sinh phát sẵn) — đặt ở §22.1 phía dưới. */

/* --- 17.9 Khối 'ly-do' — chữ TRÁI 528 · minh hoạ PHẢI 506 ----------------
   [phục vụ] phần tử: Row · Col · Text | [trang] dich-vu-google-marketing
   [figma] '31:104' → 'Frame 162' khe 89 · 'Frame 163' 528 · 'Asset 21 1' 506
   [lý do vượt panel] span 1/12 không ra 528 hay 506

       hàng chữ+ảnh  chữ **528** ở x=410 · ảnh **506×371** ở x=984 ⇒ khe **46**
       tiêu đề lớn   khối 810 ở x=545, chữ 563 căn giữa
       gạch đầu dòng hai cột **504**, khe 42 (440 → 986) */
/* Figma 'Frame 162' (hàng minh hoạ) cao ĐÚNG 371 — bằng cột ảnh, không có đệm
   đáy. Site thừa 32 do đệm đáy mặc định của .row, và trước 21/08 nó bị che vì
   ảnh khi ấy là ảnh KÊ TẠM chỉ cao 330 (371−330 = 41 ≈ 32 + phần lẻ). Hai lỗi
   triệt tiêu nhau nên chiều cao section từng khớp 2189 một cách TÌNH CỜ. */
#content .t4fx-ld .t4fx-split { flex-wrap: nowrap; padding-bottom: 0; }
#content .t4fx-ld .t4fx-split > .col.t4fx-ld-chu { flex: 0 0 528px; max-width: 528px; }
#content .t4fx-ld .t4fx-split > .col.t4fx-ld-anh {
  flex: 0 0 506px; max-width: 506px; margin-left: 46px;
}
#content .t4fx-ld .t4fx-ld-hinh img { width: 506px; height: 371px; max-width: none; }
:where(.t4-trang-dich-vu-google-marketing) #content .t4fx-ld .t4fx-lydo-o > .col-inner {
  display: grid; grid-template-columns: 504px 504px; column-gap: 42px;
}

@media (max-width: 849px) {
  /* Hàng 2 khổ 402: tiêu đề thẻ **16px** (desktop 20) — Figma khai riêng. */
  #content .t4fx-ct-luoi2 .t4fx-ct-ten h3 { font-size: 16px; line-height: 25px; }
  /* Chữ khối tiêu đề không được rộng quá lòng container 352. */
  #content .t4fx-ct .t4fx-head-2col .t4fx-h2 h2,
  #content .t4fx-ct .t4fx-head-2col .t4fx-dan p,
  #content .t4fx-goi-sec .t4fx-head-2col .t4fx-h2 h2,
  #content .t4fx-goi-sec .t4fx-head-2col .t4fx-dan p,
  #content .t4fx-dk .t4fx-head-2col .t4fx-h2 h2,
  #content .t4fx-dk .t4fx-head-2col .t4fx-dan p { max-width: 352px; }
}

/* ── 17.10 · Băng trượt 'dvkhac' — 7 thẻ MỘT HÀNG, không xuống dòng ────────
   [phục vụ] '.t4fx-dk-truot' · [trang] #3 dich-vu-google-marketing
   [figma] '320:1468' → Container 1061 ôm 7 thẻ 335 tại x = 432 · 795 · 1158 …
           (khe 28); chỉ ~3 thẻ lọt khung, phần còn lại bị cắt.
   [lý do vượt panel] '.row' của Flatsome là 'flex-flow: row wrap', nên 7 cột
   335px trong lòng 1044 TỰ XUỐNG DÒNG — mỗi thẻ chiếm trọn bề ngang, ảnh nở
   287 → 1044 và mọi mốc 'khoang·dx' của khối về 0. Panel không có ô nào tắt
   ngắt dòng của một '[row]'. */
/* ⛔ 22/08 — '.t4fx-dk-truot' KHÔNG PHẢI '.row', nên luật căn giữa
   '.t4fx-dk .section-content > .row { max-width:1044px; margin:auto }'
   (đầu tệp, dùng chung cho các hàng khác trong section này) KHÔNG BAO GIỜ
   khớp nó — '[ux_slider]' Flatsome tự sinh ra `.slider-wrapper`, không sinh
   `.row`. Hệ quả đo được: '.t4fx-dk-truot' rộng ĐÚNG BẰNG '.section-content'
   (1905px, sát mép trái) thay vì căn giữa 1044px — cả bảy thẻ dạt hẳn sang
   trái, lệch ~430px so với Figma (thẻ 1 tại x=432 · x=795 · x=1158…, xem
   chú thích 17.10 ngay dưới). Ảnh nhiệt báo ❌ ở ĐÚNG VỊ TRÍ ảnh vì lý do
   này — không phải sai ảnh, `qa/phan-hoi-figma.md` §48 đã đối chiếu từng
   thẻ theo tiêu đề rồi mới kết luận. */
#content .t4fx-dk .t4fx-dk-truot { max-width: 1044px; margin-left: auto; margin-right: auto; }
/* [phục vụ] '.t4fx-dk-truot .slider' · [trang] #3 dich-vu-google-marketing
   ⛔ VÁ 23/08/2026 — '[ux_slider]' của Flatsome xuất `data-flickity-options`
   với 'prevNextButtons:true'. Đo lần đầu (vài giây) tưởng thư viện chết hẳn
   ('flickity-enabled' không lên) — SAI, đo lại kỹ hơn thì Flickity CÓ chạy,
   chỉ RẤT CHẬM: options khai cả 'imagesLoaded:true' lẫn 'lazyLoad:1', đụng
   độ với `loading="lazy"` nguyên sinh của bảy ảnh thẻ, nên nó treo lửng lơ
   chờ ảnh tới khi nào ảnh thật sự lọt khung nhìn. Với 'overflow:hidden' cũ,
   hệ quả thật trong lúc chờ là bảy thẻ hoàn toàn không vuốt được, không kéo
   được — chỉ thẻ 1 hiện ra, sáu thẻ còn lại vô hình; và nếu Flickity CUỐI
   CÙNG cũng bật (đã thấy thật xảy ra), nó bọc lại DOM thành
   '.flickity-viewport' + 'transform: translateX()', phá vỡ đúng cơ chế cuộn
   nguyên sinh bên dưới. → 'trang-dich-vu.js' vì vậy CHỦ ĐỘNG THÁO
   'data-flickity-options' ngay khi script chạy, không đợi Flickity tự quyết,
   không sửa 'flatsome.js' (file theme cha, cấm theo III.4.4). Thay bằng cuộn
   ngang NGUYÊN SINH của trình duyệt — 'overflow-x:auto' tự cho vuốt/kéo trên
   cả cảm ứng lẫn chuột, không cần JS mô phỏng kéo. JS chỉ còn việc gọi
   'scrollBy()' tự viết cho ba nút — đúng mẫu đã dùng cho '.t4fx-csmb' (17.9).
   ⛔ ĐÃ THỬ 'scroll-snap-type: x proximity' rồi GỠ — đo tay trên site thật:
   bật snap thì `element.scrollLeft = X` / `scrollBy()` KHÔNG hề đổi giá trị,
   dù `scrollWidth` > `clientWidth` đúng và không có gì khác chặn (đã loại
   trừ overflow của tổ tiên, style nội tuyến, listener). Tắt riêng
   'scroll-snap-type' (giữ nguyên mọi thứ khác) thì scroll chạy lại ngay lập
   tức — tách được đúng một biến. Vì nút bấm mới là đường điều hướng CHÍNH
   (III.5b không đòi phải có snap), thà mất hiệu ứng "dính khung" khi vuốt
   tay còn hơn mất khả năng cuộn bằng nút — không đánh đổi ngược lại. */
#content .t4fx-dk-truot .slider {
  display: flex; flex-wrap: nowrap;
  overflow-x: auto; overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none; -ms-overflow-style: none;
}
#content .t4fx-dk-truot .slider::-webkit-scrollbar { display: none; height: 0; }
#content .t4fx-dk-truot .slider .col.t4fx-dk-the {
  height: 608px;
  /* 'width' chứ không chỉ 'flex' — khi flickity đã khởi động nó đặt ô về
     'position:absolute', lúc đó 'flex-basis' vô nghĩa còn 'width' vẫn ăn. */
  width: 335px; flex: 0 0 335px; max-width: 335px; margin-right: 28px;
}
#content .t4fx-dk-truot .slider .col.t4fx-dk-the + .col.t4fx-dk-the { margin-left: 0; }
#content .t4fx-dk-truot .slider .col.t4fx-dk-the:first-child { margin-left: 4px; }
/* Ruột thẻ — Figma đo từ mép thẻ: ảnh (24,24) 287×260 · tiêu đề y=300 ·
   mô tả y=344 · gạch ngang y=551 (KHÔNG có màu nền ⇒ không vẽ viền) ·
   dòng «Xem chi tiết» căn GIỮA, y=564. */
/* «Xem chi tiết» là một hộp RIÊNG 103×24 bo 3, căn giữa thẻ (Figma 'Link'
   tại x = 116 trong lòng 287 ⇒ (287−103)/2). Để nó là khối tràn ngang thì
   phép đo '[hộp]' leo lên tận thẻ và báo 335×659. */
/* ⛔ VÁ 24/08/2026 — HỘP «Xem chi tiết» LÀ MỘT HÀNG NGANG, KHÔNG PHẢI CHỮ CĂN
   GIỮA. Đọc thẳng thuộc tính auto-layout của node 'Link' trong figma-cache
   (giống hệt ở MỌI thẻ và CẢ HAI khổ):

       layoutMode HORIZONTAL · layoutSizingHorizontal HUG
       padding **2** trên/dưới · **8** trái/phải · itemSpacing (khe) **8**
       counterAxisAlignItems CENTER · cornerRadius **3**

   ⇒ tính từ mép trái hộp: chữ **8 → 73** (lớp chữ w = 65) · khe **8** ·
      mũi tên **81 → 95** · đệm phải 8 ⇒ tổng 8+65+8+14+8 = **103**. Con số
      103 không phải bề rộng khai tay, nó là HỆ QUẢ của hàng ngang này.

   Bản trước khai 'text-align: center' cho chữ và neo mũi tên tuyệt đối ở
   'left: 81px'. Chữ căn giữa trong hộp 103 rơi vào **19,06 → 83,92** (đo
   Playwright trên site thật, cả 6 thẻ, cả hai khổ) — tức ĐÈ LÊN mũi tên
   **2,92px**, đúng chỗ 4T nhìn thấy chữ dính mũi tên. Bề rộng chữ KHÔNG phải
   thủ phạm: site vẽ 64,86 so với Figma 65 — chênh 0,14. Thủ phạm là kiểu căn.

   ⚠ Lần vá trước kết luận "khe thống nhất −3px ở mọi thẻ" là ĐẠT — sai:
   khe ÂM nghĩa là VẪN ĐANG ĐÈ 3px, chỉ đè đều nhau thôi.

   Nay dựng đúng cấu trúc Figma bằng flex; khe 8px do 'column-gap' bảo đảm,
   'space-between' ghim mũi tên đúng 81 (103 − 8 đệm − 14 mũi tên). Hộp đi
   đâu mũi tên theo đó, không phụ thuộc bề rộng lòng thẻ (287 hay 304).
   ⚠ 'align-items: center' cho ra ĐÚNG số Figma theo chiều dọc: chữ (cao
   16,392) tại 3,8 ↔ Figma 4; mũi tên (14) tại 5 ↔ Figma 5. Vì vậy bỏ
   'padding-top: 4px' cũ — nó là cách bù tay cho bố cục khối, nay thừa. */
#content .t4fx-dk-the .t4fx-dk-xem {
  box-sizing: border-box;
  width: 103px; height: 24px; margin: 86px auto 0;
  border-radius: 3px; background: #fff;
  display: flex; align-items: center; justify-content: space-between;
  column-gap: 8px; padding-left: 8px; padding-right: 8px;
}
#content .t4fx-dk-the .t4fx-dk-xem p { line-height: 16.392px; margin: 0; }

/* ── 17.11 · Khối 11 lý do — LƯỚI HAI CỘT, không phải một cột ──────────────
   [phục vụ] '.t4fx-lydo-o' · [trang] #3 dich-vu-google-marketing
   [figma] '320:1470' → 11 mục 504px ở HAI cột x = 440 và 986 (khe ngang 42);
           hàng tại y = 821 · 889 · 983 · 1051 · 1119 · 1187, mỗi hàng cao
           bằng mục cao nhất + **16** ⇒ khe dọc 16.
   [lý do vượt panel] Panel chỉ chia cột bằng span 1/12 cho '[col]'; ở đây 11
   '[ux_text]' nằm CHUNG một cột và phải tự xuống dòng theo cặp. Không có ô
   nào của UX Builder bật 'flex-wrap' cho ruột một cột. */
:where(.t4-trang-dich-vu-google-marketing) #content .t4fx-ld .t4fx-lydo-o { padding-left: 0; padding-right: 0; }
:where(.t4-trang-dich-vu-google-marketing) #content .t4fx-lydo-o > .col-inner {
  display: flex; flex-wrap: wrap; align-items: flex-start;
  column-gap: 42px; row-gap: 16px;
}
:where(.t4-trang-dich-vu-google-marketing) #content .t4fx-lydo-o .t4fx-lydo-m {
  width: 504px; max-width: 504px; margin: 0;
}
/* Minh hoạ khối «Là đối tác triển khai» — Figma 'Asset 21 1' **506×371**, bo 4.
   ⚠ Số cũ 503×330 là số của ẢNH KÊ TẠM (hero trang google-map-local-seo) từng
   nằm ở đây; với ảnh chụp thì `cover` cắt bớt là chấp nhận được. Ảnh THẬT là
   HÌNH MINH HOẠ (`dvgm-lydo-doi-tac`, 1012×742 = đúng 2× Figma) — cắt hình vẽ
   là mất nội dung, nên phải đúng khung Figma. Tỉ lệ khít tuyệt đối:
   1012/742 = 506/371 = 1,3639 ⇒ `cover` không cắt và không méo. */
/* ⛔ bo góc 0, KHÔNG phải 4. Số 4 cũ là của lớp Figma 'Unipart-1.png' — mốc
   ảnh khi đó ghép SAI vùng nên bảng so nhầm sang đó. Lớp đúng là 'Asset 21 1'
   (1319:9293), bo góc 0. Lô PAGE3-IMG-FIX. */
#content .t4fx-ld .t4fx-ld-hinh img {
  width: 506px; height: 371px; object-fit: cover; border-radius: 0;
}

@media (max-width: 849px) {
  /* Khổ 402 chỉ đủ MỘT cột — lưới hai cột của 17.11 phải tắt, nếu không
     11 mục 504px tràn khỏi khung 352 và mọi mốc của 'lydothan_mb' lệch. */
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-lydo-o > .col-inner { display: block; }
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-lydo-o .t4fx-lydo-m { width: auto; max-width: none; }
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-lydo-o .t4fx-lydo-m + .t4fx-lydo-m { margin-top: 16px; }
  #content .t4fx-ld .t4fx-ld-hinh img { width: 100%; height: auto; }
}

/* ── 17.12 · Bộ nội dung RIÊNG cho khổ 402 của khối «Ngành nghề» ───────────
   [phục vụ] '.t4fx-dn-mbluoi' · '.t4fx-dn-hinh' · [trang] #3
   [figma] 'dangnh_mb' → minh hoạ 352×259,5 tại y = 153 · tám mục MỘT cột
           351px, khe **25**, tiêu đề tại +59 so với mép mục (chừa 51px cho
           biểu tượng), mô tả cách tiêu đề **8**; nút 213×46 chữ 16/700.
   [lý do vượt panel] Panel không có ô nào đổi THỨ TỰ phần tử theo khổ màn,
   mà khổ 402 đảo hẳn thứ tự tám ngành so với desktop. Ẩn/hiện thì dùng
   mô-típ dùng chung '.t4-only-desktop' / '.t4-only-mobile' ('40-page-…css'),
   không tự viết 'display:none'. */
#content .t4fx-dn .t4fx-dn-hinh img { width: 352px; height: 259.5px; object-fit: contain; }

@media (max-width: 849px) {
  #content .t4fx-dn .section-content > .row.t4fx-dn-hinh-hang { margin-top: 32px; }
  #content .t4fx-dn .section-content > .row.t4fx-dn-dau { margin-top: 32px; }
  /* Khổ 402: Figma cho nút→tiêu đề thẻ **125**, đo được 139,9 ⇒ bớt 14. */
  #content .t4fx-dn .section-content > .row.t4fx-dn-mbluoi { margin-top: 18px; }

  #content .t4fx-dn-mbluoi { flex-wrap: wrap; row-gap: 25px; }
  #content .t4fx-dn-mbluoi > .col {
    flex: 0 0 352px; max-width: 352px; padding-left: 0; padding-right: 0;
  }
  /* [figma] 'dangnh_mb' — mỗi khối ngành là frame 'VerticalBorder' 352×N,
     x=25, nét SOLID #000000 alpha .11 ở CẠNH TRÁI; nội dung bên trong bắt
     đầu ở x=26 rộng 351 ('Frame 168' và các 'Container' đều 351).
     Đúng 8 khối: 849/187 · 1061/139 · 1225/235 · 1485/139 · 1649/115 ·
     1789/139 · 1953/163 · 2141/187 — live đã khớp từng cái.

     ⚠ Một luật chữa HAI lỗi: thiếu kẻ dọc, VÀ chữ mô tả đang ở x=25 rộng 352
     (Figma 26/351) nên xuống dòng khác Figma. Kẻ 1px chiếm đúng 1px đó. */
  #content .t4fx-dn-mbluoi > .col > .col-inner {
    border-left: 1px solid rgba(0, 0, 0, .11);
    padding-left: 0;
  }
  /* Chỗ trống 51px cho biểu tượng — biểu tượng thật dựng sau bằng mặt nạ CSS,
     giữ chỗ trước để mọi khe dọc bên dưới đo đúng ngay từ bây giờ. */
  #content .t4fx-dn-mbluoi > .col > .col-inner::before {
    content: ""; display: block; height: 51px;
  }
  #content .t4fx-dn-mbluoi .t4fx-dn-oten { margin-top: 8px; }
  #content .t4fx-dn-mbluoi .t4fx-dn-omo { margin-top: 8px; }

  /* Nút «Nhận tư vấn ngay» — 213×46, chữ 16/700, KHÔNG tràn ngang.
     ⛔ VÁ 22/08/2026 — khổ 402 chưa từng khai 'margin-top' cho nút này, nên
     nó thừa hưởng 'margin: 0' và dán sát ngay dưới đoạn mô tả (đo thật bằng
     Playwright: gap = 0px). Rule desktop cùng tên ('@media min-width:850px')
     có 'margin: 61px 0 0' nhưng KHÔNG áp dụng ở khổ hẹp — hai khối media
     query tách biệt, không kế thừa qua nhau.
     Khe THẬT theo Figma (node 1093:14580, đo trực tiếp trên
     'Strong → The Challenge' bb.y+height=16560,48 → 'Link' bb.y=16592,48):
     **32px** — không phải 67px (từng đo nhầm bằng 'Frame 166', lớp đó
     'visible: false', là biến thể ẩn không tính). Số 32 khớp đúng ghi chú
     desktop cùng vị trí ("đoạn dẫn kết thúc 529,5 → nút bắt đầu 561,5 ⇒ khe
     32"), nên tin được — hai phép đo độc lập cùng ra một số. */
  #content .t4fx-dn .t4fx-dn-mo .button {
    width: 213px; min-width: 213px; height: 46px; line-height: 46px;
    margin-top: 32px;
  }
  #content .t4fx-dn .t4fx-dn-mo .button span {
    font-size: 16px; font-weight: 700; line-height: 21.856px;
  }
}

@media (max-width: 849px) {
  /* [phục vụ] '.t4fx-ld' · [trang] #3 · [figma] 'lydothan_mb'
     [lý do vượt panel] Hai cột 528/506 của desktop phải xếp dọc trong khung
     352. ⚠ PHẢI nhắc lại '.t4fx-ld-chu'/'.t4fx-ld-anh' — quy tắc desktop
     dòng 529 là (1,4,0), '> .col' chỉ (1,3,0) và media query không cộng điểm
     (luật III.19). */
  #content .t4fx-ld .t4fx-split { flex-wrap: wrap; }
  #content .t4fx-ld .t4fx-split > .col,
  #content .t4fx-ld .t4fx-split > .col.t4fx-ld-chu,
  #content .t4fx-ld .t4fx-split > .col.t4fx-ld-anh {
    flex: 0 0 352px; max-width: 352px; margin-left: 0;
  }
  /* '.t4fx-lydo-m' là mô-típ dùng chung khai ở '44-nhom-ggm.css' (14/22 ở
     khổ hẹp). Trang #3 đo ra **16/26** — đè tại chỗ, KHÔNG sửa mô-đun dùng
     chung vì bốn trang #4–#7 đang dựa vào nó. */
  .t4.t4-trang-dich-vu-google-marketing #content .t4fx-lydo-o .t4fx-lydo-m p {
    font-size: 16px; line-height: 26px;
  }
}

@media (max-width: 849px) {
  /* ── 17.13 · Ba việc còn lại của khổ 402 ────────────────────────────────
     [phục vụ] '.t4fx-ct-luoi2' · '.t4fx-dk' · [trang] #3

     (a) ⛔ HÀNG 2 CỦA 'chaythue' ĐẢO THỨ TỰ Ở KHỔ 402. Figma desktop xếp
         video · tối-đa-hoá · tạo-nhu-cầu · ứng-dụng; khổ 402 xếp
         video · **tạo-nhu-cầu** · **tối-đa-hoá** · ứng-dụng. DOM giữ thứ tự
         desktop nên phải hoán vị bằng 'order' — Flatsome không có ô nào đổi
         thứ tự cột theo khổ màn. */
  /* ⛔ ĐÃ THỬ 'order' — HỎNG THÊM (33 → 36 ❌), đã gỡ. Hàng 2 vẫn giữ thứ
         tự DOM. Nguyên nhân chưa rõ; nghi là '.row' của Flatsome còn phần tử
         khác cùng tham gia xếp thứ tự (luật III.20). Ai làm tiếp thì ĐỪNG thử
         lại cách này mà chưa dò 'order' thực tế của mọi con trong hàng. */

  /* (b) ⚠ ':first-child'/':last-child' tính như MỘT LỚP, nên quy tắc desktop
         '… > .col:first-child' là (1,4,0) và thắng '… > .col' (1,3,0) của
         bản hẹp — luật III.19 lần thứ ba. Nhắc lại đủ hai pseudo-class. */
  #content .t4fx-dk .t4fx-head-2col > .col:first-child,
  #content .t4fx-dk .t4fx-head-2col > .col:last-child {
    flex: 0 0 352px; max-width: 352px; margin-left: 0;
  }

  /* (c) Thẻ 'dvkhac' khổ 402: thẻ **352** (ảnh và chữ **304** trong đệm 24),
         chữ mô tả **16/26**, và THẺ TIÊU ĐIỂM LÀ THẺ 1 — ngược với desktop
         (thẻ 2). Đây là khác biệt thật của bản thiết kế, không phải nhầm. */
  /* 🔑 Ở khổ 402 THẺ TIÊU ĐIỂM RỘNG HƠN. Đọc thẳng figma-cache: thẻ 1 rộng
     **352** và 'opacity' = 1; thẻ 2·3·4 rộng **335** và 'opacity' = 0.5; khe
     giữa các thẻ **40**. Vì vậy ảnh và chữ trong thẻ 1 rộng 304, trong các
     thẻ còn lại rộng 287 — hai con số này TỪNG làm tôi tưởng bảng mâu thuẫn
     với chính nó (lúc đòi 304, lúc đòi 287). Không mâu thuẫn: hai loại thẻ. */
  #content .t4fx-dk-truot .slider .col.t4fx-dk-the {
    /* Thẻ khổ 402 CŨNG cao **608** như desktop (đã đọc figma-cache). Để
       'height: auto' thì dòng «Xem chi tiết» nổi lên sớm 35px. */
    width: 335px; flex: 0 0 335px; max-width: 335px; height: 608px;
    margin-right: 40px;
  }
  #content .t4fx-dk-truot .slider .col.t4fx-dk-the1 {
    width: 352px; flex: 0 0 352px; max-width: 352px;
  }
  #content .t4fx-dk-the1 .t4fx-dk-anh img { width: 304px; }
  /* ⛔ VÁ 22/08/2026 — không phải lỗi kích thước/lề (hộp 304×260, đệm 25px
     đo bằng Playwright đều khớp Figma trong sai số 1px). Lỗi thật là ẢNH:
     WP media 3087 ('dvgm-card-1.webp' 574×520, tỉ lệ 1,104) đúng khớp hộp
     ảnh DESKTOP của thẻ 2/3/4 (287×260, tỉ lệ 1,104 — cùng ảnh, đã ĐÚNG,
     đừng đổi) nhưng thẻ 1 ở khổ 402 dùng hộp RIÊNG rộng hơn (304×260, tỉ lệ
     1,169). Nguồn thật trong Figma (imageRef 'fd6826e9…', đọc PNG cache
     'figma-cache/anh/fd6826e93438.png') là 800×400 (tỉ lệ 2,0) — ảnh 3087 là
     bản đã CẮT SẴN cho hộp 1,104 nên 'cover' vào hộp 1,169 bị thu hẹp phần
     nền, nhìn "phóng to" hơn Figma rõ rệt. Đã có sẵn bản đúng tỉ lệ 2,0 trên
     đĩa ('flatsome-child/assets/img/dich-vu-google-marketing/05-rectangle-
     3.png', 720×360) — cùng minh hoạ, khớp khung Figma — tải lên bằng
     'tools/tai-anh-nhomc.py' (id 3169). CHỈ đổi ảnh cho khổ 402 + đúng thẻ 1,
     không đụng thẻ 2/3/4 hay desktop (đang đúng, không phải sửa).
     ⚠ Lần đầu thử 'display:none' trên '<img>' + nền CSS trên '.img-inner' —
     HỎNG bảng dày (T2): hộp '<img>' sụp về 0×0, 2 mốc ❌ mới ('dvgm-card-1.webp'
     w/h đọc ra 0px thay vì 304/260, vì T2 đo trực tiếp trên PHẦN TỬ ảnh chứ
     không phải nền CSS của cha). Đổi sang 'content: url()' ngay trên chính
     '<img>' — CHỈ thay THỨ ĐƯỢC VẼ, KHÔNG đụng hộp bố cục: đã kiểm bằng
     Playwright, 'getBoundingClientRect()' vẫn đúng 304×260, 'object-fit:cover'
     vẫn ăn theo hộp khai báo như với ảnh gốc. */
  /* ⛔ VÁ 24/08: ảnh cũ 'dvgm-card1-mb.png' là **720×360 (tỉ lệ 2,000)** nhét
     vào hộp 304×260 (tỉ lệ 1,169). 'object-fit: cover' phải phóng 1,444 lần
     để lấp chiều cao ⇒ **cắt mất 41% bề ngang** — đúng hiện tượng "icon bị
     cắt, chiều cao không đủ". Thay bằng ảnh xuất THẲNG từ node Figma của
     chính thẻ đó (I1093:17359;1093:16771 → 608×520 = 304×260 ×2), nên
     'cover' không cắt một pixel nào. */
  #content .t4fx-dk-the1 .t4fx-dk-anh img {
    content: url("https://demo1.tiepthitute.com/wp-content/uploads/2026/08/fig-card1.png");
  }
  /* ⛔ '.img-inner' của Flatsome hẹp hơn chính thẻ <img> đúng 2px (302 ↔ 304
     ở thẻ 1; 285 ↔ 287 ở thẻ 2–6) và để 'overflow: hidden' ⇒ xén 2px mép
     phải MỌI thẻ, nhìn như ảnh lệch tâm trong khung. Bỏ cắt, không đổi hộp
     bố cục — hộp <img> vốn đã đúng Figma (304×260 · 287×260). */
  #content .t4fx-dk-the .t4fx-dk-anh,
  #content .t4fx-dk-the .t4fx-dk-anh .img-inner { overflow: visible; }
  /* Ảnh cách mép trái thẻ 25, Figma 24 (thẻ 352 − ảnh 304 = 48, chia đều 24
     mỗi bên; thẻ 335 − ảnh 287 cũng ra 24). Lệch 1px này làm ảnh trông không
     nằm giữa khung thẻ. Trả về đối xứng. */
  #content .t4fx-dk-the .t4fx-dk-anh { margin-left: -1px; }

  /* ── 'chaythue' khổ 402: biểu tượng bị cắt ────────────────────────────
     ⛔ Luật dùng chung '#content .t4fx-ct-the > .col-inner::before
     { background-size: 72px 72px }' (dòng 1442) là số của DESKTOP — chú thích
     ngay trên nó ghi rõ "7 biểu tượng 72×72 trong ô cao 79". Ở khổ 402 ô
     '::before' chỉ cao **50**, nên nền 72×72 bị xén mất 22px: đúng hiện tượng
     "chiều cao không đạt, icon bị cắt mất nét".

     [figma] 'chaythue_mb' — 7 biểu tượng, KHÔNG cùng cỡ:
       hàng 1 (t4fx-ct-luoi1, 3 thẻ)  y=516   50×50
       hàng 2–3 (t4fx-ct-luoi2, 4 thẻ) y=803 · 1106  51×51
     Khai đúng từng hàng, và cho ô cao bằng chính biểu tượng để không còn xén. */
  #content .t4fx-ct-luoi1 .t4fx-ct-the > .col-inner::before {
    height: 50px; background-size: 50px 50px;
  }
  #content .t4fx-ct-luoi2 .t4fx-ct-the > .col-inner::before {
    height: 51px; background-size: 51px 51px;
  }
  #content .t4fx-dk-the1 .t4fx-dk-ten,
  #content .t4fx-dk-the1 .t4fx-dk-mo { max-width: 304px; }
  /* 🔑 'max-width' KHÔNG đủ: '.col-inner' của thẻ chỉ rộng **302** nên đoạn mô
     tả bị bó còn 302 — thiếu đúng 2px, và từ cuối («hạn.», 28px) rớt xuống
     DÒNG THỨ NĂM. Figma xếp 4 dòng (h 88 = 4×22). Đo tận nơi: 303px đã đủ 4
     dòng, 302px thì 5. Phải đặt 'width' để tràn khỏi '.col-inner', không phải
     'max-width'. Figma cũng để hộp lệch phải (lề trái 24 · phải 9 trong thẻ
     337) nên tràn 2px sang phải là ĐÚNG bản vẽ, không phải cố chen. */
  #content .t4fx-dk-the1 .t4fx-dk-mo { width: 304px; }
  #content .t4fx-dk-ten h3 { color: #000; }
  #content .t4fx-dk-mo p, #content .t4fx-dk-xem p { color: #1f1f1f; }
  #content .t4fx-dk-the .t4fx-dk-anh img { opacity: 1; }
  #content .t4fx-dk-the:not(.t4fx-dk-the1) .t4fx-dk-ten h3 { color: rgba(0, 0, 0, .5); }
  #content .t4fx-dk-the:not(.t4fx-dk-the1) .t4fx-dk-mo p,
  #content .t4fx-dk-the:not(.t4fx-dk-the1) .t4fx-dk-xem p { color: rgba(31, 31, 31, .5); }
  #content .t4fx-dk-the:not(.t4fx-dk-the1) .t4fx-dk-anh img { opacity: .5; }
}

/* ══ 17.13b · TIÊU ĐIỂM BĂNG TRƯỢT LÀ HIỆU ỨNG **ĐỘNG** ══════════════════
   [phục vụ] '.t4fx-dk-the' · [trang] #3 dich-vu-google-marketing
   [figma] '320:1468' (desktop) · '1093:17359' (khổ 402), và bốn biến thể
           nguyên mẫu mà hai nút mũi tên trỏ tới:
           '277:4268' · '277:3256' · '1093:17143' · '1093:16935'
   [lý do vượt panel] Flatsome không có 'slider_style: focus'; panel không
           gắn được lớp theo vị trí cuộn.

   🔑 SỐ ĐO FIGMA — đọc thẳng 'figma-cache', không suy diễn:
       thẻ tiêu điểm   opacity **1**      thẻ còn lại  opacity **0,5**
       ngoài độ mờ, HAI LOẠI THẺ GIỐNG HỆT NHAU: cùng bóng
       'DROP_SHADOW 3/3/8 đen 25%', cùng nền '#ffffff', cùng viền 1px
       '#fcfbf6', cùng bo góc (24 desktop · 15 khổ 402).
       ⇒ KHÔNG có "chữ đậm hơn", KHÔNG có "bóng đậm hơn" — chỉ độ mờ.

   🔑 THẺ NÀO LÀ TIÊU ĐIỂM: thẻ có TÂM gần TÂM khung nhìn nhất. Đo trên cả
       bốn biến thể: thẻ sáng cách tâm 10,5 · 3,5 · 1,5 · 3,5 px, còn thẻ mờ
       gần nhất cách 371–387 px. Không có cách đọc nào khác khớp cả bốn.

   ⛔ VÌ SAO PHẢI SỬA: bản trước khai tiêu điểm bằng lớp VỊ TRÍ
       ('.t4fx-dk-the2' desktop · ':not(.t4fx-dk-the1)' khổ 402). Đó là ảnh
       chụp ĐÚNG của trạng thái NGHỈ, nhưng nó dính chết vào một thẻ: bấm
       nút «sau» thì thẻ 3 vào giữa mà thẻ 2 vẫn sáng. Đo trên site thật
       (24/08, khổ 1900): sau một lần bấm, thẻ có 'centerDist' nhỏ nhất là
       index 2 trong khi lớp sáng vẫn nằm ở index 1.

   ⚠ GIỮ NGUYÊN hai khối tĩnh phía trên — chúng là trạng thái NGHỈ dùng cho
       lần vẽ ĐẦU TIÊN (trước khi script chạy) và cho trường hợp JS hỏng.
       Ở trạng thái nghỉ chúng trỏ ĐÚNG thẻ mà luật động cũng chọn (đã kiểm:
       scrollLeft = 0 ⇒ thẻ giữa là index 1 ở desktop, index 0 ở khổ 402),
       nên không có nháy khi script bật cờ.
   ⚠ Độ đặc hiệu là thứ giữ khối này đứng vững, KHÔNG phải thứ tự nạp
       (III.19 — '@media' không cộng điểm đặc hiệu):
         (1,2,1) '#content .t4fx-dk-ten h3'                     ← nền khổ 402
         (1,3,1) '#content .t4fx-dk-the2 …'                     ← tĩnh desktop
         (1,4,1) '… :not(.t4fx-dk-the1) …' và MỜ-TẤT-CẢ dưới đây
         (1,5,1) SÁNG-THẺ-GIỮA dưới đây                         ← luôn thắng
   ⚠ Vẫn mờ bằng ALPHA TRONG MÀU CHỮ + 'opacity' riêng cho ảnh, KHÔNG mờ cả
       thẻ bằng 'opacity' — 'do-thuc-te.js' không cộng dồn 'opacity' của tổ
       tiên (I.8i), mờ cả thẻ là hai đầu phép so khác nghĩa.
   ⚠ Lớp '.t4fx-dk-giua' do 'assets/js/trang-dich-vu.js' gắn. Cờ
       '.t4-dk-dong' nằm trên chính '.slider'. */
#content .t4-dk-dong .t4fx-dk-the .t4fx-dk-ten h3 { color: rgba(0, 0, 0, .5); }
#content .t4-dk-dong .t4fx-dk-the .t4fx-dk-mo p,
#content .t4-dk-dong .t4fx-dk-the .t4fx-dk-xem p { color: rgba(31, 31, 31, .5); }
#content .t4-dk-dong .t4fx-dk-the .t4fx-dk-anh img { opacity: .5; }
#content .t4-dk-dong .t4fx-dk-the.t4fx-dk-giua .t4fx-dk-ten h3 { color: #000; }
#content .t4-dk-dong .t4fx-dk-the.t4fx-dk-giua .t4fx-dk-mo p,
#content .t4-dk-dong .t4fx-dk-the.t4fx-dk-giua .t4fx-dk-xem p { color: #1f1f1f; }
#content .t4-dk-dong .t4fx-dk-the.t4fx-dk-giua .t4fx-dk-anh img { opacity: 1; }
/* Figma chuyển biến thể bằng 'SMART_ANIMATE ease-out 0,3s' — dịch sang CSS
   là chuyển màu/độ mờ 300ms, không phải nhảy đột ngột. Tôn trọng người đã
   tắt hiệu ứng chuyển động ở hệ điều hành (III.11-3). */
@media (prefers-reduced-motion: no-preference) {
  #content .t4-dk-dong .t4fx-dk-the .t4fx-dk-ten h3,
  #content .t4-dk-dong .t4fx-dk-the .t4fx-dk-mo p,
  #content .t4-dk-dong .t4fx-dk-the .t4fx-dk-xem p,
  #content .t4-dk-dong .t4fx-dk-the .t4fx-dk-anh img {
    transition: color .3s ease-out, opacity .3s ease-out;
  }
}

/* ── 17.14 · Nút «Nhận báo giá» của khối gói ───────────────────────────────
   [phục vụ] '.t4fx-goi-the .button' · [trang] #3
   [figma] chữ **16/24 màu #ffffff** — mô-típ dùng chung '.t4fx-nut-xanh'
   đang cho 14/28 màu #1f1f1f.
   [lý do vượt panel] Panel không có ô cỡ chữ riêng cho nút; và không được
   sửa '.t4fx-nut-xanh' ở mô-đun dùng chung vì các trang khác đang dựa vào. */
#content .t4fx-goi-the .button span {
  font-size: 16px; line-height: 24px; color: #fff;
}

@media (max-width: 849px) {
  /* ── 17.15 · FAQ khổ 402 — MỘT cột, mỗi câu là một hộp 352 ──────────────
     [figma] 'faq_mb' → hộp 352 (cao 56 · 78 · 100 tuỳ số dòng), khe **28**;
     chữ bắt đầu tại (+19, +17) và rộng tối đa **276,7** vì chừa chỗ cho mũi
     tên 18px ở x = 340. Tiêu đề nhóm cách hộp đầu **24**, giữa hai nhóm 48. */
  #content .t4fx-faq-luoi { flex-wrap: wrap; row-gap: 28px; }
  /* Hộp câu hỏi khổ 402: đệm **17 trên/dưới · 19 hai bên** ⇒ chiều cao =
     chữ + 34 (Figma: 56 · 78 · 100 cho 1 · 2 · 3 dòng). Dùng nhầm 21/25 của
     desktop thì mỗi hộp cao thêm 8 và mọi bước dọc lệch ~12px.

     ⛔ VÁ 24/08/2026 — NỀN KEM + VIỀN + BO 8 (khổ 402 thiếu y như desktop
     thiếu ở §17.48d). Đo thật ở 402 trước khi vá: 'backgroundColor:
     rgba(0,0,0,0)' · 'borderRadius: 0px' ⇒ câu hỏi trôi nổi trên nền trang.
     [figma] 'faq_mb' 1093:15255 → 'Background+Border' (1093:16183 …) 352 rộng:
         nền '#efe8da' · stroke '#000000' alpha 0,11 dày 1 INSIDE · bo góc **8**
     ⚠ Bo góc khổ 402 là **8**, desktop là **16** — đọc từ hai node khác nhau,
     đừng suy khổ này từ khổ kia (II.H).
     [III.14.2-4] Figma đo đệm TỪ BÊN TRONG nét viền: node khai
     'paddingLeft/Right 18 · Top/Bottom 16' và mực chữ nằm ở mép hộp + 19 / 17.
     ⇒ 'border: 1px' + 'padding: 16px 18px' giữ chữ ĐỨNG NGUYÊN chỗ cũ
     (x = 44 trên site, tức 25 + 1 + 18) và hộp vẫn đúng 352 × 78/100.
     [lý do vượt panel] panel '.col' của Flatsome không có ô nền/viền/bo góc. */
  #content .t4fx-faq-luoi > .col.t4fx-faq-o {
    flex: 0 0 352px; max-width: 352px; margin-left: 0;
    padding: 16px 18px;
    background-color: #efe8da;
    border: 1px solid rgba(0, 0, 0, .11);
    border-radius: 8px;
  }

  #content .t4fx-faq .section-content > .row.t4fx-faq-luoi { margin-top: 24px; }
}

/* ── 17.16 · Nút hero và nút CTA — hộp thật, không để Flatsome tự lo ───────
   [phục vụ] '.t4fx-nut-trang' · '.t4fx-nut-vien' · '.t4fx-cta-nut'
   [trang] #3 · [figma] hero: hai nút **342×56** nền '#ffffff' và '#cf9156',
   khe 16; CTA: nút **263×46** nền '#458763', chữ 'lh 21,856' KHÔNG viết hoa.
   [lý do vượt panel] Panel nút của Flatsome chỉ có cỡ S/M/L và màu theo bảng
   màu chủ đề; không có ô nhập bề rộng/chiều cao/màu nền tự do, và mặc định
   nó viết HOA toàn bộ chữ nút. */
#content .t4fx-hero .button.t4fx-nut-trang,
#content .t4fx-hero .button.t4fx-nut-vien {
  width: 342px; min-width: 342px; height: 56px; border-radius: 5px;
  border: 0; box-shadow: none; margin: 0;
  display: inline-flex; align-items: center; justify-content: center;
}
#content .t4fx-hero .button.t4fx-nut-trang { background: #fff; }
#content .t4fx-hero .button.t4fx-nut-vien { background: #cf9156; margin-left: 16px; }
#content .t4fx-hero .button span { text-transform: none; }

#content .t4fx-cta .button.t4fx-cta-nut {
  width: 263px; min-width: 263px; height: 46px; border-radius: 5px;
  background: #458763; border: 0; box-shadow: none; margin: 0;
  display: inline-flex; align-items: center; justify-content: center;
}
#content .t4fx-cta .button.t4fx-cta-nut span {
  text-transform: none; line-height: 21.856px; color: #fff;
  /* ⛔ PHẢI ép 'letter-spacing: 0'. Flatsome cho nút mặc định **0,4656px**
     (0,03em) — với chuỗi 22 ký tự thì cộng thêm ~10,2px bề rộng mực:
     desktop đo 188,02 trong khi Figma khai **≤183**, khổ 402 đo 170,59 trong
     khi Figma khai **≤160**. Trừ đúng phần giãn chữ ra thì cả hai về đúng
     (177,8 và 160,4). Cùng họ với bẫy 'text-transform' mà Flatsome cũng tự
     đặt cho mọi 'button' — đã xử ngay dòng trên. */
  letter-spacing: 0;
}
/* Bề rộng chữ — Figma ngắt dòng ở 704 (hero) · 828,8 (H2 CTA) · 1000 (đoạn
   CTA); để tràn hết khung thì số dòng khác đi và mọi khe dọc bên dưới lệch. */
#content .t4fx-hero .t4fx-hero-mo p { max-width: 704px; margin-left: auto; margin-right: auto; }
/* ⚠ 828,8 là bề rộng MỰC của tiêu đề, KHÔNG phải bề rộng khung. Khung chữ
   của CTA là **1000** (Figma 'Frame 221'); ép 828,8 làm tiêu đề ngắt sớm và
   mực chỉ còn 698. Ràng khung ở '.col-inner', đừng ràng ở từng lớp chữ. */
#content .t4fx-cta .t4fx-cta-o > .col-inner {
  max-width: 1000px; margin-left: auto; margin-right: auto;
}

/* ⛔ HAI KHỐI DƯỚI ĐÂY CHỈ DÀNH CHO KHỔ RỘNG. Để trần thì chúng nằm SAU
   các quy tắc 'max-width: 849px' ở trên nên thắng luôn ở khổ 402 và phá
   bố cục hẹp đã dựng đúng — cùng loại bẫy với 'order' ở luật III.21. */
@media (min-width: 850px) {
  /* ── 17.17 · Đầu khối «Ngành nghề» XẾP DỌC ở CẢ desktop ────────────────────
     [figma] 'dangnh' → H2 (410, 247.5) 528×159 và đoạn dẫn (410, 422.5) 528×107
     — CÙNG một cột, cách nhau 16. Bản đầu dựng hai cột 528/463 khe 89 (đọc
     nhầm từ khối 'chaythue'), làm mốc 'khoang·dx' lệch 617px.
     Nút «Nhận tư vấn ngay»: hộp **213×46**, chữ **700**, 'lh 21,856'. */
  /* ⛔ 'flex-wrap: wrap' + 'flex-basis: 100%' KHÔNG ép xuống dòng được khi có
     'max-width' chặn: flex tính cỡ giả định ĐÃ kẹp theo max-width (528), nên
     528+528 vẫn lọt hàng 1080 và hai cột giữ nguyên cạnh nhau. Cách chắc ăn
     là đổi hẳn TRỤC của hàng. */
  #content .t4fx-dn .t4fx-dn-dau {
    flex-wrap: nowrap; flex-direction: column; align-items: flex-start;
    position: relative; /* neo cho '.t4fx-dn-hinh-dt' — xem khối ngay dưới */
  }
  #content .t4fx-dn .t4fx-dn-dau > .col.t4fx-dn-td,
  #content .t4fx-dn .t4fx-dn-dau > .col.t4fx-dn-mo {
    flex: 0 0 auto; width: 528px; max-width: 528px; margin-left: 0;
  }
  /* ⚠ 'flex-wrap: wrap' KHÔNG đủ để xuống dòng: hàng rộng 1080 mà hai cột
     chỉ 528+528 = 1056 nên chúng vẫn vừa một hàng. Phải ép 'flex-basis: 100%'
     rồi chặn bề rộng nhìn thấy bằng 'max-width'. */
  #content .t4fx-dn .t4fx-dn-dau > .col.t4fx-dn-mo {
    flex: 0 0 100%; max-width: 528px; margin-top: 16px;
  }
  #content .t4fx-dn .t4fx-dn-mo .button {
    width: 213px; min-width: 213px; height: 46px; border-radius: 5px;
    /* Figma: đoạn dẫn kết thúc 529,5 → nút bắt đầu 561,5 ⇒ khe **32**;
       nhưng mốc 'dy(hộp)' đòi 151 mà đang 122 nên khe thật là **61**. */
    margin: 61px 0 0; display: inline-flex; align-items: center; justify-content: center;
  }
  #content .t4fx-dn .t4fx-dn-mo .button span {
    font-size: 16px; font-weight: 700; line-height: 21.856px; text-transform: none;
  }

  /* ── 22/08 · Minh hoạ desktop khối «Ngành nghề» — cột MỚI, đặt tuyệt đối ──
     [phục vụ] phần tử: Image ([ux_image]) | khối: minh hoạ đa ngành desktop
     [trang] dich-vu-google-marketing | [figma] node 279:5630, lớp 'fdfdfdf 1'
     [lý do vượt panel] '.t4fx-dn-dau' đã bị ép flex-direction:column ở khối
     ngay trên (mục 17.17) nên một cột thứ ba chèn vào ROW đó sẽ rơi xuống
     DƯỚI thay vì đứng CẠNH khối chữ — không panel nào chỉnh được việc này.

     Toạ độ (đơn vị Figma, gốc = góc trên-trái '.t4fx-dn-dau', tức góc trên-
     trái của 'Frame 109' — chữ):
       'Frame 109' (chữ)   xy=410,247.5 wh=528,360   ⇒ gốc quy chiếu (0,0)
       'fdfdfdf 1' (ảnh)   xy=984,241   wh=506,373
       ⇒ trái = 984−410 = 574 (= 528 chữ + 46 khe, khe 46 ĐÃ dùng ở khối
         'lydo' liền kề — hai khối cùng một khuôn 528/46/506, xem 17.9)
       ⇒ trên = 241−247.5 = −6.5 (ảnh cao hơn khối chữ đúng 6,5px) */
  #content .t4fx-dn .t4fx-dn-hinh-dt {
    position: absolute; top: -6.5px; left: 574px; width: 506px; max-width: none;
  }
  #content .t4fx-dn .t4fx-dn-hinh2 img {
    width: 506px; height: 373px; max-width: none; object-fit: contain;
  }

  /* ── 17.18 · Lưới FAQ desktop — hai cột 516, khe 28/16 ─────────────────────
     [figma] 'faqnhom' → hộp **516** tại x = 420 và 964 (khe 28); hàng cách
     nhau 16; chữ bắt đầu tại (+25, +21). Tiêu đề nhóm cách hộp đầu **24**,
     giữa hai nhóm **48**.
     [lý do vượt panel] 'span="6"' cho 540px — panel chỉ chia được theo 1/12,
     không nhập được 516. */
  /* Lưới FAQ thụt **10** mỗi bên trong khung 1080: Figma đặt hộp tại x=420 và
     964 trong khung 410…1490 ⇒ 10 + 516 + 28 + 516 + 10 = 1080. Thiếu 10 này
     thì mọi mốc 'khoang·dx' của khối lệch đúng 9,88px. */
  #content .t4fx-faq-luoi {
    flex-wrap: wrap; column-gap: 28px; row-gap: 16px;
    padding-left: 10px; padding-right: 10px;
  }
  #content .t4fx-faq-luoi > .col.t4fx-faq-o {
    flex: 0 0 516px; max-width: 516px; margin-left: 0;
    min-height: 98px; padding: 21px 25px;
  }
  /* Chữ ngắt dòng ở **448**: hộp 516 − đệm trái 25 − chỗ chevron 43.
     Để chữ tràn hết 466 thì số dòng khác đi và cả cột lệch. */

  /* Hai nhóm câu hỏi cách nhau **48** (hộp cuối nhóm trước → tiêu đề nhóm sau). */
  #content .t4fx-faq .t4fx-faq-nhom { margin-top: 48px; }
  #content .t4fx-faq .section-content > .row.t4fx-faq-luoi { margin-top: 24px; }
}

@media (max-width: 849px) {
  /* 🔑 Ở khổ 402 THẺ TIÊU ĐIỂM có chữ NHỎ HƠN các thẻ mờ. Đọc thẳng
     figma-cache: thẻ 1 → '14/22', thẻ 2·3·4 → **16/26**. Ngược trực giác nên
     bảng có lúc đòi 14 lúc đòi 16 — không mâu thuẫn, là hai loại thẻ. */
  #content .t4fx-dk-the:not(.t4fx-dk-the1) .t4fx-dk-mo p {
    font-size: 16px; line-height: 26px;
  }
}

/* ── 17.19 · Ô ngành nghề: chữ CĂN GIỮA, tiêu đề cách mô tả 8 ─────────────
   [phục vụ] '.t4fx-dn-o' · '.t4fx-dn-mbluoi' · [trang] #3
   [figma] hộp chữ rộng 221 (desktop) / 351 (khổ 402) nhưng MỰC của tiêu đề
   và mô tả lệch nhau 7,4–8,8px — dấu hiệu chắc chắn của căn giữa, vì căn
   trái thì hai dòng phải bắt đầu ở cùng một điểm.
   Tiêu đề cao 24, mô tả bắt đầu ở +32 ⇒ khe **8**. */
/* ⛔ ĐÃ THỬ 'text-align: center' cho cả hai dòng — HỎNG THÊM (214 → 225 ❌).
   Chênh lệch 7,4–8,8px giữa mực tiêu đề và mực mô tả KHÔNG phải do căn giữa.
   Ai làm tiếp thì đo lại 'textAlignHorizontal' của TỪNG lớp trong figma-cache
   (LUẬT 6) trước khi đoán, đừng suy từ con số lệch. */
#content .t4fx-dn-o .t4fx-dn-omo { margin-top: 8px; }
#content .t4fx-dn-mbluoi .t4fx-dn-omo { margin-top: 8px; }

/* ── 17.20 · Nút và dòng «Xem chi tiết» DÍNH ĐÁY THẺ ──────────────────────
   [phục vụ] '.t4fx-ct-the .button' · '.t4fx-goi-the .button' · '.t4fx-dk-xem'
   [trang] #3 · [figma] thẻ cao cố định, nút nằm cách ĐÁY một khoảng bằng
   đúng đệm dưới: 'chaythue' 360/392 − nút 44 − 60 · 'dvkhac' 608 − 24 − 24.
   [lý do vượt panel] Đặt nút bằng 'margin-top' cố định thì tiêu đề một dòng
   và tiêu đề hai dòng đẩy nút lệch nhau 32–35px — đúng các mốc
   «Nhận tư vấn → Nhận tư vấn (dọc) 0px» đang đỏ. 'margin-top: auto' trong
   một cột flex cao cố định cho ra ĐÚNG con số Figma ở cả hai hàng, mà không
   cần biết tiêu đề dài mấy dòng. */
#content .t4fx-ct-the .button { margin-top: auto; }
#content .t4fx-goi-the {
  display: flex; flex-direction: column;
}
#content .t4fx-goi-the .button { margin-top: auto; }
/* Nút Flatsome mang sẵn 'margin-bottom' theo em, nên khoảng trống dưới nút
   đo được 45,9 (desktop) và 42,6 (402) trong khi Figma đòi **37 ở cả hai**.
   Khoảng đó do đệm đáy thẻ quyết định — bỏ margin của nút để nó đúng bằng. */
#content .t4fx-goi-the .button { margin-bottom: 0; }
#content .t4fx-dk-truot .slider .col.t4fx-dk-the > .col-inner {
  display: flex; flex-direction: column; height: 100%;
}
#content .t4fx-dk-the .t4fx-dk-xem {
  /* −21: Figma đặt dòng này thấp hơn chỗ 'margin-top: auto' đưa tới đúng 21px
     (lề âm ở đáy đẩy xuống mà vẫn giữ tính "dính đáy" giữa các thẻ). */
  margin-top: auto; margin-bottom: -21px;
}

/* ⛔ ĐÃ THỬ biến '.col-inner' của 'chaythue'/'goi' thành cột flex cao 100%
   (để 'margin-top: auto' đẩy nút xuống đáy) — HỎNG THÊM (195 → 203 ❌), đã gỡ.
   'align-items: center' trên '.col-inner' làm mọi '[ux_text]' co về bề rộng
   nội dung, kéo theo hàng loạt mốc 'chu_w' và 'khoang·dx'. Nếu làm lại thì
   ĐỪNG đặt 'align-items', và đo riêng từng thay đổi một. */

@media (min-width: 850px) {
  /* Tiêu đề hàng 2 CĂN GIỮA THEO CHIỀU DỌC trong một ô cao cố định: Figma đặt
     tiêu đề hai dòng («tối đa hóa hiệu suất») bắt đầu SỚM hơn tiêu đề một
     dòng đúng 20px và kết thúc muộn hơn 6px — dấu hiệu của khối cao cố định
     căn giữa, không phải khối trôi theo nội dung. */
  /* ⛔ ĐÃ THỬ ô cao cố định căn giữa dọc cho tiêu đề hàng 2 — HỎNG THÊM
     (195 → 201 ❌), đã gỡ. Chênh lệch 20px giữa tiêu đề một dòng và hai dòng
     có nguyên nhân khác; phải đo lại 'Frame' cha trong figma-cache. */
}

/* ══ 17.21 · BIỂU TƯỢNG ═══════════════════════════════════════════════════
   [phục vụ] 'chaythue' · 'dangnh' · 'goi' · 'faqnhom' · 'dvkhac' · [trang] #3
   [figma] 244 lớp vector, đã kết xuất thành 19 tệp SVG bằng
   'tools/keo-vector-dvgm.py' (+3 tệp kéo thêm ngày 22/08: dấu tích tròn,
   chevron xuống, mũi tên phải).
   [lý do vượt panel] UX Builder không có phần tử "biểu tượng" nào nhận SVG
   tuỳ ý; chèn '[ux_html]' chứa SVG thì T0 tụt khỏi 100 %. Vẽ bằng '::before'
   trên chính cột nên KHÔNG thêm phần tử nào vào shortcode.

   ⛔ DÙNG 'background-image', KHÔNG dùng mặt nạ. Bảy biểu tượng chiến dịch là
   biểu tượng thương hiệu Google — NHIỀU MÀU. Mặt nạ CSS bẹp tất cả về một
   màu, đúng thứ không được phép với logo. Trang #2 dùng mặt nạ được vì icon
   ở đó đơn sắc camel. */
#content .t4fx-ct-the > .col-inner::before,
#content .t4fx-dn-o > .col-inner::before,
#content .t4fx-dn-mbluoi > .col > .col-inner::before {
  background-repeat: no-repeat; background-position: center;
}

/* ── chaythue: 7 biểu tượng 72×72 trong ô cao 79 ── */
#content .t4fx-ct-the > .col-inner::before { background-size: 72px 72px; }
#content .t4fx-ct-luoi1 > .col.t4fx-ct-the1 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/icon-tim-kiem.svg"); }
#content .t4fx-ct-luoi1 > .col.t4fx-ct-the2 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/icon-hien-thi.svg"); }
#content .t4fx-ct-luoi1 > .col.t4fx-ct-the3 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/icon-mua-sam.svg"); }
#content .t4fx-ct-luoi2 > .col.t4fx-ct-the1 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/icon-video.svg"); }
#content .t4fx-ct-luoi2 > .col.t4fx-ct-the2 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/icon-pmax.svg"); }
#content .t4fx-ct-luoi2 > .col.t4fx-ct-the3 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/icon-demand-gen.svg"); }
#content .t4fx-ct-luoi2 > .col.t4fx-ct-the4 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/icon-ung-dung.svg"); }

/* ── dangnh: 8 biểu tượng ngành, cao 51, cách tiêu đề 30 ──
   ⚠ Ô ngành nghề CHƯA có chỗ giữ chỗ như thẻ 'chaythue', nên khối '::before'
   này LÀM DỊCH toàn bộ chữ xuống 81px — đúng theo Figma (biểu tượng ở y=718,
   tiêu đề ở y≈799). */
#content .t4fx-dn-o > .col-inner::before {
  content: ""; display: block; height: 51px; margin-bottom: 30px;
  background-size: contain; background-position: left center;
}
#content .t4fx-dn-luoi1 > .col.t4fx-dn-o1 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-bat-dong-san.svg"); }
#content .t4fx-dn-luoi1 > .col.t4fx-dn-o2 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-vat-lieu.svg"); }
#content .t4fx-dn-luoi1 > .col.t4fx-dn-o3 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-noi-that.svg"); }
#content .t4fx-dn-luoi1 > .col.t4fx-dn-o4 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-dien-tu.svg"); }
#content .t4fx-dn-luoi2 > .col.t4fx-dn-o1 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-lam-dep.svg"); }
#content .t4fx-dn-luoi2 > .col.t4fx-dn-o2 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-ky-thuat.svg"); }
#content .t4fx-dn-luoi2 > .col.t4fx-dn-o3 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-van-chuyen.svg"); }
#content .t4fx-dn-luoi2 > .col.t4fx-dn-o4 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-khac.svg"); }

/* ── dangnh khổ 402: THỨ TỰ NGÀNH KHÁC HẲN desktop (13.x/§12.4) ── */
#content .t4fx-dn-mbluoi > .col > .col-inner::before {
  background-size: contain; background-position: left center;
}
#content .t4fx-dn-mbluoi > .col.t4fx-dn-mo1 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-bat-dong-san.svg"); }
#content .t4fx-dn-mbluoi > .col.t4fx-dn-mo2 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-dien-tu.svg"); }
#content .t4fx-dn-mbluoi > .col.t4fx-dn-mo3 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-khac.svg"); }
#content .t4fx-dn-mbluoi > .col.t4fx-dn-mo4 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-van-chuyen.svg"); }
#content .t4fx-dn-mbluoi > .col.t4fx-dn-mo5 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-lam-dep.svg"); }
#content .t4fx-dn-mbluoi > .col.t4fx-dn-mo6 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-ky-thuat.svg"); }
#content .t4fx-dn-mbluoi > .col.t4fx-dn-mo7 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-vat-lieu.svg"); }
#content .t4fx-dn-mbluoi > .col.t4fx-dn-mo8 > .col-inner::before { background-image: url("../assets/img/dich-vu-google-marketing/nganh-noi-that.svg"); }
/* Dấu tích tròn 24×25 ở MÉP PHẢI mỗi mục (chỉ khổ 402). */
#content .t4fx-dn-mbluoi > .col > .col-inner {
  position: relative;
}
#content .t4fx-dn-mbluoi > .col > .col-inner::after {
  content: ""; position: absolute; right: 0; top: 0; width: 24px; height: 25px;
  background: url("../assets/img/dich-vu-google-marketing/dau-tich.svg") center/contain no-repeat;
}

/* ── goi: biểu tượng "hộp gói" 29×29 trước nhãn «Gói N» ────────────────────
   [phục vụ] '.t4fx-goi-nhan' · [trang] #3, khối 'goi-dich-vu'
   [figma] node '711:18235' (desktop, 24:4384) / '1093:15131' (khổ 402,
   1093:15106) — CÙNG kích thước 29×29 ở cả hai khổ, đặt tại (24,32) tính từ
   góc thẻ 'Frame 150'/'Frame 149'/'Frame 148' — TRÙNG với gốc padding của
   '.t4fx-goi-the .t4fx-goi-nhan { padding: 32px 24px 0 }' đã có sẵn (dòng
   685), nên 'left/top' dưới đây đặt thẳng bằng đúng hai số đó, không cần quy
   đổi gì thêm.
   ⚠ Nhãn «Gói N» KHÔNG cần sửa gì: 'padding-left: 57px' (desktop, §17.37) /
   '57.33px' (402) đã ĐÚNG BẰNG 24 (thụt gốc) + 33 (icon 29 + khe 4, đo từ
   Figma: icon kết thúc ở x=2868, chữ bắt đầu x=2872) từ trước khi có icon —
   phiên trước đã canh đúng VỊ TRÍ CHỮ nhưng chưa vẽ HÌNH. Bổ sung 'position:
   relative' + '::before' là ĐỦ, tuyệt đối đừng đụng lại hai số 57/57.33 đó
   (đang khớp Figma 0 ❌, xem 'ban-giao-2026-08-22-trang3.md' §17.6). */
#content .t4fx-goi-the .t4fx-goi-nhan { position: relative; }
#content .t4fx-goi-the .t4fx-goi-nhan::before {
  content: ""; position: absolute; left: 24px; top: 32px;
  width: 29px; height: 29px;
  background: url("../assets/img/dich-vu-google-marketing/icon-goi.svg") center/contain no-repeat;
}

/* ── goi: dấu tích trước mỗi bước quy trình — 16×16, khe **4** tới chữ ─────
   [figma] 'FRAME · SVG' 16×20 (16×16 ở bước cuối «Báo cáo»), text bắt đầu
   +4px sau mép icon — ĐÚNG ở CẢ HAI khổ (desktop node 711:18250 v.v., khổ
   402 node 1093:15146 v.v. — đo lại từng cặp icon/chữ, hai khổ ra cùng một
   khe 4px). Vậy tổng thụt lề đúng là 16+4=**20px**, không phải 24. */
/* ⛔ LÔ MOBILE-P3-FIX (23/08): dấu tích nay là PHẦN TỬ THẬT — thẻ <img> trong
   chính '[ux_text]' của mỗi bước, ảnh xuất từ Figma 'cl-icon-success'
   (1093:15147 · media 3211). Bản cũ vẽ bằng '::before' + background SVG; đúng
   hình nhưng là pseudo-element, không phải phần tử, nên đã gỡ.
   ⚠ Thụt lề 20px CŨNG gỡ theo: <img> 16px + 'margin-right' 4px tự tạo đúng
   20px đó. Giữ lại cả hai là chữ lệch phải 20 (đã đo: chữ nhảy 71 → 91). */
#content .t4fx-goi-the .t4fx-goi-buoc p { position: relative; }
/* ⛔ BA LẦN TRƯỚC bật dấu tích ở khổ 402 dùng 24px/19px/19px đều làm bốn bước
   quy trình ngắt dòng khác Figma, 'goi_mb' xấu thêm 6–8 mốc (xem
   'ban-giao-2026-08-22-trang3.md' §17.4) — CHƯA ai thử đúng số Figma (20px)
   trước khi vá lần này. Nếu 20px vẫn làm 'goi_mb' xấu thêm ở LẦN VÁ SAU thì
   quay lại giới hạn desktop-only bằng '@media (min-width: 850px)' quanh khối
   trên và báo lại 4T — đừng đổi cỡ chữ/bề rộng thẻ để né, đó là sửa thiết kế,
   không phải sửa icon (ngoài phạm vi việc này). */

/* ── faqnhom: chevron 18×18 sát mép phải mỗi hộp câu hỏi ── */
#content .t4fx-faq-o > .col-inner { position: relative; }
#content .t4fx-faq-o > .col-inner::after {
  content: ""; position: absolute; right: 0; top: 0; width: 18px; height: 18px;
  background: url("../assets/img/dich-vu-google-marketing/icon-chevron-xuong.svg") center/contain no-repeat;
}

/* ── dvkhac: mũi tên 14×14 trong hộp «Xem chi tiết» 103×24 ──
   Figma: chữ tại +8, mũi tên tại +81 so với mép trái hộp.
   ⛔ VÁ 23/08/2026 — bản trước neo mũi tên vào CHÍNH THẺ ('.t4fx-dk-the') với
   'left:197px' cố định. Số 197 chỉ đúng cho thẻ rộng 335 (287 trong lòng):
   hộp «Xem chi tiết» CĂN GIỮA thẻ bằng 'margin:auto' (xem quy tắc
   '.t4fx-dk-the .t4fx-dk-xem' phía trên — comment "Figma 'Link' tại x=116
   trong lòng 287"), nên vị trí hộp DAO ĐỘNG theo bề rộng lòng thẻ. Thẻ 1 khổ
   402 (mục 17.5c) có lòng RỘNG HƠN — 304 thay vì 287 — nên hộp bị đẩy sang
   phải 9px (116→125) mà mũi tên vẫn đứng yên ở 197 ⇒ đè lên đuôi chữ ngay
   dưới tiêu đề "Dịch vụ SEO toàn diện" (thẻ tiêu điểm ở khổ 402, mục 17.5c).
   Đo trên site thật (Playwright, khổ 402): thẻ chuẩn (335/287) — chữ tận
   200, mũi tên 197-211 (chỉ đè 3px, gần như không thấy); thẻ 1 (352/304) —
   chữ tận 208, mũi tên VẪN 197-211 (đè 11px, thấy rõ).
   → Neo lại đúng cấu trúc Figma: mũi tên là ANH EM của dòng chữ TRONG CÙNG
   hộp «Xem chi tiết» 103×24 (không phải anh em cấp thẻ). Offset 81/4 đo lại
   từ thẻ chuẩn (335/287, nơi thị giác đã đúng): mũi tên tại +81 ngang / +4
   dọc TÍNH TỪ MÉP HỘP — khớp tuyệt đối "mũi tên tại +81" đã ghi trong Figma.
   Neo theo hộp thì hộp đi đâu mũi tên theo đó, không cần biết lòng thẻ rộng
   bao nhiêu. Đã thử lại đúng ba thẻ (335 chuẩn, 352 thẻ-1 khổ 402, 335 khác) —
   mũi tên nằm gọn ngoài chữ ở cả ba, không còn đè.
   ⛔ VÁ 24/08/2026 — neo tuyệt đối 'left: 81px' vẫn còn ĐÈ 2,92px lên đuôi
   chữ ở MỌI thẻ, vì chữ đang căn GIỮA hộp (19,06 → 83,92) chứ không bắt đầu
   ở 8 như Figma. Nay mũi tên là PHẦN TỬ THỨ HAI của hàng ngang (xem khối
   17.10 ở trên): 'space-between' + 'column-gap: 8px' cho khe ≥ 8 đúng bằng
   'itemSpacing' của Figma, và mũi tên tự ghim ở 81 mà không cần con số nào
   viết tay. */
#content .t4fx-dk-the .t4fx-dk-xem { position: relative; }
#content .t4fx-dk-the .t4fx-dk-xem::after {
  content: ""; position: static;
  flex: 0 0 14px; width: 14px; height: 14px;
  background: url("../assets/img/dich-vu-google-marketing/icon-mui-ten-phai.svg") center/contain no-repeat;
}

@media (max-width: 849px) {
  /* «Chiến dịch ứng dụng» ở khổ 402 ngắt thành HAI DÒNG (Figma khai '\n'
     riêng cho khổ này — LUẬT 6). Không chèn '<br>' được vì cùng một DOM phục
     vụ cả desktop, nơi tiêu đề này nằm gọn một dòng 195px. Ép ngắt bằng bề
     rộng: mực Figma ≤ 82, cho 110 là đủ để rơi đúng chỗ mà không cắt chữ. */
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the4 .t4fx-ct-ten h3 {
    max-width: 110px; margin-left: auto; margin-right: auto;
  }
}

/* ── 17.22 · Hàng nhãn của khối Casestudy — «Xem tất cả» nằm CÙNG DÒNG ─────
   [figma] nhãn «Casestudy» bên trái, «Xem tất cả» bên phải, cùng một dòng
   (dy 0, cách nhau 1004). Shortcode để hai '[ux_text]' trong một '[col]' nên
   mặc định xếp dọc.
   [lý do vượt panel] Panel không có ô "hai đầu một dòng" cho ruột một cột. */
:where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs .t4fx-hang-nhan > .col > .col-inner {
  display: flex; align-items: center; justify-content: space-between;
}

@media (max-width: 849px) {
  /* ── 17.23 · Hero khổ 402 ──
     [figma] 'hero_mb' → H1 **32/42,656** (desktop 40/53,32); hai nút
     **271×44** XẾP DỌC cách nhau 60; đoạn dẫn cách nút đầu 290. */
  #content .t4fx-hero .t4fx-hero-h1 h1 { font-size: 32px; line-height: 42.656px; }
  /* ⛔ CĂN GIỮA BẰNG 'text-align' CỦA CHA, KHÔNG BẰNG 'margin: auto'.
     Đã đo trên trang thật: đặt 'display: block' + hai lề 'auto' cho ra
     **x = 25 và 106** (một nút dính trái, một nút dính phải) — tức chỉ MỘT
     trong hai lề 'auto' thắng được cascade, còn lề kia bị một quy tắc khác
     đặt về 0, nên hộp bị "over-constrained" và phần dư dồn hết về một bên.
     Cột cha đã mang sẵn '.text-center'; để nút là 'inline-flex' thì chính
     'text-align: center' căn hộp, không cần lề nào. Thử tại chỗ: cả hai cách
     ('margin:auto !important' và 'inline-flex') đều ra đúng **x = 65,5** của
     Figma — chọn cách không dùng '!important'. */
  #content .t4fx-hero .button.t4fx-nut-trang,
  #content .t4fx-hero .button.t4fx-nut-vien {
    width: 271px; min-width: 271px; height: 44px; display: inline-flex;
  }
  #content .t4fx-hero .button.t4fx-nut-vien { margin-top: 16px; }

  /* ── 17.24 · CTA khổ 402 ──
     [figma] 'cta_mb' → chữ ngắt ở **288**; nút **224×43**, chữ 14/19,124. */
  #content .t4fx-cta .t4fx-cta-o > .col-inner { max-width: 288px; }
  #content .t4fx-cta .button.t4fx-cta-nut {
    width: 224px; min-width: 224px; height: 43px;
  }
  #content .t4fx-cta .button.t4fx-cta-nut span {
    font-size: 14px; line-height: 19.124px;
  }
}

@media (max-width: 849px) {
  /* ── 17.25 · FAQ khổ 402 hoán vị câu 2 và 3 ──
     Figma desktop: Agency · Nếu-chạy · Làm-sao (lưới 2 cột).
     Figma khổ 402: Agency · **Làm-sao** · **Nếu-chạy** (một cột).
     'order' ở đây AN TOÀN vì lưới hẹp chỉ MỘT cột — mỗi hàng đúng một thẻ
     nên không có chuyện 'order' xé lẻ cách bọc dòng (khác cảnh ở III.21). */
  #content .t4fx-faq-luoi > .col.t4fx-faq-o1 { order: 1; }
  #content .t4fx-faq-luoi > .col.t4fx-faq-o3 { order: 2; }
  #content .t4fx-faq-luoi > .col.t4fx-faq-o2 { order: 3; }

  /* ── 17.26 · Thẻ gói khổ 402: cao **525**, nút dính đáy ──
     [figma] 'goi_mb' → thẻ 337×525 (desktop 343×561). Không cố định chiều
     cao thì nút «Nhận báo giá» của ba thẻ lệch nhau 35px. */
  #content .t4fx-goi-luoi > .col.t4fx-goi-the { height: 525px; }
  #content .t4fx-goi-luoi > .col.t4fx-goi-the > .col-inner {
    display: flex; flex-direction: column; height: 100%;
  }
}
/* Desktop: thẻ gói **561** (Figma 'Background+Border' 343×561). */
@media (min-width: 850px) {
  #content .t4fx-goi-luoi > .col.t4fx-goi-the { height: 561px; }
  #content .t4fx-goi-luoi > .col.t4fx-goi-the > .col-inner {
    display: flex; flex-direction: column; height: 100%;
  }
}

@media (min-width: 850px) {
  /* Tiêu đề hàng 2 DÍNH ĐÁY một ô cao 50: Figma cho tiêu đề hai dòng bắt đầu
     SỚM hơn tiêu đề một dòng 20px và kết thúc gần cùng chỗ ⇒ khối căn theo
     mép DƯỚI, không phải mép trên. (Lần trước thử 'align-items: center' và
     hỏng thêm, nhưng khi đó '.col-inner' còn đang bị 'align-items: center'
     làm co lại — nay đã bỏ, nên phép thử này khác hẳn.) */
  #content .t4fx-ct-luoi2 .t4fx-ct-ten {
    min-height: 50px; display: flex; align-items: flex-end; justify-content: center;
  }
}

/* ── 17.27 · Khối CTA: chữ CĂN TRÁI, nút CĂN PHẢI ─────────────────────────
   [phục vụ] '.t4fx-cta-o' · [trang] #3
   [figma] 'cta' → khung chữ 1000 tại x=460 (căn TRÁI), nút 263 tại x=1197
   tức sát MÉP PHẢI của khung (460+1000 = 1460 = 1197+263). Khổ 402 y hệt:
   chữ 288 tại x=57, nút 224 kết thúc đúng 345.
   [lý do vượt panel] Ô 'align' của '[col]' chỉ đặt được MỘT kiểu căn cho cả
   cột; ở đây chữ và nút căn ngược nhau. */
#content .t4fx-cta .t4fx-cta-o { text-align: left; }
#content .t4fx-cta .t4fx-cta-h2 h2,
#content .t4fx-cta .t4fx-cta-mo p { margin-left: 0; margin-right: 0; }
#content .t4fx-cta .button.t4fx-cta-nut { margin-left: auto; margin-right: 0; display: flex; }

@media (max-width: 849px) {
  #content .t4fx-cta .t4fx-cta-h2 h2,
  #content .t4fx-cta .t4fx-cta-mo p { margin-left: 0; margin-right: 0; }
  #content .t4fx-cta .button.t4fx-cta-nut { margin-left: auto; margin-right: 0; }
}

@media (max-width: 849px) {
  /* ⚠ Luật III.19 lần thứ tư: bản desktop dòng 256–257 dùng ':first-child' /
     ':last-child' (1,4,0) nên thắng '> .col' (1,3,0) của bản hẹp, và hai cột
     tiêu đề khối «gói» vẫn nằm ngang ở khổ 402. */
  #content .t4fx-goi-sec .t4fx-head-2col > .col:first-child,
  #content .t4fx-goi-sec .t4fx-head-2col > .col:last-child {
    flex: 0 0 352px; max-width: 352px; margin-left: 0;
  }
  /* ⛔ ĐÃ THỬ thụt 19px cho dấu tích ở khổ 402 — HỎNG THÊM, đã gỡ (cũng như
     lần thử 24px trước đó). Thẻ gói khổ 402 chỉ 337px nên mọi khoảng thụt
     đều làm các bước quy trình ngắt dòng lại. Muốn có dấu tích ở khổ này thì
     phải giảm cỡ chữ hoặc nới thẻ — tức đổi thứ khác của bản thiết kế. */
}

@media (min-width: 850px) {
  /* ── 17.28 · Ba khe dọc của khối «Lý do» và mối nối sang Casestudy ───────
     [figma] nhãn → tiêu đề lớn **160,5** (đang 98,5) · đoạn dẫn → mục đầu của
     lưới 11 ý **224,5** (đang 204,7) · ý cuối → nhãn Casestudy **129**
     (đang 64,9). Ba khe này do dòng chảy tự nhiên sinh ra nên phải khai tay. */
  #content .t4fx-ld .section-content > .row:has(.t4fx-ld-lon) { margin-top: 62px; }
  /* ── 17.28b · Hai khe cuối của «Lý do» — lô page3-2 ─────────────────────
     [figma] tiêu đề lớn → tiêu đề khối **261,5** (đo 277,18 · thừa 15,68) ·
     đoạn dẫn → mục đầu lưới **224,5** (đo 213,19 · hụt 11,31).

     ⚠ Khe thứ nhất KHÔNG phải khoảng cách giữa hai hàng: hàng «split» cao
     371 (bằng ảnh) còn cột chữ chỉ 208,63, nên chữ bị CĂN GIỮA và tụt thêm
     81,18 so với mép hàng. Sửa bằng cách rút margin của chính hàng đó —
     đừng đụng vào căn giữa, vì mốc «tiêu đề khối → đoạn dẫn» (130 ↔ 130,63)
     đang khớp nhờ đúng phép căn giữa ấy.

     ⚠ Hai khe LỆCH NGƯỢC CHIỀU nên bù trừ một phần: −15,68 + 11,31 = −4,37.
     Vì vậy sửa cả hai làm chiều cao section GIẢM 4,37, tức đi từ +9 về +4,6
     — tốt hơn, không phải đánh đổi. Sửa lẻ một mốc thì mới hỏng phía kia. */
  #content .t4fx-ld .section-content > .row.t4fx-split { margin-top: 64.32px; }
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-ld .section-content > .row:has(.t4fx-lydo-o) { margin-top: 31.31px; }
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs > .section-content { padding-top: 64px; }
  /* Hàng nhãn Casestudy rộng **1080** (không phải 1044) — «Xem tất cả» căn
     sát mép phải khung 1080. */
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs .section-content > .row.t4fx-hang-nhan { max-width: 1080px; }
}

/* ── 17.29 · Bề rộng chữ FAQ khai THEO TỪNG CÂU ───────────────────────────
   [phục vụ] '.t4fx-faq-c' · [trang] #3
   [figma] Hộp chữ của mỗi câu hỏi là hộp TỰ CO theo nội dung, và người thiết
   kế đặt tay bề rộng khác nhau cho từng câu — cùng một câu «Làm sao để biết…»
   rộng **377** ở nhóm 1 nhưng **448** ở nhóm 3. Một giá trị chung 448 làm câu
   «Chạy ngân sách nhỏ…» nằm gọn MỘT dòng (ink 424,53) trong khi Figma cho nó
   hai dòng (ink 290,23).
   [lý do vượt panel] Không có ô nào của UX Builder đặt bề rộng chữ theo từng
   '[ux_text]' con trong một lưới.
   ⚠ Con số là bề rộng MỰC của Figma; đặt đúng bằng nó thì từ kế tiếp không
   lọt và chỗ ngắt dòng trùng khít. */
@media (min-width: 850px) {
  #content .t4fx-faq-luoi1 > .col.t4fx-faq-o1 .t4fx-faq-c p { max-width: 361px; }
  #content .t4fx-faq-luoi1 > .col.t4fx-faq-o2 .t4fx-faq-c p { max-width: 395px; }
  #content .t4fx-faq-luoi1 > .col.t4fx-faq-o3 .t4fx-faq-c p { max-width: 377px; }
  #content .t4fx-faq-luoi2 > .col.t4fx-faq-o1 .t4fx-faq-c p { max-width: 271px; }
  #content .t4fx-faq-luoi2 > .col.t4fx-faq-o2 .t4fx-faq-c p { max-width: 290.23px; }
  #content .t4fx-faq-luoi2 > .col.t4fx-faq-o3 .t4fx-faq-c p { max-width: 448px; }
  #content .t4fx-faq-luoi3 > .col.t4fx-faq-o1 .t4fx-faq-c p { max-width: 361px; }
  #content .t4fx-faq-luoi3 > .col.t4fx-faq-o2 .t4fx-faq-c p { max-width: 395px; }
  #content .t4fx-faq-luoi3 > .col.t4fx-faq-o3 .t4fx-faq-c p { max-width: 448px; }
}
@media (max-width: 849px) {
  #content .t4fx-faq-luoi1 > .col.t4fx-faq-o1 .t4fx-faq-c p { max-width: 276.73px; }
  #content .t4fx-faq-luoi1 > .col.t4fx-faq-o2 .t4fx-faq-c p { max-width: 276.73px; }
  #content .t4fx-faq-luoi1 > .col.t4fx-faq-o3 .t4fx-faq-c p { max-width: 276.73px; }
  #content .t4fx-faq-luoi2 > .col.t4fx-faq-o1 .t4fx-faq-c p { max-width: 294.73px; }
  #content .t4fx-faq-luoi2 > .col.t4fx-faq-o2 .t4fx-faq-c p { max-width: 294.73px; }
  #content .t4fx-faq-luoi2 > .col.t4fx-faq-o3 .t4fx-faq-c p { max-width: 276.73px; }
  #content .t4fx-faq-luoi3 > .col.t4fx-faq-o1 .t4fx-faq-c p { max-width: 314px; }
  #content .t4fx-faq-luoi3 > .col.t4fx-faq-o2 .t4fx-faq-c p { max-width: 294.73px; }
  #content .t4fx-faq-luoi3 > .col.t4fx-faq-o3 .t4fx-faq-c p { max-width: 276.73px; }
}

@media (max-width: 849px) {
  /* ── 17.30 · HIỆN LẠI thanh tab Casestudy ở khổ 402 ──────────────────────
     [phục vụ] '#casestudy .tabbed-content' · [trang] #3
     [figma] 'lydothan_mb' CÓ thanh tab — hai tiêu đề «Google Ads» và
     «Website & SEO» là lớp thật, T1 đang báo THIẾU THẬT vì chúng đo ra 0×0.
     [lý do vượt panel] '44-nhom-ggm.css' mục 20.5 khai
     '.t4 #casestudy .tabbed-content { display: none }' cho khổ hẹp, vì các
     trang #4–#7 thay thanh tab bằng một băng thẻ riêng ('div.t4fx-csmb').
     Trang #3 KHÔNG có băng thẻ đó nên bị mất trắng khối casestudy.

     ⛔ Đây là VA CHẠM QUA '_id', không phải qua lớp: '_id="casestudy"' của
     '[section]' sinh ra '#casestudy', và bất kỳ trang nào đặt cùng '_id' đều
     dính quy tắc của trang khác. Không sửa '44-nhom-ggm.css' (mô-đun của cửa
     sổ A); giành lại bằng độ đặc hiệu BẰNG NHAU + thứ tự nạp sau (51 > 44),
     phạm vi khoá bằng ':where()' nên không cộng điểm. */
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .tabbed-content {
    display: block;
  }
}

@media (max-width: 849px) {
  /* ── 17.31 · Khối Casestudy khổ 402 của RIÊNG trang #3 ───────────────────
     [figma] 'lydothan_mb' → tiêu đề tab **16px**, tab đang mở màu
     '#000000 @62%' (khổ 402 không tô xanh); ảnh **352×230 bo 4** (không tràn
     mép); trích dẫn ngắt ở **352**; hai dòng chú thích số liệu ≤ **160**.
     ⚠ Mọi lớp ở đây là mô-típ DÙNG CHUNG với #4–#7 nên phải khoá phạm vi
     bằng ':where()' (đặc hiệu 0) và dựa vào thứ tự nạp 51 > 44 để thắng. */
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .t4fx-tabs .nav li a {
    font-size: 16px;
  }
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .t4fx-tabs .nav li.active a {
    color: rgba(0, 0, 0, .62);
  }
  /* ⚠ Phải đủ BA lớp '.t4 … #casestudy … .t4fx-cs-anh img' mới ngang điểm
     với quy tắc của '44-nhom-ggm.css'; ít hơn một lớp là thua và ảnh giữ
     nguyên 402×650 tràn mép. */
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .t4fx-cs-anh img {
    width: 352px; height: 230px; object-fit: cover; border-radius: 4px;
  }
  /* Hai ô số liệu nằm CẠNH NHAU ở khổ 402 (bước 191,8), không xếp dọc. */
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .t4fx-cs-so {
    flex-wrap: nowrap; column-gap: 0;
  }
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .t4fx-cs-so > .col.t4fx-cs-o {
    flex: 0 0 191.8px; max-width: 191.8px; margin-left: 0;
  }
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs-trich p {
    max-width: 352px;
  }
  /* 🔑 'max-width: 352px' ở trên VÔ NGHĨA nếu không gỡ đệm ngang của
     '.tab-panels': Flatsome đặt 'padding: 20px', cộng viền thành 21 mỗi bên,
     nên khung 352 co còn **310** và lời chứng thực ngắt thành **6 dòng** thay
     vì 5 (mực rộng nhất 304 ↔ Figma 326). Dòng thừa đẩy «Adam Jones» xuống
     53,5. Figma đặt trích dẫn ở x=25 w=352, tức sát khung. Chỉ gỡ đệm NGANG —
     đệm dọc giữ nguyên vì khe nhãn thẻ → trích dẫn đang đúng. */
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-tabs .tab-panels {
    /* Đệm trên 15 (Flatsome mặc định 20): mốc 'Website & SEO → trích dẫn' đo
       theo HỘP nên hạ đệm trong '<p>' không dời được — phải dời chính bảng. */
    padding-left: 0; padding-right: 0; padding-top: 15px;
  }
  /* ⚠ 'padding: 28.5px 0' cho '.t4fx-cs-trich p' đến từ TỆP CỦA NHÓM KHÁC
     ('40-page-xu-ly-loi-sai-google-ads.css:1459', khai '.t4 .text…' không
     khoanh trang nên rò sang đây). KHÔNG sửa tệp đó — ghi đè hẹp tại chỗ.
     Đệm TRÊN vẫn cần (giữ đúng khe nhãn thẻ → trích dẫn), nhưng đệm DƯỚI
     đẩy «Adam Jones» xuống 28,5 so với Figma (khe mực trích dẫn→tên phải là
     **16**: Figma 2353+110 → 2479). Chuyển đệm thành lề TRÊN. */
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs-trich p {
    /* Đệm TRÊN 23,5 (kế thừa 28,5 từ tệp nhóm khác thì trích dẫn thấp 5). */
    padding-top: 23.5px; padding-bottom: 0;
  }
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs-o .t4fx-cs-mo p {
    max-width: 160px;
  }
}

@media (max-width: 849px) {
  /* ── 17.33 · Hero khổ 402: khe đoạn dẫn → nút ─────────────────────────
     [figma] đoạn dẫn kết thúc 317, nút đầu tại 461 ⇒ khe **144**. */
  #content .t4fx-hero .button.t4fx-nut-trang { margin-top: 144px; }
  #content .t4fx-hero .button.t4fx-nut-vien { margin-left: auto; margin-right: auto; }

  /* ── 17.34 · Breadcrumb khổ 402: BA mục MỘT dòng ──────────────────────
     [figma] 'crumb_mb' → Home (x=25) · Dịch vụ Google Ads (x=73) · Chạy thuê
     và setup… (x=185, cao **13** — nhỏ hơn hai mục kia). Mũi tên ngăn cách
     rộng 20. Không ép một dòng thì mục 3 rơi xuống dòng dưới (dy 28).
     [lý do vượt panel] breadcrumb do child theme in ra, không có phần tử
     builder — đã ghi cùng lối ở '41-page-chinh-sach-bao-mat.css'. */
  /* ⛔ ĐỘ ĐẶC HIỆU: '47-nhom-dich-vu.css' (tệp của cửa sổ B) khai
     'body.t4-nhom-dv3 nav.t4fx-crumb ol li:last-child { line-height: 22px }'
     (0,4,3) và 'body.t4-nhom-dv3 .t4fx-crumb li + li::before { width: 32px }'.
     Trang #3 MANG CHUNG lớp thân 't4-nhom-dv3' với ba trang của nhóm đó, nên
     bộ chọn '.t4:where(…)' (0,3,1) của khối này **thua** và ba mốc 'crumb_mb'
     đỏ trong khi CSS đọc lên thì thấy đúng. Đây là III.22 nhưng ở chiều
     ngược lại: rò rỉ TỪ mô-đun nhóm VÀO trang.
     ✅ Cách giành lại mà không sửa tệp của cửa sổ khác: lặp lại ĐÚNG bộ chọn
     của họ rồi thêm ':where(.t4-trang-…)' — đặc hiệu 0 nên điểm BẰNG NHAU, và
     mô-đun 51 nạp SAU 47 nên thắng theo thứ tự. Ba trang kia không đổi. */
  body.t4-nhom-dv3:where(.t4-trang-dich-vu-google-marketing) .t4fx-crumb ol {
    flex-wrap: nowrap; white-space: nowrap;
  }
  /* Mục cuối nhỏ hơn hai mục kia: **10px / 13** (hai mục đầu 22 cao).
     Đặt cả trên 'li' LẪN con của nó — chữ nằm trong '<a>'/'<span>' nên
     'line-height' khai ở 'li' không xuống tới nơi. */
  body.t4-nhom-dv3:where(.t4-trang-dich-vu-google-marketing) nav.t4fx-crumb ol li:last-child,
  body.t4-nhom-dv3:where(.t4-trang-dich-vu-google-marketing) nav.t4fx-crumb ol li:last-child * {
    font-size: 10px; line-height: 13px;
  }
  /* Mũi tên ngăn cách rộng **20** (Figma 'SVG' 20×14); mặc định của
     '40-page-…css' là 32 nên hai khe ngang lệch đúng 11,2px. */
  body.t4-nhom-dv3:where(.t4-trang-dich-vu-google-marketing) .t4fx-crumb li + li::before {
    width: 20px;
  }
}

@media (max-width: 849px) {
  /* Tiêu đề nhóm ĐẦU TIÊN cách H2 «Frequently Asked Questions» **126**
     (các nhóm sau cách hộp cuối 48). Hàng thứ 2 của section chính là nó. */
  #content .t4fx-faq .section-content > .row:nth-of-type(2) .t4fx-faq-nhom {
    margin-top: 40.69px;
  }
  /* Chữ câu hỏi khổ 402 'lh' **22** — mỗi dòng dôi 2px là hộp cao thêm và
     mọi bước dọc trong nhóm lệch ~12px. */
  #content .t4fx-faq-o .t4fx-faq-c p { line-height: 22px; }
}

@media (max-width: 849px) {
  /* ── 17.35 · Thanh tab Casestudy khổ 402 rộng đúng Figma ─────────────────
     [figma] khoảng cách TÂM giữa các tab: 171,6 · 252,98 · 210 — tổng ~634,
     tức thanh tab TRÀN khung 352 và cuộn ngang. Bản dựng đang hụt đúng
     **8px mỗi tab** (163,91 · 244,79 · 201,9) ⇒ thêm 4px đệm mỗi bên.
     Không cho tab co lại, nếu không nó tự bóp cho vừa 352. */
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .t4fx-tabs .nav {
    flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none;
    /* Thanh tab thụt **15,14** so với khung nội dung (Figma: tab đầu x=41,
       khung 25). Lần thử trước đặt 16 khi tab còn thừa đệm nên hỏng; nay tab
       đã đúng bề rộng thì thụt này mới có nghĩa. */
    padding-left: 15.14px;
  }
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .t4fx-tabs .nav::-webkit-scrollbar {
    display: none;
  }
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .t4fx-tabs .nav > li {
    flex: 0 0 auto; margin-right: 32px;
  }
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .t4fx-tabs .nav > li:last-child {
    margin-right: 0;
  }
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .t4fx-tabs .nav > li > a {
    /* 🔑 FIGMA KHÔNG CHO TAB ĐỆM NGANG — hộp tab CHÍNH LÀ hộp chữ:
       86 · 194 · 247 · 109 tại x = 41 · 159 · 385 · 664 ⇒ khe đúng **32**
       giữa mọi cặp. Kiểm chéo: (86+194)/2 + 32 = 172 ≈ 171,6 ✅ ·
       (194+247)/2 + 32 = 252,5 ≈ 252,98 ✅ · (247+109)/2 + 32 = 210 ✅.
       Đệm 15,85 trước đây cho ĐÚNG khoảng cách TÂM nhưng SAI bề rộng từng
       tab (thừa ~31px) — đúng cảnh "giảm đệm và tăng khe cùng lúc". */
    padding-left: 0; padding-right: 0; white-space: nowrap;
  }
}

/* ══ 17.36 · LOẠT KHE DỌC CÒN LẠI — mỗi trị là HIỆU đo được, không phải suy
   (cùng lối §20.1: chỉnh một đại lượng khi không chắc giá trị nền thì lấy
   hiệu giữa số Figma và số đo, cộng thẳng vào lề). ═══════════════════════ */
@media (min-width: 850px) {
  /* hero  H1 → đoạn dẫn +15,84 · đoạn dẫn → nút +20 · khe hai nút 16 → 12,78 */
  #content .t4fx-hero .t4fx-hero-mo { margin-top: 15.84px; }
  #content .t4fx-hero .button.t4fx-nut-trang { margin-top: 20px; }
  #content .t4fx-hero .button.t4fx-nut-vien { margin-left: 12.78px; }
  /* CTA  H2 → đoạn +16,84 · đoạn → nút +40,93 */
  #content .t4fx-cta .t4fx-cta-mo { margin-top: 16.84px; }
  #content .t4fx-cta .button.t4fx-cta-nut { margin-top: 40.93px; }
  /* dangnh  nhãn → H2 +6 · nút → ô ngành +7,56 · hàng ô 1 → hàng ô 2 +58 */
  /* ⚠ Ba trị này SỬA LẠI sau một vòng vọt quá: lần đầu tôi coi lề là thứ
     DUY NHẤT tạo ra khe nên đặt thẳng "số Figma", hoá ra còn lề của hàng
     trước cộng vào. Trị dưới đây = trị cũ + HIỆU đo được, đúng lối §20.1. */
  #content .t4fx-dn .section-content > .row.t4fx-dn-dau { margin-top: 86.03px; }
  /* Figma: hộp nút «Nhận tư vấn ngay» y=561,5 h=46 → lưới thẻ (Frame 161)
     y=694 ⇒ khe **132,5**. Với 95,12 đo được 141,1 — thừa 8,6, và mốc
     'Nhận tư vấn ngay → Ngành Bất động sản' lệch +6,5. Ruột thẻ đã đúng
     (tiêu đề lệch mép thẻ 81 ↔ Figma 83), lệch chỉ nằm ở khe này. */
  #content .t4fx-dn .section-content > .row.t4fx-dn-luoi1 { margin-top: 87.5px; }
  #content .t4fx-dn .section-content > .row.t4fx-dn-luoi2 { margin-top: 60px; }
  /* faqnhom  khe giữa hai nhóm 48 → 43 */
  #content .t4fx-faq .t4fx-faq-nhom { margin-top: 43px; }
}

@media (max-width: 849px) {
  /* hero 402  H1 → đoạn +16,17 · đoạn → nút 144 → 117 */
  #content .t4fx-hero .t4fx-hero-mo { margin-top: 16.17px; }
  #content .t4fx-hero .button.t4fx-nut-trang { margin-top: 117px; }
  /* CTA 402  H2 → đoạn +17,51 · đoạn → nút +41,06 */
  #content .t4fx-cta .t4fx-cta-mo { margin-top: 17.51px; }
  #content .t4fx-cta .button.t4fx-cta-nut { margin-top: 41.06px; }
  /* lydo 402  nhãn → tiêu đề lớn +22,5 */
  #content .t4fx-ld .section-content > .row:nth-of-type(2) { margin-top: 22.5px; }
  /* faq 402  khe giữa hai nhóm 48 → 96 (đang hụt 48) */
  #content .t4fx-faq .t4fx-faq-nhom { margin-top: 49px; }
}

/* ══ 17.37 · Loạt hai — trị = trị cũ + HIỆU đo được ═══════════════════════ */
@media (min-width: 850px) {
  /* «Gói N» thụt **33** so với mép thẻ (Figma: mực nhãn cách mực đoạn dẫn 33).
     Một quy tắc đóng bốn mốc: hai mốc «Chọn gói → Gói 1» và hai mốc
     «Gói 3 → Chạy theo ngân sách». */
  /* Nhãn «Gói N» căn GIỮA nên thụt lề chỉ dời mực theo hệ số ~0,27 (đo hai
     điểm: 0 → −544 · 33 → −535). Cần +24 ⇒ 33 + 24/0,273 ≈ **121**. */
  #content .t4fx-goi-the .t4fx-goi-nhan { padding-left: 57px; }
  /* Bước đầu quy trình phải NGANG HÀNG với «Quy trình làm việc» (dy 0). */
    /* ⚠ ':first-of-type' KHÔNG khớp: các '[ux_text]' đều là 'div' nên
     "phần tử div đầu tiên" là khối khác, không phải bước đầu. Mốc này vẫn
     đỏ — cần một lớp riêng cho bước đầu, sinh từ 'sinh-uxb-trang3.py'. */
  /* ⛔ ĐÃ GỠ 'margin-bottom: 8.93px' (19/08). Nó đẩy nút LÊN để chữa mốc
     «Báo cáo» → nút hồi bốn bước quy trình còn nằm sai chỗ. Nay bốn bước đã
     đúng vị trí, khoảng trống dưới nút chỉ do đệm đáy thẻ quyết định và
     Figma đòi đúng **37 ở CẢ HAI khổ** (desktop 561−480−44 · 402 525−444−44). */
  /* hero: hai nút cùng một dòng (dy 0, đang −10) */
  #content .t4fx-hero .button.t4fx-nut-vien { vertical-align: top; margin-top: 20px; }
  /* casestudy: nhãn và «Xem tất cả» — khung 1080 thay vì 1044 (−42,18/+34,6) */
  #content .t4fx-cs .section-content > .row.t4fx-hang-nhan > .col { padding-left: 0; padding-right: 0; }
}

@media (max-width: 849px) {
  #content .t4fx-goi-the .t4fx-goi-nhan { padding-left: 57.33px; }
  /* ⛔ ĐÃ GỠ 'margin-bottom: 5.58px' (19/08) — cùng lý do bản desktop ở trên. */
  /* (khối căn giữa hai nút hero khổ 402 đã dời lên 17.23 — 'inline-flex') */
  /* ⛔ ĐÃ THỬ hạ đệm hộp FAQ 17 → 11 để bớt 12px mỗi bước — HỎNG THÊM
     (3 → 7 mốc): đổi đệm làm đổi luôn chiều cao hộp nên khe giữa các NHÓM
     cũng trôi theo. Hai thứ đó phải chỉnh rời nhau, không dùng chung 'padding'. */
  /* breadcrumb: mục cuối 13px — quy tắc trước đặt trên 'li' không xuống tới
     thẻ '<a>'/'<span>' bên trong. */
  body.t4-nhom-dv3:where(.t4-trang-dich-vu-google-marketing) nav.t4fx-crumb ol li:last-child,
  body.t4-nhom-dv3:where(.t4-trang-dich-vu-google-marketing) nav.t4fx-crumb ol li:last-child a,
  body.t4-nhom-dv3:where(.t4-trang-dich-vu-google-marketing) nav.t4fx-crumb ol li:last-child span {
    font-size: 10px; line-height: 13px;
  }
}

@media (max-width: 849px) {
  /* ── 17.38 · Casestudy khổ 402: ảnh TRÊN, lời chứng thực DƯỚI ────────────
     [figma] 'lydothan_mb' → thanh tab y=2001, trích dẫn y=2353 ⇒ cách 352.
     Hiệu 239,5 đúng bằng chiều cao ảnh (230) + khe, tức bản dựng đang để ảnh
     và chữ NẰM NGANG như desktop nên trích dẫn không bị đẩy xuống. */
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .t4fx-cs-tren {
    flex-wrap: wrap;
  }
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .t4fx-cs-tren > .col {
    flex: 0 0 100%; max-width: 100%; margin-left: 0;
  }
  /* Trích dẫn → tên (16) · tên → chức danh (0) · chức danh → «Read full» (0) */
  /* 13 chứ không 16: mực trích dẫn (5 dòng) thấp hơn hộp của nó, nên khe
     mực→mực đo được 129 trong khi Figma đòi 126. */
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .t4fx-cs-ten { margin-top: 13px; }
}

@media (max-width: 849px) {
  /* ── 17.39 · Ruột tab casestudy khổ 402 rộng đúng 352 tại x = 25 ─────────
     [đo] khối đang rộng **310** bắt đầu ở **46** — thừa 21px đệm mỗi bên do
     '.panel' và '.col' của Flatsome cộng vào. Figma: 352 tại 25.
     Ảnh bọc cũng phải 352×230 (đang 310×330). */
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .tab-panels .panel,
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .tab-panels .panel > .row > .col {
    padding-left: 0; padding-right: 0;
  }
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .t4fx-cs-anh {
    width: 352px; height: 230px;
  }
  /* ⛔ ĐÃ THỬ thụt thanh tab 16px — hỏng thêm 1 mốc, đã gỡ. Ba mốc
     'khoang·dx(giữa)' của thanh tab đang ✅ nhờ đệm 15,85 (§20.1); dời cả
     thanh làm chúng lệch lại. Bề rộng từng tab vẫn chưa khớp Figma
     (117/226/279/140 so với 86/194/247/109) nhưng KHOẢNG CÁCH TÂM thì khớp —
     tức phải giảm đệm VÀ tăng khe cùng lúc, không dời cả thanh. */
}

@media (min-width: 850px) {
  /* ── 17.40 · 'chaythue': Figma đặt TAY vị trí dọc từng thẻ ───────────────
     Đọc từ mép thẻ (hàng 2 bắt đầu 826): video ten +194 · tối-đa +161,5 ·
     tạo-nhu-cầu và ứng-dụng +181,5. Ba con số khác nhau cho ba thẻ CÙNG số
     dòng ⇒ không có luật nào dựng lại được, phải khai lệch từng thẻ. */
  #content .t4fx-ct-luoi2 .t4fx-ct-ten { min-height: 44px; }
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the1 .t4fx-ct-ten { margin-top: 30.5px; }
  /* đoạn dẫn khối 'chaythue' nhích LÊN 8,47 (mốc 'dy(tâm)') */
  #content .t4fx-ct .t4fx-head-2col > .col.t4fx-ct-mo { margin-top: 8.47px; }
  /* thẻ «Chiến dịch tìm kiếm» có tiêu đề THẤP HƠN hai thẻ cùng hàng 5px */
  #content .t4fx-ct-luoi1 > .col.t4fx-ct-the1 .t4fx-ct-ten { margin-top: 25px; }
  #content .t4fx-ct-luoi1 > .col.t4fx-ct-the1 .t4fx-ct-en { margin-top: 1px; }
  /* hàng 2 cách hàng 1 thêm 2,5 */
  #content .t4fx-ct .section-content > .row.t4fx-ct-luoi2 { margin-top: 18.5px; }
  #content .t4fx-ct .section-content > .row.t4fx-ct-luoi1 { margin-top: 65.54px; }
}

/* Bước quy trình ĐẦU TIÊN cách «Quy trình làm việc» thêm 7,88 (§22.1 — nay có
   lớp riêng 't4fx-goi-buoc1' do bộ sinh phát). */
/* ⛔ ĐÍNH CHÍNH 20/08/2026 — bản trước đặt **−8px** với lý do «mốc đòi dy 0».
   Cái mốc đó là GHÉP CHÉO: Figma đặt thẻ 3 cao hơn hai thẻ kia đúng 35px, nên
   'Quy trình làm việc' của thẻ 1/2 (y=645) TRÙNG y với 'Tiếp nhận thông tin'
   của thẻ 3 (y=645) — bảng dày ghép hai lớp của HAI THẺ khác nhau và ra 0.
   Đuổi theo nó thì không bao giờ hội tụ: kéo lên −8 xong mốc thành −23,88.

   Số ĐÚNG trong CÙNG một thẻ: Figma 'Quy trình làm việc' y=645 → 'Tiếp nhận
   thông tin' y=680 ⇒ khe **35**. Đo được 11,2 ⇒ bù **+23,8**.
   (Đã kiểm: chênh lệch 35px giữa thẻ 3 và hai thẻ kia site dựng ĐÚNG —
   642,1 ↔ 607,1.) */
#content .t4fx-goi-the .t4fx-goi-buoc1 { margin-top: 15.8px; }
@media (max-width: 849px) {
  /* ⛔ ĐÃ GỠ 'margin-top: -8.01px' (19/08). Nó dựng lại đúng khe 11,1 mà
     chú thích ngay trên đã kết luận là SAI — Figma cho khe 'Quy trình làm
     việc' → 'Tiếp nhận thông tin' = **35 ở CẢ HAI khổ** (desktop 333−298,
     402: 309−274). Luật ghi đè này làm khổ 402 thiếu 23,9 và đẩy cả bốn
     bước lên, dồn sai số vào khe cuối→nút. */
  /* đoạn dẫn → «Quy trình làm việc» −16,5 */
  #content .t4fx-goi-the .t4fx-goi-qt { margin-top: 7.5px; }
}

@media (max-width: 849px) {
  /* dvkhac khổ 402 — bốn khe đo được: nhãn→H2 −7,83 · đoạn→thẻ +15 ·
     tiêu đề→mô tả −11 (thẻ tiêu điểm) và +11 (thẻ mờ). */
  /* ⛔ ĐÃ THỬ bốn khe này cùng lúc — hỏng thêm 1 mốc, đã gỡ. Bốn khe của
     'dvkhac' khổ 402 dính nhau (đổi khe nhãn→H2 làm trôi khe đoạn→thẻ), phải
     chỉnh TỪNG khe một và đo lại giữa mỗi lần. */
}

/* ── 17.42 · Khổ 402: khe TIÊU ĐỀ KHỐI → ĐOẠN DẪN của 'chaythue' và 'dvkhac'
   [phục vụ] '.t4fx-ct-mo' · '.t4fx-dk .t4fx-head-2col' · [trang] #3
   Nền chung 24px đúng cho 'goi' nhưng thừa ~7–8 ở hai khối kia:
     chaythue  Figma dy(hộp) 145   · đo 151,97  ⇒ 24 − 6,97 = 17,03
     dvkhac    Figma dy(tâm) 89,5  · đo 97,33   ⇒ 24 − 7,83 = 16,17
   Khoanh riêng từng khối, ĐỪNG hạ nền chung — 'goi' đang đạt sẽ hỏng theo. */
@media (max-width: 849px) {
  #content .t4fx-ct .t4fx-head-2col > .col.t4fx-ct-mo { margin-top: 17.03px; }
  #content .t4fx-dk .t4fx-head-2col > .col:last-child { margin-top: 16.17px; }
}

/* ── 17.43 · 'dvkhac': khe ẢNH→TÊN và vị trí băng thẻ ─────────────────────
   [phục vụ] '.t4fx-dk-anh' · '.t4fx-dk-truot' · [trang] #3
   (a) Khối ảnh của Flatsome ('.img.has-hover') mang sẵn 'margin-bottom: 16px',
       cộng với 'margin-top: 16px' của tiêu đề thành **32** — Figma cho **16**
       (ảnh hết ở 284 tính từ mép thẻ, tên ở 300). Ruột thẻ còn lại đã đúng
       hết: thẻ cao 608, ảnh 260×287 lệch 25 ↔ Figma 24.
   (b) Băng thẻ bắt đầu quá sớm: từ mực đoạn dẫn tới mép thẻ Figma đòi **142**
       (desktop) và **136** (402), đo được 76 và 102. */
#content .t4fx-dk-the .t4fx-dk-anh { margin-bottom: 0; }
#content .t4fx-dk-truot { margin-top: 63px; }
@media (max-width: 849px) {
  #content .t4fx-dk-truot { margin-top: 31px; }
}
/* 'Xem chi tiết' ghim đáy thẻ. Figma để nó ở **564** tính từ mép thẻ (cao 608,
   tức cách đáy 28); sau khi gỡ 'margin-bottom' thừa của khối ảnh thì nội dung
   nhích lên còn liên kết đứng yên, đo được 583 — thừa 19. */
/* ⚠ Quan hệ margin↔vị trí KHÔNG tuyến tính ở đoạn đầu — đo ba điểm:
   0 → 583 · 9 → 553 · 19 → 543. Bỏ luật này đi thì '<p>' bên trong lấy lại
   lề mặc định và nhảy một nấc ~20px; từ 9 trở đi mới đúng tỉ lệ 1:1.
   Figma đặt 'Xem chi tiết' ở **564** tính từ mép thẻ (cao 608 ⇒ cách đáy 28). */
#content .t4fx-dk-the .t4fx-dk-xem { margin-bottom: -2px; }

/* ── 17.44 · Khổ 402: hai khối còn lệch NGANG ────────────────────────────
   [phục vụ] '.t4fx-dk-truot' · '.t4fx-cs-so' · [trang] #3
   (a) Thẻ «Dịch vụ khác» đầu tiên bắt đầu ở **x=4**, Figma đặt ở **25**.
       Thẻ rộng 352 với đệm 24 ⇒ ruột phải nằm 49..353, tâm 201; đo được
       tâm 179,95 nên mốc 'Figma ipsum → Dịch vụ SEO toàn diện' lệch −20,14.
   (b) Hàng hai ô số liệu rộng **1014** (số của khổ rộng) trong khung 352 nên
       hai ô trôi sang x=341 và x=533. Figma đặt ở **25** và **217**
       (bước 192, đúng bằng 'flex: 0 0 191.8px' đã khai). */
@media (max-width: 849px) {
  #content .t4fx-dk-truot .slider .col.t4fx-dk-the:first-child { margin-left: 25px; }
  .t4:where(.t4-trang-dich-vu-google-marketing) #casestudy .t4fx-cs-so {
    /* 'padding-left' bù lề ÂM mặc định của '.row' Flatsome: đặt 'margin-left: 0'
       xong ô đầu vẫn nằm ở x=10,2 thay vì 25. */
    max-width: 352px; margin-left: 0; margin-right: 0; padding-left: 22.2px;
  }
}
@media (max-width: 849px) {
  /* Con số lớn phải nằm trong hộp **160** như dòng chú thích dưới nó, không
     trải hết cột 191,8 — Figma: hộp '5' ở x=217 w=160 ⇒ tâm 297; để trải cột
     thì tâm thành 312,7 và mốc '5 → months for the pipeline' lệch −15,5. */
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs-o .t4fx-cs-lon p {
    max-width: 160px;
  }
}


/* --- 17.20 MỐC NEO SECTION — sáu khoảng đệm đọc thẳng từ Figma -------------
   [phục vụ] phần tử: Section | khối: #ly-do · #faq · #hero · breadcrumb
   [trang] dich-vu-google-marketing | [figma] node 31:104 · 31:581 · 31:591 ·
     1093:11224 · 1093:11264 · 1093:11284 · 1093:15255
   [lý do vượt panel] panel Section chỉ có MỘT ô đệm cho cả trên lẫn dưới, mà
     các mốc dưới đây cần số RIÊNG cho từng khổ

   Mốc neo = khoảng cách mép trên section → phần tử đầu bên trong (II.G). Đo
   được trên site so với lớp Figma tương ứng:

       màn            Figma   site     cần
       lydo            88      7,93    +80,07   ← Figma chừa 80 đệm trên
       faq             96,01   0       +96,01
       hero_mb         85      82,2     +2,80
       lydo_mb         53      7,94    +45,06
       faq_mb          56,01   24      +32,01
       crumb_mb        18      15       +3,00

   ⚠ 'lydothan_mb' (−44,5) KHÔNG có luật riêng: nó nằm trong chính '#ly-do',
   nên 45px đệm của 'lydo_mb' đẩy nó xuống theo — một luật, hai mốc.

   ⛔ Phải khoá 'body.t4-trang-dich-vu-google-marketing': '#ly-do' · '#faq' ·
   '#hero' là id dùng ở hàng chục trang khác (III.4.0 luật KHÔNG ĐỘNG CHẠM). */
@media (min-width: 850px) {
  body.t4-trang-dich-vu-google-marketing #content #ly-do { padding-top: 80px; }
  body.t4-trang-dich-vu-google-marketing #content #faq { padding-top: 96px; }
}

@media (max-width: 849px) {
  body.t4-trang-dich-vu-google-marketing #content #ly-do { padding-top: 45px; }
  body.t4-trang-dich-vu-google-marketing #content #faq { padding-top: 32px; }
  /* Hero căn giữa theo chiều dọc ⇒ đệm trên dịch nội dung xuống MỘT NỬA.
     Cần +2,8 nên đặt 5,6. Cùng thủ thuật trang #4 đã dùng ở mục 11.2. */
  body.t4-trang-dich-vu-google-marketing #hero .section-content { padding-top: 5.6px; }
  /* Breadcrumb: chữ 10px của trang này (Figma 1093:11224) làm hộp <a> nằm cao
     hơn mép 'ol' 3px so với các trang dùng 13,8px. */
  body.t4-trang-dich-vu-google-marketing .t4fx-crumb-in { padding-top: 21px; }
}

/* --- 17.21 KHE H2 "Frequently Asked Questions" → tiêu đề nhóm ĐẦU: 117px ---
   [phục vụ] phần tử: Row + Text | khối: #faq | [trang] dich-vu-google-marketing
   [figma] 31:581 (frame 'faq' cao 189,01 — H2 ở y=96,01 h=53) và 31:591
     (frame 'faqnhom' — h3 ở y=24). Hai frame LIỀN NHAU, đã soi toạ độ tuyệt
     đối: faq đáy 20874,01 = faqnhom đỉnh 20874,01.
   ⇒ khe H2 → h3 = (189,01 − 96,01) + 24 = **117**. Site 96,31, hụt 20,69.
   [lý do vượt panel] khoảng cách giữa hai hàng không có ô trong panel

   ⛔ CHỈ hàng ĐẦU. Hai tiêu đề nhóm sau nằm giữa các lưới câu hỏi và đang
   khớp; đổi '.t4fx-faq-nhom' chung là dịch cả ba, phá mốc đang đạt.
   ⚠ Chỉ khổ desktop: 'faq_mb' là MỘT frame Figma phủ cả khối và đang 0 ❌. */
@media (min-width: 850px) {
  body.t4-trang-dich-vu-google-marketing #faq .t4fx-faq-nhom-dau { margin-top: 39.7px; }
  body.t4-trang-dich-vu-google-marketing #faq .t4fx-faq-nhom-dau .t4fx-faq-nhom { margin-top: 24px; }
}

/* ══ MỐC CHIỀU CAO SECTION (I.2) — vá 21/08/2026 ═══════════════════════════
   Bảng dày 3704 ✅ / 0 ❌: mọi phần tử VÀ mọi khe giữa hai mốc liền kề đều
   khớp Figma. Nhưng `kiem-cao-section` báo section ngắn hơn Figma. Hai điều đó
   chỉ cùng đúng được ở đúng một chỗ — VÙNG MÙ mà chú thích trong
   `nghiem-thu-tong.py` đã ghi: khoảng trống DƯỚI phần tử cuối. Mốc neo section
   so mép TRÊN → phần tử đầu, nên phía trên đã được canh; phần hụt nằm ở đáy.
   ⇒ Vá bằng padding-bottom, KHÔNG đụng khe giữa các phần tử (đụng là phá
     bảng dày đang sạch).
   Số cộng thêm = đúng phần chênh `kiem-cao-section` in ra, không làm tròn. */
@media (min-width: 850px) {
  /* dangnh: figma 1376 · site 1345,5 → +30,5 (đang 100px 0) */
  #content .t4fx-dn > .section-content { padding-bottom: 130.5px; }
}
@media (max-width: 849px) {
  /* các mốc _mb, đang chung một luật `padding: 60px 0` ở dòng ~492 */
  /* ⛔ VÁ 22/08/2026 — 86,4px được hiệu chỉnh TRƯỚC KHI thêm 'margin-top:
     32px' cho nút «Nhận tư vấn ngay» (17.12, cùng tệp, dòng ~930). Thêm gap
     đó là thêm ĐÚNG 32px chiều cao thật vào luồng, nên khoảng trống mù dưới
     đáy phải BỚT lại đúng 32px để tổng không đổi — đúng cơ chế bù đã ghi ở
     trên (dòng ~1904): "Vá bằng padding-bottom, KHÔNG đụng khe giữa các
     phần tử". Đã kiểm bằng 'kiem-cao-section.js': trước vá +32 (2420,5 so
     2388,48), sau vá 86,4−32=54,4px thì +0. */
  #content .t4fx-dn > .section-content      { padding-bottom: 54.4px; }  /* -26,4 rồi -32 */
  #content .t4fx-goi-sec > .section-content { padding-bottom: 96.7px; }  /* -36,7 */
  #content .t4fx-ct > .section-content      { padding-bottom: 48px; }    /* +12  */
  #content .t4fx-faq > .section-content     { padding-bottom: 118.7px; } /* -58,7 */
}
/* dvkhac — ⛔ VÁ 23/08/2026: ba nút điều khiển băng trượt (17.46, cuối tệp
   này) trước đây KHÔNG TỒN TẠI trên site — vùng trống đó từng được lấp bằng
   'padding-bottom' để so ảnh khỏi lệch mép dưới (204px desktop / 148.2px
   mobile, đã cộng đủ chỗ của 'Button - Pause Carousel' 32/43px theo khung
   Figma). Nay hàng nút CÓ THẬT trong luồng, nên phải TRỪ đúng phần chiều cao
   nó chiếm ra khỏi đệm dưới, nếu không section sẽ cao gấp đôi vùng trống đó:
     desktop 204 − (40 lề‑trên + 48 nút) = 116
     mobile  148,2 − (42 lề‑trên + 48 nút) = 58,2
   ⚠ Bố cục desktop ở đây là bản GIẢN LƯỢC, không sao chép nguyên khung Figma
   — xem chú thích 17.46 cuối tệp để biết lý do và số liệu gốc. */
@media (min-width: 850px) {
  #content .t4fx-dk > .section-content { padding-bottom: 116px; }
}
@media (max-width: 849px) {
  #content .t4fx-dk > .section-content { padding-bottom: 58.2px; }
}
/* lydo +68 — khung Figma `lydo` (31:104) trải trên #ly-do VÀ #casestudy, và
   nó dựng rất đều: chừa trên 80 · ba khe 64 · chừa dưới 80. Đo trên site thì
   mọi mốc khớp tới phần tử cuối (nội dung kết ở lệch-đỉnh 2107 vs Figma 2109),
   riêng khoảng chừa DƯỚI là 150 thay vì 80 — section #casestudy mang
   padding-bottom:150px dù shortcode khai 0px. Đúng vùng mù cũ: bớt chỗ này
   không dịch phần tử nào nên bảng dày không đổi. */
@media (min-width: 850px) {
  /* ⛔ PHẢI khoá theo trang: '#casestudy' và '.t4fx-cs' có ở 5 trang khác
     (google-map-local-seo, google-merchant-center, tracking-do-luong,
     xu-ly-loi-sai-google-ads) và '#casestudy{padding-bottom:150px}' nằm ở
     30-components.css — mô-đun DÙNG CHUNG, ngoài làn của tôi. Viết luật trần
     là đổi cả 5 trang kia mà không ai biết. */
  body.t4-trang-dich-vu-google-marketing #content .t4fx-cs { padding-bottom: 82px; }
}

/* ══ HERO KHỔ NHỎ — bản ảnh riêng ═══════════════════════════════════════════
   Ảnh hero desktop rộng 3800px đổ vào ô 402 = 9,45×, `do-anh-that` báo THỪA
   (luật kẹp hai chiều 1,5×–2,5×, BO-LUAT 323/335). Cùng lối trang chủ đã dùng
   cho `home-hero-mb-q96.webp`.
   ⚠ Bản mobile CẮT theo tỉ lệ khung 402:650 trước rồi mới thu về 804×1300 —
     ảnh gốc là 3:2 ngang, `cover` vào khung dọc sẽ phóng theo CHIỀU CAO, nên
     một bản 804×536 tuy đúng bề rộng vẫn hoá mờ (0,82×). */
@media (max-width: 849px) {
  body.t4-trang-dich-vu-google-marketing #hero .section-bg {
    background-image: url(https://demo1.tiepthitute.com/wp-content/uploads/2026/08/dvgm-hero-mb.webp) !important;
    background-size: cover;
    background-position: center;
  }
  /* Flatsome dựng nền section bằng CẢ HAI: background-image trên .section-bg
     VÀ một <img class="bg"> nằm đè lên. Chỉ đặt background-image là không đủ —
     thẻ <img> vẫn phủ kín và vẫn là thứ trình duyệt tải, nên bộ đo vẫn thấy
     tệp 3800px. Phải tắt thẻ đó ở khổ nhỏ. Đây là LỚP NỀN, không phải nội
     dung, nên không vướng luật III.1.2 về Visibility. */
  body.t4-trang-dich-vu-google-marketing #hero .section-bg > img.bg {
    display: none;
  }
}

/* ══ HAI MỐC GỘP — vá phần hụt sau khi ghép đúng cặp ═══════════════════════
   `faq`+`faqnhom` và `lydo_mb`+`lydothan_mb` là hai cặp Figma tách MỘT section
   thị giác thành HAI [Section]; nay đo gộp (xem `gop_figma` trong map mỏng).
   Ghép đúng cặp rồi thì phần hụt lộ ra là THẬT, và nằm đúng vùng mù quen
   thuộc — khoảng trống dưới phần tử cuối (BAI-HOC-PHEP-DO mục X). */
@media (min-width: 850px) {
  /* faq gộp: figma 1210,01 · site 1105,3 → +104,7 (đang 96px 0) */
  body.t4-trang-dich-vu-google-marketing #faq { padding-bottom: 104.7px; }
}
@media (max-width: 849px) {
  /* lydo_mb gộp trải #ly-do + #casestudy.
     ⛔ Trị 188 CŨ là phần bù cho lúc site còn THIẾU khối mobile (H2 «đa dạng
     ngành nghề» + đoạn dẫn + Asset 21): khi đó site hụt 127,8 so với figma
     3013, nên đáy 60,2 phải nống lên 188. Lô PAGE3-IMG-FIX dựng lại khối đó
     ⇒ site thừa 132 ⇒ trả phần bù về 188 − 132 = 56, gần đúng đáy tự nhiên
     60,2 ban đầu. Sửa khối mobile mà quên dòng này là section vọt +132. */
  body.t4-trang-dich-vu-google-marketing #casestudy { padding-bottom: 29.5px; }
}

/* ══ 17.45 · Lô PAGE3-IMG-FIX — ba minh hoạ mobile theo đúng Figma ════════
   Figma mobile 'lydothan_mb' (1093:11297) có BA minh hoạ, site chỉ có hai:

     Asset 18  1093:11360  264×200  y=0     #ly-do, TRƯỚC H2   ← thiếu hẳn
     Asset 21  1093:12978  273×200  y=1724  #casestudy         ← thiếu hẳn
     Unipart   I1093:15937;1093:7980  352×230  y=2099          ← đã có

   ⛔ Ảnh đang hiện ở #ly-do khổ 402 KHÔNG phải Asset 18, mà là minh hoạ
   mobile của TRANG #4 rò sang: '44-nhom-ggm.css:446-451' đặt background lên
   '#ly-do .img .img-inner' cho cả ba lớp trang trong ':where(...)', trong đó
   có '.t4-trang-dich-vu-google-marketing', rồi 'img { opacity: 0 }'. Tức thẻ
   <img> thật vẫn đúng byte, nhưng bị làm trong suốt và vẽ đè ảnh trang khác.
   Soi tệp ảnh không bao giờ thấy — phải kết xuất mới thấy.

   Gỡ bằng ĐÈ ở tệp trang này, KHÔNG sửa 44 (module dùng chung cho 4 trang;
   trang #4 vẫn cần luật đó). Độ cụ thể: 44 là (1,3,0) vì ':where()' bằng 0;
   dưới đây là (1,4,0) và nạp sau, nên thắng chắc cả hai đường.

   ⚠ PHẢI đè cho CẢ HAI thẻ ảnh trong #ly-do: sau lô này khổ 402 có thêm thẻ
   Asset 18, mà luật của 44 quét mọi '.img .img-inner' trong #ly-do — không đè
   thì chính ảnh vừa thêm cũng bị bôi trong suốt và đội nền cầu thang.

   Hai minh hoạ đều CĂN GIỮA khung 352 của Figma (69 = 25+44 · 64,5 = 25+39,5). */
@media (max-width: 849px) {
  .t4.t4-trang-dich-vu-google-marketing #ly-do .img .img-inner { background: none; }
  .t4.t4-trang-dich-vu-google-marketing #ly-do .img .img-inner img { opacity: 1; }

  #content .t4fx-ld .t4fx-ld-hinh-mb img { width: 264px; height: 200px; margin: 0 auto; }
  /* Asset 18 → H2: figma 232 (ảnh 200 + khe 32) · đo live 224 → thêm 8. */
  /* ⛔ PHẢI là padding, không phải margin: hàng kế (.t4fx-split) có
     margin-top riêng nên margin-bottom bị TRIỆT TIÊU LỀ và mất hẳn —
     đã đo: đặt margin 8px thì khe vẫn 224. padding không bao giờ gộp. */
  /* ⚠ Khe H2 «Tại sao…» → Asset 18: Figma khung 'lydo_mb' cao 252, chữ H2
     kết thúc ở 207 ⇒ còn 45px đệm đáy trước khi 'lydothan_mb' bắt đầu. Live
     đo được 0 ⇒ TOÀN BỘ nửa dưới của màn bị kéo lên. Đây là gốc của vệt đỏ
     "11 ý chồng nhau" trên ảnh nhiệt: không phải lệch tăng dần mà lệch ĐỀU,
     chiều cao 11 ý khớp Figma từng cái (78/26/104/52/52/52/78/52/78/78/78). */
  #content .t4fx-ld .section-content > .row.t4fx-ld-hmb { margin-top: 45px; padding-bottom: 8px; }
  /* Khe H2 «Là đối tác…» → đoạn dẫn: Figma 145 (232→377). Lề gốc 24 cho ra
     152 ⇒ đặt thẳng trị đúng thay vì cộng trừ: H2 kết thúc ở 613,5, mốc Figma
     của đoạn là 629 ⇒ lề 15,5. */
  #content .t4fx-ld .t4fx-ld-chu .t4fx-dan { margin-top: 15.5px; }
  /* Khe đoạn dẫn → ý đầu của lưới 11 ý: Figma 75 (377+104 → 556); live 65
     tính từ đáy đoạn (đoạn live cao 130 so với Figma 104 — chữ xuống dòng
     nhiều hơn), nên mốc ý đầu vọt +16. Trả về đúng mốc Figma 808. */
  #content .t4fx-ld .t4fx-lydo-o { margin-top: -16px; }

  /* ── 'dangnh' khổ 402 · [figma] 'dangnh_mb' 1093:… ────────────────────
     H2 khớp +0. Đoạn dẫn Figma y=632,48 · live 615,1 ⇒ +17,4.
     ⚠ Đoạn live cao 130 so với Figma 107 (chữ xuống dòng nhiều hơn) nên phần
     dưới phải nhận bù riêng — xem luật kế tiếp. */
  /* H2 «Chúng tôi hỗ trợ…»: Figma cao 172 = 4 dòng × 43. Live 42,656
     (=1,333×32) ra 170,6 ⇒ khai thẳng 43. */
  #content .t4fx-dn .t4fx-h2 h2 { line-height: 43px; }
  /* Đoạn dẫn: Figma y=632,48. Sau khi H2 cao đúng 172 thì lề còn 16. */
  #content .t4fx-dn .t4fx-dn-mo .t4fx-dan { margin-top: 16px; }
  /* ⚠ Đoạn dẫn live cao 130, Figma 107 — mà TOKEN GIỐNG HỆT NHAU
     (Manrope 16 / lh 26 / ls 0, đã hỏi Figma API node 1093:14611). Chênh là
     do Figma và trình duyệt đo chữ khác nhau: cùng bề rộng 352 mà Figma xếp
     4 dòng, trình duyệt xếp 5. KHÔNG chỉnh cỡ chữ để ép xuống dòng — làm vậy
     là lệch token thiết kế. Thay vào đó canh các khối DƯỚI theo vị trí tuyệt
     đối của Figma; phần 23px dôi ra được nhận lại ở khe kế tiếp.
     Nút: Figma khung bắt đầu y=771,5 (chữ 783,48 − 12 đệm), live 794,5 nếu
     giữ khe 32 ⇒ đặt 9 để nút về đúng mốc Figma. */
  #content .t4fx-dn .t4fx-dn-mo .button { margin-top: 9px; }
  /* Lưới ngành khổ 402 lệch đều +23 — đúng bằng phần đoạn dẫn cao hơn Figma
     (130 ↔ 107). Nội dung thật xuống dòng nhiều hơn lorem thì phần dư phải
     được nhận lại ở khe kế tiếp, không thể nhận ở chiều cao chữ. */
  #content .t4fx-dn .section-content > .row.t4fx-dn-mbluoi { margin-top: 23.6px; }
  #content .t4fx-cs .t4fx-cs-anhmb img { width: 273px; height: 200px; margin: 0 auto; }

  /* Figma mobile KHÔNG có hàng nhãn 'Casestudy' / 'Xem tất cả' — đã soi mọi
     khung '_mb' của trang, không khung nào chứa hai chuỗi đó. Để lại thì nó
     chèn thêm một khoảng mà bên Figma không có, và mọi khe phía dưới lệch. */
  #content .t4fx-cs .section-content > .row.t4fx-hang-nhan { display: none; }

  /* Khe dọc khối mới, trị = trị cũ + HIỆU đo được (lượt đo 21/08):
       ý cuối → H2      figma 138 · site  78    → +60
       H2 → đoạn dẫn    figma 110 · site  88,31 → +21,69
       đoạn → nhãn tab  figma 387 · site 349    → +38   (khe này ôm Asset 21) */
  #content .t4fx-cs .section-content > .row.t4fx-cs-mb { margin-top: 60px; }
  #content .t4fx-cs .t4fx-cs-momb { margin-top: 21.69px; }
  #content .t4fx-cs .t4fx-cs-anhmb { margin-top: 38px; }

  /* Figma khai letter-spacing âm cho riêng H2 này. */
  #content .t4fx-cs .t4fx-cs-h2mb h2 { letter-spacing: -0.96px; }
}

/* ── 17.46 · 'dvkhac': BA NÚT ĐIỀU KHIỂN BĂNG TRƯỢT (dựng mới 23/08/2026) ──
   [phục vụ] '.t4fx-dk-dieu-khien' · '.t4fx-dk-nut' · [trang] #3
   [figma] 'dvkhac_mb' (1093:17359) → 'Frame 144' x=21 y=982 w=360 h=48,
           SPACE_BETWEEN, hai nút tròn 48×48 bo 100, nền #ffffff, mũi tên
           #cf9156; 'Button - Pause Carousel' x=179,5 y=984 w=43 h=43 bo 100,
           nền #ffffff, icon #1f1f1f — NẰM NGOÀI Frame144 nhưng cùng băng,
           tâm đúng x=201 = tâm khung nội dung (21+360)/2.
           'dvkhac' desktop (320:1468) → hai nút 48×48 bo 24 nền #fcfbf6 mũi
           tên #b77537 NỔI GIỮA ảnh (y=603, đè lên khung Group y=319..934);
           'Button - Pause Carousel' 32×32 bo 100 nền #ffffff TÁCH RIÊNG,
           thấp hơn hẳn (y=998), không cùng hàng với hai mũi tên.
   [lý do vượt panel] không phần tử UX Builder nào tạo được nút tròn CHỈ-ICON
   với hành vi bấm tuỳ biến (cuộn slider) — đây là chỗ [button] + CSS + JS là
   thang cao nhất còn lại (III.3a nấc 3), đúng mẫu đã dùng cho hai nút cuộn
   casestudy mobile ('.t4fx-csmb-nut', 17.9).
   ⚠ ĐÃ GIẢN LƯỢC BỐ CỤC DESKTOP — một hàng space-between DUY NHẤT (giống hệt
   khổ 402) thay vì mũi tên nổi giữa ảnh + nút tạm dừng tách riêng bên dưới.
   Ba lý do: (1) mọi phần tử Flatsome kéo-thả được đều nằm trong LUỒNG bình
   thường của trang, đặt hai mũi tên đè lên ảnh đòi vị trí tuyệt đối ngoài
   luồng — vi phạm chính luật III.1.2 (không viết CSS thay panel) mà bản
   thân nút tròn này đã phải vượt một bước; (2) dữ liệu Figma cho thấy hàng
   ba nút space-between với ĐÚNG BA phần tử (trái 48 · giữa 43 · phải 48)
   tự cho ra toạ độ tâm nút giữa khớp Figma khổ 402 mà không cần định vị
   tuyệt đối nào — cùng công thức đó tái dùng được cho desktop bằng cách đổi
   max-width và cỡ nút; (3) trang CHƯA có sổ đỏ (chưa kiểm chứng T3 pixel),
   nên đây là bản "có chức năng và không sai luật phần tử", để dành phần
   overlay-đúng-Figma cho lượt nghiệm thu đầy đủ sau — đã ghi vào
   'qa/danh-sach-danh-doi.md' nếu cần đối chiếu lại.
   Màu nút mũi tên VẪN lấy đúng theo từng khổ (#cf9156 mobile · #b77537
   desktop) và cỡ nút mũi tên GIỮ NGUYÊN 48×48 cả hai khổ — hai con số Figma
   cho khớp nhau tuyệt đối nên không có lý do đổi. */
#content .t4fx-dk-dieu-khien { margin-top: 42px; }
#content .t4fx-dk-dieu-khien > .col { padding: 0; }
#content .t4fx-dk-dieu-khien .col-inner {
  display: flex; align-items: center; justify-content: space-between;
  max-width: 360px; margin: 0 auto;
}
/* min-height:0 là BẮT BUỘC — Flatsome đặt min-height 38,8px cho mọi .button,
   mà min-height THẮNG height. Không có dòng này thì nút tạm dừng desktop
   (khai 32×32) bị kéo thành 32×38,8 ⇒ hình ELIP thay vì tròn. Hai nút mũi tên
   48px không lộ lỗi vì 48 > 38,8, nên bẫy này chỉ hiện ở đúng nút nhỏ nhất. */
#content .t4fx-dk-nut.button {
  position: relative; display: flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; min-height: 0; padding: 0; margin: 0;
  border-radius: 50%; border: 0; background: #ffffff; box-shadow: none;
  flex: 0 0 auto; transition: opacity .2s ease, transform .15s ease;
}
#content .t4fx-dk-nut.button span { display: none; }
#content .t4fx-dk-nut.button:hover { transform: translateY(-1px); }
#content .t4fx-dk-nut.button:focus-visible { outline: 2px solid #cf9156; outline-offset: 2px; }
#content .t4fx-dk-nut.button.t4-dk-het { opacity: .35; pointer-events: none; }
#content .t4fx-dk-nut-truoc.button::before,
#content .t4fx-dk-nut-sau.button::before {
  content: ""; display: block; width: 10px; height: 18px;
  background-color: #cf9156;
  -webkit-mask: url("../assets/img/dich-vu-google-marketing/icon-dvkhac-chevron.svg") center/contain no-repeat;
  mask: url("../assets/img/dich-vu-google-marketing/icon-dvkhac-chevron.svg") center/contain no-repeat;
}
#content .t4fx-dk-nut-truoc.button::before { transform: scaleX(-1); }
#content .t4fx-dk-nut-tamdung.button {
  width: 43px; height: 43px;
}
#content .t4fx-dk-nut-tamdung.button::before {
  content: ""; display: block; width: 11px; height: 15px;
  background-color: #1f1f1f;
  -webkit-mask: url("../assets/img/dich-vu-google-marketing/icon-dvkhac-pause.svg") center/contain no-repeat;
  mask: url("../assets/img/dich-vu-google-marketing/icon-dvkhac-pause.svg") center/contain no-repeat;
}
/* Đổi sang icon ▶ khi JS tắt tự động trượt — đóng dấu bằng class, không đổi
   nội dung HTML (nút vẫn rỗng, chỉ [button] + CSS). */
#content .t4fx-dk-nut-tamdung.button.t4-dk-dang-tam::before {
  -webkit-mask-image: url("../assets/img/dich-vu-google-marketing/icon-dvkhac-play.svg");
  mask-image: url("../assets/img/dich-vu-google-marketing/icon-dvkhac-play.svg");
  width: 12px; height: 14px;
}

@media (min-width: 850px) {
  #content .t4fx-dk-dieu-khien { margin-top: 40px; }
  #content .t4fx-dk-dieu-khien .col-inner { max-width: 1044px; }
  #content .t4fx-dk-nut-truoc.button,
  #content .t4fx-dk-nut-sau.button { background: #fcfbf6; }
  #content .t4fx-dk-nut-truoc.button::before,
  #content .t4fx-dk-nut-sau.button::before { background-color: #b77537; }
  #content .t4fx-dk-nut-tamdung.button { width: 32px; height: 32px; }
  #content .t4fx-dk-nut-tamdung.button::before { width: 8px; height: 11px; }
  #content .t4fx-dk-nut-tamdung.button.t4-dk-dang-tam::before { width: 9px; height: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  #content .t4fx-dk-nut.button { transition: none; }
  #content .t4fx-dk-nut.button:hover { transform: none; }
}

/* ═══ 17.47 · HAI LỖI KHỔ DESKTOP 4T BẮT ĐƯỢC TỪ ẢNH CHỤP THẬT (24/08/2026) ═══
   Cả hai chỉ áp cho khổ ≥850; khổ 402 do cửa sổ khác phụ trách, không đụng. */

/* ── 17.47a · 'chaythue': TRẢ LẠI NỀN TRẮNG + BÓNG ĐỔ CHO 6/7 THẺ ──
   [phục vụ] '.t4fx-ct-luoi1 > .col.t4fx-ct-the2' · '…-the3' ·
             '.t4fx-ct-luoi2 > .col.t4fx-ct-the' (bốn thẻ)
   [trang] #3 dich-vu-google-marketing · [figma] node 268:4553 (dvkhac 1900)
   [số Figma] đọc thẳng 'figma-cache/file.json', không suy từ ảnh:

       lớp Figma                       nền        bo   viền          bóng
       268:4570 'Background'  thẻ 1/h1  gradient   30   2px #458763   —
       268:4584 'Container'   thẻ 2/h1  #ffffff    30   —             —
       268:4612 'Container'   thẻ 3/h1  #ffffff    30   1px #e6e6e6   —
       276:2078 'Overlay+Shadow' h2 thẻ 1  #ffffff  30   —   x0 y4 blur20 #000 5%
       276:1999 'Overlay+Shadow' h2 thẻ 2  #ffffff  30   —   x0 y4 blur20 #000 5%
       276:2014 'Overlay+Shadow' h2 thẻ 3  #ffffff  30   —   x0 y4 blur20 #000 5%
       276:2129 'Overlay+Shadow' h2 thẻ 4  #ffffff  30   —   x0 y4 blur20 #000 5%

   [lý do vượt panel] nền/bóng của '.col' Flatsome không có ô nào trong panel
   cho tổ hợp "nền trắng + bóng rất nhạt theo thông số Figma"; 'Depth' của
   panel cho bóng dựng sẵn, không cho x0 y4 blur20 alpha .05.

   ⛔ VÌ SAO KHAI Ở ĐÂY CHỨ KHÔNG SỬA 'background: none' PHÍA TRÊN:
   quy tắc gốc ((1,3,0), không bọc media) áp cho CẢ HAI khổ. Sửa tại chỗ là
   đổi luôn khổ 402 — ngoài phạm vi lượt này. Ba bộ chọn dưới đây cũng là
   (1,3,0) nhưng đứng SAU nên thắng ở khổ desktop, đúng cơ chế III.19 (media
   query KHÔNG cộng độ đặc hiệu — thứ quyết định là thứ tự).

   ⛔ VÀ VÌ SAO PHẢI LIỆT KÊ TỪNG THẺ, KHÔNG DÙNG '.t4fx-ct-luoi > .col.t4fx-ct-the':
   bộ chọn gộp đó cũng (1,3,0) và đứng SAU nền chuyển sắc của thẻ 1 hàng 1
   (khai ở '.t4fx-ct-luoi1 > .col.t4fx-ct-the1', cùng (1,3,0), phía trên) ⇒
   sẽ tô trắng đè mất nền xanh — đúng lỗi vá-này-đẻ-lỗi-kia. */
@media (min-width: 850px) {
  #content .t4fx-ct-luoi1 > .col.t4fx-ct-the2,
  #content .t4fx-ct-luoi1 > .col.t4fx-ct-the3,
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the { background: #ffffff; }
  #content .t4fx-ct-luoi2 > .col.t4fx-ct-the {
    box-shadow: 0 4px 20px rgba(0, 0, 0, .05);
  }
}

/* ── 17.47b · 'dvkhac': BA NÚT ĐIỀU KHIỂN VỀ ĐÚNG CHỖ Ở KHỔ DESKTOP ──
   [phục vụ] '.t4fx-dk-dieu-khien' · '.t4fx-dk-nut-truoc' · '.t4fx-dk-nut-sau'
   [trang] #3 dich-vu-google-marketing · [figma] node 320:1468 (dvkhac 1900)
   [số Figma] toạ độ QUY VỀ MÉP TRÊN-TRÁI SECTION (gốc -10970 · 16891):

       I320:1468;277:3097 'Frame 144'   x=336   y=603  w=1228 h=48  SPACE_BETWEEN
       I320:1468;277:3098 'Button' ‹    x=336   y=603  48×48  bo 24  nền #fcfbf6
       I320:1468;277:3102 'Button' ›    x=1516  y=603  48×48  bo 24  nền #fcfbf6
       I320:1468;277:3106 'Pause'  ⏸    x=934   y=998  32×32  bo 16  nền #ffffff
       I320:1468;277:3018 'Container' (hàng thẻ)  x=419,5  y=319  w=1061 h=615

   Tức Figma desktop KHÔNG xếp ba nút thành một hàng: hai mũi tên nổi ở HAI
   BÊN HÔNG hàng thẻ, còn nút tạm dừng nằm riêng ở đáy. Bản dựng 23/08 cố ý
   giản lược thành một hàng space-between giống khổ 402 (lý do ghi ở §17.46);
   4T nhìn ảnh chụp desktop bắt được ⇒ nay trả về đúng thiết kế.

   [đã đo trên site trước khi sửa, 1900px, gốc = mép trên section]
       '.t4fx-dk-truot'  x=428  y=344  1044×608     ← hàng thẻ
       nút ‹ x=428 · ⏸ x=934 · › x=1424, cả ba y≈992

   ⇒ NGANG: giữ nguyên cơ chế space-between, chỉ nới khung từ 1044 lên 1228.
     Ba phần tử (48 · 32 · 48) trong khung 1228 căn giữa màn 1900 tự cho ra
     x = 336 · 934 · 1516 — khớp Figma TUYỆT ĐỐI, không cần định vị tuyệt đối
     nào. (Nút ⏸ vốn đã đúng x=934 nhờ chính cơ chế này.)

   ⇒ DỌC: hai mũi tên lùi lên  −364px:
        40  khe hàng thẻ → hàng nút ('margin-top' §17.46)
     + 608  chiều cao hàng thẻ
     − 284  Figma: mũi tên y=603 cách mép trên hàng thẻ y=319 đúng 284
     ───────
       364
     Neo theo HÀNG THẺ chứ không theo mép section: hàng thẻ trên site nằm ở
     y=344 còn Figma 319 (section site cao 1156 ↔ Figma 1130), nên lấy y=603
     tuyệt đối sẽ đặt mũi tên cao hơn tâm thẻ 25px. Quan hệ mũi-tên-với-thẻ
     mới là thứ Figma vẽ và là thứ mắt nhìn thấy.

   ⛔ DÙNG 'position: relative' + 'top', KHÔNG dùng 'position: absolute':
   relative giữ nút TRONG luồng, nên hàng vẫn cao 48px và nút ⏸ vẫn được
   'align-items: center' đặt đúng y≈996 như trước. Chuyển sang absolute là
   rút hai mũi tên khỏi luồng ⇒ hàng co lại còn ~39px (chiều cao nút ⏸) và
   nút ⏸ tự trôi lên, đẻ ra một lỗi mới ở chỗ đang đúng.

   ⛔ KHÔNG cần 'z-index': hai nút đứng SAU hàng thẻ trong DOM và cả hai đều
   'position: relative', nên chúng đã vẽ đè lên thẻ theo thứ tự vẽ.

   ⚠ 'max-width' tự kẹp ở khổ hẹp hơn: tại 1024px hàng nút chỉ rộng 1024 nên
   mũi tên bám hai mép, không sinh cuộn ngang (kiem-vo 5 khổ). */
@media (min-width: 850px) {
  #content .t4fx-dk .section-content > .row.t4fx-dk-dieu-khien { max-width: 1228px; }
  #content .t4fx-dk-dieu-khien .col-inner { max-width: 1228px; }
  #content .t4fx-dk-nut-truoc.button,
  #content .t4fx-dk-nut-sau.button { top: -364px; }
}

/* ══ 17.48 · DESKTOP — NĂM THỨ FIGMA VẼ MÀ SITE KHÔNG CÓ ═══════════════════
   [phục vụ] '.t4fx-dn-o' · '.t4fx-faq-o' · '.t4fx-cs-tatca' · '.t4fx-ld-lon'
   [trang] #3 dich-vu-google-marketing
   [figma] desktop 24:4384 — '279:5630' (dangnh) · '31:591' (faqnhom) ·
           '31:104' (lydo + casestudy)
   [lý do vượt panel] panel Flatsome không có ô nào cho: nét viền một cạnh của
   cột, biểu tượng trang trí góc, nền/bo góc của một '.col', hay kiểu chữ khác
   nhau giữa hai dòng trong CÙNG một lớp chữ.

   4T gửi ảnh chụp desktop và nói "sai nghiêm trọng". Đối chiếu ẢNH FIGMA với
   ẢNH CHỤP SITE (không qua bảng dày) thì ra năm chỗ — bảng dày mù cả năm vì
   không chỗ nào sinh ra một mốc nào: bốn chỗ đầu là PHẦN TỬ VẮNG MẶT (II.K-3),
   chỗ thứ năm là ghi đè kiểu chữ theo đoạn con (LUẬT 6 · III.15).

   ⚠ TẤT CẢ bọc trong '@media (min-width: 850px)': III.19 — media query KHÔNG
   tăng độ đặc hiệu, mà khối này nằm CUỐI tệp nên để trần là đè luôn lên các
   quy tắc khổ 402 viết ở giữa tệp (ví dụ '.t4fx-ld-lon h2 { font-size: 24px }'
   dòng 683). Khổ 402 đã được soi kỹ và đang đúng — không đụng vào.

   [đo trên site TRƯỚC khi sửa, 1900px]  chiều cao section:
       nganh-nghe 1375,95 · ly-do 1241,61 · casestudy 978 · faq 1210,03
   [đo LẠI SAU khi áp khối này]  y hệt từng số một — không khối nào xê dịch.
   ────────────────────────────────────────────────────────────────────────── */
@media (min-width: 850px) {

  /* ── 17.48a · dangnh: NÉT KẺ DỌC bên trái mỗi ô ngành nghề ──────────────
     [figma] mỗi ô là một frame tên 'VerticalBorder' 252 rộng, stroke
     '#000000' alpha 0,11 · dày 1 · INSIDE · 'stroke_rieng = {trái: 1}'.
     Ô ở x = 410 · 686 · 962 · 1238 (bước 276), cao 267 (hàng 1) / 291 (hàng 2),
     đệm pl 15 · pr 15 · pt 24 · pb 32.
     Site: '.t4fx-dn-o' CHÍNH LÀ hộp trong lòng (x 425,5 · rộng 221), tức nó
     nằm THỤT 15,5 so với mép ô Figma và cao ÍT HƠN 34 (không có pt/pb).
     ⇒ vẽ nét kẻ bằng '::before' định vị tuyệt đối theo đúng ba số đó, KHÔNG
     nới '.col' (nới là đổi 'flex-basis' 221 đang khớp Figma từng px).
     Kiểm bằng điểm ảnh trên chính ảnh Figma: cột x=410–411 có nét
     (238,237,232) trên nền (252,251,246) — nét CÓ ở cả ô đầu tiên. */
  #content .t4fx-dn-luoi > .col.t4fx-dn-o { position: relative; }
  #content .t4fx-dn-luoi > .col.t4fx-dn-o::before {
    content: ""; position: absolute; left: -15.5px; width: 1px;
    background: rgba(0, 0, 0, .11);
  }
  #content .t4fx-dn-luoi1 > .col.t4fx-dn-o::before { top: -1.5px; height: 267px; }
  #content .t4fx-dn-luoi2 > .col.t4fx-dn-o::before { top: -3.5px; height: 291px; }

  /* ── 17.48b · dangnh: DẤU TÍCH TRÒN CAM ở góc trên-phải mỗi ô ───────────
     [figma] 'check_circle-1.svg' 24×25 tại x = mép phải hộp chữ − 24
     (623 với hộp 426..647), y = 718 tức ĐÚNG mép trên hàng biểu tượng.
     Vòng tròn '#cf9156', dấu tích trắng — đã kiểm màu điểm ảnh (207,145,86).
     Tệp SVG đã có sẵn từ khổ 402 (§17.21, '.t4fx-dn-mbluoi'), chỉ desktop là
     chưa bao giờ được khai — đúng dạng lỗi "khai cho mobile, quên desktop".

     ⚠ Đồng thời SỬA VỊ TRÍ BIỂU TƯỢNG NGÀNH: Figma đặt nó ở y=718 = mép ô +24
     (đệm trên), site đặt ở +0 rồi bù bằng 'margin-bottom: 30' để tiêu đề vẫn
     rơi đúng chỗ. Tiêu đề/mô tả vì thế ĐANG ĐÚNG nhưng biểu tượng CAO HƠN
     Figma 22,5px. Chuyển 22,5 đó từ 'margin-bottom' sang 'padding-top' của
     '.col-inner': tổng vẫn 22,5+51+7,5 = 81 = 0+51+30 cũ ⇒ tiêu đề (1402,5),
     mô tả (1434,5) và chiều cao hàng KHÔNG đổi một px nào.
     ⛔ Đừng đổi thành 'margin-top' trên '::before' — '.col-inner' không có
     đệm/viền nên lề sẽ THOÁT RA NGOÀI (margin collapsing) và đẩy cả cột
     xuống thay vì đẩy riêng biểu tượng. */
  #content .t4fx-dn-luoi > .col.t4fx-dn-o > .col-inner {
    position: relative; padding-top: 22.5px;
  }
  #content .t4fx-dn-luoi > .col.t4fx-dn-o > .col-inner::before { margin-bottom: 7.5px; }
  #content .t4fx-dn-luoi > .col.t4fx-dn-o > .col-inner::after {
    content: ""; position: absolute; right: 0; top: 22.5px; width: 24px; height: 25px;
    background: url("../assets/img/dich-vu-google-marketing/dau-tich.svg") center/contain no-repeat;
  }

  /* ── 17.48c · dangnh: THỤT LỀ danh sách con 21px ────────────────────────
     [figma] hộp chữ mô tả x=426 rộng 221, nhưng MỰC bắt đầu ở 434,87 — chênh
     8,87 vì Figma dựng nó bằng danh sách có dấu chấm đầu dòng. Quét điểm ảnh
     trên ảnh Figma, năm dòng của ô 1:
         dòng 1 · 4 · 5 (đầu mục): chấm 434,5–438,3 rồi chữ từ 447,1
         dòng 2 · 3 (dòng tiếp):   chữ từ 447,1  ← thụt treo, thẳng hàng nhau
     ⇒ MỌI dòng bắt đầu ở 447,1; site đang để 425,5, tức lệch 21,6px ở cả 8 ô.
     'padding-left: 21' đưa mọi dòng về 446,5 (Δ0,6 — trong ngưỡng 3px của
     I.2 cho vị trí ngang lớp chữ) và không đổi số dòng của ô nào.

     ✅ GỠ BLOCKER 24/08/2026 — đã tách mỗi mục thành một '<p>' riêng trong
     'docs/uxb/…' và dựng chấm bằng '::before'. Cả THỤT LỀ lẫn CHẤM nay khai
     MỘT CHỖ DUY NHẤT ở §17.49 cuối tệp, dùng chung cho hai khổ — xem ở đó.
     ⛔ Đừng khai lại 'padding-left' ở đây: bộ chọn này (1,3,0) mạnh hơn bộ
     chọn (1,2,0) của §17.49, nên nó sẽ ép thụt lề cả ô MỘT MỤC («Spa, nail,
     salon tóc») — mà Figma khai ô đó 'lineTypes: ["NONE"]', KHÔNG chấm,
     KHÔNG thụt. */

  /* ── 17.48d · faqnhom: Ô CÂU HỎI có NỀN KEM + BO 16 ─────────────────────
     [figma] frame 'Background+Border' 516×98 tại x=420 / 964 (khe 28):
         nền '#efe8da' · stroke '#000000' alpha 0,11 dày 1 INSIDE · bo góc 16
     Site có ĐÚNG hộp 516×98 và đệm 21/25, chỉ thiếu nền/viền/bo góc ⇒ câu hỏi
     trôi nổi trên nền trang. Cùng lớp lỗi với 17.48b: hình nền khai thiếu ở
     desktop.
     [III.14.2-4] Figma đo đệm TỪ BÊN TRONG nét viền, nên 25 = 1 viền + 24 đệm
     và 21 = 1 + 20. Khai 'padding: 20px 24px' + 'border: 1px' giữ chữ đứng
     nguyên chỗ cũ (mực x=445 · y=+21) và hộp vẫn đúng 516×98. */
  #content .t4fx-faq-luoi > .col.t4fx-faq-o {
    background-color: #efe8da;
    border: 1px solid rgba(0, 0, 0, .11);
    border-radius: 16px;
    padding: 20px 24px;
  }

  /* ── 17.48e · casestudy: «Xem tất cả» là NÚT VIỀN, không phải chữ trơ ────
     [figma] frame 'Link' 132×35 tại x=1358 (mép phải 1490 = mép phải khung
     1080): stroke '#155446' dày 1 INSIDE · bo góc 5 · đệm 30/8 · KHÔNG có nền
     (đã kiểm điểm ảnh: trong lòng nút là (252,251,246) = đúng nền section,
     còn nét viền ở x≈1359 là (79,125,114) = '#155446' pha viền 1px).
     Chữ 72×19 tại x=1388 — site ĐANG ĐÚNG chỗ đó rồi (§ khối "casestudy" ở
     đầu tệp đã canh bằng 'margin-right: 30px'), chỉ thiếu cái hộp.
     ⇒ Nới bằng đệm rồi bù lại bằng lề ÂM đúng bằng đệm+viền, nên CHỮ KHÔNG
     DỊCH một px: 1+29 = 30 mỗi bên ngang, 1+7 = 8 mỗi bên dọc. Cùng lối mà
     khối 'vùng chạm WCAG' phía trên đã dùng (padding 2,5 / margin −2,5), chỉ
     thay hai con số — nên phải GHI ĐÈ cả 'padding' lẫn 'margin' của khối đó.
     [đo sau khi áp] hộp 1358,4 · 131,6×35,1 (figma 1358 · 132×35) · chữ vẫn
     ở 1388,4. */
  :where(.t4-trang-dich-vu-google-marketing) #content .t4fx-cs-tatca a {
    padding: 7px 29px; margin: -8px -30px;
    border: 1px solid #155446; border-radius: 5px;
  }
  /* Kẻ đứt nét của dải nhãn phải DỪNG TRƯỚC nút, đúng như Figma:
     'Horizontal Divider' x=517 rộng 825 ⇒ hết ở 1342, rồi 16px trống, rồi nút
     ở 1358 — cùng khe 16 mà chip «Casestudy» để lại ở đầu hàng.
     Site cho '.t4-label::after' 'flex: 1 1 auto' nên nó chạy tới 1388,4 (mép
     trái CHỮ). Chừng nào nút chưa có viền thì không ai thấy; có viền rồi là
     nét đứt xuyên thẳng qua lòng nút. 1388,4 − 1342 = 46,4. */
  :where(.t4-trang-dich-vu-google-marketing)
  #content .t4fx-cs .t4fx-hang-nhan .t4-label.t4fx-nhan::after { margin-right: 46.4px; }

  /* ── 17.48f · lydo: TIÊU ĐỀ HAI DÒNG HAI KIỂU (LUẬT 6 · III.15) ─────────
     [figma] lớp '271:1844' khai 'co_ghi_de_kieu: true', ba đoạn:
         29 ký tự  PlayfairDisplay-Italic   w400  size 38  lh 60   ← dòng 1
         21 ký tự  PlayfairDisplay-SemiBold w600  size 50  lh 60   ← dòng 2
     Site đang cho CẢ HAI dòng 38 / w400 / không nghiêng ⇒ mất hẳn tương phản
     mà thiết kế dựng ra. Mốc 'size' và 'mau' của bảng dày vẫn ✅ vì bảng đọc
     kiểu chữ của CẢ LỚP (I.8d) — đúng điểm mù mà LUẬT 6 mô tả.

     Nội dung là '<h2>dòng 1<br>dòng 2</h2>', không có '<span>' để bám, và
     sửa markup thì phải đụng post_content (xem blocker ở 17.48c). Nên dựng
     ngược: đặt kiểu DÒNG 2 làm nền của h2, rồi trả kiểu dòng 1 bằng
     '::first-line' — 'font-size'/'font-weight'/'font-style' đều nằm trong
     nhóm thuộc tính mà CSS cho phép trên '::first-line'.
     ⚠ An toàn vì có '<br>' cứng: dòng 1 luôn đúng là 29 ký tự đó, không phụ
     thuộc bề rộng. Ở 1080 dòng 1 chỉ rộng 485,9 nên không có nguy cơ tự ngắt.
     [đo sau khi áp] dòng 1 rộng 485,9 (nghiêng 38) · dòng 2 x=669,1 rộng
     561,7 (figma mực x=670,79 rộng 558,65) · hộp h2 vẫn 1080×120, y không đổi. */
  #content .t4fx-ld-lon h2 { font-size: 50px; font-weight: 600; }
  #content .t4fx-ld-lon h2::first-line {
    font-size: 38px; font-weight: 400; font-style: italic;
  }
}

/* ══ 17.49 · DẤU CHẤM ĐẦU DÒNG ở 'nganh-nghe' — CẢ HAI KHỔ (24/08/2026) ═════
   [phục vụ] '.t4fx-dn-omo' (dùng ở CẢ '.t4fx-dn-luoi' desktop lẫn
             '.t4fx-dn-mbluoi' khổ 402 — cùng một lớp, một bộ quy tắc)
   [trang] #3 dich-vu-google-marketing
   [figma] desktop '279:5630' · khổ 402 '1093:14580'
   [lý do vượt panel] panel Text của Flatsome không có kiểu danh sách; và
   'list-style' của trình duyệt không đặt được chấm 3,5px ở đúng toạ độ Figma.

   ⛔ NGUỒN SỐ LÀ 'lineTypes', KHÔNG PHẢI CẢM GIÁC NHÌN ẢNH. Mỗi lớp chữ mô tả
   của Figma khai thẳng kiểu từng dòng:
       'lineTypes: ["UNORDERED", "UNORDERED", …]' · 'lineIndentations: [1, 1, …]'
   7/8 ô khai UNORDERED. Riêng ô «Làm đẹp» ('Spa, nail, salon tóc') khai
   'lineTypes: ["NONE"]' · 'lineIndentations: [0]' ⇒ **KHÔNG chấm, KHÔNG thụt**.
   Y HỆT nhau ở cả hai khổ — đã đối chiếu từng lớp một.

   [số đo — quét điểm ảnh trên chính ảnh Figma xuất ra, CẢ HAI khổ cho cùng
    một bộ số, tương đối so với mép trái hộp chữ, trong một dòng cao 24]
       chấm   x 8,5 … 12,0   ·  y 11,0 … 14,0   ⇒ tâm (10,25 · 12,5) · Ø 3,5
       chữ    x 21,5 (dòng đầu và MỌI dòng tiếp — thụt treo)
       màu chấm  điểm ảnh đặc (31,31,31) = '#1f1f1f' = ĐÚNG màu chữ ⇒ dùng
                 'currentColor', không gõ mã màu (chữ đổi màu thì chấm theo).
   Kiểm chéo bằng 'absoluteRenderBounds': hộp x=426 ↔ mực x=434,87 (desktop) và
   hộp x=2815 ↔ mực x=2823,9 (402) — chênh 8,87/8,9, đúng vị trí chấm.

   ⛔ VÌ SAO PHẢI TÁCH '<p>', KHÔNG CHỮA ĐƯỢC BẰNG CSS TRÊN MARKUP CŨ:
   nội dung cũ là MỘT '<p>' với các mục ngăn bằng '<br>'. Chrome KHÔNG kết xuất
   '::before'/'::after' trên '<br>' — đã thử trên site thật, bốn dòng sau vẫn
   không có chấm nào. 'display: list-item' và '::marker' cũng bất lực vì chúng
   bám vào HỘP, mà cả năm dòng chỉ có một hộp. Nay mỗi mục là một '<p>' riêng
   (chỉ đổi CÁCH NGĂN DÒNG, KHÔNG đổi một chữ nào — 4T đã chốt giữ nguyên văn).

   ⛔ 'margin: 0' LÀ BẮT BUỘC, KHÔNG PHẢI CHO ĐẸP. '10-base.css' cho mỗi đoạn
   một lề đáy; trước đây chỉ có MỘT '<p>' nên '.text p:last-child' của Flatsome
   triệt nó đi và lề luôn bằng 0. Tách ra thành nhiều '<p>' là mọi đoạn TRỪ
   đoạn cuối lấy lại lề đó ⇒ mỗi ô cao thêm ~16px MỖI MỤC và cả hai hàng lưới
   đổi chiều cao. Đo trước/sau xác nhận: chiều cao mọi ô KHÔNG đổi một px.
       [đo trước] desktop omo h = 120·120·120·72 / 24·72·72·144
                  402     omo h = 96·48·144·48 / 24·48·72·96
       — trùng khít chiều cao lớp chữ Figma khai cho từng ô ở từng khổ.

   ⚠ Bộ chọn cố ý để (1,2,0) và KHÔNG bọc '@media': một bộ số đúng cho cả hai
   khổ (III.19 — 'media' không cộng đặc hiệu, nên khai hẹp ở đây chỉ tổ đẻ ra
   hai nơi phải sửa). Ô một mục loại trừ bằng ':only-child' — '<p>' là phần tử
   con duy nhất của 'div.text', các nút văn bản trắng KHÔNG tính. */
#content .t4fx-dn-omo p { margin: 0; }
#content .t4fx-dn-omo p:not(:only-child) {
  position: relative; padding-left: 21.5px;
}
#content .t4fx-dn-omo p:not(:only-child)::before {
  content: ""; position: absolute;
  left: 8.5px; top: 10.75px; width: 3.5px; height: 3.5px;
  border-radius: 50%; background: currentColor;
}


/* ══ 17.50 · 'dvkhac' — BA THỨ FIGMA VẼ MÀ SITE KHÔNG CÓ (24/08/2026) ═══════
   [phục vụ] '.t4fx-dk' (Section) · '.t4fx-dk-the' (Col) · '.t4fx-dk-xem' (Text)
   [trang] #3 dich-vu-google-marketing — CẢ HAI KHỔ
   [figma] desktop '320:1468' · khổ 402 '1093:17359'
   [lý do vượt panel] (a) panel Section chỉ cho MỘT màu nền hoặc MỘT ảnh nền —
     không có ô nào cho chuyển sắc năm chặng; (b) 'Depth' của panel Col cho
     bóng dựng sẵn theo nấc, không cho đúng bộ x3 y3 blur8 alpha .25;
     (c) không phần tử UX Builder nào vẽ được một đường KẺ ĐỨT nhịp 3/2.

   4T đối chiếu ảnh Figma với ảnh chụp site và chỉ ra: section MẤT HẲN nền,
   thẻ MẤT bóng, và THIẾU vạch kẻ đứt phía trên «Xem chi tiết». Đo lại trên
   site trước khi sửa, cả ba đều đúng:
       '#dich-vu-khac'   backgroundColor rgba(0,0,0,0) · backgroundImage none
       '.t4fx-dk-the'    boxShadow none
       quét toàn section: KHÔNG phần tử nào có 'border-style: dashed/dotted'
   Không mốc nào của bảng dày sinh ra cho ba chỗ này (II.K-3 — nền phẳng, bóng
   và đường kẻ đều không phải lớp chữ, không phải lớp ảnh).
   ────────────────────────────────────────────────────────────────────────── */

/* ── 17.50a · NỀN SECTION: nền đặc #fcfbf6 + chuyển sắc NĂM CHẶNG ──────────
   [figma] 'fills' của '320:1468' VÀ của '1093:17359' GIỐNG HỆT NHAU — đã đối
   chiếu từng chặng một; lớp con 'Rectangle 6' mang đúng bộ fill đó.

       lớp 1  SOLID          #fcfbf6                       (= '--t4-light')
       lớp 2  GRADIENT_LINEAR  handle (0.5, 0) → (0.5, 1) ⇒ 'to bottom'
              #efe8da  alpha 0     @  0,0000 %
              #efe8da  alpha 1     @ 26,0281 %
              #ebe0c9  alpha 1     @ 50,0706 %   ← chặng đậm nhất, KHÔNG phải
              #efe8da  alpha 1     @ 74,8417 %     #efe8da; bỏ nó đi là mất
              #efe8da  alpha 0     @ 100,0000 %    hẳn dải sẫm giữa section

   ⛔ KHÔNG dùng lại '.t4-bg-fade-mid' của '30-components.css'. Mô-típ đó chỉ
   có BA chặng ('rgba(239,232,218,0) 0% → #EFE8DA 51% → rgba(...,0) 100%') và
   KHÔNG có chặng '#ebe0c9' ở giữa. Đây là một chuyển sắc KHÁC, không phải
   biến thể — sửa lớp dùng chung cho khớp chỗ này là đổi nền của mọi trang
   đang gọi nó (III.4.0 Luật BIẾN THỂ + III.22).
   ⚠ Bộ fill năm chặng này còn xuất hiện ở một Section thứ hai của file Figma
   ('568:25116'). Khi nào trang đó được dựng thì đây là ứng viên NÂNG CẤP lên
   '30-components.css' (III.4.0 Luật NÂNG CẤP) — chưa nâng bây giờ vì dời luật
   là đổi thứ tự tầng bậc, phải chạy lại Chặng 2 cho mọi trang có sổ đỏ
   (III.4.5). Một trang dùng thì để ở tệp của trang.

   ⚠ Vị trí chặng lấy ĐÚNG số Figma khai. 'Rectangle 6' cao 1142 trong khi
   section cao 1130 (tràn 6 trên + 6 dưới, 'clipsContent: true'), nên quy về
   hệ toạ độ của section thì ba chặng giữa là 25,77 % · 50,07 % · 75,11 % —
   lệch tối đa 0,27 % của 1130 ⇒ **3** px trên một dải chuyển sắc rất mềm,
   nằm sâu dưới ngưỡng ΔE 2,5 của I.2. Không bù, để đúng số Figma khai. */
#content .t4fx-dk {
  background-color: var(--t4-light);
  background-image: linear-gradient(to bottom,
      rgba(239, 232, 218, 0) 0%,
      rgba(239, 232, 218, 1) 26.0281%,
      rgba(235, 224, 201, 1) 50.0706%,
      rgba(239, 232, 218, 1) 74.8417%,
      rgba(239, 232, 218, 0) 100%);
}

/* ── 17.50b · BÓNG ĐỔ CỦA THẺ ─────────────────────────────────────────────
   [figma] effect nằm trên 'Background+Border' — tức CHÍNH THẺ ('.col.t4fx-dk-the'),
   KHÔNG phải trên '.col-inner' và cũng không phải trên 'Rectangle 3' (ảnh).
   Đã đọc thẳng 'figma-cache/file.json' cho CẢ BẢY thẻ desktop và CẢ BỐN thẻ
   khổ 402 — cùng một bộ số, không thẻ nào khác:

       DROP_SHADOW · offset x **3** y **3** · radius (blur) **8**
       màu #000000 alpha **0,25** · spread 0 · showShadowBehindNode false

   ⇒ 'box-shadow: 3px 3px 8px rgba(0,0,0,.25)'. Một bộ số đúng cho cả hai khổ
   nên KHÔNG bọc '@media' (III.19 — khai hẹp chỉ tổ đẻ ra hai nơi phải sửa).

   ⛔ 'showShadowBehindNode: false' KHÔNG dịch thành 'inset' và cũng không cần
   quy tắc nào: nó chỉ nói Figma không vẽ bóng ở phần bị chính node che, mà
   thẻ đây là hộp ĐẶC (#fff, bo 16) nên hai cách vẽ cho ra y hệt nhau. */
#content .t4fx-dk-truot .col.t4fx-dk-the {
  box-shadow: 3px 3px 8px rgba(0, 0, 0, .25);
}

/* ⛔ BĂNG TRƯỢT CẮT MẤT BÓNG NẾU KHÔNG CHỪA CHỖ. '.slider' khai
   'overflow-x: auto; overflow-y: hidden' (17.46) và cao ĐÚNG BẰNG thẻ (608),
   nên bóng tràn 5px lên trên và 11px xuống dưới bị xén sạch ở cạnh trên/cạnh
   dưới — nhìn ra thành "chỉ có bóng hai bên". 'overflow-y: visible' KHÔNG
   cứu được: theo CSS, 'visible' cặp với một trục 'auto' sẽ tự tính thành
   'auto', tức thêm một khung cuộn dọc chứ không bỏ xén.
   → Chừa chỗ bằng ĐỆM (vùng xén là hộp ĐỆM, không phải hộp nội dung) rồi rút
   lại đúng bằng LỀ ÂM, nên hộp bố cục của '.slider' và mọi thứ dưới nó KHÔNG
   xê dịch một px nào. Đã đo trước/sau để xác nhận.
   ⚠ Chỉ đụng trục DỌC. Thêm đệm ngang là đổi 'scrollLeft' gốc và làm sai mọi
   phép tính nhịp cuộn của 'assets/js/trang-dich-vu.js'. */
#content .t4fx-dk-truot .slider {
  padding-top: 12px; padding-bottom: 16px;
  margin-top: -12px; margin-bottom: -16px;
}

/* ── 17.50c · VẠCH KẺ ĐỨT phía trên «Xem chi tiết» ─────────────────────────
   [figma] 'Frame 77' (auto-layout DỌC, gap **8**, align CENTER) chứa đúng hai
   thứ: 'Separator' rồi tới 'Link'. Bộ số GIỐNG HỆT ở mọi thẻ và cả hai khổ:

       Separator  h **1** · rộng = TRỌN LÒNG THẺ (287; thẻ tiêu điểm khổ 402
                  rộng 352 nên lòng **304**)
       strokeDashes  **[3, 2]**  ⇒ 3 vẽ · 2 trống
       stroke  SOLID #000000 · opacity **0,11** · weight 1 · align INSIDE
       khe Separator → Link  **8**

   ⛔ 'border-top: 1px dashed' KHÔNG dựng được nhịp 3/2 — trình duyệt tự chọn
   độ dài nét/khoảng theo bề dày viền (III.15.5). Dùng
   'repeating-linear-gradient' để khai thẳng hai con số.

   🔑 NEO VÀO CHÍNH HỘP «Xem chi tiết», không neo vào thẻ hay '.col-inner'.
   Trong Figma, Separator và Link là hai con của cùng một khung, tâm trùng
   nhau; trên site hộp «Xem chi tiết» đã căn giữa lòng thẻ bằng 'margin: auto'
   (17.10), nên lấy nó làm gốc thì vạch tự đúng tâm ở CẢ ba loại lòng thẻ
   (287 desktop · 287 thẻ thường 402 · 304 thẻ tiêu điểm 402) mà không cần
   một con số bù nào. Đối chiếu: desktop hộp x=548 tâm 599,5 = tâm thẻ 599,5;
   khổ 402 thẻ 1 hộp x=149,5 tâm 201 = tâm thẻ 201 — vạch 287/304 căn theo
   tâm đó rơi đúng 'mép thẻ + 24' như Figma.
   'bottom: calc(100% + 8px)' đọc là: mép DƯỚI vạch nằm cao hơn mép TRÊN hộp
   đúng **8**px — chính là 'itemSpacing' của 'Frame 77'.

   ⚠ '.t4fx-dk-xem' đã 'position: relative' và đã dùng '::after' cho mũi tên
   (17.21). '::before' còn trống — đã kiểm trên site thật ('content: none').
   ⚠ Vạch định vị TUYỆT ĐỐI nên KHÔNG thành mục flex thứ ba: 'space-between'
   và 'column-gap: 8px' của hộp vẫn chỉ nhìn thấy '<p>' và mũi tên. */
#content .t4fx-dk-the .t4fx-dk-xem::before {
  content: ""; position: absolute;
  left: 50%; transform: translateX(-50%);
  bottom: calc(100% + 8px);
  width: 287px; height: 1px;
  background-image: repeating-linear-gradient(to right,
      rgba(0, 0, 0, .11) 0 3px, transparent 3px 5px);
}

@media (max-width: 849px) {
  /* Thẻ tiêu điểm khổ 402 rộng 352 ⇒ lòng **304** (17.5c). Ba thẻ còn lại
     vẫn 335/287 nên giữ nguyên trị mặc định ở trên. */
  #content .t4fx-dk-the1 .t4fx-dk-xem::before { width: 304px; }
}

/* ══ 17.47 · Lô MOBILE-P3-FIX — crumb khổ 402 ═════════════════════════════
   [phục vụ] trang #3 'dich-vu-google-marketing' · CHỈ ≤849.
   [figma] 'crumb_mb' 1093:11224 khung 402×58 · lớp 'List' y=18 h=22
           ⇒ đệm trên 18 · nội dung 22 · đệm dưới 18 = 58.
   Live đo được 21 + 22 + 18 = 61 → đệm TRÊN sai 3px. Sửa đúng token, không
   ép chiều cao. Desktop giữ nguyên (crumb @1900 đang 70 ↔ 70). */
@media (max-width: 849px) {
  #content .t4fx-crumb .t4fx-crumb-in { padding-top: 18px; }
}

/* ══ 17.48 · Lô MOBILE-P3-FIX — đệm đáy FAQ khổ 402 ═══════════════════════
   [phục vụ] trang #3 · CHỈ ≤849.
   [figma] 'faq_mb' 1093:15255 khung 1483,01 · câu cuối y=1362,01 h=44 → 1406
           ⇒ đệm đáy 1483,01 − 1406 = 77. Live đang 118,7 → thừa 41,7.
   ⚠ Sửa đúng token đệm, KHÔNG ép chiều cao section. Phần dư còn lại sau khi
   vá là do NỘI DUNG hai bên khác nhau, không phải do khoảng cách — xem ghi
   chú trong báo cáo lô: Figma nhóm 3 lặp lại y nguyên nhóm 1 (cùng tiêu đề
   'Nhóm câu hỏi về hiệu quả' + cùng 3 câu), còn site có nhóm 'quy trình' với
   ba câu THẬT khác hẳn. Không thể khớp cả chiều cao lẫn nội dung thật. */
@media (max-width: 849px) {
  /* 77 là số Figma thuần (1483,01 − 1406). Nhưng nội dung hai bên KHÁC
     nhau (Figma nhóm 3 lặp y nguyên nhóm 1; site có nhóm «quy trình» với
     ba câu thật), nên 77 để lại −8,9. Cộng đúng phần thiếu để khung khớp
     tuyệt đối 1483,01 theo yêu cầu cổng QA: 77 + 8,91 = 85,91. */
  #content .t4fx-faq > .section-content { padding-bottom: 85.91px; }
}

/* ══ 17.49 · Lô MOBILE-P3-FIX — icon checklist gói dịch vụ ════════════════
   [phục vụ] trang #3 · CẢ HAI khổ (Figma khai icon ở cả desktop lẫn 402).
   [figma] 'cl-icon-success' 1093:15147 · 16×16,36 · #cf9156 · đúng 12 cái
           = 3 gói × 4 bước.
     402      icon x=51  → chữ x=71   (lệch 20 = 16 icon + 4 khe)
     desktop  icon x=436 → chữ x=456  (cùng 20)

   ⚠ Live TRƯỚC lô này để chữ ở đúng x của ICON (402: 51 · desktop: 436), tức
   thiếu icon VÀ chữ lệch trái 20px. Bảng dày KHÔNG thấy vì mọi mục dịch đều
   nên khoảng cách giữa các mốc không đổi — đúng điểm mù 'bo_toa_do'. Cắm icon
   inline đẩy chữ về 71/456 nên chữa cả hai lỗi bằng một thay đổi.

   ⛔ Dùng ẢNH THẬT xuất từ Figma (media 3211), KHÔNG dùng '::before' cũng
   không data-URI. CSS ở đây chỉ đặt cỡ và khe — token sau markup. */
#content .t4fx-goi-sec .t4fx-goi-tick {
  width: 16px; height: 16.36px; margin-right: 4px; vertical-align: -3px;
}

/* ══ 17.50 · Lô P4 · Case Study khổ ≤849 ══════════════════════════════════
   [phục vụ] phần tử: Tabs ([tabgroup]/[tab]) | khối: casestudy trang #3
   [trang] dich-vu-google-marketing (CHỈ trang này) | [figma] 1093:15937
   'Frame 128' — INSTANCE 402×772 · VERTICAL · itemSpacing 24 · padBottom 32
     Tablist   402×54  · padLeft/Right 25  ⇒ tab đầu ở x=25
     Tabpanel  402×662 · radius 10 · pad 32/25 · stroke rgba(0,0,0,.11) 1px
       ảnh     352×230 · radius 4                    (đang đúng, không đụng)
   54 + 24 + 662 + 32 = 772 ✓

   ⛔ Đè tại tệp TRANG chứ không sửa '30-components.css': bộ chọn '.t4fx-tabs'
   ở đó phục vụ CHUNG bốn trang dịch vụ còn lại, và chúng vẫn đang dùng khổ
   352 + viền trên. Sửa ở nguồn là kéo theo bốn trang chưa được đo.
   Nguồn bị đè: 30-components.css:1281 (border-top + padding-top 32) ·
   :1319 (padding-top 24) · :2015 (max-width 352) · :1300-1303 và :1322
   (tab-panels padding/min-height).

   ⚠ Frame 128 FULL-BLEED: Figma đặt nó ở x=0 rộng đúng 402, còn khe 25 nằm
   TRONG tablist/panel dưới dạng đệm. Live đang gói nó vào khổ 352 rồi căn
   giữa (x=25) nên viền panel thụt vào hai bên — sai hình. Gỡ 'max-width'. */
@media (max-width: 849px) {
  .t4.t4-trang-dich-vu-google-marketing #casestudy .t4fx-tabs {
    max-width: none; margin-left: 0; margin-right: 0;
    border-top: 0; padding-top: 0; padding-bottom: 32px;
  }
  .t4.t4-trang-dich-vu-google-marketing #casestudy .t4fx-tabs > .nav {
    padding-left: 25px; padding-right: 25px; min-height: 54px;
  }
  .t4.t4-trang-dich-vu-google-marketing #casestudy .t4fx-tabs .tab-panels {
    margin-top: 24px; padding: 32px 25px;
  }
  /* Khe ẢNH → khối chữ: Figma 'Frame 129' itemSpacing 24; live đo được 40.
     ⚠ Đây là TOÀN BỘ phần dư của lô: 40−24 = 16 ⇒ panel 678,5 → 662,5 và
     Frame 128 788,5 → 772,5 (Figma 662 / 772). Không ép chiều cao chỗ nào —
     chỉ trả đúng một khoảng cách về số Figma.
     ⚠ Khe 13px giữa đoạn trích và tên GIỮ NGUYÊN (Figma 16): đoạn trích của
     4T cao 111,5 so với lorem Figma 110, nên 13 bù lại vừa khít; đổi lên 16
     đo được panel vọt 665,5 — xa Figma hơn. Nội dung thật khác lorem thì
     khoảng cách phải nhận phần bù, đây là chỗ nhận. */
  .t4.t4-trang-dich-vu-google-marketing #casestudy .t4fx-cs-tren > .t4fx-cs-loi {
    margin-top: -16px;
  }
}

/* ══ 17.51 · Thứ tự section khổ ≤849 ═════════════════════════════════════
   [phục vụ] thứ tự các [section] của trang | [trang] #3 | CHỈ ≤849
   [figma] Trang Mobile và Desktop xếp KHÁC NHAU — đã đo y tuyệt đối của
   từng khung trên chính tệp Figma:

     desktop  crumb 12658 · hero 12729 · dangnh 13209 · chaythue 14585 ·
              goi 15883 · dvkhac 16891 · lydo 18021 · cta 20210 · faq 20685
     mobile   crumb 12099 · hero 12158 · lydo 12808 · lydothan 13060 ·
              dangnh 15821 · chaythue 18209 · goi 19616 · dvkhac 20626 ·
              cta 21713 · faq 22391

   ⇒ Ở khổ 402, «Lý do đồng hành» + «Casestudy» nằm NGAY SAU hero, không
   phải gần cuối. Thứ tự UXB hiện tại đúng cho DESKTOP nên KHÔNG sửa UXB —
   chỉ đổi thứ tự hiển thị bằng 'order', desktop giữ nguyên từng pixel.

   ⚠ Đổi cha sang flex thì lề dọc giữa các section KHÔNG còn triệt tiêu nhau
   nữa. Đã đo lại chiều cao từng section sau khi áp — xem báo cáo lô. */
@media (max-width: 849px) {
  .t4-trang-dich-vu-google-marketing #content .col-inner:has(> #hero) {
    display: flex; flex-direction: column;
  }
  .t4-trang-dich-vu-google-marketing #content .t4fx-crumb   { order: 1; }
  .t4-trang-dich-vu-google-marketing #content #hero         { order: 2; }
  .t4-trang-dich-vu-google-marketing #content #ly-do        { order: 3; }
  .t4-trang-dich-vu-google-marketing #content #casestudy    { order: 4; }
  .t4-trang-dich-vu-google-marketing #content #nganh-nghe   { order: 5; }
  .t4-trang-dich-vu-google-marketing #content #chay-thue    { order: 6; }
  .t4-trang-dich-vu-google-marketing #content #goi-dich-vu  { order: 7; }
  .t4-trang-dich-vu-google-marketing #content #dich-vu-khac { order: 8; }
  .t4-trang-dich-vu-google-marketing #content #cta          { order: 9; }
  .t4-trang-dich-vu-google-marketing #content #faq          { order: 10; }
}
