/* In Áo Phông brand mapping: orange logo, charcoal wordmark, warm neutral surfaces. */
:root {
    --dq-brand-primary: #d94801;
    --dq-brand-accent: #ff6000;
    --dq-brand-secondary: #202020;
    --dq-brand-soft: #fff2e8;
    --dq-brand-line: #ffd2b3;
}

.dq-footer {
    background: var(--dq-brand-secondary);
}

.dq-copyright {
    background: #151515;
    border-color: rgb(255 255 255 / 14%);
}

/* Footer inspired by the reference: map first, five useful columns, compact legal bar. */
.dq-footer {
    padding-top: 0;
    background: #202020;
    color: rgb(255 255 255 / 76%);
    font-family: "Be Vietnam Pro", "Segoe UI", Arial, sans-serif;
}

.dq-footer__map-wrap {
    padding-top: 28px;
}

.dq-footer__map {
    display: block;
    width: 100%;
    height: clamp(280px, 27vw, 390px);
    border: 0;
    border-radius: 18px;
    background: #303030;
    box-shadow: 0 18px 46px rgb(0 0 0 / 28%);
}

.dq-footer__grid,
body.home .dq-footer__grid {
    grid-template-columns: minmax(260px, 1.55fr) repeat(4, minmax(130px, 1fr));
    gap: clamp(28px, 4vw, 54px);
    padding-top: 48px;
    padding-bottom: 44px;
}

.dq-footer__col {
    min-width: 0;
}

.dq-footer-logo {
    width: min(210px, 100%);
    max-height: 78px;
    margin-bottom: 20px;
    padding: 8px 12px;
    border-radius: 10px;
    background: #fff;
    object-fit: contain;
}

.dq-footer h3,
body.home .dq-footer h3 {
    position: relative;
    margin: 0 0 22px;
    padding-bottom: 13px;
    color: #fff;
    font-size: 15px;
    font-weight: 850;
    line-height: 1.35;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.dq-footer h3::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 46px;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--dq-brand-accent), rgb(255 96 0 / 12%));
}

.dq-footer .dq-richtext {
    color: rgb(255 255 255 / 68%);
    font-size: 13.5px;
    line-height: 1.75;
}

.dq-footer .dq-richtext p {
    margin: 0;
}

.dq-footer-links {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.dq-footer-links a,
.dq-footer-menu a,
body.home .dq-footer a {
    color: rgb(255 255 255 / 76%);
    font-size: 13.5px;
    line-height: 1.5;
    transition: color .2s ease, transform .2s ease;
}

.dq-footer-links a {
    display: inline-flex;
    align-items: flex-start;
    gap: 7px;
}

.dq-footer-links a::before {
    content: "";
    width: 5px;
    height: 5px;
    margin-top: .55em;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--dq-brand-accent);
    opacity: .78;
}

.dq-footer-contact {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    margin: 10px 0 0;
    font-size: 13px;
    line-height: 1.4;
}

.dq-footer-contact__icon {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border: 1px solid rgb(255 96 0 / 62%);
    border-radius: 50%;
    background: rgb(255 96 0 / 9%);
    color: #ff7928;
    box-shadow: 0 4px 12px rgb(0 0 0 / 18%);
}

.dq-footer-contact__icon svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dq-footer-contact__line {
    display: flex;
    min-width: 0;
    align-items: baseline;
    gap: 5px;
    white-space: nowrap;
}

.dq-footer .dq-footer-contact strong {
    display: inline;
    flex: 0 0 auto;
    margin: 0;
    color: #fff;
    font-size: 12px;
}

.dq-footer-contact a,
.dq-footer-contact__line > span {
    min-width: 0;
    color: rgb(255 255 255 / 70%);
    overflow: hidden;
    text-overflow: ellipsis;
}

.dq-copyright,
body.home .dq-copyright {
    margin-top: 0;
    padding: 17px max(16px, calc((100% - var(--dq-container)) / 2));
    border-top: 1px solid rgb(255 255 255 / 10%);
    background: #171717;
    color: rgb(255 255 255 / 56%);
    font-size: 12px;
    text-align: left;
}

@media (hover: hover) and (pointer: fine) {
    .dq-footer-links a:hover,
    .dq-footer-menu a:hover,
    .dq-footer-contact a:hover {
        color: #ff9a5c;
        transform: translateX(3px);
    }
}

@media (max-width: 1024px) {
    .dq-footer__grid,
    body.home .dq-footer__grid {
        grid-template-columns: 1.4fr repeat(2, minmax(150px, 1fr));
    }

    .dq-footer__col:first-child {
        grid-row: span 2;
    }
}

@media (max-width: 700px) {
    .dq-footer__map-wrap {
        width: 100%;
        padding-top: 0;
    }

    .dq-footer__map {
        height: 250px;
        border-radius: 0;
    }

    .dq-footer__grid,
    body.home .dq-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 32px 22px;
        padding-top: 38px;
        padding-bottom: 36px;
    }

    .dq-footer__col:first-child {
        grid-column: 1 / -1;
        grid-row: auto;
    }
}

