/* Đô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: #c9332a; }
.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: var(--dv-red); font-weight: 600; }
.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; overflow: hidden; 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: #c9332a; }

.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__badge {
	position: absolute; top: 12px; left: 12px; 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-lcard__badge.is-rent { background: var(--dv-ink); }
.dv-lcard__hot { position: absolute; top: 12px; right: 52px; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 16px; background: var(--dv-red); }
.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; white-space: nowrap; text-overflow: ellipsis; 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; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 10px; border-top: 1px solid var(--dv-line); }
.dv-lcard__price { margin: 0; font-family: var(--dv-font-heading); font-size: 22px; font-weight: 600; 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: 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-heading); font-size: 36px; font-weight: 600; line-height: normal; }
.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: 8px; margin-top: 48px; }
.dv-dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 4px; background: var(--dv-line); cursor: pointer; transition: width .25s ease, background .25s ease; }
.dv-dots button.is-active { width: 28px; 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-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-heading); 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__num {
	position: absolute; left: 24px; top: 24px; display: flex; align-items: center; justify-content: center; width: 56px; height: 56px;
	border-radius: 28px; background: var(--dv-red); color: #fff; font: 600 20px/normal var(--dv-font-heading);
}
.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__num { font: 600 40px/normal var(--dv-font-heading); color: 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 { flex-wrap: wrap; row-gap: 16px; }
	.dv-intro__stats { width: 100%; }
	.dv-intro__stats li { flex: none; padding: 0 20px; }
	.dv-intro__stats strong { font-size: 22px; }
	.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__num { left: 16px; top: 16px; width: 36px; height: 36px; font-size: 13px; }
	.dv-farea__title { font-size: 26px; }

	.dv-svcs__grid { grid-template-columns: 1fr; gap: 24px; }
	.dv-scard { padding: 24px; }
	.dv-scard__num { font-size: 26px; }
	.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: var(--dv-red); }
.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: #c9332a !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: anywhere; }
@media (max-width: 1023px) { .dv-cinfo__t strong { max-width: none; } .dv-cinfo { gap: 12px; padding: 16px; } }

/* ===================== 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: 1fr; gap: 24px; }
	.dv-agrid.is-list .dv-lcard { display: block; }
	.dv-agrid.is-list .dv-lcard__media { width: auto; }
	.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); }

/* 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: var(--dv-red); }
.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__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-heading); 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__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: flex; flex-direction: column; gap: 12px; margin: 0; padding: 4px 0 0; list-style: none; }
.dv-ld__hl li { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: normal; color: var(--dv-ink); }
.dv-ld__hl .dv-icon { flex: none; width: 18px; height: 18px; }

.dv-ld__table { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.dv-ld__table > div { display: flex; align-items: center; gap: 12px; padding: 14px 16px; line-height: normal; }
.dv-ld__table > div:nth-child(4n+1), .dv-ld__table > div:nth-child(4n+2) { background: var(--dv-bg); }
.dv-ld__table dt { flex: none; width: 110px; font-size: 13px; color: var(--dv-muted); }
.dv-ld__table dd { flex: 1 1 0; min-width: 0; margin: 0; font-size: 14px; font-weight: 600; color: var(--dv-ink); }

.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__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: 24px; flex: none; display: flex; flex-direction: column; gap: 16px; width: 400px; }
.admin-bar .dv-ld__side { top: 56px; }
.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-heading); 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: #c9332a; }
.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); }

@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) {
	.dv-ld__crumb { padding-block: 24px 16px; }
	.dv-ld__crumb .dv-crumb { font-size: 14px; }
	.dv-gal { display: flex; flex-direction: column; height: auto; }
	.dv-gal__main { height: auto; aspect-ratio: 350 / 230; }
	.dv-gal__thumbs { grid-template-rows: none; }
	.dv-gal__thumb { height: auto; aspect-ratio: 169 / 130; }
	.dv-gal__tag { left: 12px; top: 12px; padding: 4px 8px; font-size: 9px; }
	.dv-gal__wm { display: none; }
	.dv-gal__play { width: 40px; height: 40px; }

	.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__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 { flex-direction: column; align-items: flex-start; gap: 10px; }
	.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__table { grid-template-columns: 1fr; }
	.dv-ld__table > div:nth-child(n) { background: none; }
	.dv-ld__table > div:nth-child(odd) { background: var(--dv-bg); }
	.dv-ld__table dt { width: 120px; }
	.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); }
@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; }
}
