/* Khung sản phẩm mẫu 3 "Dễ bấm, chữ to" (Issue #205). HTML: systems/core/the-san-pham.php (hth_the_sp).
   CSS cũ (styleweb.css, skin-2026.css, max*.css) nằm ngoài repo và có nhiều luật !important cho .product-item,
   .product-item-info-new, h4.product-name1, .price-box... => mọi luật ở đây bám lớp .htv2-sp* và dùng !important khi cần đè.
   ul.htv2-sp-ds = danh sách khung, li.htv2-sp-o = ô (li giữ style padding:0 nội tuyến), div.htv2-sp = thẻ.
   Khe giữa thẻ = margin của thẻ (điện thoại 4px mỗi bên = 8px, máy tính 6px = 12px). */

/* ---------- Lưới (danh sách thường; slider Slick ở phần dưới) ---------- */
ul.htv2-sp-ds:not(.products-slide),
ul.htv2-sp-ds.product-items:not(.slick-initialized) { display: flex !important; }
ul.htv2-sp-ds:not(.slick-initialized) {
	flex-wrap: wrap !important; align-items: stretch !important; justify-content: flex-start !important;
	margin: 0 -4px !important; padding: 0 !important; list-style: none !important;
	width: auto !important; height: auto !important; overflow: visible !important; white-space: normal !important;
}
ul.htv2-sp-ds:not(.slick-initialized)::before,
ul.htv2-sp-ds:not(.slick-initialized)::after { display: none !important; }
ul.htv2-sp-ds li.htv2-sp-o.product-item {
	display: flex !important; float: none !important; box-sizing: border-box !important;
	height: auto !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important;
	background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
}
ul.htv2-sp-ds:not(.slick-initialized) > li.htv2-sp-o.product-item {
	flex: 0 0 50% !important; width: 50% !important; max-width: 50% !important; min-width: 0 !important;
}
@media (min-width: 768px) and (max-width: 991px) {
	ul.htv2-sp-ds:not(.slick-initialized):not(.products-sroll) > li.htv2-sp-o.product-item {
		flex-basis: 33.3333% !important; width: 33.3333% !important; max-width: 33.3333% !important;
	}
}
@media (min-width: 992px) {
	ul.htv2-sp-ds:not(.slick-initialized) { margin: 0 -6px !important; }
	ul.htv2-sp-ds:not(.slick-initialized):not(.products-sroll) > li.htv2-sp-o.product-item {
		flex-basis: 25% !important; width: 25% !important; max-width: 25% !important;
	}
}
@media (min-width: 1200px) {
	ul.htv2-sp-ds:not(.slick-initialized):not(.products-sroll) > li.htv2-sp-o.product-item {
		flex-basis: 20% !important; width: 20% !important; max-width: 20% !important;
	}
}

