/* ============================================================
   ROOT MÀU SẮC DỰ ÁN
   ============================================================ */
:root {
    --theme-color: #FF6B35;
    --theme-color2: #D94E1D;
    --theme-color3: #4CAF50;
    --theme-color4: #29862d;
    --theme-color5: #ffe7deab;
}

/* ============================================================
   RESET / BASE (chỉ dùng class, riêng * cho box-sizing)
   ============================================================ */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Base reset cho nội dung Builder ngoài site (trước đây do builder-theme.css lo —
   nay builder-theme.css chỉ nạp trong trình sửa). Các section dvw KHÔNG tự đặt padding
   dọc nên phải giữ dòng section padding này. */
[data-lov-root] img { max-width: 100%; height: auto; }
[data-lov-root] section { position: relative; padding: 84px 0; }
[data-lov-root] a { color: inherit; text-decoration: none; }
[data-lov-root] h1, [data-lov-root] h2, [data-lov-root] h3, [data-lov-root] h4 { line-height: 1.25; margin: 0 0 .5em; }
[data-lov-root] p { margin: 0 0 1em; }
@media (max-width: 767px) { [data-lov-root] section { padding: 56px 0; } }

/* ============================================================
   HOÁN ĐỔI VỊ TRÍ 2 CỘT (class .blockswap trên .row)
   Quy ước dùng chung cho MỌI section 2 cột (ảnh/chữ, nội dung/số liệu…):
   - Tác giả block thêm class "blockswap" cố định lên .row 2 cột ngay khi tạo block.
   - Trong trình sửa (builder-editor-ui.js), nút "Đổi vị trí cột" ở thanh công cụ
     section sẽ thêm/bỏ class "swap" trên chính .row đó -> đảo trái/phải qua lại.
   ============================================================ */
.row.blockswap.swap { flex-direction: row-reverse; }

.dvw-body {
    font-family: "Be Vietnam Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    font-size: 16px;
    line-height: 1.65;
    color: #1f2430;
    background-color: #ffffff;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

/* Container căn giữa dùng lại cho toàn trang (px) */
.dvw-body .container {
    max-width: 1200px;
    padding-left: 20px;
    padding-right: 20px;
}

/* ============================================================
   NÚT DÙNG CHUNG
   ============================================================ */
.dvw-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 15px 30px;
    border: 2px solid transparent;
    border-radius: 14px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
    white-space: nowrap;
}

.dvw-btn--primary {
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    color: #ffffff;
    box-shadow: 0 12px 26px rgba(255, 107, 53, 0.32);
}

.dvw-btn--primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 34px rgba(255, 107, 53, 0.42);
}

.dvw-btn--ghost {
    background-color: #ffffff;
    color: var(--theme-color2);
    border-color: #ffd8c7;
}

.dvw-btn--ghost:hover {
    transform: translateY(-3px);
    border-color: var(--theme-color);
    box-shadow: 0 14px 28px rgba(255, 107, 53, 0.18);
}

.dvw-btn--light {
    background-color: #ffffff;
    color: var(--theme-color2);
}

.dvw-btn--light:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 30px rgba(0, 0, 0, 0.22);
}

.dvw-btn--outline-light {
    background-color: transparent;
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.55);
}

.dvw-btn--outline-light:hover {
    transform: translateY(-3px);
    background-color: rgba(255, 255, 255, 0.12);
    border-color: #ffffff;
}

/* Trạng thái khởi tạo cho hiệu ứng GSAP (ẩn nhẹ, JS sẽ hiện) */
.dvw-reveal {
    opacity: 1;
}

.dvw-body.dvw-js-ready .dvw-reveal {
    opacity: 0;
}

/* ============================================================
   HEADER
   ============================================================ */
.dvw-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 900;
    transition: background-color 0.3s ease, box-shadow 0.3s ease, backdrop-filter 0.3s ease;
}

.dvw-header .dvw-header__inner {
    padding-top: 22px;
    padding-bottom: 22px;
    transition: padding 0.3s ease;
}

.dvw-header.dvw-header--scrolled {
    background-color: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(12px);
    box-shadow: 0 6px 24px rgba(31, 36, 48, 0.08);
}

.dvw-header.dvw-header--scrolled .dvw-header__inner {
    padding-top: 12px;
    padding-bottom: 12px;
}

.dvw-header .dvw-header__brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
}

.dvw-header .dvw-header__brand-mark {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    color: #ffffff;
    font-weight: 800;
    font-size: 20px;
    box-shadow: 0 8px 18px rgba(255, 107, 53, 0.35);
}

.dvw-header .dvw-header__brand-text {
    font-size: 21px;
    font-weight: 800;
    color: #1f2430;
    letter-spacing: -0.4px;
}

.dvw-header .dvw-header__brand-dot {
    color: var(--theme-color);
}

.dvw-header .dvw-header__right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 34px;
}

.dvw-header .dvw-header__nav {
    display: flex;
    align-items: center;
    gap: 30px;
}

.dvw-header .dvw-header__nav-link {
    position: relative;
    font-size: 15px;
    font-weight: 600;
    color: #3d4351;
    text-decoration: none;
    padding: 6px 0;
    transition: color 0.25s ease;
}

.dvw-header .dvw-header__nav-link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    transition: width 0.28s ease;
}

.dvw-header .dvw-header__nav-link:hover {
    color: var(--theme-color2);
}

.dvw-header .dvw-header__nav-link:hover::after,
.dvw-header .dvw-header__nav-link.dvw-header__nav-link--active::after {
    width: 100%;
}

.dvw-header .dvw-header__nav-link.dvw-header__nav-link--active {
    color: var(--theme-color2);
}

.dvw-header .dvw-header__cta {
    padding: 12px 24px;
}

/* ============================================================
   HERO
   ============================================================ */
.dvw-hero {
    position: relative;
    padding-top: 190px;
    padding-bottom: 158px;
    background:
        radial-gradient(820px 640px at 50% 6%, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0) 62%),
        radial-gradient(1200px 620px at 86% -14%, rgba(255, 107, 53, 0.24) 0%, rgba(255, 107, 53, 0) 58%),
        radial-gradient(980px 540px at 0% 4%, rgba(76, 175, 80, 0.16) 0%, rgba(76, 175, 80, 0) 55%),
        linear-gradient(180deg, var(--theme-color5) 0%, #fff6f1 44%, #ffffff 90%);
    overflow: hidden;
}

/* Lưới chấm trang trí, mờ dần về phía dưới */
.dvw-hero::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 0;
    background-image: radial-gradient(rgba(217, 78, 29, 0.1) 1.4px, transparent 1.6px);
    background-size: 34px 34px;
    -webkit-mask-image: linear-gradient(180deg, #000000 0%, rgba(0, 0, 0, 0.3) 44%, rgba(0, 0, 0, 0) 76%);
    mask-image: linear-gradient(180deg, #000000 0%, rgba(0, 0, 0, 0.3) 44%, rgba(0, 0, 0, 0) 76%);
    pointer-events: none;
}

/* Dải sóng trắng nối mượt sang section kế tiếp */
.dvw-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 96px;
    z-index: 0;
    background: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201440%2090'%20preserveAspectRatio='none'%3E%3Cpath%20fill='%23ffffff'%20d='M0,48%20C220,92%20400,92%20720,58%20C1040,24%201240,24%201440,52%20L1440,90%20L0,90%20Z'/%3E%3C/svg%3E") no-repeat center bottom / 100% 100%;
    pointer-events: none;
}

.dvw-hero .dvw-hero__bg-blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    z-index: 0;
    will-change: transform;
}

.dvw-hero .dvw-hero__bg-blob--1 {
    width: 460px;
    height: 460px;
    top: -150px;
    right: -90px;
    background: radial-gradient(circle at 32% 30%, rgba(255, 107, 53, 0.5) 0%, rgba(255, 107, 53, 0) 70%);
    animation: dvw-hero-float-a 15s ease-in-out infinite;
}

.dvw-hero .dvw-hero__bg-blob--2 {
    width: 400px;
    height: 400px;
    bottom: -170px;
    left: -120px;
    background: radial-gradient(circle at 42% 42%, rgba(76, 175, 80, 0.34) 0%, rgba(76, 175, 80, 0) 70%);
    animation: dvw-hero-float-b 19s ease-in-out infinite;
}

.dvw-hero .dvw-hero__bg-blob--3 {
    width: 320px;
    height: 320px;
    top: 32%;
    left: 44%;
    background: radial-gradient(circle at 50% 50%, rgba(255, 183, 94, 0.3) 0%, rgba(255, 183, 94, 0) 72%);
    animation: dvw-hero-float-c 22s ease-in-out infinite;
}

@keyframes dvw-hero-float-a {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
    50% { transform: translate3d(-28px, 24px, 0) scale(1.06); }
}

@keyframes dvw-hero-float-b {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
    50% { transform: translate3d(26px, -22px, 0) scale(1.08); }
}

@keyframes dvw-hero-float-c {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
    50% { transform: translate3d(20px, 26px, 0) scale(0.92); }
}

.dvw-hero .dvw-hero__row {
    position: relative;
    z-index: 1;
}

.dvw-hero .dvw-hero__content {
    max-width: 560px;
    min-height: 280px;
}

.dvw-hero .dvw-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    padding: 8px 18px;
    border-radius: 40px;
    background-color: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(6px);
    border: 1px solid #ffd8c7;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    margin-bottom: 22px;
    box-shadow: 0 8px 20px rgba(255, 107, 53, 0.14);
}

.dvw-hero .dvw-hero__eyebrow::before {
    content: "";
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-right: 10px;
    border-radius: 50%;
    background-color: var(--theme-color3);
    animation: dvw-hero-pulse 2s ease-in-out infinite;
}

@keyframes dvw-hero-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(76, 175, 80, 0.4); }
    50% { box-shadow: 0 0 0 7px rgba(76, 175, 80, 0); }
}

.dvw-hero .dvw-hero__title {
    font-size: 54px;
    line-height: 1.13;
    font-weight: 800;
    letter-spacing: -1.2px;
    color: #14181f;
    margin-bottom: 22px;
}

.dvw-hero .dvw-hero__title-accent {
    color: var(--theme-color2);
    -webkit-text-fill-color: currentColor;
    background-image: linear-gradient(180deg, transparent 62%, rgba(255, 107, 53, 0.22) 62%);
    border-radius: 2px;
}

/* Tách chữ để GSAP chạy hiệu ứng load từng từ */
.dvw-hero .dvw-hero__word {
    display: inline-block;
    overflow: hidden;
    vertical-align: top;
    padding-bottom: 6px;
    margin-bottom: -6px;
}

.dvw-hero .dvw-hero__word-inner {
    display: inline-block;
    will-change: transform;
}

.dvw-hero .dvw-hero__word.dvw-hero__title-accent {
    background: none;
    -webkit-text-fill-color: currentColor;
}

.dvw-hero .dvw-hero__word.dvw-hero__title-accent .dvw-hero__word-inner {
    color: var(--theme-color2);
    -webkit-text-fill-color: currentColor;
    background-image: linear-gradient(180deg, transparent 62%, rgba(255, 107, 53, 0.22) 62%);
    border-radius: 2px;
}

.dvw-hero .dvw-hero__desc {
    font-size: 18px;
    color: #55607a;
    margin-bottom: 34px;
}

.dvw-hero .dvw-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 0;
}

.dvw-hero .dvw-hero__trust {
    display: flex;
    align-items: center;
    gap: 28px;
    margin-top: 34px;
    padding-top: 30px;
    border-top: 1px solid rgba(217, 78, 29, 0.14);
}

.dvw-hero .dvw-hero__trust-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.dvw-hero .dvw-hero__trust-num {
    font-size: 26px;
    font-weight: 800;
    color: #14181f;
}

.dvw-hero .dvw-hero__trust-label {
    font-size: 13px;
    color: #7a8398;
    font-weight: 500;
}

.dvw-hero .dvw-hero__trust-divider {
    width: 1px;
    height: 42px;
    background-color: #e7d5cb;
}

.dvw-hero .dvw-hero__visual {
    position: relative;
    padding: 20px;
    perspective: 1600px;
}

.dvw-hero .dvw-hero__visual::before {
    content: "";
    position: absolute;
    top: -40px;
    right: -30px;
    bottom: -30px;
    left: -34px;
    z-index: 0;
    border-radius: 44px;
    background: radial-gradient(closest-side, rgba(255, 107, 53, 0.2) 0%, rgba(255, 107, 53, 0) 100%);
    pointer-events: none;
}

.dvw-hero .dvw-hero__visual::after {
    content: "";
    position: absolute;
    left: 14%;
    right: 14%;
    bottom: 0;
    height: 44px;
    z-index: 0;
    background: radial-gradient(ellipse at center, rgba(31, 36, 48, 0.2) 0%, rgba(31, 36, 48, 0) 70%);
    filter: blur(5px);
    pointer-events: none;
}

.dvw-hero .dvw-hero__browser {
    position: relative;
    z-index: 2;
    background-color: #ffffff;
    border-radius: 20px;
    box-shadow: 0 44px 90px rgba(31, 36, 48, 0.2);
    overflow: hidden;
    border: 1px solid #f1e4dc;
    transform: rotateY(-6deg) rotateX(2.5deg);
    transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.65s ease;
}

.dvw-hero .dvw-hero__visual:hover .dvw-hero__browser {
    transform: rotateY(0deg) rotateX(0deg);
    box-shadow: 0 54px 110px rgba(31, 36, 48, 0.24);
}

.dvw-hero .dvw-hero__browser-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 18px;
    background-color: #fbf3ef;
    border-bottom: 1px solid #f1e4dc;
}

.dvw-hero .dvw-hero__browser-dot {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background-color: #e4c7ba;
}

.dvw-hero .dvw-hero__browser-url {
    margin-left: 12px;
    padding: 5px 14px;
    border-radius: 20px;
    background-color: #ffffff;
    font-size: 12px;
    color: #9aa2b4;
    border: 1px solid #f1e4dc;
}

.dvw-hero .dvw-hero__browser-body {
    padding: 0;
}

.dvw-hero .dvw-hero__img-swiper {
    width: 100%;
    height: 380px;
}

.dvw-hero .dvw-hero__img-swiper .swiper-slide {
    overflow: hidden;
    background-color: #f3ede9;
}

.dvw-hero .dvw-hero__browser-img {
    width: 100%;
    height: 380px;
    object-fit: cover;
    display: block;
}

/* Slider chữ bên trái */
.dvw-hero .dvw-hero__slider {
    width: 100%;
    overflow: hidden;
}

.dvw-hero .dvw-hero__slide {
    height: auto;
}

.dvw-hero .dvw-hero__pagination {
    display: flex;
    gap: 8px;
    margin-top: 30px;
}

