/* CSS chung cho tat ca shortcode dong cua HTML Deploy Studio (xem class-shortcode-engine.php) —
   1 file TINH cua CHINH plugin, dung chung cho moi trang/theme (Landing Page qua
   Front_Renderer::enqueue_page_assets(), Website mode qua functions.php cua theme sinh ra) — CHU Y:
   day la style MAC DINH trung tinh, khong biet truoc mau/font cua tung site, uu tien don gian/de
   doc hon la dep mat rieng cho 1 thiet ke cu the. */

.wpds-sc {
	margin: 32px 0;
}
.wpds-sc-heading {
	margin: 0 0 16px;
	font-size: 1.5em;
}
.wpds-sc-empty {
	color: #6b7280;
	font-style: italic;
}
.wpds-sc-error {
	color: #d63638;
}
.wpds-sc-grid,
.wpds-blog-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 20px;
}
/* "Số cột — Desktop/Tablet/Mobile" (Admin_Pages::render_blog_listing_config_panel(), layout Grid) —
   --wpds-blog-columns* luon duoc Shortcode_Engine::render_blog_from_atts() gan qua inline style, ghi
   de auto-fit mac dinh o tren cho rieng layout Grid (khong dung cham .wpds-sc-grid dung chung noi khac). */
.wpds-sc-blog-grid .wpds-blog-grid {
	grid-template-columns: repeat(var(--wpds-blog-columns, 4), 1fr);
}
@media (max-width: 1024px) {
	.wpds-sc-blog-grid .wpds-blog-grid {
		grid-template-columns: repeat(var(--wpds-blog-columns-tablet, 2), 1fr);
	}
}
@media (max-width: 640px) {
	.wpds-sc-blog-grid .wpds-blog-grid {
		grid-template-columns: repeat(var(--wpds-blog-columns-mobile, 1), 1fr);
	}
}

/* FAQ */
.wpds-faq-item {
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 12px 16px;
	margin-bottom: 10px;
}
.wpds-faq-item summary {
	cursor: pointer;
	font-weight: 600;
}
.wpds-faq-answer {
	margin-top: 8px;
	color: #374151;
}

/* Testimonials */
.wpds-testimonial-item {
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 16px;
	margin: 0;
}
.wpds-testimonial-item blockquote {
	margin: 0 0 10px;
	font-style: italic;
}
.wpds-testimonial-item figcaption {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
}
.wpds-testimonial-avatar {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: cover;
}

/* Team */
.wpds-team-item {
	text-align: center;
}
.wpds-team-photo {
	width: 100%;
	max-width: 160px;
	aspect-ratio: 1/1;
	object-fit: cover;
	border-radius: 50%;
	margin: 0 auto 10px;
	display: block;
}
.wpds-team-role {
	color: #6b7280;
	margin: 4px 0 0;
}

/* Gallery */
.wpds-gallery-item img {
	width: 100%;
	height: 180px;
	object-fit: cover;
	border-radius: 6px;
	display: block;
}
.wpds-gallery-item figcaption {
	margin-top: 6px;
	font-size: 0.9em;
	color: #6b7280;
}

/* CTA */
.wpds-cta-banner {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
	background: #eef2ff;
	border-radius: 10px;
	padding: 24px;
	margin-bottom: 16px;
}
.wpds-cta-image {
	max-width: 160px;
	border-radius: 8px;
}
.wpds-cta-btn {
	display: inline-block;
	margin-top: 10px;
	padding: 10px 20px;
	background: #4f46e5;
	color: #fff;
	border-radius: 8px;
	text-decoration: none;
	font-weight: 600;
}

/* Blog cards — Grid/List/Masonry (xem Shortcode_Engine::render_blog_card()). */
/* Tu ve day du (KHONG dua vao .wpds-ui-badge — class do chi dinh nghia trong components.css, file
   CHI enqueue trong wp-admin, xem class-plugin.php::enqueue_admin_assets(); shortcodes.css la file
   DUY NHAT tai tren site cong khai that. BUG THAT tim thay qua adversarial review: .wpds-wc-demo-badge
   (san pham, co truoc) cung mang loi nay — vong lap thieu style tuong tu, chi co position:absolute,
   hien ra chu tran khong pill/mau tren site that khi 0 san pham/bai viet that. Blog copy dung mau do
   nen sua luon o day CHO CA 2, khong de lap lai tren site cong khai). */
