/* =====================================================================================================
   HỆ THỐNG MOBILE KIỂU THƯƠNG MẠI ĐIỆN TỬ — mật độ cao, gọn, cứng cáp (23/10/2026)
   Chuẩn tham khảo: Tiki / Tokopedia / Taobao mobile. Chỉ chạy ≤ 760px (media ở layout.ejs + @media bên dưới); máy tính KHÔNG đổi.
   Nạp CUỐI CÙNG (sau p-dm-m.css, và sau p-m-feed.css nếu có) → ghi đè bằng độ ưu tiên selector, không đụng DOM/hook JS.
   ĐỘ ĐẬM mobile mảnh hơn một bậc (token đổi ở đầu @media: 800→700, 700→600, 600→500). Thang mobile = thang máy tính §13c thu nhỏ MỘT bậc (xem docs/CHUAN-GIAO-DIEN.md "thang chữ & nút mobile"):
     h1 trang 20/800 · tiêu đề khối 16/700 + "Xem tất cả" 12/600 · tên thẻ 12–13/600–700 (2 dòng, dòng 1,3) · giá 14/800 + giá gạch 11/400
     thân 13/400 · phụ 12 · meta/nhãn 11 (KHÔNG dưới 11) · chip 11–12/600 cao 28 bo 4 · nút trong thẻ cao 28–30 12/700 bo 4
     nút chính trang (Gửi, Tiếp tục, Áp dụng) cao 40 chữ 14/700. Vùng bấm ≥ 44 bằng ::after, KHÔNG phình nút.
   Lề trang 12 · khoảng cách lưới 8–10 · giữa khối 16 · thẻ bo 6 viền 1px không bóng. Token --ds-*, không weight số trần, không thanh cuộn.
   ===================================================================================================== */