.dvw-hero .dvw-hero__pagination .swiper-pagination-bullet {
    width: 28px;
    height: 5px;
    margin: 0;
    border-radius: 4px;
    background-color: #e4c7ba;
    opacity: 1;
    transition: width 0.3s ease, background-color 0.3s ease;
}

.dvw-hero .dvw-hero__pagination .swiper-pagination-bullet-active {
    width: 46px;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
}

.dvw-hero .dvw-hero__float {
    position: absolute;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 16px 11px 11px;
    background-color: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(4px);
    border: 1px solid #f4e4db;
    border-radius: 16px;
    box-shadow: 0 22px 46px rgba(31, 36, 48, 0.16);
    font-size: 14px;
    font-weight: 700;
    color: #14181f;
}

.dvw-hero .dvw-hero__float-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 10px;
    background-color: var(--theme-color5);
    font-size: 16px;
}

.dvw-hero .dvw-hero__float--top {
    top: 40px;
    left: -22px;
    animation: dvw-hero-drift-a 6s ease-in-out infinite;
}

.dvw-hero .dvw-hero__float--bottom {
    top: 46%;
    right: -26px;
    animation: dvw-hero-drift-b 7s ease-in-out infinite;
}

.dvw-hero .dvw-hero__float--rating {
    bottom: 34px;
    left: -26px;
    padding: 12px 18px;
    animation: dvw-hero-drift-a 8s ease-in-out infinite;
}

.dvw-hero .dvw-hero__float-stars {
    color: var(--theme-color);
    font-size: 13px;
    letter-spacing: 2px;
}

.dvw-hero .dvw-hero__float-rating-text {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    font-weight: 600;
    color: #55607a;
}

@keyframes dvw-hero-drift-a {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}

@keyframes dvw-hero-drift-b {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(12px); }
}

/* ============================================================
   SECTION DÙNG CHUNG: TIÊU ĐỀ ĐẦU MỤC
   (mỗi section vẫn có class riêng để tránh xung đột)
   ============================================================ */
.dvw-services,
.dvw-process,
.dvw-why,
.dvw-portfolio,
.dvw-pricing,
.dvw-testimonials,
.dvw-faq {
    padding-top: 110px;
    padding-bottom: 110px;
}