.wpds-blog-demo-badge,
.wpds-wc-demo-badge {
	display: inline-block;
	margin-bottom: 12px;
	padding: 3px 10px;
	border-radius: 999px;
	background: #eef2ff;
	color: #4338ca;
	font-size: 12px;
	font-weight: 600;
}
.wpds-blog-card {
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
	display: flex;
	flex-direction: column;
	transition: transform .18s ease, box-shadow .18s ease;
}
.wpds-blog-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(17, 24, 39, .08);
}
.wpds-blog-thumb {
	position: relative;
	display: block;
	overflow: hidden;
}
.wpds-blog-thumb img {
	width: 100%;
	height: 180px;
	object-fit: cover;
	display: block;
	transition: transform .25s ease;
}
.wpds-blog-card:hover .wpds-blog-thumb img {
	transform: scale(1.04);
}
.wpds-blog-thumb-placeholder {
	display: block;
	width: 100%;
	height: 180px;
	background: linear-gradient(135deg, #eef2ff, #e0e7ff);
}
.wpds-blog-card-cat {
	position: absolute;
	top: 10px;
	left: 10px;
	background: #4f46e5;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 3px 9px;
	border-radius: 999px;
}
.wpds-blog-card-cat-inline {
	position: static;
	align-self: flex-start;
}
.wpds-blog-card-body {
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}
.wpds-blog-title {
	margin: 0;
	font-size: 1.05em;
	font-weight: 600;
	line-height: 1.4;
}
/* color: var(--wpds-style-title-color, inherit) — bien CSS ghi de tu tinh nang "click-to-edit" mau
   chu tieu de tren preview (theo yeu cau truc tiep, giong bên sản phẩm), xem
   Shortcode_Engine::blog_style_override_css_vars() — bien nay do CHINH the .wpds-sc-blog... boc
   ngoai gan qua thuoc tinh style (khong dat truc tiep tren the nay), ke thua xuong binh thuong qua
   CSS custom property. Khong ghi de gi thi fallback "inherit" giu dung mau CU (khong doi hanh vi cho
   nguoi dung chua tung dung tinh nang nay). */
.wpds-blog-title a {
	color: var(--wpds-style-title-color, inherit);
	text-decoration: none;
}
.wpds-blog-title a:hover {
	color: #4f46e5;
}
/* Gioi han tieu de TOI DA 2 dong theo yeu cau truc tiep — tieu de dai qua se bi CAT + "…", khong day
   xuong dong thu 3 lam card cao thap khong deu nhau trong 1 hang (dung y "sửa tràn hàng" da lam voi
   cac phan khac cua the, xem git log). display:-webkit-box BAT BUOC de -webkit-line-clamp co tac
   dung — <a> von la inline, khong the clamp neu giu display mac dinh. */
.wpds-blog-title a {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
}
.wpds-blog-excerpt {
	color: #374151;
	font-size: 0.95em;
	line-height: 1.5;
}
.wpds-blog-meta {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	color: #9ca3af;
	font-size: 0.85em;
}
/* Tac gia/thoi gian doc de tran, khong co gi phan biet voi ngay dang — de nham la 1 tu ngau nhien
   (theo yeu cau truc tiep "ghi rõ tác giả thời gian đọc"). Them icon nho (SVG outline qua mask-image,
   tu nhuom currentColor — cung ky thuat voi icon gio hang o .single_add_to_cart_button::before phia
   duoi, KHONG dung emoji vi tho/khac nhau giua he dieu hanh/font) truoc moi nhan, khong can text
   "Tác giả:"/"Thời gian đọc:" dai dong ra card chat hep. Rieng ngay dang (<time>) khong can icon —
   dinh dang "Tháng 8 18, 2026" da tu ro nghia. */
.wpds-blog-author,
.wpds-blog-readtime {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}
.wpds-blog-author::before {
	content: "";
	display: inline-block;
	width: 13px;
	height: 13px;
	flex: 0 0 auto;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21v-1a8 8 0 0 1 16 0v1'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21v-1a8 8 0 0 1 16 0v1'/%3E%3C/svg%3E") no-repeat center / contain;
}
.wpds-blog-readtime::before {
	content: "";
	display: inline-block;
	width: 13px;
	height: 13px;
	flex: 0 0 auto;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E") no-repeat center / contain;
}
.wpds-blog-readmore {
	margin-top: auto;
	padding-top: 6px;
	color: #4f46e5;
	font-weight: 600;
	font-size: 0.9em;
	text-decoration: none;
}
.wpds-blog-readmore:hover {
	text-decoration: underline;
}

/* Layout List — anh ben trai, noi dung ben phai tren 1 hang. */
.wpds-sc-blog-list .wpds-blog-grid {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.wpds-sc-blog-list .wpds-blog-card {
	flex-direction: row;
}
.wpds-sc-blog-list .wpds-blog-thumb {
	flex: 0 0 220px;
}
.wpds-sc-blog-list .wpds-blog-thumb img,
.wpds-sc-blog-list .wpds-blog-thumb-placeholder {
	height: 100%;
	min-height: 140px;
}
@media (max-width: 640px) {
	.wpds-sc-blog-list .wpds-blog-card {
		flex-direction: column;
	}
	.wpds-sc-blog-list .wpds-blog-thumb {
		flex: none;
	}
}

/* Layout Masonry — cot xep so le kieu Pinterest (CSS columns, khong can JS). column-count dung CHUNG
   bien --wpds-blog-columns* voi layout Grid (xem ghi chu o .wpds-sc-blog-grid .wpds-blog-grid o tren)
   — 1 cau hinh "Số cột" DUY NHAT ap dung cho ca 2 layout nhieu cot, List (1 cot doc) khong dung toi. */
.wpds-sc-blog-masonry .wpds-blog-grid {
	display: block;
	column-count: var(--wpds-blog-columns, 4);
	column-gap: 20px;
}
.wpds-sc-blog-masonry .wpds-blog-card {
	break-inside: avoid;
	margin-bottom: 20px;
}
@media (max-width: 1024px) {
	.wpds-sc-blog-masonry .wpds-blog-grid {
		column-count: var(--wpds-blog-columns-tablet, 2);
	}
}
@media (max-width: 640px) {
	.wpds-sc-blog-masonry .wpds-blog-grid {
		column-count: var(--wpds-blog-columns-mobile, 1);
	}
}
.wpds-wc-missing {
	background: #fffbeb;
	border: 1px solid #fde68a;
	color: #92400e;
	padding: 10px 14px;
	border-radius: 8px;
}

/* WooCommerce product cards (Shortcode_Engine::render_product_card()) — DUNG CHUNG boi site cong
   khai LAN preview realtime trong wp-admin (Layouts_Preview) — CHUNG 1 markup/CSS, dam bao preview
   khong bao gio lech voi site that (xem docblock render_product_card()). */
.wpds-sc-wc {
	position: relative;
}
/* wc_price()/woocommerce_template_loop_add_to_cart() chen san 1 <span class="screen-reader-text">
   ("Giá gốc là: X.Giá hiện tại là: Y." cho san pham dang giam gia, " — " cho nut them gio) — BINH
   THUONG vo hinh nho class nay duoc dinh nghia o CSS goc WordPress/theme, nhung Layouts_Preview::render()
   dung 1 <head> RIENG chi link mỗi file nay (khong wp_head() that, xem docblock class do) nen text
   an nay HIEN RA THAT, de trong gia/nut them gio. Dinh nghia lai CHINH XAC rule chuan cua WordPress
   (khong bia), scope trong .wpds-sc-wc de khong dung cham gi ben ngoai widget nay. */
.wpds-sc-wc .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	border: 0;
	word-wrap: normal !important;
}
.wpds-wc-demo-badge {
	position: absolute;
	top: -30px;
	right: 0;
}
.wpds-wc-track {
	display: grid;
	grid-template-columns: repeat(var(--wpds-wc-columns, 4), 1fr);
	gap: 20px;
}
.wpds-sc-wc-slider .wpds-wc-track,
.wpds-sc-wc-carousel .wpds-wc-track {
	display: flex;
	gap: var(--wpds-wc-gap, 16px);
	overflow: hidden;
	touch-action: pan-y;
	transition: transform .35s ease;
	cursor: grab;
	user-select: none;
}
.wpds-sc-wc-slider .wpds-wc-track:active,
.wpds-sc-wc-carousel .wpds-wc-track:active {
	cursor: grabbing;
}
.wpds-sc-wc-slider .wpds-wc-track > *,
.wpds-sc-wc-carousel .wpds-wc-track > * {
	flex: 0 0 calc((100% - (var(--wpds-wc-visible, 4) - 1) * var(--wpds-wc-gap, 16px)) / var(--wpds-wc-visible, 4));
	min-width: 0;
}
@media (max-width: 1024px) {
	.wpds-sc-wc-grid .wpds-wc-track {
		grid-template-columns: repeat(var(--wpds-wc-columns-tablet, 2), 1fr);
	}
}
@media (max-width: 640px) {
	.wpds-sc-wc-grid .wpds-wc-track {
		grid-template-columns: repeat(var(--wpds-wc-columns-mobile, 1), 1fr);
	}
}

.wpds-wc-card {
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
	display: flex;
	flex-direction: column;
	position: relative;
	transition: transform .18s ease, box-shadow .18s ease;
}
.wpds-wc-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(17, 24, 39, .08);
}
.wpds-wc-card-media {
	position: relative;
	display: block;
	overflow: hidden;
}
.wpds-wc-card-media img {
	width: 100%;
	height: 220px;
	object-fit: cover;
	display: block;
	transition: transform .25s ease;
}
.wpds-wc-card:hover .wpds-wc-card-media img {
	transform: scale(1.04);
}
.wpds-wc-badges-left {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
	align-items: flex-start;
}
.wpds-wc-badge {
	padding: 3px 9px;
	border-radius: 999px;
	font-size: var(--wpds-style-badge-size, 11px);
	font-weight: var(--wpds-style-badge-weight, 700);
	color: var(--wpds-style-badge-color, #fff);
}
.wpds-wc-badge-sale {
	background: #d63638;
}
.wpds-wc-badge-new {
	background: #4f46e5;
}
.wpds-wc-badge-featured {
	background: #b45309;
}
/* San pham vua "Mới" vua dang sale: chi hien badge "-X%" (uu tien thong tin giam gia, quan trong
   hon voi khach hang), an badge "Mới" — DOM luon in "Mới" TRUOC "-X%" (xem render_product_card()),
   :has(~ ...) chon nguoc lai (ban than the co 1 sibling PHIA SAU khop dieu kien). */
.wpds-wc-badge-new:has(~ .wpds-wc-badge-sale) {
	display: none;
}
/* flex:1 (card-body) + margin-top:auto (addcart bên dưới) — ghim nút "Thêm vào giỏ" xuống ĐÁY thẻ.
   Thiếu 2 dòng này thì trong 1 hàng Grid, thẻ có tên/giá dài hơn (2 dòng) đẩy nút xuống thấp hơn thẻ
   bên cạnh có tên/giá ngắn (1 dòng) — cả hàng nút lệch cao-thấp không đều. */
.wpds-wc-card-body {
	padding: 14px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
}
.wpds-wc-name {
	margin: 0;
	font-size: var(--wpds-style-name-size, 15px);
	font-weight: var(--wpds-style-name-weight, 600);
	color: var(--wpds-style-name-color, inherit);
	line-height: 1.35;
}
.wpds-wc-name a {
	color: inherit;
	text-decoration: none;
}
.wpds-wc-rating {
	font-size: var(--wpds-style-rating-size, 13px);
	font-weight: var(--wpds-style-rating-weight, normal);
	color: var(--wpds-style-rating-color, #6b7280);
	display: flex;
	align-items: center;
	gap: 6px;
}
.wpds-wc-stars {
	color: #f59e0b;
	letter-spacing: 1px;
}
/* Mau mac dinh #d63638 (dong bo voi .wpds-wc-price ins ben duoi — gia dang sale) — truoc day gia
   KHONG sale dung "inherit" (den/mau chu thuong), gia CO sale lai do rieng, nhin lech mau giua 2
   truong hop tren cung 1 luoi san pham. --wpds-style-price-color (click-to-edit) van ghi de duoc
   binh thuong. */
/* .wpds-wc-price .woocommerce-Price-amount: gia san pham THAT (wc_price()/get_price_html()) boc
   trong <span class="woocommerce-Price-amount amount"><bdi>...</bdi></span> — theme dang active tren
   site that co the tu dinh nghia mau rieng cho class nay (rat pho bien o theme tuong thich WC), can
   1 selector 2-lop CU THE HON de thang, khong chi dua vao inherit tu .wpds-wc-price. */
.wpds-wc-price,
.wpds-wc-price .woocommerce-Price-amount {
	font-weight: var(--wpds-style-price-weight, 700);
	font-size: var(--wpds-style-price-size, 15px);
	color: var(--wpds-style-price-color, #d63638);
	margin: 0;
}
/* 3 class .wpds-wc-price del .woocommerce-Price-amount (0,3,1) — BAT BUOC de thang .wpds-wc-price
   .woocommerce-Price-amount o tren (0,2,0) — neu khong, gia GACH NGANG cung bi nhuom do theo, mat
   phan biet voi gia dang ap dung. */
.wpds-wc-price del,
.wpds-wc-price del .woocommerce-Price-amount {
	font-weight: 400;
	color: #9ca3af;
	margin-right: 6px;
}
.wpds-wc-price ins,
.wpds-wc-price ins .woocommerce-Price-amount {
	text-decoration: none;
	color: #d63638;
}
.wpds-wc-stock {
	font-size: 12px;
}
.wpds-wc-stock-instock {
	color: #1a7f37;
}
.wpds-wc-stock-outofstock {
	color: #d63638;
}
.wpds-wc-stock-onbackorder {
	color: #b45309;
}
.wpds-wc-addcart {
	margin-top: auto;
	padding-top: 4px;
}
/* KHONG dat width:100% — plugin nay khong co reset box-sizing:border-box toan cuc (xem ghi chu
   trong components.css) nen width:100% + padding ngang bi CONG THEM 28px, tran ra khoi the (ro nhat
   trong iframe preview doc lap, khong co CSS reset nao khac). display:block da TU DONG full-width
   trong 1 block container binh thuong roi (khong can width:100% lam lai). */
/* background/color: "--wpds-addcart-bg"/"--wpds-addcart-color" la 2 bien CSS TOAN CUC (xem
   Layouts_Options::addcart_color_vars_css() — mau nut "Thêm vào giỏ hàng" dung CHUNG toan site, chinh
   qua "3. Hiển thị trên thẻ sản phẩm" o tab Danh sách, ap dung CA trang chi tiet). "color" o day VAN
   giu lop UU TIEN dau la "--wpds-style-addcart-color" (ghi de RIENG cho 1 lan chen shortcode cu the
   qua "click-to-edit" tren preview — tinh nang CU, khac hoan toan) — chi khi lop do KHONG duoc dat
   (rong) moi roi xuong bien toan cuc moi, dam bao 2 tinh nang khong dam nhau. */
.wpds-wc-addcart .button,
.wpds-wc-addcart a.button {
	display: block;
	text-align: center;
	padding: 9px 14px;
	background: var(--wpds-addcart-bg, #4f46e5);
	color: var(--wpds-style-addcart-color, var(--wpds-addcart-color, #fff));
	font-size: var(--wpds-style-addcart-size, inherit);
	border-radius: 8px;
	text-decoration: none;
	border: none;
	cursor: pointer;
	transition: filter .15s ease;
}
.wpds-wc-addcart .button:hover,
.wpds-wc-addcart a.button:hover {
	filter: brightness(.9);
}

.wpds-wc-slider-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid #e5e7eb;
	background: #fff;
	cursor: pointer;
	font-size: 18px;
	line-height: 1;
	z-index: 2;
}
.wpds-wc-slider-arrow:disabled {
	opacity: .35;
	cursor: default;
}
.wpds-wc-slider-prev {
	left: -18px;
}
.wpds-wc-slider-next {
	right: -18px;
}
@media (max-width: 640px) {
	.wpds-wc-slider-prev {
		left: 4px;
	}
	.wpds-wc-slider-next {
		right: 4px;
	}
}
.wpds-wc-slider-dots {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin-top: 14px;
}
.wpds-wc-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	border: none;
	background: #d1d5db;
	cursor: pointer;
	padding: 0;
}
.wpds-wc-dot.is-active {
	background: #4f46e5;
}

/* Contact / Newsletter forms */
.wpds-contact-form,
.wpds-newsletter-form {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-width: 480px;
}
.wpds-newsletter-form {
	flex-direction: row;
	max-width: 100%;
}
.wpds-newsletter-form input[type="email"] {
	flex: 1;
}
.wpds-contact-field {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 0.9em;
}
.wpds-contact-field input,
.wpds-contact-field textarea,
.wpds-newsletter-form input {
	padding: 8px 10px;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	font: inherit;
}
.wpds-contact-submit-btn,
.wpds-newsletter-submit-btn {
	padding: 10px 20px;
	background: #4f46e5;
	color: #fff;
	border: none;
	border-radius: 8px;
	font-weight: 600;
	cursor: pointer;
}
.wpds-hp-field {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.wpds-sc-contact-success,
.wpds-sc-newsletter-success {
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	color: #1a7f37;
	padding: 14px 18px;
	border-radius: 8px;
}

/* Map */
.wpds-map-embed {
	width: 100%;
	height: 360px;
	border: 0;
	border-radius: 8px;
}

/* Site shell (Layouts — Blog/San pham chi tiet, xem includes/render/site-shell.php) */
.wpds-site-shell-main {
	max-width: 1200px;
	margin: 0 auto;
	padding: 32px 24px;
}

/* Blog chi tiet */
.wpds-blogdetail-title {
	margin: 0 0 8px;
}
.wpds-blogdetail-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	color: #6b7280;
	font-size: 0.9em;
	margin: 0 0 20px;
}
/* 3 nhan ngay dang/tac gia/thoi gian doc — thay cho chuoi tho "ngay — tac gia" cu (khong co gi phan
   biet 2 phan, khong co thoi gian doc), theo yeu cau truc tiep "thêm icon ngày tháng năm, tác giả và
   thêm chức năng thời gian đọc". Icon SVG qua mask-image (tu nhuom currentColor) — CUNG ky thuat/2 SVG
   nguoi+dong ho voi .wpds-blog-author::before/.wpds-blog-readtime::before o tren (the blog danh sach),
   dung LAI DUNG 1 icon cho tac gia/thoi gian doc de dong bo giao dien giua trang danh sach va trang
   chi tiet — chi rieng ngay dang o day co THEM icon lich (o the danh sach khong can, vi dinh dang
   "Tháng 8 18, 2026" da tu ro nghia trong ngu canh nho gon cua the; o day 3 nhan dat canh nhau ngang
   hang nen can icon rieng cho CA 3 de nhat quan thi giac, khong rieng ngay dang bi "trong tay"). */
.wpds-blogdetail-meta-date,
.wpds-blogdetail-meta-author,
.wpds-blogdetail-meta-readtime {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}
.wpds-blogdetail-meta-date::before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	flex: 0 0 auto;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E") no-repeat center / contain;
}
.wpds-blogdetail-meta-author::before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	flex: 0 0 auto;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21v-1a8 8 0 0 1 16 0v1'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21v-1a8 8 0 0 1 16 0v1'/%3E%3C/svg%3E") no-repeat center / contain;
}
.wpds-blogdetail-meta-readtime::before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	flex: 0 0 auto;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E") no-repeat center / contain;
}
.wpds-blogdetail-thumb img,
.wpds-blogdetail-banner img {
	width: 100%;
	border-radius: 8px;
	display: block;
}
/* Truoc day CHI ap dung cho v1 (".wpds-blogdetail-v1 .wpds-blogdetail-thumb") — v3/v4 (Sidebar phải/
   trái) cung dung ".wpds-blogdetail-thumb" (xem variant-3.php/variant-4.php) nhung khong khop selector
   scoped rieng do, khien tieu de dinh sat ngay duoi anh dai dien, khong co khoang cach (theo yeu cau
   truc tiep "tăng khoảng cách hình ảnh đại diện với tiêu đề"). Bo scope ".wpds-blogdetail-v1" de ap
   dung DONG NHAT cho ca 3 bien the dung chung class nay (v1/v3/v4) — v2 dung ".wpds-blogdetail-banner"
   rieng (full-bleed), v5 dung ".wpds-blogdetail-v5-hero" rieng, khong bi anh huong. */
.wpds-blogdetail-thumb {
	margin-bottom: 24px;
}
.wpds-blogdetail-v2 .wpds-blogdetail-banner {
	margin: -32px -24px 24px;
	border-radius: 0;
}
.wpds-blogdetail-v2 .wpds-blogdetail-banner img {
	border-radius: 0;
	max-height: 420px;
	object-fit: cover;
}
.wpds-blogdetail-v2 .wpds-blogdetail-inner {
	max-width: 760px;
	margin: 0 auto;
}
/* Ty le 3fr/1fr (~75%/25%) thay vi 2fr/1fr (~66%/33%) cu — theo yeu cau truc tiep "Sidebar phải/trái
   chỉ chiếm 1/4, 3/4 là nội dung" (cot phu truoc day rong qua so voi 1 danh sach gon chi co
   thumbnail nho + tieu de, xem _sidebar-related.php). */
.wpds-blogdetail-v3 {
	display: grid;
	grid-template-columns: 3fr 1fr;
	gap: 32px;
	align-items: start;
}
/* Bien the 4 "Sidebar trai" dung CHUNG .wpds-blogdetail-v3 (grid) + rieng order:-1 tren cot sidebar de
   nhay sang trai (xem khoi ".wpds-blogdetail-v4 .wpds-blogdetail-related" o duoi) — NHUNG "order" CHI
   doi thu tu SAP XEP item vao cac O co san, KHONG doi kich thuoc O: grid-template-columns "3fr 1fr" o
   tren dinh nghia theo VI TRI cot (cot 1 = 3fr, cot 2 = 1fr) bat ke item nao duoc auto-place vao do.
   order:-1 lam sidebar tro thanh item co order nho nhat nen duoc xep vao O DAU TIEN — chinh la cot 1
   (3fr, 75%) — day nguoc dung y "Sidebar trái... chỉ chiếm 1/4" (BUG THAT nguoi dung bao qua screenshot
   "tôi load lại bên trái Sidebar vẫn đang chiếm 3/4"). Fix: dao luon 2 track size RIENG cho v4 (1fr 3fr)
   — ket hop voi order:-1 (sidebar van vao O dau tien, gio la track 1fr=25%) cho dung ket qua: sidebar O
   DAU (trai) nhung chi 25%, noi dung chinh O SAU (phai) chiem 75%. Dat NGAY SAU ".wpds-blogdetail-v3"
   (khong phai o cuoi file canh khoi order:-1) de LUON o TRUOC media query ben duoi trong thu tu code —
   media query do co rieng dong ".wpds-blogdetail-v4{grid-template-columns:1fr}" cho man hinh hep, cung
   1 muc specificity (0,1,0) voi rule nay nen PHAI dung sau trong source moi thang duoc (neu de rule nay
   sau media query, no se de len rule 1fr o man hinh hep, xep sai lai thanh 2 cot khi le ra phai xep
   chong dung 1 cot). */
.wpds-blogdetail-v4 {
	grid-template-columns: 1fr 3fr;
}
/* BUG THAT (nguoi dung bao qua screenshot: "Sidebar trái là tỉ lệ 1/4 mà" — cot 1/4 dung tren so
   nhung tieu de bai viet trong .wpds-bd-sidebar-list VAN tran sang de len ca cot noi dung 3/4 ben
   canh). Nguyen nhan: grid item MAC DINH co min-width:auto (KHONG PHAI 0), nghia la track KHONG
   duoc phep co nho hon noi dung TU NHIEN (chua xuong dong) cua no — .wpds-bd-sidebar-list a la
   flex (display:flex) chua 1 <span class="wpds-bd-sidebar-title"> VAN theo dung quy tac do (flex
   item cung mac dinh min-width:auto), 1 tieu de bai viet dai/khong co khoang trang de ngat se ep ca
   chuoi flex/grid cha phinh rong ra thay vi tu xuong dong trong khung 1fr ~25% — dung y bug "chiếm
   hết chiều ngang, đè lên nội dung chính" trong anh chup. Fix CHUAN cho CA 2 tang (grid + flex long
   nhau): ep min-width:0 tren CA 2 grid item TRUC TIEP (main/sidebar) VA tren .wpds-bd-sidebar-list a
   + chinh .wpds-bd-sidebar-title (flex item chua text dai) de trinh duyet duoc phep co lai/xuong
   dong dung trong khung da cap, khong con lam trang track nua. */
.wpds-blogdetail-main,
.wpds-bd-sidebar {
	min-width: 0;
}
.wpds-blogdetail-related {
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 16px;
}
.wpds-blogdetail-related h2 {
	margin-top: 0;
	font-size: 1.1em;
}
/* Redesign theo yeu cau truc tiep ("Sidebar phải/trái đang chiếm lỗi, cần thiết kế lại... thêm hình
   ảnh thumbnail... thêm sticky") — xem includes/render/blog-detail/_sidebar-related.php. 2 khoi con
   "Bài viết mới nhất"/"Bài viết nổi bật" cach nhau 1 duong ke; moi item la 1 hang ngang thumbnail nho
   + tieu de (truoc day chi la link chu tho, khong anh, nen trong "trống"/thiếu sức sống so voi cot
   noi dung chinh ben canh — dung y "chiếm lỗi"). */
.wpds-bd-sidebar-section + .wpds-bd-sidebar-section {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid #e5e7eb;
}
.wpds-bd-sidebar-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.wpds-bd-sidebar-list a {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	color: inherit;
	text-decoration: none;
}
.wpds-bd-sidebar-thumb {
	display: block;
	flex: 0 0 auto;
	width: 60px;
	height: 60px;
	border-radius: 8px;
	overflow: hidden;
	background: linear-gradient(135deg, #eef2ff, #e0e7ff);
}
.wpds-bd-sidebar-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.wpds-bd-sidebar-title {
	font-size: 0.88em;
	font-weight: 600;
	line-height: 1.4;
	color: #111827;
}
.wpds-bd-sidebar-list a:hover .wpds-bd-sidebar-title {
	color: #4f46e5;
}
/* Sticky theo yeu cau truc tiep — .wpds-bd-sidebar (= <aside class="wpds-blogdetail-related
   wpds-bd-sidebar">) la GRID ITEM TRUC TIEP cua .wpds-blogdetail-v3 (display:grid o tren) nen
   containing block dung de tinh sticky la CA HANG grid (cao bang cot noi dung chinh, thuong dai hon
   sidebar nhieu) BAT KE align-items la gi — CSS Grid: align-items chi quyet dinh item nam O DAU
   trong o cua no, khong lam nho containing block (bai hoc rut tu .wpds-pb-preview-col, xem ghi chu
   ~components.css dong lien quan sticky) — nen dat sticky THANG len chinh aside nay se dinh dung
   suot luc cuon qua cot noi dung dai hon, khong can boc them wrapper nao. */
.wpds-bd-sidebar {
	position: sticky;
	top: 20px;
}
@media (max-width: 720px) {
	/* ".wpds-blogdetail-v4" phai liet ke o DAY (khong chi dua vao ".wpds-blogdetail-v3" dung chung) —
	   .wpds-blogdetail-v4 { grid-template-columns: 1fr 3fr; } khai bao O TREN (ngay sau
	   .wpds-blogdetail-v3, TRUOC media query nay) cung 1 muc specificity — dat TRUOC de rule "1fr" o
	   day (sau hon trong source, chi kich hoat khi man hinh hep) moi la ben THANG cuoi cung; neu khong
	   liet ke ro .wpds-blogdetail-v4 tai day thi no van chi khop ".wpds-blogdetail-v3" (chung class),
	   khong dong lai cot 1fr 3fr rieng cua v4, khien v4 KHONG xep chong 1 cot dung o man hinh hep. */
	.wpds-blogdetail-v3,
	.wpds-blogdetail-v4 {
		grid-template-columns: 1fr;
	}
	.wpds-bd-sidebar {
		position: static;
	}
}
/* Bien the 4 "Sidebar trai" — markup GIONG HET bien the 3 (xem includes/render/blog-detail/variant-4.php),
   chi doi thu tu 2 cot BANG CSS (order, khong doi DOM) de cot lien quan nhay sang trai. Track size rieng
   cho v4 (dao 1fr/3fr) xem khoi ".wpds-blogdetail-v4{grid-template-columns:1fr 3fr}" NGAY SAU
   ".wpds-blogdetail-v3" o tren (giai thich chi tiet bug "order khong doi kich thuoc O" tai do). */
.wpds-blogdetail-v4 .wpds-blogdetail-related {
	order: -1;
}

/* 6 khoi phu dung chung (_breadcrumb/_share/_toc/_prev-next/_comments/_related.php) — dung 1 lan cho
   ca 5 bien the ("Đổ bóng" khong phai 1 file _*.php rieng — chi 1 class dieu kien tren wrapper cua
   TUNG bien the, xem $wpds_bd_shadow_class trong variant-N.php + .wpds-bd-shadow o cuoi file nay). */
.wpds-bd-breadcrumb {
	font-size: 0.85em;
	color: #6b7280;
	margin-bottom: 16px;
}
.wpds-bd-breadcrumb a {
	color: #6b7280;
	text-decoration: none;
}
.wpds-bd-breadcrumb a:hover {
	color: #4f46e5;
	text-decoration: underline;
}
.wpds-bd-breadcrumb-sep {
	margin: 0 6px;
	color: #d1d5db;
}
.wpds-bd-breadcrumb-current {
	color: #111827;
}
/* "Mục lục" (blog_detail_show_toc, mac dinh TAT) — xem includes/render/blog-detail/_toc.php. Khong
   danh so thu tu (counter CSS) cho H2/H3: cac muc nam CHUNG 1 mang phang theo thu tu xuat hien trong
   noi dung (khong phan biet cap trong PHP, xem $wpds_toc_items), danh so tuan tu 1/2/3... se SAI ve
   mat phan cap (h3 con cua h2 nao khong the hien) — chi thut le + giam co chu cho h3 la du de phan
   biet cap, khong can gia lap so thu tu co the gay hieu lam. */
.wpds-bd-toc {
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	padding: 18px 20px;
	margin: 0 0 24px;
}
/* <summary> — bo marker tam giac MAC DINH cua trinh duyet (khac nhau giua Firefox [::marker/
   list-style] va Chrome/Safari [::-webkit-details-marker], can chan CA 2) de thay bang 1 icon chevron
   rieng qua ::after, tu xoay 180deg khi <details> dang [open] — dung y "thêm icon thu gọn - mở rộng"
   theo yeu cau truc tiep. Cung ky thuat SVG-qua-mask-image voi cac icon khac trong plugin (currentColor
   tu nhuom dung mau chu). */
.wpds-bd-toc-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font-size: 0.95em;
	font-weight: 700;
	color: #111827;
	margin-bottom: 10px;
	cursor: pointer;
	list-style: none;
	user-select: none;
}
.wpds-bd-toc-title::-webkit-details-marker {
	display: none;
}
.wpds-bd-toc-title::after {
	content: "";
	flex: 0 0 auto;
	width: 14px;
	height: 14px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat center / contain;
	transition: transform .15s ease;
}
.wpds-bd-toc[open] .wpds-bd-toc-title::after {
	transform: rotate(180deg);
}
.wpds-bd-toc ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.wpds-bd-toc li a {
	display: block;
	font-size: 0.9em;
	color: #374151;
	text-decoration: none;
	line-height: 1.5;
}
.wpds-bd-toc li a:hover {
	color: #4f46e5;
}
.wpds-bd-toc-h3 a {
	padding-left: 16px;
	font-size: 0.85em;
	color: #6b7280;
}
/* "Đổ bóng layout" (blog_detail_show_shadow, mac dinh BAT) — bien khoi noi dung chinh thanh 1 "card"
   noi len tren nen trang (bg trang + bo goc lon + shadow mem) thay vi noi tiep phang vao nen nhu
   truoc — theo yeu cau truc tiep "đổ bóng layout... cho đẹp hiện đại". CHI 1 class dung chung, khong
   viet compound selector rieng tung bien the: moi variant-N.php TU CHON element nao duoc gan class
   nay (xem ghi chu $wpds_bd_shadow_class trong tung file — article cho v1, .wpds-blogdetail-inner
   cho v2 (tranh de len banner full-bleed), ca khoi grid 2 cot cho v3/v4, .wpds-blogdetail-v5-inner
   cho v5 (tranh de len hero full-bleed)) — CSS o day chi cong 1 kieu dang chung cho MOI truong hop. */
.wpds-bd-shadow {
	background: #fff;
	padding: 32px;
	border-radius: 16px;
	box-shadow: 0 8px 32px rgba(17, 24, 39, .08);
}
@media (max-width: 640px) {
	.wpds-bd-shadow {
		padding: 20px;
	}
}
.wpds-bd-share {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid #e5e7eb;
}
.wpds-bd-share-label {
	font-weight: 600;
	color: #374151;
}
.wpds-bd-share-link {
	padding: 6px 14px;
	border: 1px solid #e5e7eb;
	border-radius: 999px;
	color: #374151;
	text-decoration: none;
	font-size: 0.85em;
}
.wpds-bd-share-link:hover {
	background: #4f46e5;
	border-color: #4f46e5;
	color: #fff;
}
.wpds-bd-prevnext {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin: 32px 0;
}
.wpds-bd-prevnext-link {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 14px 16px;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	text-decoration: none;
}
.wpds-bd-prevnext-link:hover {
	border-color: #4f46e5;
}
.wpds-bd-prevnext-next {
	text-align: right;
}
.wpds-bd-prevnext-label {
	font-size: 0.8em;
	color: #9ca3af;
}
.wpds-bd-prevnext-title {
	color: #111827;
	font-weight: 600;
}
@media (max-width: 640px) {
	.wpds-bd-prevnext {
		grid-template-columns: 1fr;
	}
}
/* .wpds-bd-related-grid CHI la hook ten (khong co rule rieng) — the ben trong dung LAI CHINH XAC
   .wpds-blog-card (xem render_blog_card()) nen can .wpds-blog-grid dung chung o dau file de xep luoi,
   tranh viet lai 1 bo grid-template-columns/gap khac cho CUNG 1 kieu the. */
.wpds-bd-related {
	margin: 32px 0;
}
.wpds-bd-related h2 {
	font-size: 1.2em;
	margin: 0 0 16px;
}

/* "Để lại một bình luận" — comments_template() GOI THAT (WordPress core, khong phai markup rieng
   cua plugin) nen truoc gio hien y het form WP mac dinh: khung vien tho, khong dong bo mau, cac dong
   text phu ("Đăng nhập với tên..."/"Các trường bắt buộc...") dinh sat nhau khong khoang cach — "xấu
   và rối" theo phan hoi truc tiep. Restyle CUNG mau thuong hieu #4f46e5 + bo cuc dang the (card)
   GIONG HET cach da lam voi form danh gia san pham (.wpds-productdetail #respond/#reply-title/
   .comment-form-*, phia tren file nay) de dong bo giao dien 2 loai trang chi tiet, KHONG dong markup/
   logic form (van la comment_form() that cua WordPress, gui/luu binh thuong). Scope qua
   .wpds-bd-comments (xem _comments.php) chu KHONG phai .wpds-blogdetail: #respond nam NGOAI article
   do, la 1 khoi rieng cung cap voi .wpds-bd-related. */
.wpds-bd-comments {
	margin: 32px 0;
}
.wpds-bd-comments #comments {
	font-size: 1.2em;
	font-weight: 700;
	color: #111827;
	margin: 0 0 16px;
}
.wpds-bd-comments .navigation {
	display: flex;
	justify-content: space-between;
	font-size: 0.85em;
	margin: 12px 0;
}
/* Danh sach binh luan da co — <li> luon la the ngoai cung du theme co bat "html5" cho comment-list
   hay khong (chi doi <article>/<footer> BEN TRONG thanh <div>, KHONG doi ten class avatar/comment-
   author/comment-meta/reply — Walker_Comment loi WordPress dung CHUNG 1 bo class cho ca 2 che do),
   nen chon selector theo CLASS o day an toan voi moi theme, khong can biet theme co ho tro html5. */
