/* =====================================================================
   NexPC – Design system cho các trang trong (lấy từ bản HTML nexpc-html)
   + ánh xạ form/nút/bảng của WooCommerce về cùng một kiểu.
   Tiền tố "html" để thắng preflight của Tailwind CDN (CDN chèn <style> sau).
   ===================================================================== */

/* ---------- Form ---------- */
html .label,
html .woocommerce form .form-row label,
html .woocommerce-page form .form-row label {
	display: block; margin-bottom: .375rem; font-size: .875rem; font-weight: 600; line-height: 1.4; color: #0A1F44;
}
html .label .req,
html .woocommerce form .form-row .required { color: #E11D48; text-decoration: none; border: 0; }
html .woocommerce form .form-row .optional { font-weight: 400; color: #94A3B8; }

html .input,
html .woocommerce form .form-row .input-text,
html .woocommerce form .form-row select,
html .woocommerce-page form .form-row .input-text,
html .woocommerce form .form-row textarea,
html .woocommerce .woocommerce-ordering select,
html .woocommerce-cart table.cart td.actions .coupon .input-text {
	display: block; width: 100%; height: 2.75rem; padding: 0 1rem;
	border: 1px solid #E2E8F0; border-radius: .75rem; background-color: #fff;
	font-size: .9375rem; line-height: 1.4; color: #0F172A; transition: border-color .2s, box-shadow .2s;
}
html textarea.input,
html .woocommerce form .form-row textarea { height: auto; min-height: 7rem; padding: .75rem 1rem; resize: vertical; }
html select.input,
html .woocommerce form .form-row select,
html .woocommerce .woocommerce-ordering select {
	appearance: none; padding-right: 2.5rem; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 1rem center;
}
html .input::placeholder,
html .woocommerce form .form-row .input-text::placeholder { color: #94A3B8; }
html .input:focus,
html .woocommerce form .form-row .input-text:focus,
html .woocommerce form .form-row select:focus,
html .woocommerce form .form-row textarea:focus {
	outline: none; border-color: #2F6BEA; box-shadow: 0 0 0 4px #DCE7FE;
}
html .woocommerce form .form-row.woocommerce-invalid .input-text,
html .woocommerce form .form-row.woocommerce-invalid select { border-color: #E11D48; }
html .woocommerce form .form-row { margin: 0; padding: 0; }

/* Select2 (tỉnh/thành, quốc gia của WooCommerce) */
html .select2-container .select2-selection--single {
	height: 2.75rem; border: 1px solid #E2E8F0; border-radius: .75rem; background: #fff;
}
/* WooCommerce thêm padding-top 8px cho phần chữ → chữ bị đẩy xuống; căn lại theo chiều cao ô (44px − 2px viền). */
html .select2-container .select2-selection--single .select2-selection__rendered {
	height: calc(2.75rem - 2px); padding: 0 2.5rem 0 1rem; line-height: calc(2.75rem - 2px); font-size: .9375rem; color: #0F172A;
}
html .select2-container .select2-selection--single .select2-selection__arrow { top: 0; height: calc(2.75rem - 2px); right: .6rem; }
html .select2-container--focus .select2-selection--single,
html .select2-container--open .select2-selection--single { border-color: #2F6BEA; box-shadow: 0 0 0 4px #DCE7FE; }
html .select2-dropdown { border-color: #E2E8F0; border-radius: .75rem; overflow: hidden; box-shadow: 0 10px 28px -10px rgba(15, 23, 42, .25); }
html .select2-results__option--highlighted[aria-selected],
html .select2-container--default .select2-results__option--highlighted[data-selected] { background: #1D57D8; }

/* Radio / checkbox dạng thẻ */
html .choice {
	display: flex; gap: .75rem; align-items: flex-start; padding: .875rem 1rem;
	border: 1px solid #E2E8F0; border-radius: .875rem; background: #fff; cursor: pointer; transition: border-color .2s, background-color .2s;
}
html .choice:hover { border-color: #B9CFFD; }
html .choice:has(input:checked) { border-color: #1D57D8; background: #EEF4FF; }
html .choice input { margin-top: .2rem; accent-color: #1D57D8; width: 1rem; height: 1rem; flex-shrink: 0; }
input[type="checkbox"], input[type="radio"] { accent-color: #1D57D8; }

/* ---------- Button ---------- */
html .btn,
html .woocommerce a.button,
html .woocommerce button.button,
html .woocommerce input.button,
html .woocommerce #respond input#submit {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	height: 2.75rem; padding: 0 1.25rem; border-radius: .75rem; border: 1px solid #CBD5E1;
	background: #fff; color: #0A1F44; font-size: .9375rem; font-weight: 600; line-height: 1; white-space: nowrap; cursor: pointer;
	text-decoration: none; transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s;
}
html .btn { border-color: transparent; background: transparent; }
html .woocommerce a.button:hover,
html .woocommerce button.button:hover,
html .woocommerce input.button:hover { border-color: #2F6BEA; background: #fff; color: #1D57D8; }
html .btn-lg { height: 3rem; padding: 0 1.5rem; }
html .btn-sm { height: 2.25rem; padding: 0 .875rem; font-size: .875rem; }
html .btn-primary,
html .woocommerce a.button.alt,
html .woocommerce button.button.alt,
html .woocommerce input.button.alt,
html .woocommerce #respond input#submit.alt,
html .woocommerce #place_order,
html .woocommerce .single_add_to_cart_button,
html .woocommerce .checkout-button {
	border-color: #1D57D8 !important; background: #1D57D8 !important; color: #fff !important;
}
html .btn-primary:hover,
html .woocommerce a.button.alt:hover,
html .woocommerce button.button.alt:hover,
html .woocommerce #place_order:hover,
html .woocommerce .checkout-button:hover { border-color: #1746B0 !important; background: #1746B0 !important; color: #fff !important; }
html .btn-outline { background: #fff; color: #0A1F44; border-color: #CBD5E1; }
html .btn-outline:hover { border-color: #2F6BEA; color: #1D57D8; }
html .btn-soft { background: #EEF4FF; color: #1746B0; }
html .btn-soft:hover { background: #1D57D8; color: #fff; }
html .btn:disabled,
html .woocommerce button.button:disabled,
html .woocommerce button.button:disabled[disabled] { opacity: .55; cursor: not-allowed; padding: 0 1.25rem; }

/* ---------- Bộ chọn số lượng (WooCommerce .quantity được JS thêm nút -/+) ---------- */
.qty-box,
.woocommerce .quantity {
	display: inline-flex; align-items: center; height: 2.75rem; border: 1px solid #E2E8F0; border-radius: .75rem; background: #fff; overflow: hidden;
}
.qty-box button,
.woocommerce .quantity .qty-btn { width: 2.5rem; height: 100%; color: #334155; transition: background-color .2s; }
.qty-box button:hover,
.woocommerce .quantity .qty-btn:hover { background: #F1F5F9; color: #1D57D8; }
html .woocommerce .quantity .qty,
.qty-box input {
	width: 2.75rem; height: 100%; padding: 0; border: 0; background: transparent; text-align: center; font-weight: 600; -moz-appearance: textfield;
}
.woocommerce .quantity .qty::-webkit-outer-spin-button,
.woocommerce .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce .quantity .qty:focus { outline: none; }
.qty-sm.quantity,
.qty-sm .quantity { height: 2.25rem; }
.qty-sm .qty-btn { width: 2rem !important; }
html .qty-sm .qty { width: 2.25rem; font-size: .875rem; }

/* ---------- Thông báo WooCommerce ---------- */
html .woocommerce-message,
html .woocommerce-info,
html .woocommerce-error {
	display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin: 0 0 1.25rem; padding: .875rem 1rem .875rem 2.75rem;
	border: 1px solid #DCE7FE; border-radius: .875rem; background: #EEF4FF; color: #1746B0; font-size: .9375rem; list-style: none;
}
html .woocommerce-message::before,
html .woocommerce-info::before { top: .95rem; left: 1rem; color: #1D57D8; }
html .woocommerce-error { flex-direction: column; align-items: flex-start; border-color: #FECDD3; background: #FFF1F2; color: #BE123C; }
html .woocommerce-error::before { top: .95rem; left: 1rem; color: #E11D48; }
html .woocommerce-message { border-color: #A7F3D0; background: #ECFDF5; color: #047857; }
html .woocommerce-message::before { color: #059669; }
html .woocommerce-message .button,
html .woocommerce-info .button { order: 2; margin-left: auto; height: 2.25rem; font-size: .875rem; }
html .woocommerce-message a:not(.button),
html .woocommerce-info a:not(.button) { font-weight: 600; text-decoration: underline; }

/* ---------- Drawer bộ lọc (trang danh mục) ---------- */
.overlay { opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s; }
.overlay.is-open { opacity: 1; visibility: visible; }
@media (max-width: 1023.98px) {
	.filter-panel {
		position: fixed; inset: 0 auto 0 0; z-index: 50; width: 85%; max-width: 22rem; overflow-y: auto; background: #fff;
		transform: translateX(-100%); transition: transform .3s ease;
	}
	.filter-panel.is-open { transform: none; }
}

/* ---------- Phân trang (blog + WooCommerce) ---------- */
html .woocommerce nav.woocommerce-pagination { margin-top: 2.5rem; }
html .woocommerce nav.woocommerce-pagination ul,
html .pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; border: 0; margin: 0; }
html .woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; overflow: visible; }
html .woocommerce nav.woocommerce-pagination ul li a,
html .woocommerce nav.woocommerce-pagination ul li span,
html .pagination .page-numbers {
	display: flex; align-items: center; justify-content: center; min-width: 2.5rem; height: 2.5rem; padding: 0 .75rem;
	border: 1px solid #E2E8F0; border-radius: .75rem; background: #fff; font-size: .875rem; font-weight: 600; line-height: 1; color: #334155;
	transition: border-color .2s, color .2s;
}
html .woocommerce nav.woocommerce-pagination ul li a:hover,
html .pagination a.page-numbers:hover { border-color: #2F6BEA; background: #fff; color: #1D57D8; }
html .woocommerce nav.woocommerce-pagination ul li span.current,
html .pagination .page-numbers.current { border-color: #1D57D8; background: #1D57D8; color: #fff; }
html .pagination .page-numbers.dots,
html .woocommerce nav.woocommerce-pagination ul li span.dots { border-color: transparent; background: transparent; }

/* ---------- Trang sản phẩm ---------- */
/* WooCommerce dùng ".woocommerce #content div.product div.images" (có ID) nên phải kèm #content. */
html .woocommerce div.product div.images,
html .woocommerce div.product div.summary,
html .woocommerce #content div.product div.images,
html .woocommerce #content div.product div.summary { float: none; width: 100%; margin: 0; }
html .woocommerce div.product div.images .woocommerce-product-gallery__wrapper { margin: 0; }
.nexpc-gallery .woocommerce-product-gallery { position: relative; }
.nexpc-gallery .woocommerce-product-gallery .flex-viewport,
.nexpc-gallery .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
	overflow: hidden; border: 1px solid #E2E8F0; border-radius: 1rem; background: #fff;
}
.nexpc-gallery .woocommerce-product-gallery__image img { aspect-ratio: 1 / 1; object-fit: contain; padding: 0; background: #fff; }
html .woocommerce div.product div.images .flex-control-thumbs {
	display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; margin-top: .75rem;
}
html .woocommerce div.product div.images .flex-control-thumbs li { width: auto; float: none; margin: 0; }
html .woocommerce div.product div.images .flex-control-thumbs li img {
	aspect-ratio: 1 / 1; object-fit: contain; padding: 0; border: 2px solid transparent; border-radius: .75rem; background: #F8FAFC; opacity: 1;
	transition: border-color .2s;
}
html .woocommerce div.product div.images .flex-control-thumbs li img:hover { border-color: #B9CFFD; }
html .woocommerce div.product div.images .flex-control-thumbs li img.flex-active { border-color: #1D57D8; }
html .woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	top: .75rem; right: .75rem; z-index: 5; width: 2.25rem; height: 2.25rem; border-radius: 9999px; background: #fff; box-shadow: 0 1px 3px rgba(15, 23, 42, .12);
}
.nexpc-gallery .onsale-badge { position: absolute; left: 1rem; top: 1rem; z-index: 5; }

/* Form mua hàng */
html .woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: 0; }
html .woocommerce div.product form.cart::before,
html .woocommerce div.product form.cart::after { display: none; }
html .woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
html .woocommerce div.product form.cart .button { float: none; height: 3rem; flex: 1 1 10rem; padding: 0 1.5rem; }
html .woocommerce div.product form.cart .nexpc-buy-now { border-color: #1D57D8 !important; background: #1D57D8 !important; color: #fff !important; }
html .woocommerce div.product form.cart .nexpc-buy-now:hover { background: #1746B0 !important; }
html .woocommerce div.product form.cart .single_add_to_cart_button { border-color: #EEF4FF !important; background: #EEF4FF !important; color: #1746B0 !important; }
html .woocommerce div.product form.cart .single_add_to_cart_button:hover { border-color: #1D57D8 !important; background: #1D57D8 !important; color: #fff !important; }
html .woocommerce div.product form.cart .variations { width: 100%; margin-bottom: .5rem; }
html .woocommerce div.product form.cart .variations th,
html .woocommerce div.product form.cart .variations td { display: block; padding: 0 0 .5rem; text-align: left; line-height: 1.4; }
html .woocommerce div.product form.cart .variations label { font-size: .875rem; font-weight: 600; color: #0A1F44; }
html .woocommerce div.product form.cart .variations select { min-width: 14rem; height: 2.75rem; border: 1px solid #E2E8F0; border-radius: .75rem; padding: 0 1rem; }
html .woocommerce div.product form.cart .reset_variations { font-size: .875rem; color: #64748B; }
html .woocommerce div.product form.cart .single_variation_wrap { width: 100%; }
html .woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
html .woocommerce div.product .woocommerce-variation-price .price { font-size: 1.5rem; }
html .woocommerce div.product p.stock { margin: 0 0 .75rem; font-size: .875rem; font-weight: 500; }
html .woocommerce div.product .stock.in-stock { color: #059669; }
html .woocommerce div.product .stock.out-of-stock { color: #E11D48; }

/* Tabs mô tả / thông số / đánh giá */
html .woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex; gap: 0; margin: 0; padding: 0 .5rem; overflow-x: auto; border-bottom: 1px solid #E2E8F0; scrollbar-width: none;
}
html .woocommerce div.product .woocommerce-tabs ul.tabs::-webkit-scrollbar { display: none; }
html .woocommerce div.product .woocommerce-tabs ul.tabs::before,
html .woocommerce div.product .woocommerce-tabs ul.tabs li::before,
html .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
html .woocommerce div.product .woocommerce-tabs ul.tabs li {
	flex-shrink: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent;
}
html .woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block; margin-bottom: -1px; padding: 1rem; border-bottom: 2px solid transparent;
	font-size: 1rem; font-weight: 600; color: #64748B; transition: color .2s;
}
html .woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: #1D57D8; }
html .woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: transparent; }
html .woocommerce div.product .woocommerce-tabs ul.tabs li.active a { border-color: #1D57D8; color: #1D57D8; }
html .woocommerce div.product .woocommerce-tabs .panel { margin: 0; padding: 1.25rem; }
@media (min-width: 640px) {
	html .woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0 1rem; }
	html .woocommerce div.product .woocommerce-tabs .panel { padding: 2rem; }
}
html .woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }

/* Form đánh giá sản phẩm */
html .woocommerce #reviews #comments h2,
html .woocommerce #reviews .woocommerce-Reviews-title,
html .woocommerce #review_form #respond .comment-reply-title { display: block; margin-bottom: .75rem; font-size: 1.15rem; font-weight: 700; color: #0A1F44; }
html .woocommerce #reviews #comments ol.commentlist { margin: 0 0 1.5rem; padding: 0; }
html .woocommerce #reviews #comments ol.commentlist li { margin: 0; padding: 1.25rem 0; border-bottom: 1px solid #F1F5F9; }
html .woocommerce #reviews #comments ol.commentlist li img.avatar { width: 2.5rem; border: 0; border-radius: 9999px; padding: 0; background: #EEF4FF; }
html .woocommerce #reviews #comments ol.commentlist li .comment-text { margin-left: 3.5rem; padding: 0; border: 0; border-radius: 0; }
html .woocommerce #reviews #comments ol.commentlist li .comment-text p.meta { font-size: .875rem; color: #64748B; }
html .woocommerce #reviews #comments ol.commentlist li .comment-text p.meta strong { color: #0A1F44; }
html .woocommerce #review_form #respond { max-width: 48rem; padding: 1.25rem; border: 1px solid #E2E8F0; border-radius: 1rem; }
html .woocommerce #review_form #respond p { margin: 0 0 1rem; }
html .woocommerce #review_form #respond label { display: block; margin-bottom: .375rem; font-size: .875rem; font-weight: 600; color: #0A1F44; }
html .woocommerce #review_form #respond input[type="text"],
html .woocommerce #review_form #respond input[type="email"],
html .woocommerce #review_form #respond textarea {
	display: block; width: 100%; height: 2.75rem; padding: 0 1rem; border: 1px solid #E2E8F0; border-radius: .75rem; background: #fff; font-size: .9375rem;
}
html .woocommerce #review_form #respond textarea { height: auto; min-height: 7rem; padding: .75rem 1rem; }
html .woocommerce #review_form #respond input:focus,
html .woocommerce #review_form #respond textarea:focus { outline: none; border-color: #2F6BEA; box-shadow: 0 0 0 4px #DCE7FE; }
html .woocommerce #review_form #respond .comment-form-cookies-consent label { display: inline; font-weight: 400; }
html .woocommerce #review_form #respond .form-submit input#submit { border-color: #1D57D8; background: #1D57D8; color: #fff; }
html .woocommerce #review_form #respond .form-submit input#submit:hover { background: #1746B0; }
html .woocommerce p.stars a { color: #F59E0B; }
html .woocommerce .star-rating span::before,
html .woocommerce .star-rating::before { color: #F59E0B; }

/* Bảng thông số */
html .woocommerce table.shop_attributes,
.nexpc-specs {
	width: 100%; max-width: 48rem; margin: 0; border: 1px solid #E2E8F0; border-radius: .75rem; border-collapse: separate; border-spacing: 0; overflow: hidden; font-size: .875rem;
}
html .woocommerce table.shop_attributes th,
html .woocommerce table.shop_attributes td,
.nexpc-specs th,
.nexpc-specs td { padding: .75rem 1rem; border: 0; font-style: normal; text-align: left; vertical-align: top; }
html .woocommerce table.shop_attributes th,
.nexpc-specs th { width: 40%; font-weight: 500; color: #64748B; }
html .woocommerce table.shop_attributes td,
.nexpc-specs td { font-weight: 500; color: #0A1F44; }
html .woocommerce table.shop_attributes td p { margin: 0; padding: 0; }
html .woocommerce table.shop_attributes tr:nth-child(odd) th,
html .woocommerce table.shop_attributes tr:nth-child(odd) td,
.nexpc-specs tr:nth-child(odd) th,
.nexpc-specs tr:nth-child(odd) td { background: #F8FAFC; }

/* Thanh mua cố định trên mobile: đẩy nút nổi lên */
@media (max-width: 1023.98px) {
	.has-buybar #floating { bottom: 5.5rem; }
	.has-buybar { padding-bottom: 4.5rem; }
}

/* ---------- Giỏ hàng / thanh toán ---------- */
html .woocommerce-cart-form .product-remove a.remove { width: auto; height: auto; font-size: inherit; line-height: inherit; color: inherit !important; }
html .woocommerce-cart-form .product-remove a.remove:hover { background: transparent; color: #E11D48 !important; }
/* Bảng tổng tiền: mỗi hàng là một dòng flex (nhãn trái, số tiền phải); hàng giao hàng chiếm trọn chiều ngang. */
.nexpc-totals table,
.nexpc-totals tbody { display: block; width: 100%; font-size: .875rem; }
.nexpc-totals tr { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.nexpc-totals th,
.nexpc-totals td { display: block; padding: .45rem 0; border: 0; text-align: left; font-weight: 400; color: #475569; background: transparent; }
.nexpc-totals td { text-align: right; font-weight: 500; color: #0A1F44; }
.nexpc-totals .order-total { align-items: flex-end; margin-top: .5rem; border-top: 1px solid #F1F5F9; }
.nexpc-totals .order-total th,
.nexpc-totals .order-total td { padding-top: 1rem; font-weight: 600; color: #0A1F44; }
.nexpc-totals .order-total td strong,
.nexpc-totals .order-total td .amount { font-size: 1.5rem; font-weight: 800; color: #1D57D8; }
.nexpc-totals .order-total td small { display: block; font-size: .75rem; font-weight: 400; color: #64748B; }
.nexpc-totals .cart-discount td { color: #059669; }
.nexpc-totals .cart-discount a { margin-left: .35rem; font-size: .75rem; color: #64748B; text-decoration: underline; }

/* Phương thức giao hàng dạng thẻ */
.nexpc-totals tr.woocommerce-shipping-totals { display: block; }
.nexpc-totals tr.woocommerce-shipping-totals th { padding-top: .75rem; padding-bottom: 0; }
.nexpc-totals tr.woocommerce-shipping-totals td { width: 100%; text-align: left; }
html .woocommerce ul#shipping_method { float: none; width: 100%; margin: .5rem 0 0; padding: 0; list-style: none; }
html .woocommerce ul#shipping_method li {
	position: relative; display: flex; align-items: center; gap: .6rem; margin: 0 0 .5rem; padding: .7rem .9rem;
	border: 1px solid #E2E8F0; border-radius: .75rem; background: #fff; text-indent: 0; line-height: 1.4;
}
html .woocommerce ul#shipping_method li:has(input:checked) { border-color: #1D57D8; background: #EEF4FF; }
html .woocommerce ul#shipping_method li input { margin: 0; flex-shrink: 0; }
html .woocommerce ul#shipping_method li label { flex: 1; display: flex; justify-content: space-between; gap: .75rem; margin: 0; font-weight: 600; color: #0A1F44; cursor: pointer; }
.woocommerce-shipping-destination,
.woocommerce-shipping-calculator { margin-top: .5rem; font-size: .8125rem; color: #64748B; text-align: left; }
.woocommerce-shipping-calculator .shipping-calculator-form { display: grid; gap: .6rem; margin-top: .75rem; }

/* Bố cục field thanh toán / địa chỉ: lưới 2 cột */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-address-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper,
.woocommerce-EditAccountForm .nexpc-account-grid {
	display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem;
}
@media (min-width: 640px) {
	.woocommerce-billing-fields__field-wrapper,
	.woocommerce-shipping-fields__field-wrapper,
	.woocommerce-address-fields__field-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.woocommerce-billing-fields__field-wrapper .form-row-wide,
	.woocommerce-shipping-fields__field-wrapper .form-row-wide,
	.woocommerce-address-fields__field-wrapper .form-row-wide,
	.woocommerce-billing-fields__field-wrapper .notes,
	.woocommerce-billing-fields__field-wrapper #billing_address_1_field,
	.woocommerce-billing-fields__field-wrapper #billing_address_2_field,
	.woocommerce-shipping-fields__field-wrapper #shipping_address_1_field,
	.woocommerce-shipping-fields__field-wrapper #shipping_address_2_field { grid-column: 1 / -1; }
}
html .woocommerce form .form-row-first,
html .woocommerce form .form-row-last,
html .woocommerce-page form .form-row-first,
html .woocommerce-page form .form-row-last { float: none; width: auto; }
html .woocommerce form .form-row::before,
html .woocommerce form .form-row::after { display: none; }
#ship-to-different-address { margin: 0; font-size: 1rem; }
#ship-to-different-address label { display: flex; align-items: center; gap: .6rem; font-weight: 600; color: #0A1F44; cursor: pointer; }
.woocommerce-form__label-for-checkbox { display: inline-flex !important; align-items: center; gap: .55rem; font-weight: 500 !important; cursor: pointer; }

/* Phương thức thanh toán dạng thẻ gọn (woocommerce/checkout/payment-method.php), nằm ở cột đơn hàng ngay trên nút Đặt hàng. */
html .woocommerce-checkout #payment,
html .woocommerce-checkout #payment ul.payment_methods { border: 0; border-radius: 0; background: transparent; padding: 0; }
html .woocommerce-checkout #payment ul.payment_methods { display: grid; gap: .5rem; margin: 0; list-style: none; }
html .woocommerce-checkout #payment ul.payment_methods li { position: relative; margin: 0; padding: 0; border: 1.5px solid #E2E8F0; border-radius: .875rem; background: #fff; line-height: 1.4; list-style: none; transition: border-color .15s, background-color .15s, box-shadow .15s; }
html .woocommerce-checkout #payment ul.payment_methods li:hover { border-color: #BFD3FB; }
html .woocommerce-checkout #payment ul.payment_methods li:has(> input:checked) { border-color: #1D57D8; background: #EEF4FF; box-shadow: 0 0 0 3px #DCE7FE; }
html .woocommerce-checkout #payment ul.payment_methods li > input.input-radio { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
html .woocommerce-checkout #payment ul.payment_methods li > label.nexpc-pay-label { display: flex; align-items: center; gap: .7rem; padding: .7rem .8rem; margin: 0; cursor: pointer; }
html .woocommerce-checkout #payment ul.payment_methods li:has(> input:focus-visible) { box-shadow: 0 0 0 3px #B9CFFD; }
html .woocommerce-checkout .nexpc-pay-dot { width: 18px; height: 18px; flex-shrink: 0; border: 2px solid #CBD5E1; border-radius: 50%; background: #fff; transition: border .15s; }
html .woocommerce-checkout #payment li:has(> input:checked) .nexpc-pay-dot { border: 5px solid #1D57D8; }
html .woocommerce-checkout #payment ul.payment_methods li label img { display: none; }
html .woocommerce-checkout #payment div.payment_box { margin: 0 .8rem .8rem; padding: .7rem .8rem; border-radius: .6rem; background: #fff; font-size: .875rem; color: #475569; }
html .woocommerce-checkout #payment div.payment_box::before { display: none; }
html .woocommerce-checkout #payment div.form-row { padding: 0; margin-top: 1.25rem; }
html .woocommerce-checkout #payment .place-order { display: grid; gap: .75rem; }
html .woocommerce #payment #place_order,
html .woocommerce .nexpc-place-order #place_order { float: none; width: 100%; height: 3rem; font-size: 1rem; }
.nexpc-checkout-card h3,
.nexpc-checkout-card .woocommerce-billing-fields > h3 { margin: 0 0 1rem; font-size: 1.125rem; font-weight: 700; color: #0A1F44; }
.nexpc-checkout-card .woocommerce-additional-fields { margin-top: 1.25rem; }
.nexpc-checkout-card .woocommerce-additional-fields > h3 { display: none; }
.nexpc-checkout-card .shipping_address { margin-top: 1rem; }
.nexpc-checkout-card .woocommerce-account-fields { margin-top: 1rem; }
.nexpc-checkout-card .woocommerce-account-fields p.create-account { margin-top: 0; }
.nexpc-hidden-field { display: none !important; }
/* Ô chọn phường/xã (selectWoo) cao bằng các ô khác */
html .woocommerce form .form-row .select2-container { width: 100% !important; }
html .select2-container--default .select2-selection--single .select2-selection__placeholder { color: #94A3B8; }
html .select2-search--dropdown .select2-search__field { height: 2.5rem; padding: 0 .75rem; border: 1px solid #E2E8F0; border-radius: .6rem; }
.woocommerce-terms-and-conditions-wrapper { font-size: .8125rem; line-height: 1.6; color: #64748B; }
.woocommerce-terms-and-conditions-wrapper a { color: #1D57D8; text-decoration: underline; }
.woocommerce-privacy-policy-text p { margin: 0; }
html .woocommerce-checkout .blockUI.blockOverlay { border-radius: 1rem; }
html .woocommerce-form-coupon-toggle .woocommerce-info,
html .woocommerce-form-login-toggle .woocommerce-info { margin-bottom: 1rem; }
html form.checkout_coupon,
html .woocommerce form.login,
html .woocommerce form.register {
	margin: 0 0 1.25rem; padding: 1.25rem; border: 1px solid #E2E8F0; border-radius: 1rem; background: #fff;
}
html form.checkout_coupon { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; }
html form.checkout_coupon p { margin: 0; }
html form.checkout_coupon .form-row-first { flex: 1 1 14rem; }

/* ---------- Chi tiết đơn hàng (trang cảm ơn, xem đơn trong tài khoản) ---------- */
html .woocommerce .woocommerce-order-details,
html .woocommerce .woocommerce-customer-details,
html .woocommerce .woocommerce-bacs-bank-details,
html .woocommerce .nexpc-thankyou-details > p {
	margin: 0; padding: 1.25rem; border: 1px solid #E2E8F0; border-radius: 1rem; background: #fff;
}
@media (min-width: 640px) {
	html .woocommerce .woocommerce-order-details,
	html .woocommerce .woocommerce-customer-details,
	html .woocommerce .woocommerce-bacs-bank-details { padding: 1.5rem; }
}
html .woocommerce .woocommerce-order-details__title,
html .woocommerce .woocommerce-column__title,
html .woocommerce .wc-bacs-bank-details-heading { margin: 0 0 1rem; font-size: 1.125rem; font-weight: 700; color: #0A1F44; }
html .woocommerce .wc-bacs-bank-details-account-name { margin: 1rem 0 .5rem; font-weight: 600; color: #0A1F44; }
html .woocommerce ul.wc-bacs-bank-details { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; font-size: .875rem; }
html .woocommerce ul.wc-bacs-bank-details li { margin: 0; padding: .6rem .8rem; border-radius: .6rem; background: #F8FAFC; }
html .woocommerce .woocommerce-order-details table.shop_table { border-radius: .75rem; }
html .woocommerce .woocommerce-order-details table.shop_table tfoot tr:last-child td { font-size: 1.125rem; font-weight: 800; color: #1D57D8; }
html .woocommerce .woocommerce-customer-details address {
	padding: 1rem; border: 0; border-radius: .75rem; background: #F8FAFC; font-style: normal; line-height: 1.7; color: #475569;
}
html .woocommerce .woocommerce-customer-details .woocommerce-columns { display: grid; gap: 1rem; }
@media (min-width: 768px) { html .woocommerce .woocommerce-customer-details .woocommerce-columns--addresses { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
html .woocommerce .woocommerce-customer-details .woocommerce-column { float: none; width: auto; max-width: none; }
html .woocommerce .woocommerce-customer-details .woocommerce-columns::before,
html .woocommerce .woocommerce-customer-details .woocommerce-columns::after { display: none; }
html .woocommerce .order-again { margin-top: 1rem; }

/* ---------- Tài khoản: bảng đơn hàng, địa chỉ, form ---------- */
html .woocommerce table.shop_table {
	width: 100%; margin: 0; border: 1px solid #E2E8F0; border-radius: 1rem; border-collapse: separate; border-spacing: 0; overflow: hidden; background: #fff; font-size: .875rem;
}
html .woocommerce table.shop_table th { padding: .75rem 1rem; background: #F8FAFC; font-weight: 600; color: #64748B; }
html .woocommerce table.shop_table td { padding: .9rem 1rem; border-top: 1px solid #F1F5F9; color: #0A1F44; }
html .woocommerce table.shop_table tfoot th,
html .woocommerce table.shop_table tfoot td { border-top: 1px solid #F1F5F9; background: #fff; }
html .woocommerce table.my_account_orders .button { height: 2.25rem; margin: 0 .25rem .25rem 0; padding: 0 .8rem; font-size: .8125rem; }
html .woocommerce-account .woocommerce-MyAccount-content mark { background: #EEF4FF; color: #1746B0; border-radius: .35rem; padding: 0 .3rem; }
html .woocommerce-account .addresses { display: grid; gap: 1rem; }
@media (min-width: 768px) { html .woocommerce-account .addresses { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
html .woocommerce-account .addresses .col-1,
html .woocommerce-account .addresses .col-2 { float: none; width: auto; max-width: none; }
html .woocommerce-account .addresses::before,
html .woocommerce-account .addresses::after { display: none; }
html .woocommerce-Address { padding: 1.25rem; border: 1px solid #E2E8F0; border-radius: 1rem; background: #fff; }
html .woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
html .woocommerce-Address-title h2 { font-size: 1.05rem; font-weight: 700; color: #0A1F44; }
html .woocommerce-Address-title .edit { font-size: .875rem; font-weight: 600; color: #1D57D8; }
html .woocommerce-Address address { font-style: normal; font-size: .9rem; line-height: 1.7; color: #475569; }
html .woocommerce-MyAccount-content fieldset { margin-top: 1.5rem; padding: 1.25rem; border: 1px solid #E2E8F0; border-radius: 1rem; }
html .woocommerce-MyAccount-content legend { padding: 0 .5rem; font-weight: 700; color: #0A1F44; }
html .woocommerce-MyAccount-content form .form-row { margin-bottom: 1rem; }
html .woocommerce-MyAccount-content h2,
html .woocommerce-MyAccount-content h3 { margin: 1.5rem 0 .75rem; font-size: 1.15rem; font-weight: 700; color: #0A1F44; }
html .woocommerce-MyAccount-content > p { color: #475569; line-height: 1.7; }
html .woocommerce-password-strength { margin-top: .5rem; border-radius: .5rem; font-size: .8125rem; }

/* ---------- Nội dung bài viết / chính sách ---------- */
.prose-nx { color: #334155; font-size: 1.0625rem; line-height: 1.8; overflow-wrap: break-word; }
.prose-nx > * + * { margin-top: 1.1em; }
/*
 * Kiểu chữ chỉ áp cho nội dung bài viết, KHÔNG áp vào khối .not-prose (vd lưới product card do shortcode in ra).
 * Dùng :where() để độ ưu tiên bằng class Tailwind → class của component (màu, cỡ chữ) vẫn thắng.
 */
.prose-nx :where(h2):not(:where(.not-prose *)) { margin-top: 2em; font-size: 1.5rem; line-height: 1.3; font-weight: 800; color: #0A1F44; scroll-margin-top: 9rem; }
.prose-nx :where(h3):not(:where(.not-prose *)) { margin-top: 1.6em; font-size: 1.2rem; line-height: 1.4; font-weight: 700; color: #0A1F44; scroll-margin-top: 9rem; }
.prose-nx :where(h4):not(:where(.not-prose *)) { margin-top: 1.4em; font-weight: 700; color: #0A1F44; }
.prose-nx > :first-child,
.prose-nx > .nx-block > :first-child,
.prose-nx > .nx-block > :first-child > :first-child { margin-top: 0; }
.prose-nx :where(a):not(:where(.not-prose *, .btn, .nx-btn, .button)) { color: #1D57D8; text-decoration: underline; text-underline-offset: 3px; }
.prose-nx :where(ul):not(:where(.not-prose *)) { list-style: disc; padding-left: 1.4em; }
.prose-nx :where(ol):not(:where(.not-prose *)) { list-style: decimal; padding-left: 1.4em; }
.prose-nx :where(li + li):not(:where(.not-prose *)) { margin-top: .4em; }
.prose-nx :where(strong, b):not(:where(.not-prose *)) { color: #0F172A; }
.prose-nx :where(img):not(:where(.not-prose *)) { height: auto; max-width: 100%; border-radius: 1rem; }
.prose-nx figure { max-width: 100%; }
.prose-nx figcaption,
.prose-nx .wp-caption-text { margin-top: .5rem; font-size: .875rem; color: #64748B; text-align: center; }
.prose-nx .wp-caption { max-width: 100%; }
.prose-nx .aligncenter { margin-left: auto; margin-right: auto; }
.prose-nx iframe { max-width: 100%; border-radius: 1rem; }
.prose-nx :where(blockquote):not(:where(.not-prose *)) { border-left: 4px solid #B9CFFD; padding: .25rem 0 .25rem 1rem; color: #475569; }
.prose-nx :where(table):not(:where(.not-prose *)) { display: block; width: 100%; max-width: 100%; overflow-x: auto; border-collapse: collapse; font-size: .95rem; }
.prose-nx :where(th, td):not(:where(.not-prose *)) { border: 1px solid #E2E8F0; padding: .6rem .8rem; text-align: left; }
.prose-nx :where(th):not(:where(.not-prose *)) { background: #F8FAFC; font-weight: 600; color: #0A1F44; }
.prose-nx :where(code):not(:where(.not-prose *)) { background: #EEF4FF; padding: .1em .35em; border-radius: .35rem; font-size: .9em; }
/* Lưới sản phẩm trong nội dung: cỡ chữ của card, không kế thừa cỡ chữ bài viết */
.prose-nx .not-prose { font-size: 1rem; line-height: 1.5; }
/* Nội dung cũ có style inline (font arial, màu đen, cỡ chữ %) – đưa về font và màu của theme */
.prose-nx span[style*="font-family"] { font-family: inherit !important; }
.prose-nx [style*="color: #000000"],
.prose-nx [style*="color:#000000"] { color: inherit !important; }

.toc-link.is-active { color: #1D57D8; border-color: #1D57D8; font-weight: 600; }
.policy-link.is-active { background: #EEF4FF; color: #1746B0; border-color: #B9CFFD; }

/* ---------- Shortcode cũ (Flatsome) chuyển sang lưới đơn giản ---------- */
.nx-section { margin: 1.5rem 0; }
.nx-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; margin: 1.5rem 0; }
@media (min-width: 768px) {
	.nx-row { grid-template-columns: repeat(12, minmax(0, 1fr)); }
	.nx-col { grid-column: span var(--span, 12) / span var(--span, 12); }
}
.nx-col > :first-child { margin-top: 0; }
.nx-gap { height: 1.5rem; }
.nx-slider { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.nx-slider > * { flex: 0 0 100%; scroll-snap-align: start; margin: 0 !important; }
.nx-banner { position: relative; overflow: hidden; border-radius: 1rem; padding: 2rem; color: #fff; }
.nx-banner .nx-col, .nx-banner h1, .nx-banner h2, .nx-banner h3, .nx-banner p { color: inherit; }
.nx-featured { text-align: center; }
.nx-featured img { margin: 0 auto 1rem; }
.nx-btn {
	display: inline-flex; align-items: center; gap: .5rem; height: 2.75rem; padding: 0 1.25rem; border-radius: .75rem;
	background: #1D57D8; color: #fff !important; font-weight: 600; text-decoration: none !important;
}
.nx-btn:hover { background: #1746B0; }
.thong-so-ky-thuat { display: none; }

/* Nội dung cũ đặt trong cột hẹp (vd trang Liên hệ): bỏ lưới cột */
.nx-flat .nx-row { display: block; margin: 0; }
.nx-flat .nx-section { margin: 0; }
.nx-flat h2 { margin-top: 0; font-size: 1.125rem; text-align: left !important; }

/* Popup "Đã thêm vào giỏ hàng" */
.cart-popup { opacity: 0; transform: translateY(8px); transition: opacity .2s ease, transform .2s ease; }
.cart-popup.is-open { opacity: 1; transform: none; }
/* Thông báo WooCommerce trên trang sản phẩm nằm trong khung nội dung */
.nexpc-notices .woocommerce-notices-wrapper:not(:empty) { padding-top: 1rem; }
.nexpc-notices .woocommerce-message, .nexpc-notices .woocommerce-info, .nexpc-notices .woocommerce-error { margin-bottom: 0; }

/* Nút "Tiến hành thanh toán": WooCommerce đặt padding 1em + font 1.25em làm chữ lệch xuống */
html .woocommerce .wc-proceed-to-checkout a.checkout-button { display: flex; align-items: center; justify-content: center; width: 100%; height: 3rem; margin: 0; padding: 0 1.5rem; font-size: 1rem; line-height: 1; }

/* Lỗi khi đặt hàng: WooCommerce chèn hộp lỗi vào đầu form (lưới 2 cột) → cho chiếm trọn hàng đầu */
form.woocommerce-checkout > .woocommerce-NoticeGroup,
form.woocommerce-checkout > .woocommerce-error,
form.woocommerce-checkout > .woocommerce-message,
form.woocommerce-checkout > .woocommerce-info { grid-column: 1 / -1; margin-bottom: 0; }

/* Cột lọc danh mục: thanh cuộn mảnh */
#filter-panel { scrollbar-width: thin; scrollbar-color: #CBD5E1 transparent; }
#filter-panel::-webkit-scrollbar { width: 6px; }
#filter-panel::-webkit-scrollbar-thumb { border-radius: 9999px; background: #CBD5E1; }

/* Form đặt dịch vụ (dialog): giữa màn hình trên desktop, trượt từ dưới lên trên mobile */
.service-dialog { margin: auto; max-height: 92vh; overflow-y: auto; }
.service-dialog[open] { animation: nx-pop .2s ease; }
@keyframes nx-pop { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (max-width: 639.98px) {
	.service-dialog { width: 100%; max-width: 100%; margin: auto 0 0; border-radius: 1rem 1rem 0 0; }
}
.service-dialog::backdrop { background: rgba(15, 23, 42, .5); }
/* Nút "Mua trên Shopee" (thắng rule màu nút chính .single_add_to_cart_button) */
html .nexpc-shopee-btn, html .woocommerce .nexpc-shopee-btn.single_add_to_cart_button { border-color: #EE4D2D !important; background: #EE4D2D !important; color: #fff !important; }
html .nexpc-shopee-btn:hover, html .woocommerce .nexpc-shopee-btn.single_add_to_cart_button:hover { border-color: #D73211 !important; background: #D73211 !important; color: #fff !important; }

/* Bài SEO danh mục: thu gọn kèm lớp mờ, bấm "Xem thêm" để mở */
.nexpc-collapse-body.is-collapsed { position: relative; max-height: 560px; overflow: hidden; }
.nexpc-collapse-body.is-collapsed::after { content: ""; position: absolute; inset: auto 0 0; height: 140px; background: linear-gradient(rgba(255,255,255,0), #fff); }
.nexpc-intro .prose-nx > * + * { margin-top: .5em; }

/* Flash sale: tia sét nhấp nháy nhẹ */
.nexpc-flash-bolt { animation: nx-bolt 1.6s ease-in-out infinite; }
@keyframes nx-bolt { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.18) rotate(-8deg); } }

/* Tài khoản: WooCommerce đặt menu float + width 30%, nội dung 68% → bóp hẹp trong lưới của theme */
html .woocommerce-account .woocommerce-MyAccount-navigation,
html .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
/* Form sửa địa chỉ / thông tin cá nhân đặt trong thẻ */
html .woocommerce-MyAccount-content > form,
html .woocommerce-MyAccount-content > .woocommerce-address-fields { padding: 1.25rem; border: 1px solid #E2E8F0; border-radius: 1rem; background: #fff; }
@media (min-width: 640px) { html .woocommerce-MyAccount-content > form { padding: 1.5rem; } }
html .woocommerce-MyAccount-content > form > h2:first-child,
html .woocommerce-MyAccount-content > form > h3:first-child { margin-top: 0; }
html .woocommerce-MyAccount-content > p:first-child { margin-bottom: 1rem; }
html .woocommerce-EditAccountForm .woocommerce-form-row { margin-bottom: 1rem; }
html .woocommerce-EditAccountForm em { display: block; margin-top: .35rem; font-size: .8125rem; color: #64748B; font-style: normal; }

/* ---------- Đánh giá sản phẩm (woocommerce/nexpc-product-reviews.php) ---------- */
.nexpc-reviews { text-align: left; }
/* Tab nằm trong .entry-content (link xanh, gạch chân): link trong phần đánh giá tự định dạng. */
.entry-content .nexpc-reviews a { color: inherit; text-decoration: none; }
.entry-content .nexpc-reviews a.nexpc-rv-cta { color: #451A03; }
.nexpc-rv-chip {
	display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .9rem; border: 1px solid #DCE7FE; border-radius: 9999px;
	background: #EEF4FF; color: #1746B0; font-size: .8125rem; font-weight: 600; line-height: 1.3; cursor: pointer; transition: background-color .15s, border-color .15s, color .15s;
}
.nexpc-rv-chip:hover { border-color: #B9CFFD; }
.nexpc-rv-chip.is-active { border-color: #1D57D8; background: #1D57D8; color: #fff; }
.nexpc-rv-chip:disabled { opacity: .6; cursor: wait; }
.nexpc-rv-tag:has(input:focus-visible) { box-shadow: 0 0 0 3px #B9CFFD; }
.nexpc-rv-stars { display: inline-flex; gap: 1px; line-height: 1; letter-spacing: 0; }
.nexpc-rv-stars > span { color: #CBD5E1; }
.nexpc-rv-stars > span.is-on { color: #F59E0B; }
.nexpc-rv-stars--light .nexpc-rv-stars > span { color: rgba(255, 255, 255, .3); }
.nexpc-rv-stars--light .nexpc-rv-stars > span.is-on { color: #FCD34D; }
.nexpc-rv-pick { display: inline-flex; gap: .15rem; }
.nexpc-rv-pick button { padding: 0 .2rem; border: 0; background: none; font-size: 2.4rem; line-height: 1; color: #CBD5E1; cursor: pointer; transition: transform .1s, color .1s; }
.nexpc-rv-pick button:hover { transform: scale(1.15); }
.nexpc-rv-pick button.is-on { color: #F59E0B; }
.nexpc-rv-pick button:focus-visible { outline: 2px solid #1D57D8; outline-offset: 2px; border-radius: .375rem; }
.nexpc-rv-input {
	display: block; width: 100%; padding: .7rem 1rem; border: 1px solid #CBD5E1; border-radius: .75rem; background: #fff;
	color: #0F172A; font-size: .9375rem; transition: border-color .15s, box-shadow .15s;
}
textarea.nexpc-rv-input { min-height: 7rem; resize: vertical; }
.nexpc-rv-input:focus { outline: none; border-color: #2F6BEA; box-shadow: 0 0 0 4px #DCE7FE; }
.nexpc-rv-input.is-invalid { border-color: #E11D48; }
.nexpc-rv-act.nexpc-rv-like.is-liked { border-color: #DCE7FE; background: #EEF4FF; color: #1D57D8; }
.nexpc-rv-like.is-liked i { font-weight: 900; }
.nexpc-rv-text p { margin: 0 0 .5rem; }
.nexpc-rv-text p:last-child { margin-bottom: 0; }
.nexpc-rv-lightbox { position: fixed; inset: 0; z-index: 90; display: flex; align-items: center; justify-content: center; padding: 1.5rem; background: rgba(10, 31, 68, .85); }
.nexpc-rv-lightbox[hidden] { display: none; }
.nexpc-rv-lightbox img { max-width: min(92vw, 900px); max-height: 85vh; border-radius: .75rem; background: #fff; }
.nexpc-rv-lightbox__close { position: absolute; top: 1rem; right: 1rem; display: flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; border: 0; border-radius: 9999px; background: #fff; color: #0A1F44; font-size: 1.1rem; cursor: pointer; }

/* ---------- Trang bài viết (single.php) ---------- */
.nexpc-read-progress { position: fixed; inset: 0 0 auto 0; z-index: 60; height: 3px; pointer-events: none; }
.nexpc-read-progress span { display: block; width: 0; height: 100%; background: linear-gradient(90deg, #1D57D8, #60A5FA); transition: width .1s linear; }
.nexpc-toc-box summary::-webkit-details-marker { display: none; }
@media (min-width: 1024px) { .nexpc-toc-box summary { pointer-events: none; } }
.nexpc-toc-link { display: flex; gap: .6rem; padding: .5rem .65rem; border-radius: .65rem; font-size: .875rem; line-height: 1.45; color: #475569; transition: background-color .15s, color .15s; }
.nexpc-toc-link:hover { background: #F8FAFC; color: #1D57D8; }
.nexpc-toc-link.is-sub { padding-left: 2.3rem; font-size: .8125rem; }
.nexpc-toc-num { display: flex; width: 1.4rem; height: 1.4rem; flex-shrink: 0; align-items: center; justify-content: center; border-radius: .45rem; background: #F1F5F9; color: #64748B; font-size: .75rem; font-weight: 700; }
.nexpc-toc-dot { width: .35rem; height: .35rem; margin: .5rem .2rem 0 -.95rem; flex-shrink: 0; border-radius: 9999px; background: #CBD5E1; }
.nexpc-toc-link.is-active { background: #EEF4FF; color: #1D57D8; font-weight: 600; }
.nexpc-toc-link.is-active .nexpc-toc-num { background: #1D57D8; color: #fff; }
.nexpc-toc-link.is-active .nexpc-toc-dot { background: #1D57D8; }

.nexpc-article-body { font-size: 1.0625rem; line-height: 1.85; counter-reset: nx-h3; }
.nexpc-article-body :where(h2):not(:where(.not-prose *)) { position: relative; padding-left: 1rem; counter-reset: nx-h3; }
.nexpc-article-body :where(h2):not(:where(.not-prose *))::before { content: ""; position: absolute; left: 0; top: .2em; bottom: .2em; width: 4px; border-radius: 4px; background: #1D57D8; }
.nexpc-article-body :where(h3):not(:where(.not-prose *)) {
	position: relative; margin-top: 2em; padding: .95rem 1.1rem .95rem 3.9rem; border: 1px solid #E2E8F0; border-radius: .9rem;
	background: #F8FAFC; font-size: 1.25rem; font-weight: 800; counter-increment: nx-h3;
}
.nexpc-article-body :where(h3):not(:where(.not-prose *))::before {
	content: counter(nx-h3); position: absolute; left: 1rem; top: 50%; display: flex; width: 2.1rem; height: 2.1rem; align-items: center; justify-content: center;
	transform: translateY(-50%); border-radius: .65rem; background: #1D57D8; color: #fff; font-size: .95rem;
}
.nexpc-article-body :where(ul):not(:where(.not-prose *, ul ul, ol ul)) { list-style: none; padding-left: 0; }
.nexpc-article-body :where(ul > li):not(:where(.not-prose *, ul ul li, ol ul li)) { position: relative; padding-left: 1.9rem; }
.nexpc-article-body :where(ul > li):not(:where(.not-prose *, ul ul li, ol ul li))::before {
	content: "\f00c"; position: absolute; left: 0; top: .32em; display: flex; width: 1.25rem; height: 1.25rem; align-items: center; justify-content: center;
	border-radius: .4rem; background: #DCFCE7; color: #16A34A; font-family: "Font Awesome 6 Free"; font-size: .65rem; font-weight: 900; line-height: 1;
}
.nexpc-article-body :where(img):not(:where(.not-prose *)) { border-radius: .9rem; }
.nexpc-article-body :where(blockquote):not(:where(.not-prose *)) { border-left: 0; border-radius: .9rem; background: #EEF4FF; padding: 1rem 1.25rem; color: #1E3A8A; }
.nexpc-article-tags a { display: inline-flex; padding: .3rem .8rem; border-radius: 9999px; background: #F1F5F9; color: #475569; }
.nexpc-article-tags a:hover { background: #EEF4FF; color: #1D57D8; }
.nexpc-vote-btn {
	display: inline-flex; align-items: center; gap: .5rem; padding: .6rem 1.1rem; border: 1px solid #E2E8F0; border-radius: .75rem;
	background: #fff; color: #334155; font-size: .875rem; font-weight: 600; transition: border-color .15s, background-color .15s, color .15s;
}
.nexpc-vote-btn:hover { border-color: #DCE7FE; background: #EEF4FF; color: #1D57D8; }

/* ---------- Menu danh mục: màu icon menu con (inc/nav-walkers.php) ---------- */
.nx-tone { transition: transform .15s; }
.nx-subcat:hover .nx-tone { transform: scale(1.06); }
.nx-tone-0 { background: #EEF4FF; color: #1D57D8; }
.nx-tone-1 { background: #F3E8FF; color: #7C3AED; }
.nx-tone-2 { background: #CCFBF1; color: #0D9488; }
.nx-tone-3 { background: #FEF3C7; color: #D97706; }
.nx-tone-4 { background: #FFE4E6; color: #E11D48; }
.nx-tone-5 { background: #DCFCE7; color: #16A34A; }

/* ---------- Popup "Đặt mua nhanh" (template-parts/product/quick-order.php) ---------- */
.nexpc-qo { position: fixed; inset: 0; z-index: 95; display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
.nexpc-qo[hidden] { display: none; }
.nexpc-qo__backdrop { position: absolute; inset: 0; background: rgba(10, 31, 68, .55); backdrop-filter: blur(3px); }
.nexpc-qo__dialog {
	position: relative; display: flex; flex-direction: column; width: 100%; max-width: 980px; max-height: calc(100vh - 3rem);
	overflow: hidden; overflow: clip; border-radius: 1.4rem; background: #fff; box-shadow: 0 30px 80px -20px rgba(10, 31, 68, .45); animation: nexpc-qo-in .2s ease-out;
}
/* Vùng cuộn (tóm tắt + form); thanh trên / dưới chỉ dùng trên điện thoại. */
.nexpc-qo__body { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; }
.nexpc-qo__head, .nexpc-qo__foot { display: none; }
.nexpc-qo__summary { display: flex; flex-direction: column; justify-content: space-between; gap: 1.5rem; padding: 1.75rem 1.6rem; border-right: 1px solid #E2E8F0; background: linear-gradient(180deg, #F3F8FF, #EAF2FF); color: #334155; }
.nexpc-qo__form { padding: 1.6rem 1.75rem; }
.nexpc-qo__label { display: block; margin-bottom: .3rem; font-size: .8125rem; font-weight: 600; color: #0A1F44; }
.nexpc-qo__err { min-height: 0; margin-top: .25rem; font-size: .8125rem; color: #E11D48; }
.nexpc-qo__err:empty { display: none; }
.nexpc-qo select.nexpc-rv-input { height: 2.75rem; padding-top: 0; padding-bottom: 0; }
.nexpc-qo select.nexpc-rv-input:disabled { background: #F8FAFC; color: #94A3B8; }
.nexpc-qo__pay { position: relative; display: flex; gap: .65rem; align-items: flex-start; padding: .7rem .75rem; border: 1.5px solid #E2E8F0; border-radius: .8rem; cursor: pointer; line-height: 1.35; transition: border-color .15s, background-color .15s; }
.nexpc-qo__pay:has(input:checked) { border-color: #1D57D8; background: #EEF4FF; }
.nexpc-qo__pay:has(input:focus-visible) { box-shadow: 0 0 0 3px #B9CFFD; }
.nexpc-qo__pay[hidden] { display: none; }
.nexpc-qo__dot { width: 1.1rem; height: 1.1rem; margin-top: .1rem; flex-shrink: 0; border: 2px solid #CBD5E1; border-radius: 9999px; }
.nexpc-qo__pay:has(input:checked) .nexpc-qo__dot { border: 5px solid #1D57D8; }
@keyframes nexpc-qo-in { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) {
	/* Điện thoại: toàn màn hình – thanh trên (tiêu đề + nút đóng) và thanh dưới (tổng tiền + Đặt hàng) luôn hiện,
	   chỉ phần giữa cuộn. Ô nhập 16px để Safari không tự phóng to trang khi chạm vào. */
	.nexpc-qo { align-items: stretch; padding: 0; }
	.nexpc-qo__backdrop { display: none; }
	.nexpc-qo__dialog { max-width: none; height: 100%; max-height: none; border-radius: 0; box-shadow: none; animation-name: nexpc-qo-up; }
	.nexpc-qo__head { display: flex; flex-shrink: 0; align-items: center; justify-content: space-between; gap: .75rem; padding: calc(env(safe-area-inset-top, 0px) + .5rem) .75rem .5rem 1rem; border-bottom: 1px solid #E2E8F0; background: #fff; }
	.nexpc-qo__foot { display: flex; flex-shrink: 0; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem 1rem calc(env(safe-area-inset-bottom, 0px) + .65rem); border-top: 1px solid #E2E8F0; background: #fff; box-shadow: 0 -10px 24px -14px rgba(10, 31, 68, .25); }
	.nexpc-qo__x, .nexpc-qo__title, .nexpc-qo__form [data-qo-submit] { display: none; }
	.nexpc-qo__body { display: block; }
	.nexpc-qo .nexpc-rv-input { font-size: 16px; }
	.nexpc-qo__summary { gap: 1rem; padding: 1rem; border-right: 0; border-bottom: 1px solid #E2E8F0; }
	.nexpc-qo__form { padding: 1rem 1rem 1.25rem; }
	@keyframes nexpc-qo-up { from { transform: translateY(40px); opacity: .6; } to { transform: none; opacity: 1; } }
}

/* Nút thao tác dưới đánh giá: Hữu ích / Trả lời / Sửa (admin). */
.nexpc-rv-act {
	display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .8rem; border: 1px solid #E2E8F0; border-radius: 9999px;
	background: #fff; color: #64748B; font-size: .8125rem; font-weight: 500; line-height: 1.4; cursor: pointer; transition: border-color .15s, background-color .15s, color .15s;
}
.nexpc-rv-act:hover, .nexpc-rv-act.is-active { border-color: #DCE7FE; background: #EEF4FF; color: #1D57D8; }
.entry-content .nexpc-reviews a.nexpc-rv-act--admin, .nexpc-rv-act--admin { border-color: #FDE68A; background: #FFFBEB; color: #B45309; }
.entry-content .nexpc-reviews a.nexpc-rv-act--admin:hover, .nexpc-rv-act--admin:hover { border-color: #F59E0B; background: #FEF3C7; color: #92400E; }
.nexpc-rv-act--sm { padding: .1rem .55rem; font-size: .75rem; font-weight: 500; }

/* Mô tả ngắn trang sản phẩm: danh sách gọn trong khung, dấu tích thay chấm tròn,
   chia 2 cột khi danh sách có class nexpc-cols-2 (do inc/woocommerce.php gắn theo độ dài dòng). */
html .nexpc-short-desc { padding: .875rem 1rem; border: 1px solid #E2E8F0; border-radius: 1rem; background: #fff; }
html .nexpc-short-desc > :first-child { margin-top: 0; }
html .nexpc-short-desc > :last-child { margin-bottom: 0; }
html .nexpc-short-desc p { margin: 0 0 .5rem; }
html .nexpc-short-desc ul { list-style: none; margin: 0; padding: 0; }
html .nexpc-short-desc ul li { position: relative; margin: 0 0 .4rem; padding-left: 1.6rem; line-height: 1.5; break-inside: avoid; }
html .nexpc-short-desc ul li:last-child { margin-bottom: 0; }
html .nexpc-short-desc ul li::before {
	content: ""; position: absolute; left: 0; top: .15em; width: 1.1rem; height: 1.1rem; border-radius: 999px;
	background: #EEF4FF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%231D57D8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M4 8.5l2.6 2.5L12 5.5'/%3E%3C/svg%3E") center / .7rem no-repeat;
}
@media (min-width: 640px) {
	html .nexpc-short-desc ul.nexpc-cols-2 { columns: 2; column-gap: 1.5rem; }
}
/* Danh sách con trong mô tả ngắn: thụt vào, chữ nhỏ, chấm xám thay dấu tích. */
html .nexpc-short-desc ul.nexpc-sublist, html .nexpc-short-desc ol.nexpc-sublist { margin: .35rem 0 0; }
html .nexpc-short-desc .nexpc-sublist > li { padding-left: 1rem; font-size: .92em; color: #475569; }
html .nexpc-short-desc .nexpc-sublist > li::before { width: .35rem; height: .35rem; top: .6em; left: .2rem; background: #94A3B8; }

/* Logo "Đã thông báo Bộ Công Thương" ở chân trang: cùng kích thước trên mọi trang
   (WooCommerce có .woocommerce img { height: auto } làm ảnh to ra ở trang sản phẩm / danh mục). */
html .nexpc-bct img { display: block; width: auto; height: 57px; max-width: none; }

/* Bảng giá sản phẩm: dòng bị ẩn khi tìm kiếm (class grid / table-row của Tailwind đè thuộc tính hidden). */
html [data-price-row][hidden], html [data-price-table][hidden], html [data-price-link][hidden] { display: none !important; }

/* Nút nổi Zalo / gọi / lên đầu trang + thông báo: trên trang có thanh "Mua ngay" dính đáy (điện thoại, máy tính bảng)
   thì đẩy lên trên thanh để không đè nút đặt hàng. */
@media (max-width: 1023px) {
	html body:has([data-buybar]) .nexpc-floating { bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px)); }
	html body:has([data-buybar]) .nexpc-toast { bottom: calc(6rem + env(safe-area-inset-bottom, 0px)); }
}

/* Bảng chọn có ô tìm (assets/js/picker.js): tỉnh / phường trong popup "Mua ngay". */
html .nexpc-pk-wrap { position: relative; display: block; }
html .nexpc-pk-hit { position: absolute; inset: 0; width: 100%; margin: 0; padding: 0; border: 0; border-radius: 0.75rem; background: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent; }
html .nexpc-pk-hit:disabled { cursor: not-allowed; }
html .nexpc-pk-hit:focus-visible { outline: none; box-shadow: 0 0 0 4px #DCE7FE; }
html .nexpc-pk-wrap:has(.nexpc-pk-hit:focus-visible) select { border-color: #2F6BEA; }
html.nexpc-pk-open, html.nexpc-pk-open body { overflow: hidden; }
html .nexpc-pk { position: fixed; inset: 0; z-index: 120; display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
html .nexpc-pk[hidden] { display: none; }
html .nexpc-pk__backdrop { position: absolute; inset: 0; background: rgba(10, 31, 68, 0.45); }
html .nexpc-pk__panel { position: relative; display: flex; flex-direction: column; width: 100%; max-width: 440px; height: min(620px, 80vh); overflow: hidden; border-radius: 1.25rem; background: #fff; box-shadow: 0 24px 60px -20px rgba(10, 31, 68, 0.45); }
html .nexpc-pk__head { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.875rem 1rem 0.5rem 1.25rem; }
html .nexpc-pk__title { margin: 0; font-size: 1.0625rem; font-weight: 800; color: #0A1F44; }
html .nexpc-pk__x { display: flex; width: 2.5rem; height: 2.5rem; flex-shrink: 0; align-items: center; justify-content: center; border-radius: 9999px; border: 1px solid #E2E8F0; background: #fff; font-size: 1.125rem; color: #334155; }
html .nexpc-pk__search { display: flex; align-items: center; gap: 0.625rem; margin: 0 1rem 0.5rem; padding: 0 0.875rem; height: 3rem; border: 1.5px solid #2F6BEA; border-radius: 0.875rem; background: #fff; color: #94A3B8; box-shadow: 0 0 0 4px #DCE7FE; }
html .nexpc-pk__search input { flex: 1; min-width: 0; height: 100%; border: 0; outline: none; background: transparent; font-size: 16px; color: #0A1F44; }
html .nexpc-pk__search input::-webkit-search-cancel-button { cursor: pointer; }
html .nexpc-pk__list { flex: 1; overflow-y: auto; overscroll-behavior: contain; margin: 0; padding: 0.25rem 0.5rem 1rem; list-style: none; -webkit-overflow-scrolling: touch; }
html .nexpc-pk__opt { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; min-height: 3rem; padding: 0.5rem 0.875rem; border-radius: 0.75rem; font-size: 15.5px; color: #1E293B; cursor: pointer; }
html .nexpc-pk__opt[hidden] { display: none; }
html .nexpc-pk__opt + .nexpc-pk__opt { border-top: 1px solid #F1F5F9; }
html .nexpc-pk__opt:hover, html .nexpc-pk__opt.is-active { background: #EEF4FF; border-top-color: transparent; }
html .nexpc-pk__opt[aria-selected="true"] { font-weight: 700; color: #1D57D8; }
html .nexpc-pk__opt[aria-selected="true"]::after { content: "\2713"; font-weight: 800; }
html .nexpc-pk__empty { margin: 0; padding: 1.5rem 1.25rem; text-align: center; font-size: 14px; color: #64748B; }
@media (max-width: 767px) {
	html .nexpc-pk { align-items: flex-end; padding: 0; }
	html .nexpc-pk__panel { max-width: none; height: calc(100% - 2.5rem); border-radius: 1.25rem 1.25rem 0 0; padding-bottom: env(safe-area-inset-bottom, 0px); }
	html .nexpc-pk__panel[style*="top"] { position: absolute; left: 0; right: 0; }
}

/* Trang thanh toán QR (SePay) – woocommerce/checkout/thankyou.php, khung .nexpc-paybox.
   Chỉ đổi giao diện phần plugin SePay in ra; giữ nguyên các id / class mà script SePay dùng (nút chép, kiểm tra trạng thái). */
html body .nexpc-paybox .woocommerce-sepay-bank-details { margin: 0 !important; padding: 0 !important; max-width: none !important; border: 0 !important; border-radius: 0 !important; background: none !important; box-shadow: none !important; }
html body .nexpc-paybox .sepay-box { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; max-width: none !important; }
html body .nexpc-paybox .box-title, html body .nexpc-paybox .sepay-pay-footer, html body .nexpc-paybox .banner, html body .nexpc-paybox .qr-top-border, html body .nexpc-paybox .qr-bottom-border { display: none !important; }
html body .nexpc-paybox .sepay-pay-info { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; margin: 0 !important; padding: 0 !important; border: 0 !important; }
@media (min-width: 768px) { html body .nexpc-paybox .sepay-pay-info { grid-template-columns: 270px minmax(0, 1fr); gap: 1.75rem; } }
html body .nexpc-paybox .qr-box, html body .nexpc-paybox .manual-box { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important; flex: none !important; }
html body .nexpc-paybox .qr-box { display: block !important; text-align: center; }
html body .nexpc-paybox .qr-title, html body .nexpc-paybox .manual-title { margin: 0 0 .6rem !important; font-size: 13.5px !important; line-height: 1.4; color: #475569 !important; text-align: center; }
@media (min-width: 768px) { html body .nexpc-paybox .manual-title { text-align: left; } }
html body .nexpc-paybox .qr-zone { display: flex; flex-direction: column; align-items: center; gap: .75rem; margin: 0 !important; padding: 0 !important; }
html body .nexpc-paybox .qr-element { position: static !important; width: min(260px, 74vw) !important; height: auto !important; margin: 0 auto !important; padding: 0 !important; border: 0 !important; }
html body .nexpc-paybox .qr-content { padding: 10px !important; border: 1px solid #E2E8F0 !important; border-radius: 16px; background: #fff; }
html body .nexpc-paybox .qr-image { display: block; width: 100% !important; height: auto !important; max-width: none !important; margin: 0 !important; }
html body .nexpc-paybox .download-qr { margin: 0 0 .5rem !important; }
html body .nexpc-paybox .button-qr { display: inline-flex !important; align-items: center; gap: .5rem; height: 42px; padding: 0 1rem !important; border: 1px solid #CBD5E1 !important; border-radius: 12px !important; background: #fff !important; color: #0A1F44 !important; font-size: 14px !important; font-weight: 700; text-decoration: none !important; }
html body .nexpc-paybox .button-qr svg { width: 16px; height: 16px; stroke: #0A1F44 !important; color: #0A1F44 !important; }
html body .nexpc-paybox .button-qr span { display: inline !important; color: #0A1F44 !important; font-size: 14px !important; }
html body .nexpc-paybox .qr-zone { justify-content: flex-start !important; }
html body .nexpc-paybox .bank-info { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
html body .nexpc-paybox .bank-info-table { display: block !important; width: 100% !important; margin: 0 !important; border: 0 !important; }
html body .nexpc-paybox .bank-info-row-group { display: flex !important; flex-direction: column; }
html body .nexpc-paybox .bank-info-row { display: flex !important; flex-direction: row !important; align-items: center; justify-content: space-between; gap: .75rem; padding: .7rem .9rem !important; margin: 0 !important; border: 1px solid #E2E8F0; border-top-width: 0; background: #fff; font-size: 14px; }
html body .nexpc-paybox .bank-info-row:nth-child(1) { border-top-width: 1px; border-radius: 14px 14px 0 0; }
html body .nexpc-paybox .bank-info-row:nth-child(3) { border-radius: 0 0 14px 14px; }
html body .nexpc-paybox .bank-info-cell { display: block !important; padding: 0 !important; border: 0 !important; width: auto !important; }
html body .nexpc-paybox .bank-info-cell:first-child { color: #64748B; white-space: nowrap; }
html body .nexpc-paybox .bank-info-cell:last-child { text-align: right; font-weight: 700; color: #0A1F44; min-width: 0; }
html body .nexpc-paybox .bank-info-value { display: inline-flex !important; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem; }
html body .nexpc-paybox .bank-info-value span:first-child { width: auto !important; word-break: break-all; }
/* Số tiền + nội dung chuyển khoản: nổi bật, đưa lên trên cùng. */
html body .nexpc-paybox .bank-info-row:has(#copy_amount), html body .nexpc-paybox .bank-info-row:has(#copy_memo) { order: -2; flex-wrap: wrap; border-width: 0; border-radius: 16px; padding: .85rem 1rem !important; margin-bottom: .65rem !important; }
html body .nexpc-paybox .bank-info-row:has(#copy_amount) { background: #0A1F44; }
html body .nexpc-paybox .bank-info-row:has(#copy_amount) .bank-info-cell:first-child { color: #93A6C9; font-size: 12.5px; }
html body .nexpc-paybox .bank-info-row:has(#copy_amount) .bank-info-cell:last-child, html body .nexpc-paybox .bank-info-row:has(#copy_amount) .bank-info-cell:last-child * { color: #fff !important; }
html body .nexpc-paybox .bank-info-row:has(#copy_amount) #copy_amount { font-size: 24px; letter-spacing: .3px; }
html body .nexpc-paybox .bank-info-row:has(#copy_memo) { order: -1; background: #FFFBEB; border: 2px dashed #F59E0B; margin-bottom: .9rem !important; }
html body .nexpc-paybox .bank-info-row:has(#copy_memo) .bank-info-cell:first-child { color: #92400E; font-size: 12.5px; }
html body .nexpc-paybox .bank-info-row:has(#copy_memo) .bank-info-cell:first-child::after { content: " (bắt buộc giữ nguyên)"; }
html body .nexpc-paybox .bank-info-row:has(#copy_memo) #copy_memo { font-size: 21px; letter-spacing: 1px; }
@media (max-width: 479px) {
	html body .nexpc-paybox .bank-info-row:has(#copy_amount), html body .nexpc-paybox .bank-info-row:has(#copy_memo) { flex-direction: column !important; align-items: stretch; gap: .25rem; }
	html body .nexpc-paybox .bank-info-row:has(#copy_amount) .bank-info-cell:last-child, html body .nexpc-paybox .bank-info-row:has(#copy_memo) .bank-info-cell:last-child { width: 100% !important; }
	html body .nexpc-paybox .bank-info-row:has(#copy_amount) .bank-info-value, html body .nexpc-paybox .bank-info-row:has(#copy_memo) .bank-info-value { display: flex !important; justify-content: space-between; flex-wrap: nowrap; }
}
/* Nút chép (giữ span/a của SePay, thêm chữ "Chép"). */
html body .nexpc-paybox #sepay_copy_account_number, html body .nexpc-paybox #sepay_copy_amount, html body .nexpc-paybox #sepay_copy_transfer_content { display: inline-flex !important; align-items: center; gap: .3rem; width: auto !important; padding: .35rem .6rem; border: 1px solid #BFD3FB; border-radius: 10px; background: #fff; cursor: pointer; font-size: 12.5px; font-weight: 700; color: #1D57D8; line-height: 1; white-space: nowrap; }
html body .nexpc-paybox #sepay_copy_account_number::after, html body .nexpc-paybox #sepay_copy_amount::after, html body .nexpc-paybox #sepay_copy_transfer_content::after { content: "Chép"; }
html body .nexpc-paybox #sepay_copy_account_number a, html body .nexpc-paybox #sepay_copy_amount a, html body .nexpc-paybox #sepay_copy_transfer_content a { display: inline-flex !important; line-height: 0; padding: 0 !important; margin: 0 !important; border: 0 !important; background: none !important; }
html body .nexpc-paybox #sepay_copy_amount { background: transparent; border-color: rgba(255, 255, 255, .4); }
html body .nexpc-paybox #sepay_copy_amount svg path { fill: #fff; }
html body .nexpc-paybox #sepay_copy_transfer_content { border-color: #F59E0B; color: #92400E; }
html body .nexpc-paybox .note { display: flex !important; gap: .5rem; align-items: flex-start; margin: .85rem 0 0 !important; padding: .65rem .8rem !important; border: 0 !important; border-radius: 12px; background: #FFFBEB !important; color: #92400E !important; font-size: 13px !important; line-height: 1.5; }
html body .nexpc-paybox .note svg { width: 16px; height: 16px; flex-shrink: 0; margin-top: 2px; }
/* Đã thanh toán (SePay chèn thông báo, tự ẩn QR). */
html body .nexpc-paybox .sepay-message .paid-notification { margin: 0 auto; padding: 1rem 0; text-align: center; font-size: 15px; color: #047857; }
html body .nexpc-paybox .sepay-message .paid-notification svg { width: 72px; height: 72px; margin: 0 auto .75rem; display: block; }
html body .nexpc-paybox.is-paid { border-color: #10B981; }
/* SePay tự ẩn QR khi đã nhận tiền (style="display: none") – không để CSS ở trên ép hiện lại. */
html body .nexpc-paybox .sepay-pay-info[style*="none"], html body .nexpc-paybox.is-paid .sepay-pay-info { display: none !important; }
html body .nexpc-paybox .sepay-download[style*="none"] { display: none !important; }
html .woocommerce .nexpc-place-order #place_order[data-total]::after { content: " · " attr(data-total); }
/* Hết hạn chuyển khoản (đếm ngược ở thankyou.php): ẩn QR + thông tin tài khoản. */
html body .nexpc-paybox.is-expired { border-color: #F43F5E; }
html body .nexpc-paybox.is-expired .sepay-pay-info, html body .nexpc-paybox.is-expired .woocommerce-sepay-bank-details { display: none !important; }

/* Bảng giá sản phẩm (template-product-prices.php): 3 cột Sản phẩm · Giá · Tình trạng; điện thoại: ảnh + thẻ. */
.nx-pl-row { grid-template-columns: 48px minmax(0, 1fr); }
.nx-pl-row:hover { background: rgb(248 250 252 / .7); }
@media (min-width: 768px) {
	.nx-pl-head { display: grid; grid-template-columns: 48px minmax(0, 1fr) 150px 140px; column-gap: 1rem; }
	.nx-pl-head > span:first-child { grid-column: 1 / 3; }
	.nx-pl-row { grid-template-columns: 48px minmax(0, 1fr) 150px 140px; column-gap: 1rem; }
	.nx-pl-price { font-size: 15px; }
}

