/* =========================================================================
   VayVND — main.css
   Dựng lại bản thiết kế hi-fi bằng CSS có biến (không dùng inline style).
   ========================================================================= */

:root {
	/* Bộ nhận diện thương hiệu VayVND */
	--brand: #E52421;        /* Primary Red */
	--brand-dark: #111111;   /* Deep Black */
	--ink: #111111;
	--text-strong: #333333;  /* Dark Gray */
	--text: #4A4A4A;
	--text-soft: #6B6B6B;
	--muted: #8C8C8C;
	--muted-2: #ABABAB;
	--faint: #C9C9C9;
	--border: #ECECEC;
	--border-2: #F1F1F1;
	--border-3: #E4E4E4;
	--border-hover: #D8D8D8;
	--bg: #FFFFFF;
	--bg-soft: #F4F4F4;      /* Light Gray */
	--bg-legal: #F4F4F4;
	--bg-chip: #FAFAFA;
	--star: #F2A93B;
	--danger: #C62828;

	--brand-6: color-mix(in oklab, var(--brand) 6%, #fff);
	--brand-7: color-mix(in oklab, var(--brand) 7%, #fff);
	--brand-9: color-mix(in oklab, var(--brand) 9%, #fff);
	--brand-12: color-mix(in oklab, var(--brand) 12%, #fff);
	--brand-14: color-mix(in oklab, var(--brand) 14%, #fff);
	--brand-18: color-mix(in oklab, var(--brand) 18%, #fff);
	--brand-25: color-mix(in oklab, var(--brand) 25%, #fff);
	--brand-28: color-mix(in oklab, var(--brand) 28%, #fff);
	--brand-shadow: color-mix(in oklab, var(--brand), #000 6%);

	--r-btn: 12px;
	--r-pill: 99px;
	--r-card: 20px;
	--r-lg: 24px;

	--sh-card: 0 2px 6px rgba(17, 17, 17, .04);
	--sh-float: 0 2px 6px rgba(17, 17, 17, .04), 0 30px 60px -28px rgba(17, 17, 17, .22);
	--sh-hover: 0 20px 40px -24px rgba(17, 17, 17, .3);
	--sh-btn: 0 14px 28px -12px var(--brand-shadow);

	--container: 1180px;
	--container-narrow: 820px;
	--header-h: 70px;

	--font-heading: 'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	--font-body: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	--font-ui: 'Poppins', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	--font: var(--font-body);
}

/* ---------- Reset / base ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
	font-family: var(--font);
	color: var(--ink);
	background: var(--bg);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
[hidden] { display: none !important; }
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--brand); text-decoration: none; }
a:hover { text-decoration: underline; }
button { font-family: inherit; }
::selection { background: var(--brand); color: #fff; }
h1, h2, h3, h4, .vx-stats__value, .vx-calc__amount, .vx-final-cta__title { font-family: var(--font-heading); letter-spacing: -.01em; }
h1, h2, h3, h4 { line-height: 1.2; color: var(--ink); }
.vx-btn, .vx-kicker, .vx-eyebrow, .vx-badge, .vx-nav-toggle, .vx-menu a, .vx-mobile-menu a { font-family: var(--font-ui); }
strong { color: var(--ink); font-weight: 700; }

/* ---------- Layout ---------- */
.container { max-width: var(--container); margin: 0 auto; padding: 0 24px; }
.container--narrow { max-width: var(--container-narrow); }
.vx-main { display: block; }
.vx-section { padding: 96px 0; }
.vx-text-brand { color: var(--brand); }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
	clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.vx-skip-link { position: absolute; left: -9999px; z-index: 100; top: 0; }
.vx-skip-link:focus { left: 16px; top: 12px; background: #fff; padding: 10px 16px; border-radius: 8px; box-shadow: var(--sh-hover); width: auto; height: auto; clip: auto; }

/* ---------- Icon ---------- */
.vx-icon { display: inline-block; vertical-align: middle; flex: none; }
.vx-icon-badge {
	display: inline-flex; align-items: center; justify-content: center;
	width: 54px; height: 54px; border-radius: 16px;
	background: var(--brand-12); color: var(--brand); flex: none;
}
.vx-icon-badge--sm { width: 28px; height: 28px; border-radius: 8px; }

/* ---------- Kicker / eyebrow / badge ---------- */
.vx-kicker { display: inline-block; font-size: 13px; font-weight: 700; color: var(--brand); text-transform: uppercase; letter-spacing: .1em; }
.vx-eyebrow { font-size: 13px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; }
.vx-badge {
	display: inline-flex; align-items: center; gap: 8px;
	background: #fff; border: 1px solid var(--brand-25); color: var(--brand);
	font-size: 13px; font-weight: 700; padding: 7px 14px; border-radius: var(--r-pill);
	box-shadow: 0 4px 14px -8px rgba(17, 17, 17, .2);
}
.vx-badge__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--brand); }

/* ---------- Section head ---------- */
.vx-sec-head { max-width: 640px; margin-bottom: 56px; }
.vx-sec-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.vx-sec-title { font-size: 40px; font-weight: 800; letter-spacing: -.025em; margin-top: 14px; text-wrap: balance; }
.vx-sec-desc { font-size: 17px; color: var(--text-soft); margin-top: 14px; }

/* ---------- Buttons ---------- */
.vx-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 9px;
	font-weight: 700; font-size: 16px; padding: 14px 26px; border-radius: var(--r-btn);
	border: 1px solid transparent; cursor: pointer; text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
	line-height: 1.2;
}
.vx-btn:hover { text-decoration: none; transform: translateY(-1px); }
.vx-btn__arrow { font-weight: 700; }
.vx-btn--primary { background: var(--brand); color: #fff; box-shadow: var(--sh-btn); }
.vx-btn--primary:hover { color: #fff; box-shadow: 0 18px 34px -12px var(--brand-shadow); }
.vx-btn--secondary { background: #fff; color: var(--brand); border-color: var(--brand); }
.vx-btn--secondary:hover { color: #fff; background: var(--brand); border-color: var(--brand); }
.vx-btn--white { background: #fff; color: var(--brand); box-shadow: 0 10px 22px -12px rgba(0, 0, 0, .25); }
.vx-btn--white:hover { color: var(--brand); }
.vx-btn--pill { background: var(--brand); color: #fff; border-radius: var(--r-pill); padding: 16px 36px; box-shadow: var(--sh-btn); }
.vx-btn--pill:hover { color: #fff; }
.vx-btn--block { width: 100%; }
.vx-btn--lg { padding: 16px 28px; font-size: 16px; }

/* Nút CTA nhỏ trong header */
.vx-header__actions .vx-btn--primary { padding: 11px 22px; font-size: 15px; border-radius: 11px; box-shadow: 0 8px 18px -10px var(--brand-shadow); }

/* ---------- Logo ---------- */
.vx-logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
.vx-logo:hover { text-decoration: none; }
.vx-logo__img { display: block; }

/* ---------- Header ---------- */
.vx-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(255, 255, 255, .85);
	-webkit-backdrop-filter: saturate(180%) blur(12px);
	backdrop-filter: saturate(180%) blur(12px);
	border-bottom: 1px solid var(--border);
}
.vx-header__inner { display: flex; align-items: center; gap: 32px; padding: 14px 24px; }
.vx-header__nav { flex: 1; }
.vx-menu { list-style: none; display: flex; gap: 30px; padding: 0; margin: 0; }
.vx-menu a { font-size: 15px; font-weight: 500; color: var(--text); text-decoration: none; }
.vx-menu a:hover, .vx-menu .current-menu-item > a { color: var(--brand); }
.vx-header__actions { display: flex; align-items: center; gap: 12px; }
.vx-nav-toggle { display: none; background: none; border: 1px solid var(--border); border-radius: 10px; padding: 7px; color: var(--ink); cursor: pointer; }

/* Mobile drawer */
.vx-mobile-nav { position: fixed; inset: 0; z-index: 60; background: #fff; padding: 18px 24px 32px; flex-direction: column; gap: 8px; overflow-y: auto; }
.vx-mobile-nav:not([hidden]) { display: flex; }
.vx-mobile-nav__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.vx-mobile-nav__close { background: none; border: 1px solid var(--border); border-radius: 10px; padding: 7px; cursor: pointer; color: var(--ink); }
.vx-mobile-menu { list-style: none; padding: 0; margin: 0 0 16px; display: flex; flex-direction: column; }
.vx-mobile-menu a { display: block; padding: 14px 4px; font-size: 17px; font-weight: 600; color: var(--ink); border-bottom: 1px solid var(--border-2); }
body.vx-nav-open { overflow: hidden; }

/* ---------- Hero ---------- */
.vx-hero { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--brand-9) 0%, #fff 70%); }
.vx-hero__orb { position: absolute; top: -120px; right: -120px; width: 420px; height: 420px; border-radius: 50%; background: var(--brand-14); filter: blur(10px); opacity: .5; }
.vx-hero__inner { position: relative; display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; padding: 72px 24px 88px; }
.vx-hero__copy { margin-top: -36px; } /* nhích cột chữ lên cho cân với card máy tính bên phải */
.vx-hero__title { font-size: 56px; line-height: 1.14; font-weight: 800; letter-spacing: -.025em; margin-top: 20px; text-wrap: balance; }
.vx-hero__desc { font-size: 18px; color: var(--text); max-width: 440px; margin-top: 20px; }
.vx-hero__cta { display: flex; gap: 14px; margin-top: 30px; flex-wrap: wrap; }
.vx-hero__stores { margin-top: 34px; }

/* Store badges */
.vx-store-badges { display: flex; gap: 12px; flex-wrap: wrap; }
.vx-store-badge { display: inline-block; line-height: 0; text-decoration: none; transition: opacity .15s ease, transform .15s ease; }
.vx-store-badge:hover { opacity: .85; transform: translateY(-1px); text-decoration: none; }
.vx-store-badge__img { height: 40px; width: auto; }
.vx-app__stores .vx-store-badges { flex-wrap: nowrap; } /* 2 badge tải app trên 1 dòng */

/* ---------- Calculator ---------- */
.vx-calc { background: #fff; border: 1px solid var(--border); border-radius: var(--r-lg); padding: 28px; box-shadow: var(--sh-float); }
.vx-calc__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.vx-calc__title { font-size: 18px; font-weight: 700; }
.vx-calc__free { flex: none; white-space: nowrap; font-size: 12px; font-weight: 700; color: var(--brand); background: var(--brand-12); padding: 5px 11px; border-radius: var(--r-pill); }
@media (max-width: 560px) { .vx-calc__head { gap: 10px; } .vx-calc__title { font-size: 16px; } }
.vx-calc__amount-row { display: flex; align-items: baseline; justify-content: space-between; }
.vx-calc__label { font-size: 14px; color: var(--text-soft); font-weight: 600; }
.vx-calc__amount { font-size: 30px; font-weight: 800; color: var(--brand); letter-spacing: -.02em; }
.vx-calc__slider { position: relative; height: 30px; margin: 12px 0 4px; display: flex; align-items: center; cursor: pointer; touch-action: none; }
.vx-calc__track { position: absolute; left: 0; right: 0; height: 6px; border-radius: var(--r-pill); background: #ECECEC; }
.vx-calc__fill { position: absolute; left: 0; height: 6px; border-radius: var(--r-pill); background: var(--brand); }
.vx-calc__thumb { position: absolute; top: 50%; transform: translate(-50%, -50%); width: 24px; height: 24px; border-radius: 50%; background: #fff; border: 4px solid var(--brand); box-shadow: 0 3px 8px rgba(17, 17, 17, .28); }
.vx-calc__slider:focus-visible { outline: none; }
.vx-calc__slider:focus-visible .vx-calc__thumb { box-shadow: 0 0 0 6px var(--brand-25); }
.vx-calc__range { display: flex; justify-content: space-between; font-size: 12px; color: var(--muted-2); font-weight: 600; }
.vx-calc__divider { height: 1px; background: var(--border-2); margin: 20px 0; }
.vx-calc__line { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.vx-calc__line:last-of-type { margin-bottom: 20px; }
.vx-calc__pay-wrap { text-align: right; }
.vx-calc__normal { display: block; font-size: 13px; color: var(--danger); text-decoration: line-through; }
.vx-calc__pay { display: block; font-size: 18px; font-weight: 800; }
.vx-calc__date { font-size: 16px; font-weight: 700; }
.vx-input { width: 100%; padding: 14px 16px; border: 1px solid var(--border-hover); border-radius: var(--r-btn); font-size: 15px; font-family: inherit; color: var(--ink); outline: none; background: #fff; }
.vx-input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-12); }
.vx-calc__form { display: flex; flex-direction: column; gap: 12px; }
.vx-calc__terms { font-size: 12px; color: var(--muted-2); text-align: center; line-height: 1.5; margin-top: 14px; }
.vx-calc__terms a { font-weight: 600; }

/* ---------- Stats ---------- */
.vx-stats { border-top: 1px solid var(--border-2); border-bottom: 1px solid var(--border-2); background: #fff; }
.vx-stats--plain { border: 0; background: var(--bg-soft); }
.vx-stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); padding: 36px 24px; }
.vx-stats__item { text-align: center; padding: 6px 12px; }
.vx-stats__item:not(:last-child) { border-right: 1px solid var(--border-2); }
.vx-stats__value { font-size: 30px; font-weight: 800; letter-spacing: -.02em; }
.vx-stats__label { font-size: 14px; color: var(--text-soft); margin-top: 2px; }

/* ---------- Reasons ---------- */
.vx-reasons__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.vx-reason-card { display: flex; gap: 22px; background: #fff; border: 1px solid var(--border); border-radius: var(--r-card); padding: 30px; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.vx-reason-card:hover { transform: translateY(-4px); box-shadow: var(--sh-hover); border-color: var(--border-hover); }
.vx-reason-card__body h3 { font-size: 19px; font-weight: 700; margin-bottom: 7px; }
.vx-reason-card__body p { font-size: 15px; color: var(--text-soft); line-height: 1.65; }

/* ---------- Process ---------- */
.vx-process { background: var(--brand-6); }
.vx-process__inner { display: grid; grid-template-columns: 1.05fr .95fr; gap: 64px; align-items: center; }
.vx-process__steps .vx-sec-title { margin-bottom: 36px; }
.vx-timeline { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; }
.vx-timeline__item { display: flex; gap: 20px; position: relative; padding-bottom: 30px; }
.vx-timeline__item::before { content: ""; position: absolute; left: 22px; top: 46px; bottom: 0; width: 2px; background: var(--brand-28); }
.vx-timeline__item.is-last { padding-bottom: 0; }
.vx-timeline__item.is-last::before { display: none; }
.vx-timeline__num { flex: none; width: 46px; height: 46px; border-radius: 50%; background: var(--brand); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 800; position: relative; z-index: 1; }
.vx-timeline__item.is-last .vx-timeline__num { background: var(--brand-dark); }
.vx-timeline__body h3 { font-size: 20px; font-weight: 700; margin: 6px 0; }
.vx-timeline__body p { font-size: 15.5px; color: var(--text-soft); line-height: 1.65; max-width: 430px; }
.vx-process__steps .vx-btn { margin-top: 34px; }

/* Phone mockup */
.vx-process__mockup { position: relative; display: flex; justify-content: center; align-items: center; min-height: 440px; }
.vx-process__circle { position: absolute; width: 340px; height: 340px; border-radius: 50%; background: var(--brand-12); }
.vx-float-card { position: absolute; z-index: 3; display: flex; align-items: center; gap: 9px; background: #fff; border-radius: 13px; padding: 10px 13px; box-shadow: 0 18px 36px -18px rgba(17, 17, 17, .4); }
.vx-float-card small { display: block; font-size: 10px; color: var(--muted); font-weight: 600; }
.vx-float-card strong { display: block; font-size: 13px; font-weight: 800; }
.vx-float-card--tl { top: 40px; left: 0; }
.vx-float-card--br { bottom: 44px; right: 0; }
.vx-phone { position: relative; z-index: 2; width: 248px; background: var(--brand-dark); border-radius: 32px; padding: 10px; box-shadow: 0 40px 70px -28px rgba(17, 17, 17, .45); }
.vx-phone__screen { background: var(--bg-soft); border-radius: 24px; overflow: hidden; }
.vx-process__mockup .vx-phone__screen { min-height: 360px; display: flex; flex-direction: column; } /* phone mockup cao + flex để list lấp đầy */
.vx-process__mockup .vx-phone__list { flex: 1; }
.vx-phone__top { background: var(--brand); padding: 15px 17px 16px; }
.vx-phone__brand { display: flex; align-items: center; gap: 7px; font-weight: 800; font-size: 13px; color: #fff; }
.vx-phone__logo { width: 20px; height: 20px; background-color: #fff; -webkit-mask: url("../img/favicon.png") center / contain no-repeat; mask: url("../img/favicon.png") center / contain no-repeat; }
.vx-phone__sub { margin-top: 12px; font-size: 11px; color: rgba(255, 255, 255, .85); }
.vx-phone__count { font-size: 20px; font-weight: 800; color: #fff; letter-spacing: -.02em; }
.vx-phone__list { padding: 13px; }
.vx-phone__offer { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 12px; }
.vx-phone__offer:not(.is-primary) { margin-top: 9px; display: flex; align-items: center; justify-content: space-between; }
.vx-phone__offer-head { display: flex; align-items: center; justify-content: space-between; }
.vx-phone__offer-name { font-size: 12px; font-weight: 700; display: block; }
.vx-phone__offer-rate { font-size: 10px; font-weight: 700; color: var(--brand); background: var(--brand-12); padding: 3px 7px; border-radius: var(--r-pill); }
.vx-phone__offer-rate--muted { color: var(--muted); background: #F1F1F1; }
.vx-phone__offer-meta { display: block; margin-top: 3px; font-size: 10px; color: var(--muted); }
.is-primary .vx-phone__offer-meta { margin-top: 6px; }
.vx-phone__offer-btn { margin-top: 10px; background: var(--brand); color: #fff; text-align: center; font-size: 11px; font-weight: 700; padding: 8px; border-radius: 8px; }

/* ---------- Loan terms ---------- */
.vx-terms__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-bottom: 24px; }
.vx-term-card { border: 1px solid var(--border); border-radius: var(--r-card); padding: 30px; background: #fff; }
.vx-term-card__label { font-size: 13px; font-weight: 700; color: var(--brand); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 14px; }
.vx-term-card p { font-size: 17px; color: var(--text-strong); line-height: 1.6; }
.vx-terms__examples { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.vx-term-example { border-radius: var(--r-card); padding: 28px 30px; background: var(--bg-soft); }
.vx-term-example.is-accent { background: var(--brand-7); }
.vx-term-example__title { font-size: 15px; font-weight: 700; margin-bottom: 8px; color: var(--ink); }
.is-accent .vx-term-example__title { color: var(--brand); }
.vx-term-example p { font-size: 15px; color: var(--text); line-height: 1.65; }

/* ---------- Usage tabs ---------- */
.vx-usage__card { border: 1px solid var(--border); border-radius: 28px; overflow: hidden; box-shadow: 0 2px 6px rgba(17, 17, 17, .04), 0 24px 50px -34px rgba(17, 17, 17, .18); }
.vx-usage__chips { display: flex; flex-wrap: wrap; gap: 10px; padding: 22px 30px; border-bottom: 1px solid var(--border-2); background: var(--bg-chip); }
.vx-usage__chip { font-size: 13px; font-weight: 600; color: var(--text); background: #fff; border: 1px solid var(--border-3); padding: 8px 16px; border-radius: var(--r-pill); cursor: pointer; transition: all .15s ease; }
.vx-usage__chip:hover { border-color: var(--brand); color: var(--brand); }
.vx-usage__chip.is-active { color: #fff; font-weight: 700; background: var(--brand); border-color: var(--brand); }
.vx-usage__grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: stretch; }
.vx-usage__deco { position: relative; background: var(--brand-9); display: flex; align-items: center; justify-content: center; padding: 48px; overflow: hidden; }
.vx-usage__deco-orb { position: absolute; border-radius: 50%; }
.vx-usage__deco-orb--1 { top: -50px; left: -40px; width: 200px; height: 200px; background: var(--brand-14); }
.vx-usage__deco-orb--2 { bottom: -60px; right: -30px; width: 170px; height: 170px; background: var(--brand-12); }
.vx-usage__deco-grid { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.vx-usage__deco-card { background: #fff; border-radius: 18px; padding: 20px; box-shadow: 0 14px 30px -20px rgba(17, 17, 17, .4); display: flex; flex-direction: column; align-items: center; gap: 10px; color: var(--brand); }
.vx-usage__deco-card:nth-child(2), .vx-usage__deco-card:nth-child(4) { margin-top: 20px; }
.vx-usage__deco-card span { font-size: 12px; font-weight: 700; color: var(--ink); }
.vx-usage__content { padding: 48px 52px; }
.vx-usage__heading { font-size: 26px; font-weight: 800; letter-spacing: -.02em; min-height: 64px; }
.vx-usage__tips { margin-top: 24px; display: flex; flex-direction: column; gap: 18px; }
.vx-usage__tip { display: flex; gap: 14px; align-items: flex-start; }
.vx-usage__tip-check { flex: none; width: 30px; height: 30px; border-radius: 9px; background: var(--brand-12); color: var(--brand); display: flex; align-items: center; justify-content: center; }
.vx-usage__tip p { font-size: 16px; color: var(--text); line-height: 1.6; }
.vx-usage__content .vx-btn { margin-top: 30px; }
@media (max-width: 560px) {
	.vx-usage__chips { flex-direction: column; gap: 8px; padding: 18px; }
	.vx-usage__chip { width: 100%; text-align: center; padding: 12px 16px; font-size: 14px; }
}

/* ---------- Eligibility ---------- */
.vx-elig { background: var(--brand-7); }
.vx-elig__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.vx-elig__card { background: #fff; border: 1px solid var(--border); border-radius: var(--r-card); padding: 30px 28px; box-shadow: var(--sh-card); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.vx-elig__card:hover { transform: translateY(-5px); box-shadow: 0 22px 44px -26px rgba(17, 17, 17, .3); border-color: var(--border-hover); }
.vx-elig__num { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--brand); color: #fff; font-size: 16px; font-weight: 800; margin-bottom: 20px; }
.vx-elig__card p { font-size: 16.5px; font-weight: 600; color: var(--ink); line-height: 1.55; }
.vx-elig__cta { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: 48px; }
.vx-elig__note { font-size: 14px; color: var(--muted); }

/* ---------- App ---------- */
.vx-app__inner { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center; background: var(--brand-7); border-radius: 28px; padding: 48px 48px 0; overflow: hidden; }
.vx-app__copy { padding-bottom: 0; }
.vx-app__copy .vx-sec-title { font-size: 36px; margin-top: 14px; }
.vx-app__desc { font-size: 17px; color: var(--text); margin-top: 16px; }
.vx-app__stores { margin-top: 28px; }
.vx-app__mockup { display: flex; justify-content: center; align-items: flex-start; align-self: end; height: 360px; overflow: hidden; } /* cắt phần dưới phone -> giảm chiều cao div, kiểu phone "nhô từ đáy" */
.vx-phone--app { width: 248px; border-radius: 34px 34px 0 0; padding: 12px 12px 0; }
.vx-phone__screen--app { background: #fff; border-radius: 24px 24px 0 0; padding: 18px 16px 24px; min-height: 360px; overflow: visible; }
.vx-phone__brand--dark { color: var(--ink); margin-bottom: 18px; font-size: 14px; }
.vx-phone__brand--dark span.vx-text-brand { color: var(--brand); }
.vx-phone__logo--brand { background: var(--brand); width: 18px; height: 18px; border-radius: 6px; }
.vx-phone__eyebrow { font-size: 11px; font-weight: 700; color: var(--muted-2); text-transform: uppercase; letter-spacing: .06em; }
.vx-phone__amount-row { display: flex; justify-content: space-between; align-items: baseline; margin-top: 10px; font-size: 12px; color: var(--text-soft); }
.vx-phone__amount { font-size: 20px; font-weight: 800; }
.vx-phone__bar { height: 5px; border-radius: var(--r-pill); background: #ECECEC; margin: 10px 0; position: relative; overflow: hidden; }
.vx-phone__bar span { position: absolute; left: 0; top: 0; height: 5px; border-radius: var(--r-pill); background: var(--brand); }
.vx-phone__panel { background: var(--bg-soft); border-radius: 12px; padding: 12px 14px; margin-top: 14px; }
.vx-phone__panel div { display: flex; justify-content: space-between; font-size: 12px; color: var(--text-soft); }
.vx-phone__panel div:first-child { margin-bottom: 6px; }
.vx-phone__panel strong { color: var(--ink); font-weight: 700; }
.vx-phone__panel em { color: var(--faint); font-style: normal; }
.vx-phone__cta { margin-top: 14px; background: var(--brand); color: #fff; text-align: center; font-weight: 700; font-size: 14px; padding: 12px; border-radius: 11px; }

/* ---------- Testimonials + partners ---------- */
.vx-testi { background: var(--bg-soft); }
.vx-testi__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-bottom: 64px; }
.vx-testi-card { background: #fff; border: 1px solid var(--border); border-radius: var(--r-card); padding: 30px; }
.vx-testi-card__stars { color: var(--star); font-size: 16px; letter-spacing: 2px; }
.vx-testi-card__quote { font-size: 16px; color: var(--text-strong); line-height: 1.65; margin: 16px 0 22px; }
.vx-testi-card__author { display: flex; align-items: center; gap: 12px; }
.vx-testi-card__avatar { width: 42px; height: 42px; border-radius: 50%; background: var(--brand-18); display: flex; align-items: center; justify-content: center; font-weight: 800; color: var(--brand); flex: none; }
.vx-testi-card__author strong { display: block; font-weight: 700; font-size: 15px; }
.vx-testi-card__author small { display: block; font-size: 13px; color: var(--muted); }
.vx-partners-row__heading { text-align: center; font-size: 13px; font-weight: 700; color: var(--muted-2); text-transform: uppercase; letter-spacing: .1em; margin-bottom: 24px; }
.vx-partners-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; }
.vx-partners-row__logo { height: 88px; background: #fff; border: 1px solid var(--border); border-radius: 14px; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 14px; }
.vx-partners-row__logo span { color: var(--faint); font-family: ui-monospace, monospace; font-size: 12px; }
.vx-partners-row__logo img { max-height: 100%; width: auto; object-fit: contain; }
/* Logo chạy liên tục sang trái (marquee) */
.vx-partners-row.is-marquee { display: block; overflow: hidden; grid-template-columns: none; -webkit-mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.vx-partners-row__track { display: flex; width: max-content; }
.vx-partners-row.is-marquee .vx-partners-row__track { animation: vx-logo-marquee 28s linear infinite; }
.vx-partners-row.is-marquee .vx-partners-row__logo { flex: 0 0 auto; width: 180px; margin-right: 18px; }
.vx-partners-row.is-marquee:hover .vx-partners-row__track { animation-play-state: paused; }
@keyframes vx-logo-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .vx-partners-row.is-marquee .vx-partners-row__track { animation: none; } }

/* ---------- FAQ ---------- */
.vx-faq .vx-sec-head { margin-bottom: 48px; }
.vx-accordion { display: flex; flex-direction: column; gap: 12px; }
.vx-accordion__item { border: 1px solid var(--border); border-radius: 16px; overflow: hidden; }
.vx-accordion__head { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: #fff; border: none; cursor: pointer; padding: 20px 22px; text-align: left; }
.vx-accordion__q { font-size: 16px; font-weight: 700; color: var(--ink); }
.vx-accordion__sign { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--brand-12); color: var(--brand); display: flex; align-items: center; justify-content: center; position: relative; }
.vx-accordion__sign::before, .vx-accordion__sign::after { content: ""; position: absolute; background: var(--brand); border-radius: 2px; transition: transform .2s ease, opacity .2s ease; }
.vx-accordion__sign::before { width: 12px; height: 2px; }
.vx-accordion__sign::after { width: 2px; height: 12px; }
.vx-accordion__item.is-open .vx-accordion__sign::after { transform: scaleY(0); opacity: 0; }
.vx-accordion__panel { padding: 0 22px 22px; }
.vx-accordion__answer { font-size: 15px; color: var(--text-soft); line-height: 1.7; }

/* ---------- Article ---------- */
.vx-article { background: var(--bg-soft); border-top: 1px solid var(--border-2); padding: 80px 0; }
.vx-article__title { font-size: 30px; font-weight: 800; letter-spacing: -.02em; margin-top: 12px; }
.vx-article__body p { font-size: 16px; color: var(--text); line-height: 1.8; margin-top: 16px; }
.vx-article__body > p:first-of-type { margin-top: 20px; }
.vx-article__toggle { display: inline-flex; align-items: center; gap: 6px; margin-top: 16px; padding: 0; border: none; background: none; cursor: pointer; font-family: inherit; font-size: 16px; color: var(--brand); font-weight: 700; }
.vx-article__toggle-arrow { transition: transform .2s ease; }
.vx-article__toggle[aria-expanded="true"] .vx-article__toggle-arrow { transform: rotate(90deg); }

/* ---------- Final CTA + Footer ---------- */
.vx-footer { background: var(--bg-soft); border-top: 1px solid var(--border); }
.vx-footer > .container { padding-top: 64px; }
.vx-final-cta { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; background: var(--brand); color: #fff; border-radius: var(--r-lg); padding: 40px 48px; box-shadow: 0 30px 60px -34px var(--brand-shadow); }
.vx-final-cta__title { font-size: 26px; font-weight: 800; letter-spacing: -.01em; }
.vx-final-cta__desc { margin-top: 8px; font-size: 16px; color: rgba(255, 255, 255, .85); }
.vx-footer__cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.4fr; gap: 40px; padding: 56px 0; }
.vx-footer__about { font-size: 14px; color: var(--text-soft); max-width: 260px; line-height: 1.6; margin: 16px 0 18px; }
.vx-footer__heading { font-size: 13px; font-weight: 700; color: var(--muted-2); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 16px; }
.vx-footer__menu { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.vx-footer__menu a, .vx-footer__col a { font-size: 15px; color: var(--text); }
.vx-footer__menu a:hover { color: var(--brand); text-decoration: none; }
.vx-footer__hotline { font-size: 20px; font-weight: 800; color: var(--ink); display: block; margin-bottom: 6px; }
.vx-footer__hotline:hover { color: var(--brand); text-decoration: none; }
.vx-footer__email { font-size: 14px; color: var(--text-soft); display: block; margin-bottom: 14px; }
.vx-footer__hours { font-size: 13px; color: var(--muted); margin-bottom: 4px; }
.vx-footer__address { font-size: 13px; color: var(--muted); line-height: 1.6; }
.vx-store-badges + .vx-socials { margin-top: 20px; }
.vx-socials { display: flex; gap: 10px; }
.vx-socials__link { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: #fff; border: 1px solid var(--border-3); color: var(--text); transition: background .18s, color .18s, border-color .18s; }
.vx-socials__link:hover { background: var(--brand); color: #fff; border-color: var(--brand); text-decoration: none; }
.vx-socials__zalo { font-size: 13px; font-weight: 800; letter-spacing: -.02em; }
.vx-footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 24px 0; border-top: 1px solid var(--border); }
.vx-footer__copy { font-size: 13px; color: var(--muted-2); }
.vx-footer__legal-menu { list-style: none; display: flex; align-items: center; gap: 24px; flex-wrap: wrap; padding: 0; margin: 0; }
.vx-footer__legal-menu a { font-size: 13px; color: var(--text-soft); }

/* ---------- Legal disclaimer ---------- */
.vx-legal { background: var(--bg-legal); border-top: 1px solid var(--border); color: #6B7A72; }
.vx-legal > .container { padding-top: 40px; padding-bottom: 48px; }
.vx-legal__title { font-size: 13px; font-weight: 800; color: var(--text-strong); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 14px; }
.vx-legal__intro { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 48px; font-size: 12.5px; line-height: 1.7; }
.vx-legal__note { font-size: 12.5px; line-height: 1.7; margin-top: 12px; }
.vx-legal__divider { height: 1px; background: var(--border-3); margin: 22px 0; }
.vx-legal__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 48px; }
.vx-legal__block h3 { font-size: 13px; font-weight: 700; color: var(--text-strong); margin-bottom: 6px; }
.vx-legal__block p { font-size: 12.5px; line-height: 1.7; }
.vx-legal__block em { color: var(--muted-2); font-style: italic; }

/* ---------- Page hero (inner pages) ---------- */
.vx-page-hero { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--brand-9) 0%, #fff 100%); padding: 56px 0 48px; }
.vx-page-hero--sm { padding: 40px 0 36px; }
.vx-page-hero__orb { position: absolute; top: -140px; right: -100px; width: 360px; height: 360px; border-radius: 50%; background: var(--brand-14); filter: blur(12px); opacity: .45; }
.vx-page-hero__title { font-size: 40px; font-weight: 800; letter-spacing: -.025em; margin-top: 14px; position: relative; }
.vx-page-hero__lead { font-size: 17px; color: var(--text-soft); margin-top: 12px; max-width: 620px; position: relative; }
.vx-page-hero__search { margin-top: 22px; max-width: 460px; position: relative; }

/* ---------- Breadcrumb ---------- */
.vx-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; font-size: 13px; }
.vx-breadcrumb li { display: flex; align-items: center; gap: 8px; color: var(--muted); }
.vx-breadcrumb li:not(:last-child)::after { content: "›"; color: var(--faint); }
.vx-breadcrumb a { color: var(--text-soft); }
.vx-breadcrumb span { color: var(--muted); }

/* ---------- Pagination ---------- */
.vx-pagination { margin-top: 48px; }
.vx-pagination ul { list-style: none; display: flex; justify-content: center; gap: 8px; padding: 0; margin: 0; }
.vx-pagination a, .vx-pagination span { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--border); background: #fff; color: var(--text); font-weight: 600; }
.vx-pagination a:hover { border-color: var(--brand); color: var(--brand); text-decoration: none; }
.vx-pagination .current { background: var(--brand); border-color: var(--brand); color: #fff; }

/* ---------- Post grid / cards ---------- */
.vx-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.vx-post-card { background: #fff; border: 1px solid var(--border); border-radius: var(--r-card); overflow: hidden; display: flex; flex-direction: column; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.vx-post-card:hover { transform: translateY(-4px); box-shadow: var(--sh-hover); border-color: var(--border-hover); }
.vx-post-card__thumb { display: block; aspect-ratio: 16 / 10; background: var(--brand-9); overflow: hidden; }
.vx-post-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.vx-post-card__thumb-fallback { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: var(--brand); opacity: .5; }
.vx-post-card__body { padding: 22px 24px 24px; display: flex; flex-direction: column; flex: 1; }
.vx-post-card__cat { align-self: flex-start; font-size: 12px; font-weight: 700; color: var(--brand); background: var(--brand-12); padding: 4px 10px; border-radius: var(--r-pill); margin-bottom: 12px; }
.vx-post-card__cat:hover { text-decoration: none; }
.vx-post-card__title { font-size: 18px; font-weight: 700; line-height: 1.4; }
.vx-post-card__title a { color: var(--ink); }
.vx-post-card__title a:hover { color: var(--brand); text-decoration: none; }
.vx-post-card__excerpt { font-size: 14.5px; color: var(--text-soft); line-height: 1.6; margin-top: 10px; flex: 1; }
.vx-post-card__meta { display: flex; gap: 16px; font-size: 13px; color: var(--muted); margin-top: 16px; }
.vx-post-card__meta span { display: inline-flex; align-items: center; gap: 6px; }

/* ---------- Single ---------- */
.vx-single__hero { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--brand-9) 0%, #fff 100%); padding: 40px 0 36px; }
.vx-single__cat { display: inline-block; font-size: 12px; font-weight: 700; color: var(--brand); background: var(--brand-12); padding: 5px 12px; border-radius: var(--r-pill); margin: 12px 0; }
.vx-single__cat:hover { text-decoration: none; }
.vx-single__title { font-size: 38px; font-weight: 800; letter-spacing: -.02em; line-height: 1.2; }
.vx-single__meta { display: flex; gap: 20px; font-size: 14px; color: var(--muted); margin-top: 16px; }
.vx-single__meta span { display: inline-flex; align-items: center; gap: 6px; }
.vx-single__thumb { margin: 32px 0; border-radius: var(--r-lg); overflow: hidden; }
.vx-single__tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
.vx-single__tags a { font-size: 13px; color: var(--text-soft); background: var(--bg-soft); padding: 6px 14px; border-radius: var(--r-pill); }
.vx-single__share-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin: 40px 0; padding: 28px 32px; background: var(--brand-7); border-radius: var(--r-lg); }
.vx-single__share-cta strong { display: block; font-size: 18px; }
.vx-single__share-cta span { font-size: 15px; color: var(--text-soft); }

/* ---------- Mục lục (Table of contents) ---------- */
.vx-toc { margin: 4px 0 30px; padding: 20px 24px; background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--r-lg); }
.vx-toc__head { display: flex; align-items: center; gap: 9px; font-weight: 700; font-size: 15px; margin-bottom: 10px; }
.vx-toc__head svg { color: var(--brand); flex: 0 0 auto; }
.vx-toc__list { list-style: none; margin: 0; padding: 0; counter-reset: vx-toc; }
.vx-toc__item--h2 { counter-increment: vx-toc; }
.vx-toc__item a { display: flex; gap: 10px; padding: 6px 0; font-size: 15px; color: var(--text-soft); line-height: 1.5; transition: color .15s; }
.vx-toc__item a:hover { color: var(--brand); }
.vx-toc__item a::before { color: var(--brand); font-weight: 700; flex: 0 0 auto; }
.vx-toc__item--h2 a::before { content: counter(vx-toc) "."; min-width: 20px; }
.vx-toc__item--h3 { margin-left: 22px; }
.vx-toc__item--h3 a { font-size: 14px; }
.vx-toc__item--h3 a::before { content: "–"; min-width: 14px; }

/* ---------- Hộp tác giả ---------- */
.vx-author-box { display: flex; gap: 20px; align-items: flex-start; margin: 40px 0; padding: 24px; background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--r-lg); }
.vx-author-box__avatar { flex: 0 0 auto; width: 84px; height: 84px; }
.vx-author-box__avatar img { display: block; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; border: 3px solid #fff; box-shadow: 0 4px 14px rgba(0, 0, 0, .08); }
.vx-author-box__eyebrow { display: inline-block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--brand); margin-bottom: 4px; }
.vx-author-box__name { font-size: 20px; font-weight: 800; margin: 0 0 6px; }
.vx-author-box__bio { font-size: 15px; color: var(--text-soft); line-height: 1.6; margin: 0 0 12px; }
.vx-author-box__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; font-size: 14px; color: var(--muted); }
.vx-author-box__meta a { color: var(--brand); font-weight: 600; }
.vx-author-box__meta a:hover { text-decoration: underline; }
.vx-author-box__social { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.vx-author-box__social a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: #fff; border: 1px solid var(--border); color: var(--muted); transition: color .16s, background .16s, border-color .16s, transform .16s; }
.vx-author-box__social a:hover { color: #fff; background: var(--brand); border-color: var(--brand); transform: translateY(-2px); }
.vx-author-box__social svg { display: block; }
.vx-author-box--lg { margin: 22px 0 0; padding: 0; background: transparent; border: 0; }
.vx-author-box--lg .vx-author-box__avatar { width: 104px; height: 104px; }
.vx-author-box--lg .vx-author-box__name { font-size: 30px; letter-spacing: -.01em; }
.vx-author-box--lg .vx-author-box__bio { font-size: 16px; max-width: 620px; }
@media (max-width: 560px) {
	.vx-author-box { flex-direction: column; gap: 14px; }
}

.vx-related__title { font-size: 26px; font-weight: 800; margin-bottom: 32px; }

/* ---------- Prose ---------- */
.vx-prose { font-size: 16.5px; color: var(--text); line-height: 1.8; }
.vx-prose > * + * { margin-top: 20px; }
.vx-prose h2 { font-size: 26px; font-weight: 800; margin-top: 40px; }
.vx-prose h3 { font-size: 20px; font-weight: 700; margin-top: 32px; }
.vx-prose ul, .vx-prose ol { padding-left: 22px; }
.vx-prose li { margin-top: 8px; }
.vx-prose a { font-weight: 600; text-decoration: underline; }
.vx-prose blockquote { border-left: 4px solid var(--brand); background: var(--brand-7); padding: 18px 24px; border-radius: 0 12px 12px 0; color: var(--text-strong); }
.vx-prose img { border-radius: 12px; }

/* ---------- Contact page ---------- */
.vx-contact__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.vx-contact-card { background: #fff; border: 1px solid var(--border); border-radius: var(--r-card); padding: 28px; text-align: center; }
.vx-contact-card .vx-icon-badge { margin: 0 auto 16px; }
.vx-contact-card__label { font-size: 13px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 8px; }
.vx-contact-card__value { font-size: 16px; font-weight: 600; color: var(--ink); }
a.vx-contact-card__value:hover { color: var(--brand); text-decoration: none; }
.vx-contact__content { margin-top: 48px; }
.vx-contact__cta { text-align: center; margin-top: 56px; padding: 48px; background: var(--brand-7); border-radius: var(--r-lg); }
.vx-contact__cta h2 { font-size: 28px; font-weight: 800; margin-bottom: 22px; }

/* ---------- About page (redesign) ---------- */
.vx-about-hero { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--brand-9) 0%, #fff 100%); padding: 48px 0 64px; }
.vx-about-hero__inner { position: relative; text-align: center; max-width: 780px; margin: 24px auto 0; }
.vx-about-hero__title { font-size: 48px; font-weight: 800; letter-spacing: -.03em; line-height: 1.12; margin-top: 18px; text-wrap: balance; }
.vx-about-hero__lead { font-size: 19px; color: var(--text-soft); margin: 18px auto 0; max-width: 600px; }
.vx-about-hero__cta { display: flex; gap: 14px; justify-content: center; margin-top: 30px; flex-wrap: wrap; }

.vx-about-mission__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 56px; align-items: start; }
.vx-about-mission__aside { position: sticky; top: calc(var(--header-h) + 24px); }
.vx-about-mission__aside .vx-sec-title { font-size: 32px; margin-top: 14px; }
.vx-about-mission__statement { font-size: 18px; font-weight: 700; color: var(--brand); margin-top: 16px; }
.vx-about-mission__body { font-size: 17px; color: var(--text); line-height: 1.85; }
.vx-about-mission__body > * + * { margin-top: 18px; }
.vx-about-mission__body strong { color: var(--ink); }
.vx-about-mission__highlight { margin-top: 24px; background: var(--brand-7); border-left: 4px solid var(--brand); border-radius: 0 14px 14px 0; padding: 18px 22px; font-size: 15.5px; color: var(--text-strong); line-height: 1.65; }

.vx-values2__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.vx-value2 { background: #fff; border: 1px solid var(--border); border-radius: var(--r-card); padding: 28px 24px; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.vx-value2:hover { transform: translateY(-4px); box-shadow: var(--sh-hover); border-color: var(--border-hover); }
.vx-value2 .vx-icon-badge { margin-bottom: 18px; }
.vx-value2 h3 { font-size: 17px; font-weight: 700; margin-bottom: 8px; }
.vx-value2 p { font-size: 14.5px; color: var(--text-soft); line-height: 1.65; }

.vx-commit { background: var(--brand-dark); color: #fff; }
.vx-commit__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; padding: 72px 0; }
.vx-commit__copy .vx-kicker { color: color-mix(in oklab, var(--brand) 55%, #fff); }
.vx-commit__title { font-size: 32px; font-weight: 800; letter-spacing: -.02em; color: #fff; margin-top: 14px; }
.vx-commit__text { font-size: 16px; color: rgba(255, 255, 255, .78); margin-top: 16px; line-height: 1.75; }
.vx-commit__points { display: grid; gap: 14px; }
.vx-commit__point { display: flex; align-items: center; gap: 14px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); border-radius: 14px; padding: 16px 18px; }
.vx-commit__point .vx-icon-badge { flex: none; width: 44px; height: 44px; background: rgba(255, 255, 255, .12); color: #fff; }
.vx-commit__point > span { display: flex; flex-direction: column; gap: 2px; }
.vx-commit__point strong { font-size: 16px; font-weight: 700; color: #fff; }
.vx-commit__point > span > span { font-size: 13.5px; color: rgba(255, 255, 255, .7); }

@media (max-width: 1024px) {
	.vx-about-hero__title { font-size: 38px; }
	.vx-about-mission__grid, .vx-commit__inner { grid-template-columns: 1fr; gap: 32px; }
	.vx-about-mission__aside { position: static; }
	.vx-values2__grid { grid-template-columns: repeat(2, 1fr); }
	.vx-commit__inner { padding: 56px 0; }
}
@media (max-width: 560px) {
	.vx-about-hero__title { font-size: 29px; }
	.vx-about-hero__lead { font-size: 16px; }
	.vx-values2__grid { grid-template-columns: 1fr; }
	.vx-commit__title { font-size: 26px; }
}

/* ---------- Auth / register ---------- */
.vx-auth { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--brand-9) 0%, #fff 60%); }
.vx-auth__orb { position: absolute; top: -120px; left: -120px; width: 420px; height: 420px; border-radius: 50%; background: var(--brand-12); filter: blur(12px); opacity: .5; }
.vx-auth__inner { position: relative; display: grid; grid-template-columns: .95fr 1.05fr; gap: 56px; align-items: center; padding: 72px 24px 88px; }
.vx-auth__title { font-size: 42px; font-weight: 800; letter-spacing: -.025em; margin-top: 18px; }
.vx-auth__lead { font-size: 18px; color: var(--text); margin-top: 16px; }
.vx-auth__benefits { list-style: none; padding: 0; margin: 30px 0 0; display: flex; flex-direction: column; gap: 16px; }
.vx-auth__benefits li { display: flex; align-items: center; gap: 14px; font-size: 16px; color: var(--text-strong); }
.vx-auth__card { background: #fff; border: 1px solid var(--border); border-radius: var(--r-lg); padding: 32px; box-shadow: var(--sh-float); }
.vx-auth__card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 26px; }
.vx-auth__card-head h2 { font-size: 22px; font-weight: 800; letter-spacing: -.01em; }
.vx-auth__card-head p { font-size: 14px; color: var(--text-soft); margin-top: 4px; }
.vx-auth__card-badge { flex: none; font-size: 12px; font-weight: 700; color: var(--brand); background: var(--brand-12); padding: 5px 12px; border-radius: var(--r-pill); white-space: nowrap; }
.vx-auth__partners { margin-top: 34px; padding-top: 28px; border-top: 1px solid var(--border-2); }
.vx-auth__partners-label { display: block; font-size: 13px; font-weight: 600; color: var(--muted); margin-bottom: 14px; }
.vx-auth__partners-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.vx-auth__partner-logo { flex: none; width: 54px; height: 54px; border-radius: 12px; background: #fff; border: 1px solid var(--border); display: inline-flex; align-items: center; justify-content: center; overflow: hidden; padding: 7px; box-shadow: 0 2px 8px rgba(15, 23, 42, .04); }
.vx-auth__partner-logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
/* Mobile: khoảng cách với header (thắng .container{padding:0 18px} trong media query) */
@media (max-width: 560px) {
	.vx-auth .vx-auth__inner { padding: 40px 18px 56px; }
}

.vx-form { display: flex; flex-direction: column; gap: 18px; }
.vx-field { display: flex; flex-direction: column; gap: 8px; }
.vx-field label { font-size: 14px; font-weight: 600; color: var(--text-strong); }
.vx-req { color: var(--danger); }
.vx-field input { width: 100%; padding: 14px 16px; border: 1px solid var(--border-hover); border-radius: var(--r-btn); font-size: 15px; font-family: inherit; color: var(--ink); outline: none; background: #fff; }
.vx-field input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-12); }
.vx-field.has-error input { border-color: var(--danger); }
.vx-field__error { font-size: 13px; color: var(--danger); }
.vx-field__error--block { display: block; margin-top: -8px; }
.vx-input-group { display: flex; align-items: stretch; border: 1px solid var(--border-hover); border-radius: var(--r-btn); overflow: hidden; background: #fff; }
.vx-input-group:focus-within { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-12); }
.vx-input-group__prefix { display: flex; align-items: center; padding: 0 14px; background: var(--bg-soft); color: var(--text-soft); font-weight: 600; font-size: 15px; border-right: 1px solid var(--border); }
.vx-input-group input { border: 0; box-shadow: none; border-radius: 0; flex: 1; }
.vx-input-group input:focus { box-shadow: none; }

.vx-check { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; font-size: 14px; color: var(--text-soft); line-height: 1.55; }
.vx-check input { position: absolute; opacity: 0; width: 0; height: 0; }
.vx-check__box { flex: none; width: 22px; height: 22px; border-radius: 6px; border: 1.5px solid var(--border-hover); background: #fff; display: flex; align-items: center; justify-content: center; color: #fff; transition: all .15s ease; margin-top: 1px; }
.vx-check__box .vx-icon { opacity: 0; transition: opacity .15s ease; }
.vx-check input:checked + .vx-check__box { background: var(--brand); border-color: var(--brand); }
.vx-check input:checked + .vx-check__box .vx-icon { opacity: 1; }
.vx-check input:focus-visible + .vx-check__box { box-shadow: 0 0 0 3px var(--brand-12); }
.vx-check.has-error .vx-check__box { border-color: var(--danger); }
.vx-check__text a { font-weight: 600; }
.vx-form__note { font-size: 13px; color: var(--muted-2); text-align: center; }
.vx-alert { padding: 14px 16px; border-radius: var(--r-btn); font-size: 14px; margin-bottom: 18px; }
.vx-alert--error { background: #FBEAEA; color: #9A2C2C; border: 1px solid #F1C9C9; }
.vx-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Offer page ---------- */
.vx-offer { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--brand-9) 0%, #fff 40%); padding: 64px 0 96px; min-height: 60vh; }
.vx-offer__orb { position: absolute; top: -120px; right: -120px; width: 420px; height: 420px; border-radius: 50%; background: var(--brand-14); filter: blur(12px); opacity: .45; }
.vx-offer__head { position: relative; text-align: center; max-width: 680px; margin: 0 auto 48px; }
.vx-offer__check { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; background: var(--brand-12); color: var(--brand); margin-bottom: 20px; }
.vx-offer__title { font-size: 36px; font-weight: 800; letter-spacing: -.025em; }
.vx-offer__desc { font-size: 17px; color: var(--text-soft); margin-top: 14px; }
.vx-offer__grid { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.vx-offer__footnote { position: relative; text-align: center; font-size: 13px; color: var(--muted); max-width: 720px; margin: 40px auto 0; line-height: 1.7; }
.vx-offer__empty { text-align: center; background: #fff; border: 1px solid var(--border); border-radius: var(--r-lg); padding: 56px 32px; max-width: 560px; margin: 0 auto; }
.vx-offer__empty p { font-size: 16px; color: var(--text-soft); margin-bottom: 24px; }
.vx-offer__content { margin-top: 48px; }

/* ---------- Trang đề xuất: header/footer tối giản ---------- */
.vx-offer-topbar { background: #fff; border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 50; }
.vx-offer-topbar__inner { display: flex; align-items: center; justify-content: space-between; padding: 15px 0; }
.vx-offer-topbar__trust { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--muted); }
.vx-offer-topbar__trust svg { color: #16a34a; }
.vx-offer-footer { background: var(--bg-soft); border-top: 1px solid var(--border); padding: 32px 0; }
.vx-offer-footer__note { font-size: 12.5px; color: var(--muted); line-height: 1.7; max-width: 820px; margin: 0 auto 14px; text-align: center; }
.vx-offer-footer__bottom { display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap; font-size: 13px; color: var(--text-soft); }
.vx-offer-footer__bottom a { color: var(--brand); font-weight: 700; }

/* ---------- Trang đề xuất: khối bổ sung ---------- */
.vx-offer-trust { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 48px; }
.vx-offer-trust__item { display: flex; gap: 12px; align-items: flex-start; background: #fff; border: 1px solid var(--border); border-radius: var(--r-lg); padding: 18px; }
.vx-offer-trust__ico { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 12px; background: var(--brand-12); color: var(--brand); }
.vx-offer-trust__item strong { display: block; font-size: 14.5px; font-weight: 700; margin-bottom: 2px; }
.vx-offer-trust__item span { display: block; font-size: 13px; color: var(--text-soft); line-height: 1.5; }

.vx-offer-steps { position: relative; margin-top: 56px; }
.vx-offer-steps__title { font-size: 24px; font-weight: 800; text-align: center; margin-bottom: 28px; }
.vx-offer-steps__row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.vx-offer-steps__item { display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid var(--border); border-radius: var(--r-lg); padding: 22px; }
.vx-offer-steps__item .num { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--brand); color: #fff; font-weight: 800; font-size: 15px; }
.vx-offer-steps__item strong { display: block; font-size: 16px; font-weight: 700; margin-bottom: 4px; }
.vx-offer-steps__item p { font-size: 14px; color: var(--text-soft); line-height: 1.6; margin: 0; }

.vx-offer-support { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-top: 40px; padding: 26px 32px; background: var(--brand-7); border-radius: var(--r-lg); }
.vx-offer-support__text strong { display: block; font-size: 18px; font-weight: 700; }
.vx-offer-support__text span { font-size: 15px; color: var(--text-soft); }

@media (max-width: 860px) {
	.vx-offer-trust { grid-template-columns: 1fr 1fr; }
	.vx-offer-steps__row { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.vx-offer-trust { grid-template-columns: 1fr; }
	.vx-offer-support { flex-direction: column; align-items: flex-start; }
}

/* ---------- Partner card ---------- */
.vx-partner-card { position: relative; background: #fff; border: 1px solid var(--border); border-radius: var(--r-card); padding: 28px; display: flex; flex-direction: column; box-shadow: var(--sh-card); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.vx-partner-card:hover { transform: translateY(-4px); box-shadow: var(--sh-hover); border-color: var(--border-hover); }
.vx-partner-card.is-featured { border-color: var(--brand); border-width: 2px; }
.vx-partner-card__ribbon { position: absolute; top: -12px; left: 24px; background: var(--brand); color: #fff; font-size: 12px; font-weight: 700; padding: 5px 14px; border-radius: var(--r-pill); box-shadow: var(--sh-btn); }
.vx-partner-card__head { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.vx-partner-card__logo { width: 52px; height: 52px; border-radius: 14px; background: var(--brand-12); display: flex; align-items: center; justify-content: center; overflow: hidden; flex: none; }
.vx-partner-card__logo img { width: 100%; height: 100%; object-fit: cover; }
.vx-partner-card__initial { font-size: 22px; font-weight: 800; color: var(--brand); }
.vx-partner-card__name h3 { font-size: 18px; font-weight: 700; }
.vx-partner-card__interest { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 700; color: var(--brand); margin-top: 4px; }
.vx-partner-card__meta { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; border-top: 1px solid var(--border-2); padding-top: 18px; margin: 0 0 22px; }
.vx-partner-card__meta dt { font-size: 12px; color: var(--muted); margin-bottom: 4px; }
.vx-partner-card__meta dd { font-size: 15px; font-weight: 700; color: var(--ink); margin: 0; }
.vx-partner-card__cta { margin-top: auto; }

/* ---------- Loan detail (single khoản vay) ---------- */
.vx-loan__hero { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--brand-9) 0%, #fff 100%); padding: 40px 0 64px; }
.vx-loan__hero-grid { position: relative; display: grid; grid-template-columns: 1.35fr .95fr; gap: 48px; align-items: start; margin-top: 14px; }
.vx-loan__id { display: flex; gap: 20px; align-items: center; }
.vx-loan__logo { flex: none; width: 84px; height: 84px; border-radius: 20px; background: #fff; border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; overflow: hidden; box-shadow: var(--sh-card); }
.vx-loan__logo-img { width: 100%; height: 100%; object-fit: cover; }
.vx-loan__logo-initial { font-size: 34px; font-weight: 800; color: var(--brand); }
.vx-loan__badge { display: inline-block; font-size: 12px; font-weight: 700; color: #fff; background: var(--brand); padding: 4px 12px; border-radius: var(--r-pill); margin-bottom: 8px; }
.vx-loan__title { font-size: 38px; font-weight: 800; letter-spacing: -.025em; line-height: 1.1; }
.vx-loan__tagline { font-size: 17px; color: var(--text-soft); margin-top: 8px; }
.vx-loan__highlights { list-style: none; padding: 0; margin: 30px 0 0; display: grid; gap: 13px; }
.vx-loan__highlights li { display: flex; align-items: center; gap: 11px; font-size: 15.5px; color: var(--text); }
.vx-loan__highlights svg { flex: none; color: var(--brand); }
.vx-loan__compare { display: inline-flex; align-items: center; gap: 8px; margin-top: 26px; font-size: 15px; font-weight: 600; color: var(--brand); }
.vx-loan__compare svg { transition: transform .16s; }
.vx-loan__compare:hover svg { transform: translateX(-3px); }
.vx-loan__card { position: relative; background: #fff; border: 1px solid var(--border); border-radius: var(--r-lg); padding: 26px; box-shadow: var(--sh-float); }
.vx-loan__card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 18px; }
.vx-loan__card-head > span:first-child { font-weight: 700; font-size: 16px; }
.vx-loan__card-free { font-size: 12px; font-weight: 700; color: var(--brand); background: var(--brand-12); padding: 4px 11px; border-radius: var(--r-pill); }
.vx-loan__rate { text-align: center; padding: 18px; margin-bottom: 18px; background: linear-gradient(160deg, var(--brand-9), #fff); border: 1px solid var(--border-2); border-radius: 16px; }
.vx-loan__rate-num { display: block; font-size: 30px; font-weight: 800; color: var(--brand); letter-spacing: -.02em; }
.vx-loan__rate-label { display: block; font-size: 13px; color: var(--muted); margin-top: 3px; }
.vx-loan__card-list { margin: 0 0 20px; }
.vx-loan__card-list div { display: flex; justify-content: space-between; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--border-2); }
.vx-loan__card-list div:last-child { border-bottom: 0; }
.vx-loan__card-list dt { color: var(--text-soft); font-size: 14px; }
.vx-loan__card-list dd { margin: 0; font-weight: 700; color: var(--ink); font-size: 15px; text-align: right; }
.vx-loan__card .vx-btn { width: 100%; }
.vx-loan__card-trust { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 14px 0 0; font-size: 12.5px; color: var(--muted); text-align: center; }
.vx-loan__card-trust svg { flex: none; color: #16a34a; }
.vx-loan__desc { margin: 0; }
.vx-loan__block { margin-bottom: 40px; }
.vx-loan__block-title { font-size: 24px; font-weight: 800; letter-spacing: -.01em; margin-bottom: 18px; }
.vx-loan__pros, .vx-loan__reqs { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.vx-loan__pros li, .vx-loan__reqs li { display: flex; align-items: flex-start; gap: 12px; font-size: 16px; color: var(--text); line-height: 1.6; }
.vx-loan__check { flex: none; width: 28px; height: 28px; border-radius: 8px; background: var(--brand-12); color: var(--brand); display: flex; align-items: center; justify-content: center; }
.vx-loan__num { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--brand); color: #fff; font-size: 14px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.vx-loan__fees { background: var(--bg-soft); border: 1px solid var(--border-2); border-radius: var(--r-card); padding: 24px 28px; margin-bottom: 40px; }
.vx-loan__fees .vx-loan__block-title { font-size: 18px; margin-bottom: 10px; }
.vx-loan__fees p { font-size: 14.5px; color: var(--text-soft); line-height: 1.7; }
.vx-loan__final { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding: 28px 32px; background: var(--brand-7); border-radius: var(--r-lg); }
.vx-loan__final strong { display: block; font-size: 19px; }
.vx-loan__final span { font-size: 15px; color: var(--text-soft); }
a.vx-partners-row__logo:hover { border-color: var(--brand); }

@media (max-width: 1024px) {
	.vx-loan__hero-grid { grid-template-columns: 1fr; gap: 30px; }
}
@media (max-width: 560px) {
	.vx-loan__id { gap: 16px; }
	.vx-loan__logo { width: 68px; height: 68px; border-radius: 16px; }
	.vx-loan__title { font-size: 26px; }
	.vx-loan__card, .vx-loan__final, .vx-loan__fees { padding: 22px; }
	.vx-loan__final { flex-direction: column; align-items: flex-start; }
}

/* ---------- Search form ---------- */
.vx-search-form { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--border-hover); border-radius: var(--r-pill); padding: 6px 6px 6px 18px; }
.vx-search-form:focus-within { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-12); }
.vx-search-form__icon { color: var(--muted); display: flex; }
.vx-search-form__input { flex: 1; border: 0; outline: none; background: none; font-family: inherit; font-size: 15px; color: var(--ink); padding: 8px 0; }
.vx-search-form__btn { background: var(--brand); color: #fff; border: 0; border-radius: var(--r-pill); padding: 10px 22px; font-weight: 700; cursor: pointer; }

/* ---------- Empty / 404 ---------- */
.vx-empty { text-align: center; padding: 64px 24px; }
.vx-empty .vx-icon-badge { margin: 0 auto 16px; }
.vx-empty p { font-size: 16px; color: var(--text-soft); margin-bottom: 20px; }
.vx-404 { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--brand-9) 0%, #fff 70%); }
.vx-404__orb { position: absolute; top: -120px; right: -120px; width: 420px; height: 420px; border-radius: 50%; background: var(--brand-14); filter: blur(12px); opacity: .45; }
.vx-404__inner { position: relative; text-align: center; padding: 96px 24px; max-width: 600px; margin: 0 auto; }
.vx-404__code { font-size: 96px; font-weight: 800; color: var(--brand); letter-spacing: -.04em; line-height: 1; }
.vx-404__title { font-size: 32px; font-weight: 800; margin-top: 8px; }
.vx-404__desc { font-size: 17px; color: var(--text-soft); margin-top: 14px; }
.vx-404__search { max-width: 420px; margin: 28px auto 0; }
.vx-404__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 28px; }

/* ---------- Comments ---------- */
.vx-comments { margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--border); }
.vx-comments__title { font-size: 22px; font-weight: 800; margin-bottom: 28px; }
.vx-comments__list { list-style: none; padding: 0; margin: 0 0 40px; }
.vx-comments__list .children { list-style: none; margin: 8px 0 0; padding-left: 28px; border-left: 2px solid var(--border-2); }
.vx-comment { margin: 0; }
.vx-comment__body { display: flex; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--border-2); }
.vx-comment__avatar { flex: none; }
.vx-comment__avatar img { width: 48px; height: 48px; border-radius: 50%; display: block; }
.vx-comment__main { flex: 1; min-width: 0; }
.vx-comment__head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 6px; }
.vx-comment__author { font-weight: 700; color: var(--ink); }
.vx-comment__author a { color: var(--ink); text-decoration: none; }
.vx-comment__author a:hover { color: var(--brand); }
.vx-comment__date { font-size: 13px; color: var(--muted); }
.vx-comment__pending { font-size: 13px; color: var(--brand); font-style: italic; margin-bottom: 6px; }
.vx-comment__text { font-size: 15.5px; color: var(--text); line-height: 1.7; }
.vx-comment__text p { margin-bottom: 10px; }
.vx-comment__text p:last-child { margin-bottom: 0; }
.vx-comment__actions { margin-top: 10px; }
.vx-comment__actions .comment-reply-link { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 700; color: var(--brand); }
.vx-comment.bypostauthor > .vx-comment__body { background: var(--brand-7); border-radius: var(--r-card); padding: 20px; border-bottom: 0; }

/* Comment form */
.vx-comments__form-title { font-size: 22px; font-weight: 800; margin-bottom: 8px; }
.comment-respond { margin-top: 8px; }
.vx-comment-form { display: flex; flex-direction: column; gap: 18px; margin-top: 12px; max-width: 680px; }
.vx-comment-form__note { font-size: 13px; color: var(--muted); margin: 0; }
.vx-comment-form .vx-field { display: flex; flex-direction: column; gap: 8px; }
.vx-comment-form label { font-size: 14px; font-weight: 600; color: var(--text-strong); }
.vx-comment-form input[type="text"], .vx-comment-form input[type="email"], .vx-comment-form textarea {
	width: 100%; padding: 14px 16px; border: 1px solid var(--border-hover); border-radius: var(--r-btn);
	font-size: 15px; font-family: inherit; color: var(--ink); outline: none; background: #fff;
}
.vx-comment-form textarea { resize: vertical; min-height: 120px; }
.vx-comment-form input:focus, .vx-comment-form textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-12); }
.vx-comment-form__cookies { margin-top: -4px; }
.vx-comment-form .form-submit { margin: 0; }
.vx-comments__closed { font-size: 14px; color: var(--muted); margin-bottom: 24px; }

/* ---------- Form validation (thông báo đồng bộ thay popup mặc định) ---------- */
.vx-validate-msg { display: block; margin-top: 7px; font-size: 13px; font-weight: 500; color: var(--danger); line-height: 1.4; }
input.vx-invalid, textarea.vx-invalid, select.vx-invalid { border-color: var(--danger); }
input.vx-invalid:focus, textarea.vx-invalid:focus, select.vx-invalid:focus { border-color: var(--danger); box-shadow: 0 0 0 3px color-mix(in oklab, var(--danger) 16%, #fff); }
.vx-input-group:has(.vx-invalid) { border-color: var(--danger); }

/* ---------- Ô ngày sinh (type=date) — đồng bộ icon + placeholder ---------- */
input[type="date"]::-webkit-datetime-edit { color: var(--ink); font-family: inherit; }
input[type="date"]:invalid::-webkit-datetime-edit { color: var(--faint); } /* trống -> mờ như placeholder */
input[type="date"]::-webkit-datetime-edit-fields-wrapper { padding: 0; }
input[type="date"]::-webkit-inner-spin-button { display: none; -webkit-appearance: none; }
input[type="date"]::-webkit-clear-button { display: none; }
input[type="date"]::-webkit-calendar-picker-indicator {
	cursor: pointer; width: 20px; height: 20px; opacity: .9;
	background-color: var(--brand);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M16 2v4'/%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M16 2v4'/%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E") center / contain no-repeat;
}
input[type="date"]::-webkit-calendar-picker-indicator:hover { opacity: 1; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.vx-section { padding: 72px 0; }
	.vx-hero__inner, .vx-process__inner, .vx-app__inner, .vx-auth__inner { grid-template-columns: 1fr; gap: 40px; }
	.vx-hero__copy { margin-top: 0; }
	.vx-hero__title { font-size: 44px; }
	.vx-sec-title, .vx-auth__title, .vx-page-hero__title, .vx-offer__title { font-size: 32px; }
	.vx-usage__grid { grid-template-columns: 1fr; }
	.vx-usage__deco { display: none; }
	.vx-usage__content { padding: 32px; }
	.vx-contact__grid { grid-template-columns: repeat(2, 1fr); }
	.vx-app__inner { padding: 40px; }
	.vx-app__mockup { display: none; }
	.vx-process__mockup { min-height: 380px; }
}

@media (max-width: 860px) {
	.vx-header__nav { display: none; }
	.vx-header__actions .vx-btn { display: none; }
	.vx-nav-toggle { display: inline-flex; }
	/* Header mobile: logo trái — nút menu sát mép phải, gọn gàng.
	   Dùng .vx-header .vx-header__inner (độ ưu tiên cao hơn .container) để
	   rule `.container { padding: 0 18px }` ở breakpoint 560px KHÔNG đè mất padding trên/dưới. */
	.vx-header .vx-header__inner { gap: 16px; justify-content: space-between; padding: 12px 18px; }
	.vx-logo__img { height: 30px; width: auto; }
	.vx-reasons__grid, .vx-terms__grid, .vx-elig__grid, .vx-testi__grid, .vx-post-grid, .vx-offer__grid { grid-template-columns: 1fr 1fr; }
	.vx-terms__examples { grid-template-columns: 1fr; }
	.vx-footer__cols { grid-template-columns: 1fr 1fr; gap: 32px; }
	.vx-footer__brand { grid-column: 1 / -1; }
	.vx-legal__intro, .vx-legal__grid { grid-template-columns: 1fr; }
	.vx-stats__grid { grid-template-columns: repeat(2, 1fr); gap: 24px 0; }
	.vx-stats__item:nth-child(2) { border-right: 0; }
}

@media (max-width: 560px) {
	.vx-section { padding: 56px 0; }
	.container { padding: 0 18px; }
	.vx-hero__inner { padding: 48px 18px 64px; }
	.vx-hero__title { font-size: 34px; }
	.vx-hero__desc { font-size: 16px; }
	.vx-sec-title, .vx-auth__title, .vx-page-hero__title, .vx-offer__title, .vx-404__title { font-size: 27px; }
	.vx-reasons__grid, .vx-terms__grid, .vx-elig__grid, .vx-testi__grid, .vx-post-grid, .vx-offer__grid, .vx-contact__grid { grid-template-columns: 1fr; }
	/* Đối tác & ngân hàng: slide ngang (vuốt) trên mobile thay vì stack dọc */
	.vx-partners-row { grid-template-columns: none; display: flex; overflow-x: auto; gap: 12px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 6px; }
	.vx-partners-row::-webkit-scrollbar { display: none; }
	.vx-partners-row__logo { flex: 0 0 44%; scroll-snap-align: start; }
	.vx-reason-card { flex-direction: column; gap: 16px; padding: 24px; }
	.vx-final-cta { padding: 28px 24px; }
	.vx-final-cta__title { font-size: 21px; }
	.vx-footer__cols { grid-template-columns: 1fr; }
	.vx-stats__grid { grid-template-columns: 1fr 1fr; }
	.vx-btn { padding: 13px 22px; font-size: 15px; }
	.vx-auth__card, .vx-calc { padding: 24px 20px; }
	.vx-single__title { font-size: 28px; }
	.vx-404__code { font-size: 72px; }
	.vx-single__share-cta, .vx-contact__cta { padding: 24px; }
}

@media (prefers-reduced-motion: reduce) {
	* { scroll-behavior: auto !important; transition: none !important; }
}