.wpds-bd-comments .commentlist {
	list-style: none;
	margin: 0 0 28px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.wpds-bd-comments .commentlist > li {
	padding: 16px;
	background: #f9fafb;
	border-radius: 10px;
}
.wpds-bd-comments .commentlist .avatar {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	float: left;
	margin-right: 12px;
}
.wpds-bd-comments .commentlist cite,
.wpds-bd-comments .commentlist .fn {
	font-weight: 700;
	font-style: normal;
	color: #111827;
	font-size: 13px;
}
.wpds-bd-comments .commentlist .says {
	display: none;
}
.wpds-bd-comments .commentlist .comment-meta,
.wpds-bd-comments .commentlist .commentmetadata {
	display: block;
	font-size: 12px;
	color: #9ca3af;
	margin: 2px 0 8px;
}
.wpds-bd-comments .commentlist .comment-meta a,
.wpds-bd-comments .commentlist .commentmetadata a {
	color: inherit;
	text-decoration: none;
}
.wpds-bd-comments .commentlist p {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: #374151;
	clear: both;
}
.wpds-bd-comments .commentlist .reply {
	margin-top: 8px;
	clear: both;
}
.wpds-bd-comments .commentlist .comment-reply-link {
	font-size: 12px;
	font-weight: 600;
	color: #4f46e5;
	text-decoration: none;
}
.wpds-bd-comments .commentlist .comment-reply-link:hover {
	text-decoration: underline;
}
.wpds-bd-comments .commentlist ul.children {
	list-style: none;
	margin: 12px 0 0 24px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.wpds-bd-comments #respond {
	background: #f9fafb;
	border-radius: 12px;
	padding: 20px;
}
.wpds-bd-comments #reply-title {
	display: block;
	font-size: 16px;
	font-weight: 700;
	margin: 0 0 12px;
	color: #111827;
}
.wpds-bd-comments #reply-title small {
	font-size: 12px;
	font-weight: 400;
	margin-left: 8px;
}
.wpds-bd-comments #reply-title small a {
	color: #4f46e5;
}
.wpds-bd-comments .logged-in-as,
.wpds-bd-comments .comment-notes {
	font-size: 13px;
	color: #6b7280;
	margin: 0 0 12px;
}
.wpds-bd-comments .logged-in-as a {
	color: #4f46e5;
	text-decoration: none;
}
.wpds-bd-comments .logged-in-as a:hover {
	text-decoration: underline;
}
.wpds-bd-comments .comment-form-comment label,
.wpds-bd-comments .comment-form-author label,
.wpds-bd-comments .comment-form-email label,
.wpds-bd-comments .comment-form-url label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: #374151;
	margin: 0 0 6px;
}
.wpds-bd-comments .comment-form-comment textarea,
.wpds-bd-comments .comment-form-author input,
.wpds-bd-comments .comment-form-email input,
.wpds-bd-comments .comment-form-url input {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	font-size: 14px;
	font-family: inherit;
	background: #fff;
}
.wpds-bd-comments .comment-form-comment textarea {
	min-height: 110px;
	resize: vertical;
}
.wpds-bd-comments .comment-form-comment,
.wpds-bd-comments .comment-form-author,
.wpds-bd-comments .comment-form-email,
.wpds-bd-comments .comment-form-url {
	margin: 0 0 16px;
}
.wpds-bd-comments .comment-form-cookies-consent {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: #6b7280;
	margin: 0 0 16px;
}
.wpds-bd-comments .form-submit {
	margin: 0;
}
.wpds-bd-comments .form-submit #submit {
	background: #4f46e5;
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 12px 28px;
	font-weight: 600;
	font-size: 14px;
	cursor: pointer;
	transition: background .15s ease;
}
.wpds-bd-comments .form-submit #submit:hover {
	background: #4338ca;
}

/* Bien the 5 "Magazine" — anh hero full-bleed voi tieu de/danh muc/meta CHE LEN (overlay), noi dung
   1 cot doc bao hep hon voi drop-cap chu dau tien. */
.wpds-blogdetail-v5-hero {
	position: relative;
	margin: -32px -24px 32px;
	border-radius: 0;
	overflow: hidden;
	min-height: 420px;
	display: flex;
	align-items: flex-end;
}
.wpds-blogdetail-v5-hero img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}
.wpds-blogdetail-v5-hero-overlay {
	position: relative;
	z-index: 1;
	width: 100%;
	padding: 60px 40px 32px;
	background: linear-gradient(to top, rgba(0,0,0,.75), rgba(0,0,0,0));
	color: #fff;
}
.wpds-blogdetail-v5-hero-overlay .wpds-blogdetail-title {
	color: #fff;
	font-size: 2em;
}
.wpds-blogdetail-v5-hero-overlay .wpds-blogdetail-meta {
	color: rgba(255,255,255,.8);
}
.wpds-blogdetail-v5-cat {
	display: inline-block;
	background: #4f46e5;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 4px 12px;
	border-radius: 999px;
	margin-bottom: 12px;
}
.wpds-blogdetail-v5-cat-plain {
	margin-top: 8px;
}
.wpds-blogdetail-v5-inner {
	max-width: 760px;
	margin: 0 auto;
}
.wpds-blogdetail-v5:not(.has-thumb) {
	max-width: 760px;
	margin: 0 auto;
}
.wpds-blogdetail-v5-inner .wpds-blogdetail-content > p:first-of-type::first-letter {
	float: left;
	font-size: 3.2em;
	line-height: .9;
	font-weight: 700;
	padding: 4px 8px 0 0;
	color: #4f46e5;
}
@media (max-width: 720px) {
	.wpds-blogdetail-v5-hero {
		min-height: 280px;
		margin: -32px -24px 24px;
	}
	.wpds-blogdetail-v5-hero-overlay {
		padding: 32px 20px 20px;
	}
	.wpds-blogdetail-v5-hero-overlay .wpds-blogdetail-title {
		font-size: 1.5em;
	}
}