@media (max-width: 480px) {
    .dq-footer__grid,
    body.home .dq-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 30px 14px;
    }

    .dq-footer__col:first-child {
        grid-column: 1 / -1;
    }

    .dq-footer-logo {
        margin-right: auto;
        margin-left: auto;
    }

    .dq-footer h3,
    body.home .dq-footer h3 {
        font-size: 13.5px;
        text-align: center;
    }

    .dq-footer h3::after {
        left: 50%;
        transform: translateX(-50%);
    }

    .dq-footer-links {
        gap: 8px;
    }

    .dq-footer-links a,
    .dq-footer-menu a,
    body.home .dq-footer a {
        font-size: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dq-footer a { transition: none; }
}

body.home {
    --dq-primary: var(--dq-brand-primary);
    --dq-secondary: var(--dq-brand-secondary);
    --dq-print-pink: var(--dq-brand-soft);
    color: var(--dq-brand-secondary);
}

.dq-topbar,
body.home .dq-topbar {
    background: var(--dq-brand-accent);
    color: var(--dq-brand-secondary);
}

.dq-topbar a,
body.home .dq-topbar a {
    color: var(--dq-brand-secondary);
    font-weight: 600;
}

/* Keep homepage slider artwork sharp and visible at its intended wide ratio. */
body.home .dq-banner-slider .dq-banner {
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
}

body.home .dq-banner-slider .dq-banner__inner {
    width: 100%;
    min-height: 0;
    max-width: none;
    aspect-ratio: 12 / 5;
}

