/* Đông Võ Realty – các khối nội dung (widget Elementor) theo Figma Trang chủ 3:2 */

/* ===================== Khung khối ===================== */
.dv-sec { padding: 110px var(--dv-gutter); }
.dv-sec--white { background: #fff; }
.dv-sec--beige { background: var(--dv-bg); }
.dv-sec--dark { background: var(--dv-ink); color: #fff; }
.dv-wrap { max-width: var(--dv-container); margin: 0 auto; }

.dv-eyebrow {
	display: flex; align-items: center; gap: 10px; margin: 0;
	font-size: 12px; font-weight: 600; letter-spacing: 1.68px; line-height: normal; color: var(--dv-red); text-transform: uppercase;
}
.dv-eyebrow::before { content: ""; width: 24px; height: 2px; background: var(--dv-red); flex: none; }

.dv-shead { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 48px; }
.dv-shead__text { display: flex; flex-direction: column; gap: 12px; min-width: 0; flex: 1 1 auto; }
.dv-shead__title { font-size: 42px; font-weight: 600; line-height: 1.2; color: var(--dv-ink); }
.dv-shead__desc { margin: 0; max-width: 620px; font-size: 15px; line-height: 1.6; color: var(--dv-muted); }
.dv-shead__right { display: flex; align-items: center; gap: 12px; flex: none; }
.dv-viewall {
	display: inline-flex; align-items: center; gap: 8px; padding-bottom: 6px; flex: none;
	font-size: 14px; font-weight: 600; line-height: normal; color: var(--dv-ink); white-space: nowrap;
}
.dv-viewall .dv-icon { transition: transform .2s ease; }
.dv-viewall:hover { color: var(--dv-red); }
.dv-viewall:hover .dv-icon { transform: translateX(3px); }
.dv-shead__right .dv-viewall { padding-bottom: 0; }

/* Chip */
.dv-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: -16px 0 32px; }
.dv-chip {
	display: inline-flex; align-items: center; padding: 8px 16px; border-radius: 999px;
	border: 1px solid var(--dv-line); background: #fff; color: var(--dv-ink);
	font: 500 13px/normal var(--dv-font-body); white-space: nowrap; cursor: pointer;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.dv-chip:hover { border-color: var(--dv-ink); }
.dv-chip.is-active { background: var(--dv-ink); border-color: var(--dv-ink); color: #fff; }
.dv-chip--glass { padding: 7px 14px; background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .35); color: #fff; }
.dv-chip--glass:hover { background: rgba(255, 255, 255, .18); border-color: #fff; }
.dv-chip--outline { padding: 7px 15px; }

/* Nút */
.dv-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 24px; border-radius: 8px;
	border: 1px solid transparent; font: 600 15px/normal var(--dv-font-body); white-space: nowrap; cursor: pointer;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.dv-btn--red { background: var(--dv-red); color: #fff; }
.dv-btn--red:hover { background: #b52b22; }
.dv-btn--outline { border-color: var(--dv-ink); color: var(--dv-ink); }
.dv-btn--outline:hover { background: var(--dv-ink); color: #fff; }
.dv-btn--outline:hover .dv-icon path { stroke: #fff; fill: #fff; }
.dv-btn--dark { background: var(--dv-ink); color: #fff; border-radius: 999px; }
.dv-btn--dark:hover { background: var(--dv-red); }
.dv-btn--sm { padding: 12px 18px; font-size: 14px; }

.dv-pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 4px; background: var(--dv-bg); font-size: 12px; font-weight: 500; line-height: normal; color: var(--dv-ink); white-space: nowrap; }
.dv-pill--video { padding: 4px 10px 4px 6px; border-radius: 999px; background: rgba(224, 60, 49, .08); color: #b52b22; font-weight: 600; }
.dv-pill--video .is-short { display: none; } /* Chữ ngắn chỉ dùng trên thẻ mobile, xem cuối file. */
.dv-noimg { display: block; background: linear-gradient(135deg, #d9d6d0, #efede9); }
.dv-empty { margin: 0; color: var(--dv-muted); font-size: 14px; }
.dv-dot { width: 3px; height: 3px; border-radius: 50%; background: var(--dv-muted); flex: none; }

/* ===================== Hero (3:3) ===================== */
.dv-hero { position: relative; color: #fff; background: #0d0e0f; }
.dv-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dv-hero::before,
.dv-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
.dv-hero::before { background: linear-gradient(90deg, rgba(13, 14, 15, .88) 0%, rgba(13, 14, 15, .55) 55%, rgba(13, 14, 15, .25) 100%); }
.dv-hero::after { background: linear-gradient(180deg, rgba(13, 14, 15, .5) 0%, rgba(13, 14, 15, 0) 25%, rgba(13, 14, 15, 0) 70%, rgba(13, 14, 15, .75) 100%); }
.dv-hero__inner { position: relative; z-index: 1; max-width: calc(var(--dv-container) + 2 * var(--dv-gutter)); margin: 0 auto; padding: 217px var(--dv-gutter) 67px; }
.dv-hero__content { display: flex; flex-direction: column; gap: 22px; margin-bottom: 48px; }
.dv-hero__eyebrow { display: flex; align-items: center; gap: 12px; margin: 0; font-size: 13px; font-weight: 500; letter-spacing: 2.08px; line-height: normal; opacity: .9; }
.dv-hero__eyebrow::before { content: ""; width: 36px; height: 1.5px; background: rgba(255, 255, 255, .8); flex: none; }
.dv-hero__title { font-family: var(--dv-font-heading); font-weight: 400; font-size: 66px; line-height: 1.12; color: #fff; }
.dv-hero__desc { margin: 0; max-width: 640px; font-size: 17px; line-height: 1.6; opacity: .85; }

.dv-search {
	display: flex; flex-direction: column; gap: 14px; padding: 16px; border-radius: 14px; background: #fff; color: var(--dv-ink);
	box-shadow: 0 20px 50px rgba(0, 0, 0, .25);
}
.dv-search__tabs { display: flex; gap: 6px; }
.dv-search__tabs button {
	padding: 10px 20px; border: 0; border-radius: 8px; background: transparent; cursor: pointer;
	font: 500 14px/normal var(--dv-font-body); color: var(--dv-muted);
}
.dv-search__tabs button.is-active { background: var(--dv-ink); color: #fff; font-weight: 600; }
.dv-search__fields { display: flex; align-items: center; }
.dv-sfield {
	position: relative; flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 6px; padding: 8px 22px; cursor: pointer;
}
.dv-sfield + .dv-sfield { border-left: 1px solid var(--dv-line); }
.dv-sfield__label { font-size: 11px; font-weight: 600; letter-spacing: 1.32px; line-height: normal; color: var(--dv-muted); }
.dv-sfield select {
	appearance: none; -webkit-appearance: none; width: 100%; padding: 0 26px 0 0; margin: 0; border: 0; background: transparent; outline: 0;
	font: 500 16px/normal var(--dv-font-body); color: var(--dv-ink); cursor: pointer; text-overflow: ellipsis;
}
.dv-sfield:focus-within { background: var(--dv-bg); border-radius: 8px; }
.dv-sfield__chev { position: absolute; right: 22px; bottom: 9px; pointer-events: none; }
.dv-search__btn {
	display: flex; align-items: center; gap: 10px; padding: 20px 30px; border: 0; border-radius: 10px; background: var(--dv-red); color: #fff; flex: none; cursor: pointer;
	font: 600 16px/normal var(--dv-font-body); transition: background .2s ease;
}
.dv-search__btn:hover { background: #b52b22; }

.dv-hero__popular { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 27px; font-size: 14px; }
.dv-hero__popular > span { opacity: .8; }
.dv-hero__stats {
	display: flex; gap: 72px; margin: 48px 0 0; padding: 24px 0 0; list-style: none; border-top: 1px solid rgba(255, 255, 255, .2);
}
.dv-hero__stats li { display: flex; align-items: baseline; gap: 12px; line-height: normal; }
.dv-hero__stats strong { font-size: 30px; font-weight: 600; letter-spacing: -.6px; }
.dv-hero__stats span { font-size: 14px; opacity: .8; }

/* ===================== Khu vực (3:123) ===================== */
.dv-areas__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 15px; }
.dv-acard { position: relative; display: block; height: 340px; border-radius: 14px; overflow: hidden; color: #fff; }
.dv-acard__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.dv-acard::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17, 18, 20, 0) 0%, rgba(17, 18, 20, 0) 35%, rgba(17, 18, 20, .9) 100%); }
.dv-acard:hover .dv-acard__img { transform: scale(1.05); }
.dv-acard__text { position: absolute; z-index: 1; left: 16px; right: 16px; bottom: 20px; display: flex; flex-direction: column; gap: 6px; }
.dv-acard__name { font-family: var(--dv-font-heading); font-size: 26px; font-weight: 600; line-height: normal; }
.dv-acard__accent { width: 28px; height: 2px; background: var(--dv-red); }
.dv-acard__list { height: 36px; overflow: hidden; font-size: 12px; line-height: 1.5; opacity: .85; }
.dv-acard__link { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; line-height: normal; }
.dv-acard:hover .dv-acard__link .dv-icon { transform: translateX(3px); }
.dv-acard__link .dv-icon { transition: transform .2s ease; }

/* ===================== Lưới căn hộ (4:47) ===================== */
.dv-listings { padding-block: 100px; }
.dv-listings .dv-shead { margin-bottom: 48px; }
.dv-lgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.dv-lgrid__item[hidden] { display: none; }
.dv-lgrid .dv-empty { grid-column: 1 / -1; }

.dv-lcard {
	position: relative; display: flex; flex-direction: column; height: 100%; min-height: 383px; overflow: hidden;
	border: 1px solid var(--dv-line); border-radius: 12px; background: #fff; transition: box-shadow .25s ease, transform .25s ease;
}
.dv-lcard:hover { box-shadow: 0 18px 40px rgba(17, 18, 20, .1); transform: translateY(-3px); }
.dv-lcard__media { position: relative; display: block; height: 196px; overflow: hidden; flex: none; }
.dv-lcard__img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.dv-lcard:hover .dv-lcard__img { transform: scale(1.05); }
.dv-lcard__tags { position: absolute; top: 12px; left: 12px; display: flex; flex-wrap: wrap; gap: 6px; max-width: calc(100% - 64px); }
.dv-lcard__badge, .dv-lcard__hot {
	display: inline-flex; align-items: center; gap: 4px; padding: 5px 10px; border-radius: 4px; background: var(--dv-red); color: #fff;
	font-size: 11px; font-weight: 700; letter-spacing: .88px; line-height: normal; white-space: nowrap;
}
.dv-lcard__badge.is-rent { background: var(--dv-ink); }
.dv-lcard__hot { position: absolute; top: 12px; right: 10px; box-shadow: 0 2px 8px rgba(17, 18, 20, .25); }
.dv-lcard__hot svg { flex: none; width: 12px; height: 12px; }
.dv-lcard__hot .is-short { display: none; }
.dv-lcard:has(.dv-lcard__save) .dv-lcard__hot { right: 52px; }
.dv-lcard__save {
	position: absolute; top: 12px; right: 10px; z-index: 2; display: flex; padding: 8px; border: 0; border-radius: 999px; background: rgba(255, 255, 255, .92); cursor: pointer;
}
.dv-lcard__save.is-saved path { fill: var(--dv-red); stroke: var(--dv-red); }
.dv-lcard__wm { position: absolute; left: 12px; bottom: 12px; width: 70px; height: 18px; object-fit: contain; opacity: .9; }
.dv-lcard__count {
	position: absolute; right: 10px; bottom: 12px; display: flex; align-items: center; gap: 4px; padding: 4px 8px; border-radius: 4px;
	background: rgba(17, 18, 20, .6); color: #fff; font-size: 11px; font-weight: 500; line-height: normal;
}
.dv-lcard__body { display: flex; flex-direction: column; flex: 1 1 auto; gap: 10px; padding: 16px 18px 18px; }
.dv-lcard__loc { margin: 0; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: 11px; font-weight: 600; letter-spacing: .66px; line-height: normal; color: var(--dv-muted); text-transform: uppercase; }
.dv-lcard__title { font-family: var(--dv-font-body); font-size: 16px; font-weight: 600; line-height: 1.4; color: var(--dv-ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.dv-lcard__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.dv-lcard__title a:hover { color: var(--dv-red); }
.dv-lcard__specs { display: flex; gap: 14px; margin: 0; padding: 0; list-style: none; }
.dv-lcard__specs li { display: flex; align-items: center; gap: 5px; font-size: 13px; line-height: normal; color: var(--dv-muted); white-space: nowrap; }
.dv-lcard__foot { display: flex; flex: 1 1 auto; flex-direction: column; align-items: flex-start; gap: 8px; padding-top: 10px; border-top: 1px solid var(--dv-line); }
.dv-agrid.is-list .dv-lcard__foot { flex: none; }
.dv-lcard__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.dv-lcard__price { margin: 0; font-family: var(--dv-font-body); font-size: 22px; font-weight: 600; letter-spacing: -.02em; line-height: normal; color: var(--dv-red); white-space: nowrap; }
.dv-lcard:has(.is-rent) .dv-lcard__price,
.dv-lcard__price.is-contact { font-size: 19px; }

/* ===================== Dự án (4:371) ===================== */
.dv-pgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.dv-pcard { position: relative; display: flex; flex-direction: column; overflow: hidden; border-radius: 14px; background: var(--dv-dark); color: #fff; transition: transform .25s ease, box-shadow .25s ease; }
.dv-pcard:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(17, 18, 20, .18); }
.dv-pcard--light { background: #fff; color: var(--dv-ink); border: 1px solid var(--dv-line); }
.dv-pcard__media { position: relative; display: block; height: 250px; overflow: hidden; }
.dv-pcard__img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.dv-pcard:hover .dv-pcard__img { transform: scale(1.05); }
.dv-pcard__area {
	position: absolute; top: 16px; left: 16px; display: flex; align-items: center; gap: 4px; padding: 5px 10px; border-radius: 4px;
	background: rgba(255, 255, 255, .95); color: var(--dv-ink); font-size: 11px; font-weight: 600; line-height: normal;
}
.dv-pcard__status { position: absolute; top: 16px; right: 16px; padding: 5px 10px; border-radius: 4px; background: var(--dv-red); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .88px; line-height: normal; }
.dv-pcard__status.is-ban_giao { background: var(--dv-ink); }
.dv-pcard__body { display: flex; flex-direction: column; flex: 1 1 auto; gap: 10px; padding: 22px 24px 24px; }
.dv-pcard__title { font-size: 24px; font-weight: 600; line-height: normal; color: inherit; }
.dv-pcard__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.dv-pcard__desc { margin: 0; font-size: 14px; line-height: 1.55; opacity: .7; }
.dv-pcard__links {
	position: relative; z-index: 2; display: flex; align-items: center; gap: 20px; margin-top: auto; padding-top: 16px;
	border-top: 1px solid rgba(255, 255, 255, .1); font-size: 13px; font-weight: 600; line-height: normal;
}
.dv-pcard--light .dv-pcard__links { border-top-color: var(--dv-line); }
.dv-pcard__links a { opacity: .85; }
.dv-pcard__links a:hover { opacity: 1; color: var(--dv-red); }
.dv-pcard__links .is-cta { color: #ff6b5f; opacity: 1; }
.dv-pcard__price { font-size: 15px; font-weight: 600; line-height: normal; color: #ff6b5f; }
.dv-pcard--light .dv-pcard__price { color: var(--dv-red); }
.dv-pcard--light .dv-pcard__links .is-cta { color: var(--dv-red); }
.dv-pcard__more { display: flex; align-items: center; gap: 6px; margin-left: auto; opacity: 1 !important; }
.dv-pcard__more .dv-icon { transition: transform .2s ease; }
.dv-pcard__more:hover .dv-icon { transform: translateX(3px); }
.dv-more { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 48px; }
.dv-more > span { font-size: 14px; color: var(--dv-muted); }

/* ===================== Về Đông Võ (5:362) ===================== */
.dv-about__wrap { display: flex; align-items: center; gap: 80px; }
.dv-about__portrait { position: relative; width: 470px; height: 680px; flex: none; }
.dv-about__block { position: absolute; left: 70px; top: 120px; width: 400px; height: 560px; border-radius: 16px; background: var(--dv-ink); }
.dv-about__img { position: absolute; left: 0; top: 0; width: 400px; height: 600px; border-radius: 16px; object-fit: cover; background: #e9e4ea; }
.dv-about__badge {
	position: absolute; left: 300px; top: 538px; display: flex; flex-direction: column; gap: 2px; padding: 18px 22px; border-radius: 12px;
	background: var(--dv-red); color: #fff; font-size: 13px; font-weight: 500; line-height: normal; white-space: nowrap;
}
.dv-about__badge strong { font-family: var(--dv-font-body); font-size: 36px; font-weight: 600; line-height: normal; letter-spacing: -.02em; } /* cùng font với số 7+ ở hero */
.dv-about__content { display: flex; flex-direction: column; gap: 22px; flex: 1 1 0; min-width: 0; }
.dv-about__title { font-size: 40px; font-weight: 600; line-height: 1.22; color: var(--dv-ink); }
.dv-about__bio { margin: 0; font-size: 16px; line-height: 1.7; color: var(--dv-muted); }
.dv-about__roles { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.dv-about__roles li { padding: 6px 12px; border: 1px solid var(--dv-line); border-radius: 6px; background: #fff; font-size: 13px; font-weight: 500; line-height: normal; }
.dv-about__services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding-top: 8px; }
.dv-svc { display: flex; align-items: flex-start; gap: 14px; padding: 18px; border-radius: 12px; background: #fff; }
.dv-svc__icon { display: flex; padding: 10px; border-radius: 10px; background: rgba(224, 60, 49, .08); flex: none; }
.dv-svc__text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.dv-svc__text strong { font-size: 15px; font-weight: 600; line-height: normal; }
.dv-svc__text span { font-size: 13px; line-height: 1.5; color: var(--dv-muted); }
.dv-about__btns { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 8px; }

/* ===================== Video (14:485) ===================== */
.dv-videos .dv-shead { margin-bottom: 44px; }
.dv-vgrid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 15px; }
.dv-vcard { position: relative; display: block; height: 405px; border-radius: 14px; overflow: hidden; color: #fff; background: #222; }
.dv-vcard__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.dv-vcard::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .35) 0%, rgba(0, 0, 0, 0) 25%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, .88) 100%); }
.dv-vcard:hover .dv-vcard__img { transform: scale(1.05); }
.dv-vcard__badge,
.dv-vcard__dur { position: absolute; z-index: 1; top: 12px; display: flex; align-items: center; gap: 4px; background: rgba(17, 18, 20, .55); font-size: 11px; font-weight: 600; line-height: normal; }
.dv-vcard__badge { left: 12px; padding: 5px 10px 5px 8px; border-radius: 999px; }
.dv-vcard__dur { right: 12px; top: 13px; padding: 4px 8px; border-radius: 4px; }
.dv-vcard__play {
	position: absolute; z-index: 1; left: 50%; top: calc(50% - 24.5px); transform: translate(-50%, -50%);
	display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 999px; background: rgba(255, 255, 255, .9);
	transition: transform .2s ease;
}
.dv-vcard:hover .dv-vcard__play { transform: translate(-50%, -50%) scale(1.08); }
.dv-vcard__bottom { position: absolute; z-index: 1; left: 14px; right: 14px; bottom: 16px; display: flex; flex-direction: column; gap: 8px; }
.dv-vcard__title { font-size: 14px; font-weight: 600; line-height: 1.4; }
.dv-vcard__views { display: flex; align-items: center; gap: 6px; font-size: 12px; line-height: normal; opacity: .85; }

/* ===================== Phản hồi (5:425) ===================== */
.dv-slnav { display: flex; gap: 10px; flex: none; }
.dv-slnav__btn { display: flex; padding: 14px; border: 1px solid var(--dv-line); border-radius: 999px; background: transparent; cursor: pointer; transition: background .2s ease, border-color .2s ease; }
.dv-slnav__btn.is-dark { background: var(--dv-ink); border-color: var(--dv-ink); }
.dv-slnav__btn:hover { border-color: var(--dv-ink); }
.dv-slnav__btn.is-dark:hover { background: var(--dv-red); border-color: var(--dv-red); }
.dv-slnav__btn:disabled { opacity: .4; cursor: default; }
.is-flip { transform: rotate(180deg); }
.dv-track {
	display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none;
	margin-inline: calc(-1 * var(--dv-gutter)); padding-inline: var(--dv-gutter); scroll-padding-inline: var(--dv-gutter);
}
.dv-wrap .dv-track { margin-inline: 0; padding-inline: 0; scroll-padding-inline: 0; }
.dv-track::-webkit-scrollbar { display: none; }
.dv-tcard {
	display: flex; flex-direction: column; gap: 18px; width: 384px; min-height: 285px; flex: none; margin: 0; padding: 28px;
	border: 1px solid var(--dv-line); border-radius: 14px; background: #fff; scroll-snap-align: start;
}
.dv-tcard__top { display: flex; align-items: center; justify-content: space-between; }
.dv-tcard__stars { display: flex; gap: 2px; }
.dv-tcard__quote { margin: 0; font-size: 15px; line-height: 1.65; color: var(--dv-ink); flex: 1 1 auto; }
.dv-tcard__who { display: flex; align-items: center; gap: 12px; padding-top: 18px; border-top: 1px solid var(--dv-line); line-height: normal; }
.dv-tcard__avatar { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 999px; background: var(--dv-bg); font-size: 14px; font-weight: 600; flex: none; }
.dv-tcard__who > span:last-child { display: flex; flex-direction: column; gap: 2px; }
.dv-tcard__who strong { font-size: 15px; font-weight: 600; }
.dv-tcard__who small { font-size: 13px; color: var(--dv-muted); }
.dv-dots { display: flex; justify-content: center; gap: 0; margin-top: 40px; }
.dv-dots button { position: relative; width: 24px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer; transition: width .25s ease; }
.dv-dots button::before { content: ""; position: absolute; top: 8px; left: 8px; right: 8px; height: 8px; border-radius: 4px; background: var(--dv-line); transition: background .25s ease; }
.dv-dots button.is-active { width: 44px; }
.dv-dots button.is-active::before { background: var(--dv-red); }

/* ===================== Bài viết (5:517) ===================== */
.dv-bgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.dv-bcard { display: flex; flex-direction: column; }
.dv-bcard__media { display: block; height: 240px; border-radius: 14px; overflow: hidden; }
.dv-bcard__img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.dv-bcard:hover .dv-bcard__img { transform: scale(1.05); }
.dv-bcard__body { display: flex; flex-direction: column; gap: 10px; padding-top: 20px; }
.dv-bcard__meta { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 12px; line-height: normal; color: var(--dv-muted); }
.dv-bcard__tag { font-size: 11px; font-weight: 700; letter-spacing: .66px; color: var(--dv-red); }
.dv-bcard__title { font-size: 20px; font-weight: 600; line-height: 1.35; color: var(--dv-ink); }
.dv-bcard__title a:hover { color: var(--dv-red); }
.dv-bcard__excerpt { margin: 0; font-size: 14px; line-height: 1.6; color: var(--dv-muted); }
.dv-bcard__more { display: inline-flex; align-items: center; gap: 6px; padding-top: 4px; font-size: 13px; font-weight: 600; line-height: normal; }
.dv-bcard__more:hover { color: var(--dv-red); }

/* ===================== Responsive ===================== */
@media (max-width: 1280px) {
	.dv-areas__grid, .dv-vgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.dv-lgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.dv-about__wrap { gap: 48px; }
	.dv-hero__title { font-size: 56px; }
}

@media (max-width: 1023px) {
	.dv-sec, .dv-listings { padding: 64px 20px; }
	.dv-shead { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 28px; }
	.dv-shead__title { font-size: 30px; }
	.dv-shead__desc { font-size: 14px; }
	.dv-shead__right { flex-wrap: wrap; max-width: 100%; gap: 12px 20px; }
	.dv-chips { margin: -4px -20px 24px; padding: 0 20px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
	.dv-chips::-webkit-scrollbar { display: none; }

	.dv-hero__inner { padding: 64px 20px 40px; }
	.dv-hero__content { gap: 16px; margin-bottom: 28px; }
	.dv-hero__eyebrow { font-size: 11px; letter-spacing: 1.5px; }
	.dv-hero__eyebrow::before { width: 24px; }
	.dv-hero__title { font-size: 38px; }
	.dv-hero__desc { font-size: 15px; }
	.dv-search { padding: 12px; }
	.dv-search__fields { flex-direction: column; align-items: stretch; }
	.dv-sfield { padding: 12px 10px; }
	.dv-sfield + .dv-sfield { border-left: 0; border-top: 1px solid var(--dv-line); }
	.dv-sfield__chev { right: 10px; bottom: 13px; }
	.dv-search__btn { justify-content: center; margin-top: 8px; padding: 16px; }
	.dv-hero__popular { margin-top: 20px; }
	.dv-hero__stats { flex-direction: column; gap: 14px; margin-top: 28px; }

	.dv-areas__grid, .dv-lgrid, .dv-pgrid, .dv-vgrid, .dv-bgrid {
		display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
		margin-inline: -20px; padding-inline: 20px; scroll-padding-inline: 20px;
	}
	.dv-areas__grid::-webkit-scrollbar, .dv-lgrid::-webkit-scrollbar, .dv-pgrid::-webkit-scrollbar, .dv-vgrid::-webkit-scrollbar, .dv-bgrid::-webkit-scrollbar { display: none; }
	.dv-areas__grid > *, .dv-lgrid > *, .dv-pgrid > *, .dv-vgrid > *, .dv-bgrid > * { flex: 0 0 auto; scroll-snap-align: start; }
	.dv-acard { width: 240px; height: 320px; }
	.dv-lgrid__item { width: 282px; }
	.dv-pcard { width: 310px; }
	.dv-vcard { width: 220px; height: 390px; }
	.dv-bcard { width: 300px; }
	.dv-bcard__media { height: 200px; }
	.dv-more { margin-top: 28px; }

	.dv-about__wrap { flex-direction: column; align-items: stretch; gap: 40px; }
	.dv-about__portrait { width: 100%; max-width: 350px; height: auto; aspect-ratio: 350 / 506; margin: 0 auto; }
	.dv-about__block { left: 15%; top: 18%; width: 85%; height: 82%; }
	.dv-about__img { width: 85%; height: 88%; }
	.dv-about__badge { left: auto; right: 0; top: auto; bottom: 6%; padding: 14px 18px; }
	.dv-about__badge strong { font-size: 30px; }
	.dv-about__title { font-size: 30px; }
	.dv-about__bio { font-size: 15px; }
	.dv-about__services { grid-template-columns: 1fr; gap: 12px; }
	.dv-about__btns .dv-btn { flex: 1 1 100%; }

	.dv-tcard { width: 300px; padding: 22px; }
	.dv-dots { margin-top: 28px; }
}

/* Elementor đặt .elementor img{height:auto} – ảnh phủ khung cần độ ưu tiên cao hơn */
.elementor :is(.dv-hero__bg, .dv-acard__img, .dv-lcard__img, .dv-pcard__img, .dv-vcard__img, .dv-bcard__img) { height: 100%; max-width: none; }
.elementor .dv-about__img { height: 600px; max-width: none; }
@media (min-width: 1024px) { .dv-shead__title { white-space: nowrap; } }
@media (max-width: 1023px) { .elementor .dv-about__img { height: 88%; } }

/* ===================== Trang Giới thiệu (Figma 71:566 / 103:728) ===================== */
.dv-eyebrow--ink { color: var(--dv-ink); }
.dv-eyebrow--light { color: #fff; }
.dv-btn--pill { border-radius: 999px; font-size: 14px; }
.dv-btn--ghost { border-color: rgba(255, 255, 255, .5); color: #fff; }
.dv-btn--ghost:hover { background: #fff; color: var(--dv-ink); }

.dv-crumb { display: flex; gap: 6px; font-size: 13px; line-height: normal; color: var(--dv-muted); }
.dv-crumb a:hover { color: var(--dv-red); }

/* Hero giới thiệu */
.dv-intro { padding-top: 80px; padding-bottom: 96px; }
.dv-intro__in { display: flex; align-items: center; gap: 80px; }
.dv-intro__text { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 22px; }
.dv-intro__title { margin: 0; max-width: 640px; font-size: 52px; font-weight: 600; line-height: 1.15; color: var(--dv-ink); }
.dv-intro__p { margin: 0; max-width: 620px; font-size: 16px; line-height: 1.75; color: #3a3b3f; }
.dv-intro__stats { display: flex; margin: 0; padding: 12px 0 0; list-style: none; white-space: nowrap; }
.dv-intro__stats li { display: flex; flex-direction: column; gap: 4px; padding: 0 28px; border-left: 1px solid var(--dv-line); }
.dv-intro__stats li:first-child { padding-left: 0; border-left: 0; }
.dv-intro__stats strong { font: 600 26px/normal var(--dv-font-body); color: var(--dv-ink); }
.dv-intro__stats span { font-size: 13px; line-height: normal; color: var(--dv-muted); }
.dv-intro__media { position: relative; flex: none; width: 440px; height: 620px; }
.dv-intro__back { position: absolute; left: 40px; top: 40px; width: 400px; height: 580px; border-radius: 20px; background: var(--dv-ink); }
.elementor .dv-intro__img, .dv-intro__img { position: absolute; left: 0; top: 0; display: block; width: 400px; height: 580px; max-width: none; border-radius: 20px; object-fit: cover; background: #e9e4ea; }
.dv-intro__badge {
	position: absolute; left: -30px; top: 500px; display: flex; align-items: center; gap: 12px; padding: 14px 18px;
	border-radius: 14px; background: #fff; filter: drop-shadow(0 10px 15px rgba(0, 0, 0, .12)); white-space: nowrap;
}
.elementor .dv-intro__mark, .dv-intro__mark { width: 30px; height: 23px; object-fit: contain; }
.dv-intro__badge > span { display: flex; flex-direction: column; gap: 2px; line-height: normal; }
.dv-intro__badge strong { font-size: 14px; font-weight: 600; color: var(--dv-ink); }
.dv-intro__badge span span { font-size: 12px; color: var(--dv-muted); }

/* Khu vực tập trung – hàng xen kẽ */
.dv-farea .dv-shead { margin-bottom: 56px; }
.dv-farea__rows { display: flex; flex-direction: column; gap: 56px; }
.dv-farea__row { display: flex; align-items: center; gap: 72px; }
.dv-farea__row:nth-child(even) { flex-direction: row-reverse; }
.dv-farea__media { position: relative; flex: none; width: 560px; height: 400px; border-radius: 20px; overflow: hidden; background: #ddd; }
.elementor .dv-farea__img, .dv-farea__img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.dv-farea__text { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.dv-farea__title { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0; font-size: 34px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-farea__badge { padding: 5px 12px; border-radius: 999px; background: var(--dv-red); color: #fff; font: 600 12px/normal var(--dv-font-body); white-space: nowrap; }
.dv-farea__p { margin: 0; max-width: 560px; font-size: 15px; line-height: 1.75; color: #3a3b3f; }
.dv-lchips { display: flex; flex-wrap: wrap; gap: 8px; }
.dv-lchip {
	display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border: 1px solid var(--dv-line); border-radius: 999px;
	font-size: 13px; font-weight: 500; line-height: normal; color: var(--dv-ink); white-space: nowrap; transition: border-color .2s ease;
}
.dv-lchip:hover { border-color: var(--dv-red); color: var(--dv-red); }

/* Dịch vụ */
.dv-svcs__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.dv-scard { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: 40px; border-radius: 20px; background: #fff; }
.dv-scard__icon { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 14px; background: rgba(224, 60, 49, .1); }
.dv-scard__icon svg { width: 28px; height: 28px; }
.dv-scard__icon svg path { stroke: var(--dv-red); }
.dv-scard__title { margin: 0; font-size: 26px; font-weight: 600; line-height: 1.25; color: var(--dv-ink); }
.dv-scard__p { margin: 0; font-size: 15px; line-height: 1.75; color: #3a3b3f; }
.dv-scard__link { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 1px; font-size: 14px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-scard__link .dv-icon { transition: transform .2s ease; }
.dv-scard__link:hover { color: var(--dv-red); }
.dv-scard__link:hover .dv-icon { transform: translateX(3px); }

/* Review – nền tối */
.dv-review__in { display: flex; align-items: center; gap: 72px; }
.dv-review__text { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.dv-review__title { margin: 0; max-width: 500px; font-size: 40px; font-weight: 600; line-height: 1.2; color: #fff; }
.dv-review__p { margin: 0; max-width: 500px; font-size: 15px; line-height: 1.75; color: rgba(255, 255, 255, .72); }
.dv-review__btns, .dv-csplit__btns { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 8px; }
.dv-review__videos { display: flex; gap: 20px; flex: none; }
.dv-review__videos .dv-vcard { flex: none; width: 196px; height: 348px; }

/* Liên hệ chia đôi */
.dv-csplit__in { display: flex; align-items: flex-start; gap: 80px; }
.dv-csplit__text { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.dv-csplit__title { margin: 0; font-size: 42px; font-weight: 600; line-height: 1.2; color: var(--dv-ink); }
.dv-csplit__p { margin: 0; max-width: 560px; font-size: 16px; line-height: 1.75; color: #3a3b3f; }
.dv-clist { flex: none; width: 520px; margin: 0; padding: 8px 32px; list-style: none; border-radius: 20px; background: var(--dv-bg); }
.dv-clist li + li { border-top: 1px solid var(--dv-line); }
.dv-clist a { display: flex; align-items: center; gap: 16px; padding: 20px 0; }
.dv-clist__ic { display: flex; align-items: center; justify-content: center; flex: none; width: 40px; height: 40px; border-radius: 20px; background: #fff; }
.dv-clist__ic b { font-size: 14px; font-weight: 700; color: var(--dv-red); }
.dv-clist__t { display: flex; flex-direction: column; gap: 2px; min-width: 0; line-height: normal; }
.dv-clist__t span { font-size: 12px; color: var(--dv-muted); }
.dv-clist__t strong { font-size: 15px; font-weight: 600; color: var(--dv-ink); overflow-wrap: anywhere; }
.dv-clist a:hover strong { color: var(--dv-red); }

@media (max-width: 1280px) {
	.dv-intro__in, .dv-csplit__in { gap: 48px; }
	.dv-farea__row { gap: 48px; }
	.dv-farea__media { width: 46%; }
	.dv-review__in { flex-direction: column; align-items: flex-start; }
	.dv-clist { width: 440px; }
}
@media (max-width: 1023px) {
	.dv-intro { padding-top: 40px; padding-bottom: 64px; }
	.dv-intro__in { flex-direction: column; align-items: stretch; gap: 48px; }
	.dv-intro__text { gap: 20px; }
	.dv-intro__title { font-size: 32px; line-height: 1.2; }
	.dv-intro__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 16px; width: 100%; white-space: normal; }
	.dv-intro__stats li { padding: 0 0 0 20px; }
	.dv-intro__stats li:nth-child(odd) { padding-left: 0; border-left: 0; }
	.dv-intro__stats strong { font-size: 18px; }
	.dv-intro__media { width: 100%; height: auto; aspect-ratio: 350 / 490; }
	.dv-intro__back { left: 9%; top: 6%; width: 91%; height: 94%; }
	.elementor .dv-intro__img, .dv-intro__img { width: 91%; height: 94%; }
	.dv-intro__badge { left: 0; top: auto; bottom: 14%; padding: 10px 14px; }

	.dv-farea .dv-shead { margin-bottom: 24px; }
	.dv-farea__rows { gap: 40px; }
	.dv-farea__row, .dv-farea__row:nth-child(even) { flex-direction: column; align-items: stretch; gap: 24px; }
	.dv-farea__media { width: 100%; height: auto; aspect-ratio: 350 / 250; border-radius: 16px; }
	.dv-farea__title { font-size: 26px; }

	.dv-svcs__grid { grid-template-columns: 1fr; gap: 24px; }
	.dv-scard { padding: 24px; }
	.dv-scard__icon { width: 48px; height: 48px; border-radius: 12px; }
	.dv-scard__icon svg { width: 24px; height: 24px; }
	.dv-scard__title { font-size: 22px; }

	.dv-review__in { gap: 40px; }
	.dv-review__title { font-size: 30px; }
	.dv-review__btns { flex-direction: column; align-items: flex-start; }
	.dv-review__videos { align-self: stretch; margin-inline: calc(-1 * var(--dv-gutter)); padding-inline: var(--dv-gutter); overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; scroll-padding-inline: var(--dv-gutter); }
	.dv-review__videos::-webkit-scrollbar { display: none; }
	.dv-review__videos .dv-vcard { scroll-snap-align: start; width: 200px; height: 356px; }

	.dv-csplit__in { flex-direction: column; align-items: stretch; gap: 32px; }
	.dv-csplit__title { font-size: 30px; }
	.dv-clist { width: auto; padding: 8px 20px; }
}
.dv-farea .dv-eyebrow, .dv-svcs .dv-eyebrow { color: var(--dv-ink); }

/* ===================== Trang Liên hệ (Figma 77:969 / 108:2516) ===================== */
.dv-phead { padding-top: 56px; padding-bottom: 48px; }
.dv-phead .dv-wrap { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.dv-phead__title { margin: 0; font-size: 52px; font-weight: 600; line-height: 1.15; color: var(--dv-ink); }
.dv-phead__desc { margin: 0; max-width: 820px; font-size: 16px; line-height: 1.7; color: #3a3b3f; }

.dv-cmain { padding-top: 64px; padding-bottom: 96px; }
.dv-cmain__in { display: flex; align-items: flex-start; gap: 48px; }
.dv-cmain__info { flex: none; width: 440px; display: flex; flex-direction: column; gap: 16px; }
.dv-agent { display: flex; align-items: center; gap: 16px; padding: 24px; border-radius: 16px; background: var(--dv-ink); }
.elementor .dv-agent__img, .dv-agent__img { flex: none; width: 72px; height: 72px; max-width: none; border-radius: 50%; object-fit: cover; }
.dv-agent__t { display: flex; flex-direction: column; gap: 4px; line-height: normal; }
.dv-agent__t strong { font: 600 22px/normal var(--dv-font-heading); color: #fff; }
.dv-agent__t span { font-size: 13px; color: rgba(255, 255, 255, .7); }
.dv-agent__t em { font-size: 12px; font-style: normal; font-weight: 500; color: #ff6b5f; }
.dv-cinfo { display: flex; align-items: center; gap: 16px; padding: 20px; border: 1px solid var(--dv-line); border-radius: 16px; transition: border-color .2s ease; }
.dv-cinfo:hover { border-color: var(--dv-ink); }
.dv-cinfo__ic { display: flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; border-radius: 22px; background: #fdecea; }
.dv-cinfo__t { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 2px; line-height: normal; }
.dv-cinfo__t span { font-size: 12px; color: var(--dv-muted); }
.dv-cinfo__t strong { max-width: 230px; font-size: 15px; font-weight: 600; color: var(--dv-ink); }
.dv-cinfo__l { display: flex; align-items: center; gap: 4px; flex: none; font-size: 13px; font-weight: 600; line-height: normal; color: var(--dv-ink); white-space: nowrap; }
.dv-csocial { display: flex; flex-direction: column; gap: 12px; padding: 20px; border-radius: 16px; background: var(--dv-bg); }
.dv-csocial p { margin: 0; font-size: 15px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-csocial div { display: flex; flex-wrap: wrap; gap: 8px; }
.dv-csocial a { padding: 9px 16px; border: 1px solid var(--dv-line); border-radius: 999px; background: #fff; font-size: 13px; font-weight: 500; line-height: normal; color: var(--dv-ink); white-space: nowrap; }
.dv-csocial a:hover { border-color: var(--dv-ink); }

.dv-cform { flex: 1 1 0; min-width: 0; padding: 40px; border: 1px solid var(--dv-line); border-radius: 20px; background: #fff; box-shadow: 0 16px 20px rgba(0, 0, 0, .06); }
.dv-cform__title { margin: 0 0 18px; font-size: 30px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-cform__desc { margin: 0 0 18px; font-size: 14px; line-height: normal; color: var(--dv-muted); }

/* Fluent Forms theo thiết kế */
.dv-cform .fluentform .ff-el-group { margin-bottom: 18px; }
.dv-cform .fluentform .ff-t-container { gap: 16px; margin: 0; }
.dv-cform .fluentform .ff-t-cell { padding: 0 !important; }
.dv-cform .fluentform .ff-el-input--label { margin-bottom: 8px; }
.dv-cform .fluentform .ff-el-input--label label { font: 500 13px/normal var(--dv-font-body); color: var(--dv-ink); }
.dv-cform .fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label::after { color: var(--dv-red); }
.dv-cform .fluentform .ff-el-form-control {
	height: 48px; padding: 0 16px; border: 1px solid var(--dv-line); border-radius: 10px; background: #fff;
	font: 400 14px/normal var(--dv-font-body); color: var(--dv-ink); box-shadow: none;
}
.dv-cform .fluentform .ff-el-form-control::placeholder { color: #a3a3a8; opacity: 1; }
.dv-cform .fluentform .ff-el-form-control:focus { border-color: var(--dv-ink); outline: none; box-shadow: none; }
.dv-cform .fluentform textarea.ff-el-form-control { height: 110px; padding-top: 14px; resize: vertical; }
.dv-cform .fluentform select.ff-el-form-control {
	appearance: none; -webkit-appearance: none; padding-right: 42px; cursor: pointer;
	background: #fff url("../icons/chev-grey-16.svg") no-repeat right 16px center / 16px 16px;
}
.dv-cform .fluentform select.ff-el-form-control:invalid,
.dv-cform .fluentform select.ff-el-form-control.dv-empty { color: #a3a3a8; }
/* Chip "Anh chị cần" */
.dv-cform .dv-ff-chips .ff-el-input--content { display: flex; flex-wrap: wrap; gap: 8px; }
.dv-cform .dv-ff-chips .ff-el-form-check { margin: 0 !important; padding: 0; }
.dv-cform .dv-ff-chips .ff-el-form-check-label { position: relative; display: block; margin: 0; cursor: pointer; }
.dv-cform .dv-ff-chips input[type="radio"] { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.dv-cform .dv-ff-chips .ff-el-form-check-label span {
	display: block; padding: 9px 16px; border: 1px solid var(--dv-line); border-radius: 999px; background: #fff;
	font: 500 13px/normal var(--dv-font-body); color: var(--dv-ink); white-space: nowrap; transition: background .2s ease, color .2s ease;
}
.dv-cform .dv-ff-chips .ff-el-form-check-label:hover span { border-color: var(--dv-ink); }
.dv-cform .dv-ff-chips input[type="radio"]:checked + span { border-color: var(--dv-ink); background: var(--dv-ink); color: #fff; }
.dv-cform .dv-ff-chips input[type="radio"]:focus-visible + span { outline: 2px solid var(--dv-red); outline-offset: 2px; }
/* Ô chọn tiếng Anh */
.dv-cform .dv-ff-check .ff-el-form-check { margin: 0; }
.dv-cform .dv-ff-check .ff-el-form-check-label { display: flex; align-items: center; gap: 10px; margin: 0; font: 400 14px/normal var(--dv-font-body); color: var(--dv-ink); cursor: pointer; }
.dv-cform .dv-ff-check input[type="checkbox"] {
	appearance: none; -webkit-appearance: none; flex: none; width: 18px; height: 18px; margin: 0; border: 1px solid var(--dv-line); border-radius: 4px; background: #fff; cursor: pointer;
}
.dv-cform .dv-ff-check input[type="checkbox"]:checked { border-color: var(--dv-ink); background: var(--dv-ink) url("../icons/check-white-12.svg") no-repeat center / 12px 12px; }
/* Nút gửi */
.dv-cform .fluentform .ff_submit_btn_wrapper { margin: 0; }
.dv-cform .fluentform .ff-btn-submit.dv-ff-submit,
.dv-cform .fluentform .ff-btn-submit {
	display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 14px 24px; border: 0; border-radius: 999px;
	background: var(--dv-red) !important; color: #fff !important; font: 600 14px/normal var(--dv-font-body); box-shadow: none; transition: background .2s ease;
}
.dv-cform .fluentform .ff-btn-submit::before { content: ""; width: 16px; height: 16px; background: url("../icons/send-white-16.svg") no-repeat center / contain; }
.dv-cform .fluentform .ff-btn-submit:hover { background: #b52b22 !important; }
.dv-cform .ff-message-success { padding: 20px; border: 0; border-radius: 12px; background: #eef7ef; box-shadow: none; font-size: 15px; color: var(--dv-ink); }
.dv-cform .fluentform .error.text-danger { margin-top: 6px; font-size: 12px; color: var(--dv-red); }

/* Bản đồ */
.dv-map { position: relative; height: 440px; overflow: hidden; background: #e4e2dd; }
.dv-map__frame { display: block; width: 100%; height: 100%; border: 0; filter: grayscale(.35) contrast(.95); }
.dv-map__pin {
	position: absolute; left: 50%; top: 190px; transform: translateX(-50%); display: flex; align-items: center; gap: 10px; padding: 12px 18px;
	border-radius: 999px; background: var(--dv-ink); color: #fff; font-size: 14px; font-weight: 600; line-height: normal; white-space: nowrap; pointer-events: none;
}
.dv-map__bar { position: absolute; left: 0; right: 0; bottom: 38px; padding-inline: max(var(--dv-gutter), calc((100% - var(--dv-container)) / 2)); pointer-events: none; }
.dv-map__open {
	display: inline-flex; align-items: center; gap: 8px; padding: 12px 20px; border-radius: 999px; background: #fff; pointer-events: auto;
	font-size: 14px; font-weight: 600; line-height: normal; color: var(--dv-ink); box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
}
.dv-map__open:hover { color: var(--dv-red); }

@media (max-width: 1280px) {
	.dv-cmain__info { width: 380px; }
	.dv-cform { padding: 32px; }
}
@media (max-width: 1023px) {
	.dv-phead { padding-top: 32px; padding-bottom: 40px; }
	.dv-phead__title { font-size: 34px; line-height: 1.2; }
	.dv-cmain { padding-top: 40px; padding-bottom: 64px; }
	.dv-cmain__in { flex-direction: column; align-items: stretch; gap: 24px; }
	.dv-cmain__info { width: auto; }
	.dv-agent { flex-direction: column; align-items: flex-start; }
	.dv-cform { padding: 24px; }
	.dv-cform__title { font-size: 26px; }
	.dv-cform .fluentform .ff-t-container { flex-direction: column; gap: 0; }
	.dv-cform .fluentform .ff-t-cell { width: 100% !important; flex-basis: 100% !important; }
	.dv-map { height: 360px; }
	.dv-map__pin { top: 140px; }
}
.dv-cform .fluentform select.ff-el-form-control:not([size]):not([multiple]) { height: 48px; padding: 0 42px 0 16px; }
.dv-cform .fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label::after { content: none; }
.dv-cinfo__t strong { overflow-wrap: break-word; }
@media (max-width: 1023px) { .dv-cinfo__t strong { max-width: none; } .dv-cinfo { gap: 12px; padding: 16px; } }
/* Mobile: chỉ giữ mũi tên ở link hành động để email / địa chỉ không bị ngắt giữa chừng */
@media (max-width: 767px) { .dv-cinfo__l { gap: 0; font-size: 0; } }

/* ===================== Danh sách căn (Figma 65:566 / 65:1238) ===================== */
.dv-lhead { padding-top: 48px; padding-bottom: 40px; }
.dv-lhead .dv-wrap { display: flex; flex-direction: column; gap: 14px; }
.dv-lhead__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.dv-lhead__t { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.dv-lhead__title { margin: 0; font-size: 48px; font-weight: 600; line-height: 1.15; color: var(--dv-ink); }
.dv-lhead__desc { margin: 0; max-width: 640px; font-size: 15px; line-height: 1.6; color: var(--dv-muted); }
.dv-lhead__count { display: flex; align-items: center; gap: 6px; flex: none; margin: 0; line-height: normal; white-space: nowrap; }
.dv-lhead__count strong { font-size: 28px; font-weight: 600; color: var(--dv-ink); }
.dv-lhead__count span { font-size: 14px; color: var(--dv-muted); }
.dv-lhead__tabs { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 10px; }

.dv-lbody { padding-top: 40px; padding-bottom: 96px; }
.dv-lbody__in { display: flex; align-items: flex-start; gap: 32px; }

/* Bộ lọc */
.dv-filter { flex: none; width: 288px; padding: 8px 24px 24px; border: 1px solid var(--dv-line); border-radius: 16px; background: #fff; }
.dv-filter__head { display: flex; align-items: center; justify-content: space-between; padding: 16px 0 4px; }
.dv-filter__head p { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 16px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-filter__head a { font-size: 13px; font-weight: 500; line-height: normal; color: var(--dv-red); }
.dv-filter__close { display: none; }
.dv-fgroup { padding: 20px 0; border-bottom: 1px solid var(--dv-line); }
.dv-fgroup summary { display: flex; align-items: center; justify-content: space-between; list-style: none; cursor: pointer; font-size: 14px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-fgroup summary::-webkit-details-marker { display: none; }
.dv-fgroup:not([open]) .dv-fgroup__chev { transform: rotate(180deg); }
.dv-fgroup__body { display: flex; flex-direction: column; gap: 12px; padding-top: 14px; }
.dv-fopt { display: flex; align-items: center; gap: 10px; font-size: 14px; line-height: normal; color: var(--dv-ink); cursor: pointer; }
.dv-fopt span { flex: 1 1 auto; min-width: 0; }
.dv-fopt em { font-size: 12px; font-style: normal; color: var(--dv-muted); }
.dv-fopt input {
	appearance: none; -webkit-appearance: none; flex: none; width: 18px; height: 18px; margin: 0; border: 1px solid #c9c7c2; border-radius: 4px; background: #fff; cursor: pointer;
}
.dv-fopt input[type="radio"] { border-radius: 9px; }
.dv-fopt input:checked { border-color: var(--dv-ink); background: var(--dv-ink) url("../icons/check-white-12.svg") no-repeat center / 12px 12px; }
.dv-fopt input[type="radio"]:checked { background: url("../icons/radio-on-18.svg") no-repeat center / 18px 18px; border: 0; }
.dv-fopt input:checked + span { font-weight: 500; }
.dv-fopt input:focus-visible, .dv-fchips input:focus-visible + span { outline: 2px solid var(--dv-red); outline-offset: 2px; }
.dv-fchips { display: flex; flex-wrap: wrap; gap: 8px; }
.dv-fchips label { position: relative; cursor: pointer; }
.dv-fchips input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.dv-fchips span {
	display: block; padding: 7px 14px; border: 1px solid var(--dv-line); border-radius: 999px; background: #fff;
	font-size: 13px; font-weight: 500; line-height: normal; color: var(--dv-ink); white-space: nowrap; transition: background .2s ease, color .2s ease;
}
.dv-fchips label:hover span { border-color: var(--dv-ink); }
.dv-fchips input:checked + span { border-color: var(--dv-ink); background: var(--dv-ink); color: #fff; }
.dv-filter__apply { padding-top: 20px; }
.dv-filter__apply .dv-btn { width: 100%; padding: 13px 24px; }
.dv-filter__backdrop { display: none; }

/* Thanh công cụ */
.dv-results { flex: 1 1 0; min-width: 0; }
.dv-tbar { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; }
.dv-tbar__mfilter { display: none; }
.dv-tbar__active { display: flex; flex: 1 1 0; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.dv-tbar__active > span { font-size: 13px; line-height: normal; color: var(--dv-muted); }
.dv-achip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--dv-line); border-radius: 999px; background: #fff; font-size: 13px; font-weight: 500; line-height: normal; color: var(--dv-ink); white-space: nowrap; }
.dv-achip:hover { border-color: var(--dv-red); }
.dv-sort { position: relative; display: flex; align-items: center; gap: 8px; flex: none; padding: 9px 14px; border: 1px solid var(--dv-line); border-radius: 10px; font-size: 13px; line-height: normal; }
.dv-sort > span { color: var(--dv-muted); }
.dv-sort select { appearance: none; -webkit-appearance: none; margin: 0; padding: 0 22px 0 0; border: 0; background: transparent; font: 600 13px/normal var(--dv-font-body); color: var(--dv-ink); cursor: pointer; }
.dv-sort .dv-icon { position: absolute; right: 14px; pointer-events: none; }
.dv-vtoggle { display: flex; flex: none; overflow: hidden; border: 1px solid var(--dv-line); border-radius: 10px; }
.dv-vtoggle a { display: flex; align-items: center; justify-content: center; width: 38px; height: 36px; background: #fff; }
.dv-vtoggle a.is-active { background: var(--dv-ink); }
.dv-vtoggle a .dv-icon path { stroke: var(--dv-ink); }
.dv-vtoggle a.is-active .dv-icon path { stroke: #fff; }

/* Lưới */
.dv-agrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 20px; }
.dv-agrid.is-list { grid-template-columns: 1fr; gap: 16px; }
.dv-agrid.is-list .dv-lcard { display: flex; }
.dv-agrid.is-list .dv-lcard__media { flex: none; width: 300px; height: auto; min-height: 220px; }
.dv-agrid.is-list .dv-lcard__body { flex: 1 1 auto; justify-content: center; }
.dv-agrid.is-list .dv-lcard__save { right: auto; left: 252px; }
.dv-noresult { padding: 48px 32px; border-radius: 16px; background: var(--dv-bg); text-align: center; }
.dv-noresult p { max-width: 520px; margin: 0 auto 20px; font-size: 15px; line-height: 1.6; color: #3a3b3f; }

/* Phân trang */
.dv-pager { display: flex; justify-content: center; gap: 8px; padding-top: 40px; }
.dv-pager > * { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid var(--dv-line); border-radius: 999px; background: #fff; font-size: 14px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-pager a:hover { border-color: var(--dv-ink); }
.dv-pager .is-active { border-color: var(--dv-ink); background: var(--dv-ink); color: #fff; }
.dv-pager .is-disabled { opacity: .4; }
.dv-pager .is-gap { border: 0; }

.dv-seobox { display: flex; flex-direction: column; gap: 12px; margin-top: 24px; padding: 32px; border-radius: 16px; background: var(--dv-bg); }
.dv-seobox h2 { margin: 0; font-size: 22px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-seobox p { margin: 0; font-size: 14px; line-height: 1.7; color: #3a3b3f; }

@media (max-width: 1280px) {
	.dv-filter { width: 260px; padding-inline: 20px; }
	.dv-agrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
	.dv-lhead { padding-top: 32px; padding-bottom: 24px; }
	.dv-lhead__row { flex-direction: column; align-items: flex-start; gap: 4px; }
	.dv-lhead__title { font-size: 30px; line-height: 1.2; }
	.dv-lhead__count strong { font-size: 22px; }
	.dv-lhead__tabs { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--dv-gutter)); padding-inline: var(--dv-gutter); scrollbar-width: none; }
	.dv-lhead__tabs::-webkit-scrollbar { display: none; }
	.dv-lhead__tabs .dv-chip { flex: none; }

	.dv-lbody { padding-top: 24px; padding-bottom: 64px; }
	.dv-lbody__in { display: block; }
	.dv-filter {
		position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 200; width: auto; max-height: 86vh; overflow-y: auto;
		padding: 8px 20px 24px; border: 0; border-radius: 20px 20px 0 0; box-shadow: 0 -10px 30px rgba(0, 0, 0, .15);
		transform: translateY(105%); transition: transform .3s ease; visibility: hidden;
	}
	.dv-filter.is-open { transform: none; visibility: visible; }
	.dv-filter__head { position: sticky; top: -8px; z-index: 1; padding-top: 16px; padding-bottom: 12px; background: #fff; }
	.dv-filter__close { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; margin-left: 12px; border: 0; border-radius: 50%; background: var(--dv-bg); cursor: pointer; }
	.dv-filter__close .dv-icon path { stroke: var(--dv-ink); }
	.dv-filter__head a { margin-left: auto; }
	.dv-filter__apply { position: sticky; bottom: -24px; padding: 16px 0 8px; background: #fff; }
	.dv-filter__backdrop { position: fixed; inset: 0; z-index: 199; display: block; background: rgba(17, 18, 20, .5); }
	.dv-filter__backdrop[hidden] { display: none; }

	.dv-tbar { flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
	.dv-tbar__mfilter {
		display: flex; align-items: center; justify-content: center; flex: 1 1 0; height: 44px; padding: 0 16px; border: 0; border-radius: 999px;
		background: var(--dv-ink); color: #fff; font: 600 14px/normal var(--dv-font-body); cursor: pointer;
	}
	.dv-sort { order: 1; flex: 1 1 0; justify-content: center; height: 44px; padding: 0 16px; border-radius: 999px; }
	.dv-sort > span { color: var(--dv-ink); font-weight: 600; }
	.dv-sort .dv-icon { display: none; }
	.dv-sort select { padding: 0; }
	.dv-vtoggle { display: none; }
	.dv-tbar__active { order: 2; flex: 1 1 100%; flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--dv-gutter)); padding-inline: var(--dv-gutter); scrollbar-width: none; }
	.dv-tbar__active::-webkit-scrollbar { display: none; }
	.dv-agrid, .dv-agrid.is-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.dv-agrid.is-list .dv-lcard { flex-direction: column; }
	.dv-agrid.is-list .dv-lcard__media { width: auto; min-height: 0; height: 196px; }
	.dv-agrid.is-list .dv-lcard__save { left: auto; right: 12px; }
	.dv-seobox { padding: 24px; }
}
.dv-sort > span, .dv-sort select { white-space: nowrap; }

/* ===================== Chi tiết căn (Figma 96:1093 · 70:566 / 108:3010 · 104:2824) ===================== */
.dv-ld__crumb { padding-block: 24px 20px; }
.dv-ld__crumb .dv-crumb { flex-wrap: wrap; gap: 8px; }
.dv-ld__crumb .dv-crumb [aria-current] { font-weight: 500; color: var(--dv-ink); }

/* Thư viện ảnh */
.dv-gal { display: grid; grid-template-columns: minmax(0, 728fr) minmax(0, 460fr); gap: 12px; height: 480px; }
.dv-gal__main, .dv-gal__thumb { position: relative; display: block; overflow: hidden; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 16px; background: var(--dv-bg); cursor: pointer; }
.elementor .dv-gal__img, .dv-gal__img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .5s ease; }
.dv-gal__main:hover .dv-gal__img, .dv-gal__thumb:hover .dv-gal__img { transform: scale(1.03); }
.dv-gal__thumbs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 12px; min-height: 0; }
.dv-gal__tag { position: absolute; left: 20px; top: 20px; padding: 6px 12px; border-radius: 6px; background: var(--dv-red); font-size: 11px; font-weight: 700; line-height: normal; letter-spacing: .06em; color: #fff; }
.dv-gal__wm { position: absolute; left: 20px; bottom: 20px; width: 46px; height: auto; opacity: .85; }
.dv-gal__more, .dv-gal__vid { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: 8px; background: rgba(17, 18, 20, .55); font-size: 14px; font-weight: 600; line-height: normal; color: #fff; }
.dv-gal__vid { flex-direction: column; gap: 10px; background: rgba(17, 18, 20, .25); font-size: 13px; }
.dv-gal__play { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--dv-red); }
.dv-gal__thumb.is-video { background: var(--dv-dark); }
/* Bố cục theo số ô thật (ảnh + video): chỉ hiện ảnh có thật, không lặp ảnh. is-n5 = đúng Figma. */
.dv-gal.is-n1 { grid-template-columns: minmax(0, 1fr); height: 560px; }
.dv-gal.is-n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dv-gal.is-n2 .dv-gal__thumbs { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
.dv-gal.is-n3 .dv-gal__thumbs { grid-template-columns: minmax(0, 1fr); }
.dv-gal.is-n4 .dv-gal__thumb:last-child { grid-column: span 2; }
.dv-gal__thumb.is-extra { display: none; } /* Ảnh dư chỉ hiện trong slide mobile; ảnh lazy nên desktop không tải. */
.dv-galbox__ui { display: none; }

/* Khung nội dung */
.dv-ld__body { display: flex; align-items: flex-start; gap: 56px; padding-top: 40px; padding-bottom: 96px; }
.dv-ld__content { flex: 1 1 0; min-width: 0; }
.dv-ld__sec { display: flex; flex-direction: column; gap: 18px; padding-block: 32px; border-bottom: 1px solid var(--dv-line); }
.dv-ld__sec:last-child { padding-bottom: 0; border-bottom: 0; }
.dv-ld__head { gap: 14px; padding-top: 0; padding-bottom: 28px; }
.dv-ld__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.dv-ld__badge { padding: 5px 10px; border-radius: 6px; background: var(--dv-bg); font-size: 12px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-ld__badge.is-red { background: #fdecea; color: #b52b22; }
.dv-ld { padding-inline: var(--dv-gutter); background: #fff; }
.dv-ld__code { font-size: 13px; line-height: normal; color: var(--dv-muted); white-space: pre; }
.dv-ld__title { margin: 0; font-size: 36px; font-weight: 600; line-height: 1.25; color: var(--dv-ink); }
.dv-ld__loc { display: flex; align-items: flex-start; gap: 6px; margin: 0; font-size: 14px; line-height: 1.45; color: var(--dv-muted); }
.dv-ld__loc .dv-icon, .dv-ld__loc svg { flex: none; width: 16px; height: 16px; margin-top: 2px; }
.dv-ld__loc a { color: var(--dv-ink); border-bottom: 1px solid currentColor; }
.dv-ld__loc a:hover { color: var(--dv-red); }
.dv-ld__loc i { margin-inline: 2px; font-style: normal; }
.dv-ld__price { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; line-height: normal; }
.dv-ld__price strong { font: 600 30px/normal var(--dv-font-body); letter-spacing: -.02em; color: var(--dv-red); }
.dv-ld__price span { font-size: 13px; color: var(--dv-muted); white-space: pre-wrap; }
.dv-ld__specs { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; padding: 8px 0 0; list-style: none; }
.dv-ld__specs li { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border: 1px solid var(--dv-line); border-radius: 12px; }
.dv-ld__specs .dv-icon { flex: none; width: 20px; height: 20px; }
.dv-ld__specs li > span { display: flex; flex-direction: column; gap: 2px; line-height: normal; white-space: nowrap; }
.dv-ld__specs strong { font-size: 14px; font-weight: 600; color: var(--dv-ink); }
.dv-ld__specs em { font-size: 12px; font-style: normal; color: var(--dv-muted); }

.dv-ld__h { margin: 0; font-size: 26px; font-weight: 600; line-height: 1.25; color: var(--dv-ink); }
.dv-ld__h--next { margin-top: 18px; }
.dv-ld__text { display: flex; flex-direction: column; gap: 18px; }
.dv-ld__text p, .dv-ld__p { margin: 0; font-size: 15px; line-height: 1.75; color: #3a3b3f; }
.dv-ld__p { line-height: 1.7; }
.dv-ld__hl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 32px; margin: 0; padding: 20px 24px; list-style: none; background: var(--dv-bg); border: 1px solid var(--dv-line); border-radius: 8px; }
.dv-ld__hl li { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 1.5; color: var(--dv-ink); }
.dv-ld__hl .dv-icon { flex: none; width: 18px; height: 18px; }

.dv-ld__amen { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 24px 16px; }
.dv-ld__amengrp h3 { margin: 0 0 10px; font-family: var(--dv-font-body); font-size: 12px; font-weight: 600; letter-spacing: .08em; line-height: normal; color: var(--dv-muted); text-transform: uppercase; }
.dv-ld__amengrp ul { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.dv-ld__amengrp li { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; line-height: 1.4; color: var(--dv-ink); }
.dv-ld__amengrp .dv-icon, .dv-ld__amengrp svg { flex: none; width: 16px; height: 16px; margin-top: 2px; }

.dv-ld__terms { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.dv-ld__terms li { display: flex; flex-direction: column; gap: 4px; padding: 16px; border: 1px solid var(--dv-line); border-radius: 12px; line-height: normal; }
.dv-ld__terms span { font-size: 12px; color: var(--dv-muted); }
.dv-ld__terms strong { font-size: 15px; font-weight: 600; color: var(--dv-ink); }

.dv-ld__video { display: flex; align-items: center; gap: 28px; }
.dv-ld__vthumb { position: relative; flex: none; display: block; overflow: hidden; width: 260px; aspect-ratio: 9 / 16; border-radius: 16px; background: var(--dv-ink); }
.elementor .dv-ld__vimg, .dv-ld__vimg { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.dv-ld__vplay { position: absolute; left: 50%; top: 50%; display: flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: 50%; background: var(--dv-red); transform: translate(-50%, -50%); }
.dv-ld__vt { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.dv-ld__vt h3 { margin: 0; font-size: 22px; font-weight: 600; line-height: 1.35; color: var(--dv-ink); }
.dv-ld__vmeta { margin: 0; font-size: 12px; line-height: normal; color: var(--dv-muted); }
.dv-ld__vdesc { margin: 0; font-size: 14px; line-height: 1.6; color: #3a3b3f; }

.dv-ld__map { position: relative; height: 360px; overflow: hidden; border-radius: 16px; background: #e4e2dd; }
.dv-ld__map iframe { display: block; width: 100%; height: 100%; border: 0; filter: grayscale(.35) contrast(.95); }
.dv-ld__map .dv-ploc__pin { transform: translate(-50%, -200%); }
.dv-ld__mapfoot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.dv-ld__mapplace { font-size: 14px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-ld__proj { display: flex; align-items: center; gap: 20px; padding: 16px; border: 1px solid var(--dv-line); border-radius: 16px; transition: border-color .2s ease; }
.dv-ld__proj:hover { border-color: var(--dv-ink); }
.elementor .dv-ld__pimg, .dv-ld__pimg { flex: none; display: block; width: 160px; height: 110px; max-width: none; border-radius: 10px; object-fit: cover; }
.dv-ld__pt { display: flex; flex: 1 1 0; flex-direction: column; gap: 6px; min-width: 0; }
.dv-ld__pt strong { font-size: 17px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-ld__pt span { max-width: 380px; font-size: 13px; line-height: 1.55; color: var(--dv-muted); }
.dv-ld__plink { display: flex; align-items: center; gap: 6px; flex: none; font-size: 14px; font-weight: 600; line-height: normal; color: var(--dv-ink); }

/* Cột phải */
.dv-ld__side { position: sticky; top: calc(var(--dv-sticky-top) + 24px); flex: none; display: flex; flex-direction: column; gap: 16px; width: 400px; }
/* Màn thấp: không đủ chỗ cho cả cột dưới menu dính, chỉ giữ thẻ liên hệ chạy theo */
@media (min-width: 1024px) and (max-height: 760px) {
	.dv-ld__side { position: static; align-self: stretch; }
	.dv-ldside { position: sticky; top: calc(var(--dv-sticky-top) + 16px); z-index: 1; }
}
.dv-ldside { display: flex; flex-direction: column; gap: 16px; padding: 28px; border: 1px solid var(--dv-line); border-radius: 16px; background: #fff; box-shadow: 0 12px 16px rgba(0, 0, 0, .06); }
.dv-ldside__p { display: flex; flex-direction: column; gap: 2px; margin: 0; line-height: normal; }
.dv-ldside__p span { font-size: 13px; color: var(--dv-muted); }
.dv-ldside__p strong { font: 600 28px/normal var(--dv-font-body); letter-spacing: -.02em; color: var(--dv-red); }
.dv-ldside__agent { display: flex; align-items: center; gap: 14px; padding-block: 16px; border-top: 1px solid var(--dv-line); border-bottom: 1px solid var(--dv-line); }
.elementor .dv-ldside__img, .dv-ldside__img { flex: none; width: 56px; height: 56px; max-width: none; border-radius: 50%; object-fit: cover; }
.dv-ldside__agent div { display: flex; flex-direction: column; gap: 3px; min-width: 0; line-height: normal; }
.dv-ldside__agent strong { font-size: 16px; font-weight: 600; color: var(--dv-ink); }
.dv-ldside__agent span { font-size: 12px; color: var(--dv-muted); }
.dv-ldside__agent em { font-size: 12px; font-style: normal; font-weight: 500; color: var(--dv-red); }
.dv-ldside__btn { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 24px; border: 1px solid transparent; border-radius: 999px; font-size: 14px; font-weight: 600; line-height: normal; transition: background .2s ease, color .2s ease; }
.dv-ldside__btn.is-red { background: var(--dv-red); color: #fff; }
.dv-ldside__btn.is-red:hover { background: #b52b22; }
.dv-ldside__btn.is-dark { background: var(--dv-ink); color: #fff; }
.dv-ldside__btn.is-dark:hover { background: #2a2b2f; }
.dv-ldside__btn.is-line { border-color: var(--dv-ink); color: var(--dv-ink); }
.dv-ldside__btn.is-line:hover { background: var(--dv-bg); }
.dv-ldside__acts { display: flex; justify-content: center; gap: 20px; }
.dv-ldside__acts button { display: flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; font: 500 13px/normal var(--dv-font-body); color: var(--dv-muted); cursor: pointer; }
.dv-ldside__acts button:hover, .dv-ldside__acts button.is-saved { color: var(--dv-red); }
.dv-ldside__acts button.is-saved .dv-icon path { fill: var(--dv-red); stroke: var(--dv-red); }
.dv-ldowner { display: flex; flex-direction: column; gap: 10px; padding: 24px; border-radius: 16px; background: var(--dv-ink); }
.dv-ldowner__t { margin: 0; font: 600 20px/normal var(--dv-font-heading); color: #fff; }
.dv-ldowner__d { margin: 0; font-size: 13px; line-height: 1.6; color: rgba(255, 255, 255, .7); }
.dv-ldowner a { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; font-size: 14px; font-weight: 600; line-height: normal; color: #fff; }
.dv-ldowner a:hover { color: var(--dv-red); }

.dv-ld__similar { margin-inline: calc(-1 * var(--dv-gutter)); padding: 80px var(--dv-gutter); background: var(--dv-bg); }
.dv-ld__similar .dv-shead { margin-bottom: 32px; }

/* Lightbox */
.dv-lbox { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 64px 80px; background: rgba(10, 10, 12, .92); }
.dv-lbox[hidden] { display: none; }
.dv-lbox__img { max-width: 100%; max-height: 100%; border-radius: 8px; object-fit: contain; }
.dv-lbox__close, .dv-lbox__nav { position: absolute; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); cursor: pointer; }
.dv-lbox__close:hover, .dv-lbox__nav:hover { background: rgba(255, 255, 255, .24); }
.dv-lbox__close { top: 16px; right: 16px; }
.dv-lbox__nav { top: 50%; transform: translateY(-50%); }
.dv-lbox__nav .dv-icon path { stroke: #fff; }
.dv-lbox__nav.is-prev { left: 16px; }
.dv-lbox__nav.is-next { right: 16px; }
.dv-lbox__count { position: absolute; bottom: 20px; left: 0; right: 0; margin: 0; text-align: center; font-size: 13px; color: rgba(255, 255, 255, .8); pointer-events: none; }

@media (max-width: 1280px) {
	.dv-ld__body { gap: 40px; }
	.dv-ld__side { width: 360px; }
	.dv-ld__terms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
	/* Ảnh căn: slide vuốt tràn ngang, ảnh nằm ngay dưới menu nên ẩn breadcrumb, thay bằng nút quay lại trên ảnh. */
	.dv-ld__crumb { display: none; }
	.dv-galbox { position: relative; margin-inline: calc(-1 * var(--dv-gutter)); }
	.dv-gal, .dv-gal.is-n1 {
		display: flex; gap: 0; height: auto; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain;
	}
	.dv-gal::-webkit-scrollbar { display: none; }
	.dv-gal__thumbs { display: contents; }
	.dv-gal__main, .dv-gal__thumb, .dv-gal__thumb.is-extra {
		display: block; flex: 0 0 100%; width: 100%; height: auto; aspect-ratio: 390 / 300; max-height: 70vh; border-radius: 0; scroll-snap-align: start; scroll-snap-stop: always;
	}
	.dv-gal__main:hover .dv-gal__img, .dv-gal__thumb:hover .dv-gal__img { transform: none; }
	.dv-gal__tag { left: 12px; top: auto; bottom: 12px; padding: 4px 8px; font-size: 10px; }
	.dv-gal__more { display: none; }
	.dv-gal__wm { display: none; }
	.dv-gal__play { width: 40px; height: 40px; }
	.dv-galbox__ui { position: absolute; inset: 0; display: block; pointer-events: none; }
	.dv-galbox__ui > * { pointer-events: auto; }
	.dv-galbox__btn {
		position: absolute; top: 12px; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%;
		background: rgba(255, 255, 255, .95); box-shadow: 0 2px 8px rgba(17, 18, 20, .18); cursor: pointer;
	}
	.dv-galbox__btn.is-back { left: 12px; }
	.dv-galbox__btn.is-back svg { width: 18px; height: 18px; transform: rotate(90deg); }
	.dv-galbox__btn.is-back path { stroke: var(--dv-ink); }
	.dv-galbox__btn.is-share { right: 12px; }
	.dv-galbox__btn.is-share svg { width: 18px; height: 18px; }
	.dv-galbox__btn.is-share path, .dv-galbox__btn.is-share circle { stroke: var(--dv-ink); }
	.dv-galbox__btn.is-done { background: #fdecea; }
	.dv-galbox__dots { position: absolute; left: 50%; bottom: 16px; display: flex; gap: 6px; transform: translateX(-50%); pointer-events: none; }
	.dv-galbox__dots i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255, 255, 255, .55); box-shadow: 0 0 2px rgba(17, 18, 20, .4); transition: background .2s ease; }
	.dv-galbox__dots i.is-on { background: #fff; }
	.dv-galbox__count { position: absolute; right: 12px; bottom: 12px; padding: 4px 10px; border-radius: 6px; background: rgba(17, 18, 20, .65); font-size: 12px; font-weight: 600; line-height: normal; color: #fff; pointer-events: none; }

	.dv-ld__body { flex-direction: column; align-items: stretch; gap: 24px; padding-top: 24px; padding-bottom: 64px; }
	.dv-ld__side { position: static; width: auto; }
	.dv-ld__sec { padding-block: 28px; }
	.dv-ld__hl { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 16px; }
	.dv-ld__head { padding-top: 0; }
	.dv-ld__content > .dv-ld__sec:last-child { padding-bottom: 28px; border-bottom: 1px solid var(--dv-line); }
	.dv-ld__meta { gap: 8px; }
	.dv-ld__badge { white-space: nowrap; }
	.dv-ld__code { flex: 1 1 100%; white-space: normal; }
	.dv-ld__title { font-size: 28px; line-height: 1.3; }
	.dv-ld__price { flex-direction: column; align-items: flex-start; gap: 10px; }
	.dv-ld__price strong { font-size: 26px; }
	.dv-ld__specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dv-ld__specs li > span { white-space: normal; }
	.dv-ld__h { font-size: 22px; }
	.dv-ld__text p, .dv-ld__p { font-size: 16px; }
	.dv-ld__map { height: 260px; }
	.dv-ld__terms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dv-ld__video { flex-direction: column; align-items: stretch; gap: 16px; }
	.dv-ld__vthumb { width: 100%; max-width: 320px; }
	.dv-ld__proj { flex-direction: column; align-items: stretch; gap: 16px; }
	.dv-ld__pimg, .elementor .dv-ld__pimg { width: 100%; height: auto; aspect-ratio: 318 / 218; }
	.dv-ld__plink { align-self: flex-start; }
	.dv-ldside { padding: 20px; }
	.dv-ldside__agent { flex-direction: column; align-items: flex-start; }
	.dv-ldside__img, .elementor .dv-ldside__img { width: 64px; height: 64px; }
	.dv-ld__similar { padding-block: 56px; }
	.dv-ld__similar .dv-shead { margin-bottom: 20px; }
	.dv-lbox { padding: 56px 12px; }
	.dv-lbox__nav { top: auto; bottom: 12px; transform: none; }
}
.dv-gal__play .dv-icon, .dv-ld__vplay .dv-icon { width: 20px; height: 20px; margin-left: 2px; }
.dv-ld__similar .dv-shead__title { font-size: 36px; }
@media (max-width: 1023px) { .dv-ld__similar .dv-shead__title { font-size: 26px; } }

/* ===================== Trang Dự án (Figma 73:566 / 103:2437) ===================== */
.dv-parch-head { padding-top: 56px; padding-bottom: 48px; }
.dv-parch-head .dv-wrap { display: flex; flex-direction: column; gap: 14px; }
.dv-parch-head .dv-lhead__desc { max-width: 720px; font-size: 16px; line-height: 1.6; }
.dv-parch { padding-top: 72px; padding-bottom: 110px; }
.dv-parch .dv-wrap { display: flex; flex-direction: column; gap: 72px; }
.dv-parch__head { display: flex; align-items: center; gap: 14px; margin-bottom: 28px; padding-bottom: 16px; border-bottom: 1px solid var(--dv-line); line-height: normal; }
.dv-parch__head h2 { margin: 0; font-size: 32px; font-weight: 600; color: var(--dv-ink); }
.dv-parch__head span { font-size: 14px; color: var(--dv-muted); }
.dv-parch__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dv-parch .dv-pcard__title { overflow: hidden; font-size: 20px; text-overflow: ellipsis; white-space: nowrap; }
.dv-parch .dv-pcard__desc { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; color: var(--dv-muted); opacity: 1; }
@media (max-width: 1280px) { .dv-parch__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1023px) {
	.dv-parch-head { padding-top: 32px; padding-bottom: 28px; }
	.dv-parch-head .dv-lhead__desc { font-size: 14px; }
	.dv-parch { padding-top: 40px; padding-bottom: 64px; }
	.dv-parch .dv-wrap { gap: 48px; }
	.dv-parch__head { margin-bottom: 20px; padding-bottom: 12px; }
	.dv-parch__head h2 { font-size: 26px; }
	.dv-parch__grid .dv-pcard { width: 282px; }
}

/* ===================== Chi tiết dự án (Figma 58:566 / 104:1852) ===================== */
.dv-pbtn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 24px; border: 1px solid transparent; border-radius: 999px; font-size: 14px; font-weight: 600; line-height: normal; white-space: nowrap; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.dv-pbtn.is-red { background: var(--dv-red); color: #fff; }
.dv-pbtn.is-red:hover { background: #b52b22; }
.dv-pbtn.is-ghost { border-color: rgba(255, 255, 255, .5); color: #fff; }
.dv-pbtn.is-ghost:hover { border-color: #fff; background: rgba(255, 255, 255, .08); }
.dv-pbtn.is-line { border-color: var(--dv-ink); color: var(--dv-ink); }
.dv-pbtn.is-line:hover { background: var(--dv-ink); color: #fff; }
.dv-pbtn.is-line:hover .dv-icon path { stroke: #fff; }
.dv-pbtn.is-block { display: flex; width: 100%; white-space: normal; text-align: center; }
.dv-pbtn .dv-icon { flex: none; }

.dv-phd { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.dv-phd__t { display: flex; flex-direction: column; gap: 12px; min-width: 0; max-width: 720px; }
.dv-phd__title { margin: 0; font-size: 42px; font-weight: 600; line-height: 1.2; color: var(--dv-ink); }
.dv-phd__desc { margin: 0; max-width: 620px; font-size: 15px; line-height: 1.6; color: var(--dv-muted); }
.dv-phd.is-light .dv-phd__title { color: #fff; }
.dv-phd.is-light .dv-phd__desc { color: rgba(255, 255, 255, .7); }
.dv-phd__link { display: flex; align-items: center; gap: 8px; flex: none; padding-bottom: 6px; font-size: 14px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-phd__link:hover { color: var(--dv-red); }
.dv-eyebrow--ink::before, .dv-eyebrow--light::before { background: var(--dv-red); }

/* Hero */
.dv-phero { position: relative; display: flex; align-items: flex-end; min-height: 620px; overflow: hidden; background: var(--dv-ink); }
.elementor .dv-phero__bg, .dv-phero__bg { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.dv-phero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 10, 13, .25), rgba(10, 10, 13, .88)); }
.dv-phero__in { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; width: 100%; max-width: calc(var(--dv-container) + 2 * var(--dv-gutter)); margin: 0 auto; padding: 120px var(--dv-gutter) 48px; }
.dv-phero .dv-crumb, .dv-phero .dv-crumb a, .dv-phero .dv-crumb [aria-current] { color: rgba(255, 255, 255, .7); }
.dv-phero .dv-crumb a:hover { color: #fff; }
.dv-phero__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.dv-phero__tags span { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, .14); font-size: 12px; font-weight: 500; line-height: normal; color: #fff; }
.dv-phero__tags .is-red { background: var(--dv-red); }
.dv-phero__title { margin: 0; font-size: 64px; font-weight: 600; line-height: 1.1; color: #fff; }
.dv-phero__desc { margin: 0; max-width: 720px; font-size: 17px; line-height: 1.6; color: rgba(255, 255, 255, .85); }
.dv-phero__ctas { display: flex; flex-wrap: wrap; gap: 12px; }

.dv-pfacts { border-bottom: 1px solid var(--dv-line); background: #fff; }
.dv-pfacts__in { display: flex; max-width: calc(var(--dv-container) + 2 * var(--dv-gutter)); margin: 0 auto; padding-inline: var(--dv-gutter); }
.dv-pfacts__i { display: flex; flex: 1 1 0; flex-direction: column; gap: 4px; min-width: 0; padding: 28px 24px; border-left: 1px solid var(--dv-line); line-height: normal; }
.dv-pfacts__i:first-child { padding-left: 0; border-left: 0; }
.dv-pfacts__i strong { font-size: 24px; font-weight: 600; color: var(--dv-ink); white-space: nowrap; }
.dv-pfacts__i span { font-size: 13px; color: var(--dv-muted); }

.dv-psub { position: sticky; top: var(--dv-sticky-top); z-index: 50; border-bottom: 1px solid var(--dv-line); background: #fff; }
.dv-psub__in { display: flex; align-items: center; gap: 32px; max-width: calc(var(--dv-container) + 2 * var(--dv-gutter)); margin: 0 auto; padding-inline: var(--dv-gutter); }
.dv-psub__tabs { display: flex; flex: 1 1 auto; gap: 32px; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.dv-psub__tabs::-webkit-scrollbar { display: none; }
.dv-psub__tabs a { display: flex; align-items: center; flex: none; height: 56px; border-bottom: 2px solid transparent; font-size: 14px; font-weight: 500; line-height: normal; color: var(--dv-muted); white-space: nowrap; }
.dv-psub__tabs a:hover { color: var(--dv-ink); }
.dv-psub__tabs a.is-active { border-bottom-color: var(--dv-red); font-weight: 600; color: var(--dv-ink); }
.dv-psub__book { flex: none; padding: 8px 24px; border: 1px solid var(--dv-ink); border-radius: 999px; font-size: 14px; font-weight: 600; line-height: normal; color: var(--dv-ink); white-space: nowrap; }
.dv-psub__book:hover { background: var(--dv-ink); color: #fff; }

/* Tổng quan */
.dv-pov, .dv-ploc, .dv-pplan, .dv-pam, .dv-ppol, .dv-pvid, .dv-pcon, .dv-pposts { padding-block: 96px; }
.dv-pov__in { display: flex; align-items: flex-start; gap: 80px; }
.dv-pov__intro { display: flex; flex: 1 1 0; flex-direction: column; gap: 18px; min-width: 0; max-width: 650px; }
.dv-pov__intro .dv-phd { margin-bottom: 0; }
.dv-pov__intro .dv-phd__title { max-width: 600px; }
.dv-pov__p { margin: 0; max-width: 600px; font-size: 16px; line-height: 1.7; color: #3a3b3f; }
.dv-pov__quote { display: flex; align-items: center; gap: 16px; margin: 0; padding: 20px 24px; border-radius: 12px; background: var(--dv-bg); }
.elementor .dv-pov__avatar, .dv-pov__avatar { flex: none; width: 48px; height: 48px; max-width: none; border-radius: 50%; object-fit: cover; }
.dv-pov__quote blockquote { margin: 0 0 2px; font-size: 14px; line-height: 1.6; color: var(--dv-ink); }
.dv-pov__quote figcaption { font-size: 13px; font-weight: 600; line-height: normal; color: var(--dv-muted); }
.dv-pov__info { flex: none; width: 470px; padding: 32px; border-radius: 16px; background: var(--dv-bg); }
.dv-pov__info h3 { margin: 0; font-size: 24px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-pov__info dl { margin: 0; padding: 16px 0 24px; }
.dv-pov__info dl > div { display: flex; align-items: flex-start; gap: 16px; padding-block: 13px; border-bottom: 1px solid var(--dv-line); }
.dv-pov__info dl > div:last-child { border-bottom: 0; }
.dv-pov__info dt { flex: none; width: 110px; font-size: 13px; line-height: normal; color: var(--dv-muted); }
.dv-pov__info dd { flex: 1 1 0; min-width: 0; margin: 0; font-size: 14px; font-weight: 600; line-height: 1.5; color: var(--dv-ink); }
.dv-pov__src { margin: 12px 0 0; font-size: 12px; line-height: 1.5; color: var(--dv-muted); }

/* Vị trí */
.dv-ploc__in { display: flex; align-items: center; gap: 64px; }
.dv-ploc__map { position: relative; flex: none; width: 700px; height: 460px; overflow: hidden; border-radius: 16px; background: #e4e2dd; }
.dv-ploc__map iframe { display: block; width: 100%; height: 100%; border: 0; filter: grayscale(.35) contrast(.95); }
.dv-ploc__pin { position: absolute; left: 50%; top: 50%; display: flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: var(--dv-ink); font-size: 13px; font-weight: 600; line-height: normal; color: #fff; white-space: nowrap; transform: translate(-50%, -150%); pointer-events: none; }
.dv-ploc__t { display: flex; flex: 1 1 0; flex-direction: column; align-items: flex-start; gap: 18px; min-width: 0; }
.dv-ploc__t .dv-phd__title { font-size: 36px; }
.dv-ploc__list { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 8px 0; list-style: none; }
.dv-ploc__list li { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 1.5; color: var(--dv-ink); }
.dv-ploc__list .dv-icon { flex: none; width: 20px; height: 20px; }

/* Mặt bằng */
.dv-pplan .dv-wrap { display: flex; flex-direction: column; gap: 40px; }
.dv-pplan__tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.dv-pplan__tabs .dv-chip { padding: 9px 18px; font-family: var(--dv-font-body); cursor: pointer; }
.dv-pplan__row { display: flex; align-items: flex-start; gap: 40px; }
.dv-pplan__viewer { flex: none; width: 744px; max-width: 62%; }
.dv-pplan__fig { display: flex; flex-direction: column; gap: 14px; margin: 0; }
.dv-pplan__fig[hidden] { display: none; }
.dv-pplan__img { position: relative; display: block; overflow: hidden; aspect-ratio: 744 / 500; border-radius: 16px; background: var(--dv-bg); }
.elementor .dv-pplan__pic, .dv-pplan__pic { display: block; width: 100%; height: 100%; max-width: none; object-fit: contain; }
.dv-pplan__zoom { position: absolute; left: 24px; top: 24px; display: flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; background: var(--dv-ink); font-size: 12px; font-weight: 600; line-height: normal; color: #fff; }
.dv-pplan__fig figcaption { display: flex; justify-content: space-between; gap: 16px; font-size: 13px; line-height: normal; color: var(--dv-muted); }
.dv-pplan__fig figcaption strong { flex: none; color: var(--dv-ink); }
.dv-pplan__types { flex: 1 1 0; min-width: 0; padding: 28px; border: 1px solid var(--dv-line); border-radius: 16px; }
.dv-pplan__types h3 { margin: 0; font-size: 22px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-pplan__types ul { margin: 0; padding: 12px 0 8px; list-style: none; }
.dv-pplan__types li { display: flex; align-items: center; gap: 12px; padding-block: 15px; border-bottom: 1px solid var(--dv-line); }
.dv-pplan__types li:last-child { border-bottom: 0; }
.dv-pplan__types li > span { display: flex; flex: 1 1 0; flex-direction: column; gap: 3px; min-width: 0; line-height: normal; }
.dv-pplan__types strong { font-size: 15px; font-weight: 600; color: var(--dv-ink); }
.dv-pplan__types em { font-size: 13px; font-style: normal; color: var(--dv-muted); }
.dv-pplan__types a { display: flex; align-items: center; gap: 4px; flex: none; font-size: 13px; font-weight: 500; line-height: normal; color: var(--dv-ink); }
.dv-pplan__types a:hover { color: var(--dv-red); }
.dv-pplan__types > p { margin: 0; font-size: 12px; line-height: 1.5; color: var(--dv-muted); }

/* Tiện ích */
.dv-pam__in { display: flex; align-items: center; gap: 72px; }
.dv-pam__media { flex: none; width: 540px; height: 600px; overflow: hidden; border-radius: 16px; }
.elementor .dv-pam__img, .dv-pam__img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.dv-pam__t { display: flex; flex: 1 1 0; flex-direction: column; align-items: flex-start; gap: 28px; min-width: 0; }
.dv-pam__t .dv-phd__title { font-size: 38px; }
.dv-pam__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; width: 100%; margin: 0; padding: 0; list-style: none; }
.dv-pam__grid li { display: flex; flex-direction: column; gap: 4px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .14); line-height: normal; }
.dv-pam__grid strong { font-size: 16px; font-weight: 600; color: #fff; }
.dv-pam__grid span { font-size: 13px; color: rgba(255, 255, 255, .6); }

/* Chính sách */
.dv-ppol__in { display: flex; flex-direction: column; gap: 32px; }
.dv-ppol__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.dv-ppol__cards li { display: flex; flex-direction: column; gap: 12px; padding: 28px; border: 1px solid var(--dv-line); border-radius: 14px; background: #fff; }
.dv-ppol__cards li > span { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 10px; background: rgba(224, 60, 49, .08); }
.dv-ppol__cards li > span svg { display: block; width: 20px; height: 20px; }
.dv-ppol__cards strong { font-size: 18px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-ppol__cards p { margin: 0; font-size: 14px; line-height: 22px; color: var(--dv-muted); }
.dv-ppol__prog { display: flex; flex-direction: column; gap: 20px; padding: 28px; border: 1px solid var(--dv-line); border-radius: 14px; background: #fff; }
.dv-ppol__ph { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; line-height: normal; }
.dv-ppol__ph strong { font-size: 18px; font-weight: 600; color: var(--dv-ink); }
.dv-ppol__ph span { font-size: 13px; color: var(--dv-muted); }
.dv-ppol__steps { display: grid; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.dv-ppol__steps li { display: flex; flex-direction: column; gap: 10px; line-height: normal; }
.dv-ppol__steps i { display: block; height: 4px; border-radius: 2px; background: var(--dv-line); }
.dv-ppol__steps .is-done i { background: var(--dv-red); }
.dv-ppol__steps .is-doing i { background: rgba(224, 60, 49, .45); }
.dv-ppol__steps strong { font-size: 15px; font-weight: 600; color: var(--dv-ink); }
.dv-ppol__steps span { font-size: 13px; color: var(--dv-muted); }
.dv-ppol__steps .is-done span, .dv-ppol__steps .is-doing span { color: var(--dv-red); }
.dv-ploc__map.has-img .dv-ploc__img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.dv-ppol__ph span a { display: inline-flex; align-items: center; gap: 6px; margin-left: 4px; font-weight: 600; color: var(--dv-ink); }
.dv-ppol__ph span a:hover { color: var(--dv-red); }
.dv-ppol__ph span a .dv-icon { transition: transform .2s ease; }
.dv-ppol__ph span a:hover .dv-icon { transform: translateX(3px); }
.dv-ppol__steps.has-img { gap: 16px; }
.elementor .dv-ppol__simg, .dv-ppol__simg { display: block; width: 100%; height: auto; max-width: none; aspect-ratio: 280 / 158; border-radius: 10px; object-fit: cover; }
.dv-ppol__steps .dv-ppol__simg.is-empty { display: flex; align-items: center; justify-content: center; background: #f1efec; font-size: 13px; font-weight: 500; color: #5f5f64; }
.dv-pam__video { position: relative; display: block; width: 100%; height: 100%; }
.dv-pam__play { position: absolute; left: 50%; top: 50%; display: flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; background: rgba(255, 255, 255, .92); transform: translate(-50%, -50%); transition: transform .2s ease; }
.dv-pam__video:hover .dv-pam__play { transform: translate(-50%, -50%) scale(1.06); }
.dv-pam__media iframe { display: block; width: 100%; height: 100%; border: 0; }
.dv-ppol__cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 32px 40px; border-radius: 14px; background: #1c1d21; }
.dv-ppol__ct { margin: 0 0 6px; font: 600 24px/normal var(--dv-font-heading); color: #fff; }
.dv-ppol__cd { margin: 0; font-size: 14px; line-height: normal; color: rgba(255, 255, 255, .7); }

/* Video */
.dv-pvid .dv-wrap { display: flex; flex-direction: column; gap: 40px; }
.dv-pvid__row { display: flex; align-items: stretch; gap: 24px; }
.dv-pvid__list { display: flex; flex: none; gap: 24px; }
.dv-pvid__list .dv-vcard { width: 228px; height: 405px; }
.dv-pvid__box { display: flex; flex: 1 1 0; flex-direction: column; justify-content: center; gap: 16px; min-width: 0; padding: 40px; border-radius: 16px; background: var(--dv-bg); }
.dv-pvid__box h3 { margin: 0; font-size: 30px; font-weight: 600; line-height: 1.2; color: var(--dv-ink); }
.dv-pvid__box > p:not(.dv-eyebrow) { margin: 0; max-width: 560px; font-size: 15px; line-height: 1.65; color: #3a3b3f; }
.dv-pvid__btns { display: flex; flex-wrap: wrap; gap: 12px; }

/* Tư vấn */
.dv-pcon { background: #0a0b0c; }
.dv-pcon__in { display: flex; align-items: center; gap: 80px; }
.dv-pcon__t { display: flex; flex: 1 1 0; flex-direction: column; gap: 20px; min-width: 0; }
.dv-pcon__t .dv-phd__title { max-width: 520px; font-size: 38px; }
.dv-pcon__t .dv-phd__desc { max-width: 520px; }
.dv-pcon__agent { display: flex; align-items: center; gap: 14px; padding-top: 8px; line-height: normal; }
.elementor .dv-pcon__avatar, .dv-pcon__avatar { flex: none; width: 56px; height: 56px; max-width: none; border-radius: 50%; object-fit: cover; }
.dv-pcon__agent div { display: flex; flex-direction: column; gap: 2px; }
.dv-pcon__agent strong { font-size: 16px; font-weight: 600; color: #fff; }
.dv-pcon__agent span { font-size: 14px; color: rgba(255, 255, 255, .7); }
.dv-cform.dv-pcon__form { flex: none; width: 520px; padding: 36px; border: 0; border-radius: 16px; box-shadow: none; }
.dv-pcon__form .dv-cform__title { margin-bottom: 16px; font-family: var(--dv-font-heading); font-size: 26px; font-weight: 500; }
.dv-pcon__form .fluentform .ff-el-group { margin-bottom: 14px; }
.dv-pcon__form .fluentform .ff-el-input--label { margin-bottom: 6px; }
.dv-pcon__form .fluentform textarea.ff-el-form-control { height: 88px; }
.dv-pcon__note { margin: 16px 0 0; font-size: 12px; line-height: 1.5; color: var(--dv-muted); }
.dv-pcon__form .fluentform .ff-btn-submit::before { display: none; }

/* Tin tức */
.dv-pposts .dv-wrap { display: flex; flex-direction: column; gap: 40px; }

@media (max-width: 1280px) {
	.dv-pov__info { width: 400px; }
	.dv-ploc__map { width: 560px; }
	.dv-pam__media { width: 440px; }
	.dv-pcon__form.dv-cform { width: 460px; }
}
@media (max-width: 1023px) {
	.dv-phd { flex-direction: column; align-items: flex-start; gap: 16px; }
	.dv-phd__title, .dv-ploc__t .dv-phd__title, .dv-pam__t .dv-phd__title, .dv-pcon__t .dv-phd__title { font-size: 28px; }
	.dv-phd__desc { font-size: 14px; }
	.dv-phd__link { padding-bottom: 0; }
	.dv-phero { min-height: 560px; }
	.dv-phero__in { gap: 14px; padding: 96px var(--dv-gutter) 32px; }
	.dv-phero__title { font-size: 38px; line-height: 1.15; }
	.dv-phero__desc { font-size: 15px; }
	.dv-phero__ctas { flex-direction: column; align-self: stretch; }
	.dv-phero__ctas .dv-pbtn { width: 100%; }
	.dv-pfacts__in { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dv-pfacts__i { padding: 18px 16px; border-left: 0; border-top: 1px solid var(--dv-line); }
	.dv-pfacts__i:nth-child(even) { border-left: 1px solid var(--dv-line); }
	.dv-pfacts__i:nth-child(-n+2) { border-top: 0; }
	.dv-pfacts__i:first-child { padding-left: 16px; }
	.dv-pfacts__i:nth-child(odd) { padding-left: 0; }
	.dv-pfacts__i:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.dv-pfacts__i strong { font-size: 20px; }
	.dv-psub__in { padding-right: 0; }
	.dv-psub__tabs { gap: 24px; padding-right: var(--dv-gutter); }
	.dv-psub__book { display: none; }
	.dv-pov, .dv-ploc, .dv-pplan, .dv-pam, .dv-ppol, .dv-pvid, .dv-pcon, .dv-pposts { padding-block: 56px; }
	.dv-pov__in, .dv-ploc__in, .dv-pplan__row, .dv-pam__in, .dv-pcon__in { flex-direction: column; align-items: stretch; gap: 32px; }
	.dv-pov__p { font-size: 15px; }
	.dv-pov__quote { align-items: flex-start; padding: 16px; }
	.dv-pov__info { width: auto; padding: 24px 20px; }
	.dv-pov__info dt { width: 96px; }
	.dv-ploc__map { width: auto; height: 300px; }
	.dv-pplan .dv-wrap, .dv-pvid .dv-wrap, .dv-pposts .dv-wrap { gap: 24px; }
	.dv-pplan__tabs { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--dv-gutter)); padding-inline: var(--dv-gutter); scrollbar-width: none; }
	.dv-pplan__tabs::-webkit-scrollbar { display: none; }
	.dv-pplan__tabs .dv-chip { flex: none; }
	.dv-pplan__viewer { width: auto; max-width: none; }
	.dv-pplan__zoom { left: 12px; top: 12px; }
	.dv-pplan__fig figcaption { font-size: 12px; }
	.dv-pplan__types { padding: 20px; }
	.dv-pam__media { width: auto; height: auto; aspect-ratio: 350 / 390; }
	.dv-pam__grid { grid-template-columns: 1fr; gap: 0; }
	.dv-pam__grid li { padding-block: 14px; }
	.dv-pam__t .dv-pbtn { align-self: stretch; }
	.dv-ppol__in { gap: 24px; }
	.dv-ppol__cards { grid-template-columns: 1fr; gap: 12px; }
	.dv-ppol__cards li { padding: 22px; }
	.dv-ppol__prog { padding: 22px; }
	.dv-ppol__steps { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; }
	.dv-ppol__steps.has-img { grid-template-columns: 1fr; gap: 14px; }
	.dv-ppol__steps.has-img li { display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; column-gap: 12px; row-gap: 6px; }
	.dv-ppol__steps.has-img .dv-ppol__simg { grid-row: 1 / 4; width: 64px; height: 48px; aspect-ratio: auto; border-radius: 8px; }
	.dv-ppol__steps.has-img .dv-ppol__simg.is-empty { font-size: 0; }
	.dv-ppol__cta { flex-direction: column; align-items: stretch; padding: 24px; }
	.dv-ppol__ct { font-size: 20px; }
	.dv-pvid__row { flex-direction: column; }
	.dv-pvid__list { margin-inline: calc(-1 * var(--dv-gutter)); padding-inline: var(--dv-gutter); overflow-x: auto; gap: 12px; scrollbar-width: none; }
	.dv-pvid__list::-webkit-scrollbar { display: none; }
	.dv-pvid__list .dv-vcard { flex: none; width: 200px; height: 356px; }
	.dv-pvid__box { padding: 24px; }
	.dv-pvid__box h3 { font-size: 24px; }
	.dv-pvid__btns { flex-direction: column; }
	.dv-cform.dv-pcon__form { width: auto; padding: 24px; }
}

/* ===================== Trang khu vực (Figma 98:566 / 108:4017) ===================== */
.dv-ahero { position: relative; display: flex; align-items: flex-end; min-height: 560px; padding: 120px var(--dv-gutter) 72px; overflow: hidden; color: #fff; background: var(--dv-ink); }
.dv-ahero__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.dv-ahero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 10, 13, .2) 0%, rgba(10, 10, 13, .88) 100%); }
.dv-ahero__in { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; width: 100%; }
.dv-ahero .dv-crumb, .dv-ahero .dv-crumb a, .dv-ahero .dv-crumb [aria-current] { color: rgba(255, 255, 255, .7); }
.dv-ahero .dv-crumb a:hover { color: #fff; }
.dv-ahero__title { margin: 0; font-size: 64px; font-weight: 600; line-height: 1.1; color: #fff; }
.dv-ahero__desc { max-width: 680px; margin: 0; font-size: 17px; line-height: 1.65; color: rgba(255, 255, 255, .85); }
.dv-ahero__stats { display: flex; gap: 40px; padding-top: 8px; line-height: normal; }
.dv-ahero__stats div { display: flex; flex-direction: column; gap: 2px; }
.dv-ahero__stats strong { font-size: 30px; font-weight: 600; color: #fff; }
.dv-ahero__stats span { font-size: 13px; color: rgba(255, 255, 255, .65); }

.dv-atabs { padding: 20px var(--dv-gutter); background: #fff; border-bottom: 1px solid var(--dv-line); }
.dv-atabs__in { display: flex; gap: 8px; }
.dv-atabs .dv-chip.is-active { border-color: var(--dv-ink); }

.dv-asec { padding: 96px var(--dv-gutter); background: #fff; }
.dv-asec--beige { background: var(--dv-bg); }
.dv-asec--dark { background: var(--dv-ink); color: #fff; }
.dv-asec .dv-phd { margin-bottom: 32px; }
.dv-asec .dv-phd__t { max-width: 760px; }
.dv-asec .dv-phd__title { font-size: 40px; }
.dv-asec--dark .dv-phd__link { color: #fff; }
.dv-agrid4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dv-asec .dv-areas__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.dv-asec .dv-acard { height: 340px; }

.dv-aview__in { display: flex; align-items: center; gap: 80px; }
.dv-aview__t { display: flex; flex: 1 1 0; flex-direction: column; align-items: flex-start; gap: 18px; min-width: 0; }
.dv-aview__title { max-width: 600px; margin: 0; font-size: 40px; font-weight: 600; line-height: 1.2; color: var(--dv-ink); }
.dv-aview__text { max-width: 600px; margin: 0; font-size: 16px; line-height: 1.75; color: #3a3b3f; }
.dv-aview__box { flex: none; width: 480px; padding: 28px 32px; border-radius: 16px; background: var(--dv-bg); line-height: normal; }
.dv-aview__box h3 { margin: 0; font-family: var(--dv-font-body); font-size: 17px; font-weight: 600; color: var(--dv-ink); }
.dv-aview__box ol { margin: 0; padding: 0; list-style: none; }
.dv-aview__box li { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-top: 1px solid var(--dv-line); font-size: 15px; font-weight: 500; color: var(--dv-ink); }
.dv-aview__box li:first-child { padding-top: 20px; border-top: 0; }
.dv-aview__box li span { flex: none; min-width: 24px; font-family: var(--dv-font-body); font-size: 15px; font-weight: 600; color: var(--dv-red); }

.dv-avid__in { display: flex; align-items: center; gap: 64px; }
.dv-avid__t { display: flex; flex: 1 1 0; flex-direction: column; align-items: flex-start; gap: 18px; min-width: 0; }
.dv-avid .dv-aview__title { max-width: 420px; color: #fff; }
.dv-avid__text { max-width: 420px; margin: 0; font-size: 15px; line-height: 1.7; color: rgba(255, 255, 255, .7); }
.dv-avid .dv-phd__link { padding: 0; color: #fff; }
.dv-avid__list { display: flex; flex: none; gap: 20px; }
.dv-avid__list .dv-vcard { width: 220px; height: 391px; }

@media (max-width: 1280px) {
	.dv-agrid4, .dv-asec .dv-areas__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dv-aview__box { width: 420px; }
	.dv-avid__in { flex-direction: column; align-items: flex-start; gap: 40px; }
}
@media (max-width: 1023px) {
	.dv-ahero { min-height: 540px; padding: 96px 20px 40px; }
	.dv-ahero__title { font-size: 40px; }
	.dv-ahero__desc { font-size: 15px; }
	.dv-ahero__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; width: 100%; }
	.dv-ahero__stats strong { font-size: 26px; }
	.dv-atabs { padding: 20px; }
	.dv-atabs__in { overflow-x: auto; margin-inline: -20px; padding-inline: 20px; scrollbar-width: none; }
	.dv-atabs__in::-webkit-scrollbar { display: none; }
	.dv-atabs .dv-chip { flex: none; }
	.dv-asec { padding: 56px 20px; }
	.dv-asec .dv-phd { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 24px; }
	.dv-asec .dv-phd__title, .dv-aview__title { font-size: 28px; }
	.dv-aview__in { flex-direction: column; align-items: stretch; gap: 32px; }
	.dv-aview__text { font-size: 15px; }
	.dv-aview__box { width: auto; padding: 24px; }
	.dv-avid__list { width: calc(100% + 40px); margin-inline: -20px; padding-inline: 20px; overflow-x: auto; scrollbar-width: none; gap: 12px; }
	.dv-avid__list::-webkit-scrollbar { display: none; }
	.dv-avid__list .dv-vcard { flex: none; height: 390px; }
	.dv-asec .dv-acard { width: 240px; height: 320px; }
}

/* ===================== Trang Video (Figma 73:972 / 104:3601) ===================== */
.dv-pbtn.is-dark { background: var(--dv-ink); color: #fff; }
.dv-pbtn.is-dark:hover { background: #2a2b30; }
.dv-pbtn .dv-icon { flex: none; }
.dv-pbtn.is-line .dv-icon path { fill: currentColor; }

.dv-vhead { padding: 56px var(--dv-gutter) 48px; background: var(--dv-bg); }
.dv-vhead .dv-wrap { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.dv-vhead__title { margin: 0; font-size: 52px; font-weight: 600; line-height: 1.15; color: var(--dv-ink); }
.dv-vhead__desc { max-width: 720px; margin: 0; font-size: 16px; line-height: 1.65; color: var(--dv-muted); }
.dv-vhead__channel { display: flex; align-items: center; gap: 16px; padding-top: 8px; line-height: normal; }
.elementor .dv-vhead__avatar, .dv-vhead__avatar { flex: none; width: 48px; height: 48px; max-width: none; border-radius: 50%; object-fit: cover; }
.dv-vhead__channel div { display: flex; flex-direction: column; gap: 2px; }
.dv-vhead__channel strong { font-size: 15px; font-weight: 600; color: var(--dv-ink); }
.dv-vhead__channel span { font-size: 13px; color: var(--dv-muted); }

.dv-vfeat { padding: 72px var(--dv-gutter); background: #fff; }
.dv-vfeat__in { display: flex; align-items: center; gap: 64px; }
.dv-vfeat__card { flex: none; width: 340px; }
.dv-vfeat__card .dv-vcard { height: 604px; }
.dv-vfeat__t { display: flex; flex: 1 1 0; flex-direction: column; align-items: flex-start; gap: 18px; min-width: 0; }
.dv-vfeat__title { max-width: 640px; margin: 0; font-size: 42px; font-weight: 600; line-height: 1.2; color: var(--dv-ink); }
.dv-vfeat__desc { max-width: 640px; margin: 0; font-size: 16px; line-height: 1.75; color: #3a3b3f; }
.dv-vfeat__stats { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; font-size: 14px; line-height: normal; color: var(--dv-muted); }
.dv-vfeat__stats span { display: inline-flex; align-items: center; gap: 6px; }
.dv-vfeat__stats .dv-icon, .dv-vfeat__stats svg { width: 16px; height: 16px; }
.dv-vfeat__stats path { stroke: var(--dv-muted); }
.dv-vfeat__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.dv-vfeat__tags .dv-chip { cursor: default; }
.dv-vfeat__btns { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 8px; }

.dv-vall { padding: 72px var(--dv-gutter) 110px; background: var(--dv-bg); }
.dv-vall__head { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.dv-vall__title { margin: 0; font-size: 32px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-vall__search { display: flex; align-items: center; gap: 8px; width: 300px; padding: 10px 16px; border: 1px solid var(--dv-line); border-radius: 999px; background: #fff; }
.dv-vall__search svg { flex: none; width: 16px; height: 16px; }
.dv-vall__search path { stroke: #a3a3a8; }
.dv-vall__search input { flex: 1 1 auto; min-width: 0; padding: 0; border: 0; outline: 0; background: none; font: inherit; font-size: 13px; color: var(--dv-ink); }
.dv-vall__search input::placeholder { color: #a3a3a8; }
.dv-vall__search:focus-within { border-color: var(--dv-ink); }
.dv-vall__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
.dv-vall__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 32px 15px; }
.dv-vall__item { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.dv-vall__item[hidden] { display: none; }
.dv-vall__item .dv-vcard { height: 405px; }
.dv-vall__proj { font-size: 11px; font-weight: 600; letter-spacing: .88px; line-height: normal; color: var(--dv-red); text-transform: uppercase; }
.dv-vall__grid .dv-empty { grid-column: 1 / -1; }
.dv-vall__more { display: flex; justify-content: center; padding-top: 40px; }

@media (max-width: 1280px) {
	.dv-vall__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
	.dv-vhead { padding: 32px 20px; }
	.dv-vhead__title { font-size: 34px; }
	.dv-vhead__desc { font-size: 15px; }
	.dv-vhead__channel { flex-wrap: wrap; row-gap: 16px; }
	.dv-vhead__channel .dv-pbtn { width: 100%; }
	.dv-vfeat { padding: 40px 20px; }
	.dv-vfeat__in { flex-direction: column; align-items: stretch; gap: 28px; }
	.dv-vfeat__card { width: 100%; max-width: 340px; }
	.dv-vfeat__card .dv-vcard { width: 100%; height: auto; aspect-ratio: 9 / 16; }
	.dv-vfeat__title { font-size: 28px; }
	.dv-vfeat__desc { font-size: 15px; }
	.dv-vfeat__btns .dv-pbtn { flex: 1 1 100%; }
	.dv-vall { padding: 48px 20px 64px; }
	.dv-vall__head { flex-direction: column; align-items: stretch; gap: 16px; margin-bottom: 20px; }
	.dv-vall__title { font-size: 26px; }
	.dv-vall__search { width: auto; }
	.dv-vall__chips { flex-wrap: nowrap; overflow-x: auto; margin: 0 -20px 24px; padding: 0 20px; scrollbar-width: none; }
	.dv-vall__chips::-webkit-scrollbar { display: none; }
	.dv-vall__chips .dv-chip { flex: none; }
	.dv-vall__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 15px; }
	.dv-vall__item .dv-vcard { width: auto; height: auto; aspect-ratio: 9 / 16; }
	.dv-vall__more .dv-pbtn { width: 100%; }
}
.dv-vfeat__card .dv-vcard__title { display: none; }
.dv-vcard .dv-noimg { position: absolute; inset: 0; background: #1b1c20; }

/* ===================== Tin tức (Figma 75:566 / 108:1261) ===================== */
.dv-bhead { padding: 56px var(--dv-gutter) 40px; background: var(--dv-bg); }
.dv-bhead .dv-wrap { display: flex; flex-direction: column; gap: 14px; }
.dv-bhead__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.dv-bhead__t { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.dv-bhead__title { margin: 0; font-size: 52px; font-weight: 600; line-height: 1.15; color: var(--dv-ink); }
.dv-bhead__desc { max-width: 640px; margin: 0; font-size: 16px; line-height: 1.65; color: var(--dv-muted); }
.dv-bhead__search { display: flex; flex: none; align-items: center; gap: 8px; width: 320px; padding: 12px 18px; border: 1px solid var(--dv-line); border-radius: 999px; background: #fff; }
.dv-bhead__search:focus-within { border-color: var(--dv-ink); }
.dv-bhead__search svg { flex: none; width: 16px; height: 16px; }
.dv-bhead__search path { stroke: #a3a3a8; }
.dv-bhead__search input[type="search"] { flex: 1 1 auto; min-width: 0; padding: 0; border: 0; outline: 0; background: none; font: inherit; font-size: 14px; line-height: 20px; color: var(--dv-ink); }
.dv-bhead__search input::placeholder { color: #a3a3a8; }
.dv-bhead__cats { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 12px; }

.dv-bfeat { padding: 56px var(--dv-gutter) 24px; background: #fff; }
.dv-bfeat__in { display: flex; align-items: flex-start; gap: 32px; }
.dv-bfeat__main { display: flex; flex: 1 1 0; flex-direction: column; gap: 20px; min-width: 0; }
.dv-bfeat__img { display: block; height: 420px; border-radius: 16px; overflow: hidden; }
.dv-bfeat__img img, .dv-bfeat__img .dv-noimg { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.dv-bfeat__main:hover .dv-bfeat__img img { transform: scale(1.03); }
.dv-bfeat__meta { display: flex; align-items: center; gap: 12px; margin: 0; font-size: 13px; line-height: normal; color: var(--dv-muted); }
.dv-bfeat__meta .dv-bcard__tag { font-size: 12px; font-weight: 600; letter-spacing: .72px; }
.dv-bfeat__title { margin: 0; font-size: 34px; font-weight: 600; line-height: 1.25; color: var(--dv-ink); }
.dv-bfeat__title a:hover, .dv-bside h3 a:hover { color: var(--dv-red); }
.dv-bfeat__excerpt { margin: 0; font-size: 15px; line-height: 1.65; color: #3a3b3f; }
.dv-bfeat__side { display: flex; flex: none; flex-direction: column; gap: 24px; width: 448px; }
.dv-bside { display: flex; align-items: center; gap: 16px; padding-bottom: 24px; border-bottom: 1px solid var(--dv-line); }
.dv-bside__img { display: block; flex: none; width: 140px; height: 96px; border-radius: 10px; overflow: hidden; }
.dv-bside__img img, .dv-bside__img .dv-noimg { width: 100%; height: 100%; object-fit: cover; }
.dv-bside__t { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.dv-bside time { font-size: 12px; line-height: normal; color: var(--dv-muted); }
.dv-bside h3 { margin: 0; font-family: var(--dv-font-body); font-size: 15px; font-weight: 600; line-height: 1.45; color: var(--dv-ink); }

.dv-blist { padding: 56px var(--dv-gutter) 110px; background: #fff; }
.dv-blist__title { margin: 0 0 32px; font-size: 36px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-blist__grid { row-gap: 40px; }
.dv-bpager { display: flex; justify-content: center; gap: 8px; padding-top: 32px; }
.dv-bpager .page-numbers { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid var(--dv-line); border-radius: 20px; background: #fff; font-size: 14px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-bpager a.page-numbers:hover { border-color: var(--dv-ink); }
.dv-bpager .current { border-color: var(--dv-ink); background: var(--dv-ink); color: #fff; }

@media (max-width: 1280px) {
	.dv-bfeat__side { width: 380px; }
}
@media (max-width: 1023px) {
	.dv-bhead { padding: 32px 20px 28px; }
	.dv-bhead__row { flex-direction: column; align-items: stretch; gap: 20px; }
	.dv-bhead__title { font-size: 34px; }
	.dv-bhead__desc { font-size: 15px; }
	.dv-bhead__search { width: auto; }
	.dv-bhead__cats { flex-wrap: nowrap; overflow-x: auto; margin-inline: -20px; padding: 6px 20px 0; scrollbar-width: none; }
	.dv-bhead__cats::-webkit-scrollbar { display: none; }
	.dv-bhead__cats .dv-chip { flex: none; }
	.dv-bfeat { padding: 32px 20px 8px; }
	.dv-bfeat__in { flex-direction: column; gap: 32px; }
	.dv-bfeat__main { gap: 14px; }
	.dv-bfeat__img { height: 220px; border-radius: 14px; }
	.dv-bfeat__title { font-size: 24px; }
	.dv-bfeat__excerpt { font-size: 14px; }
	.dv-bfeat__side { width: 100%; gap: 20px; }
	.dv-bside { align-items: flex-start; padding-bottom: 20px; }
	.dv-bside__img { width: 110px; height: 80px; }
	.dv-bside h3 { font-size: 14px; }
	.dv-blist { padding: 40px 20px 64px; }
	.dv-blist__title { margin-bottom: 24px; font-size: 26px; }
	.dv-blist__grid { display: grid; grid-template-columns: 1fr; gap: 32px; overflow: visible; margin-inline: 0; padding-inline: 0; }
	.dv-blist__grid .dv-bcard { width: auto; }
}

/* ===================== Chi tiết bài viết (Figma 75:860 / 109:1322) ===================== */
.dv-ahead { padding: 48px var(--dv-gutter) 40px; background: #fff; }
.dv-ahead .dv-wrap { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.dv-ahead__cat { padding: 5px 12px; border-radius: 6px; background: #fdecea; font-size: 11px; font-weight: 700; letter-spacing: .66px; line-height: normal; color: #b52b22; }
.dv-ahead__title { max-width: 960px; margin: 0; font-size: 52px; font-weight: 600; line-height: 1.15; color: var(--dv-ink); }
.dv-ahead__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0; font-size: 14px; line-height: normal; color: var(--dv-muted); }
.dv-ahead__meta strong { font-weight: 600; color: var(--dv-ink); }
.dv-ahead__meta span { white-space: pre; }
.elementor .dv-ahead__avatar, .dv-ahead__avatar { width: 40px; height: 40px; max-width: none; border-radius: 50%; object-fit: cover; }
.dv-acover { padding-inline: var(--dv-gutter); background: #fff; }
.dv-acover__img { display: block; width: 100%; height: 560px; border-radius: 20px; object-fit: cover; }

.dv-abody { padding: 56px var(--dv-gutter) 96px; background: #fff; }
.dv-abody__in { display: flex; align-items: flex-start; gap: 64px; }
.dv-toc { position: sticky; top: calc(var(--dv-sticky-top) + 24px); flex: none; width: 300px; max-height: calc(100vh - var(--dv-sticky-top) - 48px); overflow-y: auto; padding: 24px; border-radius: 16px; background: var(--dv-bg); }
.dv-toc__h { display: flex; align-items: center; justify-content: space-between; padding-bottom: 16px; }
.dv-toc__h p { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 15px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-toc__h path { stroke: var(--dv-ink); }
.dv-toc__h button { padding: 0; border: 0; background: none; font: inherit; font-size: 13px; font-weight: 500; color: var(--dv-red); cursor: pointer; }
.dv-toc.is-collapsed .dv-toc__list { display: none; }
.dv-toc.is-collapsed .dv-toc__h { padding-bottom: 0; }
.dv-toc__list { margin: 0; padding: 0; list-style: none; }
.dv-toc__item a { display: flex; gap: 10px; padding: 9px 0; border-left: 2px solid transparent; font-size: 13px; line-height: 1.45; color: var(--dv-muted); }
.dv-toc__item a span { flex: none; font-weight: 600; line-height: normal; }
.dv-toc__item.is-h2 a { font-weight: 500; color: var(--dv-ink); }
.dv-toc__item.is-h2 a span { color: var(--dv-muted); }
.dv-toc__item.is-h3 a { padding-left: 20px; }
.dv-toc__item a:hover { color: var(--dv-red); }
.dv-toc__item.is-active a { padding-left: 12px; border-left-color: var(--dv-red); font-weight: 600; color: var(--dv-ink); }
.dv-toc__item.is-active a span { color: var(--dv-red); }
.dv-toc__item.is-h3.is-active a { padding-left: 20px; }

.dv-article { display: flex; flex: 1 1 0; flex-direction: column; gap: 22px; min-width: 0; }
.dv-article__content { display: flex; flex-direction: column; gap: 22px; font-size: 17px; line-height: 1.8; color: #3a3b3f; }
.dv-article__content > * { margin: 0; }
.dv-article__content h2, .dv-article__content h3, .dv-article__content h4 { font-family: var(--dv-font-body); color: var(--dv-ink); }
.dv-article__content h2 { font-size: 28px; font-weight: 600; line-height: 1.3; }
.dv-article__content h3 { font-size: 21px; font-weight: 600; line-height: 1.35; }
.dv-article__content a { color: var(--dv-red); text-decoration: underline; text-underline-offset: 3px; }
.dv-article__content ul, .dv-article__content ol { padding-left: 22px; }
.dv-article__content figure { display: flex; flex-direction: column; gap: 10px; margin: 0; }
.dv-article__content figure img { display: block; width: 100%; height: 420px; border-radius: 14px; background: var(--dv-bg); object-fit: cover; cursor: zoom-in; }
.dv-article__content figure.is-plan img { object-fit: contain; }
.dv-article__content figcaption { margin: 0; font-size: 13px; line-height: normal; color: var(--dv-muted); text-align: left; }
.dv-article__content .wp-block-image { position: relative; }
.dv-article__content .dv-zoomhint { position: absolute; top: 16px; right: 16px; display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 999px; background: rgba(17, 18, 20, .85); font-size: 12px; font-weight: 600; line-height: normal; color: #fff; pointer-events: none; }
.dv-article__content .wp-block-columns { display: flex; gap: 20px; }
.dv-article__content .wp-block-column { flex: 1 1 0; min-width: 0; }
.dv-article__content .wp-block-column figure { gap: 8px; }
.dv-article__content .wp-block-column figure img { height: 300px; border-radius: 12px; }
.dv-article__content .wp-block-column figcaption { font-weight: 500; }
.dv-article__content .wp-block-column .dv-zoomhint { top: 12px; right: 12px; width: 36px; height: 36px; gap: 0; padding: 0; justify-content: center; font-size: 0; }
.dv-article__content blockquote { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 28px 32px; border-left: 3px solid var(--dv-red); border-radius: 14px; background: var(--dv-bg); }
.dv-article__content blockquote p { margin: 0; font-family: var(--dv-font-body); font-size: 20px; font-weight: 600; line-height: 1.5; color: var(--dv-ink); }
.dv-article__content blockquote cite { font-size: 14px; font-style: normal; font-weight: 500; line-height: normal; color: var(--dv-muted); }
.dv-article__content table { width: 100%; border-collapse: collapse; font-size: 15px; }
.dv-article__content th, .dv-article__content td { padding: 12px 14px; border-bottom: 1px solid var(--dv-line); text-align: left; }

.dv-article__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 16px; }
.dv-article__tags strong { font-size: 14px; font-weight: 600; color: var(--dv-ink); }
.dv-article__share { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; padding: 0; border: 0; background: none; font: inherit; font-size: 13px; font-weight: 500; color: var(--dv-ink); cursor: pointer; }
.dv-article__share:hover { color: var(--dv-red); }
.dv-article__share path { stroke: var(--dv-ink); }
.dv-article__cta { display: flex; align-items: center; gap: 24px; padding: 28px 32px; border-radius: 16px; background: var(--dv-ink); }
.elementor .dv-article__cta-avatar, .dv-article__cta-avatar { flex: none; width: 64px; height: 64px; max-width: none; border-radius: 50%; object-fit: cover; }
.dv-article__cta > div { display: flex; flex: 1 1 0; flex-direction: column; gap: 6px; min-width: 0; line-height: normal; }
.dv-article__cta-title { margin: 0; font-family: var(--dv-font-heading); font-size: 22px; font-weight: 600; color: #fff; }
.dv-article__cta-text { margin: 0; font-size: 14px; color: rgba(255, 255, 255, .7); }

.dv-arel { padding: 80px var(--dv-gutter) 110px; background: var(--dv-bg); }
.dv-arel .dv-phd { margin-bottom: 32px; }
.dv-arel .dv-phd__t { gap: 8px; }
.dv-arel .dv-eyebrow { color: var(--dv-red); letter-spacing: 1.44px; }
.dv-arel .dv-eyebrow::before { display: none; }
.dv-arel .dv-phd__title { font-size: 36px; line-height: normal; }

.dv-zbox { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 40px; background: rgba(10, 10, 13, .92); cursor: zoom-out; }
.dv-zbox[hidden] { display: none; }
.dv-zbox img { max-width: 100%; max-height: 100%; border-radius: 8px; object-fit: contain; }
.dv-zbox__close { position: absolute; top: 16px; right: 20px; padding: 4px 10px; border: 0; background: none; font-size: 36px; line-height: 1; color: #fff; cursor: pointer; }

@media (max-width: 1280px) {
	.dv-abody__in { gap: 40px; }
	.dv-toc { width: 260px; }
}
@media (max-width: 1023px) {
	.dv-ahead { padding: 24px 20px; }
	.dv-ahead .dv-wrap { gap: 14px; }
	.dv-ahead__title { font-size: 30px; line-height: 1.2; }
	.dv-ahead__meta { gap: 8px; font-size: 13px; }
	.dv-acover { padding-inline: 20px; }
	.dv-acover__img { height: 240px; border-radius: 14px; }
	.dv-abody { padding: 28px 20px 56px; }
	.dv-abody__in { flex-direction: column; align-items: stretch; gap: 28px; }
	.dv-toc { position: static; width: auto; max-height: none; padding: 20px; }
	.dv-article__content { gap: 18px; font-size: 16px; line-height: 1.75; }
	.dv-article__content h2 { font-size: 22px; }
	.dv-article__content h3 { font-size: 18px; }
	.dv-article__content figure img { height: 240px; border-radius: 12px; }
	.dv-article__content .wp-block-columns { display: grid !important; grid-template-columns: 1fr; gap: 16px; }
	.dv-article__content .wp-block-column { flex: none !important; width: auto; height: auto; }
	.dv-article__content .wp-block-column figure img { height: 220px; }
	.dv-article__content .dv-zoomhint { top: 10px; right: 10px; }
	.dv-article__content blockquote { padding: 20px 22px; }
	.dv-article__content blockquote p { font-size: 18px; }
	.dv-article__share { margin-left: 0; width: 100%; padding-top: 8px; }
	.dv-article__cta { flex-direction: column; align-items: flex-start; gap: 16px; padding: 24px; }
	.dv-article__cta .dv-pbtn { width: 100%; }
	.dv-arel { padding: 48px 20px 64px; }
	.dv-arel .dv-phd { flex-direction: column; align-items: flex-start; gap: 14px; margin-bottom: 24px; }
	.dv-arel .dv-phd__title { font-size: 28px; }
}

/* ===================== Tuyển dụng (Figma 77:566 / 108:2050) ===================== */
.dv-jhero { padding: 72px var(--dv-gutter); background: var(--dv-ink); color: #fff; }
.dv-jhero__in { display: flex; align-items: center; gap: 72px; }
.dv-jhero__t { display: flex; flex: 1 1 0; flex-direction: column; align-items: flex-start; gap: 20px; min-width: 0; }
.dv-jhero .dv-crumb, .dv-jhero .dv-crumb [aria-current] { color: rgba(255, 255, 255, .6); }
.dv-jhero__title { max-width: 620px; margin: 0; font-size: 52px; font-weight: 600; line-height: 1.15; color: #fff; }
.dv-jhero__desc { max-width: 600px; margin: 0; font-size: 16px; line-height: 1.7; color: rgba(255, 255, 255, .72); }
.dv-jhero__btns { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 8px; }
.dv-jhero__media { flex: none; width: 520px; height: 400px; border-radius: 20px; overflow: hidden; background: #1b1c20; }
.elementor .dv-jhero__img, .dv-jhero__img, .dv-jhero__media .dv-noimg { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.dv-jsec__title { margin: 0; font-size: 40px; font-weight: 600; line-height: normal; color: var(--dv-ink); }

.dv-jben { padding: 96px var(--dv-gutter); background: #fff; }
.dv-jben .dv-wrap { display: flex; flex-direction: column; gap: 40px; }
.dv-jben .dv-jsec__title { margin-top: -16px; }
.dv-jben__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.dv-jben__item { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 28px; border-radius: 16px; background: var(--dv-bg); }
.dv-jben__ic { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 12px; background: #fff; }
.dv-jben__item h3 { margin: 0; font-family: var(--dv-font-body); font-size: 18px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-jben__item p { max-width: 240px; margin: 0; font-size: 14px; line-height: 1.65; color: #3a3b3f; }

.dv-jobs { padding: 96px var(--dv-gutter); background: var(--dv-bg); }
.dv-jobs .dv-wrap { display: flex; flex-direction: column; gap: 24px; }
.dv-jobs__h { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.dv-jobs__h > div:first-child { display: flex; flex-direction: column; gap: 12px; }
.dv-jobs__filter { display: flex; gap: 8px; }
.dv-jobs__filter .dv-chip { font: inherit; font-size: 13px; font-weight: 500; cursor: pointer; }
.dv-jobs__list { display: flex; flex-direction: column; gap: 24px; }
.dv-job { border: 1px solid var(--dv-line); border-radius: 16px; background: #fff; transition: border-color .2s ease; }
.dv-job.is-open { border-color: var(--dv-ink); }
.dv-job[hidden] { display: none; }
.dv-job__sum { display: flex; align-items: center; gap: 24px; width: 100%; padding: 28px 32px; border: 0; background: none; font: inherit; text-align: left; color: inherit; cursor: pointer; }
.dv-job__ic { display: flex; flex: none; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 12px; background: var(--dv-bg); }
.dv-job__t { display: flex; flex: 1 1 0; flex-direction: column; gap: 10px; min-width: 0; }
.dv-job__title { font-family: var(--dv-font-heading); font-size: 22px; font-weight: 600; line-height: normal; color: var(--dv-ink); transition: color .2s ease; }
.dv-job__sum:hover .dv-job__title { color: var(--dv-red); }
.dv-job__meta { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.dv-job__meta > span { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; line-height: normal; color: var(--dv-muted); }
.dv-job__r { display: flex; flex: none; flex-direction: column; align-items: flex-end; gap: 6px; }
.dv-job__dl { font-size: 12px; line-height: normal; color: var(--dv-muted); }
.dv-job__tg { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-job__tg em { font-style: normal; }
.dv-job__tg .dv-icon { transition: transform .2s ease; }
.dv-job.is-open .dv-job__tg .dv-icon { transform: rotate(180deg); }
.dv-job__body { border-top: 1px solid var(--dv-line); }
.dv-job__body[hidden] { display: none; }
.dv-job__cols { display: flex; gap: 48px; padding: 28px 32px 32px 108px; }
.dv-job__col { display: flex; flex: 1 1 0; flex-direction: column; gap: 12px; min-width: 0; }
.dv-job__col h3 { margin: 0; font-family: var(--dv-font-body); font-size: 15px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-job__col ul { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.dv-job__col li { display: flex; gap: 10px; font-size: 14px; line-height: 1.6; color: #3a3b3f; }
.dv-job__col li .dv-icon { flex: none; margin-top: 3px; }
.dv-job__apply { display: flex; flex-wrap: wrap; gap: 12px; padding: 0 32px 32px 108px; }

.dv-japply { padding: 96px var(--dv-gutter); background: #fff; }
.dv-japply__in { display: flex; align-items: flex-start; gap: 80px; }
.dv-japply__t { display: flex; flex: 1 1 0; flex-direction: column; align-items: flex-start; gap: 18px; min-width: 0; }
.dv-japply__t > p:last-child { max-width: 440px; margin: 0; font-size: 15px; line-height: 1.7; color: #3a3b3f; }
.dv-jform { position: relative; display: flex; flex: none; flex-direction: column; gap: 16px; width: 600px; padding: 36px; border: 1px solid var(--dv-line); border-radius: 16px; background: #fff; }
.dv-jform__row { display: flex; gap: 16px; }
.dv-jform__row > * { flex: 1 1 0; min-width: 0; }
.dv-jform__f { display: flex; flex-direction: column; gap: 8px; }
.dv-jform__f > span:first-child { font-size: 13px; font-weight: 500; line-height: normal; color: var(--dv-ink); }
.dv-jform input[type="text"], .dv-jform input[type="tel"], .dv-jform input[type="email"], .dv-jform select { box-sizing: border-box; width: 100%; height: 48px; padding: 0 16px; border: 1px solid var(--dv-line); border-radius: 10px; background: #fff; font: inherit; font-size: 14px; color: var(--dv-ink); outline: 0; transition: border-color .2s ease; }
.dv-jform input::placeholder { color: #a3a3a8; }
.dv-jform input:focus, .dv-jform select:focus { border-color: var(--dv-ink); }
.dv-jform__sel { position: relative; display: block; }
.dv-jform select { padding-right: 42px; appearance: none; -webkit-appearance: none; text-overflow: ellipsis; cursor: pointer; }
.dv-jform__sel .dv-icon { position: absolute; top: 50%; right: 16px; transform: translateY(-50%); pointer-events: none; }
.dv-jform__up { position: relative; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 20px; border: 1px dashed #c9c7c2; border-radius: 12px; background: var(--dv-bg); font-size: 14px; font-weight: 500; line-height: normal; color: var(--dv-ink); text-align: center; cursor: pointer; transition: border-color .2s ease; }
.dv-jform__up:hover, .dv-jform__up.is-set { border-color: var(--dv-ink); }
.dv-jform__up input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.dv-jform__up:focus-within { outline: 2px solid var(--dv-ink); outline-offset: 2px; }
.dv-jform__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.dv-jform__msg { margin: 0; padding: 14px 16px; border-radius: 10px; font-size: 14px; line-height: 1.5; }
.dv-jform__msg.is-ok { background: #e9f7ef; color: #146c3a; }
.dv-jform__msg.is-err { background: #fdecea; color: #a52a21; }

@media (max-width: 1280px) {
	.dv-jhero__in { gap: 48px; }
	.dv-jhero__media { width: 440px; height: 360px; }
	.dv-jben__grid { grid-template-columns: repeat(2, 1fr); }
	.dv-japply__in { gap: 48px; }
	.dv-jform { width: 520px; }
}
@media (max-width: 1023px) {
	.dv-jhero { padding: 44px 20px; }
	.dv-jhero__in { flex-direction: column-reverse; align-items: stretch; gap: 32px; }
	.dv-jhero__media { width: auto; height: 269px; border-radius: 16px; }
	.dv-jhero__title { font-size: 32px; line-height: 1.2; }
	.dv-jhero__desc { font-size: 15px; }
	.dv-jhero__btns { flex-direction: column; align-items: flex-start; }
	.dv-jsec__title { font-size: 30px; line-height: 1.2; }
	.dv-jben { padding: 56px 20px; }
	.dv-jben .dv-wrap { gap: 24px; }
	.dv-jben .dv-jsec__title { margin-top: 0; }
	.dv-jben__grid { grid-template-columns: 1fr; }
	.dv-jben__item { padding: 28px 20px; }
	.dv-jben__item p { max-width: none; }
	.dv-jobs { padding: 56px 20px; }
	.dv-jobs__h { flex-direction: column; align-items: stretch; gap: 16px; }
	.dv-jobs__filter { margin: 0 -20px; padding: 0 20px; overflow-x: auto; scrollbar-width: none; }
	.dv-jobs__filter::-webkit-scrollbar { display: none; }
	.dv-jobs__filter .dv-chip { flex: none; }
	.dv-job__sum { flex-direction: column; align-items: stretch; gap: 24px; padding: 28px 20px; }
	.dv-job__ic { width: 48px; height: 48px; }
	.dv-job__title { font-size: 20px; line-height: 1.35; }
	.dv-job__meta { gap: 16px; }
	.dv-job__cols { flex-direction: column; gap: 24px; padding: 28px 20px 32px; }
	.dv-job__apply { flex-direction: column; align-items: flex-start; padding: 0 20px 32px; }
	.dv-japply { padding: 56px 20px; }
	.dv-japply__in { flex-direction: column; align-items: stretch; gap: 32px; }
	.dv-japply__t > p:last-child { max-width: none; }
	.dv-jform { width: auto; padding: 24px 20px; }
	.dv-jform__row { flex-direction: column; }
}

/* ===================== Mua bán / Cho thuê theo dự án (Figma 98:1277) ===================== */
.dv-pbanner { display: flex; align-items: center; gap: 24px; margin-top: 14px; padding: 16px; border: 1px solid var(--dv-line); border-radius: 16px; background: #fff; }
.dv-pbanner__img { flex: none; width: 180px; height: 110px; border-radius: 10px; overflow: hidden; background: var(--dv-bg); }
.dv-pbanner__img img, .dv-pbanner__img .dv-noimg { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.dv-pbanner__t { display: flex; flex: 1 1 0; flex-direction: column; gap: 6px; min-width: 0; line-height: normal; }
.dv-pbanner__place { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 12px; color: var(--dv-muted); }
.dv-pbanner__name { margin: 0; font-family: var(--dv-font-heading); font-size: 24px; font-weight: 600; color: var(--dv-ink); }
.dv-pbanner__name a:hover { color: var(--dv-red); }
.dv-pbanner__desc { margin: 0; font-size: 14px; color: var(--dv-muted); }
.dv-pbanner__switch { display: flex; flex: none; gap: 8px; }
.dv-pbanner__switch .dv-chip { padding: 8px 16px; font-size: 13px; }
.dv-pbanner__link { display: inline-flex; flex: none; align-items: center; gap: 8px; padding-right: 8px; font-size: 14px; font-weight: 600; line-height: normal; color: var(--dv-ink); }
.dv-pbanner__link:hover { color: var(--dv-red); }
@media (max-width: 1023px) {
	.dv-pbanner { flex-wrap: wrap; gap: 14px; padding: 12px; }
	.dv-pbanner__img { width: 96px; height: 76px; }
	.dv-pbanner__t { flex-basis: calc(100% - 110px); }
	.dv-pbanner__name { font-size: 20px; }
	.dv-pbanner__desc { display: none; }
	.dv-pbanner__switch { flex: 1 1 auto; }
	.dv-pbanner__link { padding-right: 4px; }
}

/* ===================== Dự án – Căn đang giao dịch ===================== */
.dv-plist .dv-phd { margin-bottom: 24px; }
.dv-plist__row + .dv-plist__row { margin-top: 48px; }
.dv-plist__rowhead { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin-bottom: 20px; }
.dv-plist__label { display: flex; align-items: center; gap: 10px; margin: 0; font-family: var(--dv-font-body); font-size: 22px; font-weight: 600; line-height: 1.3; color: var(--dv-ink); }
.dv-plist__label span { padding: 2px 10px; border-radius: 999px; background: #fff; font-size: 13px; font-weight: 600; color: var(--dv-muted); }
.dv-plist__rowhead .dv-phd__link { padding-bottom: 0; }
@media (max-width: 1280px) and (min-width: 1024px) {
	.dv-plist .dv-lgrid > :nth-child(n+4) { display: none; }
}
@media (max-width: 1023px) {
	.dv-plist__row + .dv-plist__row { margin-top: 36px; }
	.dv-plist__rowhead { margin-bottom: 16px; }
	.dv-plist__label { font-size: 20px; }
	.dv-plist .dv-lgrid > * { width: 282px; }
}

/* ===================== Dự án – Tiện ích nhiều ảnh ===================== */
.dv-pam__media.has-gallery { display: flex; flex-direction: column; gap: 12px; height: auto; overflow: visible; border-radius: 0; }
.dv-pam__stage { position: relative; height: 516px; overflow: hidden; border-radius: 16px; background: rgba(255, 255, 255, .06); touch-action: pan-y; }
.dv-pam .dv-pam__slide { position: absolute; inset: 0; display: block; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 0; background: none; opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s; }
.dv-pam .dv-pam__slide.is-active { opacity: 1; visibility: visible; }
.dv-pam button.dv-pam__slide { cursor: zoom-in; }
.dv-pam__zoom { position: absolute; top: 12px; right: 12px; display: flex; padding: 8px; border-radius: 50%; background: rgba(17, 18, 20, .55); }
.dv-pam .dv-pam__nav { position: absolute; top: 50%; z-index: 2; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: rgba(17, 18, 20, .55); transform: translateY(-50%); cursor: pointer; transition: background .2s ease; }
.dv-pam .dv-pam__nav:hover { background: var(--dv-red); }
.dv-pam__nav .dv-icon path { stroke: #fff; }
.dv-pam__nav.is-prev { left: 12px; }
.dv-pam__nav.is-next { right: 12px; }
.dv-pam__count { position: absolute; right: 12px; bottom: 12px; z-index: 2; padding: 4px 10px; border-radius: 999px; background: rgba(17, 18, 20, .6); font-size: 12px; font-weight: 500; line-height: normal; color: #fff; pointer-events: none; }
.dv-pam__thumbs { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.dv-pam__thumbs::-webkit-scrollbar { display: none; }
.dv-pam .dv-pam__thumb { position: relative; flex: none; width: 96px; height: 72px; padding: 0; overflow: hidden; border: 2px solid transparent; border-radius: 8px; background: none; opacity: .6; cursor: pointer; transition: opacity .2s ease, border-color .2s ease; }
.dv-pam .dv-pam__thumb:hover { opacity: 1; }
.dv-pam .dv-pam__thumb.is-active { border-color: var(--dv-red); opacity: 1; }
.elementor .dv-pam__thumbimg, .dv-pam__thumbimg { display: block; width: 100%; height: 100%; max-width: none; border-radius: 0; object-fit: cover; }
.dv-pam__thumbplay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(17, 18, 20, .35); }
@media (max-width: 1023px) {
	.dv-pam__media.has-gallery { aspect-ratio: auto; }
	.dv-pam__stage { height: auto; aspect-ratio: 350 / 390; }
	.dv-pam .dv-pam__nav { width: 40px; height: 40px; }
	.dv-pam .dv-pam__thumb { width: 76px; height: 58px; }
}

/* Khối nền tối dùng đầu mục chung (Dự án nổi bật – Figma 3:2 nền #111214). */
.dv-sec--dark .dv-shead .dv-eyebrow { color: #fff; }
.dv-sec--dark .dv-shead__title { color: #fff; }
.dv-sec--dark .dv-shead__desc { color: rgba(255, 255, 255, .7); }
.dv-sec--dark .dv-viewall { color: #fff; }
.dv-sec--dark .dv-more > span { color: rgba(255, 255, 255, .6); }
.dv-sec--dark .dv-chip--outline { border-color: rgba(255, 255, 255, .25); background: transparent; color: #fff; }
.dv-sec--dark .dv-chip--outline:hover { border-color: #fff; }
.dv-sec--dark .dv-viewall:hover { color: var(--dv-red); }

.dv-parch__head > span { flex: none; white-space: nowrap; }

/* Dropdown tự dựng thay cho bảng chọn mặc định của trình duyệt */
.dv-sel { position: relative; }
.dv-sel > select { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.dv-sel__btn {
	display: block; width: 100%; padding: 0 26px 0 0; margin: 0; border: 0; background: transparent; text-align: left;
	font: 500 16px/normal var(--dv-font-body); color: var(--dv-ink); cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dv-sel__btn:focus-visible { outline: 2px solid var(--dv-red); outline-offset: 4px; border-radius: 4px; }
.dv-sort .dv-sel__btn { width: auto; padding-right: 22px; font: 600 13px/normal var(--dv-font-body); }
.dv-sel__list {
	position: absolute; z-index: 30; top: calc(100% + 8px); left: 0; min-width: max(100%, 220px); max-height: 320px; overflow-y: auto;
	margin: 0; padding: 6px; list-style: none; background: #fff; border: 1px solid var(--dv-line); border-radius: 12px;
	box-shadow: 0 18px 40px rgba(13, 14, 15, .16); color: var(--dv-ink);
	opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .15s ease, transform .15s ease, visibility 0s linear .15s;
}
.dv-sel.is-open .dv-sel__list { opacity: 1; visibility: visible; transform: none; transition: opacity .15s ease, transform .15s ease; }
.dv-sel.is-open .dv-sfield__chev, .dv-sel.is-open > .dv-icon { transform: rotate(180deg); }
.dv-sfield__chev, .dv-sort > .dv-icon { transition: transform .2s ease; }
.dv-sort .dv-sel__list { left: auto; right: -1px; min-width: 200px; }
.dv-sel__opt {
	display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 8px;
	font-size: 14px; font-weight: 500; line-height: 1.35; letter-spacing: normal; white-space: nowrap; cursor: pointer;
}
.dv-sel__opt:hover, .dv-sel__opt.is-active { background: var(--dv-bg); }
.dv-sel__opt[aria-selected="true"] { font-weight: 600; color: var(--dv-red); }
.dv-sel__opt[aria-selected="true"]::after {
	content: ""; flex: none; width: 12px; height: 7px; margin-top: -3px; border: solid var(--dv-red); border-width: 0 0 2px 2px; transform: rotate(-45deg);
}
@media (max-width: 767px) {
	.dv-sel__list { min-width: 100%; }
	.dv-sfield .dv-sel__list { left: -10px; right: -10px; min-width: 0; }
	.dv-sort .dv-sel__btn { padding: 0; }
	.dv-sort .dv-sel__list { left: -1px; right: -1px; min-width: 0; }
	.dv-sel__opt { padding: 12px; font-size: 15px; }
}


/* Bộ lọc tự áp dụng trên desktop */
.dv-agrid { transition: opacity .2s ease; }
.dv-agrid.is-loading { opacity: .45; pointer-events: none; }
@media (min-width: 768px) {
	.js .dv-filter__apply { display: none; }
}

/* ===================== Mobile: thẻ căn gọn, 2 thẻ trên một vùng ===================== */
@media (max-width: 767px) {
	.dv-agrid, .dv-agrid.is-list { gap: 12px 10px; }
	.dv-lgrid { gap: 10px; }
	/* Vuốt ngang: thấy 2 thẻ và một phần thẻ thứ ba để biết còn nội dung. */
	.dv-lgrid__item, .dv-plist .dv-lgrid > * { width: calc((100vw - 50px) / 2 - 4px); }
	.dv-ld__similar .dv-lgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 10px; overflow: visible; margin-inline: 0; padding-inline: 0; }
	.dv-ld__similar .dv-lgrid__item { width: auto; }

	.dv-lcard { min-height: 0; border-radius: 10px; }
	.dv-lcard__media, .dv-agrid.is-list .dv-lcard__media { height: 124px; }
	.dv-lcard__tags { top: 8px; left: 8px; max-width: calc(100% - 16px); }
	.dv-lcard__badge, .dv-lcard__hot { padding: 3px 6px; font-size: 10px; letter-spacing: .4px; }
	.dv-lcard__hot { top: 8px; right: 8px; gap: 3px; }
	.dv-lcard__hot svg { width: 10px; height: 10px; }
	.dv-lcard__hot .is-long { display: none; }
	.dv-lcard__hot .is-short { display: inline; }
	.dv-lcard:has(.dv-lcard__save) .dv-lcard__hot { right: 44px; }
	.dv-lcard__wm { left: 8px; bottom: 8px; width: 48px; height: 13px; }
	.dv-lcard__count { right: 8px; bottom: 8px; padding: 2px 6px; font-size: 10px; }
	.dv-lcard__count svg { width: 11px; height: 11px; }
	.dv-lcard__body { gap: 6px; padding: 10px; }
	.dv-lcard__loc { font-size: 10px; letter-spacing: .3px; -webkit-line-clamp: 1; }
	.dv-lcard__title { min-height: calc(2 * 1.35em); font-size: 13px; line-height: 1.35; }
	/* Luôn một hàng: mục không vừa rớt xuống hàng bị che. Số phòng tắm xếp cuối để rớt trước. */
	.dv-lcard__specs { flex-wrap: wrap; gap: 0 6px; height: 15px; overflow: hidden; }
	.dv-lcard__specs li { gap: 2px; font-size: 10.5px; line-height: 15px; }
	.dv-lcard__specs li:nth-child(2):not(:last-child) { order: 1; }
	.dv-lcard__specs svg, .dv-lcard__specs .dv-icon { width: 11px; height: 11px; }
	.dv-lcard__foot { gap: 6px; padding-top: 8px; }
	.dv-lcard__price, .dv-lcard:has(.is-rent) .dv-lcard__price, .dv-lcard__price.is-contact { font-size: 15px; white-space: normal; }
	/* Tag một hàng: tag không vừa bị che nguyên chiếc, không cắt chữ. Nút video rút gọn chữ, đứng đầu hàng. */
	.dv-lcard__chips { gap: 4px; height: 20px; overflow: hidden; }
	.dv-lcard__chips .dv-pill { display: block; max-width: 100%; height: 20px; overflow: hidden; padding: 0 6px; font-size: 10.5px; line-height: 20px; text-overflow: ellipsis; }
	.dv-lcard__chips .dv-pill--video { order: -1; display: flex; align-items: center; flex: none; gap: 3px; padding: 0 7px 0 4px; }
	.dv-pill--video .is-long { display: none; }
	.dv-pill--video .is-short { display: inline; }
	.dv-lcard__chips .dv-pill--video svg, .dv-lcard__chips .dv-pill--video .dv-icon { width: 12px; height: 12px; }
	.dv-lcard__chips .dv-pill:not(.dv-pill--video):nth-child(n+3) { display: none; } /* Tối đa 2 tag trên thẻ nhỏ. */
}