/* San pham chi tiet — 5 layout (Mac dinh/Gallery trai/Gallery duoi/Tab thong tin/Gallery Slider),
   CHI doi CSS/khung bao ngoai, phan trong la markup GOC cua WooCommerce (xem
   includes/render/product-detail/variant-N.php). File nay VAN chay trong theme dang active that
   (site-shell.php van goi wp_head() binh thuong) nen CSS cua theme co the ganh len cac thuoc tinh
   cau truc — dung !important co chu dich cho 4 layout Gallery/Tab/Slider (v2-v5) de tang co hoi
   thang the, KHONG dung cho v1 (Mac dinh giu nguyen hanh vi theme/WC goc, khong can ganh gi ca).
   Block CHUNG duoi day (khong !important, giong tinh than v1) — mau/kieu chu dong bo voi thuong
   hieu plugin (cung do #d63638 voi gia san pham o luoi Danh sach, cung indigo #4f46e5 voi nut
   "Thêm vào giỏ") — ap dung ca tren site that LAN preview admin (Layouts_Preview::render() moi nap
   THEM woocommerce.css rieng cho preview, xem docblock render()) vi WooCommerce mac dinh kha don
   dieu (nut xam, gia khong noi bat), khong theo bat ky theme cu the nao nen an toan dat truoc CSS
   theme trong thu tu tai (theme nao co dinh nghia rieng se tu nhien thang do CSS specificity/nap
   sau, khong can !important). */
/* Sao danh gia duoi tieu de — markup ".woocommerce-product-rating"/".star-rating" la GOC WooCommerce
   (wc_get_rating_html(), qua Product_Detail_Extras::render_rating_always() — xem docblock ham do:
   LUON hien ke ca 0 danh gia, khac mac dinh WC tu an han). */
.wpds-productdetail .wpds-pd-rating-always {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 4px 0 12px;
}
/* ".star-rating" GOC cua WC ve 5 sao bang 1 web-font rieng (@font-face "star" trong woocommerce.css)
   — font nay KHONG hien ra trong preview wp-admin (xac nhan qua screenshot thuc te 08-2026: chi thay
   "(0 đánh giá)", khong co sao nao ca, du markup ".star-rating" van co trong DOM) — co the do duong
   dan font tuong doi trong @font-face khong khop boi context admin-post.php khac voi context site
   that ma file CSS do von duoc thiet ke cho. VE LAI HOAN TOAN bang ky tu Unicode ★/☆ (khong phu thuoc
   font/asset ngoai nao, luon hien du o dau) — dung LAI dung ky thuat "lop nen xam + lop phu vang phu
   theo %" cua chinh WC (span con da co san "style width:X%" tu wc_get_rating_html(), chi doi CACH
   VE, khong dong markup): lop nen la "::before" cua .star-rating (mau xam, LUON du 5 sao), lop phu la
   "::before" cua span con (mau vang, bi ".star-rating span{overflow:hidden}" cat theo dung X% do WC
   tinh san). */
.wpds-productdetail .star-rating {
	position: relative !important;
	display: inline-block !important;
	overflow: hidden !important;
	width: 5.2em !important;
	height: 1em !important;
	line-height: 1 !important;
	font-size: 15px !important;
	vertical-align: middle;
}
.wpds-productdetail .star-rating::before {
	content: "★★★★★" !important;
	position: absolute;
	top: 0;
	left: 0;
	color: #d1d5db !important;
	white-space: nowrap;
	letter-spacing: .06em;
}
.wpds-productdetail .star-rating span {
	position: absolute !important;
	top: 0;
	left: 0;
	height: 100% !important;
	overflow: hidden !important;
}
.wpds-productdetail .star-rating span::before {
	content: "★★★★★" !important;
	color: #facc15 !important;
	white-space: nowrap;
	letter-spacing: .06em;
}
.wpds-productdetail .wpds-pd-rating-always .woocommerce-review-link,
.wpds-productdetail .wpds-pd-rating-always .wpds-pd-rating-count {
	color: #6b7280;
	font-size: 13px;
	text-decoration: none;
}
.wpds-productdetail .price {
	color: #d63638 !important;
	font-size: 24px;
	font-weight: 700;
}
.wpds-productdetail .price del {
	color: #9ca3af;
	font-size: 16px;
	font-weight: 400;
	opacity: 1;
}
.wpds-productdetail .price ins {
	text-decoration: none;
}
/* Badge "-X%" ngay canh gia (class-product-detail-extras.php::price_html_with_percent_badge(),
   chi them khi san pham THAT SU dang giam gia — khong hien voi san pham gia thuong). */
.wpds-pd-price-badge {
	display: inline-block;
	background: #ef4444;
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	padding: 3px 10px;
	border-radius: 999px;
	vertical-align: middle;
}
.wpds-productdetail .product_title {
	font-size: 26px;
	font-weight: 700;
	margin: 0 0 8px;
}
/* Badge giam gia — ".onsale" la element GOC cua WooCommerce (loop/sale-flash.php), TU DINH VI dung
   goc anh gallery boi CSS loi cua chinh WC (position:absolute tren .product) — chi RESTYLE mau/hinh
   dang o day, KHONG dong toi position/top/left. !important BAT BUOC: selector goc cua WC
   (".woocommerce span.onsale", 2 class + 1 element) co specificity CAO HON ".wpds-productdetail
   .onsale" (2 class, khong element) — thieu !important thi mau/hinh dang goc (hinh tron, nen xanh
   oliu #77a464) se thang, xac nhan qua bug thuc te tren production 08-2026 (chi lo ra SAU KHI fix
   body class khien CSS ".woocommerce ..." cua WC bat dau khop dung). */
.wpds-productdetail .onsale {
	background: #ef4444 !important;
	color: #fff !important;
	border-radius: 999px !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	min-height: 0 !important;
	min-width: 0 !important;
	line-height: 1 !important;
	padding: 6px 12px !important;
}
/* TRANG CHI TIET (khac voi "Sản phẩm tương tự" o duoi): ".onsale" mac dinh la ANH EM (khong phai
   con) cua ".woocommerce-product-gallery" trong markup goc WC (ca 2 deu la con truc tiep cua
   div.product) — "top:-.5em;left:-.5em" cua WC dinh vi theo div.product (thiet ke cho 1 badge TRON
   nho nhon nhe ra goc anh), KHONG khop voi bo cuc flex 2 cot rieng cua preview nay (class-layouts-
   preview.php) LAN dang PILL rong da restyle o tren — badge hien lech han len tren, nam NGOAI anh
   thay vi de len anh (xac nhan qua DevTools tren production 08-2026). assets/js/wpds-wc-single-
   product-preview.js (CHI preview, xem docblock file do) CHUYEN HAN ".onsale" vao lam con dau tien
   cua ".woocommerce-product-gallery" (da san position:relative tu CSS goc WC — ".woocommerce
   div.product div.images") — ghi de vi tri o day thanh 1 khoang cach vao HAN ben trong, giong dung
   cach dat badge "Mới" (.wpds-pd-badge-new) de 2 badge dong bo, khong con phu thuoc div.product nua. */
.wpds-productdetail .woocommerce-product-gallery > .onsale {
	top: 12px !important;
	left: 12px !important;
}
/* "Sản phẩm tương tự" (WC tu render qua woocommerce_output_related_products(), khong phai
   Shortcode_Engine cua plugin nay) — WC dinh vi ".onsale" bang position:absolute tren CHINH
   li.product chua no (can li.product la positioning context, xem ghi chu o tren); .wpds-productdetail
   ul.products o duoi day dung display:grid (khong phai float goc cua WC) nen KHONG tu dong co
   position:relative nhu grid list item thuong co trong theme that — thieu dong nay badge se "thoat"
   len positioning context XA nhat phia tren (co the la <body>), lech hoan toan khoi vi tri that su
   cua no — xac nhan qua bug thuc te tren production 08-2026 (badge noi "lo lung" o dau trang). */
.wpds-productdetail ul.products li.product {
	position: relative;
}
/* ".onsale" trong "Sản phẩm tương tự" tung hien nhu 1 thanh dai/vuong xau (khong ro DUNG rule WC nao
   dang xung dot — cung tinh trang tung gap voi tab v4 "Đánh giá (0)", xem ghi chu o do) — thay vi
   doan tiep, RESET TRIET DE moi thuoc tinh box-model lien quan (display/position/width/white-space)
   VA dong bo HOAN TOAN kich thuoc/hinh dang voi badge "Mới" ngay canh (.wpds-pd-related-badge-new,
   cung font-size 11px/padding 3px 9px) thay vi dung size lon hon cua trang chi tiet chinh. Chu badge
   cung rut gon thanh "-X%" (xem sale_flash_with_percent(), CHI ap dung rieng cho vong lap nay, khong
   doi chu tren trang chi tiet chinh) — theo yeu cau kem anh mau 08-2026. */
.wpds-productdetail ul.products li.product .onsale {
	display: inline-block !important;
	position: absolute !important;
	top: 12px !important;
	left: 12px !important;
	right: auto !important;
	width: auto !important;
	max-width: none !important;
	white-space: nowrap !important;
	text-align: left !important;
	z-index: 2 !important;
	background: #ef4444 !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	padding: 3px 9px !important;
	line-height: 1.4 !important;
	border-radius: 999px !important;
	min-height: 0 !important;
	min-width: 0 !important;
}
/* Meta (SKU/Danh muc/Ton kho) — ".sku_wrapper"/".posted_in"/".tagged_as"/".stock" la cac <span> GOC
   WooCommerce tu boc rieng tung muc (woocommerce_template_single_meta()/single_stock_html()), chi can
   restyle thanh pill, khong doi markup. */
.wpds-productdetail .product_meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 12px 0;
}
.wpds-productdetail .product_meta > span,
.wpds-productdetail p.stock {
	display: inline-flex;
	align-items: center;
	padding: 5px 12px;
	border-radius: 999px;
	background: #f3f4f6;
	color: #374151;
	font-size: 12px;
	font-weight: 600;
}
.wpds-productdetail p.stock.in-stock {
	background: #dcfce7;
	color: #16a34a;
}
.wpds-productdetail p.stock.out-of-stock {
	background: #fee2e2;
	color: #ef4444;
}
.wpds-productdetail .product_meta a {
	color: inherit;
	text-decoration: none;
}
/* Gallery — bo goc anh chinh. !important tren width/height: WooCommerce goc co san CSS rieng dinh
   kich thuoc anh theo "--columns-N" (thiet ke cho flexslider that, cac anh KHONG active chi la 1
   phan cua "track" thu nho, chi anh dang active moi phong to that su) — code preview nay TOGGLE
   display:none/block tung anh (khong phai flexslider truot that), nen khi doi anh chinh (click
   thumbnail) sang 1 the truoc do dang bi tinh la "khong active", no van giu kich thuoc nho, hien ra
   nhu 1 thumbnail thay vi anh chinh full khung — xac nhan tren production 08-2026. Ep width:100% cho
   MOI anh trong gallery (bat ke dang active hay khong) de luon full khung khi duoc hien. */
.wpds-productdetail .woocommerce-product-gallery__image img,
.wpds-productdetail .woocommerce-product-gallery__wrapper img {
	border-radius: 10px;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
}
/* WooCommerce goc co san ".woocommerce div.product div.images .woocommerce-product-gallery__image:
   nth-child(n+2){width:25%;display:inline-block;}" — thiet ke cho flexslider that (anh THU 2 tro di
   von la "slide" thu nho trong track, chi anh dau tien duoc full-width truoc khi JS khoi tao) — code
   preview nay toggle display:none/block tung anh (khong phai truot track that), nen khi chon 1 anh
   TU thu 2 tro di lam anh chinh (click thumbnail), rule 25% do van con hieu luc du <img> ben trong da
   ep 100% — 100% cua 1 khung cha rong 25% van chi la 25% khung that. Xac nhan qua DevTools tren
   production 08-2026 (tat rule do thi anh hien full on dinh). Ep width 100% cho CHINH khung anh
   (khong phai <img> ben trong), khong phan biet thu tu. CHI width — KHONG dung !important cho
   "display" o day: assets/js/wpds-wc-single-product-preview.js dung inline style display:none/''
   de an/hien tung anh (an CHI 1 anh dang "active"); "display:block!important" trong stylesheet se
   THANG ca inline style do (quy tac cascade: rule !important trong stylesheet luon thang inline
   style thuong), lam MOI anh cung hien xep chong doc 1 luc — bug that vua gap tren production 08-2026,
   fix bang cach BO han thuoc tinh display khoi rule nay. */
.wpds-productdetail .woocommerce-product-gallery__image {
	width: 100% !important;
}
/* 8 anh minh hoa san pham mau (assets/img/wpds-demo-product-*.png) VON co nhieu khoang trong quanh
   icon (thiet ke dang "icon tren the mau", KHONG PHAI anh chup san pham full khung) — do phan giai
   canvas that su cua tung file, khong phai loi CSS (width:100% o tren da dung, chi la noi dung anh
   von nho). Zoom nhe 1.35x (transform, giu nguyen khung box qua overflow:hidden tren the cha) de bot
   trong hon — muc 1.35x an toan, KHONG cat mat icon o ca 8 anh (do dac tinh: icon chiem 36.5%-71%
   chieu cao/40%-60% chieu rong canvas that, xac nhan qua phan tich pixel 08-2026). CHI khop
   "img[src*='wpds-demo-product']" (dung URL file rieng cua 8 anh mau nay) — KHONG ap dung cho anh
   SAN PHAM THAT admin tu upload sau nay (URL hoan toan khac, qua WP Media Library), tranh zoom/cat
   nham anh that von da chup full khung san. */
.wpds-productdetail .woocommerce-product-gallery__image {
	overflow: hidden;
}
.wpds-productdetail .woocommerce-product-gallery__image img[src*="wpds-demo-product"] {
	transform: scale(1.35);
}
/* background/color: 2 bien CSS toan cuc dung CHUNG voi the san pham tab Danh sách VA nut trong "Sản
   phẩm tương tự" — xem Layouts_Options::addcart_color_vars_css(). "color" o day TRUOC gio khong dat
   gi ca (chu trang la do trinh duyet/WC mac dinh boc lay, khong phai plugin nay dinh) — dat tuong
   minh cho dong bo, icon gio hang duoi day (currentColor) TU DONG nhuom theo, khong can sua gi them.
   !important tren background/color — BUG THAT (nguoi dung bao doi mau xanh o "4. Màu nút" nhung nut
   chinh trang chi tiet VAN hien tim WooCommerce mac dinh #7f54b3): nut nay mang class "alt" (WC tu
   gan cho nut submit chinh), khop rule goc ".woocommerce a.button.alt/button.button.alt/input.button.alt"
   trong woocommerce.css (co nap that o day, xem class-layouts-preview.php) — rule do specificity
   (0,3,1) CAO HON rule cua plugin ".wpds-productdetail .single_add_to_cart_button" (0,2,0, khong co
   type selector nao) nen LUON thang bat ke thu tu nap file. display da can !important truoc do vi
   cung ly do nay (WC dat "display:inline-block" tren cung rule .alt); background/color truoc gio
   CHUA co, chi la CHUA TUNG kiem chung tren WooCommerce that (xem ghi chu Unverified trong bo nho du
   an) nen khong lo ra. Nut trong "Sản phẩm tương tự" (.wpds-productdetail ul.products .button, duoi
   file nay) KHONG bi anh huong — khong mang class "alt", rule WC doi thu chi (0,2,1), van thap hon
   rule cua plugin o do (0,3,1). */