/* Header proportions matched to the In Ao Phong reference on wide screens. */
@media (min-width: 901px) {
    .dq-header {
        border-bottom: 0;
        font-family: "Be Vietnam Pro", "Segoe UI", Arial, sans-serif;
    }

    .dq-topbar {
        min-height: 45px;
        border-bottom: 0;
        font-size: 14px;
    }

    .dq-topbar__inner,
    .dq-header-main__grid {
        width: min(1470px, calc(100% - 32px));
        padding-left: 30px;
    }

    .dq-topbar__inner {
        min-height: 45px;
    }

    .dq-header-main--desktop,
    .dq-header-main__grid {
        height: 96px;
        min-height: 96px;
        max-height: 96px;
    }

    .dq-header-main__grid {
        grid-template-columns: 240px minmax(0, 1fr) 330px;
        gap: 18px;
    }

    .dq-logo img {
        width: 240px;
        max-width: 240px !important;
        max-height: 78px;
    }

    .dq-menu {
        gap: 19px;
        white-space: nowrap;
    }

    .dq-menu a {
        color: #111;
        font-size: 19px;
        font-weight: 600;
        line-height: 1.4;
        letter-spacing: -.018em;
    }

    .dq-header-zone--right,
    .dq-header-zone--topbar-right {
        transform: translateX(30px);
    }

    .dq-header-zone--right {
        flex-wrap: nowrap;
    }

    .dq-header-zone--right .dq-hotline {
        flex: 0 0 auto;
        min-width: max-content;
        white-space: nowrap;
        line-height: 1;
    }

    .dq-header-zone--right .search-form {
        display: flex;
        flex: 1 1 auto;
        align-items: center;
        width: 330px;
        min-width: 0;
        height: 48px;
        gap: 4px;
        padding: 4px;
        border: 1px solid rgb(255 96 0 / 24%);
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 8px 24px rgb(95 44 12 / 9%), inset 0 1px 0 rgb(255 255 255 / 80%);
        transition: border-color .2s ease, box-shadow .2s ease;
    }

    .dq-header-zone--right .search-form:focus-within {
        border-color: rgb(255 96 0 / 62%);
        box-shadow: 0 10px 28px rgb(217 72 1 / 13%), 0 0 0 3px rgb(255 96 0 / 8%);
    }

    .dq-header-zone--right .search-form > label {
        flex: 1 1 auto;
        min-width: 0;
    }

    .dq-header-zone--right .search-field {
        flex: 1 1 auto;
        width: 100%;
        min-width: 0;
        height: 38px;
        padding: 0 12px;
        border: 0;
        outline: 0;
        border-radius: 10px;
        background: transparent;
        color: #222;
        font: 14px/1.2 "Be Vietnam Pro", "Segoe UI", Arial, sans-serif;
    }

    .dq-header-zone--right .search-field::placeholder {
        color: #8b817a;
        opacity: 1;
    }

    .dq-header-zone--right .search-submit {
        flex: 0 0 auto;
        width: 88px;
        height: 38px;
        padding: 0 12px;
        border: 0;
        border-radius: 10px;
        background: linear-gradient(135deg, #ff741f, #e64d00);
        color: #fff;
        font: 600 13px/1.2 "Be Vietnam Pro", "Segoe UI", Arial, sans-serif;
        cursor: pointer;
        box-shadow: 0 5px 14px rgb(217 72 1 / 22%);
        transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
    }

    .dq-header-zone--right .search-submit:hover {
        filter: brightness(1.04);
        box-shadow: 0 7px 18px rgb(217 72 1 / 28%);
        transform: translateY(-1px);
    }

    .dq-header-zone--right .search-submit:active {
        transform: translateY(0) scale(.98);
    }

    /* Defeat legacy homepage-only header rules so every template shares one shell. */
    body.home .dq-header {
        border-bottom: 0;
        font-family: "Be Vietnam Pro", "Segoe UI", Arial, sans-serif;
    }

    body.home .dq-topbar,
    body.home .dq-topbar__inner {
        min-height: 45px;
    }

    body.home .dq-topbar__inner,
    body.home .dq-header-main__grid {
        width: min(1470px, calc(100% - 32px));
        padding-left: 30px;
    }

    body.home .dq-header-main--desktop,
    body.home .dq-header-main__grid {
        height: 96px;
        min-height: 96px;
        max-height: 96px;
    }

    body.home .dq-header-main__grid {
        grid-template-columns: 240px minmax(0, 1fr) 330px;
        gap: 18px;
    }

    body.home .dq-logo img {
        width: 240px;
        max-width: 240px !important;
        max-height: 78px;
    }

    body.home .dq-menu {
        gap: 19px;
        white-space: nowrap;
    }

    body.home .dq-menu a {
        color: #111;
        font-size: 19px;
        font-weight: 600;
        line-height: 1.4;
        letter-spacing: -.018em;
    }

    body.home .dq-header-zone--right,
    body.home .dq-header-zone--topbar-right {
        transform: translateX(30px);
    }
}

@media (min-width: 1201px) and (max-width: 1599px) {
    .dq-topbar__inner,
    .dq-header-main__grid {
        width: min(100% - 32px, 1360px);
        padding-left: 0;
    }

    .dq-header-main__grid {
        grid-template-columns: 202px minmax(0, 1fr) 370px;
        gap: 16px;
    }

    .dq-logo img {
        width: 202px;
        max-width: 202px !important;
        max-height: 70px;
    }

    .dq-menu {
        gap: 16px;
    }

    .dq-menu a {
        font-size: 16.5px;
        font-weight: 600;
    }

    .dq-header-zone--right,
    .dq-header-zone--topbar-right {
        transform: none;
    }

    .dq-header-zone--right .search-form {
        width: 280px;
    }

    .dq-header-zone--right .search-field {
        font-size: 14px;
    }

    .dq-header-zone--right .search-submit {
        width: 78px;
        font-size: 12.5px;
    }

    body.home .dq-topbar__inner,
    body.home .dq-header-main__grid {
        width: min(100% - 32px, 1360px);
        padding-left: 0;
    }

    body.home .dq-header-main__grid {
        grid-template-columns: 202px minmax(0, 1fr) 370px;
        gap: 16px;
    }

    body.home .dq-logo img {
        width: 202px;
        max-width: 202px !important;
        max-height: 70px;
    }

    body.home .dq-menu {
        gap: 16px;
    }

    body.home .dq-menu a {
        font-size: 16.5px;
        font-weight: 600;
    }

    body.home .dq-header-zone--right,
    body.home .dq-header-zone--topbar-right {
        transform: none;
    }
}

/* Keep child menu items out of the header row and render them as real dropdowns. */
@media (min-width: 1201px) {
    .dq-header-main__grid,
    .dq-header-zone {
        overflow: visible;
    }

    .dq-header-main--desktop .dq-header-zone--center {
        align-self: stretch;
    }

    .dq-nav {
        align-self: stretch;
    }

    .dq-nav > .dq-menu {
        height: 100%;
        align-items: stretch;
    }

    .dq-nav .menu-item {
        position: relative;
    }

    .dq-nav > .dq-menu > .menu-item {
        display: flex;
        align-items: center;
    }

    .dq-nav .sub-menu {
        position: absolute;
        z-index: 100;
        top: 100%;
        left: 0;
        width: max-content;
        min-width: 238px;
        margin: 0;
        padding: 10px;
        list-style: none;
        border: 1px solid rgb(32 32 32 / 9%);
        border-radius: 0 0 12px 12px;
        background: #fff;
        box-shadow: 0 18px 38px rgb(0 0 0 / 15%);
        opacity: 0;
        visibility: hidden;
        transform: translateY(8px);
        pointer-events: none;
        transition: opacity .18s ease, visibility .18s ease, transform .18s ease;
    }

    .dq-nav .menu-item:hover > .sub-menu,
    .dq-nav .menu-item:focus-within > .sub-menu {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
        pointer-events: auto;
    }

    .dq-nav .sub-menu .sub-menu {
        top: -11px;
        left: calc(100% + 10px);
        border-radius: 12px;
    }

    .dq-nav .sub-menu a,
    body.home .dq-nav .sub-menu a {
        display: block;
        padding: 9px 12px;
        border-radius: 7px;
        color: #27211e;
        font-size: 14px;
        font-weight: 550;
        line-height: 1.45;
        letter-spacing: 0;
        text-align: left;
        white-space: nowrap;
    }

    .dq-nav .sub-menu a:hover,
    .dq-nav .sub-menu a:focus-visible {
        outline: 0;
        background: var(--dq-brand-soft);
        color: var(--dq-brand-primary);
    }
}

@media (max-width: 1200px) {
    .dq-header-main--desktop,
    .dq-header-bottom {
        display: none !important;
    }

    .dq-header-main--mobile {
        display: block !important;
    }

    .dq-topbar__inner {
        width: calc(100% - 32px);
        min-height: 36px;
        grid-template-columns: 1fr;
        padding: 6px 0;
        text-align: center;
    }

    .dq-topbar .dq-header-zone--topbar-right {
        display: none;
    }

    .dq-mobile-header__grid {
        position: relative;
        display: grid;
        width: min(100% - 24px, 1180px);
        height: 72px;
        min-height: 72px;
        grid-template-columns: 46px minmax(0, 1fr) 46px;
        align-items: center;
        gap: 6px;
        padding-left: 0;
    }

    .dq-mobile-header__left,
    .dq-mobile-header__right {
        display: flex;
        align-items: center;
        gap: 9px;
    }

    .dq-mobile-header__right {
        justify-content: flex-end;
    }

    .dq-mobile-header__center {
        display: flex;
        min-width: 0;
        height: 72px;
        align-items: center;
        justify-content: center;
    }

    .dq-menu-toggle,
    .dq-search-toggle {
        display: inline-flex;
        min-width: 42px;
        min-height: 42px;
        align-items: center;
        justify-content: center;
        margin: 0;
        border-color: #ddd;
        color: #222;
        font-size: 20px;
    }

    .dq-mobile-header__grid .dq-logo {
        width: clamp(195px, 59vw, 225px);
        max-width: 100%;
        height: 66px;
        justify-content: center;
    }

    .dq-mobile-header__grid .dq-logo img {
        width: 100%;
        max-width: none !important;
        height: 100%;
        max-height: 66px;
        object-fit: contain;
    }

    .dq-mobile-nav {
        position: absolute;
        z-index: 80;
        top: 72px;
        right: -12px;
        left: -12px;
        display: none;
        padding: 12px 16px 16px;
        border-top: 1px solid #eee;
        border-bottom: 1px solid #ddd;
        background: #fff;
        box-shadow: 0 14px 30px rgb(0 0 0 / 10%);
        max-height: calc(100dvh - 72px);
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .dq-mobile-nav.is-open {
        display: block;
    }

    .dq-mobile-nav .dq-menu {
        display: block;
        white-space: normal;
    }

    .dq-mobile-nav .dq-menu li {
        position: relative;
        padding: 10px 0;
        border-bottom: 1px solid #eee;
    }

    .dq-mobile-nav .dq-menu a {
        display: block;
        font-size: 15px;
        font-weight: 600;
        line-height: 1.4;
    }

    .dq-mobile-nav .menu-item-has-children > a {
        padding-right: 50px;
    }

    .dq-submenu-toggle {
        position: absolute;
        z-index: 2;
        top: 5px;
        right: 0;
        display: grid;
        width: 36px;
        height: 36px;
        padding: 0;
        place-items: center;
        border: 0;
        border-radius: 50%;
        background: #eff6f4;
        color: #183c36;
        cursor: pointer;
    }

    .dq-submenu-toggle span {
        width: 8px;
        height: 8px;
        border-right: 1.5px solid currentcolor;
        border-bottom: 1.5px solid currentcolor;
        transform: translateY(-2px) rotate(45deg);
        transition: transform .18s ease;
    }

    .dq-submenu-toggle[aria-expanded="true"] span {
        transform: translateY(2px) rotate(225deg);
    }

    .dq-submenu-toggle:focus-visible {
        outline: 2px solid var(--dq-brand-accent);
        outline-offset: 2px;
    }

    .dq-mobile-nav .sub-menu {
        position: static;
        display: block;
        margin: 8px 0 2px 12px;
        padding: 0 0 0 14px;
        list-style: none;
        border-left: 2px solid var(--dq-brand-line);
    }

    .dq-mobile-nav .sub-menu[hidden] {
        display: none !important;
    }

    .dq-mobile-nav .sub-menu li {
        padding: 7px 0;
        border-bottom: 0;
    }

    .dq-mobile-nav .sub-menu a {
        color: #4b423d;
        font-size: 14px;
        font-weight: 500;
    }

    .dq-mobile-search {
        display: none;
        padding-bottom: 12px;
    }

    .dq-mobile-search.is-open {
        display: block;
    }

    .dq-mobile-search .search-form {
        display: flex;
        gap: 8px;
        padding: 5px;
        border: 1px solid rgb(255 96 0 / 24%);
        border-radius: 12px;
        background: #fff;
    }

    .dq-mobile-search .search-field {
        width: 100%;
        min-width: 0;
        padding: 9px 10px;
        border: 0;
        outline: 0;
    }

    .dq-mobile-search .search-submit {
        border: 0;
        border-radius: 9px;
        padding: 0 14px;
        background: linear-gradient(135deg, #ff741f, #e64d00);
        color: #fff;
        font-weight: 700;
    }
}

@media (max-width: 600px) {
    .dq-mobile-header__grid .dq-logo img {
        width: 100%;
        max-width: none !important;
    }

    body.home .dq-home-image-card {
        width: 100%;
        max-width: none;
        margin: 0;
    }

    .dq-topbar {
        font-size: 12px;
    }
}

body.home .dq-logo,
body.home .dq-hotline,
body.home .dq-section-eyebrow,
body.home .dq-library-eyebrow,
body.home .dq-home-eyebrow,
body.home .dq-print-faq details[open] summary {
    color: var(--dq-brand-primary);
}

body.home .dq-print-intro {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(64px, 6vw, 92px) 0;
    background:
        radial-gradient(circle at 8% 18%, rgb(255 96 0 / 12%) 0 110px, transparent 111px),
        radial-gradient(circle at 94% 84%, rgb(255 183 135 / 18%) 0 150px, transparent 151px),
        linear-gradient(135deg, #fffaf6 0%, #fff 48%, #fff4eb 100%) !important;
}

body.home .dq-print-intro::before,
body.home .dq-print-intro::after {
    content: "";
    position: absolute;
    z-index: -1;
    border: 1px solid rgb(255 96 0 / 14%);
    border-radius: 50%;
}

body.home .dq-print-intro::before {
    top: -155px;
    left: -120px;
    width: 350px;
    height: 350px;
}

body.home .dq-print-intro::after {
    right: -90px;
    bottom: -190px;
    width: 430px;
    height: 430px;
}

body.home .dq-print-intro > .dq-container {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
    grid-template-rows: auto 1fr;
    align-items: center;
    gap: 18px clamp(42px, 5vw, 72px);
    max-width: 1220px;
}

body.home .dq-print-intro > .dq-container > .dq-row {
    display: block;
    margin: 0;
}

body.home .dq-print-intro > .dq-container > .dq-row:nth-child(1) {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
}

body.home .dq-print-intro > .dq-container > .dq-row:nth-child(2) {
    grid-column: 1;
    grid-row: 1 / 3;
}

body.home .dq-print-intro > .dq-container > .dq-row:nth-child(3) {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
}

body.home .dq-print-intro .dq-col {
    margin: 0;
    text-align: left;
}

body.home .dq-print-intro > .dq-container > .dq-row:first-child .dq-richtext p {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    margin: 0 0 14px;
    padding: 0 14px;
    border: 1px solid rgb(255 96 0 / 18%);
    border-radius: 999px;
    background: rgb(255 96 0 / 8%);
    color: #d94f00 !important;
    font-size: 12px;
    font-weight: 700 !important;
    letter-spacing: .11em;
    text-align: left !important;
}

body.home .dq-print-intro .dq-heading {
    max-width: 520px;
    margin: 0;
    color: #171717;
    font-size: clamp(34px, 3.1vw, 48px);
    font-weight: 750;
    line-height: 1.08;
    letter-spacing: -.035em;
    text-align: left;
}

body.home .dq-print-intro .dq-video {
    width: 100%;
    max-width: none !important;
    margin: 0;
    overflow: hidden;
    border: 8px solid #fff;
    border-radius: 26px;
    background: #8d1628;
    box-shadow: 0 28px 70px rgb(105 46 12 / 20%), 0 7px 20px rgb(0 0 0 / 10%);
    transform: rotate(-1deg);
}

body.home .dq-print-intro .dq-video::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid rgb(255 255 255 / 28%);
    border-radius: 18px;
    pointer-events: none;
}

body.home .dq-print-intro > .dq-container > .dq-row:nth-child(3) .dq-richtext {
    max-width: 540px;
    margin: 0;
    color: #504a46;
    font-size: 15.5px;
    line-height: 1.75;
    text-align: left;
}

body.home .dq-print-intro > .dq-container > .dq-row:nth-child(3) .dq-richtext p {
    position: relative;
    margin: 0;
    padding: 16px 0 16px 30px;
    border-bottom: 1px solid rgb(38 31 27 / 9%);
}

body.home .dq-print-intro > .dq-container > .dq-row:nth-child(3) .dq-richtext p::before {
    content: "";
    position: absolute;
    top: 24px;
    left: 2px;
    width: 10px;
    height: 10px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: var(--dq-brand-accent);
    box-shadow: 0 0 0 1px rgb(255 96 0 / 35%);
}

body.home .dq-print-intro > .dq-container > .dq-row:nth-child(3) .dq-richtext p:last-child {
    border-bottom: 0;
}

body.home .dq-print-intro .dq-video,
body.home .dq-content-rail__more,
body.home .dq-print-quote .dqc-contact-form .dq-btn {
    background: var(--dq-brand-primary);
    border-color: var(--dq-brand-primary);
}

@media (max-width: 900px) {
    body.home .dq-print-intro {
        padding: 56px 0 64px;
    }

    body.home .dq-print-intro > .dq-container {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        gap: 26px;
        max-width: 720px;
    }

    body.home .dq-print-intro > .dq-container > .dq-row:nth-child(n) {
        grid-column: 1;
        grid-row: auto;
    }

    body.home .dq-print-intro .dq-heading {
        max-width: none;
    }

    body.home .dq-print-intro > .dq-container > .dq-row:nth-child(3) .dq-richtext {
        max-width: none;
    }

    body.home .dq-print-intro .dq-video {
        transform: none;
    }
}

@media (max-width: 600px) {
    body.home .dq-print-intro {
        padding: 44px 0 50px;
    }

    body.home .dq-print-intro > .dq-container {
        gap: 20px;
    }

    body.home .dq-print-intro .dq-heading {
        font-size: 31px;
    }

    body.home .dq-print-intro .dq-video {
        border-width: 5px;
        border-radius: 18px;
    }

    body.home .dq-print-intro > .dq-container > .dq-row:nth-child(3) .dq-richtext {
        font-size: 14.5px;
    }
}

body.home .dq-content-rail::after {
    border-color: var(--dq-brand-line);
    border-bottom-color: transparent;
    background: var(--dq-brand-soft);
}

body.home .dq-print-faq {
    overflow: hidden;
    padding: 52px 0 66px;
    background-color: #fff8f9;
    background-image:
        radial-gradient(ellipse 160px 260px at -34px 55%, rgb(255 230 234 / 72%) 0 55%, transparent 56%),
        radial-gradient(ellipse 170px 290px at -34px 55%, transparent 0 71%, #efb8c0 72% 73%, transparent 74%),
        radial-gradient(ellipse 170px 275px at calc(100% + 35px) 34%, rgb(255 230 234 / 66%) 0 55%, transparent 56%),
        radial-gradient(ellipse 180px 300px at calc(100% + 35px) 34%, transparent 0 71%, #efb8c0 72% 73%, transparent 74%);
}

/* Match the reference FAQ: centered content with equal gutters on both sides. */
body.home .dq-print-faq > .dq-container {
    box-sizing: border-box;
    width: calc(100% - 32px) !important;
    max-width: 1180px !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

body.home .dq-print-faq .dq-section-eyebrow {
    margin-bottom: 5px;
    color: #b52235;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .12em;
}

body.home .dq-print-faq .dq-section-title {
    margin-bottom: 42px;
    color: #111;
    font-size: clamp(34px, 3.2vw, 48px);
    font-weight: 800;
    letter-spacing: -.025em;
}

body.home .dq-print-faq details {
    margin: 0;
    padding: 0;
    border: 0;
    border-bottom: 1px dotted #cfc3c5;
    border-radius: 0;
    background: transparent;
}

body.home .dq-print-faq summary {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 53px;
    padding: 11px 52px 11px 10px;
    color: #171717;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.45;
    list-style: none;
    cursor: pointer;
}

body.home .dq-print-faq summary::-webkit-details-marker {
    display: none;
}

body.home .dq-print-faq summary::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    width: 11px;
    height: 11px;
    border-right: 2px solid #666;
    border-bottom: 2px solid #666;
    transform: translateY(-70%) rotate(45deg);
    transition: transform .2s ease, border-color .2s ease;
}

body.home .dq-print-faq details[open] summary {
    color: #b52235;
    font-weight: 700;
}

body.home .dq-print-faq details[open] summary::after {
    border-color: #b52235;
    transform: translateY(-20%) rotate(225deg);
}

body.home .dq-print-faq details p {
    margin: 0 0 1px;
    padding: 11px 10px 12px;
    background: #fff;
    color: #111;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.55;
}

@media (max-width: 600px) {
    body.home .dq-print-faq > .dq-container {
        width: calc(100% - 24px) !important;
    }

    body.home .dq-print-faq {
        padding: 38px 0 44px;
        background-size: auto;
    }

    body.home .dq-print-faq .dq-section-title {
        margin-bottom: 24px;
        font-size: 28px;
    }

    body.home .dq-print-faq summary {
        min-height: 48px;
        padding: 10px 42px 10px 4px;
        font-size: 15px;
    }

    body.home .dq-print-faq summary::after {
        right: 10px;
        width: 9px;
        height: 9px;
    }

    body.home .dq-print-faq details p {
        padding: 10px 8px 12px;
        font-size: 14px;
    }
}

body.home .dq-print-benefits {
    background: var(--dq-brand-secondary);
}

body.home .dq-footer {
    background: var(--dq-brand-secondary);
    padding-top: 0;
    font-family: "Be Vietnam Pro", "Segoe UI", Arial, sans-serif;
}

/* Homepage service benefits: reusable feature_strip with an ACF-managed banner image. */
body.home .dq-print-benefits {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(64px, 7vw, 94px) 0 clamp(70px, 8vw, 104px);
    border: 0;
    background-color: #171717;
    background-image: var(--dq-feature-bg);
    background-position: center;
    background-size: cover;
    color: #fff;
}

body.home .dq-print-benefits::before {
    content: "";
    position: absolute;
    z-index: -2;
    inset: 0;
    background: linear-gradient(100deg, rgb(10 10 10 / 90%) 0%, rgb(18 18 18 / 76%) 42%, rgb(10 10 10 / 88%) 100%);
}

body.home .dq-print-benefits::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background: radial-gradient(circle at 50% 15%, rgb(255 96 0 / 16%), transparent 34%), linear-gradient(180deg, rgb(255 255 255 / 4%), transparent 28%);
    pointer-events: none;
}

body.home .dq-print-benefits .dq-container { position: relative; }
body.home .dq-print-benefits .dq-library-heading { max-width: 920px; margin: 0 auto clamp(38px, 5vw, 58px); }
body.home .dq-print-benefits .dq-library-eyebrow { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 13px; color: #ffad78 !important; font-size: 12px; letter-spacing: .16em; }
body.home .dq-print-benefits .dq-library-eyebrow::before,
body.home .dq-print-benefits .dq-library-eyebrow::after { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .68; }
body.home .dq-print-benefits .dq-library-heading h2 { margin: 0; color: #fff !important; font-size: clamp(29px, 3.35vw, 48px); font-weight: 850; line-height: 1.08; letter-spacing: -.035em; text-wrap: balance; }

body.home .dq-print-benefits .dq-feature-strip__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
body.home .dq-print-benefits .dq-feature-strip__item {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 245px;
    padding: 28px 18px 24px;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 18px;
    border: 1px solid rgb(255 255 255 / 13%);
    border-radius: 18px;
    background: linear-gradient(155deg, rgb(255 255 255 / 10%), rgb(255 255 255 / 3%));
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 10%), 0 18px 42px rgb(0 0 0 / 14%);
    text-align: center;
    backdrop-filter: blur(4px);
    transition: transform .25s ease, border-color .25s ease, background-color .25s ease, box-shadow .25s ease;
}
body.home .dq-print-benefits .dq-feature-strip__item::after { content: ""; position: absolute; right: 20px; bottom: 0; left: 20px; height: 2px; border-radius: 2px 2px 0 0; background: linear-gradient(90deg, transparent, var(--dq-brand-accent), transparent); opacity: .48; }
body.home .dq-print-benefits .dq-feature-strip__icon { display: grid; width: 68px; height: 68px; margin: 0 auto; padding: 15px; border: 1px solid rgb(255 255 255 / 23%); border-radius: 20px; place-items: center; background: linear-gradient(145deg, rgb(255 124 41 / 96%), rgb(203 59 0 / 94%)); box-shadow: 0 13px 30px rgb(217 72 1 / 28%), inset 0 1px 1px rgb(255 255 255 / 28%); transform: rotate(-3deg); }
body.home .dq-print-benefits .dq-feature-strip__icon img { width: 38px; height: 38px; object-fit: contain; transform: rotate(3deg) scale(1.7); }
body.home .dq-print-benefits .dq-feature-strip__item > div:last-child { min-width: 0; }
body.home .dq-print-benefits .dq-feature-strip__item h3 { margin: 0 0 10px; color: #fff; font-size: 17px; line-height: 1.28; text-wrap: balance; }
body.home .dq-print-benefits .dq-feature-strip__item p { margin: 0; color: rgb(255 255 255 / 76%); font-size: 13px; line-height: 1.62; }

@media (hover: hover) and (pointer: fine) {
    body.home .dq-print-benefits .dq-feature-strip__item:hover { transform: translateY(-7px); border-color: rgb(255 132 56 / 48%); background: linear-gradient(155deg, rgb(255 255 255 / 15%), rgb(255 96 0 / 6%)); box-shadow: inset 0 1px 0 rgb(255 255 255 / 13%), 0 24px 52px rgb(0 0 0 / 24%); }
}

@media (max-width: 900px) {
    body.home .dq-print-benefits .dq-feature-strip__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.home .dq-print-benefits .dq-feature-strip__item:last-child { grid-column: 1 / -1; width: min(100%, 420px); margin-inline: auto; }
}

@media (max-width: 600px) {
    body.home .dq-print-benefits { padding: 52px 0 58px; background-position: 52% center; }
    body.home .dq-print-benefits .dq-library-heading { margin-bottom: 30px; }
    body.home .dq-print-benefits .dq-library-heading h2 { font-size: clamp(25px, 7.6vw, 31px); }
    body.home .dq-print-benefits .dq-feature-strip__grid { grid-template-columns: 1fr; gap: 12px; }
    body.home .dq-print-benefits .dq-feature-strip__item,
    body.home .dq-print-benefits .dq-feature-strip__item:last-child { display: grid; grid-template-columns: 58px minmax(0, 1fr); width: 100%; min-height: 0; padding: 18px; align-items: center; gap: 15px; text-align: left; }
    body.home .dq-print-benefits .dq-feature-strip__icon { width: 56px; height: 56px; padding: 12px; border-radius: 17px; }
    body.home .dq-print-benefits .dq-feature-strip__icon img { width: 32px; height: 32px; }
    body.home .dq-print-benefits .dq-feature-strip__item h3 { margin-bottom: 5px; font-size: 16px; }
    body.home .dq-print-benefits .dq-feature-strip__item p { font-size: 12.5px; line-height: 1.5; }
}

@media (prefers-reduced-motion: reduce) {
    body.home .dq-print-benefits .dq-feature-strip__item { transition: none; }
    body.home .dq-print-benefits .dq-feature-strip__item:hover { transform: none; }
}

/* Floating contact: three independent brand actions with no outer capsule. */
.dq-floating-contact--compact {
    right: max(14px, env(safe-area-inset-right));
    bottom: calc(72px + env(safe-area-inset-bottom));
    gap: 12px;
    max-height: none;
    overflow: visible;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.dq-floating-contact--compact .dq-floating-contact__item {
    position: relative;
    isolation: isolate;
    width: 52px;
    height: 52px;
    min-height: 52px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--dq-active-color);
    background-image: linear-gradient(145deg,
        color-mix(in srgb, var(--dq-active-color) 74%, white),
        color-mix(in srgb, var(--dq-active-color) 82%, #071b2e));
    color: #fff;
    box-shadow: 0 8px 20px color-mix(in srgb, var(--dq-active-color) 28%, transparent),
        0 3px 9px rgb(12 28 45 / 18%),
        inset 0 1px 1px rgb(255 255 255 / 34%);
    transition: transform .24s cubic-bezier(.2, .8, .2, 1),
        box-shadow .24s ease,
        filter .24s ease;
    will-change: transform;
}

.dq-floating-contact--compact .dq-floating-contact__item::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: -2px;
    border: 2px solid color-mix(in srgb, var(--dq-active-color) 58%, white);
    border-radius: inherit;
    opacity: 0;
    pointer-events: none;
    animation: dq-contact-radiate 3.6s ease-out infinite;
}

.dq-floating-contact--compact .dq-floating-contact__item:nth-child(2)::before {
    animation-delay: 1.2s;
}

.dq-floating-contact--compact .dq-floating-contact__item:nth-child(3)::before {
    animation-delay: 2.4s;
}

.dq-floating-contact--compact .dq-floating-contact__icon {
    width: 27px;
    height: 27px;
    transition: transform .28s cubic-bezier(.2, .8, .2, 1);
}

.dq-floating-contact--compact .dq-floating-contact__icon svg,
.dq-floating-contact--compact .dq-floating-contact__icon img {
    width: 27px;
    height: 27px;
}

.dq-floating-contact--compact .dq-floating-contact__zalo {
    font-size: 12px;
    letter-spacing: -.35px;
}

.dq-floating-contact--compact .dq-floating-contact__copy {
    display: none;
}

@media (hover: hover) and (pointer: fine) {
    .dq-floating-contact--compact .dq-floating-contact__item:hover {
        transform: translateY(-4px) scale(1.035);
        filter: brightness(1.04) saturate(1.05);
        box-shadow: 0 13px 28px color-mix(in srgb, var(--dq-active-color) 34%, transparent),
            0 6px 13px rgb(12 28 45 / 16%),
            inset 0 1px 1px rgb(255 255 255 / 38%);
    }

    .dq-floating-contact--compact .dq-floating-contact__item:hover .dq-floating-contact__icon {
        transform: rotate(-7deg) scale(1.1);
    }
}

.dq-floating-contact--compact .dq-floating-contact__item:active {
    transform: translateY(1px) scale(.9);
    transition-duration: .08s;
}

.dq-floating-contact--compact .dq-floating-contact__item:focus-visible {
    outline: 3px solid var(--dq-brand-secondary);
    outline-offset: 4px;
}

@keyframes dq-contact-radiate {
    0%, 16% {
        opacity: 0;
        transform: scale(.94);
    }
    24% {
        opacity: .52;
    }
    52%, 100% {
        opacity: 0;
        transform: scale(1.52);
    }
}

@media (max-width: 767px) {
    .dq-floating-contact--compact {
        right: max(9px, env(safe-area-inset-right));
        bottom: calc(64px + env(safe-area-inset-bottom));
        gap: 9px;
        padding: 0;
    }

    .dq-floating-contact--compact .dq-floating-contact__item {
        width: 46px;
        height: 46px;
        min-height: 46px;
        padding: 0;
        border-radius: 50%;
    }

    .dq-floating-contact--compact .dq-floating-contact__icon,
    .dq-floating-contact--compact .dq-floating-contact__icon svg,
    .dq-floating-contact--compact .dq-floating-contact__icon img {
        width: 24px;
        height: 24px;
    }

    .dq-floating-contact--compact .dq-floating-contact__zalo {
        font-size: 11px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dq-floating-contact--compact .dq-floating-contact__item,
    .dq-floating-contact--compact .dq-floating-contact__icon {
        animation: none !important;
        transition: none !important;
    }

    .dq-floating-contact--compact .dq-floating-contact__item::before {
        animation: none !important;
        opacity: 0 !important;
    }

    .dq-floating-contact--compact .dq-floating-contact__item:hover,
    .dq-floating-contact--compact .dq-floating-contact__item:active,
    .dq-floating-contact--compact .dq-floating-contact__item:hover .dq-floating-contact__icon {
        transform: none;
    }
}
