/* ==========================================================================
   DUC VINH THEME - main.css
   1. Tokens & reset
   2. Typography & utilities
   3. Buttons / badges / notices
   4. Header (topbar, nav, burger)
   5. Footer
   6. Hero & page hero
   7. Sections chung (stats, reasons, features, brands, trio, CTA)
   8. Card san pham & tin tuc, slider
   9. Trang danh muc san pham (sidebar filter, list head, pagination)
   10. Trang chi tiet san pham
   11. Trang tin tuc & chi tiet tin tuc
   12. Trang gioi thieu
   13. Trang lien he
   14. Form, modal, misc
   15. Responsive
   ========================================================================== */

/* ==========================================================================
   1. TOKENS & RESET
   ========================================================================== */
:root {
	--dv-navy: #021b45;
	--dv-navy-2: #062a5f;
	--dv-navy-3: #0d3a78;
	--dv-navy-soft: #e8eef7;
	--dv-red: #d90910;
	--dv-red-dark: #b1070d;
	--dv-red-soft: #fdeced;
	--dv-green: #12a150;
	--dv-amber: #e8a33d;

	--dv-text: #1b2536;
	--dv-text-2: #445068;
	--dv-muted: #78849b;
	--dv-line: #e2e8f0;
	--dv-line-2: #eef1f6;
	--dv-bg: #f4f7fb;
	--dv-white: #fff;

	--dv-radius: 8px;
	--dv-radius-sm: 5px;
	--dv-radius-lg: 12px;
	--dv-shadow: 0 2px 10px rgba(2, 27, 69, .06);
	--dv-shadow-md: 0 6px 24px rgba(2, 27, 69, .1);
	--dv-shadow-lg: 0 16px 48px rgba(2, 27, 69, .16);

	--dv-container: 1240px;
	--dv-gap: 24px;
	--dv-header-h: 76px;

	--dv-font: 'Be Vietnam Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body.dv-body {
	margin: 0;
	font-family: var(--dv-font);
	font-size: 15px;
	line-height: 1.65;
	color: var(--dv-text);
	background: var(--dv-white);
	-webkit-font-smoothing: antialiased;
}

img,
svg,
iframe { max-width: 100%; }
img { height: auto; display: block; }

a { color: var(--dv-navy-3); text-decoration: none; transition: color .18s ease; }
a:hover { color: var(--dv-red); }

h1, h2, h3, h4, h5, h6 { margin: 0 0 .5em; font-weight: 700; line-height: 1.28; color: var(--dv-navy); }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

ul, ol { margin: 0 0 1em; padding-left: 1.2em; }
figure { margin: 0; }
button { font-family: inherit; }

input, select, textarea, button { font-family: inherit; font-size: inherit; }

table { border-collapse: collapse; width: 100%; }