@media (max-width: 760px) {

  /* ---------- ĐỘ ĐẬM MẢNH HƠN MỘT BẬC (chủ 23/10): 800→700, 700→600, 600→500; thân/phụ giữ 400. Đổi bằng TOKEN nên mọi chỗ dùng token tự mảnh theo; desktop không đổi ---------- */
  :root { --ds-fw-800: 700; --ds-fw-700: 600; --ds-fw-600: 500; --fw-heavy: 700; --fw-bold: 600; --fw-semi: 500; }

  /* ---------- nền chung: thân 13 chặt chẽ ---------- */
  body.theme-dental { font-size: 13px; line-height: 1.5; }
  body.theme-dental main h1:not(.ds-h1), body.theme-dental .dm-page .phead h1, body.theme-dental .ns3 .phead h1, body.theme-dental .tn3 .tn-head h1 { font-size: 20px !important; line-height: 1.25; font-weight: var(--ds-fw-800); letter-spacing: -.2px; }
  body.theme-dental .dm-page .phead p, body.theme-dental .ns3 .phead p { font-size: 12px; line-height: 1.45; }
  body.theme-dental .dm-page .phead .stat b, body.theme-dental .ns3 .ns-nums dd { font-size: 13px; }
  body.theme-dental .dm-page .phead .stat small, body.theme-dental .ns3 .ns-nums dt { font-size: 11px; }

  /* ---------- TIÊU ĐỀ KHỐI: một dòng 16/700 + "Xem tất cả ›" 12/600, bỏ mô tả; nhịp dọc 16 ---------- */
  body.theme-dental .h-sec, body.theme-dental.home-v2 .v3-hd h2, body.theme-dental.home-v2 .ds-sec-t h2 { font-size: 16px; font-weight: var(--ds-fw-700); line-height: 1.3; color: var(--ds-ink-900); letter-spacing: 0; }
  body.theme-dental.home-v2 .v3-sec, body.theme-dental.home-v2 .v3-sec + .v3-sec, body.theme-dental.home-v2 .ds-sec, body.theme-dental.home-v2 .ds-sec + .ds-sec { padding-top: 16px; }
  body.theme-dental.home-v2 .v3-hd, body.theme-dental.home-v2 .ds-sec-hd { margin-bottom: 8px; }
  body.theme-dental.home-v2 .v3-hd .ds-link, body.theme-dental.home-v2 .ds-sec-hd .ds-link { font-size: 12px; font-weight: var(--ds-fw-600); }
  body.theme-dental .dm-page > .dm-more, body.theme-dental .dm-page > .lp, body.theme-dental .dm-page > .sec { margin-top: 16px; }
  body.theme-dental .dm-lay .pin-hd b { font-size: 13px; }

  /* ---------- NÚT: nhỏ lại, cứng cáp. Mặc định 32 / nhỏ 28; nút chính trang 40. Vùng bấm 44 bằng ::after ---------- */
  body.theme-dental main :is(.btn, .ds-btn):not(.hv-sx-go):not(.cta-main) { position: relative; height: 30px; min-height: 0; padding: 0 10px; gap: 4px; border-radius: 4px; font-size: 12px; font-weight: var(--ds-fw-700); line-height: 1; }
  body.theme-dental main :is(.btn, .ds-btn):not(.hv-sx-go):not(.cta-main) i { font-size: 14px; }
  body.theme-dental main .btn.btn-sm:not(.cta-main) { height: 28px; padding: 0 8px; }
  body.theme-dental main :is(.btn, .ds-btn):not(.hv-sx-go):not(.cta-main)::after { content: ''; position: absolute; left: -4px; right: -4px; top: -7px; bottom: -7px; }
  body.theme-dental main :is(.btn.btn-sm, .ds-btn.ic):not(.cta-main)::after { top: -8px; bottom: -8px; }
  /* nút chính của trang / biểu mẫu / thanh dính đáy / sheet: 40, chữ 14/700 */
  body.theme-dental main :is(form .btn:not(.btn-sm), .cta-main, .ds-btn--block, .v3-cta .ds-btn, .v3-ask .ds-btn, .v3-strip .nl .btn),
  body.theme-dental .jf-ft .btn { height: 40px; padding: 0 16px; font-size: 14px; font-weight: var(--ds-fw-700); border-radius: 4px; }
  body.theme-dental main :is(form .btn:not(.btn-sm), .cta-main, .ds-btn--block, .v3-cta .ds-btn, .v3-ask .ds-btn)::after { top: -2px; bottom: -2px; }

  /* ---------- THẺ: bo 6, viền 1px, không bóng ---------- */
  body.theme-dental :is(.v3-place, .v3-ev, .v3-vc, .vlist .tk, .td3-job, .tr3-card, .tr3-row, .ns3 .dgrid .dc, .tk3 .lr, .v3-tl, .v3-jb, .lb3-card, .v3-fl) { border-radius: 6px; box-shadow: none; }
  body.theme-dental :is(.v3-place, .v3-ev, .v3-tl, .v3-jb, .td3-job, .tr3-card, .tr3-row):hover { box-shadow: none; transform: none; }

  /* chip/nhãn: 11/600 cao 18, bo 3 */
  body.theme-dental :is(.v3-rk, .v3-mau, .ds-chip, .tr3-tg .ds-chip) { font-size: 11px; font-weight: var(--ds-fw-600); border-radius: 3px; }
  body.theme-dental :is(.v3-place .v3-rk, .tr3-tg .ds-chip) { height: 18px; padding: 0 5px; gap: 3px; }
  body.theme-dental .v3-place .v3-rk i { font-size: 11px; }
  body.theme-dental .v3-deal { height: 20px; padding: 0 6px; border-radius: 3px; font-size: 11px; font-weight: var(--ds-fw-600); }

  /* ---------- THẺ NHA KHOA (.v3-place): tên 13/700 2 dòng · meta 11 · giá · hàng [chỉ đường 32] [Đặt hẹn 32] ---------- */
  body.theme-dental .v3-place .v3-body { gap: 3px; padding: 8px 8px 8px; }
  body.theme-dental .v3-place .v3-name { font-size: 13px; font-weight: var(--ds-fw-700); line-height: 1.3; }
  body.theme-dental .v3-place .v3-name a { min-height: 2.6em; }
  body.theme-dental .v3-place .v3-meta, body.theme-dental .v3-place .v3-addr { font-size: 11px; line-height: 1.35; color: var(--ds-ink-500); }
  body.theme-dental .v3-place .v3-meta b { font-size: 11px; font-weight: var(--ds-fw-700); color: var(--ds-ink-900); }
  body.theme-dental .v3-place .v3-act { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 4px 6px; }
  body.theme-dental .v3-place .v3-act .v3-from { flex: 1 1 100%; padding: 0; font-size: 11px; color: var(--ds-ink-500); line-height: 1.2; }
  body.theme-dental .v3-place .v3-act .v3-from b { font-size: 14px; font-weight: var(--ds-fw-800); color: var(--ds-ink-900); }
  body.theme-dental .v3-place .v3-act .ds-btn { height: 28px; border-radius: 4px; font-size: 12px; font-weight: var(--ds-fw-700); }
  body.theme-dental .v3-place .v3-act .ds-btn::after { top: -8px; bottom: -8px; }
  body.theme-dental .v3-place .v3-act .ds-btn.ic { display: inline-flex; flex: none; width: 28px; padding: 0; }
  body.theme-dental .v3-place .v3-act .ds-btn--primary { flex: 1 1 0; min-width: 0; width: auto; }
  body.theme-dental .v3-place .v3-act .ds-btn--primary i { display: none; }
  body.theme-dental .v3-place .v3-act .ds-btn.ic i { font-size: 15px; }
  body.theme-dental .v3-place .v3-act .ds-btn.ic::after { left: -8px; right: -8px; }
  /* đánh giá: MỘT ngôi sao vàng + điểm + (số) thay vì 5 sao (desktop giữ 5 sao) */
  body.theme-dental .v3-place .v3-meta .v3-stars { display: none; }
  body.theme-dental .v3-place .v3-meta .v3-star1 { display: inline-block; color: var(--ds-gold-400); font-size: 13px; line-height: 1; }
  body.theme-dental .v3-place .v3-foot { padding-top: 4px; }

  /* ---------- E-VOUCHER (.v3-ev): đáy thẻ = [giá + giá gạch] | [Mua nhỏ]; hạn dùng dòng 11 ---------- */
  body.theme-dental .v3-ev .info { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 3px 6px; padding: 8px; }
  body.theme-dental .v3-ev .info > b:first-child { grid-column: 1 / -1; grid-row: 1; min-height: 2.6em; font-size: 12px; font-weight: var(--ds-fw-600); line-height: 1.3; }
  body.theme-dental .v3-ev .info > small:not(.kmx) { grid-column: 1 / -1; grid-row: 2; font-size: 11px; line-height: 1.3; }
  body.theme-dental .v3-ev .info > .v3-price { grid-column: 1; grid-row: 3; display: flex; flex-direction: column; align-items: flex-start; gap: 0; margin: 2px 0 0; min-width: 0; }
  body.theme-dental .v3-ev .info > .v3-price b { font-size: 14px; font-weight: var(--ds-fw-800); line-height: 1.2; color: var(--ds-ink-900); }
  body.theme-dental .v3-ev .info > .v3-price s { margin: 0; font-size: 11px; font-weight: var(--ds-fw-400); color: var(--ds-ink-400); line-height: 1.2; }
  body.theme-dental .v3-ev .info > .ds-btn { grid-column: 2; grid-row: 3; margin: 0; align-self: end; }
  body.theme-dental .v3-ev .info > .ds-btn i { display: none; }
  body.theme-dental .v3-ev .info > .row { grid-column: 1 / -1; grid-row: 4; font-size: 11px; line-height: 1.3; }
  body.theme-dental .v3-ev .info > .kmx { grid-column: 1 / -1; grid-row: 5; font-size: 11px; }
  body.theme-dental .v3-ev .info > .kmx:has(> [data-near]:empty) { display: none; }
  body.theme-dental .v3-ev .pc { height: 18px; font-size: 11px; font-weight: var(--ds-fw-700); border-radius: 3px; }

  /* ---------- VOUCHER (.tk) / flash / vé: nút Lấy mã nhỏ cùng hàng với tim ---------- */
  body.theme-dental .dm-lay .vlist .tk .bt { flex-wrap: wrap; align-items: center; gap: 6px; }
  body.theme-dental .dm-lay .vlist .tk .bt .sv { position: relative; width: 32px; height: 32px; }
  body.theme-dental .dm-lay .vlist .tk .bt .sv::after { content: ''; position: absolute; inset: -6px; }
  body.theme-dental .dm-lay .vlist .tk .bt .btn, body.theme-dental .dm-lay .vlist .tk .bt > a { min-height: 0; height: 30px; padding: 0 8px; font-size: 12px; }
  body.theme-dental .dm-lay .vlist .tk .ti { font-size: 12px; font-weight: var(--ds-fw-600); }
  body.theme-dental .dm-lay .vlist .tk .amt { font-size: 20px; }
  body.theme-dental.home-v2 .v3-vc .ds-btn { height: 30px; }
  body.theme-dental .ds-fl .ds-btn, body.theme-dental.home-v2 .ds-fl .ds-btn { height: 30px; margin-top: 6px; }

  /* ---------- TUYỂN DỤNG / DỤNG CỤ / SANG NHƯỢNG / NHA SĨ / TÌM KIẾM: nút 32 ---------- */
  body.theme-dental .td3-act .ds-btn { height: 30px; padding: 0 12px; font-size: 12px; }
  body.theme-dental .td3-ti, body.theme-dental .v3-jb .m > b { font-size: 13px; font-weight: var(--ds-fw-700); line-height: 1.3; }
  body.theme-dental .td3-co { font-size: 11px; }
  body.theme-dental .tr3-row .tr3-act .tr3-go { height: 28px; font-size: 12px; }
  body.theme-dental .tr3-row .tr3-act > :not(.tr3-go) { width: 28px; height: 28px; position: relative; }
  body.theme-dental .tr3-row .tr3-act > :not(.tr3-go)::after { content: ''; position: absolute; inset: -6px; }
  body.theme-dental .tr3-card .tr3-ti, body.theme-dental .tr3-row .tr3-ti { font-size: 12px; font-weight: var(--ds-fw-600); }
  body.theme-dental :is(.tr3-pr, .tr3-card .tr3-pr, .tr3-row .tr3-pr, .v3-tl .pr) { font-size: 14px; font-weight: var(--ds-fw-800); }
  body.theme-dental .ns3 .dc .btn { height: 30px; min-height: 0; margin-top: auto; }
  body.theme-dental .ns3 .dc b { font-size: 13px; }
  body.theme-dental .tk3 .lr .act .btn { min-height: 0; height: 30px; }
  body.theme-dental .tk3 .lr .top .nm { font-size: 13px; }
  body.theme-dental .tt3 .nrow h3, body.theme-dental .tt3 .nmed h3 { font-size: 13px; font-weight: var(--ds-fw-600); }
  body.theme-dental .tt3 .nbig h2 { font-size: 16px; font-weight: var(--ds-fw-700); }

  /* ---------- THANH LỌC DÍNH 40px: [số kết quả] [tìm] [Sắp xếp] [Bộ lọc (n)] [Danh sách/Bản đồ] — cùng một kiểu nút 32 ---------- */
  body.theme-dental .jbar .jf-top { min-height: 40px; height: 40px; padding: 4px 12px; gap: 6px; }
  body.theme-dental .jbar .jf-top .cnt { font-size: 12px; }
  body.theme-dental .jbar .jf-top .cnt b { font-size: 13px; }
  body.theme-dental .jbar :is(.dm-q, .dm-sb, .jf-open, .jf-r .vt button) { position: relative; height: 32px; border: 0; border-radius: 4px; background: var(--ds-bg-soft); color: var(--ds-ink-900); font-size: 12px; font-weight: var(--ds-fw-600); }
  body.theme-dental .jbar :is(.dm-q, .dm-sb, .jf-r .vt button) { width: 32px; padding: 0; }
  body.theme-dental .jbar .dm-q i, body.theme-dental .jbar .dm-sb i, body.theme-dental .jbar .jf-r .vt button i { font-size: 16px; }
  body.theme-dental .jbar :is(.dm-q, .dm-sb, .jf-open, .jf-r .vt button)::after { content: ''; position: absolute; left: -2px; right: -2px; top: -6px; bottom: -6px; }
  body.theme-dental .jbar .dm-q:focus-within::after { display: none; }
  body.theme-dental .jbar .jf-top .dm-sb[data-dm-sort] { white-space: nowrap; flex: none; display: inline-flex; align-items: center; justify-content: center; width: auto; gap: 4px; padding: 0 10px; }
  body.theme-dental .jbar .jf-top .dm-sb::before { content: 'Sắp xếp'; order: 2; font-size: 12px; font-weight: var(--ds-fw-600); }
  body.theme-dental .jbar .jf-open { gap: 4px; padding: 0 10px; background: var(--ds-bg-soft); color: var(--ds-ink-900); }
  body.theme-dental .jbar .jf-open i { font-size: 14px; }
  body.theme-dental .jbar .jf-open .n { min-width: 16px; height: 16px; padding: 0 4px; border-radius: 3px; font-size: 11px; line-height: 16px; background: var(--ds-blue-500); color: #fff; }
  body.theme-dental .jbar .dm-q:focus-within { top: 4px; height: 32px; border-radius: 4px; }
  body.theme-dental .jbar .jf-r .vt { background: none; }
  /* chip lọc nhanh: cao 30, 12px, bo 4, một hàng vuốt ngang */
  body.theme-dental .jbar .dm-quick { padding: 6px 0 2px; gap: 6px; }
  body.theme-dental .jbar .dm-qc, body.theme-dental .jchip, body.theme-dental .dm-page .pill, body.theme-dental .ns3 .pill { height: 30px; min-height: 0; padding: 0 10px; border-radius: 4px; font-size: 12px; font-weight: var(--ds-fw-600); }
  body.theme-dental.home-v2 .v3-chip, body.theme-dental.home-v2 .v3-bar .v3-scope button, body.theme-dental.home-v2 .v3-bar .v3-filters .ds-tab { height: 30px; border-radius: 4px; font-size: 12px; font-weight: var(--ds-fw-600); }
  body.theme-dental.home-v2 .v3-bar { margin-bottom: 8px; }
  body.theme-dental.home-v2 .v3-loc button { height: 28px; padding: 0 10px; font-size: 12px; }
  body.theme-dental .jbar.sort-open .jsort::before { font-size: 14px; }
  body.theme-dental .jbar.sort-open .jsort .tab { min-height: 44px; font-size: 13px; }

  /* ---------- SHEET LỌC: tiêu đề nhóm 14/700, lựa chọn = lưới chip 2 cột 36px, Áp dụng / Xoá cao 40 ---------- */
  body.theme-dental .jf-sh b { font-size: 15px; font-weight: var(--ds-fw-700); }
  body.theme-dental .jf-dds .jdd-b { min-height: 44px; font-size: 14px; font-weight: var(--ds-fw-700); }
  body.theme-dental .jf-dds .jdd-p { gap: 6px; padding-bottom: 10px !important; }
  body.theme-dental .jf-dds .jdd-p .ck { min-height: 36px; padding: 6px 8px; border-radius: 4px; font-size: 12px; }
  body.theme-dental .jf-ft .jf-clear { min-height: 40px; font-size: 13px; font-weight: var(--ds-fw-600); }
  body.theme-dental .jf-ft .btn { flex: 1; max-width: none; }

  /* ---------- HỒ SƠ NHA KHOA: nút trong khối gọn (Chỉ đường / Đặt hẹn / Ứng tuyển / Chi tiết) ---------- */
  body.theme-dental main :is(.btn, .ds-btn):not(.hv-sx-go):not(.cta-main) { white-space: nowrap; }
  body.theme-dental main :is(.card, .box, section) h2 { font-size: 16px; font-weight: var(--ds-fw-700); line-height: 1.3; }
}

@media (max-width: 389px) {
  /* màn hẹp (360): giá đủ chỗ trọn dòng, nút Mua nhỏ xuống hàng kế (vẫn 32px) */
  body.theme-dental .v3-ev .info > .v3-price { grid-column: 1 / -1; flex-direction: row; align-items: baseline; gap: 6px; }
  body.theme-dental .v3-ev .info > .ds-btn { grid-column: 1 / -1; grid-row: 4; width: 100%; margin-top: 2px; }
  body.theme-dental .v3-ev .info > .row { grid-row: 5; }
  body.theme-dental .v3-ev .info > .kmx { grid-row: 6; }
}
