/**
 * UI màn hẹp (≤420px) — bảng giá, giỏ hàng, thanh toán.
 *
 * Vì sao có file này: cỡ chữ và khoảng cách của ba màn trên đang là cỡ desktop
 * đặt nguyên vào màn 344px (Galaxy Z Fold màn ngoài, khổ hẹp nhất còn phải phục
 * vụ). Đo ở 344×600 trên bản 1.24.48:
 *   - bảng giá  : chỉ thấy 7 mặt hàng một màn; dòng ngữ cảnh ở thanh giỏ hàng
 *                 cần 229px mà chỉ được 137px nên cụt mất 92px — đúng chỗ ghi
 *                 số kg và bậc giá.
 *   - giỏ hàng  : nút "Đặt hàng" nằm ở y=1542, tức cuộn gần 3 màn mới thấy.
 *   - thanh toán: ô nhập ĐẦU TIÊN ở y=887, nút gửi đơn ở y=2093.
 *
 * Mọi luật đều nằm trong @media (max-width:420px): từ 421px trở lên không một
 * pixel nào đổi. Phần thanh dính đáy cần mobile-hep.js dựng khối .kl-bar; JS
 * không chạy thì trang trở về đúng bản cũ, không vỡ.
 *
 * @package Solus
 */

@media (max-width: 420px) {

/* ============================================================
   1 · BẢNG GIÁ SỈ  (/bao-gia/)
   ============================================================ */

/* Vì sao lớp `.kld-bg` viết hai lần: CSS của bảng giá là khối nội tuyến
   `<style id="kld-bg-css">` in giữa BODY, còn file này nạp bằng <link> trong
   <head> nên đứng TRƯỚC. Cùng specificity thì cái in sau thắng — tức luật gốc
   thắng và mọi thứ dưới đây thành vô hiệu. Nhân đôi lớp đẩy specificity từ
   (0,2,0) lên (0,3,0) để thắng chắc, không phải trông vào thứ tự nạp.
   Ba khối còn lại không cần vì chúng đã bám vào body.woocommerce-*. */
/* Tiêu đề nhóm: 64px = 20px đệm + 44px chữ. Chữ cao 44 vì tên nhóm bị ép xuống
   2 dòng — ô chữ chỉ còn 201px do nhãn "131 mặt hàng" ngốn 83px bên phải. Rút
   nhãn đó xuống một từ trả lại ~39px, đủ cho tên nhóm nằm gọn 1 dòng. Tiêu đề
   này lại dính (sticky) nên mỗi pixel bớt được là bớt vĩnh viễn.  64 -> 46px */
.kld-bg.kld-bg .cathead-btn { padding-top: 6px; padding-bottom: 6px; gap: 8px; }
.kld-bg.kld-bg .cat-name { font-size: 14px; line-height: 1.3; gap: 8px; }
.kld-bg.kld-bg .cat-name .cat-ico { width: 26px; height: 26px; flex: none; }
.kld-bg.kld-bg .cat-count { font-size: 0; white-space: nowrap; }
.kld-bg.kld-bg .cat-count .cnt { font-size: 11.5px; }
.kld-bg.kld-bg .cat-count::after { content: "món"; font-size: 11.5px; margin-left: 3px; }

/* Hàng tiêu đề cột: ở màn hẹp chỉ còn hai cột nên nhãn cột là thừa. */
.kld-bg.kld-bg .colhead { display: none; }

/* Dòng mặt hàng: 40 -> 36px. Không bóp nữa — 36px là sàn của vùng chạm. */
.kld-bg.kld-bg .row-btn { padding-top: 7px; padding-bottom: 7px; min-height: 36px; }
.kld-bg.kld-bg .nm { font-size: 12.8px; line-height: 1.3; }

/* Ô tìm kiếm dính: 62px = 18px đệm của .search-in + 41px ô nhập. Nhưng chiều
   cao thật do `.field` giữ bằng min-height:42px — bóp đệm ô nhập là vô ích,
   phải hạ đúng cái sàn đó. Giữ nguyên cỡ chữ 16px của ô nhập: dưới 16px thì
   iOS tự phóng to cả trang khi khách bấm vào ô.  62 -> 56px */
.kld-bg.kld-bg .search .search-in { padding-top: 6px; padding-bottom: 6px; }
.kld-bg.kld-bg .search .field { min-height: 40px; }

/* THANH GIỎ HÀNG. Nút "Xem đơn hàng" rộng cố định 171px = 50% bề ngang thanh,
   bóp ô chữ còn 137px trong khi dòng ngữ cảnh cần 229px -> cụt 92px, mất đúng
   số kg và bậc giá đang áp. Nút thu còn biểu tượng + số món (70px), trả lại
   101px cho ô chữ. Luật gốc là `.kld-bg .cartbar .btn-cart` (0,3,0) nên phải
   bám đủ ba lớp mới thắng — media query không cộng specificity. */
.kld-bg.kld-bg .cartbar-in { padding: 8px 12px; gap: 10px; }
.kld-bg.kld-bg .cartbar .btn-cart {
	padding: 10px 14px;
	font-size: 0;
	gap: 0;
	min-width: 0;
	min-height: 40px;
}
.kld-bg.kld-bg .cartbar .btn-cart .icon,
.kld-bg.kld-bg .cartbar .btn-cart svg {
	width: 20px;
	height: 20px;
	margin: 0;
	flex: none;
}

/* Số tiền là thứ mắt khách tìm tới trước; dòng ngữ cảnh xuống dưới và nhỏ hơn.
   Cùng cỡ chữ thì không có phân cấp, đọc thành một khối chữ. */
.kld-bg.kld-bg .cb-sum { display: flex; flex-direction: column-reverse; gap: 0; min-width: 0; }
.kld-bg.kld-bg .cb-t { font-size: 19px; line-height: 1.15; letter-spacing: -0.01em; }
.kld-bg.kld-bg .cb-n { font-size: 11.5px; line-height: 1.35; color: #6d7d75; font-weight: 500; }

/* Giá trong khối chi tiết là `<b>3.120.000₫</b><i> / Thùng</i>` nằm cùng một
   dòng không ngắt được. Ở 300px đo được `<i>` vượt mép phải 13px — đúng chỗ chủ
   site chụp lại thấy "2.720.000đ / Thù...". Cho đơn vị xuống dòng riêng. */
.kld-bg.kld-bg .tier1-val { display: block; }
.kld-bg.kld-bg .tier1-val i { display: block; font-size: 12px; line-height: 1.3; }

/* Dòng "Chỉ cần N kg nữa thôi là đơn nhà mình được giá sỉ 50 kg!" chiếm 51px
   ngay trên thanh giỏ hàng — gần bằng cả một dòng mặt hàng, và nói lại đúng
   điều mà "Giá sỉ dưới 50 kg" trong dòng ngữ cảnh đã nói. Chủ site chốt bỏ trên
   mobile 10/09/2026.  thanh giỏ 110px -> 59px */
.kld-bg.kld-bg .cb-nudge { display: none; }

/* Khối thông số (Đơn vị tính · Mỗi Thùng nặng · Mã hàng) xếp hai cột, mỗi mục
   hai dòng, tốn 97px — trong khi cả ba đều lặp lại thứ đã hiện ngay phía trên:
   đơn vị và khối lượng nằm trong "136.000đ/kg × 20 kg / Thùng", mã hàng nằm
   trong ô ảnh. Gom về một dòng.  97px -> 47px */
.kld-bg.kld-bg .specs {
	display: flex;
	flex-wrap: wrap;
	gap: 0 8px;
	margin-top: 8px;
	padding-top: 6px;
	border-top: 1px solid rgba(0, 0, 0, 0.07);
}
.kld-bg.kld-bg .specs > div {
	display: flex;
	align-items: baseline;
	gap: 4px;
	padding: 0;
	border: 0;
}
.kld-bg.kld-bg .specs > div + div::before { content: "·"; color: #9aa8a1; margin-right: 4px; }
.kld-bg.kld-bg .specs dt { font-size: 11.5px; margin: 0; color: #6d7d75; }
.kld-bg.kld-bg .specs dd { margin: 0; font-size: 12.5px; font-weight: 700; white-space: nowrap; }

/* Nút cuộn-lên (z-index 90) đè lên thanh giỏ hàng (z-index 60) và che 42px cuối
   của nút bấm. Đang có thanh giỏ thì nút cuộn-lên không còn chỗ — ẩn đi. */
body:has(.cartbar:not([hidden])) .solus-back-top { display: none; }

/* Chủ site chốt 10/09/2026: giỏ đã có hàng thì dải xanh đầu trang (464px, 77%
   màn 300px) ẩn đi — khách đang mua, không cần đọc lại giới thiệu kho. Bảng giá
   toggle thuộc tính hidden của .cartbar theo số món trong giỏ, nên :has() bắt
   được đúng lúc, không cần thêm JS. Đợt 1.24.50 đã thử luật này ngay trên site
   bằng style chèn tay, đo đạt, rồi QUÊN ghi vào file — host 1.24.53 vẫn hiện
   dải xanh khi giỏ có hàng. */
.kld-bg.kld-bg:has(.cartbar:not([hidden])) .intro { display: none; }


/* ============================================================
   2 · GIỎ HÀNG  (/gio-hang/)
   ============================================================ */

/* Khách mở giỏ để xem MÌNH ĐANG MUA GÌ, nhưng thứ hiện ra đầu tiên là khối
   "Đơn hàng dự kiến" cao 455px (76% màn) — danh sách hàng thật bị đẩy khỏi màn
   đầu, bắt đầu tận y=660. Đảo lại: danh sách trước, bậc giá sau. */
body.woocommerce-cart .solus-cart__main { display: flex; flex-direction: column; }
body.woocommerce-cart .solus-cart__main .woocommerce-cart-form { order: 1; }
body.woocommerce-cart .solus-cart__main .mg-scale { order: 2; }

/* Bảng bậc giá tốn 261px để nói ba bậc, trong khi chỉ một bậc đang áp còn hai
   bậc kia là "chưa tới" — điều mà câu "còn N kg nữa" ngay dưới đã nói rồi.
   261 -> 96px */
body.woocommerce-cart .mg-band:not(.is-on) { display: none; }
body.woocommerce-cart .mg-scale { padding-top: 10px; padding-bottom: 10px; }
body.woocommerce-cart .mg-scale__head { font-size: 12px; letter-spacing: 0.02em; opacity: 0.75; }
body.woocommerce-cart .mg-scale__num { font-size: 26px; }

/* Ba câu cùng nói một việc: "còn 26 kg nữa là miễn phí giao" (39px) + "Miễn phí
   giao với đơn từ 30 kg trong bán kính…" (72px) + "còn 46 kg nữa là được giá
   sỉ" (157px) = 268px cho hai ý. Giữ câu ngắn nhất của mỗi ý. */
body.woocommerce-cart .mg-sum__note { display: none; }
body.woocommerce-cart .mg-more { padding: 10px 0; }
body.woocommerce-cart .mg-more__sub { display: none; }
body.woocommerce-cart .mg-more__lead { font-size: 13px; }

/* Dòng VAT đang đặt cùng cỡ chữ với nội dung chính nên đọc như một điều khoản
   và chiếm 54px. Ghi chú thì phải trông như ghi chú. */
body.woocommerce-cart .mg-vat-note {
	font-size: 11px;
	line-height: 1.4;
	color: #6d7d75;
	margin: 6px 0 0;
}

/* Chừa chỗ cho thanh dính đáy, để dòng cuối cùng không bị nó che. */
body.woocommerce-cart .site-footer { padding-bottom: 76px; }


/* ============================================================
   3 · THANH TOÁN  (/checkout/)
   ============================================================ */

/* Khối tóm tắt đang đặt order:0, tức nằm TRƯỚC form nhập khi xếp một cột. Trên
   desktop nó là cột phải nên không sao; trên màn hẹp nó chắn đường — ô nhập đầu
   tiên bị đẩy xuống y=887. Cho form lên trước: khách nhập xong mới soát lại
   đơn, đúng thứ tự việc.  ô nhập đầu: y=887 -> y=213 */
body.woocommerce-checkout .solus-checkout__main { order: 1; }
body.woocommerce-checkout .solus-checkout__aside { order: 2; }

/* Ghi chú dài trong tóm tắt: cùng cỡ chữ với nội dung chính. */
body.woocommerce-checkout .mg-co__note {
	font-size: 11px;
	line-height: 1.4;
	color: #6d7d75;
	margin: 6px 0 0;
}
body.woocommerce-checkout .mg-co__weight { padding-top: 8px; padding-bottom: 8px; }
body.woocommerce-checkout .solus-checkout-summary__items { font-size: 13px; }

body.woocommerce-checkout .site-footer { padding-bottom: 76px; }


/* ============================================================
   4 · THANH DÍNH ĐÁY — dùng chung cho giỏ hàng và thanh toán
   ============================================================
   Khối .kl-bar do mobile-hep.js dựng: nó DI CHUYỂN đúng hai phần tử thật (dòng
   tổng tiền và nút bấm) xuống thanh, không dựng nút giả. Vì hai phần tử đó rời
   khỏi khối cha cũ nên mất sạch kiểu thừa hưởng — phần dưới khai lại ĐỦ những
   thuộc tính đang dựa vào, lấy đúng giá trị đo được từ bản gốc. */

.kl-bar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 80;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px));
	background: #fff;
	border-top: 1px solid #e3ebe6;
	box-shadow: 0 -4px 18px rgba(0, 0, 0, 0.08);
}

/* --- giỏ hàng --- */
body.woocommerce-cart .kl-bar .solus-cart-summary__total {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column-reverse;
	align-items: flex-start;
	gap: 0;
	margin: 0;
	padding: 0;
	border: 0;
	text-align: left;
}
body.woocommerce-cart .kl-bar .solus-cart-summary__total-label,
body.woocommerce-cart .kl-bar .solus-cart-summary__total-value {
	text-align: left;
	width: auto;
}
body.woocommerce-cart .kl-bar .solus-cart-summary__total-label {
	font-size: 11.5px;
	color: #6d7d75;
	font-weight: 500;
}
body.woocommerce-cart .kl-bar .solus-cart-summary__total-value {
	font-size: 19px;
	line-height: 1.15;
	font-weight: 800;
	white-space: nowrap;
}
body.woocommerce-cart .kl-bar .wc-proceed-to-checkout {
	flex: 0 1 auto;
	min-width: 0;
	margin: 0;
	padding: 0;
	width: auto;
	display: flex;
}
/* Nút gốc rộng 100% vì nó đứng một mình cuối khối tóm tắt; trong thanh ngang nó
   phải co lại, nếu không sẽ đè lên khối tổng tiền. */
body.woocommerce-cart .kl-bar .solus-cart-summary__btn {
	margin: 0;
	min-height: 44px;
	height: 44px;
	padding: 0 20px;
	width: auto;
	min-width: 0;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
	background: #55a61d;
	color: #fff;
	border: 0;
	border-radius: 8px;
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	text-decoration: none;
}

/* --- thanh toán --- */
body.woocommerce-checkout .kl-bar .solus-checkout-summary__grand {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column-reverse;
	align-items: flex-start;
	gap: 0;
	margin: 0;
	padding: 0;
	border: 0;
	text-align: left;
	background: none;
}
body.woocommerce-checkout .kl-bar .solus-checkout-summary__grand-label {
	font-size: 11.5px;
	color: #6d7d75;
	font-weight: 500;
	text-align: left;
	width: auto;
	white-space: nowrap;
}
body.woocommerce-checkout .kl-bar .solus-checkout-summary__grand-value {
	font-size: 19px;
	line-height: 1.15;
	font-weight: 800;
	text-align: left;
	width: auto;
	white-space: nowrap;
}
/* Nhãn gốc "Hoàn tất đơn hàng" rộng 204px = 59% bề ngang thanh, bóp số tiền còn
   106px nên số bị cắt. Trên màn hẹp nút không cần kể lại cả câu.
   Mấy chỗ có !important là vì theme khai `.solus-checkout #place_order{…
   !important}` — không có nó thì luật nào cũng thua. */
body.woocommerce-checkout .kl-bar #place_order {
	flex: none;
	width: auto !important;
	min-width: 0;
	margin: 0;
	min-height: 44px !important;
	height: 44px;
	padding: 0 16px !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
	background: #55a61d !important;
	color: #fff !important;
	border: 0;
	border-radius: 8px;
	font-size: 0 !important;
	line-height: 1 !important;
	font-weight: 700;
}
body.woocommerce-checkout .kl-bar #place_order::after {
	content: "Đặt hàng";
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.01em;
}

}