.screen-reader-text,
.dv-hp {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.dv-skip {
	position: absolute; left: -9999px; top: 0; z-index: 999;
	background: var(--dv-navy); color: #fff; padding: 10px 16px;
}
.dv-skip:focus { left: 8px; top: 8px; color: #fff; }

:focus-visible { outline: 2px solid var(--dv-red); outline-offset: 2px; }

/* ==========================================================================
   2. LAYOUT & UTILITIES
   ========================================================================== */
.dv-container {
	width: 100%;
	max-width: var(--dv-container);
	margin: 0 auto;
	padding: 0 20px;
}

.dv-section { padding: 46px 0; }
.dv-section--tight { padding: 34px 0; }
.dv-section--flush { padding: 30px 0 40px; }
.dv-section--news { padding-bottom: 50px; }

.dv-layout { display: grid; gap: 30px; align-items: start; }
.dv-layout--sidebar-left { grid-template-columns: 268px minmax(0, 1fr); }
.dv-layout--sidebar-right { grid-template-columns: minmax(0, 1fr) 300px; }

.dv-main { min-width: 0; }

/* Tieu de section */
.dv-sectionhead { margin-bottom: 22px; }
.dv-sectionhead--center { text-align: center; }
.dv-sectionhead--split {
	display: flex; align-items: flex-end; justify-content: space-between;
	gap: 20px; text-align: left; position: relative;
}
.dv-sectionhead--split.dv-sectionhead--center { text-align: center; }
.dv-sectionhead--split.dv-sectionhead--center > div:first-child { flex: 1; }

.dv-sectionhead__title {
	margin: 0;
	font-size: 21px; font-weight: 700;
	letter-spacing: .02em; text-transform: uppercase;
	color: var(--dv-navy);
}
.dv-sectionhead__sub {
	margin: 6px 0 0;
	font-size: 14px; color: var(--dv-muted);
}

.dv-blocktitle {
	font-size: 19px; font-weight: 700; text-transform: uppercase;
	letter-spacing: .02em; text-align: center;
	margin: 0 0 20px;
	position: relative; padding-bottom: 12px;
}
.dv-blocktitle::after {
	content: ''; position: absolute; left: 50%; bottom: 0;
	transform: translateX(-50%);
	width: 54px; height: 3px; background: var(--dv-red); border-radius: 2px;
}
.dv-blocktitle--left { text-align: left; }
.dv-blocktitle--left::after { left: 0; transform: none; }

.dv-link-more {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 12.5px; font-weight: 600; text-transform: uppercase;
	letter-spacing: .04em; color: var(--dv-navy);
	white-space: nowrap;
}
.dv-link-more:hover { color: var(--dv-red); }
.dv-link-more--center { display: flex; justify-content: center; margin-top: 14px; text-transform: none; letter-spacing: 0; font-size: 13.5px; }

/* Rich text */
.dv-richtext { color: var(--dv-text-2); font-size: 14.5px; line-height: 1.8; }
.dv-richtext--wide { max-width: 860px; }
.dv-richtext h2 {
	font-size: 16px; text-transform: uppercase; letter-spacing: .02em;
	margin: 30px 0 12px; color: var(--dv-navy);
}
.dv-richtext h3 { font-size: 15.5px; margin: 22px 0 10px; }
.dv-richtext ul { padding-left: 20px; }
.dv-richtext ul li { margin-bottom: 6px; }
.dv-richtext ul li::marker { color: var(--dv-red); }
.dv-richtext img { border-radius: var(--dv-radius); margin: 16px 0; }
.dv-richtext a { text-decoration: underline; }
.dv-richtext blockquote {
	margin: 18px 0; padding: 14px 18px;
	border-left: 3px solid var(--dv-red);
	background: var(--dv-bg); border-radius: 0 var(--dv-radius) var(--dv-radius) 0;
}

.dv-empty {
	padding: 26px; text-align: center; color: var(--dv-muted);
	background: var(--dv-bg); border-radius: var(--dv-radius);
}
.dv-empty--lg { padding: 60px 24px; }
.dv-empty--lg h2 { margin: 14px 0 8px; }
.dv-empty--lg .dv-icon { color: var(--dv-line); }
.dv-empty--lg .dv-searchform { max-width: 420px; margin: 18px auto 0; }

/* 404 */
.dv-404__code {
	display: block; font-size: 84px; font-weight: 800; line-height: 1;
	color: var(--dv-navy-soft);
}
.dv-404__actions { display: flex; gap: 12px; justify-content: center; margin-top: 20px; flex-wrap: wrap; }

/* ==========================================================================
   3. BUTTONS / BADGES / NOTICES
   ========================================================================== */
.dv-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 10px 18px;
	font-size: 12.5px; font-weight: 700; letter-spacing: .04em;
	text-transform: uppercase;
	border: 1px solid transparent; border-radius: var(--dv-radius-sm);
	cursor: pointer; text-align: center; white-space: nowrap;
	transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.dv-btn .dv-icon { flex: 0 0 auto; }
.dv-btn:hover { transform: translateY(-1px); }

.dv-btn--red { background: var(--dv-red); border-color: var(--dv-red); color: #fff; }
.dv-btn--red:hover { background: var(--dv-red-dark); border-color: var(--dv-red-dark); color: #fff; }

.dv-btn--navy { background: var(--dv-navy); border-color: var(--dv-navy); color: #fff; }
.dv-btn--navy:hover { background: var(--dv-navy-2); border-color: var(--dv-navy-2); color: #fff; }

.dv-btn--outline { background: #fff; border-color: var(--dv-line); color: var(--dv-navy); }
.dv-btn--outline:hover { border-color: var(--dv-navy); background: var(--dv-navy); color: #fff; }

.dv-btn--ghost {
	background: #fff; border-color: var(--dv-line); color: var(--dv-navy);
	font-size: 11.5px; padding: 9px 16px;
}
.dv-btn--ghost:hover { border-color: var(--dv-navy); color: var(--dv-navy); background: var(--dv-navy-soft); }

.dv-btn--glass {
	background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .38); color: #fff;
	backdrop-filter: blur(4px);
}
.dv-btn--glass:hover { background: rgba(255, 255, 255, .2); color: #fff; }

.dv-btn--onbrand { background: transparent; border-color: rgba(255, 255, 255, .6); color: #fff; }
.dv-btn--onbrand:hover { background: #fff; color: var(--dv-brand, var(--dv-navy)); border-color: #fff; }

.dv-btn--lg { padding: 12px 22px; font-size: 13px; }
.dv-btn--sm { padding: 7px 13px; font-size: 11.5px; }
.dv-btn--block { display: flex; width: 100%; }
.dv-btn--wide { display: flex; width: 100%; max-width: 260px; margin: 14px auto 0; }

.dv-btn__dot {
	display: inline-flex; align-items: center; justify-content: center;
	width: 18px; height: 18px; border-radius: 50%;
	background: rgba(0, 0, 0, .22);
}

/* Badge */
.dv-badge {
	display: inline-block; padding: 3px 9px;
	font-size: 10px; font-weight: 700; letter-spacing: .06em;
	border-radius: 3px; color: #fff; line-height: 1.6;
	white-space: nowrap;
}
.dv-badge--new { background: var(--dv-red); }
.dv-badge--hot { background: var(--dv-green); }
.dv-badge--sale { background: var(--dv-amber); }

.dv-tagpill {
	display: inline-block; padding: 4px 11px;
	font-size: 10.5px; font-weight: 700; letter-spacing: .05em;
	background: var(--dv-navy); color: #fff; border-radius: 3px;
}
.dv-tagpill:hover { background: var(--dv-red); color: #fff; }

/* Notice */
.dv-notice {
	display: flex; align-items: flex-start; gap: 10px;
	padding: 12px 16px; margin-bottom: 18px;
	border-radius: var(--dv-radius); font-size: 14px;
	border: 1px solid transparent;
}
.dv-noticebar { padding: 16px 0 0; }
.dv-noticebar .dv-notice { margin-bottom: 0; }
.dv-notice--success { background: #eaf8ef; border-color: #b8e6c8; color: #17703c; }
.dv-notice--error { background: var(--dv-red-soft); border-color: #f6c5c7; color: #a3151b; }
.dv-notice .dv-icon { margin-top: 3px; flex: 0 0 auto; }

/* ==========================================================================
   4. HEADER
   ========================================================================== */
.dv-topbar {
	background: var(--dv-navy);
	color: rgba(255, 255, 255, .82);
	font-size: 12.5px;
}
.dv-topbar__inner {
	display: flex; align-items: center; justify-content: space-between;
	gap: 18px; min-height: 34px;
}
.dv-topbar__item { display: flex; align-items: center; gap: 6px; margin: 0; }
.dv-topbar__item .dv-icon { opacity: .85; flex: 0 0 auto; }
.dv-topbar a { color: #fff; }
.dv-topbar a:hover { color: #ffd7d9; }
.dv-topbar__badge {
	display: inline-flex; align-items: center; justify-content: center;
	width: 18px; height: 18px; border-radius: 50%;
	background: var(--dv-red); color: #fff;
}
.dv-topbar__sep { opacity: .5; }

.dv-header {
	background: #fff;
	border-bottom: 1px solid var(--dv-line);
	position: sticky; top: 0; z-index: 60;
}
.dv-header__inner {
	display: flex; align-items: center; gap: 20px;
	min-height: var(--dv-header-h);
}

/* Logo */
.dv-logo { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.dv-logo__text strong { white-space: nowrap; }
.dv-logo__mark { display: block; line-height: 0; }
.dv-logo__text { display: flex; flex-direction: column; line-height: 1.1; }
.dv-logo__text strong {
	font-size: 20px; font-weight: 800; letter-spacing: .04em;
	color: var(--dv-navy); text-transform: uppercase;
}
.dv-logo__text em {
	font-size: 8.5px; font-style: normal; letter-spacing: .01em;
	color: var(--dv-muted);
}
.dv-logo--light .dv-logo__text strong { color: #fff; }
.dv-logo--light .dv-logo__text em { color: rgba(255, 255, 255, .6); }
.dv-logo--light .dv-logo__mark svg path:last-child { stroke: #fff; }
.dv-logo img { max-height: 48px; width: auto; }

/* Nav */
.dv-nav { margin-left: auto; flex: 0 0 auto; }
.dv-menu {
	display: flex; align-items: center; gap: 4px;
	margin: 0; padding: 0; list-style: none;
}
.dv-menu-item { position: relative; }
.dv-menu > .dv-menu-item > a {
	display: flex; align-items: center; gap: 4px;
	padding: 10px 9px;
	font-size: 12.5px; font-weight: 700; letter-spacing: .03em;
	text-transform: uppercase; color: var(--dv-navy);
	position: relative; white-space: nowrap;
}
.dv-menu > .dv-menu-item > a::after {
	content: ''; position: absolute; left: 9px; right: 9px; bottom: 2px;
	height: 2px; background: var(--dv-red); border-radius: 2px;
	transform: scaleX(0); transform-origin: left; transition: transform .2s ease;
}
.dv-menu > .dv-menu-item:hover > a,
.dv-menu > .dv-menu-item.current-menu-item > a,
.dv-menu > .dv-menu-item.current-menu-parent > a,
.dv-menu > .dv-menu-item.current_page_item > a { color: var(--dv-red); }
.dv-menu > .dv-menu-item:hover > a::after,
.dv-menu > .dv-menu-item.current-menu-item > a::after,
.dv-menu > .dv-menu-item.current-menu-parent > a::after,
.dv-menu > .dv-menu-item.current_page_item > a::after { transform: scaleX(1); }

.dv-menu-caret { transition: transform .2s ease; }
.dv-menu-item:hover > a .dv-menu-caret { transform: rotate(180deg); }

.dv-submenu {
	position: absolute; top: 100%; left: 0; z-index: 70;
	min-width: 250px; margin: 0; padding: 8px 0;
	list-style: none; background: #fff;
	border: 1px solid var(--dv-line); border-top: 2px solid var(--dv-red);
	border-radius: 0 0 var(--dv-radius) var(--dv-radius);
	box-shadow: var(--dv-shadow-md);
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.dv-menu-item:hover > .dv-submenu { opacity: 1; visibility: visible; transform: translateY(0); }
.dv-submenu .dv-menu-item > a {
	display: block; padding: 8px 18px;
	font-size: 13.5px; color: var(--dv-text-2);
}
.dv-submenu .dv-menu-item > a:hover { background: var(--dv-bg); color: var(--dv-red); }
.dv-submenu .dv-submenu { top: 0; left: 100%; border-radius: var(--dv-radius); }
.dv-submenu-toggle { display: none; }

/* --- MEGA MENU --- */
/* De mega menu tinh vi tri theo ca thanh header thay vi theo tung muc menu */
.dv-menu-item.dv-has-mega { position: static; }

.dv-mega {
	position: absolute; top: 100%; left: 0; right: 0; z-index: 70;
	padding: 0 20px;
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.dv-menu-item.dv-has-mega:hover > .dv-mega,
.dv-menu-item.dv-has-mega:focus-within > .dv-mega {
	opacity: 1; visibility: visible; transform: translateY(0);
}

.dv-mega__inner {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr) minmax(0, 1.05fr) 320px;
	gap: 0;
	max-width: var(--dv-container);
	margin: 0 auto;
	background: #fff;
	border: 1px solid var(--dv-line);
	border-top: 2px solid var(--dv-red);
	border-radius: 0 0 var(--dv-radius) var(--dv-radius);
	box-shadow: var(--dv-shadow-lg);
	overflow: hidden;
}

.dv-mega__col { padding: 16px 18px 18px; min-width: 0; }
.dv-mega__col + .dv-mega__col { border-left: 1px solid var(--dv-line-2); }

/* Tieu de cot */
.dv-mega__head {
	display: flex; align-items: center; gap: 8px;
	margin: 0 0 12px; padding-bottom: 10px;
	font-size: 12.5px; font-weight: 700; letter-spacing: .04em;
	color: var(--dv-navy);
	border-bottom: 1px solid var(--dv-line);
	position: relative;
}
.dv-mega__head .dv-icon { color: var(--dv-red); flex: 0 0 auto; }
.dv-mega__head::after {
	content: ''; position: absolute; left: 0; bottom: -1px;
	width: 42px; height: 2px; background: var(--dv-red);
}
/* Tieu de cot thuong hieu: hop nen navy */
.dv-mega__head--boxed {
	padding: 12px 14px; margin-bottom: 6px;
	background: var(--dv-navy); color: #fff;
	border: 0; border-radius: var(--dv-radius-sm);
}
.dv-mega__head--boxed .dv-icon { color: #fff; }
.dv-mega__head--boxed::after { display: none; }

/* Cot 1: thuong hieu */
.dv-mega__brands { list-style: none; margin: 0; padding: 0; }
.dv-mega__brands a {
	display: flex; align-items: center; gap: 10px;
	padding: 8px 10px;
	border-bottom: 1px solid var(--dv-line-2);
	border-radius: var(--dv-radius-sm);
}
.dv-mega__brands li:last-child a { border-bottom: 0; }
.dv-mega__brands a:hover { background: var(--dv-bg); }
.dv-mega__blogo {
	flex: 0 0 54px; width: 54px; height: 20px;
	display: flex; align-items: center; justify-content: flex-start;
	overflow: hidden;
}
.dv-mega__blogo img { max-width: 100%; max-height: 20px; width: auto; object-fit: contain; }
.dv-mega__blogo em {
	font-style: normal; font-weight: 800; font-size: 10px;
	letter-spacing: -.01em; line-height: 1.1;
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dv-mega__bname {
	flex: 1; min-width: 0;
	font-size: 13.5px; color: var(--dv-text-2);
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dv-mega__brands a:hover .dv-mega__bname { color: var(--dv-red); }
.dv-mega__brands .dv-icon { flex: 0 0 auto; color: var(--dv-muted); }

.dv-mega__allbrands {
	display: flex; align-items: center; gap: 9px;
	margin-top: 8px; padding: 12px 14px;
	font-size: 13px; font-weight: 600; color: var(--dv-navy);
	background: var(--dv-navy-soft); border-radius: var(--dv-radius-sm);
}
.dv-mega__allbrands .dv-icon { color: var(--dv-navy-3); }
.dv-mega__allbrands:hover { background: var(--dv-navy); color: #fff; }
.dv-mega__allbrands:hover .dv-icon { color: #fff; }

/* Cot 2: nhom san pham */
.dv-mega__cats { list-style: none; margin: 0; padding: 0; }
.dv-mega__cats a {
	display: flex; align-items: center; gap: 11px;
	padding: 9px 10px;
	border-bottom: 1px solid var(--dv-line-2);
	border-radius: var(--dv-radius-sm);
}
.dv-mega__cats li:last-child a { border-bottom: 0; }
.dv-mega__cats a:hover { background: var(--dv-bg); }
.dv-mega__cicon {
	flex: 0 0 auto;
	display: inline-flex; align-items: center; justify-content: center;
	width: 26px; height: 26px;
	color: var(--dv-navy-3);
}
.dv-mega__cats a:hover .dv-mega__cicon { color: var(--dv-red); }
.dv-mega__cname {
	flex: 1; min-width: 0;
	font-size: 13.5px; color: var(--dv-text-2);
}
.dv-mega__cats a:hover .dv-mega__cname { color: var(--dv-red); }
.dv-mega__cats .dv-icon:last-child { flex: 0 0 auto; color: var(--dv-muted); }

/* Cot 3: san pham noi bat */
.dv-mega__products { list-style: none; margin: 0; padding: 0; }
.dv-mega__product {
	display: flex; gap: 12px; align-items: flex-start;
	padding: 9px 0;
	border-bottom: 1px solid var(--dv-line-2);
}
.dv-mega__product:last-child { border-bottom: 0; }
.dv-mega__pthumb {
	flex: 0 0 62px;
	padding: 4px;
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius-sm);
}
.dv-mega__pthumb img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; }
.dv-mega__pbody { flex: 1; min-width: 0; }
.dv-mega__ptitle {
	display: block; font-size: 13px; font-weight: 600; line-height: 1.4;
	color: var(--dv-navy);
}
.dv-mega__ptitle:hover { color: var(--dv-red); }
.dv-mega__pspec { display: block; margin: 2px 0 6px; font-size: 12px; color: var(--dv-muted); }
.dv-mega__plink {
	display: inline-block; padding: 4px 10px;
	font-size: 11px; font-weight: 600; color: var(--dv-navy);
	border: 1px solid var(--dv-line); border-radius: 3px;
}
.dv-mega__plink:hover { background: var(--dv-navy); border-color: var(--dv-navy); color: #fff; }

/* Cot 4: khoi quang cao */
.dv-mega__promo {
	position: relative; overflow: hidden;
	display: flex; align-items: flex-start;
	padding: 22px 22px 26px;
	background: var(--dv-navy);
	background-image: linear-gradient(150deg, #0a3068 0%, #02214f 60%, #021b45 100%);
}
.dv-mega__promoimg {
	position: absolute; right: -10px; bottom: -6px; z-index: 0;
	width: 78%; height: 52%;
	background-size: contain; background-repeat: no-repeat; background-position: right bottom;
}
.dv-mega__promotext { position: relative; z-index: 1; }
.dv-mega__promoeyebrow {
	margin: 0 0 4px;
	font-size: 12px; letter-spacing: .04em;
	color: rgba(255, 255, 255, .72);
}
.dv-mega__promotitle {
	margin: 0 0 14px;
	font-size: 21px; font-weight: 800; line-height: 1.25;
	color: #fff; text-transform: uppercase;
}
.dv-mega__promopoints { list-style: none; margin: 0 0 18px; padding: 0; }
.dv-mega__promopoints li {
	display: flex; align-items: center; gap: 9px;
	margin-bottom: 9px;
	font-size: 13px; color: rgba(255, 255, 255, .92);
}
.dv-mega__tick {
	flex: 0 0 auto;
	display: inline-flex; align-items: center; justify-content: center;
	width: 18px; height: 18px; border-radius: 50%;
	background: var(--dv-red); color: #fff;
}
.dv-mega__promo .dv-btn { position: relative; z-index: 1; }

/* Header actions */
.dv-header__actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.dv-header__cta { padding: 11px 15px; white-space: nowrap; }

.dv-burger {
	display: none; align-items: center; justify-content: center;
	width: 42px; height: 42px; padding: 0;
	background: var(--dv-navy); color: #fff;
	border: 0; border-radius: var(--dv-radius-sm); cursor: pointer;
}

.dv-nav__mobilehead,
.dv-nav__mobilefoot { display: none; }

/* Back to top */
.dv-totop {
	position: fixed; right: 18px; bottom: 18px; z-index: 80;
	width: 40px; height: 40px; padding: 0;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--dv-red); color: #fff; border: 0;
	border-radius: var(--dv-radius-sm); cursor: pointer;
	box-shadow: var(--dv-shadow-md);
	opacity: 0; visibility: hidden; transform: translateY(8px);
	transition: all .22s ease;
}
.dv-totop.is-visible { opacity: 1; visibility: visible; transform: none; }
.dv-totop:hover { background: var(--dv-red-dark); }

/* ==========================================================================
   5. FOOTER
   ========================================================================== */
.dv-footer { background: var(--dv-navy); color: rgba(255, 255, 255, .74); font-size: 13.5px; }
.dv-footer__top {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1.15fr 1.15fr 1.35fr;
	gap: 30px;
	padding: 42px 20px 34px;
}
.dv-footer__brand .dv-logo { margin-bottom: 14px; }
.dv-footer__desc { font-size: 13px; line-height: 1.75; margin-bottom: 16px; }

.dv-footer__title {
	color: #fff; font-size: 13.5px; font-weight: 700;
	letter-spacing: .05em; text-transform: uppercase; margin: 0 0 14px;
}
.dv-footer__list { list-style: none; margin: 0; padding: 0; }
.dv-footer__list li { margin-bottom: 9px; }
.dv-footer__list a { color: rgba(255, 255, 255, .74); font-size: 13.5px; }
.dv-footer__list a:hover { color: #fff; padding-left: 3px; }

.dv-footer__contactlist { list-style: none; margin: 0; padding: 0; }
.dv-footer__contactlist li { display: flex; gap: 10px; margin-bottom: 14px; line-height: 1.6; }
.dv-footer__contactlist strong { color: #fff; font-weight: 500; margin-right: 4px; }
.dv-footer__contactlist a { color: rgba(255, 255, 255, .74); }
.dv-footer__contactlist a:hover { color: #fff; }
.dv-footer__ico {
	flex: 0 0 auto;
	display: inline-flex; align-items: center; justify-content: center;
	width: 26px; height: 26px; border-radius: 50%;
	background: rgba(255, 255, 255, .1); color: #fff;
}

.dv-socials { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; }
.dv-socials a {
	display: inline-flex; align-items: center; justify-content: center;
	width: 30px; height: 30px; border-radius: 50%;
	background: rgba(255, 255, 255, .12); color: #fff;
}
.dv-socials a:hover { background: var(--dv-red); color: #fff; }

.dv-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .1); }
.dv-footer__bottominner {
	display: flex; align-items: center; justify-content: space-between;
	gap: 16px; padding: 14px 20px; font-size: 12.5px;
}
.dv-footer__copy { margin: 0; }
.dv-footer__bottomnav { display: flex; gap: 0; list-style: none; margin: 0; padding: 0; }
.dv-footer__bottomnav li:not(:last-child)::after {
	content: '|'; margin: 0 12px; opacity: .3;
}
.dv-footer__bottomnav a { color: rgba(255, 255, 255, .74); }
.dv-footer__bottomnav a:hover { color: #fff; }

/* ==========================================================================
   6. HERO & PAGE HERO
   ========================================================================== */
.dv-hero { position: relative; background: var(--dv-navy); overflow: hidden; }
.dv-hero__bg {
	position: absolute; inset: 0;
	background-size: cover; background-position: center right;
}
.dv-hero__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(100deg, rgba(2, 23, 60, .97) 0%, rgba(2, 23, 60, .93) 30%, rgba(3, 32, 78, .55) 62%, rgba(3, 32, 78, .25) 100%);
}
.dv-hero__inner { position: relative; padding: 46px 20px 42px; max-width: var(--dv-container); }

.dv-hero__eyebrow {
	margin: 0 0 2px;
	font-size: 24px; font-weight: 400; letter-spacing: .01em;
	color: rgba(255, 255, 255, .93); text-transform: uppercase;
}
.dv-hero__title {
	margin: 0 0 12px;
	font-size: 40px; font-weight: 800; line-height: 1.12;
	letter-spacing: .005em; color: #fff; text-transform: uppercase;
}
.dv-hero__sub {
	margin: 0 0 20px;
	font-size: 15px; color: rgba(255, 255, 255, .88);
}

.dv-hero__chips {
	display: flex; flex-wrap: wrap; gap: 8px;
	list-style: none; margin: 0 0 22px; padding: 0;
}
.dv-hero__chips a {
	display: flex; align-items: center; justify-content: center;
	min-width: 78px; height: 40px; padding: 0 14px;
	background: #fff; border-radius: var(--dv-radius-sm);
	box-shadow: 0 2px 8px rgba(0, 0, 0, .16);
}
.dv-hero__chips a:hover { transform: translateY(-2px); }
.dv-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* Page hero */
.dv-pagehero { position: relative; background: var(--dv-navy); overflow: hidden; }
.dv-pagehero__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.dv-pagehero__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(100deg, rgba(2, 23, 60, .96) 0%, rgba(2, 23, 60, .9) 34%, rgba(3, 32, 78, .5) 68%, rgba(3, 32, 78, .2) 100%);
}
.dv-pagehero__inner { position: relative; padding: 42px 20px; }
.dv-pagehero--sm .dv-pagehero__inner { padding: 34px 20px; }
.dv-pagehero--lg .dv-pagehero__inner { padding: 54px 20px; }

.dv-pagehero__title {
	margin: 0;
	font-size: 30px; font-weight: 800; line-height: 1.2;
	letter-spacing: .01em; color: #fff; text-transform: uppercase;
}
.dv-pagehero--lg .dv-pagehero__title { font-size: 34px; }
.dv-pagehero__lines { margin-top: 10px; }
.dv-pagehero__lines p {
	margin: 0; font-size: 15px; line-height: 1.6;
	color: rgba(255, 255, 255, .88);
}
.dv-pagehero__crumb { margin-top: 14px; }
.dv-pagehero__crumb .dv-breadcrumb ol { color: rgba(255, 255, 255, .8); }
.dv-pagehero__crumb .dv-breadcrumb a { color: rgba(255, 255, 255, .8); }
.dv-pagehero__crumb .dv-breadcrumb a:hover { color: #fff; }
.dv-pagehero__crumb .dv-breadcrumb span { color: #fff; }

/* Breadcrumb */
.dv-crumbbar { background: var(--dv-bg); border-bottom: 1px solid var(--dv-line-2); }
.dv-crumbbar .dv-container { padding-top: 12px; padding-bottom: 12px; }
.dv-crumbbar--tight .dv-container { padding-top: 10px; padding-bottom: 10px; }

.dv-breadcrumb ol {
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
	list-style: none; margin: 0; padding: 0;
	font-size: 13px; color: var(--dv-muted);
}
.dv-breadcrumb li { display: flex; align-items: center; gap: 8px; }
.dv-breadcrumb a { color: var(--dv-text-2); }
.dv-breadcrumb a:hover { color: var(--dv-red); }
.dv-breadcrumb span { color: var(--dv-navy); font-weight: 500; }
.dv-breadcrumb__sep { display: inline-flex; opacity: .5; }

/* ==========================================================================
   7. SECTIONS CHUNG
   ========================================================================== */

/* --- Stats bar (de len hero) --- */
.dv-statsbar { position: relative; margin-top: -26px; z-index: 5; }
.dv-statsbar__box {
	display: grid; grid-template-columns: repeat(6, 1fr);
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius); box-shadow: var(--dv-shadow-md);
	overflow: hidden;
}
.dv-stat {
	display: flex; align-items: center; gap: 10px;
	padding: 16px 14px;
}
.dv-statsbar__box .dv-stat:not(:last-child) { border-right: 1px solid var(--dv-line-2); }
.dv-stat__icon { flex: 0 0 auto; color: var(--dv-navy-3); }
.dv-stat__text { min-width: 0; }
.dv-stat__num {
	display: block; font-size: 16px; font-weight: 800;
	line-height: 1.2; color: var(--dv-navy);
}
.dv-stat__label {
	display: block; font-size: 9.5px; line-height: 1.45;
	letter-spacing: .04em; text-transform: uppercase; color: var(--dv-muted);
}

/* --- Stats band (nen xanh) --- */
.dv-statsband { background: var(--dv-navy); }
.dv-statsband__inner {
	display: grid; grid-template-columns: repeat(6, 1fr);
	gap: 14px; padding: 30px 20px;
}
.dv-stat--lg { padding: 0; }
.dv-stat--lg .dv-stat__icon { color: rgba(255, 255, 255, .85); }
.dv-stat--lg .dv-stat__num { font-size: 24px; color: #fff; }
.dv-stat--lg .dv-stat__label { font-size: 10.5px; color: rgba(255, 255, 255, .72); }

/* --- Reasons --- */
.dv-reasons { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.dv-reason {
	display: flex; gap: 10px; padding: 14px 14px 14px 13px;
	background: #fff; border: 1px solid var(--dv-line);
	border-left: 3px solid var(--dv-navy-3);
	border-radius: var(--dv-radius-sm);
	transition: box-shadow .2s ease, transform .2s ease;
}
.dv-reason:hover { box-shadow: var(--dv-shadow-md); transform: translateY(-2px); }
.dv-reason--red { border-left-color: var(--dv-red); }
.dv-reason--red .dv-reason__icon { color: var(--dv-red); }
.dv-reason__icon { flex: 0 0 auto; color: var(--dv-navy-3); }
.dv-reason__title {
	margin: 0 0 3px; font-size: 11.5px; font-weight: 700;
	letter-spacing: .04em; text-transform: uppercase; line-height: 1.35;
}
.dv-reason__desc { margin: 0; font-size: 11px; line-height: 1.5; color: var(--dv-muted); }

/* --- Feature strip (5 muc) --- */
.dv-featurestrip { padding: 6px 0 36px; }
.dv-featurestrip__box {
	display: grid; grid-template-columns: repeat(5, 1fr);
	background: var(--dv-bg); border: 1px solid var(--dv-line-2);
	border-radius: var(--dv-radius); overflow: hidden;
}
.dv-featurestrip__box--4 { grid-template-columns: repeat(4, 1fr); }
.dv-featureitem { display: flex; gap: 12px; padding: 18px 16px; }
.dv-featurestrip__box .dv-featureitem:not(:last-child) { border-right: 1px solid var(--dv-line); }
.dv-featureitem__icon { flex: 0 0 auto; color: var(--dv-navy-3); }
.dv-featureitem__title {
	margin: 0 0 3px; font-size: 11.5px; font-weight: 700;
	letter-spacing: .05em; text-transform: uppercase;
}
.dv-featureitem__desc { margin: 0; font-size: 11.5px; line-height: 1.5; color: var(--dv-muted); }

/* --- Trust strip (6 muc, tren trang danh muc) --- */
.dv-truststrip { padding: 20px 0 6px; }
.dv-truststrip__box {
	display: grid; grid-template-columns: repeat(6, 1fr);
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius); box-shadow: var(--dv-shadow);
	overflow: hidden;
}
.dv-trustitem { display: flex; gap: 10px; padding: 16px 14px; }
.dv-truststrip__box .dv-trustitem:not(:last-child) { border-right: 1px solid var(--dv-line-2); }
.dv-trustitem__icon { flex: 0 0 auto; color: var(--dv-navy-3); }
.dv-trustitem__title { margin: 0 0 2px; font-size: 12.5px; font-weight: 600; }
.dv-trustitem__desc { margin: 0; font-size: 11.5px; color: var(--dv-muted); }

/* --- Brand row --- */
.dv-brandrow {
	display: grid; grid-template-columns: repeat(7, 1fr);
	gap: 0; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius); background: #fff; overflow: hidden;
}
.dv-brandrow__item,
.dv-brandrow__more {
	display: flex; align-items: center; justify-content: center; gap: 6px;
	min-height: 62px; padding: 12px 10px; text-align: center;
}
.dv-brandrow__item:not(:last-child),
.dv-brandrow__more { border-left: 1px solid var(--dv-line-2); }
.dv-brandrow__item:first-child { border-left: 0; }
.dv-brandrow__item:hover { background: var(--dv-bg); }
.dv-brandrow__more {
	font-size: 9.5px; font-weight: 700; letter-spacing: .01em;
	color: var(--dv-navy); background: var(--dv-bg);
	padding: 12px 10px;
}
.dv-brandrow__more:hover { background: var(--dv-navy); color: #fff; }
.dv-brandrow__more span {
	display: block; line-height: 1.45; text-wrap: balance;
}
/* Mui ni chay theo chu nen luon nam sau tu cuoi, khong bi bo lai dong tren */
.dv-brandrow__arrow {
	display: inline-block; vertical-align: -2px; margin-left: 5px;
}

.dv-brand-logo__text {
	font-size: 15px; font-weight: 800; letter-spacing: -.01em;
	white-space: nowrap; line-height: 1.2;
}
.dv-brand-logo__img { width: auto; }

/* --- Trio (linh vuc / kho / chung nhan) --- */
.dv-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.dv-trio__title {
	font-size: 13px; font-weight: 700; letter-spacing: .05em;
	text-transform: uppercase; text-align: center; margin: 0 0 14px;
}
.dv-tilegrid { display: grid; gap: 8px; }
.dv-tilegrid--4 { grid-template-columns: repeat(4, 1fr); }
.dv-tilegrid--2 { grid-template-columns: repeat(2, 1fr); }

.dv-tile {
	position: relative; display: block; overflow: hidden;
	border-radius: var(--dv-radius-sm); background: var(--dv-navy);
}
.dv-tile img {
	width: 100%; aspect-ratio: 3 / 4; object-fit: cover;
	transition: transform .35s ease;
}
.dv-tile:hover img { transform: scale(1.06); }
.dv-tile__cap {
	position: absolute; left: 0; right: 0; bottom: 0;
	padding: 16px 5px 6px;
	background: linear-gradient(transparent, rgba(2, 23, 60, .88));
	color: #fff; font-size: 9.5px; font-weight: 600; text-align: center;
	line-height: 1.3;
}
.dv-tile--plain img { aspect-ratio: 8 / 7; }

.dv-certgrid {
	display: grid; grid-template-columns: repeat(3, 1fr);
	gap: 10px; align-items: start;
}
.dv-cert {
	display: block; padding: 4px;
	border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius-sm); overflow: hidden; background: #fff;
	transition: border-color .18s ease, box-shadow .18s ease;
}
.dv-cert:hover { border-color: var(--dv-navy-soft); box-shadow: var(--dv-shadow); }
/* contain: anh chung nhan hien tron ven, khong cat mat tieu de hay con dau */
.dv-cert img {
	width: 100%; aspect-ratio: 3 / 4.2;
	object-fit: contain; background: #fff;
}

/* --- CTA banner --- */
.dv-ctabanner { padding: 12px 0 32px; }
.dv-ctabanner__box {
	display: flex; align-items: center; gap: 18px;
	max-width: 880px; margin: 0 auto;
	padding: 18px 22px;
	background: var(--dv-navy); border-radius: var(--dv-radius);
}
.dv-ctabanner__icon {
	flex: 0 0 auto;
	display: inline-flex; align-items: center; justify-content: center;
	width: 46px; height: 46px; border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, .3); color: #fff;
}
.dv-ctabanner__text { flex: 1; min-width: 0; }
.dv-ctabanner__text h2 {
	margin: 0 0 2px; font-size: 16px; font-weight: 700; color: #fff;
}
.dv-ctabanner__text p { margin: 0; font-size: 13px; color: rgba(255, 255, 255, .74); }

/* ==========================================================================
   8. CARDS & SLIDER
   ========================================================================== */

/* --- The san pham --- */
.dv-pcard {
	display: flex; flex-direction: column;
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius);
	transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease;
	overflow: hidden;
}
.dv-pcard:hover {
	border-color: var(--dv-navy-soft);
	box-shadow: var(--dv-shadow-md);
	transform: translateY(-2px);
}
.dv-pcard__head {
	display: flex; align-items: flex-start; justify-content: space-between;
	gap: 8px; padding: 12px 12px 0; min-height: 30px; flex-wrap: nowrap;
}
.dv-pcard__brand {
	display: inline-flex; align-items: center;
	min-width: 0; overflow: hidden;
}
.dv-pcard__brand .dv-brand-logo__text { overflow: hidden; text-overflow: ellipsis; }
.dv-pcard__head .dv-badge { flex: 0 0 auto; }
.dv-pcard__brand .dv-brand-logo__text { font-size: 12px; }

.dv-pcard__media { display: block; padding: 4px 14px 8px; }
.dv-pcard__media img {
	width: 100%; aspect-ratio: 1 / 1; object-fit: contain;
	transition: transform .3s ease;
}
.dv-pcard:hover .dv-pcard__media img { transform: scale(1.04); }

.dv-pcard__body {
	display: flex; flex-direction: column; flex: 1;
	padding: 0 14px 14px; text-align: center;
}
.dv-pcard__title {
	margin: 0 0 3px;
	font-size: 13px; font-weight: 600; line-height: 1.4;
	min-height: 2.8em;
}
.dv-pcard__title a { color: var(--dv-navy); }
.dv-pcard__title a:hover { color: var(--dv-red); }
.dv-pcard__spec { margin: 0 0 8px; font-size: 12px; color: var(--dv-muted); }
.dv-pcard__price {
	margin: 0 0 5px;
	font-size: 16px; font-weight: 700; color: var(--dv-red);
}
.dv-pcard__stock {
	display: inline-flex; align-items: center; justify-content: center; gap: 4px;
	margin: 0 0 11px; font-size: 11.5px; color: var(--dv-green);
}
.dv-pcard__stock--coming { color: var(--dv-amber); }
.dv-pcard__stock--out { color: var(--dv-muted); }
.dv-pcard__cta { margin-top: auto; font-size: 11px; padding: 8px 10px; }

/* Variant mini (dung trong slider theo thuong hieu) */
.dv-pcard--mini .dv-pcard__body { padding-bottom: 16px; }
.dv-pcard--mini .dv-pcard__title { font-size: 12.5px; min-height: 0; margin-bottom: 2px; }
.dv-pcard--mini .dv-pcard__media { padding: 4px 12px 6px; }
.dv-pcard--mini .dv-pcard__spec { margin-bottom: 0; }

/* Variant rel (san pham tuong tu) */
.dv-pcard--rel .dv-pcard__stock { display: none; }
.dv-pcard--rel .dv-pcard__title { font-size: 12.5px; }

/* Grid san pham */
.dv-pgrid { display: grid; gap: 18px; }
.dv-pgrid--4 { grid-template-columns: repeat(4, 1fr); }
.dv-pgrid--3 { grid-template-columns: repeat(3, 1fr); }

/* --- The tin tuc --- */
.dv-ncard {
	display: flex; flex-direction: column;
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius); overflow: hidden;
	transition: box-shadow .2s ease, transform .2s ease;
}
.dv-ncard:hover { box-shadow: var(--dv-shadow-md); transform: translateY(-2px); }
.dv-ncard__media { position: relative; display: block; overflow: hidden; }
.dv-ncard__media img {
	width: 100%; aspect-ratio: 16 / 10; object-fit: cover;
	transition: transform .35s ease;
}
.dv-ncard:hover .dv-ncard__media img { transform: scale(1.05); }
.dv-ncard__tag {
	position: absolute; left: 0; bottom: 0;
	padding: 5px 10px;
	background: var(--dv-navy); color: #fff;
	font-size: 9.5px; font-weight: 700; letter-spacing: .05em;
}
.dv-ncard__tag--red { background: var(--dv-red); }

/* Nhan mau dat duoi anh (the tin trang chu) */
.dv-ncard__pill {
	display: inline-block; padding: 4px 10px;
	background: var(--dv-navy); color: #fff;
	border-radius: 3px;
	font-size: 9.5px; font-weight: 700; letter-spacing: .05em;
	line-height: 1.5;
}
.dv-ncard__pill--red { background: var(--dv-red); }
.dv-ncard__pill:hover { background: var(--dv-navy-3); color: #fff; }
.dv-ncard__pill--red:hover { background: var(--dv-red-dark); color: #fff; }
.dv-ncard__body {
	display: flex; flex-direction: column; flex: 1;
	padding: 12px 14px 16px;
}
.dv-ncard__meta {
	display: flex; align-items: center; justify-content: space-between;
	gap: 10px; margin-bottom: 8px; min-height: 22px;
	font-size: 11.5px; color: var(--dv-muted);
}
.dv-ncard__date { flex: 0 0 auto; }
.dv-ncard__cat {
	color: var(--dv-muted); font-weight: 600;
	font-size: 10px; letter-spacing: .05em;
}
.dv-ncard__cat:hover { color: var(--dv-red); }
.dv-ncard__title { margin: 0 0 7px; font-size: 14.5px; line-height: 1.45; }
.dv-ncard__title a { color: var(--dv-navy); }
.dv-ncard__title a:hover { color: var(--dv-red); }
.dv-ncard__excerpt {
	margin: 0 0 10px; font-size: 12.5px; line-height: 1.65;
	color: var(--dv-muted);
}
.dv-ncard__more {
	display: inline-flex; align-items: center; gap: 5px;
	margin-top: auto; font-size: 12.5px; font-weight: 600;
	color: var(--dv-navy-3);
}
.dv-ncard__more:hover { color: var(--dv-red); gap: 8px; }

/* Tren the tin tuc trang chu, dong meta o duoi anh nhu thiet ke */
.dv-newsgrid { display: grid; gap: 18px; }
.dv-newsgrid--4 { grid-template-columns: repeat(4, 1fr); }
.dv-newsgrid--3 { grid-template-columns: repeat(3, 1fr); }

/* --- Slider --- */
.dv-slider,
.dv-brandblock__slider,
.dv-relslider { position: relative; }

.dv-slider__track {
	display: flex; gap: 12px;
	overflow-x: auto; scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	padding: 2px;
	scrollbar-width: none; -ms-overflow-style: none;
}
.dv-slider__track::-webkit-scrollbar { display: none; }
.dv-slider__item { flex: 0 0 calc((100% - 48px) / 5); scroll-snap-align: start; min-width: 0; }
.dv-slider__item--rel { flex: 0 0 calc((100% - 48px) / 5); }

.dv-slider__nav {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 4;
	width: 32px; height: 32px; padding: 0;
	display: inline-flex; align-items: center; justify-content: center;
	background: #fff; color: var(--dv-navy);
	border: 1px solid var(--dv-line); border-radius: 50%;
	box-shadow: var(--dv-shadow); cursor: pointer;
	transition: all .18s ease;
}
.dv-slider__nav:hover { background: var(--dv-navy); color: #fff; border-color: var(--dv-navy); }
.dv-slider__nav:disabled { opacity: 0; pointer-events: none; }
.dv-slider__nav--prev { left: -6px; }
.dv-slider__nav--next { right: -6px; }
.dv-slider__nav--out.dv-slider__nav--prev { left: -18px; }
.dv-slider__nav--out.dv-slider__nav--next { right: -18px; }

.dv-slider__dots {
	display: flex; justify-content: center; gap: 6px; margin-top: 14px;
}
.dv-slider__dots button {
	width: 7px; height: 7px; padding: 0;
	background: var(--dv-line); border: 0; border-radius: 50%;
	cursor: pointer; transition: all .18s ease;
}
.dv-slider__dots button.is-active { background: var(--dv-navy-3); width: 20px; border-radius: 4px; }

/* --- Brand blocks (san pham theo thuong hieu) --- */
.dv-brandblocks { display: flex; flex-direction: column; gap: 16px; }
.dv-brandblock {
	display: grid; grid-template-columns: 188px minmax(0, 1fr);
	gap: 14px;
	background: var(--dv-bg); border: 1px solid var(--dv-line-2);
	border-radius: var(--dv-radius); padding: 14px;
}
.dv-brandblock__panel {
	position: relative; overflow: hidden;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	gap: 10px; padding: 20px 16px; text-align: center;
	background: var(--dv-brand, var(--dv-navy));
	border-radius: var(--dv-radius-sm);
}
/* Anh nen tuy chon cho tung thuong hieu + lop phu mau thuong hieu de chu van doc duoc */
.dv-brandblock__bg {
	position: absolute; inset: 0; z-index: 0;
	background-size: cover; background-position: center;
}
.dv-brandblock__panel.has-image::after {
	content: ''; position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(
		to bottom,
		color-mix(in srgb, var(--dv-brand, #02214f) 52%, transparent),
		color-mix(in srgb, var(--dv-brand, #02214f) 84%, transparent)
	);
}
/* Trinh duyet cu khong ho tro color-mix: dung lop den mo thay the */
@supports not (background: color-mix(in srgb, red 50%, blue)) {
	.dv-brandblock__panel.has-image::after {
		background: linear-gradient(to bottom, rgba(2, 27, 69, .55), rgba(2, 27, 69, .86));
	}
}
.dv-brandblock__panel > *:not(.dv-brandblock__bg) { position: relative; z-index: 2; }
.dv-brandblock__logo { display: block; }
.dv-brandblock__logo .dv-brand-logo__text {
	color: #fff !important; font-size: 19px; white-space: normal; line-height: 1.15;
}
.dv-brandblock__tagline {
	margin: 0; font-size: 11.5px; line-height: 1.55;
	color: rgba(255, 255, 255, .9);
}
.dv-brandblock__panel.has-image .dv-brandblock__logo,
.dv-brandblock__panel.has-image .dv-brandblock__tagline {
	text-shadow: 0 1px 3px rgba(0, 0, 0, .45);
}
.dv-brandblock__panel.has-image .dv-brandblock__tagline { color: #fff; }
.dv-brandblock__panel .dv-btn {
	font-size: 9.5px; padding: 8px 8px; gap: 5px;
	letter-spacing: .01em; max-width: 100%;
	white-space: normal; line-height: 1.35;
}
.dv-brandblock__slider { min-width: 0; }
.dv-brandblock__slider .dv-slider__item { flex: 0 0 calc((100% - 48px) / 5); }
.dv-brandblock__slider .dv-pcard { border-color: var(--dv-line-2); }
.dv-brandblock__slider .dv-slider__nav--prev { left: -4px; }
.dv-brandblock__slider .dv-slider__nav--next { right: -4px; }

/* ==========================================================================
   9. TRANG DANH MUC SAN PHAM
   ========================================================================== */
.dv-sidebar { display: flex; flex-direction: column; gap: 16px; }
.dv-sidebar__toggle { display: none; }
.dv-sidebar__body { display: flex; flex-direction: column; gap: 16px; }

.dv-widget { background: #fff; }
.dv-widget--boxed {
	border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius); overflow: hidden;
}
.dv-widget__title {
	margin: 0; padding: 13px 16px;
	font-size: 12.5px; font-weight: 700; letter-spacing: .05em;
	text-transform: uppercase; color: var(--dv-navy);
	border-bottom: 1px solid var(--dv-line-2);
}
.dv-widget__title--navy { background: var(--dv-navy); color: #fff; border-bottom: 0; }

/* Danh muc */
.dv-catlist,
.dv-iconlist { list-style: none; margin: 0; padding: 6px 0; }
.dv-catlist a,
.dv-iconlist a {
	display: flex; align-items: center; gap: 8px;
	padding: 8px 16px; font-size: 13px; color: var(--dv-text-2);
}
.dv-catlist a span,
.dv-iconlist a span { flex: 1; min-width: 0; }
.dv-catlist a em,
.dv-iconlist a em { font-style: normal; font-size: 12px; color: var(--dv-muted); }
.dv-catlist a:hover,
.dv-iconlist a:hover { background: var(--dv-bg); color: var(--dv-red); }
.dv-catlist li.is-active > a,
.dv-iconlist li.is-active > a {
	color: var(--dv-red); font-weight: 600; background: var(--dv-red-soft);
}
.dv-iconlist a .dv-icon { flex: 0 0 auto; color: var(--dv-navy-3); }
.dv-iconlist li.is-active a .dv-icon { color: var(--dv-red); }

/* Checklist */
.dv-checklist { list-style: none; margin: 0; padding: 10px 16px; }
.dv-checklist li { margin-bottom: 8px; }
.dv-checklist li:last-child { margin-bottom: 0; }
.dv-checklist label {
	display: flex; align-items: center; gap: 8px;
	font-size: 13px; color: var(--dv-text-2); cursor: pointer;
}
.dv-checklist label span { flex: 1; min-width: 0; }
.dv-checklist label em { font-style: normal; font-size: 12px; color: var(--dv-muted); }
.dv-checklist input[type="checkbox"] {
	width: 14px; height: 14px; margin: 0; flex: 0 0 auto;
	accent-color: var(--dv-navy-3); cursor: pointer;
}
.dv-checklist[data-dv-collapse] li.is-hidden { display: none; }

.dv-collapse-more {
	display: flex; align-items: center; justify-content: space-between;
	width: 100%; padding: 10px 16px;
	background: none; border: 0; border-top: 1px solid var(--dv-line-2);
	font-size: 13px; color: var(--dv-text-2); cursor: pointer;
}
.dv-collapse-more:hover { color: var(--dv-red); }

.dv-pricerange { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 4px 16px 12px; }
.dv-pricerange input {
	width: 100%; padding: 8px 10px; font-size: 12.5px;
	border: 1px solid var(--dv-line); border-radius: var(--dv-radius-sm);
}
.dv-filterform .dv-btn--block { width: calc(100% - 32px); margin: 0 16px 14px; }

/* Support box */
.dv-supportbox {
	padding: 20px 18px; text-align: center;
	background: var(--dv-navy); border-radius: var(--dv-radius); color: #fff;
}
.dv-supportbox__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 42px; height: 42px; margin-bottom: 10px;
	border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff;
}
.dv-supportbox h3 { margin: 0 0 4px; font-size: 14.5px; color: #fff; }
.dv-supportbox p { margin: 0 0 14px; font-size: 12.5px; color: rgba(255, 255, 255, .72); }

.dv-supportbox--wide { text-align: left; }
.dv-supportbox--wide .dv-supportbox__head { display: flex; gap: 12px; align-items: center; margin-bottom: 14px; }
.dv-supportbox--wide .dv-supportbox__icon { width: 36px; height: 36px; margin: 0; flex: 0 0 auto; }
.dv-supportbox--wide h3 { font-size: 13.5px; }
.dv-supportbox--wide p { margin: 0; }
.dv-supportbox__list { list-style: none; margin: 0 0 14px; padding: 0; }
.dv-supportbox__list li {
	display: flex; align-items: flex-start; gap: 10px;
	padding: 9px 0; font-size: 13.5px;
	border-top: 1px solid rgba(255, 255, 255, .1);
}
.dv-supportbox__list .dv-icon { margin-top: 3px; flex: 0 0 auto; opacity: .8; }
.dv-supportbox__list a { color: #fff; }
.dv-supportbox__list a:hover { color: #ffd7d9; }

/* Newsletter box */
.dv-newsbox {
	padding: 20px 18px;
	background: var(--dv-navy); border-radius: var(--dv-radius); color: #fff;
}
.dv-newsbox h3 {
	margin: 0 0 6px; font-size: 13.5px; color: #fff;
	letter-spacing: .04em; text-transform: uppercase;
}
.dv-newsbox p { margin: 0 0 14px; font-size: 12.5px; line-height: 1.6; color: rgba(255, 255, 255, .72); }
.dv-newsbox input[type="email"] {
	width: 100%; padding: 11px 13px; margin-bottom: 10px;
	font-size: 13px; background: #fff; color: var(--dv-text);
	border: 1px solid transparent; border-radius: var(--dv-radius-sm);
}

/* Search widget */
.dv-widget--search { background: transparent; }
.dv-searchform { display: flex; gap: 8px; }
.dv-searchform input[type="search"] {
	flex: 1; min-width: 0;
	padding: 11px 14px; font-size: 13.5px;
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius-sm);
}
.dv-searchform button {
	flex: 0 0 auto;
	width: 42px; padding: 0;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--dv-navy); color: #fff;
	border: 0; border-radius: var(--dv-radius-sm); cursor: pointer;
}
.dv-searchform button:hover { background: var(--dv-red); }

/* List head */
.dv-listhead {
	display: flex; align-items: flex-end; justify-content: space-between;
	gap: 16px; margin-bottom: 18px; flex-wrap: wrap;
}
.dv-listhead__title {
	margin: 0; font-size: 19px; font-weight: 700;
	letter-spacing: .02em; text-transform: uppercase;
}
.dv-listhead__count { margin: 4px 0 0; font-size: 13px; color: var(--dv-muted); }

.dv-sortform { display: flex; align-items: center; gap: 8px; }
.dv-sortform label { font-size: 13px; color: var(--dv-muted); }

.dv-select { position: relative; display: block; }
.dv-select select {
	appearance: none; -webkit-appearance: none;
	width: 100%; padding: 9px 34px 9px 13px;
	font-size: 13px; color: var(--dv-text);
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius-sm); cursor: pointer;
}
.dv-select .dv-icon {
	position: absolute; right: 11px; top: 50%; transform: translateY(-50%);
	pointer-events: none; color: var(--dv-muted);
}

/* Pagination */
.dv-pagination { margin-top: 28px; }
.dv-pagination ul {
	display: flex; align-items: center; justify-content: center; gap: 7px;
	list-style: none; margin: 0; padding: 0; flex-wrap: wrap;
}
.dv-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 34px; height: 34px; padding: 0 9px;
	font-size: 13.5px; font-weight: 600; color: var(--dv-text-2);
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius-sm);
}
.dv-pagination a.page-numbers:hover { border-color: var(--dv-navy); color: var(--dv-navy); }
.dv-pagination .page-numbers.current {
	background: var(--dv-navy); border-color: var(--dv-navy); color: #fff;
}
.dv-pagination .page-numbers.dots { border-color: transparent; background: transparent; }

/* Filter tabs (tin tuc) */
.dv-filtertabs {
	display: flex; align-items: center; gap: 4px;
	margin-bottom: 20px; overflow-x: auto;
	border-bottom: 1px solid var(--dv-line);
	scrollbar-width: none;
}
.dv-filtertabs::-webkit-scrollbar { display: none; }
.dv-filtertabs__item {
	position: relative; flex: 0 0 auto;
	padding: 11px 14px;
	font-size: 12px; font-weight: 700; letter-spacing: .04em;
	color: var(--dv-text-2); white-space: nowrap;
}
.dv-filtertabs__item::after {
	content: ''; position: absolute; left: 14px; right: 14px; bottom: -1px;
	height: 2px; background: var(--dv-red);
	transform: scaleX(0); transform-origin: center; transition: transform .2s ease;
}
.dv-filtertabs__item:hover { color: var(--dv-red); }
.dv-filtertabs__item.is-active { color: var(--dv-red); }
.dv-filtertabs__item.is-active::after { transform: scaleX(1); }

/* Search results */
.dv-searchresults { display: flex; flex-direction: column; gap: 16px; }
.dv-result {
	display: grid; grid-template-columns: 180px minmax(0, 1fr);
	gap: 18px; padding: 16px;
	background: #fff; border: 1px solid var(--dv-line); border-radius: var(--dv-radius);
}
.dv-result__thumb img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--dv-radius-sm); }
.dv-result__type {
	display: inline-block; margin-bottom: 6px;
	font-size: 10.5px; font-weight: 700; letter-spacing: .05em;
	text-transform: uppercase; color: var(--dv-red);
}
.dv-result__title { margin: 0 0 6px; font-size: 16px; }
.dv-result__excerpt { margin: 0 0 8px; font-size: 13.5px; color: var(--dv-muted); }

/* ==========================================================================
   10. CHI TIET SAN PHAM
   ========================================================================== */
.dv-product { padding: 26px 0 10px; }

.dv-product__top {
	display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
	gap: 40px; align-items: start;
	padding-bottom: 32px;
}

/* Gallery */
.dv-gallery__stage {
	position: relative; display: flex; align-items: center;
	background: #fff; border-radius: var(--dv-radius);
}
.dv-gallery__main { flex: 1; min-width: 0; padding: 12px 30px; }
.dv-gallery__main img {
	width: 100%; aspect-ratio: 1 / 1; object-fit: contain;
}
.dv-gallery__nav {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 3;
	width: 34px; height: 34px; padding: 0;
	display: inline-flex; align-items: center; justify-content: center;
	background: #fff; color: var(--dv-navy);
	border: 1px solid var(--dv-line); border-radius: 50%;
	box-shadow: var(--dv-shadow); cursor: pointer;
	transition: all .18s ease;
}
.dv-gallery__nav:hover { background: var(--dv-navy); color: #fff; border-color: var(--dv-navy); }
.dv-gallery__nav--prev { left: 0; }
.dv-gallery__nav--next { right: 0; }

.dv-gallery__thumbs {
	display: flex; gap: 10px; justify-content: center;
	list-style: none; margin: 14px 0 0; padding: 0; flex-wrap: wrap;
}
.dv-gallery__thumb {
	display: block; width: 62px; padding: 4px;
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius-sm); cursor: pointer;
	transition: border-color .18s ease;
}
.dv-gallery__thumb img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; }
.dv-gallery__thumb.is-active,
.dv-gallery__thumb:hover { border-color: var(--dv-navy-3); }

/* Info */
.dv-product__title {
	margin: 0 0 12px;
	font-size: 22px; font-weight: 700; line-height: 1.4;
}
.dv-product__meta {
	display: flex; align-items: center; flex-wrap: wrap;
	gap: 0; margin-bottom: 16px;
	font-size: 13px; color: var(--dv-text-2);
}
.dv-product__metaitem { padding: 0 16px; border-left: 1px solid var(--dv-line); }
.dv-product__metaitem:first-child { padding-left: 0; border-left: 0; }
.dv-product__metaitem strong { color: var(--dv-navy); }
.dv-product__stock {
	display: inline-flex; align-items: center; gap: 5px; color: var(--dv-green);
}
.dv-product__stock--coming { color: var(--dv-amber); }
.dv-product__stock--out { color: var(--dv-muted); }

.dv-product__price {
	margin: 0 0 2px;
	font-size: 27px; font-weight: 800; color: var(--dv-red);
}
.dv-product__vat { margin: 0 0 18px; font-size: 12.5px; color: var(--dv-muted); }

.dv-product__qty { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.dv-product__qtylabel { font-size: 13.5px; color: var(--dv-text-2); }
.dv-qty {
	display: inline-flex; align-items: center;
	border: 1px solid var(--dv-line); border-radius: var(--dv-radius-sm);
	overflow: hidden; background: #fff;
}
.dv-qty button {
	width: 34px; height: 36px; padding: 0;
	display: inline-flex; align-items: center; justify-content: center;
	background: #fff; color: var(--dv-text-2);
	border: 0; cursor: pointer;
}
.dv-qty button:hover { background: var(--dv-bg); color: var(--dv-navy); }
.dv-qty input {
	width: 48px; height: 36px; padding: 0;
	text-align: center; font-size: 14px; font-weight: 600;
	border: 0; border-left: 1px solid var(--dv-line); border-right: 1px solid var(--dv-line);
	-moz-appearance: textfield;
}
.dv-qty input::-webkit-outer-spin-button,
.dv-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.dv-product__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
.dv-product__actions .dv-btn { min-width: 190px; }

.dv-product__trust {
	display: grid; grid-template-columns: repeat(4, 1fr);
	background: var(--dv-bg); border: 1px solid var(--dv-line-2);
	border-radius: var(--dv-radius); overflow: hidden;
}
.dv-trustmini { display: flex; gap: 9px; padding: 14px 12px; }
.dv-product__trust .dv-trustmini:not(:last-child) { border-right: 1px solid var(--dv-line); }
.dv-trustmini__icon { flex: 0 0 auto; color: var(--dv-navy-3); }
.dv-trustmini strong {
	display: block; font-size: 11.5px; font-weight: 600;
	color: var(--dv-navy); line-height: 1.35;
}
.dv-trustmini span { display: block; font-size: 11px; color: var(--dv-muted); }

/* Tabs */
.dv-ptabs {
	display: grid; grid-template-columns: 200px minmax(0, 1fr);
	gap: 20px; margin-bottom: 26px;
}
.dv-ptabs__nav { display: flex; flex-direction: column; gap: 0; }
.dv-ptabs__btn {
	padding: 14px 16px; text-align: left;
	font-size: 12.5px; font-weight: 700; letter-spacing: .04em;
	text-transform: uppercase; color: var(--dv-navy);
	background: #fff; border: 1px solid var(--dv-line);
	border-bottom: 0; cursor: pointer;
	transition: all .18s ease;
}
.dv-ptabs__btn:last-child { border-bottom: 1px solid var(--dv-line); }
.dv-ptabs__btn:first-child { border-radius: var(--dv-radius) var(--dv-radius) 0 0; }
.dv-ptabs__btn:last-child { border-radius: 0 0 var(--dv-radius) var(--dv-radius); }
.dv-ptabs__btn:hover { background: var(--dv-bg); }
.dv-ptabs__btn.is-active { background: var(--dv-navy); border-color: var(--dv-navy); color: #fff; }

.dv-ptabs__panels {
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius); padding: 22px 24px;
}
.dv-ptabs__panel { display: none; }
.dv-ptabs__panel.is-active { display: block; }
.dv-ptabs__title {
	margin: 0 0 14px;
	font-size: 15px; font-weight: 700; letter-spacing: .03em;
	text-transform: uppercase;
}

.dv-checkitems { list-style: none; margin: 16px 0 0; padding: 0; }
.dv-checkitems li {
	display: flex; gap: 9px; margin-bottom: 9px;
	font-size: 13.5px; line-height: 1.6; color: var(--dv-text-2);
}
.dv-checkitems .dv-icon { flex: 0 0 auto; margin-top: 4px; color: var(--dv-green); }

/* Panel (bang thong so / tai lieu) */
.dv-panel {
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius);
	padding: 20px 22px; margin-bottom: 22px;
}
.dv-panel__title {
	margin: 0 0 14px;
	font-size: 15px; font-weight: 700; letter-spacing: .03em;
	text-transform: uppercase;
}
.dv-panel__title--center { text-align: center; }
.dv-panel--center { text-align: center; }
.dv-panel__figure { margin: 0 0 12px; }
.dv-panel__figure img { width: 100%; border-radius: var(--dv-radius-sm); }
.dv-panel__note { margin: 0; font-size: 12.5px; line-height: 1.7; color: var(--dv-muted); text-align: left; }

/* Bang thong so */
.dv-spectable { display: grid; grid-template-columns: 1fr 1fr; gap: 0 30px; }
.dv-spectable__tbl { font-size: 13px; }
.dv-spectable__tbl th,
.dv-spectable__tbl td {
	padding: 9px 12px; text-align: left; vertical-align: top;
	border-bottom: 1px solid var(--dv-line-2);
}
.dv-spectable__tbl th {
	width: 46%; font-weight: 600; color: var(--dv-navy);
	background: var(--dv-bg);
}
.dv-spectable__tbl td { color: var(--dv-text-2); }
.dv-spectable__tbl tr:last-child th,
.dv-spectable__tbl tr:last-child td { border-bottom: 0; }

/* Tai lieu */
.dv-doclist { list-style: none; margin: 0; padding: 0; }
.dv-doc {
	display: flex; align-items: center; gap: 12px;
	padding: 12px 0; border-bottom: 1px solid var(--dv-line-2);
}
.dv-doc:last-child { border-bottom: 0; }
.dv-doc__icon {
	flex: 0 0 auto;
	display: inline-flex; align-items: center; justify-content: center;
	width: 38px; height: 38px; border-radius: var(--dv-radius-sm);
	background: var(--dv-red-soft); color: var(--dv-red);
}
.dv-doc__text { flex: 1; min-width: 0; }
.dv-doc__text strong { display: block; font-size: 13.5px; font-weight: 500; color: var(--dv-text); }
.dv-doc__text em { font-style: normal; font-size: 11.5px; color: var(--dv-muted); }

/* ==========================================================================
   11. TIN TUC & CHI TIET TIN TUC
   ========================================================================== */
.dv-minilist { list-style: none; margin: 0; padding: 10px 14px; }
.dv-mini { display: flex; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--dv-line-2); }
.dv-mini:last-child { border-bottom: 0; }
.dv-mini__thumb { flex: 0 0 68px; }
.dv-mini__thumb img {
	width: 68px; aspect-ratio: 4 / 3; object-fit: cover;
	border-radius: var(--dv-radius-sm);
}
.dv-mini__body { min-width: 0; }
.dv-mini__title {
	display: block; font-size: 12.5px; font-weight: 500;
	line-height: 1.5; color: var(--dv-navy);
}
.dv-mini__title:hover { color: var(--dv-red); }
.dv-mini__date { display: block; margin-top: 3px; font-size: 11.5px; color: var(--dv-muted); }

/* Single post */
.dv-single { padding-bottom: 10px; }
.dv-single__meta {
	display: flex; align-items: center; gap: 10px;
	margin-bottom: 14px; font-size: 12.5px; color: var(--dv-muted);
}
.dv-single__meta .dv-icon { opacity: .5; }
.dv-single__title {
	margin: 0 0 14px;
	font-size: 29px; font-weight: 800; line-height: 1.3;
}
.dv-single__lead {
	margin: 0 0 20px;
	font-size: 15px; line-height: 1.75; color: var(--dv-text-2);
}
.dv-single__cover { margin: 0 0 24px; }
.dv-single__cover img {
	width: 100%; aspect-ratio: 16 / 9; object-fit: cover;
	border-radius: var(--dv-radius);
}
.dv-single__content h2 {
	font-size: 15.5px; color: var(--dv-navy);
	letter-spacing: .02em; margin-top: 28px;
}
.dv-single__tags { margin: 20px 0; font-size: 13px; }
.dv-single__tags span { font-weight: 600; margin-right: 6px; }
.dv-single__tags a {
	display: inline-block; margin: 0 4px 4px 0; padding: 4px 10px;
	background: var(--dv-bg); border-radius: 20px;
	font-size: 12px; color: var(--dv-text-2);
}
.dv-single__tags a:hover { background: var(--dv-navy); color: #fff; }

/* Info cards trong bai viet */
.dv-infocards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 18px 0 24px; }
.dv-infocard {
	padding: 16px 15px; text-align: center;
	background: var(--dv-bg); border: 1px solid var(--dv-line-2);
	border-radius: var(--dv-radius);
}
.dv-infocard__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 38px; height: 38px; margin-bottom: 8px;
	border-radius: 50%; background: #fff; color: var(--dv-navy-3);
	box-shadow: var(--dv-shadow);
}
.dv-infocard h3 { margin: 0 0 5px; font-size: 13px; }
.dv-infocard p { margin: 0; font-size: 11.5px; line-height: 1.6; color: var(--dv-muted); }

/* Criteria list */
.dv-criterialist { list-style: none; margin: 16px 0 24px; padding: 0; }
.dv-criterialist li {
	display: flex; gap: 12px; padding: 13px 15px;
	border: 1px solid var(--dv-line-2); border-radius: var(--dv-radius);
	margin-bottom: 8px; background: #fff;
}
.dv-criterialist__icon { flex: 0 0 auto; color: var(--dv-navy-3); margin-top: 2px; }
.dv-criterialist strong { display: block; font-size: 13.5px; color: var(--dv-navy); margin-bottom: 3px; }
.dv-criterialist p { margin: 0; font-size: 12.5px; line-height: 1.65; color: var(--dv-muted); }

/* Conclusion */
.dv-conclusion {
	display: flex; gap: 14px; padding: 16px 18px; margin: 24px 0;
	background: var(--dv-red-soft); border: 1px solid #f7d3d5;
	border-left: 3px solid var(--dv-red);
	border-radius: 0 var(--dv-radius) var(--dv-radius) 0;
}
.dv-conclusion__icon { flex: 0 0 auto; color: var(--dv-red); margin-top: 2px; }
.dv-conclusion h3 {
	margin: 0 0 5px; font-size: 13px; letter-spacing: .04em;
	text-transform: uppercase; color: var(--dv-red);
}
.dv-conclusion p { margin: 0; font-size: 13px; line-height: 1.7; color: var(--dv-text-2); }

/* Share */
.dv-share {
	display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
	padding: 16px 0; border-top: 1px solid var(--dv-line-2);
}
.dv-share__label { font-size: 13px; color: var(--dv-text-2); margin-right: 4px; }
.dv-share__btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 30px; height: 30px; padding: 0;
	background: var(--dv-bg); color: var(--dv-navy);
	border: 1px solid var(--dv-line); border-radius: 50%; cursor: pointer;
	transition: all .18s ease;
}
.dv-share__btn:hover { background: var(--dv-navy); color: #fff; border-color: var(--dv-navy); }

/* Post nav */
.dv-postnav {
	display: grid; grid-template-columns: 1fr 1fr; gap: 0;
	border: 1px solid var(--dv-line); border-radius: var(--dv-radius);
	overflow: hidden; margin-top: 8px;
}
.dv-postnav__item { min-height: 68px; }
.dv-postnav__item--next { border-left: 1px solid var(--dv-line); }
.dv-postnav__item a {
	display: flex; align-items: center; gap: 12px;
	height: 100%; padding: 14px 16px; color: var(--dv-navy);
}
.dv-postnav__item--next a { justify-content: flex-end; text-align: right; }
.dv-postnav__item a:hover { background: var(--dv-bg); }
.dv-postnav__item .dv-icon { flex: 0 0 auto; color: var(--dv-muted); }
.dv-postnav__item em {
	display: block; font-style: normal; font-size: 11.5px;
	color: var(--dv-muted); margin-bottom: 2px;
}
.dv-postnav__item strong { display: block; font-size: 13px; font-weight: 500; line-height: 1.45; }

/* Comments */
.dv-comments { margin-top: 34px; padding-top: 26px; border-top: 1px solid var(--dv-line); }
.dv-comments__title { font-size: 16px; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 16px; }
.dv-commentlist { list-style: none; margin: 0 0 26px; padding: 0; }
.dv-commentlist .comment-body { padding: 14px 0; border-bottom: 1px solid var(--dv-line-2); font-size: 13.5px; }
.dv-commentlist .children { list-style: none; padding-left: 26px; }
.dv-commentlist .avatar { border-radius: 50%; float: left; margin-right: 12px; }
.dv-commentlist .fn { font-weight: 600; color: var(--dv-navy); }
.dv-commentlist .comment-metadata { font-size: 11.5px; color: var(--dv-muted); }
.comment-respond { margin-top: 20px; }
.comment-form-cookies-consent { display: flex; gap: 8px; align-items: flex-start; font-size: 12.5px; }

/* ==========================================================================
   12. TRANG GIOI THIEU
   ========================================================================== */
.dv-about { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 40px; align-items: start; }
.dv-about__gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dv-about__img img {
	width: 100%; aspect-ratio: 16 / 10; object-fit: cover;
	border-radius: var(--dv-radius-sm);
}

.dv-aboutpoints { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 26px; }
.dv-aboutpoint { text-align: center; }
.dv-aboutpoint__icon { display: block; color: var(--dv-navy-3); margin-bottom: 8px; }
.dv-aboutpoint strong {
	display: block; font-size: 10.5px; font-weight: 700;
	letter-spacing: .05em; color: var(--dv-navy); margin-bottom: 2px;
}
.dv-aboutpoint > span { display: block; font-size: 11px; color: var(--dv-muted); }

/* Timeline */
.dv-timeline {
	position: relative;
	display: grid; grid-template-columns: repeat(6, 1fr);
	gap: 10px; padding-top: 4px;
}
.dv-timeline__rail {
	position: absolute; left: 8%; right: 8%; top: 56px;
	height: 2px; background: var(--dv-line);
}
.dv-timeline__item { position: relative; text-align: center; padding: 0 6px; }
.dv-timeline__year {
	display: block; font-size: 13.5px; font-weight: 700;
	color: var(--dv-navy); margin-bottom: 10px;
}
.dv-timeline__dot {
	position: relative; z-index: 2;
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; margin-bottom: 12px;
	border-radius: 50%; background: var(--dv-navy); color: #fff;
	box-shadow: 0 0 0 4px #fff;
}
.dv-timeline__title {
	margin: 0 0 5px; font-size: 11px; font-weight: 700;
	letter-spacing: .04em; line-height: 1.35;
}
.dv-timeline__desc { margin: 0; font-size: 11px; line-height: 1.55; color: var(--dv-muted); }

/* About grid 3 cot */
.dv-aboutgrid { display: grid; grid-template-columns: 1fr 1.25fr 1.15fr; gap: 18px; align-items: stretch; }
.dv-aboutgrid .dv-panel { margin: 0; }

.dv-values { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.dv-value { text-align: center; }
.dv-value__icon { display: block; color: var(--dv-navy-3); margin-bottom: 8px; }
.dv-value strong {
	display: block; font-size: 10.5px; font-weight: 700;
	letter-spacing: .05em; color: var(--dv-navy); margin-bottom: 5px;
}
.dv-value p { margin: 0; font-size: 10.5px; line-height: 1.5; color: var(--dv-muted); }

.dv-capacity { display: grid; grid-template-columns: minmax(0, 1fr) 130px; gap: 14px; align-items: start; }
.dv-capacity__list { list-style: none; margin: 0; padding: 0; }
.dv-capacity__list li {
	display: flex; gap: 8px; margin-bottom: 12px;
	font-size: 12px; line-height: 1.55; color: var(--dv-text-2);
}
.dv-capacity__list .dv-icon { flex: 0 0 auto; margin-top: 3px; color: var(--dv-navy-3); }
.dv-capacity__img img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--dv-radius-sm); }

/* Brand cards (trang thuong hieu) */
.dv-brandcards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.dv-brandcard {
	display: flex; flex-direction: column; align-items: center; text-align: center;
	padding: 26px 20px;
	background: #fff; border: 1px solid var(--dv-line);
	border-top: 3px solid var(--dv-brand, var(--dv-navy));
	border-radius: var(--dv-radius);
	transition: box-shadow .2s ease, transform .2s ease;
}
.dv-brandcard:hover { box-shadow: var(--dv-shadow-md); transform: translateY(-2px); }
.dv-brandcard__logo { display: block; margin-bottom: 12px; }
.dv-brandcard__tagline { margin: 0 0 8px; font-size: 12.5px; line-height: 1.6; color: var(--dv-muted); }
.dv-brandcard__count { margin: 0 0 14px; font-size: 12px; font-weight: 600; color: var(--dv-navy); }
.dv-brandcard .dv-btn { margin-top: auto; }

/* ==========================================================================
   13. TRANG LIEN HE
   ========================================================================== */
.dv-infogrid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.dv-infobox {
	display: flex; gap: 12px; padding: 18px 16px;
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius);
	transition: box-shadow .2s ease;
}
.dv-infobox:hover { box-shadow: var(--dv-shadow-md); }
.dv-infobox__icon { flex: 0 0 auto; color: var(--dv-navy-3); }
.dv-infobox h3 {
	margin: 0 0 5px; font-size: 11.5px; font-weight: 700;
	letter-spacing: .05em; text-transform: uppercase;
}
.dv-infobox p { margin: 0; font-size: 12.5px; line-height: 1.55; color: var(--dv-text-2); }

.dv-contact { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 24px; align-items: start; }
.dv-contact__side {
	padding: 22px;
	background: var(--dv-bg); border: 1px solid var(--dv-line-2);
	border-radius: var(--dv-radius);
}
.dv-contact__form {
	padding: 22px 24px;
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius);
}
.dv-contact__note { margin: 0 0 18px; font-size: 13px; color: var(--dv-muted); }

.dv-contactlist { list-style: none; margin: 0; padding: 0; }
.dv-contactlist li { display: flex; gap: 12px; margin-bottom: 18px; }
.dv-contactlist li:last-child { margin-bottom: 0; }
.dv-contactlist__icon {
	flex: 0 0 auto;
	display: inline-flex; align-items: center; justify-content: center;
	width: 32px; height: 32px; border-radius: 50%;
	background: #fff; color: var(--dv-navy-3);
	border: 1px solid var(--dv-line);
}
.dv-contactlist strong {
	display: block; font-size: 12.5px; color: var(--dv-red);
	font-weight: 600; margin-bottom: 2px;
}
.dv-contactlist span { font-size: 13px; color: var(--dv-text-2); line-height: 1.6; }

/* Map + chi nhanh */
.dv-maprow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 24px; align-items: start; }
.dv-map {
	height: 320px; overflow: hidden;
	border: 1px solid var(--dv-line); border-radius: var(--dv-radius);
	background: var(--dv-bg);
}
.dv-map iframe { width: 100%; height: 100%; border: 0; display: block; }

.dv-branches__note { margin: -8px 0 16px; font-size: 13px; color: var(--dv-muted); }
.dv-branchlist { list-style: none; margin: 0; padding: 0; }
.dv-branch {
	display: flex; align-items: center; gap: 12px;
	padding: 14px 16px; margin-bottom: 10px;
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius);
	transition: border-color .2s ease, box-shadow .2s ease;
}
.dv-branch:hover { border-color: var(--dv-navy-soft); box-shadow: var(--dv-shadow); }
.dv-branch__icon {
	flex: 0 0 auto;
	display: inline-flex; align-items: center; justify-content: center;
	width: 34px; height: 34px; border-radius: 50%;
	background: var(--dv-navy-soft); color: var(--dv-navy);
}
.dv-branch__body { flex: 1; min-width: 0; }
.dv-branch__body strong { display: block; font-size: 13.5px; color: var(--dv-navy); }
.dv-branch__body span { display: block; font-size: 12.5px; color: var(--dv-muted); }
.dv-branch__phone {
	flex: 0 0 auto;
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 13px; font-weight: 600; color: var(--dv-navy);
}
.dv-branch__phone:hover { color: var(--dv-red); }

/* ==========================================================================
   14. FORM / MODAL
   ========================================================================== */
.dv-field { margin-bottom: 12px; }
.dv-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

.dv-field input[type="text"],
.dv-field input[type="email"],
.dv-field input[type="tel"],
.dv-field input[type="search"],
.dv-field textarea,
.dv-field select {
	width: 100%; padding: 11px 14px;
	font-size: 13.5px; color: var(--dv-text);
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius-sm);
	transition: border-color .18s ease, box-shadow .18s ease;
}
.dv-field textarea { resize: vertical; min-height: 96px; }
.dv-field input:focus,
.dv-field textarea:focus,
.dv-field select:focus {
	outline: none; border-color: var(--dv-navy-3);
	box-shadow: 0 0 0 3px rgba(13, 58, 120, .1);
}
.dv-field ::placeholder { color: #9aa5b8; }
.dv-field--select { margin-bottom: 12px; }

.dv-checkbox {
	display: flex; align-items: flex-start; gap: 9px;
	margin: 4px 0 18px; font-size: 12.5px; color: var(--dv-text-2);
	cursor: pointer;
}
.dv-checkbox input { width: 15px; height: 15px; margin: 2px 0 0; flex: 0 0 auto; accent-color: var(--dv-navy-3); }
.dv-checkbox a { text-decoration: underline; }

.dv-form__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dv-form__note {
	display: flex; align-items: center; justify-content: center; gap: 6px;
	margin: 12px 0 0; font-size: 13px; color: var(--dv-muted);
}
.dv-form__note .dv-icon { color: var(--dv-red); }

/* Modal */
.dv-modal {
	position: fixed; inset: 0; z-index: 200;
	display: flex; align-items: center; justify-content: center;
	padding: 20px;
}
.dv-modal[hidden] { display: none; }
.dv-modal__backdrop { position: absolute; inset: 0; background: rgba(2, 23, 60, .62); }
.dv-modal__dialog {
	position: relative; z-index: 2;
	width: 100%; max-width: 560px;
	max-height: 90vh; overflow-y: auto;
	padding: 30px 30px 26px;
	background: #fff; border-radius: var(--dv-radius-lg);
	box-shadow: var(--dv-shadow-lg);
	animation: dvModalIn .22s ease;
}
@keyframes dvModalIn {
	from { opacity: 0; transform: translateY(14px) scale(.98); }
	to { opacity: 1; transform: none; }
}
.dv-modal__close {
	position: absolute; top: 12px; right: 12px;
	width: 32px; height: 32px; padding: 0;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--dv-bg); color: var(--dv-navy);
	border: 0; border-radius: 50%; cursor: pointer;
}
.dv-modal__close:hover { background: var(--dv-red); color: #fff; }
.dv-modal__title {
	margin: 0 0 4px; font-size: 19px; letter-spacing: .03em;
	text-transform: uppercase; text-align: center;
}
.dv-modal__sub {
	margin: 0 0 20px; font-size: 13px; text-align: center; color: var(--dv-muted);
}
body.dv-modal-open { overflow: hidden; }

/* Lightbox */
.dv-lightbox {
	position: fixed; inset: 0; z-index: 300;
	display: flex; align-items: center; justify-content: center;
	padding: 30px; background: rgba(2, 23, 60, .9);
}
.dv-lightbox img { max-width: 100%; max-height: 100%; border-radius: var(--dv-radius); }
.dv-lightbox__close {
	position: absolute; top: 20px; right: 20px;
	width: 40px; height: 40px; padding: 0;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(255, 255, 255, .16); color: #fff;
	border: 0; border-radius: 50%; cursor: pointer;
}

/* Toast */
.dv-toast {
	position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%);
	z-index: 400;
	padding: 10px 18px; font-size: 13.5px;
	background: var(--dv-navy); color: #fff;
	border-radius: 30px; box-shadow: var(--dv-shadow-md);
	animation: dvToastIn .2s ease;
}
@keyframes dvToastIn { from { opacity: 0; transform: translate(-50%, 10px); } to { opacity: 1; } }


/* ==========================================================================
   14b. WOOCOMMERCE
   ========================================================================== */

/* --- Nut gio hang tren header --- */
.dv-cartbtn {
	position: relative;
	display: inline-flex; align-items: center; justify-content: center;
	width: 42px; height: 42px; flex: 0 0 auto;
	color: var(--dv-navy);
	border: 1px solid var(--dv-line); border-radius: var(--dv-radius-sm);
	transition: all .18s ease;
}
.dv-cartbtn:hover { border-color: var(--dv-navy); background: var(--dv-navy); color: #fff; }
.dv-cartbtn__count {
	position: absolute; top: -6px; right: -6px;
	min-width: 18px; height: 18px; padding: 0 5px;
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 10.5px; font-weight: 700; line-height: 1;
	background: var(--dv-red); color: #fff; border-radius: 10px;
	border: 2px solid #fff;
}
.dv-cartbtn__count.is-empty { display: none; }

/* --- Thong bao dang loc --- */
.dv-activefilters {
	display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
	margin: -6px 0 16px; padding: 9px 14px;
	font-size: 12.5px; color: var(--dv-text-2);
	background: var(--dv-navy-soft); border-radius: var(--dv-radius-sm);
}
.dv-activefilters .dv-icon { color: var(--dv-navy-3); }
.dv-activefilters a {
	display: inline-flex; align-items: center; gap: 4px;
	margin-left: auto; font-weight: 600; color: var(--dv-red);
}

/* --- Danh muc con trong sidebar --- */
.dv-catlist__sub > ul { list-style: none; margin: 0; padding: 0; background: var(--dv-bg); }
.dv-catlist__sub > ul > li > a { padding-left: 30px; font-size: 12.5px; }
.dv-catlist__sub > ul > li > a::before {
	content: '−'; margin-right: 6px; opacity: .45;
}

/* --- Gia tren the san pham (HTML gia cua WooCommerce) --- */
.dv-pcard__price {
	margin: 0 0 5px;
	font-size: 16px; font-weight: 700; color: var(--dv-red);
	line-height: 1.4;
}
.dv-pcard__price del {
	display: inline-block; margin-right: 6px;
	font-size: 12.5px; font-weight: 400; color: var(--dv-muted);
	text-decoration: line-through;
}
.dv-pcard__price ins { text-decoration: none; }
.dv-pcard__price .woocommerce-Price-currencySymbol { font-size: .85em; }

.dv-pcard__actions { margin-top: auto; display: flex; flex-direction: column; gap: 7px; }
.dv-pcard__cart { font-size: 11px; padding: 8px 10px; }
.dv-pcard__cart.loading { opacity: .6; pointer-events: none; }
.dv-pcard__cart.added::after { content: ' ✓'; }
.dv-pcard .added_to_cart { display: none; }

/* --- Gia trang chi tiet --- */
.dv-product__price {
	margin: 0 0 2px;
	font-size: 27px; font-weight: 800; color: var(--dv-red);
	line-height: 1.25;
}
.dv-product__price del {
	display: inline-block; margin-right: 10px;
	font-size: 17px; font-weight: 500; color: var(--dv-muted);
	text-decoration: line-through;
}
.dv-product__price ins { text-decoration: none; }

.dv-product__short {
	margin-bottom: 18px; padding-bottom: 16px;
	font-size: 13.5px; line-height: 1.75; color: var(--dv-text-2);
	border-bottom: 1px solid var(--dv-line-2);
}
.dv-product__short p:last-child { margin-bottom: 0; }

.dv-product__cart { margin: 0; }
.dv-product__actions--single { margin-bottom: 14px; }

/* --- Nhan giam gia mac dinh cua Woo (neu plugin nao con dung) --- */
.woocommerce span.onsale {
	position: absolute; top: 10px; right: 10px; z-index: 3;
	padding: 3px 9px;
	font-size: 10px; font-weight: 700; letter-spacing: .06em;
	background: var(--dv-amber); color: #fff; border-radius: 3px;
}

/* --- Thong bao WooCommerce --- */
.dv-wcnotices { padding-top: 16px; }
.dv-wcnotices:empty { padding: 0; }

.woocommerce-message,
.woocommerce-error,
.woocommerce-info,
.woocommerce-noreviews,
p.no-comments {
	display: flex; align-items: center; flex-wrap: wrap; gap: 10px;
	margin: 0 0 16px; padding: 13px 18px;
	list-style: none;
	font-size: 13.5px; line-height: 1.6;
	border: 1px solid transparent; border-left-width: 3px;
	border-radius: 0 var(--dv-radius-sm) var(--dv-radius-sm) 0;
}
.woocommerce-message {
	background: #eaf8ef; border-color: #b8e6c8; border-left-color: var(--dv-green); color: #17703c;
}
.woocommerce-error {
	background: var(--dv-red-soft); border-color: #f6c5c7; border-left-color: var(--dv-red); color: #a3151b;
	flex-direction: column; align-items: flex-start;
}
.woocommerce-error li { list-style: none; }
.woocommerce-info,
.woocommerce-noreviews {
	background: var(--dv-navy-soft); border-color: #c9d8ee; border-left-color: var(--dv-navy-3); color: var(--dv-navy);
}
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button { margin-left: auto; }

/* ==========================================================================
   14c. TRANG GIO HANG / THANH TOAN / TAI KHOAN / DANH GIA
   (markup mac dinh cua WooCommerce, chi can style lai)
   ========================================================================== */
.dv-wcform { font-size: 14px; color: var(--dv-text-2); }

/* Nut */
.dv-wcform .button,
.dv-wcform button[type="submit"],
.dv-wcform input[type="submit"],
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button,
.dv-wcform .woocommerce-Button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 11px 20px;
	font-size: 12.5px; font-weight: 700; letter-spacing: .04em;
	text-transform: uppercase;
	background: var(--dv-navy); color: #fff;
	border: 1px solid var(--dv-navy); border-radius: var(--dv-radius-sm);
	cursor: pointer; text-align: center;
	transition: background .18s ease, border-color .18s ease;
}
.dv-wcform .button:hover,
.dv-wcform button[type="submit"]:hover,
.dv-wcform input[type="submit"]:hover,
.woocommerce-message .button:hover,
.woocommerce-info .button:hover { background: var(--dv-navy-2); border-color: var(--dv-navy-2); color: #fff; }

.dv-wcform .checkout-button,
.dv-wcform #place_order,
.dv-wcform .single_add_to_cart_button {
	background: var(--dv-red); border-color: var(--dv-red);
}
.dv-wcform .checkout-button:hover,
.dv-wcform #place_order:hover,
.dv-wcform .single_add_to_cart_button:hover { background: var(--dv-red-dark); border-color: var(--dv-red-dark); }

.dv-wcform .button.wc-backward,
.dv-wcform .button[name="update_cart"] {
	background: #fff; color: var(--dv-navy); border-color: var(--dv-line);
}
.dv-wcform .button.wc-backward:hover,
.dv-wcform .button[name="update_cart"]:hover { background: var(--dv-bg); color: var(--dv-navy); border-color: var(--dv-navy); }
.dv-wcform .button:disabled,
.dv-wcform .button[disabled] { opacity: .5; cursor: not-allowed; }

/* Input */
.dv-wcform input[type="text"],
.dv-wcform input[type="email"],
.dv-wcform input[type="tel"],
.dv-wcform input[type="password"],
.dv-wcform input[type="number"],
.dv-wcform input[type="search"],
.dv-wcform textarea,
.dv-wcform select,
.dv-wcform .select2-selection {
	width: 100%; padding: 11px 14px;
	font-size: 13.5px; color: var(--dv-text);
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius-sm);
	transition: border-color .18s ease, box-shadow .18s ease;
}
.dv-wcform textarea { min-height: 96px; resize: vertical; }
.dv-wcform input:focus,
.dv-wcform textarea:focus,
.dv-wcform select:focus {
	outline: none; border-color: var(--dv-navy-3);
	box-shadow: 0 0 0 3px rgba(13, 58, 120, .1);
}
.dv-wcform .select2-container--default .select2-selection--single { height: auto; }
.dv-wcform label { display: block; margin-bottom: 5px; font-size: 13px; font-weight: 500; color: var(--dv-navy); }
.dv-wcform .required { color: var(--dv-red); text-decoration: none; }
.dv-wcform .form-row { margin-bottom: 14px; }
.dv-wcform .form-row-first,
.dv-wcform .form-row-last { width: 100%; }

/* Bang (gio hang, chi tiet don, dia chi) */
.dv-wcform table {
	width: 100%; margin-bottom: 22px;
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius); border-collapse: collapse;
	overflow: hidden;
}
.dv-wcform table th,
.dv-wcform table td {
	padding: 13px 14px; text-align: left; vertical-align: middle;
	border-bottom: 1px solid var(--dv-line-2); font-size: 13.5px;
}
.dv-wcform table thead th {
	background: var(--dv-navy); color: #fff;
	font-size: 11.5px; font-weight: 700; letter-spacing: .05em;
	text-transform: uppercase; border-bottom: 0;
}
.dv-wcform table tbody tr:last-child td { border-bottom: 0; }
.dv-wcform table tfoot th,
.dv-wcform table tfoot td { background: var(--dv-bg); font-weight: 600; color: var(--dv-navy); }
.dv-wcform table .order-total th,
.dv-wcform table .order-total td { font-size: 15px; }
.dv-wcform table .order-total .amount,
.dv-wcform table .woocommerce-Price-amount { color: var(--dv-red); font-weight: 700; }
.dv-wcform .product-thumbnail img { width: 62px; border-radius: var(--dv-radius-sm); }
.dv-wcform .product-remove a.remove {
	display: inline-flex; align-items: center; justify-content: center;
	width: 24px; height: 24px;
	font-size: 18px; line-height: 1; text-decoration: none;
	color: var(--dv-red) !important; background: var(--dv-red-soft);
	border-radius: 50%;
}
.dv-wcform .product-remove a.remove:hover { background: var(--dv-red); color: #fff !important; }
.dv-wcform .product-name a { color: var(--dv-navy); font-weight: 500; }
.dv-wcform .product-name a:hover { color: var(--dv-red); }

/* O so luong mac dinh cua Woo */
.dv-wcform .quantity { display: inline-flex; }
.dv-wcform .quantity input[type="number"] {
	width: 78px; padding: 9px 8px; text-align: center; font-weight: 600;
	-moz-appearance: textfield;
}
.dv-wcform .quantity input::-webkit-outer-spin-button,
.dv-wcform .quantity input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Coupon */
.dv-wcform .coupon { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.dv-wcform .coupon input[type="text"] { max-width: 220px; }
.dv-wcform .actions { background: var(--dv-bg); }
.dv-wcform .actions > .button { float: right; }

/* Tong gio hang */
.dv-wcform .cart-collaterals { margin-top: 10px; }
.dv-wcform .cart_totals h2,
.dv-wcform .woocommerce-billing-fields h3,
.dv-wcform .woocommerce-additional-fields h3,
.dv-wcform #order_review_heading,
.dv-wcform .woocommerce-order-details h2,
.dv-wcform .woocommerce-column h2,
.dv-wcform .woocommerce-Address-title h3 {
	font-size: 15px; font-weight: 700; letter-spacing: .03em;
	text-transform: uppercase; color: var(--dv-navy);
	margin: 0 0 14px; padding-bottom: 10px;
	border-bottom: 2px solid var(--dv-red);
	display: inline-block;
}
.dv-wcform .cross-sells h2 { font-size: 15px; text-transform: uppercase; }

/* Checkout 2 cot */
.dv-wcform form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
	grid-template-rows: auto 1fr;
	gap: 14px 30px;
	align-content: start;
}
.dv-wcform form.checkout > .col2-set,
.dv-wcform form.checkout > #customer_details { grid-column: 1; grid-row: 1 / span 2; }
.dv-wcform form.checkout > h3#order_review_heading { grid-column: 2; grid-row: 1; margin-bottom: 0; }
.dv-wcform form.checkout > #order_review { grid-column: 2; grid-row: 2; }
/* Cac phan tu khac Woo chen vao (thong bao, coupon...) xuong duoi cung */
.dv-wcform form.checkout > .woocommerce-NoticeGroup,
.dv-wcform form.checkout > .woocommerce-form-login,
.dv-wcform form.checkout > .woocommerce-form-coupon { grid-column: 1 / -1; grid-row: auto; }
.dv-wcform #order_review {
	padding: 20px; background: #fff;
	border: 1px solid var(--dv-line); border-radius: var(--dv-radius);
}
.dv-wcform #order_review table { border: 0; margin-bottom: 14px; }
.dv-wcform .col2-set .col-1,
.dv-wcform .col2-set .col-2 { width: 100%; }
.dv-wcform .woocommerce-checkout-payment {
	background: var(--dv-bg); border-radius: var(--dv-radius); padding: 16px;
}
.dv-wcform .wc_payment_methods { list-style: none; margin: 0 0 14px; padding: 0; }
.dv-wcform .wc_payment_methods li { margin-bottom: 10px; }
.dv-wcform .payment_box {
	margin-top: 8px; padding: 12px 14px;
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius-sm); font-size: 13px;
}
.dv-wcform .woocommerce-terms-and-conditions-wrapper { margin-bottom: 14px; font-size: 13px; }

/* Tai khoan */
.dv-wcform .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.dv-wcform .woocommerce-MyAccount-navigation li a {
	display: block; padding: 11px 16px;
	font-size: 13.5px; color: var(--dv-text-2);
	background: #fff; border: 1px solid var(--dv-line);
	border-bottom: 0;
}
.dv-wcform .woocommerce-MyAccount-navigation li:first-child a { border-radius: var(--dv-radius) var(--dv-radius) 0 0; }
.dv-wcform .woocommerce-MyAccount-navigation li:last-child a { border-bottom: 1px solid var(--dv-line); border-radius: 0 0 var(--dv-radius) var(--dv-radius); }
.dv-wcform .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--dv-navy); border-color: var(--dv-navy); color: #fff; font-weight: 600;
}
.dv-wcform .woocommerce-MyAccount-navigation li a:hover { background: var(--dv-bg); color: var(--dv-red); }
.dv-wcform .woocommerce-MyAccount-navigation { float: left; width: 24%; }
.dv-wcform .woocommerce-MyAccount-content { float: right; width: 72%; }
.dv-wcform .woocommerce-MyAccount-content::after { content: ''; display: table; clear: both; }
.dv-wcform .u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.dv-wcform .u-column1,
.dv-wcform .u-column2 { width: 100%; }
.dv-wcform form.login,
.dv-wcform form.register,
.dv-wcform form.woocommerce-form-login {
	padding: 20px; background: #fff;
	border: 1px solid var(--dv-line); border-radius: var(--dv-radius);
}

/* Danh gia san pham */
.dv-wcform #reviews #comments > h2 { display: none; }
.dv-wcform .commentlist { list-style: none; margin: 0 0 24px; padding: 0; }
.dv-wcform .commentlist li { margin-bottom: 14px; }
.dv-wcform .comment_container {
	display: flex; gap: 14px; padding: 14px;
	background: #fff; border: 1px solid var(--dv-line); border-radius: var(--dv-radius);
}
.dv-wcform .comment_container img.avatar { width: 44px; height: 44px; border-radius: 50%; flex: 0 0 auto; }
.dv-wcform .comment-text { flex: 1; min-width: 0; }
.dv-wcform .star-rating,
.dv-wcform .stars { color: var(--dv-amber); }
.dv-wcform .comment-form-rating { margin-bottom: 14px; }
.dv-wcform .woocommerce-review__author { font-weight: 600; color: var(--dv-navy); }
.dv-wcform .woocommerce-review__published-date { font-size: 12px; color: var(--dv-muted); }

/* Bien the san pham */
.dv-wcform table.variations { border: 0; margin-bottom: 14px; }
.dv-wcform table.variations th,
.dv-wcform table.variations td { border: 0; padding: 6px 0; }
.dv-wcform table.variations thead th { background: none; color: inherit; }
.dv-wcform .woocommerce-variation-price { margin-bottom: 12px; font-size: 20px; font-weight: 700; color: var(--dv-red); }
.dv-wcform .reset_variations {
	display: inline-block; margin-top: 6px;
	font-size: 12.5px; color: var(--dv-red);
}
.dv-wcform .woocommerce-variation-add-to-cart { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

/* Phan trang cua WooCommerce tren trang danh muc */
.woocommerce-pagination { margin-top: 28px; }
.woocommerce-pagination ul.page-numbers {
	display: flex; align-items: center; justify-content: center; gap: 7px;
	list-style: none; margin: 0; padding: 0; flex-wrap: wrap; border: 0;
}
.woocommerce-pagination ul.page-numbers li { border: 0; margin: 0; }
.woocommerce-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 34px; height: 34px; padding: 0 9px;
	font-size: 13.5px; font-weight: 600; color: var(--dv-text-2);
	background: #fff; border: 1px solid var(--dv-line);
	border-radius: var(--dv-radius-sm); text-decoration: none;
}
.woocommerce-pagination a.page-numbers:hover { border-color: var(--dv-navy); color: var(--dv-navy); }
.woocommerce-pagination .page-numbers.current {
	background: var(--dv-navy); border-color: var(--dv-navy); color: #fff;
}
.woocommerce-pagination .page-numbers.dots { border-color: transparent; background: transparent; }

/* Phan trang cua Woo trong .dv-wcform */
.dv-wcform .woocommerce-pagination ul {
	display: flex; gap: 7px; justify-content: center;
	list-style: none; margin: 0; padding: 0; border: 0;
}
.dv-wcform .woocommerce-pagination li { border: 0; }

/* Don hang */
.dv-wcform .woocommerce-order-overview {
	display: flex; flex-wrap: wrap; gap: 16px;
	list-style: none; margin: 0 0 24px; padding: 18px;
	background: var(--dv-bg); border-radius: var(--dv-radius);
}
.dv-wcform .woocommerce-order-overview li { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--dv-muted); }
.dv-wcform .woocommerce-order-overview li strong {
	display: block; margin-top: 4px;
	font-size: 14px; text-transform: none; letter-spacing: 0; color: var(--dv-navy);
}

/* ==========================================================================
   15. RESPONSIVE
   ========================================================================== */

/* ---------- <= 1400px ---------- */
@media (max-width: 1400px) {
	.dv-menu > .dv-menu-item > a { padding: 10px 7px; font-size: 12px; }
	.dv-menu > .dv-menu-item > a::after { left: 7px; right: 7px; }
}

/* ---------- <= 1280px ---------- */
@media (max-width: 1280px) {
	.dv-menu > .dv-menu-item > a { padding: 10px 6px; font-size: 11.5px; letter-spacing: .01em; }
	.dv-menu > .dv-menu-item > a::after { left: 6px; right: 6px; }
	.dv-header__cta { padding: 10px 11px; font-size: 11px; }
	.dv-logo__text strong { font-size: 18px; }
	.dv-logo__mark svg { width: 40px; height: 29px; }
	.dv-cartbtn { width: 38px; height: 38px; }

	.dv-mega__inner { grid-template-columns: 232px minmax(0, 1fr) minmax(0, 1fr) 280px; }
	.dv-mega__col { padding: 14px 14px 16px; }
	.dv-mega__promo { padding: 18px 18px 22px; }
	.dv-mega__promotitle { font-size: 19px; }
	.dv-slider__item,
	.dv-slider__item--rel,
	.dv-brandblock__slider .dv-slider__item { flex: 0 0 calc((100% - 36px) / 4); }
}

/* ---------- <= 1120px: thu gon them cho vua 1 dong ---------- */
@media (max-width: 1120px) {
	.dv-menu > .dv-menu-item > a { padding: 10px 5px; font-size: 11px; }
	.dv-menu > .dv-menu-item > a::after { left: 5px; right: 5px; }
	.dv-header__cta { padding: 10px 10px; font-size: 10.5px; gap: 6px; }
	.dv-header__inner { gap: 12px; }
}

/* ---------- <= 1100px ---------- */
@media (max-width: 1100px) {
	.dv-topbar__address { display: none; }

	.dv-statsbar__box { grid-template-columns: repeat(3, 1fr); }
	.dv-statsbar__box .dv-stat:nth-child(3n) { border-right: 0; }
	.dv-statsbar__box .dv-stat:nth-child(-n+3) { border-bottom: 1px solid var(--dv-line-2); }

	.dv-statsband__inner { grid-template-columns: repeat(3, 1fr); gap: 22px; }

	.dv-reasons { grid-template-columns: repeat(3, 1fr); }
	.dv-featurestrip__box,
	.dv-truststrip__box { grid-template-columns: repeat(3, 1fr); }
	.dv-featurestrip__box .dv-featureitem,
	.dv-truststrip__box .dv-trustitem { border-right: 0 !important; border-bottom: 1px solid var(--dv-line); }

	.dv-brandrow { grid-template-columns: repeat(4, 1fr); }
	.dv-brandrow__item,
	.dv-brandrow__more { border-left: 1px solid var(--dv-line-2); border-top: 1px solid var(--dv-line-2); }

	.dv-trio { grid-template-columns: 1fr; gap: 34px; }
	.dv-tilegrid--2 { grid-template-columns: repeat(4, 1fr); }
	.dv-certgrid { grid-template-columns: repeat(6, 1fr); }

	/* Mega menu: bo cot san pham noi bat cho du cho */
	.dv-mega__inner { grid-template-columns: 220px minmax(0, 1fr) 260px; }
	.dv-mega__col--products { display: none; }

	.dv-layout--sidebar-left,
	.dv-layout--sidebar-right { grid-template-columns: 1fr; }
	.dv-layout--sidebar-right .dv-sidebar { order: 2; }

	/* Tren mobile: noi dung chinh len truoc, bo loc xuong duoi va co the thu gon */
	.dv-layout--sidebar-left .dv-main { order: 1; }
	.dv-layout--sidebar-left .dv-sidebar { order: 2; }

	.dv-sidebar__toggle {
		display: flex; align-items: center; justify-content: center; gap: 8px;
		width: 100%; padding: 12px 16px;
		font-size: 12.5px; font-weight: 700; letter-spacing: .04em;
		text-transform: uppercase; color: var(--dv-navy);
		background: #fff; border: 1px solid var(--dv-line);
		border-radius: var(--dv-radius-sm); cursor: pointer;
	}
	.dv-sidebar__toggle .dv-icon:last-child { transition: transform .2s ease; }
	.dv-sidebar.is-open .dv-sidebar__toggle .dv-icon:last-child { transform: rotate(180deg); }
	.dv-sidebar__body { display: none; flex-direction: column; gap: 16px; }
	.dv-sidebar.is-open .dv-sidebar__body { display: flex; }

	.dv-pgrid--4 { grid-template-columns: repeat(3, 1fr); }
	.dv-newsgrid--4 { grid-template-columns: repeat(2, 1fr); }

	.dv-product__top { grid-template-columns: 1fr; gap: 26px; }
	.dv-gallery { max-width: 460px; margin: 0 auto; }
	.dv-ptabs { grid-template-columns: 1fr; }
	.dv-ptabs__nav { flex-direction: row; overflow-x: auto; }
	.dv-ptabs__btn {
		flex: 0 0 auto; border-bottom: 1px solid var(--dv-line) !important;
		border-radius: var(--dv-radius-sm) !important;
	}
	.dv-ptabs__btn:not(:last-child) { border-right: 0; }

	.dv-about { grid-template-columns: 1fr; }
	.dv-aboutgrid { grid-template-columns: 1fr; }
	.dv-timeline { grid-template-columns: repeat(3, 1fr); row-gap: 30px; }
	.dv-timeline__rail { display: none; }

	.dv-infogrid { grid-template-columns: repeat(3, 1fr); }
	.dv-contact { grid-template-columns: 1fr; }
	.dv-maprow { grid-template-columns: 1fr; }
	.dv-brandcards { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- <= 980px : menu mobile ---------- */
@media (max-width: 980px) {
	.dv-burger { display: inline-flex; }
	.dv-header__cta { display: none; }
	.dv-cartbtn { width: 40px; height: 40px; }

	.dv-nav {
		position: fixed; top: 0; right: 0; bottom: 0; z-index: 120;
		width: 320px; max-width: 88vw;
		display: flex; flex-direction: column;
		background: #fff; box-shadow: -8px 0 30px rgba(2, 23, 60, .2);
		transform: translateX(100%); transition: transform .28s ease;
		overflow-y: auto; margin-left: 0;
	}
	body.dv-nav-open .dv-nav { transform: none; }
	body.dv-nav-open::after {
		content: ''; position: fixed; inset: 0; z-index: 110;
		background: rgba(2, 23, 60, .5);
	}
	body.dv-nav-open { overflow: hidden; }

	.dv-nav__mobilehead {
		display: flex; align-items: center; justify-content: space-between;
		padding: 16px 18px; border-bottom: 1px solid var(--dv-line);
		font-size: 12.5px; font-weight: 700; letter-spacing: .05em;
		text-transform: uppercase; color: var(--dv-navy);
	}
	.dv-nav__close {
		width: 34px; height: 34px; padding: 0;
		display: inline-flex; align-items: center; justify-content: center;
		background: var(--dv-bg); color: var(--dv-navy);
		border: 0; border-radius: 50%; cursor: pointer;
	}

	.dv-menu { flex-direction: column; align-items: stretch; gap: 0; padding: 8px 0; }
	.dv-menu-item { border-bottom: 1px solid var(--dv-line-2); }
	.dv-menu > .dv-menu-item > a { padding: 13px 18px; font-size: 13px; }
	.dv-menu > .dv-menu-item > a::after { display: none; }
	.dv-menu-caret { display: none; }

	.dv-submenu {
		position: static; opacity: 1; visibility: visible; transform: none;
		display: none; min-width: 0; padding: 0 0 8px;
		border: 0; box-shadow: none; background: var(--dv-bg);
	}
	.dv-menu-item.is-open > .dv-submenu { display: block; }

	/* Mega menu trong drawer: xep doc, chi giu thuong hieu + nhom san pham */
	.dv-menu-item.dv-has-mega { position: relative; }
	.dv-mega {
		position: static; padding: 0;
		opacity: 1; visibility: visible; transform: none;
		display: none;
	}
	.dv-menu-item.dv-has-mega.is-open > .dv-mega { display: block; }
	.dv-mega__inner {
		grid-template-columns: 1fr; max-width: none;
		border: 0; border-radius: 0; box-shadow: none;
		background: var(--dv-bg);
	}
	.dv-mega__col { padding: 10px 14px 14px; }
	.dv-mega__col + .dv-mega__col { border-left: 0; border-top: 1px solid var(--dv-line); }
	.dv-mega__col--products,
	.dv-mega__promo { display: none; }
	.dv-mega__head { font-size: 11.5px; }
	.dv-mega__head--boxed { padding: 10px 12px; }
	.dv-submenu .dv-menu-item { border-bottom: 0; }
	.dv-submenu .dv-menu-item > a { padding: 9px 30px; font-size: 13px; }

	.dv-submenu-toggle {
		display: inline-flex; align-items: center; justify-content: center;
		position: absolute; top: 4px; right: 8px;
		width: 38px; height: 38px; padding: 0;
		background: none; border: 0; color: var(--dv-navy); cursor: pointer;
		transition: transform .2s ease;
	}
	.dv-menu-item.is-open > .dv-submenu-toggle { transform: rotate(180deg); }

	.dv-nav__mobilefoot {
		display: block; margin-top: auto;
		padding: 16px 18px; border-top: 1px solid var(--dv-line);
	}
	.dv-nav__phone {
		display: flex; align-items: center; justify-content: center; gap: 7px;
		margin-top: 10px; font-size: 15px; font-weight: 700; color: var(--dv-navy);
	}

	.dv-hero__title { font-size: 32px; }
	.dv-hero__eyebrow { font-size: 20px; }
	.dv-pagehero__title,
	.dv-pagehero--lg .dv-pagehero__title { font-size: 25px; }

	.dv-footer__top { grid-template-columns: repeat(2, 1fr); gap: 26px; }
	.dv-footer__brand { grid-column: 1 / -1; }
}

/* ---------- <= 760px ---------- */
@media (max-width: 760px) {
	.dv-section { padding: 32px 0; }
	.dv-section--tight { padding: 26px 0; }

	.dv-topbar__inner { justify-content: center; min-height: 32px; }
	.dv-topbar__tagline { display: none; }

	.dv-hero__inner { padding: 34px 20px; }
	.dv-hero__title { font-size: 26px; }
	.dv-hero__eyebrow { font-size: 17px; }
	.dv-hero__sub { font-size: 13.5px; }
	.dv-hero__actions .dv-btn { flex: 1; }

	.dv-statsbar { margin-top: -18px; }
	.dv-statsbar__box { grid-template-columns: repeat(2, 1fr); }
	.dv-statsbar__box .dv-stat { border-right: 0 !important; border-bottom: 1px solid var(--dv-line-2); }
	.dv-statsbar__box .dv-stat:nth-child(odd) { border-right: 1px solid var(--dv-line-2) !important; }

	.dv-statsband__inner { grid-template-columns: repeat(2, 1fr); }

	.dv-reasons { grid-template-columns: repeat(2, 1fr); }
	.dv-featurestrip__box,
	.dv-featurestrip__box--4,
	.dv-truststrip__box { grid-template-columns: repeat(2, 1fr); }

	.dv-brandrow { grid-template-columns: repeat(2, 1fr); }
	.dv-brandrow__more { grid-column: 1 / -1; }

	.dv-tilegrid--4 { grid-template-columns: repeat(2, 1fr); }
	.dv-tilegrid--2 { grid-template-columns: repeat(2, 1fr); }
	.dv-certgrid { grid-template-columns: repeat(3, 1fr); }

	.dv-ctabanner__box { flex-direction: column; text-align: center; }
	.dv-ctabanner__text h2 { font-size: 15px; }

	.dv-brandblock { grid-template-columns: 1fr; }
	.dv-slider__item,
	.dv-slider__item--rel,
	.dv-brandblock__slider .dv-slider__item { flex: 0 0 calc((100% - 12px) / 2); }
	.dv-slider__nav { display: none; }

	.dv-pgrid--4,
	.dv-pgrid--3 { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.dv-newsgrid--4,
	.dv-newsgrid--3 { grid-template-columns: 1fr; }

	.dv-listhead { align-items: flex-start; }
	.dv-sortform { width: 100%; }
	.dv-sortform .dv-select { flex: 1; }

	.dv-product__title { font-size: 18px; }
	.dv-product__price { font-size: 23px; }
	.dv-product__meta { gap: 8px 0; }
	.dv-product__metaitem { padding: 0 10px; }
	.dv-product__metaitem:first-child { padding-left: 0; }
	.dv-product__actions .dv-btn { flex: 1; min-width: 0; }
	.dv-product__trust { grid-template-columns: repeat(2, 1fr); }
	.dv-product__trust .dv-trustmini { border-right: 0 !important; border-bottom: 1px solid var(--dv-line); }
	.dv-spectable { grid-template-columns: 1fr; }
	.dv-panel { padding: 16px; }
	.dv-ptabs__panels { padding: 16px; }
	.dv-doc { flex-wrap: wrap; }

	.dv-single__title { font-size: 22px; }
	.dv-single__lead { font-size: 14px; }
	.dv-infocards { grid-template-columns: 1fr; }
	.dv-postnav { grid-template-columns: 1fr; }
	.dv-postnav__item--next { border-left: 0; border-top: 1px solid var(--dv-line); }
	.dv-postnav__item--next a { justify-content: flex-start; text-align: left; flex-direction: row-reverse; }

	.dv-about__gallery { grid-template-columns: 1fr 1fr; }
	.dv-aboutpoints { grid-template-columns: repeat(2, 1fr); gap: 18px; }
	.dv-timeline { grid-template-columns: repeat(2, 1fr); }
	.dv-values { grid-template-columns: repeat(2, 1fr); gap: 16px; }
	.dv-capacity { grid-template-columns: 1fr; }
	.dv-capacity__img { max-width: 200px; }
	.dv-brandcards { grid-template-columns: 1fr; }

	.dv-infogrid { grid-template-columns: 1fr; }
	.dv-contact__side,
	.dv-contact__form { padding: 18px; }
	.dv-form__row { grid-template-columns: 1fr; gap: 0; }
	.dv-form__actions { grid-template-columns: 1fr; }
	.dv-branch { flex-wrap: wrap; }
	.dv-branch__phone { width: 100%; padding-left: 46px; }

	.dv-result { grid-template-columns: 1fr; }
	.dv-result__thumb { max-width: 220px; }

	/* WooCommerce */
	.dv-wcform form.checkout { grid-template-columns: 1fr; grid-template-rows: none; }
	.dv-wcform form.checkout > .col2-set,
	.dv-wcform form.checkout > #customer_details,
	.dv-wcform form.checkout > h3#order_review_heading,
	.dv-wcform form.checkout > #order_review { grid-column: 1; grid-row: auto; }
	.dv-wcform .u-columns { grid-template-columns: 1fr; }
	.dv-wcform .woocommerce-MyAccount-navigation,
	.dv-wcform .woocommerce-MyAccount-content { float: none; width: 100%; }
	.dv-wcform .woocommerce-MyAccount-content { margin-top: 18px; }
	/* Bang WooCommerce xep doc tren mobile */
	.dv-wcform table thead { display: none; }
	.dv-wcform .shop_table tbody td {
		display: flex; align-items: center; justify-content: space-between; gap: 12px;
		text-align: right;
	}
	.dv-wcform .shop_table tbody td::before {
		content: attr(data-title); flex: 0 0 auto;
		font-size: 11.5px; font-weight: 700; letter-spacing: .04em;
		text-transform: uppercase; color: var(--dv-muted); text-align: left;
	}
	.dv-wcform .shop_table tbody td.product-remove::before,
	.dv-wcform .shop_table tbody td.product-thumbnail::before,
	.dv-wcform .shop_table tbody td.product-name::before,
	.dv-wcform .shop_table tbody td.actions::before { content: none; }

	/* Moi dong gio hang thanh 1 the gon */
	.dv-wcform .shop_table.cart tbody tr.cart_item {
		position: relative; display: block;
		padding: 14px 46px 12px 14px;
		border-bottom: 1px solid var(--dv-line);
	}
	.dv-wcform .shop_table.cart tbody tr.cart_item:last-of-type { border-bottom: 0; }
	.dv-wcform .shop_table.cart tbody tr.cart_item > td { padding: 5px 0; border: 0; }
	.dv-wcform .shop_table.cart tbody td.product-remove {
		position: absolute; top: 12px; right: 12px; padding: 0; display: block;
	}
	.dv-wcform .shop_table.cart tbody td.product-thumbnail {
		display: block; text-align: left; padding-bottom: 8px;
	}
	.dv-wcform .shop_table.cart tbody td.product-thumbnail img { width: 56px; }
	.dv-wcform .shop_table.cart tbody td.product-name {
		display: block; text-align: left; padding-bottom: 8px;
		font-size: 14px; font-weight: 600; line-height: 1.45;
	}

	/* Dong "actions" (coupon + cap nhat) */
	.dv-wcform .shop_table tbody tr:has(> td.actions) { display: block; }
	.dv-wcform .shop_table tbody td.actions { display: block; padding: 14px; }
	.dv-wcform .actions > .button { float: none; width: 100%; margin-top: 10px; }
	.dv-wcform .coupon { flex-direction: column; align-items: stretch; }
	.dv-wcform .coupon label { margin-bottom: 0; }
	.dv-wcform .coupon input[type="text"] { max-width: none; flex: 1; }
	.dv-wcform .coupon button { width: 100%; }
	.dv-pcard__actions { gap: 6px; }

	.dv-modal__dialog { padding: 24px 18px 20px; }
	.dv-modal__title { font-size: 17px; }

	.dv-footer__top { grid-template-columns: 1fr; gap: 22px; padding: 32px 20px 26px; }
	.dv-footer__bottominner { flex-direction: column; text-align: center; }
	.dv-footer__bottomnav { flex-wrap: wrap; justify-content: center; }

	.dv-404__code { font-size: 62px; }
}

/* ---------- <= 420px ---------- */
@media (max-width: 420px) {
	.dv-reasons,
	.dv-featurestrip__box,
	.dv-featurestrip__box--4,
	.dv-truststrip__box { grid-template-columns: 1fr; }

	/* Giu 2 cot cho luoi san pham & so lieu de khong qua dai */
	.dv-pgrid--4,
	.dv-pgrid--3 { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.dv-pcard__body { padding: 0 10px 12px; }
	.dv-pcard__title { font-size: 12px; }
	.dv-pcard__price { font-size: 14.5px; }
	.dv-pcard__cta { font-size: 10px; padding: 7px 6px; letter-spacing: .02em; }
	.dv-pcard__head { padding: 9px 9px 0; }
	.dv-pcard__media { padding: 2px 8px 6px; }

	.dv-slider__item,
	.dv-slider__item--rel,
	.dv-brandblock__slider .dv-slider__item { flex: 0 0 78%; }

	.dv-timeline { grid-template-columns: 1fr; }
	.dv-aboutpoints { grid-template-columns: repeat(2, 1fr); }
	.dv-certgrid { grid-template-columns: repeat(2, 1fr); }
	.dv-hero__title { font-size: 22px; }
	.dv-hero__eyebrow { font-size: 15px; }
}

/* ---------- Print ---------- */
@media print {
	.dv-topbar, .dv-header, .dv-footer, .dv-totop, .dv-modal,
	.dv-featurestrip, .dv-ctabanner, .dv-sidebar { display: none !important; }
	body.dv-body { font-size: 12pt; }
}

/* ---------- Reduce motion ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .001ms !important;
		transition-duration: .001ms !important;
		scroll-behavior: auto !important;
	}
}