/* ---------- Thẻ ---------- */
div.htv2-sp.product-item-info-new {
	position: relative !important; display: flex !important; flex-direction: column !important; flex: 1 1 auto !important;
	box-sizing: border-box !important; width: auto !important; min-width: 0 !important; height: auto !important; min-height: 0 !important;
	margin: 4px !important; padding: 8px !important; overflow: hidden !important;
	background: #ffffff !important; border: 1px solid #d5dce8 !important; border-radius: 12px !important;
	box-shadow: none !important; transform: none !important; color: #1c2433; text-align: left !important;
	transition: border-color .15s ease, box-shadow .15s ease !important;
}
/* Ảnh: ô cao cố định, nền trắng, không viền/bo, ảnh nằm gọn (contain) */
.htv2-sp .product-top {
	position: static !important; display: flex !important; align-items: center !important; justify-content: center !important;
	flex: 0 0 auto !important; height: 120px !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important;
	border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
	background: #ffffff !important; overflow: hidden !important; text-align: center !important;
}
.htv2-sp .product-top a.product-image {
	position: static !important; display: flex !important; align-items: center !important; justify-content: center !important;
	width: 100% !important; height: 100% !important; margin: 0 !important; padding: 0 !important;
	background: transparent !important; border: 0 !important;
}
.htv2-sp .product-top img {
	display: block !important; width: 100% !important; height: 100% !important; max-width: 100% !important; max-height: 100% !important;
	margin: 0 !important; padding: 0 !important; object-fit: contain !important; transform: none !important; transition: none !important;
}
.htv2-sp.htv2-sp-het .product-top img { opacity: .55 !important; }
/* Tên đầy đủ, không cắt dòng */
.htv2-sp .product-item-details {
	position: static !important; display: flex !important; flex-direction: column !important; align-items: stretch !important;
	flex: 1 1 auto !important; width: auto !important; margin: 0 !important; padding: 0 !important;
	background: transparent !important; text-align: left !important;
}
.htv2-sp h4.product-name1 {
	position: static !important; display: block !important; margin: 8px 0 0 !important; padding: 0 !important;
	height: auto !important; min-height: 0 !important; max-height: none !important; overflow: visible !important;
	-webkit-line-clamp: unset !important; white-space: normal !important; text-overflow: clip !important;
	font-size: 14px !important; font-weight: 600 !important; line-height: 20px !important; text-align: left !important;
}
.htv2-sp h4.product-name1 a {
	position: static !important; display: inline !important; margin: 0 !important; padding: 0 !important;
	font-size: 14px !important; font-weight: 600 !important; line-height: 20px !important; letter-spacing: normal !important;
	color: #1c2433 !important; text-decoration: none !important; text-transform: none !important;
	white-space: normal !important; overflow-wrap: anywhere; word-break: normal;
}
/* Cả thẻ là link: lớp phủ của link tên phủ kín thẻ (ảnh có link riêng nhưng không nhận Tab) */
.htv2-sp h4.product-name1 a::after {
	content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 1; border-radius: 11px;
}
.htv2-sp h4.product-name1 a:focus { outline: none !important; }
.htv2-sp h4.product-name1 a:focus::after { outline: 3px solid #0f6fb0; outline-offset: -3px; }
/* Hàng dưới cùng, dồn xuống đáy thẻ: cột trái [bảo hành, giá gạch, giá bán] + nút giỏ bên phải, căn đáy */
/* Giá không bao giờ bị nút che: cột giá flex-basis 0 + min-width:auto = chỉ tính phần không ngắt được (giá nowrap), dòng bảo hành
   tự xuống dòng; giá quá dài thì nút xuống hàng dưới,
   căn phải (flex-wrap) thay vì đè lên giá. Giá thường (vd 17.000.000 đ ở 360px) vẫn cùng một hàng với nút. */
.htv2-sp .htv2-sp-day {
	display: flex !important; flex-wrap: wrap !important; align-items: flex-end !important; justify-content: space-between !important; gap: 6px !important;
	margin: auto 0 0 !important; padding: 8px 0 0 !important;
}
.htv2-sp .htv2-sp-cot { display: flex !important; flex-direction: column !important; gap: 2px !important; min-width: auto !important; flex: 1 1 0% !important; }
.htv2-sp .htv2-sp-bh {
	margin: 0 !important; padding: 0 !important;
	font-size: 12px; font-weight: 500; line-height: 16px; color: #4a5568;
}
.htv2-sp .price-box {
	display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important;
	align-items: flex-start !important; justify-content: flex-start !important; gap: 2px !important;
	width: auto !important; min-width: 0 !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important;
	background: transparent !important; border: 0 !important; text-align: left !important; transform: none !important;
}
.htv2-sp .price-box p {
	display: block !important; float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important;
	background: transparent !important; border: 0 !important; border-radius: 0 !important; letter-spacing: normal !important;
	text-transform: none !important;
}
.htv2-sp .price-box p.old-price {
	font-size: 12px !important; font-weight: 400 !important; line-height: 16px !important;
	color: #4a5568 !important; text-decoration: line-through !important;
}
.htv2-sp .price-box p.sell-price {
	font-size: 16px !important; font-weight: 700 !important; line-height: 22px !important; color: #c8281c !important;
}
.htv2-sp .price-box p.htv2-sp-het-chu,
.htv2-sp .price-box p.htv2-sp-sap { font-size: 13px !important; font-weight: 600 !important; line-height: 22px !important; }
.htv2-sp .price-box p.htv2-sp-het-chu { color: #c8281c !important; }
.htv2-sp .price-box p.htv2-sp-sap { color: #4a5568 !important; }
/* giá không xuống dòng, không đè lên nút */
.htv2-sp .price-box p.old-price, .htv2-sp .price-box p.sell-price { white-space: nowrap !important; }

/* Nút thêm vào giỏ — kiểu A: tròn, viền xanh, nền trắng; nằm TRÊN lớp phủ a::after của tên */
.htv2-sp button.htv2-sp-gio {
	position: relative !important; z-index: 2 !important; flex: 0 0 40px !important;
	display: flex !important; align-items: center !important; justify-content: center !important;
	width: 40px !important; height: 40px !important; min-width: 0 !important; margin: 0 0 0 auto !important; padding: 0 !important;
	border: 1.5px solid #0f6fb0 !important; border-radius: 999px !important; background: #ffffff !important; color: #0f6fb0 !important;
	box-shadow: none !important; cursor: pointer; line-height: 1 !important; font-size: 0 !important;
	-webkit-appearance: none; appearance: none; -webkit-tap-highlight-color: transparent;
	transition: background-color .15s ease, color .15s ease;
}
.htv2-sp button.htv2-sp-gio svg { display: block !important; width: 20px !important; height: 20px !important; pointer-events: none; }
.htv2-sp button.htv2-sp-gio:focus-visible { outline: 3px solid #0f6fb0 !important; outline-offset: 2px !important; }
.htv2-sp button.htv2-sp-gio[disabled], .htv2-sp button.htv2-sp-gio[aria-busy="true"] { opacity: .6 !important; cursor: default; }
@media (hover: hover) {
	.htv2-sp button.htv2-sp-gio:not([disabled]):hover { background: #0f6fb0 !important; color: #ffffff !important; }
}
/* màn hình rất hẹp (360px): giảm nhẹ cỡ giá để giá + nút vừa một hàng */
@media (max-width: 374px) {
	.htv2-sp .price-box p.sell-price { font-size: 15px !important; }
	.htv2-sp .htv2-sp-day { gap: 4px !important; }
}

/* Rê chuột: chỉ máy có chuột; không nhấc, không phóng to */
div.htv2-sp.product-item-info-new:hover { transform: none !important; box-shadow: none !important; border-color: #d5dce8 !important; }
.htv2-sp:hover .product-top img { transform: none !important; }
@media (hover: hover) {
	div.htv2-sp.product-item-info-new:hover { border-color: #0f6fb0 !important; box-shadow: 0 4px 14px rgba(19, 40, 107, .08) !important; }
	.htv2-sp:hover h4.product-name1 a { color: #0f6fb0 !important; }
}

/* ---------- Máy tính ---------- */
@media (min-width: 992px) {
	div.htv2-sp.product-item-info-new { margin: 6px !important; padding: 12px !important; border-radius: 14px !important; }
	.htv2-sp .product-top { height: 170px !important; }
	.htv2-sp h4.product-name1 { margin-top: 10px !important; }
	.htv2-sp h4.product-name1 a::after { border-radius: 13px; }
	.htv2-sp .htv2-sp-day { gap: 8px !important; padding-top: 10px !important; }
	.htv2-sp .htv2-sp-bh { font-size: 13px; line-height: 18px; }
	.htv2-sp button.htv2-sp-gio { flex-basis: 44px !important; width: 44px !important; height: 44px !important; }
	.htv2-sp button.htv2-sp-gio svg { width: 22px !important; height: 22px !important; }
	.htv2-sp .price-box p.old-price { font-size: 13px !important; line-height: 18px !important; }
	.htv2-sp .price-box p.sell-price { font-size: 18px !important; line-height: 24px !important; }
}

/* ---------- Slider Slick (trang chủ máy tính: Sản phẩm mới / nổi bật) — thẻ cao bằng nhau ---------- */
ul.htv2-sp-ds.slick-initialized .slick-track { display: flex !important; align-items: stretch !important; }
ul.htv2-sp-ds.slick-initialized .slick-track::before,
ul.htv2-sp-ds.slick-initialized .slick-track::after { display: none !important; }
ul.htv2-sp-ds.slick-initialized .slick-slide { display: flex !important; flex-shrink: 0 !important; float: none !important; height: auto !important; }
/* Slick bản đang dùng lấy chính li làm .slick-slide (độ rộng nội tuyến do Slick tính — không đè); bản mới hơn bọc li trong div */
ul.htv2-sp-ds.slick-initialized .slick-slide > div:not(.htv2-sp) { display: flex !important; width: 100% !important; }
ul.htv2-sp-ds.slick-initialized .slick-slide > div > li.htv2-sp-o.product-item { width: 100% !important; }
ul.htv2-sp-ds.slick-initialized .slick-arrow {
	top: 103px !important; transform: translateY(-50%) !important; z-index: 3 !important;
	width: 44px !important; height: 44px !important; margin: 0 !important; padding: 0 !important;
	background: #ffffff !important; border: 1px solid #d5dce8 !important; border-radius: 999px !important;
	box-shadow: 0 2px 8px rgba(19, 40, 107, .12) !important; opacity: 1 !important; cursor: pointer;
}
ul.htv2-sp-ds.slick-initialized .slick-prev { left: -4px !important; }
ul.htv2-sp-ds.slick-initialized .slick-next { right: -4px !important; }
ul.htv2-sp-ds.slick-initialized .slick-arrow::before {
	display: block !important; font-family: Arial, Helvetica, sans-serif !important; font-size: 26px !important; line-height: 40px !important;
	color: #13286b !important; opacity: 1 !important; text-align: center !important;
}
ul.htv2-sp-ds.slick-initialized .slick-prev::before { content: "\2039" !important; }
ul.htv2-sp-ds.slick-initialized .slick-next::before { content: "\203A" !important; }
ul.htv2-sp-ds.slick-initialized .slick-arrow.slick-disabled { opacity: .35 !important; cursor: default; }
ul.htv2-sp-ds.slick-initialized .slick-arrow:focus-visible { outline: 3px solid #0f6fb0 !important; outline-offset: 2px !important; }

/* "Xem thêm ›" ở đầu khối Sản phẩm mới / nổi bật: vùng bấm >= 44px */
a.htv2-sp-xem { display: inline-flex !important; align-items: center !important; min-height: 44px !important; box-sizing: border-box !important; }

/* ---------- Sản phẩm mới / nổi bật trên điện thoại (ul.products-sroll): lưới 2×2 + nút "Xem thêm" ---------- */
ul.products-sroll.htv2-sp-ds > li.htv2-sp-o.product-item:nth-child(n+5) { display: none !important; }
ul.products-sroll.htv2-sp-ds > li.item-more.product-item {
	display: block !important; flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important;
	float: none !important; height: auto !important; margin: 0 !important; padding: 4px !important; box-sizing: border-box !important;
	background: transparent !important; border: 0 !important; box-shadow: none !important;
}
ul.products-sroll.htv2-sp-ds > li.item-more .product-item-info-new,
ul.products-sroll.htv2-sp-ds > li.item-more .product-item-info-new:hover {
	display: block !important; width: auto !important; height: auto !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important;
	background: transparent !important; border: 0 !important; box-shadow: none !important; transform: none !important;
}
ul.products-sroll.htv2-sp-ds > li.item-more a.viewmore {
	display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: center !important; gap: 6px !important;
	width: 100% !important; height: 48px !important; min-height: 48px !important; box-sizing: border-box !important; margin: 4px 0 0 !important; padding: 0 12px !important;
	background: #ffffff !important; border: 1px solid #0f6fb0 !important; border-radius: 10px !important; box-shadow: none !important; transform: none !important;
	color: #0f6fb0 !important; font-size: 14px !important; font-weight: 600 !important; text-decoration: none !important;
}
ul.products-sroll.htv2-sp-ds > li.item-more a.viewmore span,
ul.products-sroll.htv2-sp-ds > li.item-more .product-item-info-new:hover a.viewmore span {
	display: inline !important; width: auto !important; height: auto !important; margin: 0 !important; padding: 0 !important;
	background: transparent !important; box-shadow: none !important; border-radius: 0 !important; transform: none !important;
	color: inherit !important; font-size: 14px !important; font-weight: 600 !important; line-height: 1 !important; letter-spacing: normal !important;
}
ul.products-sroll.htv2-sp-ds > li.item-more a.viewmore:focus-visible { outline: 3px solid #0f6fb0 !important; outline-offset: 2px !important; }

/* ---------- "Xem tất cả" cuối khối danh mục ---------- */
div.view-all.htv2-sp-tat-ca { display: block !important; margin: 12px 0 0 !important; padding: 0 !important; transform: none !important; text-align: center !important; }
div.view-all.htv2-sp-tat-ca a,
div.view-all.htv2-sp-tat-ca a:hover {
	display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important;
	width: 100% !important; min-width: 0 !important; height: 48px !important; min-height: 48px !important; box-sizing: border-box !important;
	margin: 0 !important; padding: 0 12px !important;
	background: #ffffff !important; border: 1px solid #0f6fb0 !important; border-radius: 10px !important;
	box-shadow: none !important; transform: none !important; filter: none !important;
	color: #0f6fb0 !important; font-size: 14px !important; font-weight: 600 !important; text-transform: none !important; text-decoration: none !important;
}
div.view-all.htv2-sp-tat-ca a i { color: inherit !important; top: 0 !important; }
div.view-all.htv2-sp-tat-ca a:focus-visible { outline: 3px solid #0f6fb0 !important; outline-offset: 2px !important; }
@media (min-width: 768px) {
	div.view-all.htv2-sp-tat-ca a,
	div.view-all.htv2-sp-tat-ca a:hover { display: inline-flex !important; width: auto !important; padding: 0 40px !important; font-size: 15px !important; }
}
@media (hover: hover) {
	div.view-all.htv2-sp-tat-ca a:hover,
	ul.products-sroll.htv2-sp-ds > li.item-more a.viewmore:hover { background: #eef5fb !important; }
}