/* ------------------------------------------------------------
   Hai bậc hẹp hơn nữa. Khổ 420px không đủ: Galaxy Z Fold màn ngoài bật "Cỡ hiển
   thị" lớn cho ra viewport khoảng 300px CSS, và đó chính là máy chủ site đang
   dùng. Đo trên site thật: ở 300px tên nhóm rơi xuống 2 dòng và dòng ngữ cảnh
   cụt 14px; ở 280px cụt 16px. Hai mốc dưới đây kéo cả hai về sạch.
   ------------------------------------------------------------ */
@media (max-width: 330px) {
	.kld-bg.kld-bg .cat-count::after { content: none; }
	.kld-bg.kld-bg .cat-name { font-size: 13px; }

	/* Giỏ hàng: hàng 3 của thẻ món chia cột tiền + cột số lượng; ở 300px cụm số
	   lượng (155px) nuốt cột tiền còn 9px, "6.804.000 ₫" nằm dưới ô số lượng.
	   Cho số lượng xuống hàng 4, tiền lấy trọn hàng 3. */
	.mg-cart .solus-cart-item__price { grid-column: 2 / 4; grid-row: 3; }
	.mg-cart .mg-item__act { grid-column: 2 / 4; grid-row: 4; justify-content: flex-start; }
	/* Phép tính "324.000 ₫/kg × 21 kg" đã xuống dòng riêng: dấu · mở đầu dòng
	   không còn ngăn cách gì. */
	/* Luật gốc là `.solus-cart-item__meta > span + span::before` (0,3,1); viết
	   `.mg-cart .mg-item__phep::before` (0,2,1) thì thua âm thầm — đo trên host
	   1.24.54 dấu · vẫn còn. Phải khai lại đủ cái chuỗi đó. */
	.mg-cart .solus-cart-item__meta > span + span.mg-item__phep::before { content: none; }

	/* Thanh dính thanh toán: "VND" + "6.824.000 ₫" cần 164px trong 154px, chữ ₫
	   chạm nút. ₫ đã nói đơn vị, "VND" thừa. */
	.kl-bar .solus-checkout-summary__currency { display: none; }
	.kl-bar .solus-checkout-summary__grand-value,
	.kl-bar .solus-checkout-summary__grand-value strong { font-size: 18px; }
}

@media (max-width: 310px) {
	.kld-bg.kld-bg .cb-n { font-size: 10.5px; }
	.kld-bg.kld-bg .cb-t { font-size: 17px; }
	.kld-bg.kld-bg .cat-name { font-size: 12.5px; }
	.kld-bg.kld-bg .cat-name .cat-ico { width: 22px; height: 22px; }
	.kld-bg.kld-bg .cartbar-in { padding-left: 9px; padding-right: 9px; gap: 8px; }
}