/* ============================================================
   DỊCH VỤ
   ============================================================ */
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-services.blockbg:not(.bg) { background: none; }
.dvw-services.blockbg.bg { background-color: #ffffff; }

.dvw-services .dvw-services__head {
    text-align: center;
    margin-bottom: 60px;
}

.dvw-services .dvw-services__eyebrow {
    display: inline-block;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-services .dvw-services__title {
    font-size: 38px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.6px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-services .dvw-services__desc {
    font-size: 17px;
    color: #55607a;
}

.dvw-services .dvw-services__grid {
    margin-top: 0;
    row-gap: 26px;
}

.dvw-services .dvw-services__card {
    height: 100%;
    padding: 34px 30px;
    background-color: #ffffff;
    border: 1px solid #efe9e4;
    border-radius: 20px;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.dvw-services .dvw-services__card:hover {
    transform: translateY(-8px);
    border-color: #ffd3c1;
    box-shadow: 0 26px 50px rgba(31, 36, 48, 0.12);
}

.dvw-services .dvw-services__card-icon {
    width: 58px;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background-color: var(--theme-color5);
    color: var(--theme-color2);
    margin-bottom: 22px;
}

.dvw-services .dvw-services__card-icon-svg {
    width: 28px;
    height: 28px;
}

.dvw-services .dvw-services__card-title {
    font-size: 20px;
    font-weight: 700;
    color: #14181f;
    margin-bottom: 10px;
}

.dvw-services .dvw-services__card-text {
    font-size: 15px;
    color: #5a6377;
    margin-bottom: 18px;
}

.dvw-services .dvw-services__card-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.dvw-services .dvw-services__card-list-item {
    position: relative;
    padding-left: 28px;
    font-size: 14px;
    font-weight: 500;
    color: #3d4351;
}

.dvw-services .dvw-services__card-list-icon {
    position: absolute;
    left: 0;
    top: 2px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background-color: rgba(76, 175, 80, 0.16);
    color: var(--theme-color4);
}

.dvw-services .dvw-services__card-list-icon-svg {
    width: 11px;
    height: 11px;
}

/* ============================================================
   QUY TRÌNH
   ============================================================ */
.dvw-process {
    position: relative;
    overflow: hidden;
}
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-process.blockbg:not(.bg) { background: none; }
.dvw-process.blockbg.bg { background-color: #fbf5f1; }

.dvw-process .dvw-process__bg-glow {
    position: absolute;
    top: 46%;
    left: 50%;
    width: 920px;
    height: 420px;
    transform: translate(-50%, -50%);
    background: radial-gradient(closest-side, rgba(255, 107, 53, 0.1) 0%, rgba(255, 107, 53, 0) 100%);
    pointer-events: none;
    z-index: 0;
}

.dvw-process .dvw-process__head {
    position: relative;
    z-index: 1;
    text-align: center;
    margin-bottom: 66px;
}

.dvw-process .dvw-process__eyebrow {
    display: inline-block;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-process .dvw-process__title {
    font-size: 38px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.6px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-process .dvw-process__desc {
    font-size: 17px;
    color: #55607a;
}

/* --- Timeline ngang (desktop) --- */
.dvw-process .dvw-process__timeline {
    position: relative;
    z-index: 1;
}

.dvw-process .dvw-process__track {
    position: absolute;
    top: 34px;
    left: 10%;
    right: 10%;
    height: 4px;
    border-radius: 4px;
    background-color: #f0ddd2;
    overflow: hidden;
}

.dvw-process .dvw-process__track-fill {
    width: 100%;
    height: 100%;
    border-radius: 4px;
    background: linear-gradient(90deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.dvw-process .dvw-process__grid {
    row-gap: 40px;
}

.dvw-process .dvw-process__step {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    height: 100%;
}

.dvw-process .dvw-process__step-node {
    position: relative;
    z-index: 2;
    flex-shrink: 0;
    width: 68px;
    height: 68px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: #ffffff;
    border: 2px solid #f0ddd2;
    box-shadow: 0 10px 22px rgba(217, 78, 29, 0.12);
    margin-bottom: 24px;
    transition: transform 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}

.dvw-process .dvw-process__step-num {
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -0.5px;
    color: var(--theme-color2);
    transition: color 0.3s ease;
}

.dvw-process .dvw-process__step-card {
    position: relative;
    flex: 1 1 auto;
    width: 100%;
    padding: 30px 24px 28px;
    background-color: #ffffff;
    border: 1px solid #f1e4dc;
    border-radius: 18px;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.dvw-process .dvw-process__step-card::before {
    content: "";
    position: absolute;
    top: -1px;
    left: 24px;
    right: 24px;
    height: 3px;
    border-radius: 0 0 3px 3px;
    background: linear-gradient(90deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.dvw-process .dvw-process__step:hover .dvw-process__step-node {
    transform: translateY(-4px);
    border-color: transparent;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
}

.dvw-process .dvw-process__step:hover .dvw-process__step-num {
    color: #ffffff;
}

.dvw-process .dvw-process__step:hover .dvw-process__step-card {
    transform: translateY(-8px);
    border-color: #ffd3c1;
    box-shadow: 0 26px 50px rgba(31, 36, 48, 0.12);
}

.dvw-process .dvw-process__step:hover .dvw-process__step-card::before {
    opacity: 1;
}

.dvw-process .dvw-process__step-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background-color: var(--theme-color5);
    color: var(--theme-color2);
    margin-bottom: 16px;
}

.dvw-process .dvw-process__step-icon-svg {
    width: 24px;
    height: 24px;
}

.dvw-process .dvw-process__step-title {
    font-size: 18px;
    font-weight: 700;
    color: #14181f;
    margin-bottom: 8px;
}

.dvw-process .dvw-process__step-text {
    font-size: 14px;
    color: #5a6377;
}

/* Đường nối dọc (chỉ hiện khi xuống timeline dọc ở mobile) */
.dvw-process .dvw-process__step::before {
    content: "";
    position: absolute;
    display: none;
    left: 28px;
    top: 56px;
    bottom: 0;
    width: 2px;
    transform: translateX(-50%);
    background-color: #f0ddd2;
}

/* ============================================================
   TẠI SAO CHỌN CHÚNG TÔI
   ============================================================ */
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-why.blockbg:not(.bg) { background: none; }
.dvw-why.blockbg.bg { background-color: #ffffff; }

.dvw-why .dvw-why__row {
    row-gap: 50px;
}

.dvw-why .dvw-why__eyebrow {
    display: inline-block;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-why .dvw-why__title {
    font-size: 38px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.6px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-why .dvw-why__desc {
    font-size: 17px;
    color: #55607a;
    margin-bottom: 34px;
    max-width: 480px;
}

.dvw-why .dvw-why__feature-list {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.dvw-why .dvw-why__feature {
    display: flex;
    gap: 16px;
}

.dvw-why .dvw-why__feature-check {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: rgba(76, 175, 80, 0.14);
    color: var(--theme-color4);
}

.dvw-why .dvw-why__feature-check-svg {
    width: 14px;
    height: 14px;
}

.dvw-why .dvw-why__feature-title {
    font-size: 17px;
    font-weight: 700;
    color: #14181f;
    margin-bottom: 4px;
}

.dvw-why .dvw-why__feature-text {
    font-size: 14px;
    color: #5a6377;
}

.dvw-why .dvw-why__stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.dvw-why .dvw-why__stat {
    padding: 34px 26px;
    border-radius: 18px;
    background: linear-gradient(160deg, #fff6f2 0%, #ffffff 100%);
    border: 1px solid #f1e4dc;
    text-align: center;
}

.dvw-why .dvw-why__stat:nth-child(2),
.dvw-why .dvw-why__stat:nth-child(3) {
    transform: translateY(24px);
}

.dvw-why .dvw-why__stat-num {
    display: block;
    font-size: 42px;
    font-weight: 800;
    letter-spacing: -1px;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--theme-color);
    margin-bottom: 6px;
}

.dvw-why .dvw-why__stat-label {
    font-size: 14px;
    font-weight: 600;
    color: #55607a;
}

/* ============================================================
   DỰ ÁN TIÊU BIỂU
   ============================================================ */
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-portfolio.blockbg:not(.bg) { background: none; }
.dvw-portfolio.blockbg.bg { background-color: #fbf5f1; }

.dvw-portfolio .dvw-portfolio__head {
    text-align: center;
    margin-bottom: 60px;
}

.dvw-portfolio .dvw-portfolio__eyebrow {
    display: inline-block;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-portfolio .dvw-portfolio__title {
    font-size: 38px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.6px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-portfolio .dvw-portfolio__desc {
    font-size: 17px;
    color: #55607a;
}

.dvw-portfolio .dvw-portfolio__grid {
    row-gap: 28px;
}

.dvw-portfolio .dvw-portfolio__item {
    height: 100%;
    background-color: #ffffff;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid #f1e4dc;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.dvw-portfolio .dvw-portfolio__item:hover {
    transform: translateY(-8px);
    box-shadow: 0 28px 54px rgba(31, 36, 48, 0.14);
}

.dvw-portfolio .dvw-portfolio__thumb {
    display: block;
    position: relative;
    height: 220px;
    overflow: hidden;
    background-color: #f0e2da;
    text-decoration: none;
}

.dvw-portfolio .dvw-portfolio__thumb-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transform: scale(1.02);
    transition: transform 0.6s ease;
}

.dvw-portfolio .dvw-portfolio__item:hover .dvw-portfolio__thumb-img {
    transform: scale(1.08);
}

/* Lớp phủ tối nhẹ ở đáy ảnh cho có chiều sâu */
.dvw-portfolio .dvw-portfolio__thumb::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background: linear-gradient(180deg, rgba(20, 24, 31, 0) 48%, rgba(20, 24, 31, 0.32) 100%);
    pointer-events: none;
}

/* Tông thương hiệu phủ lên ảnh khi hover */
.dvw-portfolio .dvw-portfolio__thumb::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    z-index: 1;
    opacity: 0;
    background: linear-gradient(135deg, rgba(255, 107, 53, 0.42) 0%, rgba(217, 78, 29, 0.4) 100%);
    transition: opacity 0.4s ease;
    pointer-events: none;
}

.dvw-portfolio .dvw-portfolio__item:hover .dvw-portfolio__thumb::before {
    opacity: 1;
}

/* Màu nền dự phòng khi ảnh chưa tải xong */
.dvw-portfolio .dvw-portfolio__thumb--a { background-color: #f3d9cc; }
.dvw-portfolio .dvw-portfolio__thumb--b { background-color: #d7ead8; }
.dvw-portfolio .dvw-portfolio__thumb--c { background-color: #f7e3c8; }
.dvw-portfolio .dvw-portfolio__thumb--d { background-color: #cfe6e8; }
.dvw-portfolio .dvw-portfolio__thumb--e { background-color: #ddd9f2; }
.dvw-portfolio .dvw-portfolio__thumb--f { background-color: #f1d5cc; }

.dvw-portfolio .dvw-portfolio__body {
    padding: 24px 24px 28px;
}

.dvw-portfolio .dvw-portfolio__cat {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 30px;
    background-color: var(--theme-color5);
    color: var(--theme-color2);
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 12px;
}

.dvw-portfolio .dvw-portfolio__name {
    font-size: 19px;
    font-weight: 700;
    color: #14181f;
    margin-bottom: 8px;
}

.dvw-portfolio .dvw-portfolio__name-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.25s ease;
}

.dvw-portfolio .dvw-portfolio__name-link:hover {
    color: var(--theme-color2);
}

.dvw-portfolio .dvw-portfolio__item:hover .dvw-portfolio__name-link {
    color: var(--theme-color2);
}

.dvw-portfolio .dvw-portfolio__text {
    font-size: 14px;
    color: #5a6377;
}

/* ============================================================
   BẢNG GIÁ
   ============================================================ */
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-pricing.blockbg:not(.bg) { background: none; }
.dvw-pricing.blockbg.bg { background-color: #ffffff; }

.dvw-pricing .dvw-pricing__head {
    text-align: center;
    margin-bottom: 60px;
}

.dvw-pricing .dvw-pricing__eyebrow {
    display: inline-block;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-pricing .dvw-pricing__title {
    font-size: 38px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.6px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-pricing .dvw-pricing__desc {
    font-size: 17px;
    color: #55607a;
}

.dvw-pricing .dvw-pricing__grid {
    row-gap: 28px;
    align-items: center;
}

.dvw-pricing .dvw-pricing__plan {
    position: relative;
    height: 100%;
    padding: 40px 32px;
    background-color: #ffffff;
    border: 1px solid #efe9e4;
    border-radius: 22px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.dvw-pricing .dvw-pricing__plan:hover {
    transform: translateY(-6px);
    box-shadow: 0 24px 48px rgba(31, 36, 48, 0.1);
}

.dvw-pricing .dvw-pricing__plan--featured {
    background: linear-gradient(170deg, #14181f 0%, #24160f 100%);
    border-color: #14181f;
    padding-top: 54px;
    box-shadow: 0 34px 64px rgba(20, 24, 31, 0.28);
}

.dvw-pricing .dvw-pricing__plan-badge {
    position: absolute;
    top: 20px;
    left: 32px;
    padding: 6px 14px;
    border-radius: 30px;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    color: #ffffff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.4px;
}

.dvw-pricing .dvw-pricing__plan-name {
    display: block;
    font-size: 16px;
    font-weight: 700;
    color: #55607a;
    margin-bottom: 16px;
}

.dvw-pricing .dvw-pricing__plan--featured .dvw-pricing__plan-name {
    color: #d8c4b8;
}

.dvw-pricing .dvw-pricing__plan-price {
    display: flex;
    align-items: baseline;
    gap: 4px;
    margin-bottom: 12px;
}

.dvw-pricing .dvw-pricing__plan-amount {
    font-size: 34px;
    font-weight: 800;
    letter-spacing: -1px;
    color: #14181f;
}

.dvw-pricing .dvw-pricing__plan--featured .dvw-pricing__plan-amount {
    color: #ffffff;
}

.dvw-pricing .dvw-pricing__plan-unit {
    font-size: 18px;
    font-weight: 700;
    color: var(--theme-color2);
}

.dvw-pricing .dvw-pricing__plan-note {
    font-size: 14px;
    color: #5a6377;
    margin-bottom: 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid #efe9e4;
}

.dvw-pricing .dvw-pricing__plan--featured .dvw-pricing__plan-note {
    color: #b9aba2;
    border-bottom-color: rgba(255, 255, 255, 0.14);
}

.dvw-pricing .dvw-pricing__plan-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 13px;
    margin-bottom: 30px;
}

.dvw-pricing .dvw-pricing__plan-list-item {
    position: relative;
    padding-left: 28px;
    font-size: 14px;
    color: #3d4351;
}

.dvw-pricing .dvw-pricing__plan--featured .dvw-pricing__plan-list-item {
    color: #e4dbd4;
}

.dvw-pricing .dvw-pricing__plan-list-item::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: rgba(76, 175, 80, 0.16);
    color: var(--theme-color4);
    font-size: 11px;
    font-weight: 800;
}

.dvw-pricing .dvw-pricing__plan-btn {
    width: 100%;
}

/* ============================================================
   CẢM NHẬN KHÁCH HÀNG
   ============================================================ */
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-testimonials.blockbg:not(.bg) { background: none; }
.dvw-testimonials.blockbg.bg { background-color: #fbf5f1; }

.dvw-testimonials .dvw-testimonials__head {
    text-align: center;
    margin-bottom: 60px;
}

.dvw-testimonials .dvw-testimonials__eyebrow {
    display: inline-block;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-testimonials .dvw-testimonials__title {
    font-size: 38px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.6px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-testimonials .dvw-testimonials__desc {
    font-size: 17px;
    color: #55607a;
}

.dvw-testimonials .dvw-testimonials__slider {
    overflow: hidden;
    padding-top: 14px;
    padding-bottom: 24px;
}

.dvw-testimonials .dvw-testimonials__slider .swiper-slide {
    height: auto;
}

.dvw-testimonials .dvw-testimonials__slide {
    display: flex;
    height: auto;
}

.dvw-testimonials .dvw-testimonials__card {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    padding: 34px 30px;
    background-color: #ffffff;
    border-radius: 20px;
    border: 1px solid #f1e4dc;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.dvw-testimonials .dvw-testimonials__card::before {
    content: "\201C";
    position: absolute;
    top: 12px;
    right: 26px;
    z-index: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 78px;
    line-height: 1;
    color: #ffe4d7;
    pointer-events: none;
}

.dvw-testimonials .dvw-testimonials__card:hover {
    transform: translateY(-6px);
    border-color: #ffd3c1;
    box-shadow: 0 24px 46px rgba(31, 36, 48, 0.12);
}

.dvw-testimonials .dvw-testimonials__stars {
    position: relative;
    z-index: 1;
    color: var(--theme-color);
    font-size: 17px;
    letter-spacing: 3px;
    margin-bottom: 16px;
}

.dvw-testimonials .dvw-testimonials__quote {
    position: relative;
    z-index: 1;
    font-size: 15px;
    color: #3d4351;
    line-height: 1.7;
    margin-bottom: 24px;
    font-style: normal;
}

.dvw-testimonials .dvw-testimonials__author {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: auto;
}

/* Điều hướng slider cảm nhận */
.dvw-testimonials .dvw-testimonials__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    margin-top: 38px;
}

.dvw-testimonials .dvw-testimonials__nav-group {
    display: flex;
    align-items: center;
    gap: 10px;
}

.dvw-testimonials .dvw-testimonials__nav {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 1px solid #f0d9cd;
    border-radius: 50%;
    background-color: #ffffff;
    color: var(--theme-color2);
    cursor: pointer;
    transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.dvw-testimonials .dvw-testimonials__nav:hover {
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    border-color: transparent;
    color: #ffffff;
    transform: translateY(-2px);
}

.dvw-testimonials .dvw-testimonials__nav-svg {
    width: 18px;
    height: 18px;
    display: block;
}

.dvw-testimonials .dvw-testimonials__pagination {
    display: flex;
    align-items: center;
    gap: 8px;
}

.dvw-testimonials .dvw-testimonials__pagination .swiper-pagination-bullet {
    width: 9px;
    height: 9px;
    margin: 0;
    border-radius: 50%;
    background-color: #e4c7ba;
    opacity: 1;
    transition: width 0.3s ease, background-color 0.3s ease, border-radius 0.3s ease;
}

.dvw-testimonials .dvw-testimonials__pagination .swiper-pagination-bullet-active {
    width: 26px;
    border-radius: 5px;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
}

.dvw-testimonials .dvw-testimonials__avatar {
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    color: #ffffff;
    font-size: 15px;
    font-weight: 800;
}

.dvw-testimonials .dvw-testimonials__author-info {
    display: flex;
    flex-direction: column;
}

.dvw-testimonials .dvw-testimonials__author-name {
    font-size: 15px;
    font-weight: 700;
    color: #14181f;
}

.dvw-testimonials .dvw-testimonials__author-role {
    font-size: 13px;
    color: #7a8398;
}

/* ============================================================
   CÂU HỎI THƯỜNG GẶP
   ============================================================ */
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-faq.blockbg:not(.bg) { background: none; }
.dvw-faq.blockbg.bg { background-color: #ffffff; }

.dvw-faq .dvw-faq__row {
    row-gap: 40px;
}

.dvw-faq .dvw-faq__aside {
    position: sticky;
    top: 120px;
}

.dvw-faq .dvw-faq__eyebrow {
    display: inline-block;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-faq .dvw-faq__title {
    font-size: 38px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.6px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-faq .dvw-faq__desc {
    font-size: 16px;
    color: #55607a;
    margin-bottom: 26px;
    max-width: 380px;
}

.dvw-faq .dvw-faq__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.dvw-faq .dvw-faq__item {
    border: 1px solid #efe9e4;
    border-radius: 16px;
    background-color: #ffffff;
    overflow: hidden;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.dvw-faq .dvw-faq__item.dvw-faq__item--open {
    border-color: #ffd3c1;
    box-shadow: 0 18px 38px rgba(31, 36, 48, 0.08);
}

.dvw-faq .dvw-faq__question {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 22px 24px;
    background-color: transparent;
    border: none;
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    color: #14181f;
    text-align: left;
    cursor: pointer;
}

.dvw-faq .dvw-faq__question-icon {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: var(--theme-color5);
    color: var(--theme-color2);
    transition: background 0.35s ease, color 0.35s ease, transform 0.35s ease;
}

.dvw-faq .dvw-faq__question-icon-svg {
    width: 18px;
    height: 18px;
    overflow: visible;
}

.dvw-faq .dvw-faq__question-icon-h,
.dvw-faq .dvw-faq__question-icon-v {
    transform-origin: center;
    transition: transform 0.35s ease, opacity 0.3s ease;
}

.dvw-faq .dvw-faq__item--open .dvw-faq__question-icon {
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    color: #ffffff;
    transform: rotate(180deg);
}

.dvw-faq .dvw-faq__item--open .dvw-faq__question-icon-v {
    transform: rotate(90deg);
    opacity: 0;
}

.dvw-faq .dvw-faq__answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
}

.dvw-faq .dvw-faq__answer-text {
    padding: 0 24px 24px;
    font-size: 15px;
    color: #5a6377;
    line-height: 1.7;
}

/* ============================================================
   CTA ĐĂNG KÝ TƯ VẤN
   ============================================================ */
.dvw-cta {
    position: relative;
    padding-top: 40px;
    padding-bottom: 110px;
    overflow: hidden;
}
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-cta.blockbg:not(.bg) { background: none; }
.dvw-cta.blockbg.bg { background-color: #ffffff; }

.dvw-cta .dvw-cta__bg-blob {
    position: absolute;
    width: 500px;
    height: 500px;
    border-radius: 50%;
    background: rgba(255, 107, 53, 0.16);
    filter: blur(90px);
    top: -180px;
    right: -120px;
}

.dvw-cta .dvw-cta__box {
    position: relative;
    padding: 66px 56px;
    border-radius: 30px;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    text-align: center;
    box-shadow: 0 40px 80px rgba(255, 107, 53, 0.32);
    overflow: hidden;
}

.dvw-cta .dvw-cta__box::after {
    content: "";
    position: absolute;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.12);
    bottom: -160px;
    left: -80px;
}

.dvw-cta .dvw-cta__title {
    position: relative;
    z-index: 1;
    font-size: 36px;
    line-height: 1.3;
    font-weight: 800;
    letter-spacing: -0.6px;
    color: #ffffff;
    margin-bottom: 16px;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

.dvw-cta .dvw-cta__desc {
    position: relative;
    z-index: 1;
    font-size: 17px;
    color: rgba(255, 255, 255, 0.92);
    margin-bottom: 34px;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
}

.dvw-cta .dvw-cta__actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: center;
}

/* ============================================================
   FOOTER
   ============================================================ */
.dvw-footer {
    background-color: #14181f;
    padding-top: 80px;
    padding-bottom: 34px;
}

.dvw-footer .dvw-footer__top {
    row-gap: 40px;
    padding-bottom: 44px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.dvw-footer .dvw-footer__brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    margin-bottom: 18px;
}

.dvw-footer .dvw-footer__brand-mark {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    color: #ffffff;
    font-weight: 800;
    font-size: 19px;
}

.dvw-footer .dvw-footer__brand-text {
    font-size: 20px;
    font-weight: 800;
    color: #ffffff;
}

.dvw-footer .dvw-footer__about {
    font-size: 14px;
    color: #9aa2b4;
    max-width: 320px;
    margin-bottom: 22px;
}

.dvw-footer .dvw-footer__socials {
    display: flex;
    gap: 12px;
}

.dvw-footer .dvw-footer__social {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background-color: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: background-color 0.25s ease, transform 0.25s ease;
}

.dvw-footer .dvw-footer__social:hover {
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    transform: translateY(-3px);
}

.dvw-footer .dvw-footer__links-title {
    font-size: 15px;
    font-weight: 700;
    color: #ffffff;
    margin-bottom: 18px;
}

.dvw-footer .dvw-footer__links,
.dvw-footer .dvw-footer__contact {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.dvw-footer .dvw-footer__links-item,
.dvw-footer .dvw-footer__contact-item {
    font-size: 14px;
    color: #9aa2b4;
}

.dvw-footer .dvw-footer__links-link {
    color: #9aa2b4;
    text-decoration: none;
    transition: color 0.22s ease;
}

.dvw-footer .dvw-footer__links-link:hover {
    color: var(--theme-color);
}

.dvw-footer .dvw-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-top: 28px;
}

.dvw-footer .dvw-footer__copy,
.dvw-footer .dvw-footer__policy {
    font-size: 13px;
    color: #7a8398;
}

.dvw-footer .dvw-footer__policy-sep {
    margin: 0 8px;
}

/* ============================================================
   NÚT LÊN ĐẦU TRANG
   ============================================================ */
.dvw-totop {
    position: fixed;
    right: 26px;
    bottom: 26px;
    z-index: 800;
    width: 50px;
    height: 50px;
    border: none;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    box-shadow: 0 14px 30px rgba(255, 107, 53, 0.4);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
}

.dvw-totop.dvw-totop--visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.dvw-totop:hover {
    transform: translateY(-4px);
}

.dvw-totop .dvw-totop__arrow {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 12px;
    border-top: 3px solid #ffffff;
    border-left: 3px solid #ffffff;
    border-radius: 2px;
    transform: translate(-50%, -35%) rotate(45deg);
}

/* ============================================================
   MODAL TƯ VẤN
   ============================================================ */
.dvw-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.dvw-modal.dvw-modal--open {
    opacity: 1;
    visibility: visible;
}

.dvw-modal .dvw-modal__overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(20, 24, 31, 0.6);
    backdrop-filter: blur(4px);
}

.dvw-modal .dvw-modal__dialog {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 560px;
    max-height: 90vh;
    overflow-y: auto;
    background-color: #ffffff;
    border-radius: 24px;
    padding: 42px 40px 40px;
    box-shadow: 0 50px 100px rgba(20, 24, 31, 0.35);
    transform: translateY(24px) scale(0.98);
    transition: transform 0.35s ease;
}

.dvw-modal.dvw-modal--open .dvw-modal__dialog {
    transform: translateY(0) scale(1);
}

.dvw-modal .dvw-modal__close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 38px;
    height: 38px;
    border: none;
    border-radius: 12px;
    background-color: #f4eee9;
    color: #55607a;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    transition: background-color 0.22s ease, color 0.22s ease;
}

.dvw-modal .dvw-modal__close:hover {
    background-color: var(--theme-color);
    color: #ffffff;
}

.dvw-modal .dvw-modal__head {
    margin-bottom: 26px;
    padding-right: 30px;
}

.dvw-modal .dvw-modal__title {
    font-size: 26px;
    font-weight: 800;
    letter-spacing: -0.4px;
    color: #14181f;
    margin-bottom: 8px;
}

.dvw-modal .dvw-modal__subtitle {
    font-size: 15px;
    color: #55607a;
}

.dvw-modal .dvw-modal__form-row {
    row-gap: 18px;
    margin-bottom: 22px;
}

.dvw-modal .dvw-modal__field {
    display: flex;
    flex-direction: column;
}

.dvw-modal .dvw-modal__label {
    font-size: 13px;
    font-weight: 700;
    color: #3d4351;
    margin-bottom: 7px;
}

.dvw-modal .dvw-modal__input {
    width: 100%;
    padding: 13px 16px;
    border: 1px solid #e2dad3;
    border-radius: 12px;
    font-family: inherit;
    font-size: 15px;
    color: #1f2430;
    background-color: #fdfbfa;
    transition: border-color 0.22s ease, box-shadow 0.22s ease;
}

.dvw-modal .dvw-modal__input:focus {
    outline: none;
    border-color: var(--theme-color);
    box-shadow: 0 0 0 4px rgba(255, 107, 53, 0.14);
}

.dvw-modal .dvw-modal__textarea {
    resize: vertical;
    min-height: 84px;
}

.dvw-modal .dvw-modal__select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23D94E1D' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right: 42px;
}

.dvw-modal .dvw-modal__field--invalid .dvw-modal__input {
    border-color: #e53935;
    background-color: #fff5f5;
}

.dvw-modal .dvw-modal__error {
    display: none;
    margin-top: 6px;
    font-size: 12px;
    font-weight: 600;
    color: #e53935;
}

.dvw-modal .dvw-modal__field--invalid .dvw-modal__error {
    display: block;
}

.dvw-modal .dvw-modal__submit {
    width: 100%;
}

.dvw-modal .dvw-modal__success {
    display: none;
    margin-top: 18px;
    padding: 14px 18px;
    border-radius: 12px;
    background-color: rgba(76, 175, 80, 0.12);
    color: var(--theme-color4);
    font-size: 14px;
    font-weight: 600;
    text-align: center;
}

.dvw-modal .dvw-modal__success.dvw-modal__success--show {
    display: block;
}

.dvw-body.dvw-no-scroll {
    overflow: hidden;
}

/* ============================================================
   GIAO DIỆN WEBSITE NỔI BẬT
   ============================================================ */
.dvw-templates {
    padding-top: 110px;
    padding-bottom: 110px;
}
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-templates.blockbg:not(.bg) { background: none; }
.dvw-templates.blockbg.bg { background-color: #ffffff; }

.dvw-templates .dvw-templates__head {
    text-align: center;
    margin-bottom: 38px;
}

.dvw-templates .dvw-templates__eyebrow {
    display: inline-block;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-templates .dvw-templates__title {
    font-size: 38px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.6px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-templates .dvw-templates__desc {
    font-size: 17px;
    color: #55607a;
}

.dvw-templates .dvw-templates__filter {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-bottom: 46px;
}

.dvw-templates .dvw-templates__filter-btn {
    display: inline-block;
    padding: 10px 20px;
    border: 1px solid #f0d9cd;
    border-radius: 40px;
    background-color: #ffffff;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    color: #55607a;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.dvw-templates .dvw-templates__filter-btn:hover {
    transform: translateY(-2px);
    border-color: var(--theme-color);
    color: var(--theme-color2);
}

.dvw-templates .dvw-templates__filter-btn.dvw-templates__filter-btn--active {
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    border-color: transparent;
    color: #ffffff;
}

.dvw-templates .dvw-templates__grid {
    row-gap: 30px;
}

.dvw-templates .dvw-templates__col--hide {
    display: none;
}

.dvw-templates .dvw-templates__more {
    text-align: center;
    margin-top: 48px;
}

/* Thanh công cụ: tìm kiếm + bộ lọc (trang Kho giao diện) */
.dvw-templates .dvw-templates__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 44px;
}

.dvw-templates .dvw-templates__toolbar .dvw-templates__filter {
    margin-bottom: 0;
    justify-content: flex-end;
}

.dvw-templates .dvw-templates__search {
    position: relative;
    flex: 1 1 280px;
    max-width: 380px;
}

.dvw-templates .dvw-templates__search-icon {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    color: #9aa2b4;
    pointer-events: none;
}

.dvw-templates .dvw-templates__search-icon-svg {
    width: 17px;
    height: 17px;
}

.dvw-templates .dvw-templates__search-input {
    width: 100%;
    padding: 13px 18px 13px 44px;
    border: 1px solid #f0d9cd;
    border-radius: 40px;
    font-family: inherit;
    font-size: 14px;
    color: #1f2430;
    background-color: #ffffff;
    transition: border-color 0.22s ease, box-shadow 0.22s ease;
}

.dvw-templates .dvw-templates__search-input:focus {
    outline: none;
    border-color: var(--theme-color);
    box-shadow: 0 0 0 4px rgba(255, 107, 53, 0.14);
}

.dvw-templates .dvw-templates__empty {
    display: none;
    margin: 0 0 40px;
    padding: 18px 22px;
    border-radius: 14px;
    background-color: var(--theme-color5);
    color: var(--theme-color2);
    font-size: 14px;
    font-weight: 600;
    text-align: center;
}

.dvw-templates .dvw-templates__empty.dvw-templates__empty--show {
    display: block;
}

/* Ghi chú: CSS thẻ item sản phẩm (.dvw-templates__item, __frame, __bar*, __shot, __img,
   __placeholder*, __preview*, __body, __cat, __name*, __text, __price*, __soldout, __discount)
   đã CHUYỂN sang public/site/css/mau.css (không còn nằm ở đây) vì site/page/danhmuc/item.php
   dùng CHUNG 1 kiểu thẻ này cho MỌI trang (danh mục, liên quan, tìm kiếm...), kể cả những trang
   KHÔNG nạp builder.css (builder.css chỉ nạp khi $temp === 'site/page/builder/render' — xem
   site/layout.php). Phần còn lại ở đây (__head, __eyebrow, __title, __desc, __filter*, __grid,
   __toolbar, __search*, __empty*, __more) chỉ dùng khi section nằm TRONG trang do Builder tạo. */

/* ============================================================
   TRANG CON: BREADCRUMB
   ============================================================ */
.dvw-hero.dvw-hero--sub {
    padding-top: 150px;
}

.dvw-breadcrumb {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
}

.dvw-breadcrumb .dvw-breadcrumb__link {
    color: var(--theme-color2);
    text-decoration: none;
    transition: color 0.2s ease;
}

.dvw-breadcrumb .dvw-breadcrumb__link:hover {
    color: var(--theme-color);
}

.dvw-breadcrumb .dvw-breadcrumb__sep {
    color: #c9a996;
}

.dvw-breadcrumb .dvw-breadcrumb__current {
    color: #7a8398;
}

.dvw-hero .dvw-breadcrumb {
    margin-bottom: 30px;
}

/* ============================================================
   TRANG CON: PAGE HEAD (đầu trang gọn)
   ============================================================ */
.dvw-pagehead {
    position: relative;
    padding-top: 148px;
    padding-bottom: 62px;
    background: linear-gradient(180deg, var(--theme-color5) 0%, #ffffff 100%);
    overflow: hidden;
}

.dvw-pagehead .dvw-pagehead__blob {
    position: absolute;
    top: -160px;
    right: -120px;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background: rgba(255, 107, 53, 0.16);
    filter: blur(80px);
    pointer-events: none;
}

.dvw-pagehead .dvw-pagehead__inner {
    position: relative;
    z-index: 1;
    text-align: center;
}

.dvw-pagehead .dvw-breadcrumb {
    justify-content: center;
    margin-bottom: 20px;
}

.dvw-pagehead .dvw-pagehead__eyebrow {
    display: inline-block;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-pagehead .dvw-pagehead__title {
    font-size: 42px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: -0.8px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-pagehead .dvw-pagehead__desc {
    max-width: 640px;
    margin: 0 auto;
    font-size: 17px;
    color: #55607a;
}

/* ============================================================
   CHI TIẾT GIAO DIỆN
   ============================================================ */
.dvw-tpl-detail {
    padding-top: 150px;
    padding-bottom: 96px;
    background: linear-gradient(180deg, var(--theme-color5) 0%, #ffffff 62%);
}

.dvw-tpl-detail .dvw-tpl-detail__crumb {
    margin-bottom: 34px;
}

.dvw-tpl-detail .dvw-tpl-detail__row {
    row-gap: 44px;
    align-items: flex-start;
}

.dvw-tpl-detail .dvw-tpl-detail__frame {
    background-color: #ffffff;
    border: 1px solid #f1e4dc;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 34px 70px rgba(31, 36, 48, 0.16);
}

.dvw-tpl-detail .dvw-tpl-detail__bar {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 13px 16px;
    background-color: #fbf3ef;
    border-bottom: 1px solid #f1e4dc;
}

.dvw-tpl-detail .dvw-tpl-detail__bar-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #e4c7ba;
}

.dvw-tpl-detail .dvw-tpl-detail__bar-url {
    margin-left: 10px;
    padding: 4px 14px;
    border-radius: 20px;
    background-color: #ffffff;
    border: 1px solid #f1e4dc;
    font-size: 11px;
    color: #9aa2b4;
}

.dvw-tpl-detail .dvw-tpl-detail__main {
    height: 420px;
    overflow: hidden;
    background-color: #f0e2da;
}

.dvw-tpl-detail .dvw-tpl-detail__main .swiper-slide {
    height: 100%;
    overflow: hidden;
}

.dvw-tpl-detail .dvw-tpl-detail__main-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: top center;
}

.dvw-tpl-detail .dvw-tpl-detail__thumbs {
    margin-top: 14px;
    overflow: hidden;
}

.dvw-tpl-detail .dvw-tpl-detail__thumb {
    border: 2px solid transparent;
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    transition: border-color 0.25s ease, transform 0.25s ease;
}

.dvw-tpl-detail .dvw-tpl-detail__thumb:hover {
    transform: translateY(-3px);
}

.dvw-tpl-detail .dvw-tpl-detail__thumb.swiper-slide-thumb-active {
    border-color: var(--theme-color);
}

.dvw-tpl-detail .dvw-tpl-detail__thumb-img {
    width: 100%;
    height: 74px;
    display: block;
    object-fit: cover;
}

.dvw-tpl-detail .dvw-tpl-detail__cat {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 30px;
    background-color: var(--theme-color5);
    color: var(--theme-color2);
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 14px;
}

.dvw-tpl-detail .dvw-tpl-detail__name {
    font-size: 36px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: -0.6px;
    color: #14181f;
    margin-bottom: 12px;
}

.dvw-tpl-detail .dvw-tpl-detail__rating {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
}

.dvw-tpl-detail .dvw-tpl-detail__stars {
    color: var(--theme-color);
    font-size: 16px;
    letter-spacing: 3px;
}

.dvw-tpl-detail .dvw-tpl-detail__rating-text {
    font-size: 13px;
    color: #7a8398;
}

.dvw-tpl-detail .dvw-tpl-detail__lead {
    font-size: 16px;
    color: #55607a;
    margin-bottom: 22px;
}

.dvw-tpl-detail .dvw-tpl-detail__price {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding-bottom: 22px;
    margin-bottom: 22px;
    border-bottom: 1px solid #f0e2da;
}

.dvw-tpl-detail .dvw-tpl-detail__price-now {
    font-size: 34px;
    font-weight: 800;
    letter-spacing: -1px;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--theme-color);
}

.dvw-tpl-detail .dvw-tpl-detail__price-old {
    font-size: 18px;
    font-weight: 600;
    color: #9aa2b4;
    text-decoration: line-through;
}

.dvw-tpl-detail .dvw-tpl-detail__list {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px 20px;
    margin-bottom: 28px;
}

.dvw-tpl-detail .dvw-tpl-detail__list-item {
    position: relative;
    padding-left: 26px;
    font-size: 14px;
    font-weight: 500;
    color: #3d4351;
}

.dvw-tpl-detail .dvw-tpl-detail__list-item::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 1px;
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: rgba(76, 175, 80, 0.16);
    color: var(--theme-color4);
    font-size: 11px;
    font-weight: 800;
}

.dvw-tpl-detail .dvw-tpl-detail__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 28px;
}

.dvw-tpl-detail .dvw-tpl-detail__meta {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.dvw-tpl-detail .dvw-tpl-detail__meta-item {
    padding: 14px 16px;
    background-color: #ffffff;
    border: 1px solid #f1e4dc;
    border-radius: 14px;
}

.dvw-tpl-detail .dvw-tpl-detail__meta-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: #9aa2b4;
    margin-bottom: 4px;
}

.dvw-tpl-detail .dvw-tpl-detail__meta-value {
    font-size: 14px;
    font-weight: 700;
    color: #14181f;
}

/* ============================================================
   TIN TỨC — BỐ CỤC BÁO MẠNG
   ============================================================ */
.dvw-news {
    padding-top: 64px;
    padding-bottom: 110px;
}
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-news.blockbg:not(.bg) { background: none; }
.dvw-news.blockbg.bg { background-color: #ffffff; }

.dvw-news .dvw-news__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    font-size: 12px;
    color: #7a8398;
}

.dvw-news .dvw-news__meta-dot {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background-color: #c9b3a6;
}

.dvw-news .dvw-news__tag {
    display: inline-block;
    padding: 5px 11px;
    border-radius: 6px;
    background-color: var(--theme-color);
    color: #ffffff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin-bottom: 12px;
}

/* --- Khối tin nổi bật đầu trang --- */
.dvw-news .dvw-news__lead {
    row-gap: 34px;
    margin-bottom: 20px;
}

.dvw-news .dvw-news__lead-main {
    display: block;
}

.dvw-news .dvw-news__lead-media {
    display: block;
    position: relative;
    height: 380px;
    border-radius: 18px;
    overflow: hidden;
    background-color: #f0e2da;
    margin-bottom: 20px;
}

.dvw-news .dvw-news__lead-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.dvw-news .dvw-news__lead-main:hover .dvw-news__lead-img {
    transform: scale(1.04);
}

.dvw-news .dvw-news__lead-title {
    font-size: 27px;
    line-height: 1.3;
    font-weight: 800;
    letter-spacing: -0.4px;
    margin-bottom: 12px;
}

.dvw-news .dvw-news__lead-title-link {
    color: #14181f;
    text-decoration: none;
    transition: color 0.22s ease;
}

.dvw-news .dvw-news__lead-title-link:hover {
    color: var(--theme-color2);
}

.dvw-news .dvw-news__lead-excerpt {
    font-size: 15px;
    color: #55607a;
    margin-bottom: 14px;
}

.dvw-news .dvw-news__lead-side {
    display: flex;
    flex-direction: column;
}

.dvw-news .dvw-news__mini {
    display: flex;
    gap: 16px;
    padding: 18px 0;
    border-top: 1px solid #f1e4dc;
}

.dvw-news .dvw-news__mini:first-child {
    padding-top: 0;
    border-top: none;
}

.dvw-news .dvw-news__mini-thumb {
    display: block;
    width: 104px;
    height: 78px;
    flex-shrink: 0;
    border-radius: 12px;
    overflow: hidden;
    background-color: #f0e2da;
}

.dvw-news .dvw-news__mini-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.dvw-news .dvw-news__mini:hover .dvw-news__mini-img {
    transform: scale(1.06);
}

.dvw-news .dvw-news__mini-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;
}

.dvw-news .dvw-news__mini-tag {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    color: var(--theme-color2);
    margin-bottom: 6px;
}

.dvw-news .dvw-news__mini-title {
    font-size: 14px;
    line-height: 1.45;
    font-weight: 700;
    margin-bottom: 6px;
}

.dvw-news .dvw-news__mini-title-link {
    color: #14181f;
    text-decoration: none;
    transition: color 0.22s ease;
}

.dvw-news .dvw-news__mini-title-link:hover {
    color: var(--theme-color2);
}

/* --- Khối theo danh mục --- */
.dvw-news .dvw-news__cat {
    padding-top: 46px;
    margin-top: 58px;
    border-top: 2px solid #f1e4dc;
}

.dvw-news .dvw-news__cat-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 30px;
}

.dvw-news .dvw-news__cat-title {
    position: relative;
    padding-left: 16px;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -0.3px;
    color: #14181f;
}

.dvw-news .dvw-news__cat-title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 4px;
    width: 5px;
    border-radius: 5px;
    background: linear-gradient(180deg, var(--theme-color) 0%, var(--theme-color2) 100%);
}

.dvw-news .dvw-news__cat-all {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    color: var(--theme-color2);
    text-decoration: none;
    transition: gap 0.22s ease, color 0.22s ease;
}

.dvw-news .dvw-news__cat-all:hover {
    gap: 10px;
    color: var(--theme-color);
}

.dvw-news .dvw-news__cat-row {
    row-gap: 30px;
}

.dvw-news .dvw-news__cat-feature-media {
    display: block;
    position: relative;
    height: 264px;
    border-radius: 16px;
    overflow: hidden;
    background-color: #f0e2da;
    margin-bottom: 16px;
}

.dvw-news .dvw-news__cat-feature-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.dvw-news .dvw-news__cat-feature:hover .dvw-news__cat-feature-img {
    transform: scale(1.05);
}

.dvw-news .dvw-news__cat-feature-title {
    font-size: 20px;
    line-height: 1.35;
    font-weight: 800;
    margin-bottom: 10px;
}

.dvw-news .dvw-news__cat-feature-title-link {
    color: #14181f;
    text-decoration: none;
    transition: color 0.22s ease;
}

.dvw-news .dvw-news__cat-feature-title-link:hover {
    color: var(--theme-color2);
}

.dvw-news .dvw-news__cat-feature-excerpt {
    font-size: 14px;
    color: #55607a;
    margin-bottom: 12px;
}

.dvw-news .dvw-news__cat-list {
    display: flex;
    flex-direction: column;
}

.dvw-news .dvw-news__cat-item {
    display: flex;
    gap: 16px;
    padding: 16px 0;
    border-top: 1px solid #f1e4dc;
}

.dvw-news .dvw-news__cat-item:first-child {
    padding-top: 0;
    border-top: none;
}

.dvw-news .dvw-news__cat-item-thumb {
    display: block;
    width: 118px;
    height: 86px;
    flex-shrink: 0;
    border-radius: 12px;
    overflow: hidden;
    background-color: #f0e2da;
}

.dvw-news .dvw-news__cat-item-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.dvw-news .dvw-news__cat-item:hover .dvw-news__cat-item-img {
    transform: scale(1.06);
}

.dvw-news .dvw-news__cat-item-body {
    flex: 1 1 auto;
    min-width: 0;
}

.dvw-news .dvw-news__cat-item-title {
    font-size: 15px;
    line-height: 1.4;
    font-weight: 700;
    margin-bottom: 6px;
}

.dvw-news .dvw-news__cat-item-title-link {
    color: #14181f;
    text-decoration: none;
    transition: color 0.22s ease;
}

.dvw-news .dvw-news__cat-item-title-link:hover {
    color: var(--theme-color2);
}

/* ============================================================
   SIDEBAR TIN TỨC (banner quảng cáo + widget)
   ============================================================ */
.dvw-sidebar {
    position: sticky;
    top: 96px;
    display: flex;
    flex-direction: column;
    gap: 26px;
}

.dvw-sidebar .dvw-sidebar__ad {
    display: block;
}

.dvw-sidebar .dvw-sidebar__ad-label {
    display: block;
    margin-bottom: 6px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #b3a99f;
}

.dvw-sidebar .dvw-sidebar__ad-frame {
    display: block;
    border-radius: 16px;
    overflow: hidden;
    background-color: #f4ede8;
    border: 1px solid #efe9e4;
}

.dvw-sidebar .dvw-sidebar__ad-img {
    width: 100%;
    height: auto;
    display: block;
    transition: opacity 0.25s ease;
}

.dvw-sidebar .dvw-sidebar__ad-frame:hover .dvw-sidebar__ad-img {
    opacity: 0.9;
}

.dvw-sidebar .dvw-sidebar__widget {
    padding: 24px 22px;
    border: 1px solid #efe9e4;
    border-radius: 16px;
    background-color: #ffffff;
}

.dvw-sidebar .dvw-sidebar__widget-title {
    position: relative;
    padding-left: 14px;
    font-size: 16px;
    font-weight: 800;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-sidebar .dvw-sidebar__widget-title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 3px;
    bottom: 3px;
    width: 4px;
    border-radius: 4px;
    background: linear-gradient(180deg, var(--theme-color) 0%, var(--theme-color2) 100%);
}

.dvw-sidebar .dvw-sidebar__list {
    list-style: none;
    display: flex;
    flex-direction: column;
}

.dvw-sidebar .dvw-sidebar__list-item {
    padding: 12px 0;
    border-top: 1px solid #f4ede8;
}

.dvw-sidebar .dvw-sidebar__list-item:first-child {
    padding-top: 0;
    border-top: none;
}

.dvw-sidebar .dvw-sidebar__list-link {
    display: block;
    font-size: 14px;
    line-height: 1.45;
    font-weight: 600;
    color: #14181f;
    text-decoration: none;
    transition: color 0.2s ease;
}

.dvw-sidebar .dvw-sidebar__list-link:hover {
    color: var(--theme-color2);
}

.dvw-sidebar .dvw-sidebar__list-date {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    color: #9aa2b4;
}

.dvw-sidebar .dvw-sidebar__cats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.dvw-sidebar .dvw-sidebar__cat {
    display: inline-block;
    padding: 7px 14px;
    border: 1px solid #f0d9cd;
    border-radius: 30px;
    font-size: 12px;
    font-weight: 600;
    color: #55607a;
    text-decoration: none;
    transition: border-color 0.2s ease, color 0.2s ease;
}

.dvw-sidebar .dvw-sidebar__cat:hover {
    border-color: var(--theme-color);
    color: var(--theme-color2);
}

/* ============================================================
   TRANG DANH MỤC TIN TỨC
   ============================================================ */
.dvw-cat-page {
    padding-top: 58px;
    padding-bottom: 100px;
}
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-cat-page.blockbg:not(.bg) { background: none; }
.dvw-cat-page.blockbg.bg { background-color: #ffffff; }

.dvw-cat-page .dvw-cat-page__row {
    row-gap: 46px;
}

.dvw-cat-page .dvw-cat-page__list {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.dvw-cat-page .dvw-artcard {
    display: flex;
    gap: 22px;
}

.dvw-cat-page .dvw-artcard__media {
    display: block;
    flex-shrink: 0;
    width: 246px;
    height: 172px;
    border-radius: 14px;
    overflow: hidden;
    background-color: #f0e2da;
}

.dvw-cat-page .dvw-artcard__img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.dvw-cat-page .dvw-artcard:hover .dvw-artcard__img {
    transform: scale(1.05);
}

.dvw-cat-page .dvw-artcard__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.dvw-cat-page .dvw-artcard__tag {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    color: var(--theme-color2);
    margin-bottom: 8px;
}

.dvw-cat-page .dvw-artcard__title {
    font-size: 19px;
    line-height: 1.35;
    font-weight: 800;
    margin-bottom: 8px;
}

.dvw-cat-page .dvw-artcard__title-link {
    color: #14181f;
    text-decoration: none;
    transition: color 0.22s ease;
}

.dvw-cat-page .dvw-artcard__title-link:hover {
    color: var(--theme-color2);
}

.dvw-cat-page .dvw-artcard__excerpt {
    font-size: 14px;
    color: #55607a;
    margin-bottom: 12px;
}

.dvw-cat-page .dvw-artcard__meta {
    margin-top: auto;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    color: #7a8398;
}

.dvw-cat-page .dvw-artcard__meta-dot {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background-color: #c9b3a6;
}

.dvw-cat-page .dvw-pager {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 44px;
}

.dvw-cat-page .dvw-pager__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 12px;
    border: 1px solid #f0d9cd;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    color: #55607a;
    text-decoration: none;
    transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.dvw-cat-page .dvw-pager__link:hover {
    border-color: var(--theme-color);
    color: var(--theme-color2);
}

.dvw-cat-page .dvw-pager__link.dvw-pager__link--active {
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    border-color: transparent;
    color: #ffffff;
}

.dvw-cat-page .dvw-pager__link.dvw-pager__link--disabled {
    opacity: 0.45;
    pointer-events: none;
}

/* ============================================================
   TRANG CHI TIẾT TIN TỨC
   ============================================================ */
.dvw-article {
    padding-top: 130px;
    padding-bottom: 100px;
}
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-article.blockbg:not(.bg) { background: none; }
.dvw-article.blockbg.bg { background-color: #ffffff; }

.dvw-article .dvw-article__row {
    row-gap: 46px;
}

.dvw-article .dvw-article__crumb {
    margin-bottom: 22px;
}

.dvw-article .dvw-article__tag {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 6px;
    background-color: var(--theme-color);
    color: #ffffff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-article .dvw-article__title {
    font-size: 32px;
    line-height: 1.28;
    font-weight: 800;
    letter-spacing: -0.5px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-article .dvw-article__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    font-size: 13px;
    color: #7a8398;
    margin-bottom: 26px;
}

.dvw-article .dvw-article__meta-dot {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background-color: #c9b3a6;
}

.dvw-article .dvw-article__cover {
    border-radius: 18px;
    overflow: hidden;
    margin-bottom: 30px;
    background-color: #f0e2da;
}

.dvw-article .dvw-article__cover-img {
    width: 100%;
    height: auto;
    display: block;
}

.dvw-article .dvw-article__lead {
    font-size: 17px;
    line-height: 1.75;
    font-weight: 500;
    color: #3d4351;
    margin-bottom: 20px;
}

.dvw-article .dvw-article__p {
    font-size: 16px;
    line-height: 1.8;
    color: #3d4351;
    margin-bottom: 18px;
}

.dvw-article .dvw-article__h3 {
    font-size: 21px;
    font-weight: 800;
    color: #14181f;
    margin: 32px 0 14px;
}

.dvw-article .dvw-article__list {
    list-style: none;
    margin: 0 0 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.dvw-article .dvw-article__list-item {
    position: relative;
    padding-left: 26px;
    font-size: 16px;
    line-height: 1.7;
    color: #3d4351;
}

.dvw-article .dvw-article__list-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 11px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
}

.dvw-article .dvw-article__quote {
    margin: 26px 0;
    padding: 20px 24px;
    border-left: 4px solid var(--theme-color);
    border-radius: 0 12px 12px 0;
    background-color: var(--theme-color5);
    font-size: 16px;
    line-height: 1.7;
    font-style: italic;
    color: #3d4351;
}

.dvw-article .dvw-article__figure {
    margin: 26px 0;
}

.dvw-article .dvw-article__figure-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 14px;
}

.dvw-article .dvw-article__figure-cap {
    margin-top: 8px;
    font-size: 12px;
    color: #9aa2b4;
    text-align: center;
}

.dvw-article .dvw-article__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 32px 0;
    padding-top: 24px;
    border-top: 1px solid #f1e4dc;
}

.dvw-article .dvw-article__tag-chip {
    display: inline-block;
    padding: 7px 14px;
    border-radius: 30px;
    background-color: var(--theme-color5);
    color: var(--theme-color2);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    transition: background-color 0.2s ease;
}

.dvw-article .dvw-article__tag-chip:hover {
    background-color: #ffd8c7;
}

.dvw-article .dvw-article__author {
    display: flex;
    gap: 16px;
    padding: 24px;
    border: 1px solid #efe9e4;
    border-radius: 16px;
    margin-bottom: 36px;
}

.dvw-article .dvw-article__author-avatar {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
}

.dvw-article .dvw-article__author-name {
    font-size: 15px;
    font-weight: 800;
    color: #14181f;
    margin-bottom: 4px;
}

.dvw-article .dvw-article__author-bio {
    font-size: 13px;
    color: #5a6377;
}

.dvw-article .dvw-article__related-title {
    font-size: 20px;
    font-weight: 800;
    color: #14181f;
    margin-bottom: 18px;
}

.dvw-article .dvw-article__related-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.dvw-article .dvw-article__related-item {
    display: flex;
    gap: 14px;
}

.dvw-article .dvw-article__related-thumb {
    display: block;
    flex-shrink: 0;
    width: 112px;
    height: 82px;
    border-radius: 10px;
    overflow: hidden;
    background-color: #f0e2da;
}

.dvw-article .dvw-article__related-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.dvw-article .dvw-article__related-link {
    font-size: 14px;
    line-height: 1.4;
    font-weight: 700;
    color: #14181f;
    text-decoration: none;
    transition: color 0.2s ease;
}

.dvw-article .dvw-article__related-link:hover {
    color: var(--theme-color2);
}

/* ============================================================
   TRANG GIỚI THIỆU: ĐỘI NGŨ
   ============================================================ */
.dvw-team {
    padding-top: 110px;
    padding-bottom: 110px;
}
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-team.blockbg:not(.bg) { background: none; }
.dvw-team.blockbg.bg { background-color: #fbf5f1; }

.dvw-team .dvw-team__head {
    text-align: center;
    margin-bottom: 56px;
}

.dvw-team .dvw-team__eyebrow {
    display: inline-block;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-team .dvw-team__title {
    font-size: 38px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.6px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-team .dvw-team__desc {
    font-size: 17px;
    color: #55607a;
}

.dvw-team .dvw-team__grid {
    row-gap: 30px;
}

.dvw-team .dvw-team__card {
    height: 100%;
    background-color: #ffffff;
    border: 1px solid #efe9e4;
    border-radius: 20px;
    overflow: hidden;
    text-align: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.dvw-team .dvw-team__card:hover {
    transform: translateY(-8px);
    border-color: #ffd3c1;
    box-shadow: 0 26px 50px rgba(31, 36, 48, 0.12);
}

.dvw-team .dvw-team__photo {
    position: relative;
    height: 240px;
    overflow: hidden;
    background-color: #f0e2da;
}

.dvw-team .dvw-team__photo-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.dvw-team .dvw-team__card:hover .dvw-team__photo-img {
    transform: scale(1.06);
}

.dvw-team .dvw-team__body {
    padding: 22px 20px 26px;
}

.dvw-team .dvw-team__name {
    font-size: 17px;
    font-weight: 800;
    color: #14181f;
    margin-bottom: 4px;
}

.dvw-team .dvw-team__role {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--theme-color2);
    margin-bottom: 12px;
}

.dvw-team .dvw-team__bio {
    font-size: 13px;
    color: #5a6377;
    margin-bottom: 16px;
}

.dvw-team .dvw-team__socials {
    display: flex;
    justify-content: center;
    gap: 8px;
}

.dvw-team .dvw-team__social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background-color: var(--theme-color5);
    color: var(--theme-color2);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    transition: background 0.22s ease, color 0.22s ease, transform 0.22s ease;
}

.dvw-team .dvw-team__social:hover {
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    color: #ffffff;
    transform: translateY(-2px);
}

/* ============================================================
   TRANG LIÊN HỆ
   ============================================================ */
.dvw-contact {
    padding-top: 58px;
    padding-bottom: 110px;
}
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-contact.blockbg:not(.bg) { background: none; }
.dvw-contact.blockbg.bg { background-color: #ffffff; }

.dvw-contact .dvw-contact__cards {
    row-gap: 24px;
    margin-bottom: 84px;
}

.dvw-contact .dvw-contact__card {
    display: block;
    height: 100%;
    padding: 28px 24px;
    background-color: #ffffff;
    border: 1px solid #efe9e4;
    border-radius: 18px;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.dvw-contact .dvw-contact__card:hover {
    transform: translateY(-6px);
    border-color: #ffd3c1;
    box-shadow: 0 22px 44px rgba(31, 36, 48, 0.1);
}

.dvw-contact .dvw-contact__card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 14px;
    background-color: var(--theme-color5);
    color: var(--theme-color2);
    margin-bottom: 18px;
}

.dvw-contact .dvw-contact__card-icon-svg {
    width: 22px;
    height: 22px;
}

.dvw-contact .dvw-contact__card-label {
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: #9aa2b4;
    margin-bottom: 8px;
}

.dvw-contact .dvw-contact__card-value {
    display: block;
    font-size: 16px;
    font-weight: 700;
    color: #14181f;
    line-height: 1.5;
}

.dvw-contact .dvw-contact__head {
    text-align: center;
    margin-bottom: 44px;
}

.dvw-contact .dvw-contact__eyebrow {
    display: inline-block;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-contact .dvw-contact__title {
    font-size: 34px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.5px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-contact .dvw-contact__desc {
    font-size: 17px;
    color: #55607a;
}

.dvw-contact .dvw-contact__row {
    row-gap: 30px;
    align-items: stretch;
}

.dvw-contact .dvw-contact__map {
    height: 100%;
    min-height: 360px;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid #f1e4dc;
}

.dvw-contact .dvw-contact__map-frame {
    width: 100%;
    height: 100%;
    min-height: 360px;
    border: 0;
    display: block;
}

.dvw-contact .dvw-contact__form-box {
    height: 100%;
    padding: 34px 32px;
    background-color: #fbf5f1;
    border: 1px solid #f1e4dc;
    border-radius: 20px;
}

.dvw-contact .dvw-contact__form-row {
    row-gap: 18px;
    margin-bottom: 6px;
}

.dvw-contact .dvw-contact__field {
    display: flex;
    flex-direction: column;
}

.dvw-contact .dvw-contact__label {
    font-size: 13px;
    font-weight: 700;
    color: #3d4351;
    margin-bottom: 7px;
}

.dvw-contact .dvw-contact__input {
    width: 100%;
    padding: 13px 16px;
    border: 1px solid #e2dad3;
    border-radius: 12px;
    font-family: inherit;
    font-size: 15px;
    color: #1f2430;
    background-color: #ffffff;
    transition: border-color 0.22s ease, box-shadow 0.22s ease;
}

.dvw-contact .dvw-contact__input:focus {
    outline: none;
    border-color: var(--theme-color);
    box-shadow: 0 0 0 4px rgba(255, 107, 53, 0.14);
}

.dvw-contact .dvw-contact__textarea {
    resize: vertical;
    min-height: 120px;
}

.dvw-contact .dvw-contact__select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23D94E1D' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right: 42px;
}

.dvw-contact .dvw-contact__field--invalid .dvw-contact__input {
    border-color: #e53935;
    background-color: #fff5f5;
}

.dvw-contact .dvw-contact__error {
    display: none;
    margin-top: 6px;
    font-size: 12px;
    font-weight: 600;
    color: #e53935;
}

.dvw-contact .dvw-contact__field--invalid .dvw-contact__error {
    display: block;
}

.dvw-contact .dvw-contact__submit {
    width: 100%;
    margin-top: 18px;
}

.dvw-contact .dvw-contact__success {
    display: none;
    margin-top: 16px;
    padding: 14px 18px;
    border-radius: 12px;
    background-color: rgba(76, 175, 80, 0.12);
    color: var(--theme-color4);
    font-size: 14px;
    font-weight: 600;
    text-align: center;
}

.dvw-contact .dvw-contact__success.dvw-contact__success--show {
    display: block;
}

/* ============================================================
   TRANG GIỚI THIỆU: VIDEO (PLYR)
   ============================================================ */
.dvw-video {
    padding-top: 110px;
    padding-bottom: 110px;
}
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-video.blockbg:not(.bg) { background: none; }
.dvw-video.blockbg.bg { background-color: #fbf5f1; }

.dvw-video .dvw-video__head {
    text-align: center;
    margin-bottom: 44px;
}

.dvw-video .dvw-video__eyebrow {
    display: inline-block;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-video .dvw-video__title {
    font-size: 34px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.5px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-video .dvw-video__desc {
    font-size: 17px;
    color: #55607a;
}

.dvw-video .dvw-video__frame {
    /* Đổi màu giao diện trình phát Plyr theo màu thương hiệu */
    --plyr-color-main: var(--theme-color);
    border-radius: 22px;
    overflow: hidden;
    background-color: #14181f;
    border: 1px solid #f1e4dc;
    box-shadow: 0 34px 70px rgba(31, 36, 48, 0.16);
}

.dvw-video .dvw-video__player {
    width: 100%;
    display: block;
}

/* ============================================================
   TRANG CON: TỔNG QUAN DỊCH VỤ
   ============================================================ */
.dvw-intro {
    padding-top: 110px;
    padding-bottom: 110px;
}
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-intro.blockbg:not(.bg) { background: none; }
.dvw-intro.blockbg.bg { background-color: #ffffff; }

.dvw-intro .dvw-intro__row {
    row-gap: 44px;
}

.dvw-intro .dvw-intro__media {
    position: relative;
    border-radius: 24px;
}

.dvw-intro .dvw-intro__img {
    width: 100%;
    height: 460px;
    display: block;
    object-fit: cover;
    border-radius: 24px;
}

.dvw-intro .dvw-intro__badge {
    position: absolute;
    left: 24px;
    bottom: 24px;
    display: flex;
    flex-direction: column;
    padding: 16px 22px;
    border-radius: 16px;
    background-color: #ffffff;
    box-shadow: 0 20px 40px rgba(31, 36, 48, 0.18);
}

.dvw-intro .dvw-intro__badge-num {
    font-size: 26px;
    font-weight: 800;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--theme-color);
}

.dvw-intro .dvw-intro__badge-label {
    font-size: 13px;
    font-weight: 600;
    color: #55607a;
}

.dvw-intro .dvw-intro__eyebrow {
    display: inline-block;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-intro .dvw-intro__title {
    font-size: 34px;
    line-height: 1.3;
    font-weight: 800;
    letter-spacing: -0.5px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-intro .dvw-intro__text {
    font-size: 16px;
    color: #55607a;
    margin-bottom: 14px;
}

.dvw-intro .dvw-intro__list {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px 20px;
    margin: 22px 0 30px;
}

.dvw-intro .dvw-intro__list-item {
    position: relative;
    padding-left: 26px;
    font-size: 14px;
    font-weight: 500;
    color: #3d4351;
}

.dvw-intro .dvw-intro__list-item::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 1px;
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: rgba(76, 175, 80, 0.16);
    color: var(--theme-color4);
    font-size: 11px;
    font-weight: 800;
}

/* ============================================================
   TRANG CON: KHU VỰC PHỤC VỤ (ĐỊA PHƯƠNG)
   ============================================================ */
.dvw-local {
    padding-top: 110px;
    padding-bottom: 110px;
}
/* nền màu bật/tắt được (nút "Hiện nền/Ẩn nền" trong trình sửa) — mặc định .bg = đang bật, giữ đúng màu cũ */
.dvw-local.blockbg:not(.bg) { background: none; }
.dvw-local.blockbg.bg { background-color: #fbf5f1; }

.dvw-local .dvw-local__head {
    text-align: center;
    margin-bottom: 56px;
}

.dvw-local .dvw-local__eyebrow {
    display: inline-block;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-local .dvw-local__title {
    font-size: 38px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.6px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-local .dvw-local__desc {
    font-size: 17px;
    color: #55607a;
}

.dvw-local .dvw-local__row {
    row-gap: 30px;
    margin-bottom: 30px;
}

.dvw-local .dvw-local__areas {
    height: 100%;
    padding: 34px 30px;
    background-color: #ffffff;
    border: 1px solid #f1e4dc;
    border-radius: 20px;
}

.dvw-local .dvw-local__areas-title {
    font-size: 18px;
    font-weight: 700;
    color: #14181f;
    margin-bottom: 18px;
}

.dvw-local .dvw-local__areas-list {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px 16px;
    margin-bottom: 20px;
}

.dvw-local .dvw-local__areas-item {
    position: relative;
    padding-left: 22px;
    font-size: 14px;
    color: #3d4351;
}

.dvw-local .dvw-local__areas-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 7px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--theme-color2) 100%);
}

.dvw-local .dvw-local__note {
    font-size: 13px;
    color: #7a8398;
}

.dvw-local .dvw-local__map {
    height: 100%;
    min-height: 340px;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid #f1e4dc;
}

.dvw-local .dvw-local__map-frame {
    width: 100%;
    height: 100%;
    min-height: 340px;
    border: 0;
    display: block;
}

.dvw-local .dvw-local__benefits {
    row-gap: 24px;
}

.dvw-local .dvw-local__benefit {
    height: 100%;
    padding: 28px 26px;
    background-color: #ffffff;
    border: 1px solid #f1e4dc;
    border-radius: 18px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.dvw-local .dvw-local__benefit:hover {
    transform: translateY(-6px);
    box-shadow: 0 22px 44px rgba(31, 36, 48, 0.1);
}

.dvw-local .dvw-local__benefit-title {
    font-size: 16px;
    font-weight: 700;
    color: #14181f;
    margin-bottom: 8px;
}

.dvw-local .dvw-local__benefit-text {
    font-size: 14px;
    color: #5a6377;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1200px) {
    .dvw-hero .dvw-hero__title {
        font-size: 46px;
    }

    .dvw-header .dvw-header__nav {
        gap: 20px;
    }

    .dvw-header .dvw-header__nav-link {
        font-size: 14px;
    }

    .dvw-header .dvw-header__cta {
        padding: 11px 18px;
    }

    .dvw-hero .dvw-hero__float--top {
        left: 0;
    }

    .dvw-hero .dvw-hero__float--bottom {
        right: 0;
    }

    .dvw-services .dvw-services__title,
    .dvw-process .dvw-process__title,
    .dvw-why .dvw-why__title,
    .dvw-portfolio .dvw-portfolio__title,
    .dvw-pricing .dvw-pricing__title,
    .dvw-testimonials .dvw-testimonials__title,
    .dvw-faq .dvw-faq__title {
        font-size: 34px;
    }
}

@media (max-width: 1000px) {
    .dvw-header .dvw-header__nav {
        gap: 14px;
    }

    .dvw-header .dvw-header__nav-link {
        font-size: 13px;
    }

    .dvw-header .dvw-header__right {
        gap: 16px;
    }

    .dvw-hero {
        padding-top: 160px;
        padding-bottom: 122px;
    }

    .dvw-hero::after {
        height: 78px;
    }

    .dvw-hero .dvw-hero__row {
        row-gap: 60px;
    }

    .dvw-hero .dvw-hero__content {
        max-width: 100%;
    }

    .dvw-hero .dvw-hero__title {
        font-size: 42px;
    }

    .dvw-hero .dvw-hero__img-swiper,
    .dvw-hero .dvw-hero__browser-img {
        height: 340px;
    }

    .dvw-why .dvw-why__stats {
        max-width: 460px;
    }
}

@media (max-width: 992px) {
    .dvw-services,
    .dvw-process,
    .dvw-why,
    .dvw-portfolio,
    .dvw-pricing,
    .dvw-testimonials,
    .dvw-faq,
    .dvw-intro,
    .dvw-local,
    .dvw-templates {
        padding-top: 84px;
        padding-bottom: 84px;
    }

    .dvw-news {
        padding-bottom: 84px;
    }

    .dvw-news .dvw-news__lead-media {
        height: 300px;
    }

    .dvw-news .dvw-news__lead-title {
        font-size: 23px;
    }

    .dvw-news .dvw-news__cat {
        margin-top: 46px;
        padding-top: 38px;
    }

    .dvw-news .dvw-news__cat-feature-media {
        height: 240px;
    }

    .dvw-sidebar {
        position: static;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .dvw-sidebar .dvw-sidebar__ad,
    .dvw-sidebar .dvw-sidebar__widget {
        flex: 1 1 240px;
    }

    .dvw-article {
        padding-top: 118px;
    }

    .dvw-article .dvw-article__title {
        font-size: 27px;
    }

    .dvw-team {
        padding-top: 84px;
        padding-bottom: 84px;
    }

    .dvw-team .dvw-team__title {
        font-size: 30px;
    }

    .dvw-contact .dvw-contact__cards {
        margin-bottom: 60px;
    }

    .dvw-contact .dvw-contact__title {
        font-size: 28px;
    }

    .dvw-contact .dvw-contact__map {
        min-height: 300px;
    }

    .dvw-video {
        padding-top: 84px;
        padding-bottom: 84px;
    }

    .dvw-video .dvw-video__title {
        font-size: 28px;
    }

    .dvw-intro .dvw-intro__title,
    .dvw-local .dvw-local__title,
    .dvw-templates .dvw-templates__title {
        font-size: 30px;
    }

    .dvw-intro .dvw-intro__img {
        height: 380px;
    }

    .dvw-pagehead .dvw-pagehead__title {
        font-size: 34px;
    }

    .dvw-tpl-detail {
        padding-bottom: 76px;
    }

    .dvw-tpl-detail .dvw-tpl-detail__name {
        font-size: 30px;
    }

    .dvw-tpl-detail .dvw-tpl-detail__main {
        height: 360px;
    }

    /* Ẩn menu ngang trên tablet trở xuống - KHÔNG dùng menu điện thoại */
    .dvw-header .dvw-header__nav {
        display: none;
    }

    .dvw-header .dvw-header__right {
        gap: 0;
    }

    .dvw-hero .dvw-hero__title {
        font-size: 38px;
    }

    .dvw-hero .dvw-hero__desc {
        font-size: 17px;
    }

    .dvw-hero .dvw-hero__content {
        min-height: 0;
    }

    .dvw-hero .dvw-hero__browser {
        transform: none;
    }

    .dvw-hero .dvw-hero__visual::after {
        display: none;
    }

    .dvw-hero .dvw-hero__float--bottom {
        top: auto;
        bottom: 40px;
    }

    .dvw-hero .dvw-hero__float--rating {
        display: none;
    }

    /* Quy trình: chuyển sang timeline dọc */
    .dvw-process .dvw-process__track {
        display: none;
    }

    .dvw-process .dvw-process__grid {
        row-gap: 0;
        max-width: 620px;
        margin-left: auto;
        margin-right: auto;
    }

    .dvw-process .dvw-process__step {
        flex-direction: row;
        align-items: flex-start;
        text-align: left;
        gap: 22px;
        padding-bottom: 44px;
    }

    .dvw-process .dvw-process__step::before {
        display: block;
    }

    .dvw-process .dvw-process__step--last {
        padding-bottom: 0;
    }

    .dvw-process .dvw-process__step--last::before {
        display: none;
    }

    .dvw-process .dvw-process__step-node {
        width: 56px;
        height: 56px;
        margin-bottom: 0;
    }

    .dvw-process .dvw-process__step-num {
        font-size: 17px;
    }

    .dvw-why .dvw-why__row {
        row-gap: 44px;
    }

    .dvw-why .dvw-why__stat:nth-child(2),
    .dvw-why .dvw-why__stat:nth-child(3) {
        transform: none;
    }

    .dvw-faq .dvw-faq__aside {
        position: static;
    }

    .dvw-cta .dvw-cta__box {
        padding: 54px 40px;
    }

    .dvw-cta .dvw-cta__title {
        font-size: 30px;
    }
}

@media (max-width: 768px) {
    .dvw-body {
        font-size: 15px;
    }

    .dvw-btn {
        padding: 14px 24px;
        font-size: 14px;
    }

    .dvw-header .dvw-header__inner {
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .dvw-header .dvw-header__brand-text {
        font-size: 19px;
    }

    .dvw-hero {
        padding-top: 140px;
        padding-bottom: 100px;
    }

    .dvw-hero.dvw-hero--sub {
        padding-top: 132px;
    }

    .dvw-hero .dvw-breadcrumb {
        margin-bottom: 22px;
    }

    .dvw-intro,
    .dvw-local,
    .dvw-templates,
    .dvw-news {
        padding-top: 68px;
        padding-bottom: 68px;
    }

    .dvw-news .dvw-news__lead-media {
        height: 240px;
    }

    .dvw-news .dvw-news__lead-title {
        font-size: 21px;
    }

    .dvw-news .dvw-news__cat-title,
    .dvw-news .dvw-news__cat-feature-title {
        font-size: 19px;
    }

    .dvw-news .dvw-news__cat-feature-media {
        height: 210px;
    }

    .dvw-news .dvw-news__mini-thumb,
    .dvw-news .dvw-news__cat-item-thumb {
        width: 96px;
        height: 72px;
    }

    .dvw-cat-page .dvw-artcard {
        flex-direction: column;
    }

    .dvw-cat-page .dvw-artcard__media {
        width: 100%;
        height: 200px;
    }

    .dvw-article {
        padding-top: 108px;
    }

    .dvw-article .dvw-article__title {
        font-size: 24px;
    }

    .dvw-article .dvw-article__h3 {
        font-size: 19px;
    }

    .dvw-article .dvw-article__author {
        flex-direction: column;
        text-align: center;
        align-items: center;
    }

    .dvw-team {
        padding-top: 68px;
        padding-bottom: 68px;
    }

    .dvw-team .dvw-team__head {
        margin-bottom: 40px;
    }

    .dvw-team .dvw-team__title {
        font-size: 26px;
    }

    .dvw-contact {
        padding-top: 44px;
        padding-bottom: 68px;
    }

    .dvw-contact .dvw-contact__cards {
        margin-bottom: 44px;
    }

    .dvw-contact .dvw-contact__title {
        font-size: 24px;
    }

    .dvw-contact .dvw-contact__form-box {
        padding: 26px 22px;
    }

    .dvw-video {
        padding-top: 68px;
        padding-bottom: 68px;
    }

    .dvw-video .dvw-video__head {
        margin-bottom: 32px;
    }

    .dvw-video .dvw-video__title {
        font-size: 24px;
    }

    .dvw-intro .dvw-intro__title,
    .dvw-local .dvw-local__title,
    .dvw-templates .dvw-templates__title {
        font-size: 26px;
    }

    .dvw-templates .dvw-templates__toolbar {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
        margin-bottom: 34px;
    }

    .dvw-templates .dvw-templates__search {
        max-width: 100%;
    }

    .dvw-templates .dvw-templates__toolbar .dvw-templates__filter {
        justify-content: center;
    }

    .dvw-pagehead {
        padding-top: 128px;
        padding-bottom: 50px;
    }

    .dvw-pagehead .dvw-pagehead__title {
        font-size: 28px;
    }

    .dvw-tpl-detail {
        padding-top: 128px;
        padding-bottom: 64px;
    }

    .dvw-tpl-detail .dvw-tpl-detail__crumb {
        margin-bottom: 24px;
    }

    .dvw-tpl-detail .dvw-tpl-detail__name {
        font-size: 26px;
    }

    .dvw-templates .dvw-templates__desc {
        font-size: 15px;
    }

    .dvw-local .dvw-local__head {
        margin-bottom: 40px;
    }

    .dvw-hero::after {
        height: 56px;
    }

    .dvw-hero .dvw-hero__visual::before {
        display: none;
    }

    .dvw-hero .dvw-hero__title {
        font-size: 33px;
    }

    .dvw-hero .dvw-hero__img-swiper,
    .dvw-hero .dvw-hero__browser-img {
        height: 300px;
    }

    .dvw-hero .dvw-hero__actions {
        gap: 12px;
    }

    .dvw-hero .dvw-hero__btn {
        width: 100%;
    }

    .dvw-hero .dvw-hero__pagination {
        margin-top: 24px;
    }

    .dvw-hero .dvw-hero__trust {
        margin-top: 30px;
    }

    .dvw-hero .dvw-hero__trust {
        gap: 18px;
    }

    .dvw-hero .dvw-hero__trust-num {
        font-size: 22px;
    }

    .dvw-services,
    .dvw-process,
    .dvw-why,
    .dvw-portfolio,
    .dvw-pricing,
    .dvw-testimonials,
    .dvw-faq {
        padding-top: 68px;
        padding-bottom: 68px;
    }

    .dvw-services .dvw-services__head,
    .dvw-process .dvw-process__head,
    .dvw-portfolio .dvw-portfolio__head,
    .dvw-pricing .dvw-pricing__head,
    .dvw-testimonials .dvw-testimonials__head {
        margin-bottom: 44px;
    }

    .dvw-services .dvw-services__title,
    .dvw-process .dvw-process__title,
    .dvw-why .dvw-why__title,
    .dvw-portfolio .dvw-portfolio__title,
    .dvw-pricing .dvw-pricing__title,
    .dvw-testimonials .dvw-testimonials__title,
    .dvw-faq .dvw-faq__title {
        font-size: 29px;
    }

    .dvw-services .dvw-services__desc,
    .dvw-process .dvw-process__desc,
    .dvw-portfolio .dvw-portfolio__desc,
    .dvw-pricing .dvw-pricing__desc,
    .dvw-testimonials .dvw-testimonials__desc {
        font-size: 15px;
    }

    .dvw-why .dvw-why__stat-num {
        font-size: 36px;
    }

    .dvw-portfolio .dvw-portfolio__thumb {
        height: 200px;
    }

    .dvw-pricing .dvw-pricing__plan {
        padding: 34px 28px;
    }

    .dvw-pricing .dvw-pricing__plan--featured {
        padding-top: 48px;
    }

    .dvw-cta .dvw-cta__box {
        padding: 44px 26px;
    }

    .dvw-cta .dvw-cta__title {
        font-size: 26px;
    }

    .dvw-cta .dvw-cta__btn {
        width: 100%;
    }

    .dvw-footer {
        padding-top: 60px;
    }

    .dvw-footer .dvw-footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .dvw-modal .dvw-modal__dialog {
        padding: 36px 24px 30px;
    }

    .dvw-modal .dvw-modal__title {
        font-size: 23px;
    }
}

@media (max-width: 576px) {
    .dvw-body .container {
        padding-left: 16px;
        padding-right: 16px;
    }

    .dvw-header .dvw-header__brand-mark {
        width: 36px;
        height: 36px;
        font-size: 18px;
    }

    .dvw-header .dvw-header__cta {
        padding: 10px 18px;
        font-size: 13px;
    }

    .dvw-hero {
        padding-top: 128px;
        padding-bottom: 88px;
    }

    .dvw-hero.dvw-hero--sub {
        padding-top: 120px;
    }

    .dvw-hero::after {
        height: 42px;
    }

    .dvw-hero .dvw-hero__bg-blob {
        animation: none;
    }

    .dvw-intro .dvw-intro__list,
    .dvw-local .dvw-local__areas-list {
        grid-template-columns: 1fr;
    }

    .dvw-intro .dvw-intro__img {
        height: 300px;
    }

    .dvw-templates .dvw-templates__shot {
        height: 210px;
    }

    .dvw-templates .dvw-templates__filter {
        margin-bottom: 34px;
    }

    .dvw-tpl-detail .dvw-tpl-detail__list,
    .dvw-tpl-detail .dvw-tpl-detail__meta {
        grid-template-columns: 1fr;
    }

    .dvw-tpl-detail .dvw-tpl-detail__main {
        height: 260px;
    }

    .dvw-tpl-detail .dvw-tpl-detail__actions {
        flex-direction: column;
    }

    .dvw-tpl-detail .dvw-tpl-detail__actions .dvw-btn {
        width: 100%;
    }

    .dvw-hero .dvw-hero__bg-blob--3 {
        display: none;
    }

    .dvw-hero .dvw-hero__eyebrow {
        font-size: 12px;
    }

    .dvw-hero .dvw-hero__title {
        font-size: 29px;
    }

    .dvw-hero .dvw-hero__desc {
        font-size: 15px;
    }

    .dvw-hero .dvw-hero__trust {
        flex-wrap: wrap;
        gap: 14px;
    }

    .dvw-hero .dvw-hero__trust-divider {
        display: none;
    }

    .dvw-hero .dvw-hero__trust-item {
        width: 42%;
    }

    .dvw-hero .dvw-hero__img-swiper,
    .dvw-hero .dvw-hero__browser-img {
        height: 240px;
    }

    .dvw-hero .dvw-hero__float {
        font-size: 12px;
        padding: 10px 14px;
    }

    .dvw-services .dvw-services__card,
    .dvw-process .dvw-process__step-card,
    .dvw-testimonials .dvw-testimonials__card {
        padding: 26px 22px;
    }

    .dvw-testimonials .dvw-testimonials__controls {
        gap: 14px;
        margin-top: 28px;
    }

    .dvw-process .dvw-process__step {
        gap: 16px;
        padding-bottom: 36px;
    }

    .dvw-process .dvw-process__step-node {
        width: 48px;
        height: 48px;
    }

    .dvw-process .dvw-process__step::before {
        left: 24px;
        top: 48px;
    }

    .dvw-process .dvw-process__step-num {
        font-size: 15px;
    }

    .dvw-services .dvw-services__title,
    .dvw-process .dvw-process__title,
    .dvw-why .dvw-why__title,
    .dvw-portfolio .dvw-portfolio__title,
    .dvw-pricing .dvw-pricing__title,
    .dvw-testimonials .dvw-testimonials__title,
    .dvw-faq .dvw-faq__title {
        font-size: 25px;
    }

    .dvw-why .dvw-why__stats {
        grid-template-columns: 1fr;
    }

    .dvw-pricing .dvw-pricing__plan-amount {
        font-size: 30px;
    }

    .dvw-faq .dvw-faq__question {
        padding: 18px 18px;
        font-size: 15px;
    }

    .dvw-faq .dvw-faq__answer-text {
        padding: 0 18px 20px;
    }

    .dvw-cta .dvw-cta__title {
        font-size: 23px;
    }

    .dvw-totop {
        right: 16px;
        bottom: 16px;
        width: 44px;
        height: 44px;
    }
}

/* Tôn trọng thiết lập giảm chuyển động của người dùng */
@media (prefers-reduced-motion: reduce) {
    .dvw-hero .dvw-hero__bg-blob,
    .dvw-hero .dvw-hero__eyebrow::before,
    .dvw-hero .dvw-hero__float--top,
    .dvw-hero .dvw-hero__float--bottom,
    .dvw-hero .dvw-hero__float--rating {
        animation: none;
    }

    .dvw-hero .dvw-hero__browser {
        transform: none;
    }
}

/* ============================================================
   TIN TỨC — KHỐI ĐỘNG (dvw-news)  ·  thêm cho LOV Builder
   (nền đã khai báo cùng .dvw-news ở trên — dùng lại cặp rule .blockbg/.bg, không lặp lại ở đây)
   ============================================================ */

.dvw-news .dvw-news__head {
    max-width: 680px;
    margin: 0 auto 56px;
    text-align: center;
}

.dvw-news .dvw-news__eyebrow {
    display: inline-block;
    color: var(--theme-color2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dvw-news .dvw-news__title {
    font-size: 38px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.6px;
    color: #14181f;
    margin-bottom: 16px;
}

.dvw-news .dvw-news__desc {
    font-size: 17px;
    color: #55607a;
}

.dvw-news .dvw-news__grid {
    row-gap: 30px;
}

.dvw-news .dvw-news__card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    background-color: #ffffff;
    border: 1px solid #eef0f4;
    border-radius: 22px;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.dvw-news .dvw-news__card:hover {
    transform: translateY(-8px);
    box-shadow: 0 30px 60px rgba(20, 24, 31, 0.14);
    border-color: #ffffff;
}

.dvw-news .dvw-news__media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background-color: #f0e2da;
    text-decoration: none;
}

.dvw-news .dvw-news__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.03);
    transition: transform 0.6s ease;
}

.dvw-news .dvw-news__card:hover .dvw-news__img {
    transform: scale(1.1);
}

.dvw-news .dvw-news__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(20, 24, 31, 0) 45%, rgba(20, 24, 31, 0.5) 100%);
    pointer-events: none;
}

.dvw-news .dvw-news__cat {
    position: absolute;
    left: 14px;
    bottom: 14px;
    z-index: 2;
    padding: 6px 13px;
    border-radius: 30px;
    background-color: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(4px);
    color: var(--theme-color2);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.2px;
}

.dvw-news .dvw-news__body {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    padding: 22px 24px 24px;
}

.dvw-news .dvw-news__title-link {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 18.5px;
    line-height: 1.4;
    font-weight: 700;
    color: #14181f;
    text-decoration: none;
    margin-bottom: 10px;
    transition: color 0.25s ease;
}

.dvw-news .dvw-news__card:hover .dvw-news__title-link,
.dvw-news .dvw-news__title-link:hover {
    color: var(--theme-color2);
}

.dvw-news .dvw-news__excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 14px;
    color: #5a6377;
    margin-bottom: 18px;
}

.dvw-news .dvw-news__more {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--theme-color2);
    font-size: 13.5px;
    font-weight: 700;
    text-decoration: none;
}

.dvw-news .dvw-news__more svg {
    width: 16px;
    height: 16px;
    transition: transform 0.25s ease;
}

.dvw-news .dvw-news__card:hover .dvw-news__more svg {
    transform: translateX(4px);
}

@media (max-width: 991px) {
    .dvw-news .dvw-news__title { font-size: 32px; }
}

@media (max-width: 767px) {
    .dvw-news .dvw-news__head { margin-bottom: 36px; }
    .dvw-news .dvw-news__title { font-size: 26px; }
}

/* ============================================================
   MODAL / POPUP — quy ước LOV Builder (.blockmodal)
   Dùng lại giao diện .dvw-modal có sẵn; chỉ bắc cầu trạng thái + hiển thị inline trong trình sửa.
   Tên class/thuộc tính CỐ ĐỊNH: .blockmodal · data-modal-id · data-bd-modal · .bd-modal-trigger · data-modal-close · .is-open · body.bd-modal-open
   ============================================================ */
.dvw-modal.blockmodal.is-open {
    opacity: 1;
    visibility: visible;
}

.dvw-modal.blockmodal.is-open .dvw-modal__dialog {
    transform: translateY(0) scale(1);
}

body.bd-modal-open {
    overflow: hidden;
}

[data-bd-modal],
.bd-modal-trigger {
    cursor: pointer;
}

/* Trong TRÌNH SỬA: khối modal hiện inline như 1 section để chỉnh form bên trong */
html.lov-edit .dvw-modal.blockmodal {
    position: static;
    inset: auto;
    opacity: 1;
    visibility: visible;
    display: block;
    padding: 56px 0;
    background-color: #eef1f5;
}

html.lov-edit .dvw-modal.blockmodal .dvw-modal__overlay {
    display: none;
}

html.lov-edit .dvw-modal.blockmodal .dvw-modal__dialog {
    transform: none;
    max-height: none;
    margin-left: auto;
    margin-right: auto;
}

/* dvw-local: ô bản đồ động (.lov-dyn-body bọc iframe) — giữ chiều cao */
.dvw-local .dvw-local__map > .lov-dyn-body {
    height: 100%;
    min-height: 340px;
}

/* ============================================================
   HERO SLIDER — bản dựng lại (1 Swiper, ảnh trong từng slide, bấm sửa được)
   builder-theme.js tự init .dvw-hero__slider.swiper (autoplay ngoài front, đóng băng khi sửa)
   ============================================================ */
.dvw-hero .dvw-hero__slider {
    position: relative;
    padding-bottom: 4px;
}

.dvw-hero .dvw-hero__slider .swiper-wrapper {
    align-items: center;
}

.dvw-hero .dvw-hero__content {
    max-width: 560px;
    min-height: 260px;
}

.dvw-hero .dvw-hero__pagination {
    justify-content: flex-start;
}

/* Nút điều hướng tròn */
.dvw-hero .dvw-hero__nav {
    position: absolute;
    top: 38%;
    z-index: 5;
    width: 46px;
    height: 46px;
    margin: 0;
    padding: 0;
    border: 1px solid #ffd8c7;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(6px);
    box-shadow: 0 12px 30px rgba(217, 78, 29, 0.16);
    color: var(--theme-color2);
    cursor: pointer;
    transition: background-color 0.22s ease, color 0.22s ease, transform 0.22s ease;
}

.dvw-hero .dvw-hero__nav::after {
    font-size: 17px;
    font-weight: 700;
}

.dvw-hero .dvw-hero__nav:hover {
    background-color: var(--theme-color);
    color: #ffffff;
    transform: scale(1.08);
}

.dvw-hero .dvw-hero__nav--prev { left: -8px; }
.dvw-hero .dvw-hero__nav--next { right: -8px; }

.dvw-hero .dvw-hero__nav.swiper-button-disabled { opacity: 0; pointer-events: none; }

@media (max-width: 1199px) {
    .dvw-hero .dvw-hero__nav { display: none; }
}

/* Khối ảnh + badge */
.dvw-hero .dvw-hero__figure {
    position: relative;
    max-width: 540px;
    margin-left: auto;
}

.dvw-hero .dvw-hero__img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
    border-radius: 22px;
    border: 6px solid #ffffff;
    box-shadow: 0 40px 80px -28px rgba(20, 24, 31, 0.4);
    transform: rotate(-1.4deg);
    transition: transform 0.4s ease;
}

.dvw-hero .dvw-hero__figure:hover .dvw-hero__img {
    transform: rotate(0);
}

.dvw-hero .dvw-hero__badge {
    position: absolute;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 15px;
    border-radius: 14px;
    background-color: #ffffff;
    box-shadow: 0 18px 40px -14px rgba(20, 24, 31, 0.3);
    font-size: 13px;
    font-weight: 700;
    color: #14181f;
    white-space: nowrap;
}

.dvw-hero .dvw-hero__badge b {
    font-size: 16px;
    line-height: 1;
}

.dvw-hero .dvw-hero__badge--a {
    top: 22px;
    left: -26px;
    animation: dvw-hero-badge 6s ease-in-out infinite;
}

.dvw-hero .dvw-hero__badge--b {
    bottom: 26px;
    right: -22px;
    animation: dvw-hero-badge 7.5s ease-in-out infinite reverse;
}

@keyframes dvw-hero-badge {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}

@media (max-width: 991px) {
    .dvw-hero .dvw-hero__figure {
        margin: 40px auto 0;
        max-width: 460px;
    }
    .dvw-hero .dvw-hero__img { transform: none; }
    .dvw-hero .dvw-hero__badge--a { left: -12px; }
    .dvw-hero .dvw-hero__badge--b { right: -10px; }
}

@media (max-width: 575px) {
    .dvw-hero .dvw-hero__badge { display: none; }
    .dvw-hero .dvw-hero__pagination { justify-content: center; }
}

/* ============================================================
   HERO v2 — "Premium Studio" (glassmorphism, dark, typed)
   Thay cho hero slider cũ. Scope: .dvw-hero.dvwh2
   ============================================================ */
.dvw-hero.dvwh2 {
    /* Màu điểm nhấn — đổi theo từ đang chạy chữ (JS set inline ở #dvwHero, xem builder.js).
       Mặc định = màu brand chính của site (--theme-color ở đầu file). */
    --dvwh2-accent: var(--theme-color, #ff6b35);
    --dvwh2-glow: rgba(255, 107, 53, 0.34);
    position: relative;
    padding: 0 !important;
    background:
        radial-gradient(1100px 620px at 82% -8%, rgba(255,107,53,.18), transparent 60%),
        linear-gradient(158deg, #1a1512 0%, #1c1626 48%, #120d18 100%) !important;
    color: #f8fafc;
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    isolation: isolate;
}
.dvw-hero.dvwh2::before,
.dvw-hero.dvwh2::after { content: none !important; display: none !important; }
.dvwh2 * { box-sizing: border-box; }

.dvwh2__blob {
    position: absolute;
    width: 720px; height: 720px;
    left: 50%; top: 50%;
    margin: -360px 0 0 -360px;
    background: var(--dvwh2-glow);
    filter: blur(130px);
    border-radius: 50%;
    z-index: -1;
    pointer-events: none;
    transition: transform .8s cubic-bezier(.4,0,.2,1), background .8s ease;
    animation: dvwh2Blob 24s infinite alternate ease-in-out;
}
@keyframes dvwh2Blob {
    0%   { transform: translate(-12%, -14%) scale(1); }
    100% { transform: translate(12%, 12%) scale(1.12); }
}

.dvwh2__wrap {
    display: flex;
    width: 100%;
    max-width: 1360px;
    min-height: 84vh;
    margin: 28px;
    border-radius: 36px;
    background: rgba(255, 255, 255, 0.02);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.55);
    overflow: hidden;
}

.dvwh2__left {
    flex: 1.15;
    padding: clamp(36px, 6vw, 84px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: linear-gradient(135deg, rgba(255,255,255,0.03) 0%, transparent 100%);
}

.dvwh2__eyebrow {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 9px 18px;
    margin-bottom: 28px;
    border-radius: 100px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--dvwh2-accent);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    transition: color .8s ease;
}

.dvwh2__title {
    font-size: clamp(34px, 4.6vw, 66px);
    font-weight: 800;
    line-height: 1.14;
    margin: 0 0 22px;
    color: #f8fafc;
}
.dvwh2-typed { display: block; }
.dvwh2-typed i { font-style: normal; display: none; }
.dvwh2-typed i:first-of-type { display: inline; }   /* fallback khi tắt JS */
.dvwh2-typed.is-js i { display: none; }
.dvwh2-typed__out {
    font-weight: 800;
    color: var(--dvwh2-accent);
    text-shadow: 0 0 34px var(--dvwh2-glow);
    transition: color .8s ease, text-shadow .8s ease;
}
.dvwh2-typed__out::after {
    content: '';
    display: inline-block;
    width: 3px; height: 1em;
    margin-left: 2px;
    background: currentColor;
    vertical-align: -2px;
    animation: dvwh2Caret 1s steps(1) infinite;
}
@keyframes dvwh2Caret { 50% { opacity: 0; } }
html.lov-edit .dvwh2-typed i { display: inline !important; }
html.lov-edit .dvwh2-typed i + i { margin-left: 8px; }
html.lov-edit .dvwh2-typed__out { display: none !important; }

.dvwh2__desc {
    font-size: 17px;
    line-height: 1.75;
    color: #94a3b8;
    max-width: 540px;
    margin: 0 0 40px;
}

.dvwh2__actions { display: flex; gap: 16px; flex-wrap: wrap; }
.dvwh2 .dvwh2__btn {
    padding: 15px 30px;
    border-radius: 14px;
    font-weight: 700;
    font-size: 14.5px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.dvwh2 .dvw-btn--primary.dvwh2__btn {
    background: var(--dvwh2-accent);
    border: none;
    color: #fff;
    box-shadow: 0 12px 26px var(--dvwh2-glow);
    transition: background .8s ease, box-shadow .8s ease, filter .15s, transform .15s;
}
.dvwh2 .dvw-btn--primary.dvwh2__btn:hover { filter: brightness(1.08); transform: translateY(-4px); }
.dvwh2 .dvw-btn--ghost.dvwh2__btn {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #fff;
    transition: background .15s, border-color .8s ease, transform .15s;
}
.dvwh2 .dvw-btn--ghost.dvwh2__btn:hover { background: rgba(255,255,255,0.1); border-color: var(--dvwh2-accent); transform: translateY(-4px); }

.dvwh2__trust {
    display: flex;
    gap: 34px;
    flex-wrap: wrap;
    margin-top: 46px;
    padding-top: 30px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.dvwh2__trust-item { display: flex; flex-direction: column; gap: 4px; }
.dvwh2__trust-num { font-size: 24px; font-weight: 800; color: #f8fafc; }
.dvwh2__trust-label { font-size: 12.5px; color: #94a3b8; }

.dvwh2__right {
    flex: 0.85;
    padding: clamp(30px, 4vw, 56px);
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.25);
    border-left: 1px solid rgba(255, 255, 255, 0.05);
}
.dvwh2__form-box { width: 100%; max-width: 420px; }
.dvwh2__form-title { font-size: 26px; font-weight: 800; margin: 0 0 6px; color: #fff; }
.dvwh2__form-sub { font-size: 13.5px; color: #94a3b8; margin: 0 0 26px; }

.dvwh2__ig { margin-bottom: 18px; }
.dvwh2__ig label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .5px;
    margin-bottom: 8px;
}
.dvwh2 .dvwh2__inp {
    width: 100%;
    padding: 14px 18px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 13px;
    color: #fff;
    font-family: inherit;
    font-size: 14.5px;
    transition: border-color .25s, box-shadow .25s, background .25s;
}
.dvwh2 .dvwh2__inp::placeholder { color: #475569; }
.dvwh2 .dvwh2__inp:focus {
    outline: none;
    border-color: var(--dvwh2-accent);
    background: rgba(255, 255, 255, 0.05);
    box-shadow: 0 0 0 4px var(--dvwh2-glow);
}
.dvwh2 textarea.dvwh2__inp { resize: none; min-height: 92px; }
.dvwh2 .dvwh2__submit {
    width: 100%;
    margin-top: 6px;
    padding: 16px;
    background: var(--dvwh2-accent);
    border: none;
    border-radius: 13px;
    color: #fff;
    font-weight: 700;
    font-size: 15px;
    box-shadow: 0 10px 22px var(--dvwh2-glow);
    transition: background .8s ease, box-shadow .8s ease, filter .15s, transform .15s;
}
.dvwh2 .dvwh2__submit:hover { filter: brightness(1.08); transform: translateY(-2px); }

@media (max-width: 1024px) {
    .dvw-hero.dvwh2 { min-height: auto; }
    .dvwh2__wrap { flex-direction: column; margin: 0; border-radius: 0; border: none; min-height: auto; }
    .dvwh2__left { padding: 72px 24px 52px; align-items: center; text-align: center; }
    .dvwh2__desc { margin-left: auto; margin-right: auto; }
    .dvwh2__actions, .dvwh2__trust { justify-content: center; }
    .dvwh2__right { border-left: none; border-top: 1px solid rgba(255,255,255,0.06); padding: 44px 20px; }
    .dvwh2__blob { width: 440px; height: 440px; margin: -220px 0 0 -220px; }
}
@media (max-width: 575px) {
    .dvwh2__trust { gap: 22px; }
    .dvwh2__trust-num { font-size: 20px; }
}

/* Trường form bắt buộc chưa nhập (scripttv.js thêm .was-validated khi bấm gửi mà thiếu) */
[data-lov-root] .was-validated .formtextall:invalid,
[data-lov-root] .was-validated input:required:invalid,
[data-lov-root] .was-validated textarea:required:invalid,
[data-lov-root] .was-validated select:required:invalid {
    border-color: #ef4444 !important;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, .16) !important;
}