.wpds-productdetail .single_add_to_cart_button {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	background: var(--wpds-addcart-bg, #4f46e5) !important;
	color: var(--wpds-addcart-color, #fff) !important;
	border-radius: 999px;
	padding: 12px 28px;
	font-weight: 600;
	border: none;
	transition: filter .15s ease;
}
/* Icon gio hang chuyen nghiep (SVG outline qua mask-image) thay cho emoji "🛒" cu — trong tho/khac
   nhau giua cac he dieu hanh/font. mask-image (khong phai background-image binh thuong) de icon tu
   nhuom dung mau chu hien tai (currentColor) cua nut, khong can quan ly 1 file mau rieng. */
.wpds-productdetail .single_add_to_cart_button::before {
	content: "";
	display: inline-block;
	width: 17px;
	height: 17px;
	flex: 0 0 auto;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E") no-repeat center / contain;
}
.wpds-productdetail .single_add_to_cart_button:hover {
	filter: brightness(.9);
}
/* "Số lượng" + nut +/- quanh o nhap so luong — WC goc chi co <input type="number"> tho (spinner
   trinh duyet, khong nhan/khong nut +/-). Nhan + 2 nut do assets/js/wpds-wc-single-product-preview.js
   chen (CHI preview, xem docblock file do) — o day chi RESTYLE: form.cart xep hang ngang, .quantity
   thanh 1 khoi bo tron "vien lien" (border-radius:999px) boc ca input + 2 nut, an spinner mac dinh
   cua trinh duyet vi da co nut rieng. */
.wpds-productdetail form.cart {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}
.wpds-pd-qty-label {
	font-size: 13px;
	color: #6b7280;
	font-weight: 600;
}
.wpds-productdetail div.quantity {
	display: flex !important;
	align-items: center;
	border: 1px solid #e5e7eb;
	border-radius: 999px;
	overflow: hidden;
	width: auto !important;
}
.wpds-pd-qty-btn {
	background: none;
	border: none;
	width: 32px;
	height: 36px;
	font-size: 16px;
	color: #374151;
	cursor: pointer;
	line-height: 1;
	flex: 0 0 auto;
}
.wpds-pd-qty-btn:hover {
	background: #f3f4f6;
}
.wpds-productdetail div.quantity .qty {
	border: none !important;
	border-radius: 0 !important;
	width: 36px !important;
	text-align: center;
	-moz-appearance: textfield;
}
.wpds-productdetail div.quantity .qty::-webkit-outer-spin-button,
.wpds-productdetail div.quantity .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
/* WooCommerce chi AN cac panel tab Mo ta/Thong tin them/Danh gia (giu lai panel dau) bang JS
   (wc-single-product.js, gan class/style luc chay), KHONG PHAI CSS tinh trong woocommerce.css — file
   JS do dang ky qua wp_enqueue_scripts, hook nay KHONG BAO GIO chay trong Layouts_Preview (admin-post.php,
   cung ly do voi wc-template-hooks.php da fix truoc do). Thieu no, CA 3 panel hien CUNG LUC — panel
   "Danh gia" kem theo FORM BINH LUAN THAT cua WordPress (rat roi, khong lien quan "layout trang chi
   tiết"). Tu an panel thu 2 tro di bang CSS — ap dung CA site that (vo hai/du thua neu JS that da
   chay dung, chi la 1 "trang thai mac dinh" truoc khi JS kip khoi tao, tranh nhap nhay) LAN preview
   (o day la ban duy nhat co tac dung, vi JS khong bao gio chay). "Biến thể 4 — Tab thông tin" van
   dung binh thuong: CSS nay chi an NOI DUNG panel khong active, khong dung cham gi den kieu dang
   thanh tab dieu huong (.woocommerce-tabs ul.tabs) cua bien the do. */
.wpds-productdetail .woocommerce-tabs .panel:not(:first-of-type),
.wpds-productdetail .wc-tabs-wrapper .panel:not(:first-of-type) {
	display: none;
}
/* Noi dung BEN TRONG panel "Mô tả" — truoc gio khong co CSS rieng, hien nhu <p>/<h2> tho mac dinh
   trinh duyet, lac long voi phan con lai da duoc restyle cua trang. */
.wpds-productdetail .woocommerce-Tabs-panel--description {
	font-size: 14px;
	line-height: 1.75;
	color: #374151;
}
.wpds-productdetail .woocommerce-Tabs-panel--description h2 {
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 12px;
	color: #111827;
}
.wpds-productdetail .woocommerce-Tabs-panel--description p {
	margin: 0 0 14px;
}
.wpds-productdetail .woocommerce-Tabs-panel--description p:last-child {
	margin-bottom: 0;
}
/* San pham that (admin tu viet mo ta trong WooCommerce, KHONG phai du lieu mau class-layouts-demo-
   data.php) hay dung danh sach that (<ul><li>, vd "Ưu điểm nổi bật:") — nhung bi mat dau cham dau
   dong VI dinh nghia lai (".wpds-productdetail ul{list-style:none;margin:0;padding:0;}", ban dau chi
   nham RESET cac <ul> dieu huong/luoi cua chinh WC nhu "ul.tabs"/"ul.products", qua RONG nen "an
   nham" ca danh sach NOI DUNG that trong mo ta — xac nhan qua screenshot thuc te 08-2026: cac dong
   "Thiết kế phong cách..."/"Kiểu dáng..." xep sat nhau KHONG dau cham, dung la <li> bi mat style chu
   khong phai <p> rieng). Khoi phuc rieng cho <ul>/<ol> BEN TRONG panel Mô tả/Đánh giá (KHONG dong
   den <ul class="tabs">/"ul.products" o ngoai panel — 2 the loai <ul> khac nhau, van can list-
   style:none nhu cu). */
.wpds-productdetail .woocommerce-Tabs-panel ul {
	list-style: disc !important;
	margin: 0 0 14px 20px !important;
	padding: 0 !important;
}
.wpds-productdetail .woocommerce-Tabs-panel ol {
	list-style: decimal !important;
	margin: 0 0 14px 20px !important;
	padding: 0 !important;
}
.wpds-productdetail .woocommerce-Tabs-panel li {
	margin: 0 0 6px !important;
}
/* Noi dung BEN TRONG panel "Đánh giá" — danh sach danh gia da co (".commentlist", WordPress
   wp_list_comments()) + form gui danh gia moi ("#review_form_wrapper", WordPress comment_form(), WC
   chi them field "comment-form-rating") deu la markup GOC, truoc gio khong co CSS rieng nen hien y
   het 1 form binh luan WordPress mac dinh (khung vien tho, khong dong bo mau) — restyle dong bo mau
   thuong hieu #4f46e5 (cung tong voi nut "Thêm vào giỏ hàng"/tab dieu huong dang active), KHONG dong
   markup/logic form (van la comment_form() that, gui that len WordPress). */
.wpds-productdetail .woocommerce-Reviews-title {
	font-size: 16px;
	font-weight: 700;
	margin: 0 0 16px;
	color: #111827;
}
.wpds-productdetail .commentlist {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0 0 24px;
}
.wpds-productdetail .commentlist .comment_container {
	display: flex;
	gap: 12px;
	padding: 16px;
	background: #f9fafb;
	border-radius: 10px;
}
.wpds-productdetail .commentlist .avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	flex: 0 0 auto;
}
.wpds-productdetail .commentlist .comment-text {
	flex: 1 1 auto;
	min-width: 0;
}
.wpds-productdetail .commentlist .star-rating {
	margin: 0 0 4px !important;
}
.wpds-productdetail .commentlist .woocommerce-review__author {
	font-weight: 700;
	color: #111827;
	font-size: 13px;
}
.wpds-productdetail .commentlist .woocommerce-review__dash,
.wpds-productdetail .commentlist .woocommerce-review__published-date {
	color: #9ca3af;
	font-size: 12px;
}
.wpds-productdetail .commentlist .description p {
	margin: 6px 0 0;
	font-size: 14px;
	color: #374151;
	line-height: 1.6;
}
.wpds-productdetail #review_form_wrapper {
	background: #f9fafb;
	border-radius: 12px;
	padding: 20px;
}
.wpds-productdetail #reply-title {
	display: block;
	font-size: 16px;
	font-weight: 700;
	margin: 0 0 16px;
	color: #111827;
}
.wpds-productdetail .comment-form-rating label,
.wpds-productdetail .comment-form-comment label,
.wpds-productdetail .comment-form-author label,
.wpds-productdetail .comment-form-email label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: #374151;
	margin: 0 0 6px;
}
.wpds-productdetail .comment-form-rating select,
.wpds-productdetail .comment-form-comment textarea,
.wpds-productdetail .comment-form-author input,
.wpds-productdetail .comment-form-email input {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	font-size: 14px;
	font-family: inherit;
	background: #fff;
}
.wpds-productdetail .comment-form-comment textarea {
	min-height: 100px;
	resize: vertical;
}
.wpds-productdetail .comment-form-rating,
.wpds-productdetail .comment-form-comment,
.wpds-productdetail .comment-form-author,
.wpds-productdetail .comment-form-email {
	margin: 0 0 16px;
}
.wpds-productdetail #respond .form-submit {
	margin: 0;
}
.wpds-productdetail #respond .form-submit #submit {
	background: #4f46e5;
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 12px 28px;
	font-weight: 600;
	font-size: 14px;
	cursor: pointer;
	transition: background .15s ease;
}
.wpds-productdetail #respond .form-submit #submit:hover {
	background: #4338ca;
}
/* Reset co ban cho cac phan tu HTML CHUNG (link/danh sach/tieu de) — woocommerce.css CHI lo phan
   RIENG cua WooCommerce (gia/nut/luoi san pham), con cac reset "nen" (bo gach chan link, bo bullet
   danh sach...) binh thuong la trach nhiem cua THEME dang active. Trang preview nay (Layouts_Preview::render())
   CO CHU DICH khong nap theme that (xem docblock file do), nen thieu han lop reset nay — ro nhat o
   khoi "Sản phẩm tương tự" (ul.products, WooCommerce tu render KHONG kem lop CSS nen): tieu de/nut
   hien ra nhu link xanh gach chan mac dinh cua trinh duyet, dau cham danh sach lo ra. Tren site that
   THEME da tu lo phan nay roi nen khong xung dot — chi bo sung, khong dung !important. */
.wpds-productdetail a {
	color: inherit;
	text-decoration: none;
}
.wpds-productdetail ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.wpds-productdetail ul.products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
/* WooCommerce goc tu them "ul.products::before/::after { content:' '; display:table; ... }" lam
   clearfix cho luoi float CU cua no — vi o day da doi sang display:grid (khong con float, khong can
   clearfix), 2 pseudo-element rong do lai bi TINH LUON thanh 2 O LUOI THUA (moi phan tu con trong
   flow, ke ca ::before/::after co content, deu thanh grid-item khi cha la display:grid), tao ra
   khoang trang la giua/cuoi luoi "Sản phẩm tương tự" — xac nhan tren production 08-2026. Bo han. */
.wpds-productdetail ul.products::before,
.wpds-productdetail ul.products::after {
	content: none;
	display: none;
}
.wpds-productdetail ul.products img {
	width: 100%;
	height: auto;
	/* KHONG con border-radius rieng — li.product o duoi da overflow:hidden + border-radius cua chinh
	   no, tu cat goc anh theo dung khung the, khong can be tron rieng o day nua (tranh 2 lop be tron
	   lech nhau). */
	display: block;
}
/* THIET KE LAI toan bo the (li.product) giong the san pham tab Danh sách (he ".wpds-wc-*" — 2 markup
   khac nhau nen khong dung chung duoc CSS, chi COPY LAI dung mau/kich thuoc) — theo yeu cau kem anh
   mau doi chieu (08-2026): the co vien/bo goc/do bong ro rang thay vi hoan toan tron nhu truoc (chi
   co position:relative de lam containing block cho badge). */
.wpds-productdetail ul.products li.product {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	overflow: hidden;
	transition: box-shadow .15s ease, transform .15s ease;
}
.wpds-productdetail ul.products li.product:hover {
	box-shadow: 0 10px 24px rgba(17, 24, 39, .08);
	transform: translateY(-3px);
}
/* Tieu de + gia truoc day deu dung "margin: ... 14px ..." de tao khoang cach trai/phai — VE LY
   THUYET bang nhau (cung 14px), nhung "margin" tren <h2>/<h3> (block, co the bi trinh duyet tu them
   margin rieng/margin-collapse voi phan tu ke ben) khac ban chat voi "margin" tren <span class=
   "price"> (o day da ep display:block, nhung van la 1 the goc INLINE, hanh vi margin ngang co the
   khong dong nhat 100% giua 2 loai the) — xac nhan LECH nhau qua screenshot thuc te 08-2026. Doi han
   sang "padding" (dat margin-left/right = 0 rieng) cho CA 2, dam bao ep bang nhau tuyet doi bang cung
   1 co che, khong con phu thuoc hanh vi margin khac nhau giua cac loai the.
   !important BAT BUOC tren padding/margin: WC GOC co san 1 rule rieng cho tieu de nay (".woocommerce
   ul.products li.product .woocommerce-loop-product__title" — 4 class + 2 element, SPECIFICITY CAO
   HON rule 3 class cua plugin o day) dat "padding:.5em 0;margin:.5em 0;" (CHI co doc/duoi, khong co
   trai/phai) — thieu !important thi rule WC do THANG, tieu de mat han padding trai/phai da co y dinh
   dat o day, xac nhan qua DevTools tren production 08-2026. */
.wpds-productdetail ul.products .woocommerce-loop-product__title {
	font-size: 15px !important;
	font-weight: 600 !important;
	margin: 10px 0 4px !important;
	padding: 0 14px !important;
}
.wpds-productdetail ul.products .star-rating {
	margin: 0 !important;
	padding: 0 14px 4px !important;
}
.wpds-productdetail ul.products .price {
	display: block;
	font-size: 15px;
	margin: 0 0 4px !important;
	padding: 4px 14px !important;
}
/* Dong "Còn hàng"/"Hết hàng"/"Đặt trước" — <p> moi do Product_Detail_Extras::related_loop_stock_text()
   in ra (WC goc khong co san trong loop nay, xem docblock ham do), cung bang mau voi trang chi tiet
   chinh (".wpds-productdetail p.stock", xem render_stock_text()). */
