/* PRICE-01 — Bảng giá sửa chữa. Everything is scoped to .vnt39-pl. Layout follows the owner's mockup (repair-price-page-mockup.webp):
 * full-bleed hero → six device tabs → [categories | banner + search + table | photo/CTA + contact]. Sizes use clamp() so 1440 and 1672+ both read like the mockup. */
.vnt39-pl, .vnt39-pl *, .vnt39-pl *::before, .vnt39-pl *::after { box-sizing: border-box; }
.vnt39-pl {
	--pl-red: #c4101f; --pl-red-dark: #a30d1b;
	/* gradients sampled from the mockup (left → right): selected tab, selected category, red CTA */
	--pl-grad-tab: linear-gradient(90deg, #d81125 0%, #cf0e22 18%, #c9091c 30%, #b60415 50%, #a1030d 70%, #94040b 90%, #861015 100%);
	--pl-grad-cat: linear-gradient(90deg, #c00a1c 0%, #b40115 18%, #a70112 36%, #9b000b 55%, #860009 78%, #7a050c 100%);
	--pl-grad-cta: linear-gradient(90deg, #df1a30 0%, #d81125 22%, #cf0a1f 42%, #c30319 66%, #bb0216 84%, #b30114 100%);
	--pl-hover-lift: inset 0 0 0 999px rgba(255, 255, 255, .1); --pl-press-dim: inset 0 0 0 999px rgba(0, 0, 0, .14); --pl-ink: #1d1d20; --pl-muted: #6a6e75; --pl-line: #e6e6e9; --pl-pink: #fdeded;
	background: #f5f5f6; color: var(--pl-ink); padding-bottom: 48px; overflow-x: clip;
}
.vnt39-pl [hidden] { display: none !important; }
.vnt39-pl__wrap { width: 100%; max-width: 1760px; margin: 0 auto; padding: 0 clamp(14px, 2.5vw, 42px); }
/* Flatsome leaks blanket rules onto every <button> / heading / list: reset what the layout depends on (zero specificity, components below win) */
.vnt39-pl :where(button) { margin: 0; min-height: 0; line-height: 1.3; text-transform: none; letter-spacing: 0; box-shadow: none; font-family: inherit; }
.vnt39-pl :where(h1, h2) { width: auto; margin: 0; text-transform: none; letter-spacing: 0; }
.vnt39-pl :where(ul) { margin: 0; padding: 0; list-style: none; }
.vnt39-pl :where(li) { margin: 0; }
.vnt39-pl :where(p) { margin: 0; }
.vnt39-pl :where(a) { text-decoration: none; }
.vnt39-pl :where(img) { max-width: 100%; height: auto; }
.vnt39-pl svg { display: block; flex-shrink: 0; }
.vnt39-pl a:focus-visible, .vnt39-pl button:focus-visible, .vnt39-pl input:focus-visible, .vnt39-pl textarea:focus-visible, .vnt39-pl summary:focus-visible { outline: 3px solid #1a73e8; outline-offset: 2px; }

/* ---- hero (full bleed) ---- */
.vnt39-pl__hero {
	position: relative; overflow: hidden; color: #fff; border-radius: 0 0 clamp(18px, 1.7vw, 28px) clamp(18px, 1.7vw, 28px);
	background: linear-gradient(100deg, #860a16 0%, #a00e1d 50%, #b51220 100%); min-height: clamp(190px, 12.8vw, 214px);
}
.vnt39-pl__hero::after {
	content: ""; position: absolute; top: 0; left: 0; height: 100%; aspect-ratio: 108 / 214; pointer-events: none;
	background: var(--vnt39-pl-hero-leaves) left top / 100% 100% no-repeat;
	-webkit-mask-image: linear-gradient(90deg, #000 55%, transparent 100%); mask-image: linear-gradient(90deg, #000 55%, transparent 100%);
}
.vnt39-pl__hero::before {
	content: ""; position: absolute; top: 0; right: 0; height: 100%; aspect-ratio: 872 / 214; pointer-events: none;
	background: var(--vnt39-pl-hero-art) right top / 100% 100% no-repeat;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 18%); mask-image: linear-gradient(90deg, transparent 0, #000 18%);
}
.vnt39-pl__hero-in { position: relative; z-index: 1; max-width: none; padding-left: clamp(16px, 6.6vw, 112px); padding-top: 12px; padding-bottom: clamp(14px, 1.2vw, 20px); }
.vnt39-pl__crumbs { font-size: 14px; font-weight: 600; color: #fff; line-height: 1.3; }
.vnt39-pl__crumbs a { color: #fff; }
.vnt39-pl__hero h1 { margin-top: clamp(6px, 0.5vw, 8px); color: #fff; font-size: clamp(30px, 2.95vw, 50px); line-height: 1.14; font-weight: 800; }
.vnt39-pl__hero-sub { margin-top: 4px; color: #fff; font-size: clamp(15px, 1.36vw, 23px); line-height: 1.35; font-weight: 500; }
.vnt39-pl__feat { display: flex; flex-wrap: wrap; gap: 12px clamp(26px, 3.6vw, 60px); margin-top: clamp(12px, 1vw, 16px); }
.vnt39-pl__feat li { display: flex; align-items: center; gap: 12px; font-size: clamp(13px, 1.02vw, 17px); line-height: 1.32; font-weight: 500; }
.vnt39-pl__feat-ico { display: inline-flex; width: clamp(30px, 2.3vw, 38px); height: clamp(30px, 2.3vw, 38px); color: #fff; }
.vnt39-pl__feat-ico { background: transparent; }
/* the theme paints every <svg> inside a <li> grey and beats fill="none": pin the three hero icons to a white outline, nothing inside */
.vnt39-pl__feat-ico svg, .vnt39-pl__feat-ico svg * { fill: none !important; stroke: currentColor !important; background: transparent !important; }
.vnt39-pl__feat-ico svg { width: 100%; height: 100%; stroke-width: 1.35; }

/* ---- device tabs ---- */
.vnt39-pl__tabs { display: flex; gap: clamp(6px, 0.5vw, 8px); padding: 2px 0 4px; overflow-x: auto; scrollbar-width: none; position: relative; }
.vnt39-pl__scroll--tabs { margin-top: clamp(10px, 0.75vw, 12px); }

/* ---- horizontal scrollers: arrow buttons (dim at rest, clear on touch / hover / keyboard focus, disabled at the ends; script.js hides them when there is no overflow).
 * Controls only: transparent, no tile, no frame, and they sit beside / above the track so they never cover a tab or category name. ---- */
.vnt39-pl__scroll { display: flex; align-items: center; gap: 2px; min-width: 0; }
.vnt39-pl__scroll > [data-vnt39-pl-track] { flex: 1 1 auto; min-width: 0; }
.vnt39-pl__arrow { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 44px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: var(--pl-ink); opacity: .5; cursor: pointer; transition: opacity .15s ease, color .15s ease; touch-action: manipulation; }
.vnt39-pl__arrow svg { width: 22px; height: 22px; stroke-width: 2.6; }
.vnt39-pl__arrow--prev svg { transform: rotate(180deg); }
.vnt39-pl__arrow:active, .vnt39-pl__arrow:focus-visible { opacity: 1; color: var(--pl-red); }
@media (hover: hover) { .vnt39-pl__arrow:hover:not(:disabled) { opacity: 1; color: var(--pl-red); } }
.vnt39-pl__arrow:disabled { opacity: .2; cursor: default; }
.vnt39-pl__rnav { display: inline-flex; align-items: center; flex-shrink: 0; }
.vnt39-pl__cats-head, .vnt39-pl__rhead { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.vnt39-pl__tabs::-webkit-scrollbar { display: none; }
.vnt39-pl__tab {
	position: relative; flex: 1 1 0; display: flex; align-items: center; justify-content: center; gap: clamp(8px, 0.75vw, 12px);
	min-width: max-content; height: clamp(46px, 3.3vw, 56px); padding: 0 16px; border: 0; border-radius: 8px; background: #fff; color: #2b2b2f;
	font-size: clamp(15px, 1.2vw, 20px); font-weight: 700; cursor: pointer; white-space: nowrap; box-shadow: 0 1px 5px rgba(0, 0, 0, .13);
}
.vnt39-pl__tab-ico { display: inline-flex; width: clamp(24px, 1.9vw, 32px); height: clamp(24px, 1.9vw, 32px); }
.vnt39-pl__tab-ico svg { width: 100%; height: 100%; stroke-width: 1.9; }
.vnt39-pl__tab:hover { color: var(--pl-red); }
.vnt39-pl__tab { transition: box-shadow .18s ease, color .18s ease; }
.vnt39-pl__tab.is-active { background: var(--pl-grad-tab); color: #fff; box-shadow: 0 4px 10px rgba(150, 4, 11, .35); }
.vnt39-pl__tab.is-active:hover { box-shadow: 0 4px 10px rgba(150, 4, 11, .35), var(--pl-hover-lift); color: #fff; }
.vnt39-pl__tab.is-active:active { box-shadow: 0 2px 6px rgba(150, 4, 11, .3), var(--pl-press-dim); }
.vnt39-pl__tab.is-active::after { content: ""; position: absolute; left: 50%; bottom: -8px; width: 0; height: 0; margin-left: -9px; border: 9px solid transparent; border-top: 8px solid #b60415; border-bottom: 0; }

/* ---- 3 columns ---- */
.vnt39-pl__grid { display: grid; grid-template-columns: minmax(210px, 19.8%) minmax(0, 1fr) minmax(272px, 18.6%); gap: clamp(14px, 1.8vw, 30px); margin-top: clamp(14px, 1.5vw, 24px); align-items: start; }
.vnt39-pl__cats, .vnt39-pl__card, .vnt39-pl__table, .vnt39-pl__empty-panel { background: #fff; border-radius: 10px; box-shadow: 0 1px 6px rgba(20, 20, 30, .08); }
.vnt39-pl__cats { padding: 16px 10px 12px; }
.vnt39-pl__side-title { padding: 2px 8px 12px; color: var(--pl-ink); font-size: clamp(17px, 1.2vw, 20px); font-weight: 800; line-height: 1.3; }
.vnt39-pl__cat-list { display: flex; flex-direction: column; gap: 1px; }
.vnt39-pl__cat { display: flex; align-items: center; gap: 14px; width: 100%; min-height: clamp(40px, 2.8vw, 47px); padding: 0 12px; border: 0; border-radius: 6px; background: transparent; color: #2d2d31; font-size: clamp(15px, 1.08vw, 18px); font-weight: 500; text-align: left; cursor: pointer; }
.vnt39-pl__cat:hover { background: var(--pl-pink); }
.vnt39-pl__cat-ico { display: inline-flex; width: 26px; height: 26px; background: transparent; color: #176b3a; }
.vnt39-pl__cat-ico svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.vnt39-pl__cat-ico svg * { fill: none; stroke: currentColor; stroke-width: inherit; }
.vnt39-pl__cat-name { flex: 1 1 auto; min-width: 0; }
.vnt39-pl__cat-go { display: none; width: 20px; height: 20px; color: #fff; }
.vnt39-pl__cat-go svg { width: 20px; height: 20px; stroke-width: 3; }
.vnt39-pl__cat { transition: background-color .18s ease, box-shadow .18s ease; }
.vnt39-pl__cat.is-active { background: var(--pl-grad-cat); color: #fff; font-weight: 700; }
.vnt39-pl__cat.is-active:hover { background: var(--pl-grad-cat); box-shadow: var(--pl-hover-lift); }
.vnt39-pl__cat.is-active:hover .vnt39-pl__cat-ico { color: #fff; }
.vnt39-pl__cat.is-active:active { box-shadow: var(--pl-press-dim); }
.vnt39-pl__cat.is-active .vnt39-pl__cat-ico { color: #fff; }
.vnt39-pl__cat.is-active .vnt39-pl__cat-go { display: inline-flex; }
.vnt39-pl__cat-go svg { transition: transform .18s ease; }
.vnt39-pl__cat[aria-expanded="true"] .vnt39-pl__cat-go svg { transform: rotate(90deg); }

/* ---- series (dòng máy) under a service category: second level of the sidebar ---- */
.vnt39-pl__series { display: flex; flex-direction: column; gap: 1px; margin: 3px 0 8px 24px; padding: 0 0 0 12px; border-left: 2px solid #f0d4d6; }
.vnt39-pl__ser { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 38px; padding: 0 10px; border: 0; border-radius: 6px; background: transparent; color: #2d2d31; font-size: clamp(14px, 1vw, 16px); font-weight: 500; text-align: left; cursor: pointer; transition: background-color .15s ease, color .15s ease; }
.vnt39-pl__ser:hover { background: var(--pl-pink); color: var(--pl-red-dark); }
.vnt39-pl__ser.is-active { background: var(--pl-pink); color: var(--pl-red-dark); font-weight: 700; box-shadow: inset 3px 0 0 var(--pl-red); }
.vnt39-pl__ser-n { flex-shrink: 0; min-width: 18px; color: #8d9097; font-size: 12.5px; font-weight: 600; text-align: right; }
.vnt39-pl__ser.is-active .vnt39-pl__ser-n { color: var(--pl-red-dark); }

/* ---- sticky sidebars (position: sticky, desktop only; --vnt39-pl-top is set by script.js from the real sticky header, 68px = 52px red nav + 16px as the fallback) ---- */
@media (min-width: 1100px) {
	.vnt39-pl__cats, .vnt39-pl__side { position: sticky; top: var(--vnt39-pl-top, 68px); align-self: start; }
}

/* ---- centre: banner + search + table ---- */
.vnt39-pl__main { min-width: 0; }
.vnt39-pl__banner {
	display: flex; align-items: center; gap: clamp(12px, 1.2vw, 20px); min-height: clamp(76px, 5.9vw, 98px); padding: 12px clamp(200px, 14vw, 240px) 12px clamp(16px, 1.6vw, 26px);
	border: 1px solid #f2c8cb; border-radius: 10px;
	background: var(--vnt39-pl-banner-art) right center / auto 100% no-repeat, linear-gradient(90deg, #fdeaea 0%, #fff4f4 100%);
}
.vnt39-pl__banner-ico { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: clamp(38px, 2.7vw, 46px); height: clamp(38px, 2.7vw, 46px); background: transparent; color: var(--pl-red); }
@media (min-width: 1100px) { .vnt39-pl__banner-ico { color: #fff; } }
.vnt39-pl__banner-ico svg { width: 100%; height: 100%; stroke-width: 1.9; }
.vnt39-pl__banner h2 { color: var(--pl-ink); font-size: clamp(20px, 2vw, 34px); font-weight: 800; line-height: 1.18; }
.vnt39-pl__banner p { margin-top: 4px; color: #b3262e; font-size: clamp(13px, 1.08vw, 18px); line-height: 1.35; font-weight: 500; }

.vnt39-pl__search { position: relative; display: block; margin: 12px 0 0; }
.vnt39-pl__search-icon { position: absolute; top: 50%; left: 14px; width: 20px; height: 20px; color: #5f636a; transform: translateY(-50%); pointer-events: none; }
.vnt39-pl__search-icon svg { width: 20px; height: 20px; stroke-width: 1.8; }
.vnt39-pl__search input[type="search"] { width: 100%; height: clamp(44px, 2.9vw, 48px); margin: 0; padding: 0 14px 0 44px; border: 1px solid #d9d9de; border-radius: 8px; background: #fff; color: var(--pl-ink); font-size: clamp(14px, 1.02vw, 17px); box-shadow: none; }
.vnt39-pl__search input[type="search"]::placeholder { color: #8a8d94; opacity: 1; }
.vnt39-pl__search input[type="search"]:focus { border-color: var(--pl-red); }
.vnt39-pl__status { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---- series filter above the table + closed-table guide ---- */
.vnt39-pl__serbar { display: flex; align-items: center; flex-wrap: nowrap; gap: 12px; margin-top: 12px; }
.vnt39-pl__serbar-label { flex-shrink: 0; color: var(--pl-ink); font-size: clamp(14px, 1vw, 16px); font-weight: 700; line-height: 44px; margin: 0; padding: 0; white-space: nowrap; }
.vnt39-pl__serselect {
	flex: 0 1 280px; width: 280px; max-width: 100%; height: 44px; margin: 0; padding: 0 40px 0 14px; border: 1px solid #d9d9de; border-radius: 8px; box-shadow: none;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c4101f' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 18px 18px;
	color: var(--pl-ink); font-size: clamp(14px, 1.02vw, 17px); font-weight: 600; line-height: 1.2; cursor: pointer; -webkit-appearance: none; appearance: none;
}
.vnt39-pl__serselect:hover, .vnt39-pl__serselect:focus { border-color: var(--pl-red); }
.vnt39-pl__clear { flex-shrink: 0; min-height: 36px; margin-left: auto; padding: 0 4px; border: 0; background: transparent; color: var(--pl-red); font-size: 14.5px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.vnt39-pl__note { margin-top: 8px; padding: 8px 12px; border-radius: 8px; background: #fff7e6; color: #7a4b00; font-size: 14px; line-height: 1.45; }
.vnt39-pl__guide { margin-top: 12px; padding: 30px 18px 26px; border: 1.5px dashed #e3b9bc; border-radius: 10px; background: #fff; text-align: center; }
.vnt39-pl__guide-ico { display: inline-flex; width: 44px; height: 44px; background: transparent; color: var(--pl-red); }
.vnt39-pl__guide-ico svg { width: 44px; height: 44px; stroke-width: 1.5; }
.vnt39-pl__guide-text { margin-top: 6px; color: var(--pl-ink); font-size: clamp(16px, 1.15vw, 19px); font-weight: 700; line-height: 1.35; }
.vnt39-pl__showall { margin-top: 14px; min-height: 44px; padding: 0 22px; }
.vnt39-pl__grid.is-guide .vnt39-pl__table { display: none; }

.vnt39-pl__table { margin-top: 12px; overflow: hidden; border: 1px solid #e9e9ec; }
.vnt39-pl__thead, .vnt39-pl__row { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, .85fr) minmax(0, .8fr) minmax(0, 2.15fr); align-items: center; }
.vnt39-pl__thead { min-height: 44px; background: #efeff1; color: #1f1f22; font-size: clamp(14px, 1.02vw, 17px); font-weight: 700; }
.vnt39-pl__thead span { padding: 0 8px; text-align: center; }
.vnt39-pl__thead span:first-child { padding-left: clamp(76px, 5.6vw, 92px); text-align: left; }
.vnt39-pl__row { min-height: clamp(46px, 2.8vw, 49px); padding: 3px 0; border-top: 1px solid #ececef; }
.vnt39-pl__thead + .vnt39-pl__row { border-top: 0; }
.vnt39-pl__cell { min-width: 0; padding: 0 8px; text-align: center; }
.vnt39-pl__cell--name { display: flex; align-items: center; gap: 12px; padding-left: clamp(14px, 1.2vw, 20px); text-align: left; }
.vnt39-pl__thumb { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 48px; height: 48px; border: 0; background: transparent; color: #8d9097; overflow: hidden; }
.vnt39-pl__thumb img { display: block; width: 100%; height: 100%; object-fit: contain; }
.vnt39-pl__thumb svg { width: 32px; height: 32px; stroke-width: 1.5; }
.vnt39-pl__name { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.vnt39-pl__model { color: var(--pl-ink); font-size: clamp(15px, 1.1vw, 18px); font-weight: 700; line-height: 1.28; overflow-wrap: anywhere; }
.vnt39-pl__service { color: var(--pl-muted); font-size: clamp(12px, 0.82vw, 13.5px); line-height: 1.3; overflow-wrap: anywhere; }
.vnt39-pl__cell--price { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 0 8px; }
.vnt39-pl__cell--price strong { color: #bb1220; font-size: clamp(18px, 1.45vw, 24px); font-weight: 800; line-height: 1.15; }
.vnt39-pl__cell--price strong.is-ask { color: #3c3f45; font-size: clamp(14px, 1vw, 16px); font-weight: 700; }
.vnt39-pl__cell--price del { color: #9a9da4; font-size: clamp(12px, 0.85vw, 14px); font-weight: 500; }
.vnt39-pl__policy { flex-basis: 100%; color: #6b7280; font-size: 12px; font-weight: 600; line-height: 1.3; text-align: center; } /* 1.13.4: mainboard = maximum price, «hold» = quote first */
.vnt39-pl__cell--warranty { color: #2d2d31; font-size: clamp(14px, 1.08vw, 18px); font-weight: 500; }
.vnt39-pl__none { padding: 24px 18px; color: var(--pl-muted); font-size: 14px; line-height: 1.55; text-align: center; }
.vnt39-pl__more { display: block; width: 100%; max-width: 320px; min-height: 44px; margin: 14px auto 0; border: 1.5px solid var(--pl-red); border-radius: 8px; background: #fff; color: var(--pl-red); font-size: 15px; font-weight: 700; cursor: pointer; }
.vnt39-pl__more:hover { background: var(--pl-red); color: #fff; }

/* ---- buttons ---- */
.vnt39-pl__btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 0 18px; border: 1.5px solid transparent; border-radius: 8px; font-size: 15px; font-weight: 700; line-height: 1.2; text-align: center; cursor: pointer; transition: background .15s ease, color .15s ease, border-color .15s ease; }
.vnt39-pl__btn svg { width: 16px; height: 16px; stroke-width: 2.4; }
.vnt39-pl__btn { transition: box-shadow .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease; }
.vnt39-pl__btn--primary { background: var(--pl-grad-cta); color: #fff; }
.vnt39-pl__btn--primary:hover { background: var(--pl-grad-cta); color: #fff; box-shadow: var(--pl-hover-lift); }
.vnt39-pl__btn--primary:active { box-shadow: var(--pl-press-dim); }
.vnt39-pl__btn--detail { min-height: 38px; padding: 0 12px; border-color: var(--pl-red); border-radius: 6px; background: #fff; color: var(--pl-red); font-size: clamp(13px, 0.98vw, 16px); font-weight: 600; white-space: nowrap; }
.vnt39-pl__btn--detail:hover { background: var(--pl-red); color: #fff; }
.vnt39-pl__cell--actions { display: flex; align-items: center; justify-content: center; gap: 8px; }
.vnt39-pl__btn--register { min-height: 38px; padding: 0 12px; border-radius: 6px; background: #c4101f; color: #fff; font-size: clamp(13px, 0.98vw, 16px); font-weight: 600; white-space: nowrap; }
.vnt39-pl__btn--register:hover { background: var(--pl-red-dark); color: #fff; }
@media (min-width: 1100px) and (max-width: 1249px) {
	.vnt39-pl__thead, .vnt39-pl__row { grid-template-columns: minmax(0, 1.7fr) minmax(0, .9fr) minmax(0, .9fr) minmax(0, 1.3fr); }
	.vnt39-pl__cell--actions { flex-direction: column; gap: 6px; }
	.vnt39-pl__cell--actions .vnt39-pl__btn { width: 100%; min-height: 34px; }
}

/* ---- right column ---- */
.vnt39-pl__side { display: flex; flex-direction: column; gap: clamp(14px, 1.7vw, 28px); }
.vnt39-pl__card { overflow: hidden; }
.vnt39-pl__photo { display: block; width: 100%; height: auto; }
.vnt39-pl__points { display: flex; flex-direction: column; gap: 11px; padding: 16px 18px 6px; }
.vnt39-pl__points li { display: flex; align-items: center; gap: 12px; color: #222428; font-size: clamp(14px, 1.08vw, 17px); font-weight: 500; line-height: 1.3; }
.vnt39-pl__tick { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 22px; height: 22px; border-radius: 6px; background: #2fa84f; color: #fff; }
.vnt39-pl__tick svg { width: 15px; height: 15px; stroke-width: 3; }
.vnt39-pl__btn--cta { width: calc(100% - 16px); min-height: 48px; margin: 12px 8px 8px; background: var(--pl-grad-cta); color: #fff; font-size: clamp(13.5px, 0.96vw, 16px); gap: 8px; justify-content: space-between; padding: 0 14px; white-space: nowrap; }
.vnt39-pl__btn--cta:hover { background: var(--pl-grad-cta); color: #fff; box-shadow: var(--pl-hover-lift); }
.vnt39-pl__btn--cta:active { box-shadow: var(--pl-press-dim); }
.vnt39-pl__btn--cta > span:nth-child(2) { flex: 1 1 auto; text-align: left; }
.vnt39-pl__btn-ico { display: inline-flex; width: 22px; height: 22px; }
.vnt39-pl__btn-ico svg { width: 22px; height: 22px; stroke-width: 1.8; }
.vnt39-pl__card--help { padding: 14px 8px 8px; }
.vnt39-pl__card--help .vnt39-pl__help-head { padding: 0 8px; }
.vnt39-pl__help-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.vnt39-pl__help-ico { display: inline-flex; width: 44px; height: 44px; color: var(--pl-red); }
.vnt39-pl__help-ico svg { width: 44px; height: 44px; stroke-width: 1.5; }
.vnt39-pl__help-head h2 { color: var(--pl-ink); font-size: clamp(18px, 1.35vw, 22px); font-weight: 800; line-height: 1.2; }
.vnt39-pl__help-head p { margin-top: 2px; color: var(--pl-muted); font-size: 14px; }
.vnt39-pl__btn--contact { width: 100%; min-height: 46px; margin-top: 10px; padding: 0 14px; border-radius: 6px; color: #fff; font-size: clamp(14px, 1vw, 16px); justify-content: space-between; text-align: left; white-space: nowrap; }
.vnt39-pl__btn--contact { gap: 10px; }
.vnt39-pl__btn-lead { display: inline-flex; width: 22px; height: 22px; }
.vnt39-pl__btn-lead svg { width: 22px; height: 22px; stroke-width: 1.9; }
.vnt39-pl__btn-text { flex: 1 1 auto; text-align: left; }
.vnt39-pl__btn--contact > svg:last-child, .vnt39-pl__btn--cta > svg:last-child { width: 20px; height: 20px; stroke-width: 3; }
.vnt39-pl__cat-go svg { stroke-width: 3; }
.vnt39-pl__btn--contact:hover { color: #fff; box-shadow: var(--pl-hover-lift); }
.vnt39-pl__btn--contact:active { box-shadow: var(--pl-press-dim); }
.vnt39-pl__btn--contact { background: #4a4d55; }
.vnt39-pl__btn--zalo { background: #0068ff; }
.vnt39-pl__btn--messenger { background: #0a7cff; }
.vnt39-pl__btn--line { background: #06c755; }
.vnt39-pl__btn--phone { background: #d40b21; }

.vnt39-pl__empty-panel { max-width: 640px; margin: 24px auto 0; padding: 32px 28px; text-align: center; }
.vnt39-pl__empty-ico { display: inline-flex; width: 52px; height: 52px; margin-bottom: 8px; color: var(--pl-red); }
.vnt39-pl__empty-ico svg { width: 52px; height: 52px; stroke-width: 1.4; }
.vnt39-pl__empty-panel h2 { font-size: 22px; font-weight: 800; }
.vnt39-pl__empty-panel p { margin: 10px 0 18px; color: #475467; font-size: 15px; line-height: 1.55; }

/* ---- tablet / small laptop: one column; categories become a swipe row above the table, the two side cards sit under it ---- */
@media (max-width: 899px) {
	.vnt39-pl__hero::before { display: none; }
}
@media (max-width: 1099px) {
	.vnt39-pl__grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
	.vnt39-pl__side { display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
	.vnt39-pl__cats { padding: 10px 12px; }
	.vnt39-pl__series { display: none; }
	.vnt39-pl__cats .vnt39-pl__side-title { padding: 0 0 8px; }
	.vnt39-pl__cats-head { min-height: 44px; }
	.vnt39-pl__cats-head .vnt39-pl__side-title { padding: 0; }
	.vnt39-pl__cat-list { flex-direction: row; gap: 8px; overflow-x: auto; padding-bottom: 4px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
	.vnt39-pl__cat-list::-webkit-scrollbar { display: none; }
	.vnt39-pl__cat { width: auto; flex-shrink: 0; min-height: 44px; gap: 8px; padding: 0 14px; border: 1.5px solid var(--pl-line); border-radius: 999px; background: #fff; white-space: nowrap; }
	.vnt39-pl__cat-ico, .vnt39-pl__cat-ico svg { width: 20px; height: 20px; }
	.vnt39-pl__cat.is-active { border-color: var(--pl-red); }
	.vnt39-pl__cat.is-active .vnt39-pl__cat-go { display: none; }
	.vnt39-pl__btn--detail, .vnt39-pl__btn--register { min-height: 44px; }
	.vnt39-pl__photo { max-height: 150px; object-fit: cover; }
}

.vnt39-pl__cat-more { display: none; }
.vnt39-pl__listhint { display: none; }

/* ---- phone: one column, every service a compact card ---- */
@media (max-width: 767px) {
	.vnt39-pl { padding-bottom: 32px; }
	.vnt39-pl__hero { background: linear-gradient(110deg, #860a16 0%, #a00e1d 60%, #b51220 100%); min-height: 0; }
	.vnt39-pl__hero-in { padding-left: 16px; padding-right: 16px; padding-top: 12px; }
	.vnt39-pl__hero h1 { font-size: 26px; }
	.vnt39-pl__hero-sub { font-size: 14px; }
	.vnt39-pl__feat { gap: 8px 16px; margin-top: 12px; }
	.vnt39-pl__feat li { gap: 8px; font-size: 12.5px; }
	.vnt39-pl__feat-ico { width: 26px; height: 26px; }
	.vnt39-pl__tabs { margin-top: 10px; }
	.vnt39-pl__tab { flex: 0 0 auto; height: 46px; padding: 0 16px; }
	.vnt39-pl__banner { min-height: 0; padding: 10px 14px; background: linear-gradient(90deg, #fdeaea 0%, #fff4f4 100%); }
	.vnt39-pl__banner h2 { font-size: 18px; }
	.vnt39-pl__banner p { font-size: 12.5px; }
	.vnt39-pl__search input[type="search"] { font-size: 16px; }
	.vnt39-pl__thead { display: none; }
	.vnt39-pl__table { position: relative; border: 0; background: transparent; border-radius: 0; box-shadow: none; overflow: visible; }
	.vnt39-pl__row { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name price" "warranty price" "actions actions"; gap: 2px 12px; align-items: center; min-height: 0; margin-bottom: 10px; padding: 10px 12px 12px; border: 1px solid #e6e6e9; border-radius: 10px; background: #fff; }
	.vnt39-pl__thumb { width: 40px; height: 40px; }
	.vnt39-pl__thumb svg { width: 28px; height: 28px; }
	.vnt39-pl__cell--name { gap: 10px; }
	.vnt39-pl__thead + .vnt39-pl__row { border-top: 1px solid #e6e6e9; }
	.vnt39-pl__cell { padding: 0; }
	.vnt39-pl__cell--name { grid-area: name; padding-left: 0; }
	.vnt39-pl__cell--price { grid-area: price; justify-content: flex-end; }
	.vnt39-pl__cell--warranty { grid-area: warranty; padding-left: 50px; text-align: left; font-size: 13.5px; line-height: 1.3; }
	.vnt39-pl__cell--warranty::before { content: attr(data-label) ": "; color: var(--pl-muted); font-weight: 700; }
	.vnt39-pl__cell--actions { grid-area: actions; width: 100%; margin-top: 8px; }
	.vnt39-pl__cell--price { align-self: center; }
	.vnt39-pl__cell--actions .vnt39-pl__btn { flex: 1 1 0; min-height: 44px; padding: 0 8px; }
	.vnt39-pl__cell--price strong { font-size: 19px; }
	.vnt39-pl__policy { text-align: right; }
	.vnt39-pl__btn--detail { min-height: 44px; padding: 0 14px; }
	.vnt39-pl__side { grid-template-columns: minmax(0, 1fr); }
	.vnt39-pl__serbar { flex-wrap: wrap; }
	.vnt39-pl__serselect { flex: 1 1 180px; width: auto; }
	/* the service list: 4 cards high, scrolls inside (height measured by script.js from the real 4 cards, so the 4th is never cut) */
	.vnt39-pl__listhint { display: block; margin-top: 10px; color: var(--pl-muted); font-size: 13px; font-weight: 600; line-height: 1.3; text-align: center; }
	.vnt39-pl__table.is-listscroll { max-height: var(--vnt39-pl-list-h, none); overflow-y: auto; overflow-x: hidden; overscroll-behavior-y: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: #c4101f #ececef; }
	.vnt39-pl__table.is-listscroll::-webkit-scrollbar { width: 6px; }
	.vnt39-pl__table.is-listscroll::-webkit-scrollbar-track { background: #ececef; border-radius: 3px; }
	.vnt39-pl__table.is-listscroll::-webkit-scrollbar-thumb { background: #c4101f; border-radius: 3px; }
	.vnt39-pl__cat-list > li.is-folded { display: none; }
	.vnt39-pl__cat-more { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; margin-top: 8px; border: 1.5px solid var(--pl-line); border-radius: 999px; background: #fff; color: var(--pl-red); font-size: 15px; font-weight: 700; cursor: pointer; }
	.vnt39-pl__cat-more:active { background: var(--pl-pink); }
	.vnt39-pl__cats.is-expanded .vnt39-pl__cat-list { flex-wrap: wrap; overflow-x: visible; }
	.vnt39-pl__none { background: #fff; border: 1px solid #e6e6e9; border-radius: 10px; }
}

/* ---- related products & services ---- */
.vnt39-pl__related { margin-top: clamp(22px, 2.4vw, 40px); }
.vnt39-pl__related > h2, .vnt39-pl__block > h2 { color: var(--pl-ink); font-size: clamp(20px, 1.7vw, 28px); font-weight: 800; line-height: 1.25; }
.vnt39-pl__rgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(12px, 1.2vw, 20px); margin-top: 14px; }
.vnt39-pl__rcard { display: flex; flex-direction: column; overflow: hidden; border-radius: 10px; background: #fff; box-shadow: 0 1px 6px rgba(20, 20, 30, .08); }
.vnt39-pl__rimg { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: transparent; color: #8d9097; }
.vnt39-pl__rimg img { position: absolute; inset: 0; width: 100%; height: 100%; padding: 10px; object-fit: contain; }
.vnt39-pl__rimg svg { position: absolute; top: 50%; left: 50%; width: 44px; height: 44px; margin: -22px 0 0 -22px; stroke-width: 1.3; }
.vnt39-pl__rbody { display: flex; flex: 1 1 auto; flex-direction: column; gap: 6px; padding: 12px 14px 14px; }
.vnt39-pl__rkind { color: var(--pl-muted); font-size: 12px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }
.vnt39-pl__rtitle { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.35; }
.vnt39-pl__rtitle a { color: var(--pl-ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.vnt39-pl__rprice { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 8px; }
.vnt39-pl__rprice strong { color: #bb1220; font-size: 18px; font-weight: 800; }
.vnt39-pl__rprice del { color: #9a9da4; font-size: 13px; }
.vnt39-pl__rwarr { color: #2d2d31; font-size: 13.5px; }
.vnt39-pl__rprice.is-empty, .vnt39-pl__rwarr.is-empty { display: none; }
.vnt39-pl__rbody .vnt39-pl__btn--detail { margin-top: auto; width: 100%; }

/* ---- comments + FAQ ---- */
.vnt39-pl__block { margin-top: clamp(24px, 2.6vw, 44px); padding: clamp(16px, 1.8vw, 26px); border-radius: 10px; background: #fff; box-shadow: 0 1px 6px rgba(20, 20, 30, .08); }
.vnt39-pl__count { color: var(--pl-muted); font-weight: 600; }
.vnt39-pl__cm-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, 1fr); gap: clamp(16px, 2vw, 32px); margin-top: 14px; align-items: start; }
.vnt39-pl__clist { display: flex; flex-direction: column; gap: 14px; }
.vnt39-pl__citem { display: flex; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid #ececef; }
.vnt39-pl__citem:last-child { border-bottom: 0; }
.vnt39-pl__avatar { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 38px; height: 38px; border-radius: 50%; background: #fdecee; color: var(--pl-red); font-weight: 800; }
.vnt39-pl__citem time { margin-left: 6px; color: var(--pl-muted); font-size: 12.5px; }
.vnt39-pl__citem p { margin-top: 4px; color: #2d2d31; font-size: 15px; line-height: 1.55; overflow-wrap: anywhere; white-space: pre-line; }
.vnt39-pl__cm-empty { color: var(--pl-muted); font-size: 15px; }
.vnt39-pl__more--cm { margin: 14px 0 0; }
.vnt39-pl__cform { display: flex; flex-direction: column; gap: 10px; padding: 16px; border: 1px solid #ececef; border-radius: 10px; background: #fafafb; }
.vnt39-pl__cform h3 { margin: 0; font-size: 17px; font-weight: 800; }
.vnt39-pl__cform input[type="text"], .vnt39-pl__cform input[type="email"], .vnt39-pl__cform textarea { width: 100%; margin: 0; padding: 10px 12px; border: 1px solid #d9d9de; border-radius: 8px; background: #fff; color: var(--pl-ink); font-size: 16px; box-shadow: none; }
.vnt39-pl__cform textarea { min-height: 110px; resize: vertical; }
.vnt39-pl__cform input:focus, .vnt39-pl__cform textarea:focus { border-color: var(--pl-red); }
.vnt39-pl__cm-note { color: var(--pl-muted); font-size: 13px; }
.vnt39-pl__cm-msg { padding: 10px 12px; border-radius: 8px; background: #eaf7ee; color: #17602d; font-size: 14px; }
.vnt39-pl__cm-msg.is-error { background: #fdecee; color: #8a0b17; }
.vnt39-pl__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.vnt39-pl__faq-list { margin-top: 10px; }
.vnt39-pl__faq-item { border-bottom: 1px solid #ececef; }
.vnt39-pl__faq-item:last-child { border-bottom: 0; }
.vnt39-pl__faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 10px 2px; color: var(--pl-ink); font-size: clamp(15px, 1.1vw, 17px); font-weight: 700; cursor: pointer; list-style: none; }
.vnt39-pl__faq-item summary::-webkit-details-marker { display: none; }
.vnt39-pl__faq-item summary svg { width: 18px; height: 18px; color: var(--pl-red); stroke-width: 2.4; transition: transform .18s ease; }
.vnt39-pl__faq-item[open] summary svg { transform: rotate(90deg); }
.vnt39-pl__faq-a { padding: 0 2px 14px; color: #3a3d43; font-size: 15px; line-height: 1.6; }
.vnt39-pl__faq-a p { margin: 0 0 8px; }

.vnt39-pl__cwrite, .vnt39-pl__more--collapse { display: none; }
@media (max-width: 1099px) {
	.vnt39-pl__rgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.vnt39-pl__cm-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
	.vnt39-pl__rgrid { display: flex; gap: 12px; margin-top: 8px; padding: 2px 2px 8px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: 2px; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
	.vnt39-pl__rgrid::-webkit-scrollbar { display: none; }
	.vnt39-pl__rcard { flex: 0 0 76%; max-width: 300px; scroll-snap-align: start; }
	.vnt39-pl__rcard[hidden] { display: none; }
	.vnt39-pl__rprice.is-empty, .vnt39-pl__rwarr.is-empty { display: block; visibility: hidden; }
	.vnt39-pl__rhead { min-height: 44px; }
	.vnt39-pl__rimg { aspect-ratio: 16 / 10; }
	.vnt39-pl__rbody { padding: 10px; }
	.vnt39-pl__rtitle { min-height: 2.7em; font-size: 14px; }
	.vnt39-pl__rbody .vnt39-pl__btn--detail { min-height: 44px; }
	.vnt39-pl__cform .vnt39-pl__btn { width: 100%; }
	.vnt39-pl__citem.is-folded { display: none; }
	.vnt39-pl__cform.is-collapsed { display: none; }
	.vnt39-pl__cwrite { display: inline-flex; width: 100%; margin-top: 4px; }
	.vnt39-pl__cwrite[hidden] { display: none; }
	.vnt39-pl__more--collapse { display: block; margin-top: 10px; }
}