.wpds-productdetail ul.products .wpds-pd-related-stock {
	margin: 0 14px 10px;
	font-size: 12px;
	font-weight: 600;
}
.wpds-productdetail ul.products .wpds-pd-related-stock.in-stock {
	color: #1a7f37;
}
.wpds-productdetail ul.products .wpds-pd-related-stock.out-of-stock {
	color: #d63638;
}
.wpds-productdetail ul.products .wpds-pd-related-stock.available-on-backorder {
	color: #b45309;
}
/* background/color: cung 2 bien CSS toan cuc voi 2 noi tren — xem Layouts_Options::addcart_color_vars_css(). */
.wpds-productdetail ul.products .button {
	display: block;
	box-sizing: border-box;
	width: calc(100% - 28px);
	margin: auto 14px 14px;
	text-align: center;
	padding: 10px 14px;
	background: var(--wpds-addcart-bg, #4f46e5);
	color: var(--wpds-addcart-color, #fff);
	border-radius: 8px;
	font-size: 13px;
	font-weight: 600;
	border: none;
	cursor: pointer;
	transition: filter .15s ease;
}
.wpds-productdetail ul.products .button:hover {
	filter: brightness(.9);
}
/* Badge "Mới" — <span> moi do Product_Detail_Extras::related_loop_new_badge() in ra (WC goc chi co
   san badge giam gia ".onsale", khong co khai niem "moi"), cung vi tri/hinh dang voi ".onsale" ngay
   duoi day (top:12px;left:12px, cung containing block la li.product) — CHI 1 trong 2 hien dong thoi,
   ham PHP tu bo qua khi san pham dang giam gia nen khong can CSS loai tru rieng. */
.wpds-productdetail ul.products li.product .wpds-pd-related-badge-new {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	background: #4f46e5;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 3px 9px;
	border-radius: 999px;
	line-height: 1.4;
}
.wpds-productdetail h2 {
	font-size: 20px;
	font-weight: 700;
}

.wpds-productdetail-v1 {
	max-width: 760px;
	margin: 0 auto;
}
/* v2 — "Gallery trái": dua .flex-control-thumbs (thumbnail nav mac dinh cua WC, JS flexslider) sang
   BEN TRAI anh chinh thay vi nam ngang ben duoi. Container/gallery max-width rieng (rong hon v1) xem
   khoi CSS @media(min-width:900px) trong class-layouts-preview.php — CHI preview, khong dua vao day
   (day la CSS dung CHUNG ca site that). */
.wpds-productdetail-v2 .woocommerce-product-gallery {
	display: flex !important;
	flex-direction: row-reverse !important;
	gap: 12px;
}
.wpds-productdetail-v2 .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
	flex: 1 1 auto !important;
	min-width: 0;
}
/* Nen the cot thumbnail — phan biet ro voi anh chinh, giong 1 "khay" rieng thay vi cac o thumbnail
   troi noi tu do. */
.wpds-productdetail-v2 .flex-control-thumbs {
	display: flex !important;
	flex-direction: column !important;
	width: 84px;
	flex-shrink: 0;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 8px;
	background: #f9fafb;
	border-radius: 10px;
}
.wpds-productdetail-v2 .flex-control-thumbs li {
	width: 100%;
	border-radius: 6px;
}
.wpds-productdetail-v2 .flex-control-thumbs img {
	width: 100%;
	border-radius: 6px;
	cursor: pointer;
}
/* Badge giam gia/"Mới"/nut "‹" chuyen anh — ca 3 deu position:absolute tinh theo CHINH
   ".woocommerce-product-gallery" (container flex BAO CA cot thumbnail LAN anh chinh, xem ghi chu
   trong assets/js/wpds-wc-single-product-preview.js va shortcodes.css o tren) — voi 4 bien the con
   lai, thumbnail nam BEN DUOI (khong chiem ngang) nen container va anh chinh trung mep trai, "left:
   12px" mac dinh tinh cho ca 2 deu dung. RIENG v2 (thumbnail o BEN TRAI, chiem 1 dai ngang), container
   rong hon anh chinh o phia trai — "left:12px" goc bi tinh tu mep trai CONTAINER (dang nam giua khu
   vuc thumbnail), khien badge/nut de nham len thumbnail thay vi anh chinh (xac nhan qua screenshot
   thuc te 08-2026). "left:92px" do NGUOI DUNG do truc tiep qua DevTools tren production (khop dung
   mep trai anh chinh — chinh xac hon tinh toan ly thuyet 84px cot thumb + padding + gap ban dau).
   CHI ap dung khi thumbnail con nam BEN CANH (>640px) — duoi 640px v2 tu chuyen ve xep chong (xem
   media query duoi day), luc do "left:12px" mac dinh lai dung nhu binh thuong. */
@media (min-width: 641px) {
	.wpds-productdetail-v2 .woocommerce-product-gallery > .onsale,
	.wpds-productdetail-v2 .woocommerce-product-gallery > .wpds-pd-badge-new {
		left: 92px !important;
	}
	.wpds-productdetail-v2 .wpds-pd-slide-prev {
		left: 92px !important;
	}
}
@media (max-width: 640px) {
	.wpds-productdetail-v2 .woocommerce-product-gallery {
		flex-direction: column !important;
	}
	.wpds-productdetail-v2 .flex-control-thumbs {
		flex-direction: row !important;
		width: 100%;
	}
}

/* v3 — "Gallery dưới": TUNG la bo cuc xep chong rieng (anh tren, thong tin duoi) — theo yeu cau
   (08-2026) doi han sang giong HET v1 "Mặc định" (anh lon ben trai, thong tin ben phai), bo cuc 2 cot
   dung CHUNG khoi CSS @media(min-width:900px) trong class-layouts-preview.php (da them ".wpds-
   productdetail-v3" vao do) — khong con CSS rieng o day nua, ten "Gallery dưới" gio chi con la nhan
   phan biet luu tru (variant=3), khong phan anh dung bo cuc thuc te hien thi. */

/* Tab "Mô tả sản phẩm / Đánh giá" — KHONG doi logic tab (WooCommerce da tu render qua
   woocommerce_product_tabs/click-switch cua assets/js/wpds-wc-single-product-preview.js), chi
   RESTYLE. Truoc day CHI ap dung cho ".wpds-productdetail-v4" ("Tab thông tin") — cac bien the con
   lai (v1/v2/v3/v5) hien tab tho, khong border/mau (dung CSS mac dinh trinh duyet), la 1 trong may
   ly do giao dien "tho" so voi mockup tham chieu — nay dung CHUNG ".wpds-productdetail" cho MOI bien
   the, v4 chi con giu rieng max-width (khoi ben duoi). Rieng khoang cach/duong ke phia TREN khu vuc
   tab (margin-top 32px + border-top 2px + padding-top 20px, dung chung ca 5 bien the) da BO theo yeu
   cau truc tiep 08-2026 — v4 vi vay cung mat luon khoang dem/duong ke do phia tren the tab rieng cua
   no (khong tu khai bao lai, xem ".wpds-productdetail-v4 .woocommerce-tabs" o duoi — chi con
   background/border/padding CUA CHINH the, khong co margin-top). */
.wpds-productdetail-v4 {
	max-width: 900px;
	margin: 0 auto;
}
.wpds-productdetail .woocommerce-tabs ul.tabs,
.wpds-productdetail ul.wc-tabs {
	display: flex !important;
	gap: 4px;
	list-style: none !important;
	margin: 0 0 20px !important;
	padding: 0 !important;
	border-bottom: 1px solid #e5e7eb;
}
.wpds-productdetail .woocommerce-tabs ul.tabs li,
.wpds-productdetail ul.wc-tabs li {
	margin: 0 !important;
}
.wpds-productdetail .woocommerce-tabs ul.tabs li a,
.wpds-productdetail ul.wc-tabs li a {
	display: inline-block;
	padding: 10px 18px;
	font-weight: 600;
	text-decoration: none;
	color: #6b7280;
	border-bottom: 2px solid transparent;
}
.wpds-productdetail .woocommerce-tabs ul.tabs li.active a,
.wpds-productdetail ul.wc-tabs li.active a {
	color: #4f46e5;
	border-bottom-color: #4f46e5;
}
/* v4 rieng: ca KHOI tab (nut chuyen + noi dung ben duoi) boc trong 1 "the" trang rieng biet — vien +
   do bong nhe + bo goc lon — thay vi chi noi tiep truc tiep vao nen trang trang nhu 4 bien the kia
   (truoc day CHI khac o kieu tab, phan NOI DUNG ben duoi van y het cac bien the con lai — theo yeu
   cau "khác biệt với các layout còn lại" 08-2026, tach hoan toan phan tab thanh 1 khoi rieng, ghi de
   border-top/margin-top cua khoi CHUNG o tren). */
.wpds-productdetail-v4 .woocommerce-tabs,
.wpds-productdetail-v4 .wc-tabs-wrapper {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-top: 1px solid #e5e7eb;
	border-radius: 16px;
	padding: 24px;
	box-shadow: 0 4px 16px rgba(17, 24, 39, .05);
}
/* v4 rieng: kieu tab "vien nen" (pill/segmented control, khong con la gach chan don gian nhu 4 bien
   the kia) — de "Tab thông tin" thuc su noi bat/khac biet, dung voi ten goi cua no, thay vi chi hon
   v1/v2/v3/v5 o mot chut max-width nhu truoc day (2 ban truoc gan nhu GIONG HET nhau trong preview).
   RESET TRIET DE tung thuoc tinh box-model (width/flex/padding/margin) tren CA 3 tang (ul/li/a) bang
   !important — ban dau chi doi vai thuoc tinh (padding/border-radius) nen tab "Đánh giá (0)" (chu dai
   hon "Mô tả") bi 1 rule width/flex nao do cua WC goc (khong ro rule chinh xac nao, do khong doc
   truc tiep duoc woocommerce.css that trong moi truong dev) keo gian thanh 1 khoi vuong to xau, khong
   con dang pill gon nhu tab con lai — xac nhan qua DevTools tren production 08-2026. RESET het tat ca
   thuoc tinh lien quan thay vi doan mo hinh dung rule nao dang xung dot, dam bao ket qua on dinh du
   WC ban nao thay doi CSS goc cua no sau nay. */
.wpds-productdetail-v4 .woocommerce-tabs ul.tabs,
.wpds-productdetail-v4 ul.wc-tabs {
	display: inline-flex !important;
	flex-wrap: nowrap !important;
	width: auto !important;
	gap: 4px !important;
	padding: 4px !important;
	border-bottom: none !important;
	list-style: none !important;
	margin: 0 0 20px !important;
}
/* WC GOC (.woocommerce div.product .woocommerce-tabs ul.tabs li — khong scope rieng, khong sua duoc
   truc tiep file woocommerce.css) tu ve 1 vien 1px mau tim nhat #cfc8d8 + bo goc 4px CHI o 2 goc TREN
   (4px 4px 0 0, kieu tab "gan lien" vao khung noi dung o duoi) tren CHINH <li> — kieu pill/segmented
   moi nay khong can ca 2, ghi de bang !important qua chinh selector cua plugin (specificity/thu tu
   nap sau woocommerce.css). */
.wpds-productdetail-v4 .woocommerce-tabs ul.tabs li,
.wpds-productdetail-v4 ul.wc-tabs li {
	flex: 0 0 auto !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	border: none !important;
	border-radius: 9px !important;
}
/* WC goc gan san ::before tren CHINH <ul class="tabs wc-tabs"> (khong phai tren tung <li> — da xu ly
   rieng ben duoi) VA tren MOI <li> tab (thuong dung lam "notch"/mui ten tam giac chi xuong tab dang
   active, hoac clearfix cu) — voi kieu pill/segmented moi nay khong con can ca 2, de nguyen se hien 1
   hinh tam giac/khoang trong thua — bo han theo yeu cau, xac nhan qua DevTools tren production
   08-2026. */
.wpds-productdetail-v4 .woocommerce-tabs ul.tabs::before,
.wpds-productdetail-v4 ul.wc-tabs::before,
.wpds-productdetail-v4 .woocommerce-tabs ul.tabs li::before,
.wpds-productdetail-v4 .woocommerce-tabs ul.tabs li::after,
.wpds-productdetail-v4 ul.wc-tabs li::before,
.wpds-productdetail-v4 ul.wc-tabs li::after {
	content: none !important;
	display: none !important;
}
.wpds-productdetail-v4 .woocommerce-tabs ul.tabs li a,
.wpds-productdetail-v4 ul.wc-tabs li a {
	display: inline-block !important;
	width: auto !important;
	padding: 8px 20px !important;
	border-radius: 9px !important;
	border-bottom: none !important;
	white-space: nowrap !important;
	font-weight: 600 !important;
	color: #6b7280 !important;
	text-decoration: none !important;
}
.wpds-productdetail-v4 .woocommerce-tabs ul.tabs li.active a,
.wpds-productdetail-v4 ul.wc-tabs li.active a {
	background: #4f46e5 !important;
	color: #fff !important;
}

/* v5 — "Gallery Slider": khong tu viet engine slider (markup that su cua WC gallery — flexslider/
   photoswipe — chua xac nhan duoc tren ban WC cai that, xem docblock variant-5.php) — chi nang cap
   thi giac de gallery co CAM GIAC 1 slider ro rang, dung nguyen hanh vi click/vuot GOC cua WC. Con
   tro "grab" tren anh chinh + thumbnail to hon, vien tron khi active (thay vi mo/khong mo don gian)
   — de CAM GIAC "slider" ro hon, khac biet voi dai thumbnail vuong vuc cua cac bien the kia. */
.wpds-productdetail-v5 .woocommerce-product-gallery__wrapper {
	border-radius: 10px;
	overflow: hidden;
	cursor: grab;
}
.wpds-productdetail-v5 .flex-control-thumbs {
	display: flex !important;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	margin: 14px 0 0;
	padding: 0;
}
.wpds-productdetail-v5 .flex-control-thumbs li {
	width: 76px !important;
	height: 76px !important;
	flex: 0 0 76px !important;
	border-radius: 50% !important;
	overflow: hidden;
}
.wpds-productdetail-v5 .flex-control-thumbs li.flex-active {
	border-color: #4f46e5 !important;
	box-shadow: 0 0 0 2px #eef2ff;
}
.wpds-productdetail-v5 .flex-control-thumbs img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	cursor: pointer;
	transition: opacity .15s ease;
}
.wpds-productdetail-v5 .flex-control-thumbs img:not(.flex-active) {
	opacity: .6;
}

/* ================================================================================================
   WPDS FOOTER — rewrite hoan toan 08-2026 (xem includes/render/footers/ — variant-{1,2,3}.php + 7
   partial dung chung _logo/_links/_social/_contact/_newsletter/_copyright/_payment.php). Ca 3 bien
   the doc CHUNG 1 nguon noi dung (Layouts_Options::footer_settings()) va tu khai bao 6 mau qua CSS
   custom property RIENG tren chinh <footer> (--wpds-f-bg/-text/-muted/-link/-hover/-border, xem
   variant-N.php) — cung tu duy voi khoi "WPDS HEADER" o tren, khong con "trung tinh theo theme" nhu
   thiet ke cu (block .wpds-footer-inner/-columns/-logo/-nav/-bar da GO BO HAN, khong con noi nao
   include cac partial cu do — Footer da chuyen hoan toan sang 3 variant-N.php + 7 partial moi).
   ================================================================================================ */

.wpds-footer-01,
.wpds-footer-02,
.wpds-footer-03 {
	background: var( --wpds-f-bg, #0f172a );
	color: var( --wpds-f-text, #fff );
	font-size: 14px;
	line-height: 1.6;
}
.wpds-footer-01 a,
.wpds-footer-02 a,
.wpds-footer-03 a { color: var( --wpds-f-link, #4f46e5 ); text-decoration: none; }
.wpds-footer-01 a:hover,
.wpds-footer-02 a:hover,
.wpds-footer-03 a:hover { color: var( --wpds-f-hover, #818cf8 ); }

.wpds-footer-brand { display: inline-flex; align-items: center; gap: 8px; }
/* max-height 40px -> 56px (08-2026, theo yeu cau truc tiep lap lai "chỉnh lại logo hiện tại nhỏ quá"
   — lan truoc chi them dong "khuyến nghị" o admin, CHUA thuc su tang kich thuoc hien thi that; lan
   nay tang that). Cap nhat DONG BO voi footer_logo_size_hint() (class-admin-pages.php). */
.wpds-footer-brand-img { max-height: 56px; width: auto; display: block; }
.wpds-footer-brand-img--mobile { display: none; }
.wpds-footer-brand-placeholder,
.wpds-footer-brand-text { font-size: 1.15em; font-weight: 700; color: var( --wpds-f-text, #fff ); }
.wpds-footer-brand-desc { margin: 10px 0 0; color: var( --wpds-f-muted, #94a3b8 ); max-width: 320px; }

.wpds-footer-col-title { margin: 0 0 12px; font-size: .95em; font-weight: 700; color: var( --wpds-f-text, #fff ); }
.wpds-footer-col-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.wpds-footer-col-list a,
.wpds-footer-contact-list a,
.wpds-footer-contact-list span { color: var( --wpds-f-muted, #94a3b8 ); }
.wpds-footer-col-list a:hover { color: var( --wpds-f-link, #4f46e5 ); }
.wpds-footer-links-empty { color: var( --wpds-f-muted, #94a3b8 ); font-style: italic; }

.wpds-footer-contact-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.wpds-footer-contact-list li { display: flex; align-items: flex-start; gap: 8px; }
.wpds-footer-contact-list svg { flex: 0 0 auto; margin-top: 3px; color: var( --wpds-f-muted, #94a3b8 ); }
.wpds-footer-contact-list a:hover { color: var( --wpds-f-link, #4f46e5 ); }

.wpds-footer-social { display: flex; gap: 10px; list-style: none; margin: 12px 0 0; padding: 0; }
.wpds-footer-social a { color: var( --wpds-f-muted, #94a3b8 ); display: flex; transition: color .15s ease; }
.wpds-footer-social a:hover { color: var( --wpds-f-link, #4f46e5 ); }

.wpds-footer-newsletter-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; max-width: 1200px; margin: 0 auto; padding: 20px 24px; }
.wpds-footer-newsletter-text { display: flex; align-items: flex-start; gap: 10px; }
.wpds-footer-newsletter-text svg { flex: 0 0 auto; margin-top: 2px; }
.wpds-footer-newsletter-text strong { display: block; color: var( --wpds-f-text, #fff ); }
.wpds-footer-newsletter-text p { margin: 2px 0 0; color: var( --wpds-f-muted, #94a3b8 ); font-size: .92em; }
.wpds-footer-newsletter-form { display: flex; gap: 8px; flex-wrap: wrap; }
.wpds-footer-newsletter-form input {
	padding: 9px 14px;
	border-radius: 6px;
	border: 1px solid var( --wpds-f-border, #1e293b );
	background: rgba( 255, 255, 255, .06 );
	color: var( --wpds-f-text, #fff );
	min-width: 220px;
}
.wpds-footer-newsletter-form input::placeholder { color: var( --wpds-f-muted, #94a3b8 ); }
.wpds-footer-newsletter-form button {
	padding: 9px 18px;
	border-radius: 6px;
	border: none;
	background: var( --wpds-f-link, #4f46e5 );
	color: #fff;
	font-weight: 600;
	cursor: pointer;
}
.wpds-footer-newsletter-form button:hover { background: var( --wpds-f-hover, #818cf8 ); }

.wpds-footer-copyright { margin: 0; color: var( --wpds-f-muted, #94a3b8 ); font-size: .88em; }
.wpds-footer-copyright--left { text-align: left; }
.wpds-footer-copyright--center { text-align: center; }
.wpds-footer-copyright--right { text-align: right; }

.wpds-footer-payment { display: flex; gap: 8px; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.wpds-footer-payment li {
	padding: 4px 10px;
	border: 1px solid var( --wpds-f-border, #1e293b );
	border-radius: 4px;
	font-size: .78em;
	font-weight: 600;
	color: var( --wpds-f-muted, #94a3b8 );
}

/* ---- Footer 1 — Footer Classic: 4 cot (brand | nhom Liên kết | Liên hệ), bottom bar 2 phia ---- */
.wpds-footer-01-main-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 48px 24px;
	display: grid;
	/* BUG THAT (nguoi dung bao qua screenshot: "4 cột mà, đây đang hiển thị 1 cột") — truoc dung
	   "1.4fr repeat(auto-fit, minmax(140px,1fr))", tron 1 track fr TINH (ngoai repeat) voi auto-fit
	   BEN TRONG cung 1 khai bao: so track auto-fit tinh duoc PHAI biet truoc khong gian trong con lai
	   SAU KHI tru phan cua track 1.4fr, nhung 1.4fr chinh no lai chi tinh duoc SAU KHI biet tong so
	   track — vong lap phu thuoc nay khien 1 so trinh duyet coi ca khai bao la KHONG HOP LE, roi ve
	   "grid-template-columns:none" (khong track nao ca) — luc do grid tu dong xep MOI phan tu vao 1
	   COT DUY NHAT (moi phan tu 1 hang rieng, chiem tron chieu rong) — dung y het trieu chung "4 cột
	   mà đang hiển thị 1 cột". Fix: doi auto-fit (dem TU DONG) sang repeat(3,...) (dem CO DINH, khop
	   dung 3 nhom lien ket seed mac dinh) — repeat() voi SO NGUYEN tinh duoc ket hop an toan voi fr o
	   track khac, khong con vong lap phu thuoc nao. */
	grid-template-columns: 1.4fr repeat( 3, 1fr );
	gap: 32px;
}
.wpds-footer-01-bottom { border-top: 1px solid var( --wpds-f-border, #1e293b ); }
.wpds-footer-01-bottom-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 18px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}

/* ---- Footer 2 — Footer Modern: newsletter noi bat rieng khung, tieu de cot VIET HOA, khoang cach rong ---- */
.wpds-footer-02-main-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 56px 24px;
	display: grid;
	/* Cung ly do voi .wpds-footer-01-main-inner o tren (xem chu thich do — fr tinh ngoai repeat() +
	   auto-fit trong cung 1 khai bao tao vong lap phu thuoc, KHONG dung auto-fit o day). */
	grid-template-columns: 1.4fr repeat( 3, 1fr );
	gap: 40px;
}
.wpds-footer-02 .wpds-footer-col-title { text-transform: uppercase; letter-spacing: .04em; font-size: .82em; }
.wpds-footer-02 .wpds-footer-newsletter-inner {
	background: rgba( 255, 255, 255, .04 );
	border-radius: 12px;
	padding: 24px;
	margin: 24px auto 0;
}
.wpds-footer-02-bottom { border-top: 1px solid var( --wpds-f-border, #1e293b ); }
.wpds-footer-02-bottom-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}

/* Bản đồ (08-2026, rewrite theo yêu cầu trực tiếp "vào khối luôn bỏ 1 cái", rồi mở rộng theo yêu cầu
   tiếp "thêm cho cả 3 mẫu Footer") — bản đồ là 1 CỘT ngay trong hàng cột của cả 3 biến thể (xem
   variant-{1,2,3}.php), KHÔNG phải dải riêng full-width bên dưới — nên bỏ hẳn max-width/margin
   auto/padding canh giữa kiểu "băng ngang", để nguyên .wpds-footer-map là 1 khối bình thường ăn theo
   kích thước cột cha (.wpds-footer-col) như mọi cột khác. */
.wpds-footer-map-embed {
	width: 100%;
	height: 200px;
	border: 0;
	border-radius: 8px;
	display: block;
}

/* ---- Footer 3 — Footer Minimal: gon gang, logo+social can giua, cac khoi xep ngang, spacing hep ---- */
.wpds-footer-03-inner { max-width: 1200px; margin: 0 auto; padding: 28px 24px; }
.wpds-footer-03-brand { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; margin-bottom: 20px; }
.wpds-footer-03-links {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 140px, 1fr ) );
	gap: 20px;
	padding: 20px 0;
	border-top: 1px solid var( --wpds-f-border, #1e293b );
	border-bottom: 1px solid var( --wpds-f-border, #1e293b );
}
.wpds-footer-03-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; padding-top: 16px; }

@media ( max-width: 1024px ) {
	.wpds-footer-01-main-inner,
	.wpds-footer-02-main-inner { grid-template-columns: 1fr 1fr; }
	.wpds-footer-03-links { grid-template-columns: repeat( 2, 1fr ); }
}
@media ( max-width: 640px ) {
	.wpds-footer-01-main-inner,
	.wpds-footer-02-main-inner,
	.wpds-footer-03-links { grid-template-columns: 1fr; }
	.wpds-footer-01-bottom-inner,
	.wpds-footer-02-bottom-inner,
	.wpds-footer-03-bottom { flex-direction: column; text-align: center; }
	.wpds-footer-brand-img--desktop { display: none; }
	.wpds-footer-brand-img--mobile { display: block; }
	.wpds-footer-newsletter-inner { flex-direction: column; align-items: flex-start; }
	.wpds-footer-newsletter-form { width: 100%; }
	.wpds-footer-newsletter-form input { flex: 1 1 auto; min-width: 0; }
	.wpds-footer-map-embed { height: 220px; }
}

/* ================================================================================================
   WPDS HEADER — rewrite hoan toan 08-2026 (xem includes/render/headers/ — variant-{1,2,3}.php +
   3 partial dung chung _logo/_menu/_actions.php). Ca 3 bien the doc CHUNG 1 nguon noi
   dung (Layouts_Options::header_settings()) va tu khai bao 8 mau qua CSS custom property RIENG tren
   chinh <header> (--wpds-h-primary/-secondary/-text/-muted/-bg/-border/-hover/-active, xem
   variant-N.php) — KHONG con "trung tinh theo theme" nhu 3 bien the cu (chi border/spacing, khong mau
   nen/chu) — thiet ke moi CHU DONG dat mau, giong 1 header sanpham/SaaS thuc thu hon la 1 khoi trung
   tinh chen vao theme bat ky.
   ================================================================================================ */

.wpds-header-01,
.wpds-header-02,
.wpds-header-03 {
	background: var( --wpds-h-bg, #fff );
	color: var( --wpds-h-text, #111827 );
	border-bottom: 1px solid var( --wpds-h-border, #e5e7eb );
	font-family: inherit;
}
.wpds-header--sticky {
	position: sticky;
	top: 0;
	z-index: 100;
}
.wpds-header--shadow-light   { box-shadow: 0 1px 6px rgba( 17, 24, 39, .06 ); }
.wpds-header--shadow-medium  { box-shadow: 0 4px 16px rgba( 17, 24, 39, .1 ); }
.wpds-header--shadow-strong  { box-shadow: 0 8px 28px rgba( 17, 24, 39, .16 ); }
/* Hieu ung khi cuon — chi co tac dung KET HOP voi ".wpds-header--scrolled" (JS them sau khi cuon qua
   40px, xem _scroll-script.php); "shrink" giam padding doc, "shrink_recolor" giam padding VA doi sang
   mau chu dao lam nen (dao mau — chu/icon tu doi theo qua currentColor, xem cac quy tac ben duoi). */
.wpds-header--scroll-shrink.wpds-header--scrolled .wpds-header-01-bar,
.wpds-header--scroll-shrink.wpds-header--scrolled .wpds-header-02-top,
.wpds-header--scroll-shrink.wpds-header--scrolled .wpds-header-02-bottom,
.wpds-header--scroll-shrink.wpds-header--scrolled .wpds-header-03-bar {
	padding-top: 6px;
	padding-bottom: 6px;
}
.wpds-header--scroll-shrink_recolor.wpds-header--scrolled {
	background: var( --wpds-h-primary, #4f46e5 );
	color: #fff;
	border-bottom-color: transparent;
}
.wpds-header--scroll-shrink_recolor.wpds-header--scrolled .wpds-header-01-bar,
.wpds-header--scroll-shrink_recolor.wpds-header--scrolled .wpds-header-02-top,
.wpds-header--scroll-shrink_recolor.wpds-header--scrolled .wpds-header-02-bottom,
.wpds-header--scroll-shrink_recolor.wpds-header--scrolled .wpds-header-03-bar {
	padding-top: 6px;
	padding-bottom: 6px;
}
.wpds-header--scroll-shrink_recolor.wpds-header--scrolled .wpds-header-menu-link.is-current {
	color: #fff;
	text-decoration: underline;
}
.wpds-header-01,
.wpds-header-02,
.wpds-header-03 {
	transition: background-color .2s ease, box-shadow .2s ease;
}

/* ---------------------------------------------------------------- Logo/thuong hieu (_logo.php) */
.wpds-header-brand {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	color: inherit;
	flex: 0 0 auto;
}
.wpds-header-brand-img {
	max-height: 44px;
	width: auto;
	display: block;
}
.wpds-header-brand-placeholder {
	font-size: .85em;
	font-weight: 600;
	color: var( --wpds-h-muted, #6b7280 );
	border: 1px dashed var( --wpds-h-border, #e5e7eb );
	border-radius: 6px;
	padding: 6px 10px;
}
.wpds-header-brand-text {
	font-size: 1.2em;
	font-weight: 700;
}

/* ---------------------------------------------------------------- Menu (_menu.php) */
.wpds-header-menu-empty {
	margin: 0;
	font-size: .85em;
	color: var( --wpds-h-muted, #6b7280 );
	font-style: italic;
}
.wpds-header-menu ul {
	display: flex;
	align-items: center;
	gap: 24px;
	list-style: none;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
}
.wpds-header-menu-link {
	text-decoration: none;
	color: inherit;
	font-weight: 500;
	font-size: .95em;
	transition: color .15s ease;
}
.wpds-header-menu-link:hover {
	color: var( --wpds-h-hover, #4338ca );
}
.wpds-header-menu-link.is-current {
	color: var( --wpds-h-active, #4f46e5 );
	font-weight: 700;
}

/* ---------------------------------------------------------------- Actions (_actions.php) */
.wpds-header-actions {
	display: flex;
	align-items: center;
	gap: 14px;
	flex: 0 0 auto;
}
.wpds-header-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 8px;
	border: none;
	background: transparent;
	color: inherit;
	cursor: pointer;
	text-decoration: none;
	position: relative;
}
.wpds-header-icon-btn:hover {
	background: var( --wpds-h-border, #e5e7eb );
}
.wpds-header-search {
	position: relative;
}
.wpds-header-search-label {
	display: flex;
	align-items: center;
	width: 100%;
}
/* "Tìm kiếm cho:" — nhan that trong DOM cho trinh doc man hinh (_search-form.php), CHI an thi giac.
   WordPress core KHONG tu dinh nghia san class ".screen-reader-text" (quy uoc theme tu lam), scope
   rieng trong .wpds-header-search de khong dung cham gi ngoai widget nay — dung ky thuat giong
   ".wpds-sc-wc .screen-reader-text" o tren dau file. */
.wpds-header-search .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect( 0, 0, 0, 0 );
	clip-path: inset( 50% );
	border: 0;
	word-wrap: normal !important;
}
.wpds-header-search--inline .search-form {
	display: flex;
	align-items: center;
}
.wpds-header-search--inline .search-field {
	border: 1px solid var( --wpds-h-border, #e5e7eb );
	border-radius: 999px;
	padding: 6px 14px;
	font-size: .9em;
	min-width: 180px;
}
.wpds-header-search-panel {
	position: absolute;
	top: 100%;
	right: 0;
	margin-top: 8px;
	background: var( --wpds-h-bg, #fff );
	border: 1px solid var( --wpds-h-border, #e5e7eb );
	border-radius: 10px;
	box-shadow: 0 8px 24px rgba( 17, 24, 39, .12 );
	padding: 10px;
	z-index: 20;
	min-width: 240px;
}
.wpds-header-search-panel .search-form {
	display: flex;
	gap: 6px;
}
.wpds-header-search-panel .search-field {
	flex: 1 1 auto;
	border: 1px solid var( --wpds-h-border, #e5e7eb );
	border-radius: 6px;
	padding: 6px 10px;
	font-size: .9em;
}
.wpds-header-wishlist-count,
.wpds-header-cart-count {
	position: absolute;
	top: -2px;
	right: -2px;
	min-width: 16px;
	height: 16px;
	padding: 0 3px;
	border-radius: 999px;
	background: var( --wpds-h-primary, #4f46e5 );
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	line-height: 16px;
	text-align: center;
}
.wpds-header-account {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	width: auto;
	padding: 0 8px;
	text-decoration: none;
	color: inherit;
}
.wpds-header-account-text {
	font-size: .85em;
	font-weight: 600;
}
.wpds-header-cart {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	position: relative;
	padding: 6px 12px;
	border-radius: 999px;
	background: var( --wpds-h-primary, #4f46e5 );
	color: #fff;
	text-decoration: none;
	font-size: .85em;
	font-weight: 600;
}
.wpds-header-cart .wpds-header-cart-count {
	position: static;
	background: rgba( 255, 255, 255, .25 );
}
.wpds-header-cart-total {
	opacity: .9;
}

/* ---------------------------------------------------------------- Hamburger (mobile) */
.wpds-header-hamburger {
	display: none;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: none;
	background: transparent;
	color: inherit;
	cursor: pointer;
	flex: 0 0 auto;
}

/* ================================================================ Header 1 — "Thanh menu ngang" */
.wpds-header-01-bar {
	max-width: 1280px;
	margin: 0 auto;
	padding: 14px 24px;
	display: flex;
	align-items: center;
	gap: 24px;
}
.wpds-header-01-bar .wpds-header-menu {
	flex: 1 1 auto;
	display: flex;
	justify-content: center;
}

/* ================================================================ Header 2 — "Logo giữa" */
.wpds-header-02-top {
	max-width: 1280px;
	margin: 0 auto;
	padding: 14px 24px;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 12px;
}
.wpds-header-02-left,
.wpds-header-02-right {
	display: flex;
	align-items: center;
	gap: 10px;
}
.wpds-header-02-left {
	justify-self: start;
}
.wpds-header-02-right {
	justify-self: end;
}
.wpds-header-02-top .wpds-header-brand {
	justify-self: center;
}
/* Icon tim kiem gio nam ben trai (canh hamburger) — panel xo xuong mo ve BEN PHAI (trong header) thay
   vi ben trai nhu mac dinh (danh cho khi search nam o canh phai, xem quy tac .wpds-header-search-panel
   dung chung o tren), tranh bi tran ra ngoai vien trai man hinh. */
.wpds-header-02-left .wpds-header-search-panel {
	left: 0;
	right: auto;
}
.wpds-header-02-bottom {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 24px 14px;
	display: flex;
	justify-content: center;
	border-top: 1px solid var( --wpds-h-border, #e5e7eb );
	padding-top: 12px;
}

/* ================================================================ Header 3 — "Icon menu dọc" */
.wpds-header-03-bar {
	max-width: 1280px;
	margin: 0 auto;
	padding: 14px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.wpds-header-03-right {
	display: flex;
	align-items: center;
	gap: 10px;
	flex: 0 0 auto;
}
.wpds-header-03-menu-group {
	position: relative;
}
.wpds-header-03-menu-toggle.is-open {
	background: var( --wpds-h-border, #e5e7eb );
}
/* Card dropdown neo duoi nut icon menu, giong het co che ".wpds-header-search-panel" (position:
   absolute tren 1 ancestor position:relative) — KHONG che het man hinh, dong lai khi bam lai icon
   (".is-nav-open" tren <header>, xem docblock variant-3.php). LUON o trong DOM/luong layout (khong
   con "display:none/block") — theo yeu cau truc tiep "hiệu ứng mượt mượt": doi sang opacity + dich
   nhe theo truc Y + visibility (opacity/transform KHONG the animate qua display:none<->block, doi
   sang ky thuat nay de co transition mo/dong muot), "visibility:hidden" + "pointer-events:none" khi
   dong de khong chiem tuong tac/tab-order dung khi dang an (JS khong doi, van 1 dong toggle class
   "is-nav-open" duy nhat tren <header>). */
.wpds-header-03-menu-panel {
	position: absolute;
	top: 100%;
	right: 0;
	margin-top: 8px;
	background: var( --wpds-h-bg, #fff );
	border: 1px solid var( --wpds-h-border, #e5e7eb );
	border-radius: 10px;
	box-shadow: 0 8px 24px rgba( 17, 24, 39, .12 );
	padding: 10px;
	z-index: 30;
	min-width: 220px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY( -6px ) scale( .98 );
	transform-origin: top right;
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.wpds-header-03.is-nav-open .wpds-header-03-menu-panel {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY( 0 ) scale( 1 );
}
.wpds-header-03-menu-panel .wpds-header-menu ul {
	flex-direction: column;
	align-items: stretch;
	gap: 2px;
	flex-wrap: nowrap;
}
.wpds-header-03-menu-panel .wpds-header-menu-link {
	display: block;
	padding: 8px 10px;
	border-radius: 8px;
	white-space: nowrap;
}
.wpds-header-03-menu-panel .wpds-header-menu-link:hover {
	background: var( --wpds-h-border, #e5e7eb );
}
.wpds-header-03-menu-panel .wpds-header-menu-empty {
	padding: 6px 10px;
	white-space: normal;
}

/* ================================================================ Responsive (≤768px, ca 3 bien the) */
@media ( max-width: 768px ) {
	.wpds-header-hamburger {
		display: inline-flex;
	}
	/* Header 1/2: menu ngang tro thanh dropdown an di, chi hien khi bam hamburger ("is-nav-open" tren
	   <header>, xem _scroll-script.php). Nhan chu cua cart/account/hotline tu an di duoi mobile (spec
	   "☰ LOGO 🔍 🛒" — chi con icon), giu nguyen icon + so luong that. */
	.wpds-header-01-bar .wpds-header-menu,
	.wpds-header-02-bottom {
		display: none;
	}
	.wpds-header-01.is-nav-open .wpds-header-01-bar .wpds-header-menu,
	.wpds-header-02.is-nav-open .wpds-header-02-bottom {
		display: block;
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		background: var( --wpds-h-bg, #fff );
		border-top: 1px solid var( --wpds-h-border, #e5e7eb );
		border-bottom: 1px solid var( --wpds-h-border, #e5e7eb );
		box-shadow: 0 8px 24px rgba( 17, 24, 39, .1 );
		padding: 16px 24px;
		z-index: 30;
	}
	.wpds-header-01,
	.wpds-header-02 {
		position: relative;
	}
	.wpds-header-01.is-nav-open .wpds-header-menu ul,
	.wpds-header-02.is-nav-open .wpds-header-menu ul {
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
	}
	.wpds-header-01 .wpds-header-cart-text,
	.wpds-header-01 .wpds-header-account-text,
	.wpds-header-02 .wpds-header-cart-text,
	.wpds-header-02 .wpds-header-account-text,
	.wpds-header-03 .wpds-header-cart-text,
	.wpds-header-03 .wpds-header-account-text {
		display: none;
	}
	.wpds-header-01 .wpds-header-cart,
	.wpds-header-02 .wpds-header-cart,
	.wpds-header-03 .wpds-header-cart {
		padding: 8px;
		border-radius: 999px;
	}
	/* Header 3 (icon menu doc): panel dropdown neo duoi nut co the tran ra ngoai vien phai man hinh hep
	   (min-width:220px trong khi vien man hinh gan sat nut) — thu hep lai, khong con canh right:0 tuyet
	   doi nua ma keo vao trong 1 khoang an toan. */
	.wpds-header-03-menu-panel {
		right: -8px;
		min-width: 200px;
	}
}
@media ( prefers-reduced-motion: reduce ) {
	.wpds-header-01,
	.wpds-header-02,
	.wpds-header-03,
	.wpds-header-03-menu-panel {
		transition: none;
	}
}

/* ================================================================================================
   Chia sẻ + Yêu thích (Product_Detail_Extras) — WooCommerce goc khong co san 2 tinh nang nay.
   "So sánh" BO HAN (lan 2, xem changelog WPDS_VERSION 0.20.5 + docblock class-product-detail-extras.php),
   khong con markup. "Yêu thích" la logic THAT (localStorage, assets/js/wpds-wc-product-extras.js) —
   nut o day la <button>, khong phai <a href="#">, nen can tu RESET border/background/font mac dinh
   cua trinh duyet (":not(a)" khong dung duoc vi selector nay ap dung CHUNG ca .wpds-pd-share-link
   duoi day, cung co the la <button> — dat truc tiep tren ca 2 loai, vo hai voi <a>).
   ================================================================================================ */

.wpds-pd-actions {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	margin: 16px 0 0;
}
.wpds-pd-action-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: none;
	padding: 0;
	font: inherit;
	color: #374151;
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}
.wpds-pd-action-link:hover {
	color: #4f46e5;
}
/* Trang thai "da them" — icon dac (♥) + doi mau nhan dien, cap nhat boi wpds-wc-product-extras.js
   khi ID san pham nam trong localStorage. */
.wpds-pd-action-wishlist.wpds-pd-action-wishlist-active {
	color: #e11d48;
}

.wpds-pd-extras {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	margin: 24px 0;
	padding: 16px 0;
	border-top: 1px solid #e5e7eb;
}
.wpds-pd-share {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.wpds-pd-share-label {
	color: #6b7280;
	font-size: 13px;
}
.wpds-pd-share-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #9ca3af;
	color: #fff;
	text-decoration: none;
	border: none;
	padding: 0;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: opacity .15s ease;
}
.wpds-pd-share-link:hover {
	opacity: .85;
}
/* Mau thuong hieu tung nen tang — thay bo Twitter/Pinterest/Email cu bang Zalo/TikTok/Instagram
   theo yeu cau (Facebook giu nguyen). Instagram dung gradient xap xi mau logo that (khong the dung
   chinh xac 100% vi day la CSS gradient, khong phai anh logo). */
.wpds-pd-share-fb { background: #1877f2; }
.wpds-pd-share-zalo { background: #0068ff; }
.wpds-pd-share-tiktok { background: #000; }
.wpds-pd-share-instagram { background: linear-gradient(45deg, #f9ce34, #ee2a7b 50%, #6228d7); }
/* Trang thai tam thoi "Đã sao chép liên kết" (TikTok/Instagram tren may khong ho tro Web Share API —
   xem wpds-wc-product-extras.js) — vien trang mo, khong doi mau nen (van nhan dien duoc nut nao). */
.wpds-pd-share-copied {
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px currentColor;
}

/* Badge "Mới" goc anh gallery — CHI ton tai trong preview builder (chen bang JS, xem
   assets/js/wpds-wc-single-product-preview.js), khong xuat hien tren site that (site that dung dung
   script goc cua WooCommerce, khong nap file JS nay). Dinh vi tren CHINH ".woocommerce-product-gallery"
   (da san position:relative tu CSS goc WC, xem ghi chu trong file JS), goc tren-TRAI. San pham CO
   ".onsale" (badge giam gia goc WC, CUNG o goc tren-trai) thi JS AN HAN badge nay (khong con day
   xuong duoi nhu ban truoc — theo yeu cau 08-2026, tranh 2 badge cung xuat hien nhin roi). Icon phong
   to (kinh lup) DA BO theo yeu cau 08-2026 (khong co lightbox that dang sau nen chi la trang tri thua). */
.wpds-pd-badge-new {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	background: #4f46e5;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	padding: 4px 12px;
	border-radius: 999px;
	line-height: 1.4;
}
/* Nut </> chuyen anh trai/phai de len anh chinh — CHI chen khi san pham co 2+ anh (xem JS, cung khoi
   voi dai thumbnail), theo dung anh mockup tham chieu (nut tron trang giua canh trai/phai anh). */
.wpds-pd-slide-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: none;
	background: rgba(255, 255, 255, .92);
	box-shadow: 0 1px 4px rgba(0, 0, 0, .15);
	font-size: 20px;
	line-height: 1;
	color: #374151;
	cursor: pointer;
}
.wpds-pd-slide-btn:hover {
	background: #fff;
}
.wpds-pd-slide-prev {
	left: 12px;
}
.wpds-pd-slide-next {
	right: 12px;
}

/* Dai thumbnail duoi anh chinh (assets/js/wpds-wc-single-product-preview.js chen khi san pham co 2+
   anh) — style NEN chung cho MOI bien the (v1/v3/v4 chua tung co CSS rieng cho ".flex-control-thumbs"
   — chi v2/v5 da co, xem 2 khoi CSS ben duoi). !important BAT BUOC: WooCommerce goc co san CSS rieng
   cho class dong bo "woocommerce-product-gallery--columns-N" tren .flex-control-thumbs/li (dinh kich
   thuoc % + float theo so cot da chon trong WC that, gio da khop dung selector du markup nay do JS
   plugin tu tao chu khong phai flexslider that) — specificity CAO HON selector don gian o day, thieu
   !important thumbnail se to bat thuong, xep dang luoi 3 cot thay vi 1 hang nho gon 64x64px, xac nhan
   tren production 08-2026.
   JS gio CHI in toi da 5 the <li> (4 anh dau + 1 o "+N" — xem MAX_VISIBLE_THUMBS trong file JS), nen
   BO han thanh cuon ngang (overflow-x/nowrap/scrollbar-width) theo yeu cau — 1 hang 5 o 64px + gap khop
   du trong khung, khong can cuon nua; giu flex-wrap:wrap chi de an toan tren man rat hep (mobile). */
.wpds-productdetail .flex-control-thumbs {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	list-style: none !important;
	margin: 12px 0 0 !important;
	padding: 0 !important;
	width: auto !important;
	float: none !important;
}
/* v1 rieng: an han dai thumbnail duoi anh chinh — theo yeu cau, de layout "Mặc định" khac biet ro
   voi "Gallery dưới" (v3, dung chinh dai nay lam diem khac biet) — chi con anh lon + 2 nut "‹ ›"
   chuyen anh, chuc nang chuyen anh VAN hoat dong binh thuong qua 2 nut do. BUG THAT (nguoi dung bao
   "chưa hoạt động"): rule nay TUNG dat truoc khoi ".wpds-productdetail .flex-control-thumbs" o tren
   (cung specificity 2 lop .class, ca 2 cung dung !important tren "display") — khi hoa 2 dieu kien do,
   CSS xu theo THU TU NGUON, rule "sau" luon thang rule "truoc" — khoi chung (o tren, dat display:flex)
   nam SAU nen luon de bep rule an rieng cua v1 (dat display:none), du no dung sau trong file. Chuyen
   rule nay xuong DUOI khoi chung de dao lai thu tu thang-thua, khong doi gi khac. */
.wpds-productdetail-v1 .flex-control-thumbs {
	display: none !important;
}
.wpds-productdetail .flex-control-thumbs li {
	position: relative;
	width: 64px !important;
	height: 64px !important;
	flex: 0 0 auto !important;
	border: 2px solid transparent;
	border-radius: 6px;
	overflow: hidden;
	cursor: pointer;
	float: none !important;
	margin: 0 !important;
}
.wpds-productdetail .flex-control-thumbs li.flex-active {
	border-color: #4f46e5;
}
.wpds-productdetail .flex-control-thumbs img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	display: block;
}
/* O thu 5 "+N" (con anh 5, index 4, lam nen) — phu lop toi + so con lai, giong mockup tham chieu, thay
   cho kieu dai cuon ngang cu. */
.wpds-productdetail .flex-control-thumbs li.wpds-pd-thumb-more img {
	filter: brightness(0.45);
}
.wpds-productdetail .flex-control-thumbs .wpds-pd-thumb-more-count {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	pointer-events: none;
}

