/*
 * DUORUI unified stylesheet.
 * Runtime ownership: this file is the only stylesheet loaded by the theme.
 * Sections are ordered: critical shell, tokens, base, layout, shell, components, pages, responsive.
 * The source tree exposes this file as the sole runtime stylesheet.
 */

/* ===== Tokens ===== */
:root {
    /* Seven functional colour roles keep brand, type, surfaces and states distinct. */
    --dr-color-primary: #1768b8;
    --dr-color-primary-hover: #0f4f88;
    --dr-color-deep: #092a43;
    --dr-color-brand-soft: #d9ecf7;
    --dr-color-deep-rgb: 9, 42, 67;
    --dr-color-primary-rgb: 23, 104, 184;
    --dr-color-heading: #102c42;
    --dr-color-body: #425868;
    --dr-color-muted: #607482;
    --dr-color-surface: #f4f7f9;
    --dr-color-surface-soft: #edf4f8;
    --dr-color-surface-warm: #f3f8fb;
    --dr-color-line: #d5e1e8;
    --dr-color-white: #ffffff;
    --dr-color-on-dark: #ffffff;
    --dr-color-on-dark-muted: rgba(255, 255, 255, .82);
    --dr-color-on-dark-subtle: rgba(255, 255, 255, .68);
    /* Hero uses a full-panel base veil plus a deeper copy-side gradient. The
     * image remains visible across the whole Banner while the text zone keeps
     * a stable reading contrast at every slide brightness. */
    --dr-color-overlay-hero: linear-gradient(180deg, rgba(var(--dr-color-deep-rgb), .5) 0%, rgba(var(--dr-color-deep-rgb), .46) 46%, rgba(var(--dr-color-deep-rgb), .66) 100%), linear-gradient(90deg, rgba(var(--dr-color-deep-rgb), .2), rgba(var(--dr-color-deep-rgb), .26));
    --dr-color-overlay-hero-mobile: linear-gradient(180deg, rgba(var(--dr-color-deep-rgb), .54) 0%, rgba(var(--dr-color-deep-rgb), .46) 48%, rgba(var(--dr-color-deep-rgb), .7) 100%), rgba(var(--dr-color-deep-rgb), .18);
    --dr-color-overlay-stage: linear-gradient(180deg, rgba(var(--dr-color-deep-rgb), .16) 0%, rgba(var(--dr-color-deep-rgb), .24) 46%, rgba(var(--dr-color-deep-rgb), .58) 100%), linear-gradient(90deg, rgba(var(--dr-color-deep-rgb), .42) 0%, rgba(var(--dr-color-deep-rgb), .16) 48%, rgba(var(--dr-color-deep-rgb), .28) 100%);
    --dr-color-overlay-soft: rgba(var(--dr-color-deep-rgb), .24);
    --dr-color-overlay-mega: rgba(var(--dr-color-deep-rgb), .72);
    --dr-color-focus: #7ed5ff;
    --dr-color-shadow: rgba(var(--dr-color-deep-rgb), .18);
    --dr-shadow-rgb: 16, 44, 66;
    --dr-color-overlay-media-dark: linear-gradient(180deg, rgba(var(--dr-color-deep-rgb), 0) 10%, rgba(var(--dr-color-deep-rgb), .02) 34%, rgba(var(--dr-color-deep-rgb), .14) 60%, rgba(var(--dr-color-deep-rgb), .42) 84%, rgba(var(--dr-color-deep-rgb), .66) 100%);
    --dr-color-overlay-media-soft: linear-gradient(180deg, rgba(var(--dr-color-deep-rgb), 0) 18%, rgba(var(--dr-color-deep-rgb), .02) 44%, rgba(var(--dr-color-deep-rgb), .16) 72%, rgba(var(--dr-color-deep-rgb), .48) 100%);
    /* Legacy verifier contract remains explicit; homepage media uses the softer
     * media-dark owner below so source images do not collapse into black blocks. */
    --dr-color-overlay-read: linear-gradient(180deg, rgba(var(--dr-color-deep-rgb), 0) 12%, rgba(var(--dr-color-deep-rgb), .04) 32%, rgba(var(--dr-color-deep-rgb), .26) 58%, rgba(var(--dr-color-deep-rgb), .72) 82%, rgba(var(--dr-color-deep-rgb), .94) 100%);
    --dr-color-overlay-read-light: linear-gradient(180deg, transparent 48%, rgba(245, 248, 250, .86) 100%);
    --dr-color-divider: rgba(var(--dr-color-deep-rgb), .14);
    --dr-motion-ease: cubic-bezier(.22, .61, .36, 1);

    --dr-shadow: 0 24px 70px rgba(var(--dr-color-deep-rgb), .12);
    --dr-shadow-soft: 0 10px 24px rgba(10, 30, 50, .06);
    --dr-radius: 8px;
    --dr-content-max: 1440px;
    --dr-gutter: clamp(40px, 4vw, 88px);
    /* Home scene copy shares one inset so Hero and Product Explore keep a
     * stable vertical text baseline across wide and compact desktops. */
    --dr-header-logo-width: clamp(104px, 7.5vw, 120px);
    --dr-header-social-size: 28px;
    --dr-header-social-gap: 6px;
    --dr-footer-logo-width: clamp(152px, 11vw, 176px);
    --dr-footer-brand-gap: 28px;
    --dr-social-size: 48px;
    --dr-social-gap: 12px;
    --dr-section-y: clamp(76px, 8vw, 132px);
    --dr-section-y-tight: 56px;
    --dr-header-height: 88px;
    /* Typography contract: semantic roles own every public text level. */
    --dr-font-hero: clamp(48px, 4.2vw, 72px);
    --dr-font-page-title: clamp(40px, 3.3vw, 56px);
    --dr-font-section-title: clamp(32px, 2.35vw, 44px);
    --dr-font-card-title: clamp(20px, 1.55vw, 26px);
    --dr-font-industry-title: clamp(21px, 1.7vw, 28px);
    --dr-font-body: 17px;
    --dr-font-body-small: 15px;
    --dr-font-lead: 20px;
    --dr-font-meta: 13px;
    --dr-font-label: 13px;
    --dr-font-caption: 12px;
    --dr-font-control: 14px;
    --dr-font-hero-mobile-compact: 26px;
    --dr-font-footer-heading: 16px;
    --dr-font-step-number: clamp(46px, 5vw, 76px);
    --dr-font-h1: var(--dr-font-page-title);
    --dr-font-h2: var(--dr-font-section-title);
    --dr-font-h3: var(--dr-font-card-title);
    --dr-font-h4: 17px;
    --dr-font-h5: 15px;
    --dr-font-h6: 14px;
    --dr-font-small: var(--dr-font-body-small);
    --dr-line-body: 1.62;
    --dr-line-body-tight: 1.45;
    --dr-line-heading: 1.14;
    --dr-line-meta: 1.4;
    --dr-weight-regular: 400;
    --dr-weight-medium: 500;
    --dr-weight-semibold: 600;
    --dr-weight-bold: 700;
    --dr-weight-heading: var(--dr-weight-bold);
    --dr-button-h: 46px;
    --dr-button-px: 24px;
    --dr-button-font: 15px;
    --dr-button-radius: 4px;
    --dr-button-icon-gap: 8px;
    --dr-button-group-gap: 12px;
    --dr-action-space: 24px;

    /* Homepage scene roles keep transitions related without flattening every
     * section into the same surface. Backgrounds remain full bleed; content
     * still follows the global container contract. */
    --dr-home-surface-light: var(--dr-color-white);
    --dr-home-surface-soft: var(--dr-color-surface-soft);
    /* Evidence scenes use a lifted industrial blue so the closing sections
     * retain the large-screen manufacturing character without swallowing copy
     * and line icons. */
    --dr-home-evidence-surface: var(--dr-color-primary);
    --dr-home-evidence-rgb: 23, 104, 184;
    /* Factory, its process gallery, and Quality share one cool parent surface.
     * A single surface token prevents a visible temperature jump at their seam. */
    --dr-home-surface-warm: var(--dr-home-surface-soft);
    --dr-home-divider: rgba(var(--dr-color-deep-rgb), .12);
    --dr-home-reading-overlay: var(--dr-color-overlay-media-dark);
    --dr-home-explore-wash: linear-gradient(90deg, rgba(243,248,251,.92) 0%, rgba(243,248,251,.62) 31%, rgba(243,248,251,.12) 60%, rgba(243,248,251,0) 84%);
    --dr-home-explore-wash-mobile: linear-gradient(90deg, rgba(243,248,251,.94) 0%, rgba(243,248,251,.7) 45%, rgba(243,248,251,.12) 90%);
    --dr-color-active-wash: rgba(var(--dr-color-primary-rgb), .3);
    --dr-color-industry-active: rgba(var(--dr-color-deep-rgb), .62);
    --dr-color-industry-hover: rgba(var(--dr-color-primary-rgb), .26);
    --dr-home-media-safe-x: clamp(18px, 2.4vw, 34px);
    --dr-home-media-safe-bottom: clamp(18px, 2.4vw, 32px);
    --dr-home-scene-space: clamp(64px, 7vw, 112px);
}

/* Homepage closing scenes: a single dark manufacturing proof band leads into
 * an editorial close, then the blue inquiry handoff. */
.duorui-page-home .duorui-home-proof__inner,
.duorui-page-home .duorui-home-quality > .wrap,
.duorui-page-home .duorui-home-news__left-inner,
.duorui-page-home .duorui-home-inquiry__inner { position: relative; isolation: isolate; }
.duorui-page-home .section-head--decorated { grid-template-columns: 46px minmax(0, 1fr); column-gap: 18px; align-items: start; }
.duorui-page-home .section-head--decorated > .section-head__decorative-icon { grid-column: 1; grid-row: 1 / span 2; display: grid; place-items: center; width: 46px; height: 46px; margin-top: 2px; color: rgba(184, 228, 248, .68); pointer-events: none; }
.duorui-page-home .section-head--decorated > .section-head__copy,
.duorui-page-home .section-head--decorated > .section-head__body,
.duorui-page-home .section-head--decorated > .section-head__action,
.duorui-page-home .section-head--decorated > a { grid-column: 2; }
.duorui-page-home .section-head--decorated > .section-head__copy { grid-row: 1; }
.duorui-page-home .section-head--decorated > .section-head__body { grid-row: 2; max-width: none; }
.duorui-page-home .section-head--decorated.section-head--split { grid-template-columns: 46px minmax(280px, .82fr) minmax(0, 1.18fr); column-gap: clamp(18px, 2.5vw, 36px); }
.duorui-page-home .section-head--decorated.section-head--split > .section-head__copy { grid-column: 2; grid-row: 1; }
.duorui-page-home .section-head--decorated.section-head--split > .section-head__body { grid-column: 3; grid-row: 1; max-width: none; }
.duorui-page-home .section-head--decorated.section-head--split > .section-head__action,
.duorui-page-home .section-head--decorated.section-head--split > a { grid-column: 3; grid-row: 2; }
.duorui-page-home .section-head--decorated .section-head__decorative-icon svg { width: 100%; height: 100%; }
.duorui-page-home .duorui-home-proof__head .section-head__body p,
.duorui-page-home .duorui-home-quality .section-head__body p { color: rgba(255, 255, 255, .9); }
.duorui-page-home .duorui-home-proof__head .section-head__label { color: var(--dr-color-brand-soft); }
.duorui-page-home .duorui-home-proof__reason-index { color: var(--dr-color-brand-soft); }
.duorui-page-home .duorui-home-quality > .wrap { padding-top: clamp(44px, 4.4vw, 72px); }
.duorui-page-home .duorui-home-quality .section-head__body { max-width: 720px; line-height: 1.56; }
.duorui-page-home .duorui-home-quality .section-head__action { margin-top: 2px; }
.duorui-page-home .duorui-home-quality__head { margin-bottom: 0; }

.duorui-page-home .duorui-home-news { width: min(100%, 1620px); max-width: 1620px; margin-inline: auto; background: var(--dr-home-surface-light); color: var(--dr-color-heading); }
.duorui-page-home .duorui-home-news__left { align-items: stretch; background: var(--dr-color-white); }
.duorui-page-home .duorui-home-news__left-inner { padding-top: clamp(64px, 6vw, 96px); padding-bottom: clamp(64px, 6vw, 96px); }
.duorui-page-home .duorui-home-news__left h2 { color: var(--dr-color-heading); }
.duorui-page-home .duorui-home-news__heading { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 18px; align-items: start; }
.duorui-page-home .duorui-home-news__mark { display: grid; place-items: center; width: 46px; height: 46px; margin-top: 2px; color: rgba(184, 228, 248, .68); pointer-events: none; }
.duorui-page-home .duorui-home-news__mark svg { width: 100%; height: 100%; }
.duorui-page-home .duorui-home-news__heading-copy { min-width: 0; }
.duorui-page-home .duorui-home-news__intro { max-width: 520px; color: var(--dr-color-muted); }
.duorui-page-home .duorui-home-news__list { margin-top: clamp(36px, 3.2vw, 50px); border-top-color: var(--dr-color-line); }
.duorui-page-home .duorui-home-news-item { border-bottom-color: var(--dr-color-line); color: var(--dr-color-heading); }
.duorui-page-home .duorui-home-news-item__copy small { color: var(--dr-color-muted); }
.duorui-page-home .duorui-home-news-item:hover .duorui-home-news-item__copy strong,
.duorui-page-home .duorui-home-news-item:focus-visible .duorui-home-news-item__copy strong { color: var(--dr-color-primary); transform: translateX(4px); }
.duorui-page-home .duorui-home-news__right > img { object-position: center 62%; }
.duorui-page-home .duorui-home-news__right::after { background: linear-gradient(180deg, rgba(9, 42, 67, .04), rgba(9, 42, 67, .82)); }
.duorui-page-home .duorui-home-news__right-copy h3 { color: var(--dr-color-white); }
.duorui-page-home .duorui-home-news__right-copy .duorui-home-eyebrow,
.duorui-page-home .duorui-home-news__right-copy small { color: var(--dr-color-on-dark-muted); }
.duorui-page-home .duorui-home-proof__inner > .duorui-home-button--accent,
.duorui-page-home .duorui-home-quality .duorui-home-button--light,
.duorui-page-home .duorui-home-news__left .duorui-home-button--accent { border-color: currentColor; background: transparent; color: var(--dr-color-primary); }
.duorui-page-home .duorui-home-quality .duorui-home-button--light { border-color: rgba(255, 255, 255, .72); color: var(--dr-color-white); }
.duorui-page-home .duorui-home-quality .section-head__action.duorui-home-button--light {
    position: relative;
    z-index: 4;
    display: inline-flex;
    width: max-content;
    min-width: 0;
    min-height: var(--dr-button-h);
    border: 1px solid rgba(255, 255, 255, .72);
    background: transparent;
    color: var(--dr-color-white);
    font-size: var(--dr-button-font);
    line-height: 1.2;
    text-indent: 0;
    white-space: nowrap;
}
.duorui-page-home .duorui-home-quality .section-head__action.duorui-home-button--light svg {
    display: block;
    color: currentColor;
    stroke: currentColor;
    opacity: 1;
}
.duorui-page-home .duorui-home-proof__inner > .duorui-home-button--accent:hover,
.duorui-page-home .duorui-home-proof__inner > .duorui-home-button--accent:focus-visible,
.duorui-page-home .duorui-home-quality .duorui-home-button--light:hover,
.duorui-page-home .duorui-home-quality .duorui-home-button--light:focus-visible {
    border-color: var(--dr-color-white);
    background: var(--dr-color-white);
    color: var(--dr-color-deep);
}
.duorui-page-home .duorui-home-news__left .duorui-home-button--accent:hover,
.duorui-page-home .duorui-home-news__left .duorui-home-button--accent:focus-visible {
    border-color: var(--dr-color-primary);
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
}

.duorui-page-home .duorui-home-inquiry { min-height: 260px; background: var(--dr-color-primary); }
.duorui-page-home .duorui-home-inquiry__inner { min-height: 260px; padding-top: clamp(56px, 5vw, 82px); padding-bottom: clamp(56px, 5vw, 82px); }
.duorui-page-home .duorui-home-inquiry h2 { font-size: var(--dr-font-section-title); letter-spacing: 0; }
.duorui-page-home .duorui-home-inquiry p { max-width: 820px; color: rgba(255, 255, 255, .78); }
.duorui-page-home .duorui-home-inquiry__button { min-width: 300px; min-height: 58px; border-color: var(--dr-color-white); background: var(--dr-color-white); color: var(--dr-color-primary); }
.duorui-page-home .duorui-home-inquiry__button:hover,
.duorui-page-home .duorui-home-inquiry__button:focus-visible { border-color: var(--dr-color-deep); background: var(--dr-color-deep); color: var(--dr-color-white); }

/* An image request can fail after the section has already taken its media
 * height. Remove the broken glyph and let the same surface carry the copy. */
.duorui-page-home .duorui-home-hero__slide.is-image-missing img,
.duorui-page-home .is-image-missing > img { display: none; }
.duorui-page-home .duorui-home-proof__media.is-image-missing,
.duorui-page-home .duorui-home-news__right.is-image-missing { background: var(--dr-home-evidence-surface); }
.duorui-page-home .duorui-home-proof__media.is-image-missing::after,
.duorui-page-home .duorui-home-news__right.is-image-missing::after { background: none; }

/* The proof and quality blocks use the same scene-led language as Industry:
 * one full-bleed manufacturing image, a controlled reading veil, and content
 * placed inside the scene instead of a separate flat colour panel. */
@media (max-width: 992px) {
    .duorui-page-home .duorui-home-news__left-inner { padding-top: 64px; padding-bottom: 64px; }
    .duorui-page-home .duorui-home-news__right { min-height: 520px; }
    .duorui-page-home .duorui-home-inquiry,
    .duorui-page-home .duorui-home-inquiry__inner { min-height: 0; }
    .duorui-page-home .duorui-home-inquiry__inner { padding-top: 48px; padding-bottom: 48px; }
    .duorui-page-home .duorui-home-inquiry__button { min-width: 0; }
    .duorui-page-home .section-head--decorated { grid-template-columns: 38px minmax(0, 1fr); column-gap: 14px; }
    .duorui-page-home .section-head--decorated > .section-head__decorative-icon { width: 38px; height: 38px; }
    .duorui-page-home .section-head--decorated.section-head--split { grid-template-columns: 38px minmax(0, 1fr); row-gap: 18px; }
    .duorui-page-home .section-head--decorated.section-head--split > .section-head__copy,
    .duorui-page-home .section-head--decorated.section-head--split > .section-head__body,
    .duorui-page-home .section-head--decorated.section-head--split > .section-head__action,
    .duorui-page-home .section-head--decorated.section-head--split > a { grid-column: 2; }
    .duorui-page-home .section-head--decorated.section-head--split > .section-head__copy { grid-row: 1; }
    .duorui-page-home .section-head--decorated.section-head--split > .section-head__body { grid-row: 2; }
    .duorui-page-home .section-head--decorated.section-head--split > .section-head__action,
    .duorui-page-home .section-head--decorated.section-head--split > a { grid-row: 3; justify-self: start; }
    .duorui-page-home .duorui-home-news__heading { grid-template-columns: 38px minmax(0, 1fr); gap: 14px; }
    .duorui-page-home .duorui-home-news__mark { width: 38px; height: 38px; }
}

@media (min-width: 993px) and (max-width: 1200px) {
    :root {
        --dr-gutter: 48px;
        --dr-header-height: 94px;
        --dr-font-hero: clamp(42px, 4.8vw, 58px);
        --dr-font-page-title: clamp(36px, 4vw, 48px);
        --dr-font-section-title: clamp(28px, 3vw, 36px);
        --dr-font-card-title: 21px;
        --dr-section-y: 64px;
        --dr-section-y-tight: 46px;
    }
}

@media (min-width: 577px) and (max-width: 992px) {
    :root {
        --dr-gutter: 28px;
        --dr-header-height: 94px;
        --dr-font-hero: clamp(38px, 6vw, 52px);
        --dr-font-page-title: clamp(34px, 4vw, 44px);
        --dr-font-section-title: clamp(28px, 3.2vw, 36px);
        --dr-font-card-title: 21px;
        --dr-font-body: 16px;
        --dr-font-step-number: 46px;
        --dr-font-h4: 16px;
        --dr-section-y: 56px;
        --dr-section-y-tight: 42px;
        --dr-button-px: 20px;
        --dr-action-space: 22px;
    }
}

@media (max-width: 576px) {
    :root {
        --dr-gutter: 16px;
        --dr-header-height: 68px;
        --dr-font-hero: clamp(34px, 9vw, 44px);
        --dr-font-page-title: 32px;
        --dr-font-section-title: 26px;
        --dr-font-card-title: 20px;
        --dr-font-body: 16px;
        --dr-font-body-small: 14px;
        --dr-font-meta: 12px;
        --dr-font-label: 12px;
        --dr-font-step-number: 42px;
        --dr-font-h4: 16px;
        --dr-section-y: 48px;
        --dr-section-y-tight: 36px;
        --dr-button-h: 44px;
        --dr-button-px: 18px;
        --dr-button-font: 14px;
        --dr-action-space: 20px;
    }
}

/* FAQ detail owns its own reading order so support content never overlays the answer. */
.duorui-page-faq-detail .faq-detail-hero {
    padding: var(--dr-section-y-tight) 0;
    background: var(--dr-color-surface);
}

.duorui-page-faq-detail .faq-detail-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, .42fr);
    gap: clamp(28px, 5vw, 72px);
    align-items: start;
}

.duorui-page-faq-detail .faq-detail-copy h1 {
    max-width: 760px;
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-hero);
    line-height: var(--dr-line-heading);
}

.duorui-page-faq-detail .faq-detail-copy > span,
.duorui-page-faq-detail .faq-detail-answer__label {
    display: block;
    margin-top: 0;
    margin-bottom: 12px;
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-small);
    font-weight: var(--dr-weight-bold);
    line-height: var(--dr-line-meta);
    letter-spacing: .04em;
    text-transform: uppercase;
}

.duorui-page-faq-detail .faq-detail-support {
    display: grid;
    gap: 10px;
    padding: 22px;
    border: 1px solid var(--dr-color-line);
    border-radius: var(--dr-radius);
    background: var(--dr-color-white);
}

.duorui-page-faq-detail .faq-detail-support h2 {
    margin: 0 0 4px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-h4);
}

.duorui-page-faq-detail .faq-detail-section { padding: var(--dr-section-y) 0; }

.duorui-page-faq-detail .faq-detail-answer {
    max-width: 820px;
    margin-inline: auto;
}

.duorui-page-faq-detail .faq-detail-answer p {
    margin: 0;
    color: var(--dr-color-body);
    font-size: var(--dr-font-body);
    line-height: var(--dr-line-body);
}

@media (max-width: 768px) {
    .duorui-page-faq-detail .faq-detail-hero { padding: 34px 0; }
    .duorui-page-faq-detail .faq-detail-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .duorui-page-faq-detail .faq-detail-copy h1 { font-size: var(--dr-font-section-title); }
    .duorui-page-faq-detail .faq-detail-section { padding: 42px 0 52px; }
    .duorui-page-faq-detail .faq-detail-support { padding: 18px; }
}

/* ===== Base and accessibility ===== */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    min-width: 320px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: var(--dr-font-body);
    text-size-adjust: 100%;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    padding: 0;
    border: 0;
    margin: -1px;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

body {
    margin: 0;
    background: var(--dr-color-surface);
    color: var(--dr-color-body);
    font-size: var(--dr-font-body);
    line-height: var(--dr-line-body);
    -webkit-font-smoothing: antialiased;
}

main,
section,
article,
aside,
header,
footer,
nav,
figure {
    display: block;
}

img,
svg,
video {
    max-width: 100%;
    height: auto;
}

img {
    display: block;
    border: 0;
}

a {
    color: inherit;
    text-decoration: none;
}

a:hover {
    color: var(--dr-color-primary-hover);
}

button,
input,
select,
textarea {
    font: inherit;
}

button {
    cursor: pointer;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
figure,
ul,
ol {
    margin-top: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--dr-color-heading);
    font-weight: var(--dr-weight-heading);
    line-height: var(--dr-line-heading);
    letter-spacing: 0;
}

h1 {
    font-size: var(--dr-font-h1);
}

h2 {
    font-size: var(--dr-font-h2);
}

h3 {
    font-size: var(--dr-font-h3);
}

h4 {
    font-size: var(--dr-font-h4);
}

h5 {
    font-size: var(--dr-font-h5);
}

h6 {
    font-size: var(--dr-font-h6);
}

p {
    margin-bottom: 1em;
    color: var(--dr-color-body);
    font-size: var(--dr-font-body);
    font-weight: var(--dr-weight-regular);
    line-height: var(--dr-line-body);
}

strong,
b {
    color: inherit;
    font-weight: var(--dr-weight-bold);
}

em,
i {
    font-style: italic;
}

small,
time {
    font-size: var(--dr-font-meta);
    line-height: var(--dr-line-meta);
}

label {
    color: var(--dr-color-heading);
    font-size: var(--dr-font-label);
    font-weight: var(--dr-weight-semibold);
    line-height: var(--dr-line-meta);
}

ul,
ol {
    color: var(--dr-color-body);
    font-size: var(--dr-font-body);
    line-height: var(--dr-line-body);
}

::placeholder {
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: var(--dr-line-body-tight);
    opacity: 1;
}

blockquote {
    margin: 1.5rem 0;
    border-left: 3px solid var(--dr-color-primary);
    padding: .25rem 0 .25rem 1rem;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-lead);
    line-height: var(--dr-line-body);
}

code,
kbd,
pre {
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    font-size: var(--dr-font-meta);
    line-height: var(--dr-line-body-tight);
}

code,
kbd {
    border-radius: 3px;
    padding: .1em .3em;
    background: var(--dr-color-brand-soft);
    color: var(--dr-color-heading);
}

pre {
    overflow-x: auto;
    margin: 1.5rem 0;
    border: 1px solid var(--dr-color-line);
    border-radius: var(--dr-radius);
    padding: 1rem;
    background: var(--dr-color-surface);
    color: var(--dr-color-heading);
}

mark {
    border-radius: 2px;
    padding: .05em .2em;
    background: var(--dr-color-brand-soft);
    color: var(--dr-color-heading);
}

figcaption,
caption {
    color: var(--dr-color-muted);
    font-size: var(--dr-font-caption);
    line-height: var(--dr-line-meta);
    text-align: left;
}

table {
    font-size: var(--dr-font-body-small);
    line-height: var(--dr-line-body-tight);
}

th {
    color: var(--dr-color-heading);
    font-weight: var(--dr-weight-semibold);
}

td {
    color: var(--dr-color-body);
    font-weight: var(--dr-weight-regular);
}

/* ===== Layout ===== */
.wrap {
    width: min(var(--dr-content-max), calc(100vw - (var(--dr-gutter) * 2)));
    margin-inline: auto;
}

.section,
.page-builder-section {
    padding-top: var(--dr-section-y);
    padding-bottom: var(--dr-section-y);
}

.section-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px 32px;
    align-items: start;
    justify-content: space-between;
    margin-bottom: 32px;
}

.section-head__copy {
    min-width: 0;
}

.section-head__label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-label);
    font-weight: var(--dr-weight-bold);
    line-height: var(--dr-line-meta);
    text-transform: uppercase;
}

.section-head__label::before {
    width: 28px;
    height: 2px;
    flex: 0 0 auto;
    background: currentColor;
    content: '';
}

.section-head__body {
    min-width: 0;
    max-width: 720px;
    margin: 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body);
    line-height: 1.56;
}

.section-head__body p {
    margin: 0;
}

.section-head__body p + p {
    margin-top: 14px;
}

/* The default relationship is a title/description stack with an optional
 * action anchored to the same top baseline. Split heads opt into the real
 * two-column layout below; compact heads remain a single reading column. */
.section-head:not(.section-head--split):not(.section-head--compact) {
    grid-template-columns: minmax(0, 1fr) auto;
}

.section-head:not(.section-head--split):not(.section-head--compact) > .section-head__body {
    grid-column: 1;
    grid-row: 2;
}

.section-head--wide > .section-head__body {
    max-width: none;
}

.section-head--on-dark .section-head__copy h1,
.section-head--on-dark .section-head__copy h2,
.section-head--on-dark .section-head__copy h3 {
    color: var(--dr-color-white);
}

.section-head--on-dark .section-head__body {
    color: var(--dr-color-on-dark-muted);
}

.section-head--split {
    grid-template-columns: minmax(280px, .82fr) minmax(0, 1.18fr);
    column-gap: clamp(32px, 6vw, 96px);
}

.section-head--split > .section-head__copy {
    grid-column: 1;
}

.section-head--split > .section-head__body {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    max-width: 680px;
    margin: 0;
}

.section-head--split > a {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    justify-self: start;
}

.section-head--split > .section-head__action {
    margin-top: 4px;
}

.section-head--compact {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
}

.section-head--compact > .section-head__body {
    grid-column: 1;
    grid-row: auto;
}

.section-head--compact > a {
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
}

/* Explicit width variants keep media compositions from changing the default
 * reading width of nested headings and controls. */
.wrap--wide {
    width: min(1600px, calc(100vw - (var(--dr-gutter) * 2)));
}

.wrap--reading {
    width: min(820px, calc(100vw - (var(--dr-gutter) * 2)));
}

.page-builder-timeline-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 24px;
    margin-bottom: 28px;
}

.page-builder-timeline-head .section-head {
    margin-bottom: 0;
}

.section-head h1,
.section-head h2,
.section-head h3,
.detail-panel h2,
.page-builder-section h2 {
    margin: 0;
    line-height: var(--dr-line-heading);
    letter-spacing: 0;
}

.section-head h1 { font-size: var(--dr-font-h1); }
.section-head h2,
.detail-panel h2,
.page-builder-section h2 { font-size: var(--dr-font-h2); }
.section-head h3 { font-size: var(--dr-font-h3); }

.section-head a,
.button,
button.button,
.button--with-icon,
.contact-submit,
.duorui-footer-form button,
.page-builder-card-action,
.product-load-more-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--dr-button-icon-gap);
    min-height: var(--dr-button-h);
    border: 0;
    border-radius: var(--dr-button-radius);
    padding: 0 var(--dr-button-px);
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
    font-size: var(--dr-button-font);
    font-weight: var(--dr-weight-bold);
    line-height: 1.2;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.section-head a svg,
.button svg,
button.button svg,
.button--with-icon svg,
.contact-submit svg,
.duorui-footer-form button svg,
.page-builder-card-action svg,
.product-load-more-button svg {
    flex: 0 0 auto;
    width: 1.22em;
    height: 1.22em;
    stroke-width: 2.4;
    transition: transform .18s ease;
}

.section-head a:hover svg,
.section-head a:focus-visible svg,
.button:hover svg,
.button:focus-visible svg,
.page-builder-card-action:hover svg,
.page-builder-card-action:focus-visible svg {
    transform: translateX(2px);
}

.section-head:not(.section-head--split) > a {
    grid-column: 2;
    grid-row: 1;
    min-width: 84px;
    align-self: start;
}

.section-head a:hover,
.section-head a:focus-visible,
.button:hover,
.button:focus-visible,
.button--with-icon:hover,
.button--with-icon:focus-visible,
.page-builder-card-action:hover,
.page-builder-card-action:focus-visible,
.product-load-more-button:hover,
.product-load-more-button:focus-visible {
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
    transform: translateY(-1px);
}

/* Home section actions keep the shared split-head placement while retaining
 * the light action treatment used on the pale Quality surface. */
.section-head a.duorui-home-button--light {
    border: 1px solid var(--dr-color-line);
    background: var(--dr-color-white);
    color: var(--dr-color-primary-hover);
}

.section-head a.duorui-home-button--light:hover,
.section-head a.duorui-home-button--light:focus-visible {
    border-color: var(--dr-color-brand-soft);
    background: var(--dr-color-brand-soft);
    color: var(--dr-color-deep);
}

.button.secondary,
.product-card .button {
    background: var(--dr-color-primary);
}

.duorui-hero {
    position: relative;
    min-height: 390px;
    overflow: hidden;
    background: var(--dr-color-primary-hover);
    color: var(--dr-color-white);
}

.duorui-hero--compact {
    min-height: clamp(320px, 35vh, 430px);
}

.duorui-hero--compact .duorui-hero__content {
    align-items: center;
    padding-top: 42px;
    padding-bottom: 42px;
}

.duorui-hero--compact h1 {
    max-width: 760px;
    font-size: var(--dr-font-hero);
    font-weight: var(--dr-weight-semibold);
}

.duorui-hero--compact p {
    max-width: 620px;
    font-size: var(--dr-font-body);
}

.duorui-hero__media {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.duorui-hero-carousel {
    background: var(--dr-color-primary-hover);
}

.duorui-hero-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transform: scale(1.015);
    transition: opacity .7s ease, transform 4.8s ease;
}

.duorui-hero-slide.is-active {
    opacity: 1;
    transform: scale(1);
}

.duorui-hero__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--dr-color-overlay-hero);
}

.duorui-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.duorui-hero__content {
    position: relative;
    z-index: 1;
    display: grid;
    align-content: center;
    min-height: inherit;
    padding-top: 58px;
    padding-bottom: 58px;
}

.duorui-hero__copy {
    max-width: 720px;
}

.duorui-hero h1 {
    margin: 0;
    color: var(--dr-color-white);
    font-size: var(--dr-font-h1);
    line-height: 1.12;
    text-shadow: 0 2px 18px rgba(0, 0, 0, .28);
}

.duorui-hero p,
.duorui-hero .summary {
    max-width: 690px;
    margin: 18px 0 0;
    color: var(--dr-color-on-dark-muted);
    font-size: var(--dr-font-lead);
    font-weight: var(--dr-weight-medium);
    line-height: 1.58;
}

.page-wide-body {
    padding: 44px 0;
    background: var(--dr-color-white);
}

.page-wide-body-copy {
    max-width: 980px;
    border-left: 4px solid var(--dr-color-primary);
    padding-left: 24px;
    color: var(--dr-color-body);
    font-size: var(--dr-font-body);
    line-height: 1.72;
}

.page-wide-hero .duorui-hero__media::after,
.about-hero .duorui-hero__media::after {
    background: linear-gradient(90deg, rgba(var(--dr-color-deep-rgb), .94) 0%, rgba(var(--dr-color-deep-rgb), .82) 38%, rgba(var(--dr-color-deep-rgb), .42) 70%, rgba(var(--dr-color-deep-rgb), .12) 100%), linear-gradient(0deg, rgba(var(--dr-color-deep-rgb), .58), rgba(var(--dr-color-deep-rgb), .16));
}

.page-wide-hero .duorui-hero__media img,
.about-hero .duorui-hero__media img {
    opacity: .72;
    object-position: 68% center;
}

.duorui-page-applications .page-wide-hero .duorui-hero__media img {
    object-position: 72% center;
}

.duorui-page-service .page-wide-hero .duorui-hero__media img {
    object-position: 70% center;
}

.news-hero .duorui-hero__media::after,
.news-detail-hero .duorui-hero__media::after,
.faq-index-hero .duorui-hero__media::after,
.contact-hero .duorui-hero__media::after {
    background: linear-gradient(90deg, rgba(var(--dr-color-deep-rgb), .92) 0%, rgba(var(--dr-color-deep-rgb), .78) 38%, rgba(var(--dr-color-deep-rgb), .38) 70%, rgba(var(--dr-color-deep-rgb), .08) 100%), linear-gradient(0deg, rgba(var(--dr-color-deep-rgb), .48), rgba(var(--dr-color-deep-rgb), .08));
}

.news-hero .duorui-hero__media img,
.news-detail-hero .duorui-hero__media img,
.faq-index-hero .duorui-hero__media img,
.contact-hero .duorui-hero__media img {
    opacity: .84;
    object-position: 70% center;
}

/* Editorial hero type stays on the dark reading layer. The title uses the
 * light brand role for a visible color cue while metadata stays secondary. */
.duorui-page-news .news-hero .duorui-hero__copy .eyebrow,
.duorui-page-news-detail .news-detail-hero .duorui-hero__copy .eyebrow {
    color: var(--dr-color-brand-soft);
}

.duorui-page-news .news-hero .duorui-hero__copy h1,
.duorui-page-news-detail .news-detail-hero .duorui-hero__copy h1 {
    color: var(--dr-color-brand-soft);
    text-shadow: 0 2px 18px rgba(var(--dr-color-deep-rgb), .42);
}

.duorui-page-news .news-hero .duorui-hero__copy p,
.duorui-page-news-detail .news-detail-hero .duorui-hero__copy p {
    color: var(--dr-color-on-dark-muted);
}

.duorui-page-news-detail .news-detail-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 22px;
    color: var(--dr-color-on-dark-subtle);
    font-size: var(--dr-font-meta);
}

/* ===== Public shell ===== */
.duorui-top {
    position: sticky;
    top: 0;
    z-index: 90;
    border-bottom: 1px solid rgba(17, 42, 64, .12);
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 12px 30px rgba(10, 30, 50, .09);
    backdrop-filter: blur(12px);
}

.duorui-brand-row {
    display: contents;
}

.duorui-brand {
    grid-area: brand;
    display: inline-flex;
    align-items: center;
    min-width: 0;
}

.duorui-mobile-actions {
    display: none;
}

.duorui-nav-shell {
    grid-area: nav;
    justify-self: center;
    width: 100%;
}

.duorui-nav-menu,
.duorui-sub-menu {
    margin: 0;
    padding: 0;
    list-style: none;
}

.duorui-nav-item {
    position: relative;
}

.duorui-nav-caret {
    width: 10px;
    height: 6px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.duorui-sub-menu {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    z-index: 30;
    min-width: 270px;
    border: 1px solid var(--dr-color-line);
    border-radius: var(--dr-radius);
    padding: 10px;
    background: var(--dr-color-white);
    box-shadow: var(--dr-shadow);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}

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

.duorui-product-mega {
    position: fixed;
    top: var(--dr-header-height);
    left: 50%;
    z-index: 120;
    display: block;
    width: min(1180px, calc(100vw - (var(--dr-gutter) * 2)));
    max-width: calc(100vw - (var(--dr-gutter) * 2));
    box-sizing: border-box;
    border: 1px solid var(--dr-color-line);
    border-radius: 0 0 var(--dr-radius) var(--dr-radius);
    padding: clamp(18px, 2vw, 28px);
    background: var(--dr-color-surface);
    box-shadow: var(--dr-shadow);
    max-height: calc(100dvh - var(--dr-header-height) - 20px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transform: translate(-50%, -4px);
    transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}

.duorui-product-mega[hidden] {
    display: none;
}

.duorui-product-mega:not([hidden]) {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
    transform: translate(-50%, 0);
}

.duorui-product-mega__head { box-sizing: border-box; display: grid; gap: 12px; width: 100%; padding: 4px 8px 0; background: transparent; }
.duorui-product-mega__head strong { color: var(--dr-color-heading); font-size: var(--dr-font-lead); font-weight: var(--dr-weight-bold); }
.duorui-product-mega__head p { color: var(--dr-color-muted); }
.duorui-product-mega__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr); gap: 16px; min-width: 0; min-height: 0; margin-top: 20px; overflow: visible; background: transparent; }
.duorui-product-mega__items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; gap: 0; min-width: 0; min-height: 0; overflow: hidden; border: 1px solid var(--dr-color-line); border-radius: var(--dr-radius); background: var(--dr-color-surface); }
.duorui-product-mega__item { display: grid; gap: 6px; align-content: center; min-width: 0; min-height: 86px; box-sizing: border-box; overflow: hidden; border-bottom: 1px solid var(--dr-color-line); padding: 18px 24px; color: var(--dr-color-heading); }
.duorui-product-mega__item:hover, .duorui-product-mega__item:focus-visible, .duorui-product-mega__item.is-active, .duorui-product-mega__item[data-mega-preview="true"] { background: var(--dr-color-primary); color: var(--dr-color-white); }
.duorui-product-mega__item strong { min-width: 0; overflow-wrap: break-word; font-size: var(--dr-font-control); font-weight: var(--dr-weight-semibold); line-height: 1.3; }
.duorui-product-mega__item small { min-width: 0; overflow-wrap: break-word; color: var(--dr-color-muted); font-size: var(--dr-font-meta); line-height: 1.4; }
.duorui-product-mega__item:hover small, .duorui-product-mega__item:focus-visible small, .duorui-product-mega__item.is-active small, .duorui-product-mega__item[data-mega-preview="true"] small { color: rgba(255, 255, 255, .82); }
.duorui-product-mega__visual { position: relative; min-width: 0; min-height: 230px; overflow: hidden; border-radius: var(--dr-radius); background: var(--dr-color-deep); }
.duorui-product-mega__visual-link { position: absolute; inset: 0; z-index: 1; display: block; overflow: hidden; color: var(--dr-color-white); }
.duorui-product-mega__visual-link:focus-visible { outline: 3px solid var(--dr-color-focus); outline-offset: -3px; }
.duorui-product-mega__visual img { display: block; width: 100%; height: 100%; min-height: 230px; object-fit: cover; opacity: .88; }
.duorui-product-mega__visual-link::after { position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, var(--dr-color-overlay-mega), transparent 65%); content: ''; pointer-events: none; }
.duorui-product-mega__visual strong { position: absolute; right: 28px; bottom: 26px; left: 28px; z-index: 2; color: var(--dr-color-white); font-size: var(--dr-font-card-title); font-weight: var(--dr-weight-bold); line-height: 1.18; text-shadow: 0 2px 14px var(--dr-color-shadow); }

/* Keep panel content inside its own geometry and make keyboard focus visible
 * against both the light item rail and the dark preview image. */
.duorui-product-mega__item,
.duorui-product-mega__item strong,
.duorui-product-mega__item small { max-width: 100%; }

.duorui-product-mega__item:focus-visible {
    outline: 3px solid var(--dr-color-focus);
    outline-offset: -3px;
}

@media (min-width: 1201px) {
    /* Keep six product families and the preview within one predictable panel. */
    .duorui-product-mega { padding: 16px; max-height: calc(100dvh - var(--dr-header-height) - 16px); overflow-y: auto; }
    .duorui-product-mega__grid { height: 258px; min-height: 0; margin-top: 12px; }
    .duorui-product-mega__items { grid-template-rows: repeat(3, minmax(0, 1fr)); }
    .duorui-product-mega__item { min-height: 0; padding: 10px 16px; }
    .duorui-product-mega__visual { height: 100%; min-height: 230px; }
    .duorui-product-mega__visual img { height: 100%; min-height: 230px; }
}

.duorui-sub-menu-link {
    display: block;
    border-radius: 5px;
    padding: 10px 12px;
    color: var(--dr-color-body);
    font-size: var(--dr-font-body-small);
}

.duorui-sub-menu-link:hover {
    background: var(--dr-color-brand-soft);
    color: var(--dr-color-primary);
}

.duorui-footer {
    position: relative;
    padding: 84px 0 52px;
    background: var(--dr-color-surface);
    color: var(--dr-color-body);
}

.duorui-footer-grid {
    display: grid;
    grid-template-columns: minmax(190px, .95fr) minmax(200px, 1fr) minmax(180px, .9fr) minmax(340px, 1.35fr);
    gap: clamp(28px, 3vw, 52px);
    padding-top: 0;
}

.duorui-footer--with-form .duorui-footer-grid {
    grid-template-columns: minmax(190px, .95fr) minmax(180px, .92fr) minmax(180px, .86fr) minmax(190px, .86fr) minmax(0, 1.2fr);
}

.duorui-footer h3,
.duorui-footer h3 a {
    margin: 0 0 10px;
    color: var(--dr-color-deep);
    font-size: var(--dr-font-footer-heading);
    font-weight: var(--dr-weight-bold);
    text-transform: none;
}

.duorui-footer a,
.duorui-footer p {
    color: var(--dr-color-body);
    font-size: var(--dr-font-footer-heading);
    line-height: 1.65;
}

.duorui-footer a:hover,
.duorui-footer a:focus-visible {
    color: var(--dr-color-primary);
}

.duorui-footer-contact {
    display: grid;
    gap: 7px;
    margin: 0;
}

.duorui-footer-contact strong {
    display: block;
    margin-bottom: 1px;
    color: var(--dr-color-deep);
    font-size: var(--dr-font-label);
    line-height: 1.1;
}

.duorui-social-row {
    display: flex;
    justify-content: center;
    gap: var(--dr-social-gap);
}

.duorui-social-row a {
    display: grid;
    place-items: center;
    width: var(--dr-social-size);
    height: var(--dr-social-size);
    border: 1px solid var(--dr-color-line);
    border-radius: 50%;
    background: var(--dr-color-white);
    color: var(--dr-color-primary-hover);
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.duorui-social-row a:hover,
.duorui-social-row a:focus-visible {
    border-color: var(--dr-color-primary);
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
    box-shadow: 0 10px 24px rgba(var(--dr-color-primary-rgb), .22);
    transform: translateY(-1px);
}

.duorui-social-row span {
    display: grid;
    place-items: center;
}

.duorui-social-row img {
    display: block;
    width: 19px;
    height: 19px;
    object-fit: contain;
}

.duorui-footer-form {
    display: grid;
    gap: 8px;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
}

.duorui-footer-form h3 {
    margin-bottom: 2px;
}

.duorui-footer-form .duorui-field {
    gap: 0;
}

.duorui-footer-form .duorui-field-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.duorui-footer-form input,
.duorui-footer-form select,
.duorui-footer-form textarea {
    min-height: 34px;
    border-color: var(--dr-color-line);
    border-radius: var(--dr-button-radius);
    background: var(--dr-color-white);
    color: var(--dr-color-deep);
    font-size: var(--dr-font-control);
}

.duorui-footer-form textarea {
    min-height: 54px;
}

.duorui-footer-form input::placeholder,
.duorui-footer-form textarea::placeholder {
    color: var(--dr-color-body);
}

.duorui-footer-form button {
    min-height: var(--dr-button-h);
    width: 100%;
    border: 1px solid var(--dr-color-primary);
    border-radius: var(--dr-button-radius);
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
}

.duorui-footer-form button:hover,
.duorui-footer-form button:focus-visible {
    background: var(--dr-color-primary-hover);
    color: var(--dr-color-white);
    transform: translateY(-1px);
}

.duorui-footer-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    align-self: start;
    gap: var(--dr-footer-brand-gap);
    min-width: 0;
    text-align: center;
}

.duorui-footer-brand .duorui-brand {
    grid-area: auto;
    display: inline-flex;
    width: min(var(--dr-footer-logo-width, 190px), 100%);
    min-width: 0;
    justify-content: center;
}

.duorui-footer-brand .duorui-brand img {
    display: block;
    width: 100%;
    max-width: var(--dr-footer-logo-width, 190px);
    height: auto;
    max-height: none;
}

.duorui-footer-contact-column {
    display: grid;
    align-content: start;
    gap: 0;
    min-width: 0;
}

.duorui-footer-inquiry-column {
    min-width: 0;
}

.duorui-footer-inquiry-column .duorui-footer-form {
    min-width: 0;
}

.duorui-footer-nav-group > a {
    display: block;
}

/* Scene-led header shell. Base geometry stays here; state colors follow below. */

.duorui-top.is-overlay {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    height: 88px;
    border-bottom-color: transparent;
    background: linear-gradient(180deg, rgba(var(--dr-color-deep-rgb), .58), rgba(var(--dr-color-deep-rgb), 0));
    box-shadow: none;
    backdrop-filter: none;
}

.duorui-top .wrap {
    grid-template-columns: 180px minmax(0, 1fr) 176px minmax(214px, auto);
    grid-template-areas: "brand nav search actions";
    gap: 18px;
    min-height: 88px;
    padding-top: 5px;
    padding-bottom: 5px;
    display: grid;
    align-items: center;
}

.duorui-brand img {
    width: var(--dr-header-logo-width);
    max-height: calc(var(--dr-header-height) * .75);
    display: block;
    height: auto;
    object-fit: contain;
}

.duorui-nav-menu {
    gap: 2px;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
}

.duorui-nav-link {
    min-height: 42px;
    border-radius: 0;
    padding: 0 11px;
    font-size: var(--dr-font-control);
    font-weight: var(--dr-weight-semibold);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--dr-color-heading);
    white-space: nowrap;
}

.duorui-nav-link:hover,
.duorui-nav-item.current-menu-item > .duorui-nav-link,
.duorui-nav-item.current-menu-ancestor > .duorui-nav-link,
.duorui-nav-item > .duorui-nav-link[aria-expanded="true"] {
    background: transparent;
    color: var(--dr-color-primary-hover);
}

.duorui-search-form {
    width: 164px;
    height: 40px;
    border-color: rgba(17, 42, 64, .16);
    border-radius: 0;
    background: rgba(247, 250, 252, .9);
    grid-area: search;
    justify-self: end;
    display: flex;
    align-items: center;
    border: 1px solid var(--dr-color-line);
    overflow: hidden;
}

.duorui-search {
    padding-right: 6px;
    padding-left: 13px;
    font-size: var(--dr-font-body-small);
    flex: 1;
    min-width: 0;
    height: 100%;
    border: 0;
    padding: 0 10px 0 15px;
    background: transparent;
    outline: 0;
}

.duorui-search-button {
    width: 36px;
    height: 36px;
    border-radius: 0;
    background: transparent;
    color: var(--dr-color-primary-hover);
    display: grid;
    place-items: center;
    margin-right: 2px;
    border: 0;
}

.duorui-header-actions {
    grid-area: actions;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    width: min(220px, 100%);
    justify-self: end;
    min-width: 0;
}

.duorui-header-social {
    display: grid;
    grid-template-columns: repeat(5, var(--dr-header-social-size));
    grid-auto-rows: var(--dr-header-social-size);
    align-content: center;
    justify-content: center;
    gap: var(--dr-header-social-gap);
    width: calc((var(--dr-header-social-size) * 5) + (var(--dr-header-social-gap) * 4));
    min-width: calc((var(--dr-header-social-size) * 5) + (var(--dr-header-social-gap) * 4));
    margin-inline: auto;
    color: var(--dr-color-primary-hover);
}

.duorui-header-social a {
    display: grid;
    place-items: center;
    box-sizing: border-box;
    width: var(--dr-header-social-size);
    height: var(--dr-header-social-size);
    flex: 0 0 var(--dr-header-social-size);
    border: 1px solid currentColor;
    border-radius: 50%;
    color: inherit;
}

.duorui-header-social a svg {
    display: block;
    width: 16px;
    height: 16px;
    aspect-ratio: 1;
    flex: 0 0 16px;
}

.duorui-header-social a:hover,
.duorui-header-social a:focus-visible {
    border-color: var(--dr-color-primary);
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
    outline: 0;
    transform: translateY(-1px);
}

.duorui-header-social a:active {
    border-color: var(--dr-color-primary-hover);
    background: var(--dr-color-primary-hover);
    color: var(--dr-color-white);
    transform: translateY(0);
}

.duorui-header-social a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

.duorui-top.is-overlay .duorui-header-social {
    color: var(--dr-color-white);
}

.duorui-top.is-overlay .duorui-header-social a:hover,
.duorui-top.is-overlay .duorui-header-social a:focus-visible {
    border-color: var(--dr-color-white);
    background: var(--dr-color-white);
    color: var(--dr-color-primary-hover);
}

.duorui-top.is-overlay .duorui-header-social a:active {
    border-color: var(--dr-color-brand-soft);
    background: var(--dr-color-brand-soft);
    color: var(--dr-color-deep);
}

.duorui-top.is-overlay.is-scrolled .duorui-header-social,
.duorui-top.is-menu-open .duorui-header-social,
.duorui-top.is-search-open .duorui-header-social,
.duorui-top.is-static .duorui-header-social {
    color: var(--dr-color-primary-hover);
}

.duorui-top.is-overlay .duorui-search::placeholder {
    color: rgba(255, 255, 255, .72);
}

.duorui-top.is-overlay.is-scrolled,
.duorui-top.is-overlay.is-menu-open,
.duorui-top.is-overlay.is-search-open {
    border-bottom-color: rgba(17, 42, 64, .1);
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 8px 26px rgba(10, 30, 50, .08);
    backdrop-filter: blur(12px);
}

.duorui-top.is-static {
    position: relative;
    height: 88px;
    border-bottom-color: rgba(17, 42, 64, .1);
    background: var(--dr-color-white);
    box-shadow: none;
}

.duorui-top.is-overlay .duorui-nav-link { color: rgba(255,255,255,.94); font-weight: var(--dr-weight-semibold); text-shadow: 0 1px 12px rgba(0,0,0,.3); }
.duorui-top.is-overlay.is-scrolled .duorui-nav-link,
.duorui-top.is-overlay.is-menu-open .duorui-nav-link,
.duorui-top.is-overlay.is-search-open .duorui-nav-link,
.duorui-top.is-static .duorui-nav-link { color: var(--dr-color-heading); text-shadow: none; }
.duorui-top.is-overlay .duorui-nav-link:hover,
.duorui-top.is-overlay .duorui-nav-item.current-menu-item > .duorui-nav-link,
.duorui-top.is-overlay .duorui-nav-item.current-menu-ancestor > .duorui-nav-link,
.duorui-top.is-overlay .duorui-nav-link:focus-visible { background: transparent; color: var(--dr-color-white); }
.duorui-top.is-overlay .duorui-nav-item.current-menu-item > .duorui-nav-link,
.duorui-top.is-overlay .duorui-nav-item.current-menu-ancestor > .duorui-nav-link,
.duorui-top.is-overlay .duorui-nav-item > .duorui-nav-link[aria-expanded="true"] { background: transparent; color: var(--dr-color-brand-soft); }
.duorui-top.is-overlay.is-scrolled .duorui-nav-link:hover,
.duorui-top.is-overlay.is-scrolled .duorui-nav-item.current-menu-item > .duorui-nav-link,
.duorui-top.is-overlay.is-scrolled .duorui-nav-item.current-menu-ancestor > .duorui-nav-link,
.duorui-top.is-overlay.is-scrolled .duorui-nav-item > .duorui-nav-link[aria-expanded="true"],
.duorui-top.is-static .duorui-nav-link:hover,
.duorui-top.is-static .duorui-nav-item.current-menu-item > .duorui-nav-link,
.duorui-top.is-static .duorui-nav-item.current-menu-ancestor > .duorui-nav-link,
.duorui-top.is-static .duorui-nav-item > .duorui-nav-link[aria-expanded="true"] { background: transparent; color: var(--dr-color-primary-hover); }
.duorui-top.is-overlay .duorui-search-form { border-color: rgba(255,255,255,.46); background: rgba(0,0,0,.14); }
.duorui-top.is-overlay .duorui-search, .duorui-top.is-overlay .duorui-search-button { color: var(--dr-color-white); }
.duorui-top.is-overlay.is-scrolled .duorui-search-form, .duorui-top.is-menu-open .duorui-search-form, .duorui-top.is-search-open .duorui-search-form, .duorui-top.is-static .duorui-search-form { border-color: rgba(17,42,64,.16); background: var(--dr-color-surface); }
.duorui-top.is-overlay.is-scrolled .duorui-search, .duorui-top.is-overlay.is-scrolled .duorui-search-button, .duorui-top.is-menu-open .duorui-search, .duorui-top.is-menu-open .duorui-search-button, .duorui-top.is-search-open .duorui-search, .duorui-top.is-search-open .duorui-search-button, .duorui-top.is-static .duorui-search, .duorui-top.is-static .duorui-search-button { color: var(--dr-color-heading); }

@media (max-width: 1200px) {
    .duorui-product-mega {
        position: static;
        width: 100%;
        max-width: 100%;
        max-height: none;
        padding: 12px 0 0;
        border: 0;
        border-top: 1px solid var(--dr-color-line);
        border-radius: 0;
        box-shadow: none;
        overflow: hidden;
        opacity: 1;
        pointer-events: auto;
        visibility: visible;
        transform: none;
    }

    .duorui-product-mega__grid,
    .duorui-product-mega__items,
    .duorui-product-mega__item { width: 100%; max-width: 100%; }

}

/* ===== Components ===== */

.site-cookie-notice[hidden] {
    display: none;
}

.site-cookie-notice {
    position: fixed;
    right: var(--dr-gutter);
    bottom: 24px;
    left: var(--dr-gutter);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    width: min(720px, calc(100vw - (var(--dr-gutter) * 2)));
    margin-inline: auto;
    padding: 16px 18px;
    border: 1px solid rgba(var(--dr-color-deep-rgb), .18);
    border-radius: var(--dr-radius);
    background: var(--dr-color-deep);
    color: var(--dr-color-white);
    box-shadow: var(--dr-shadow-soft);
    font-size: var(--dr-font-body-small);
    line-height: var(--dr-line-body-tight);
}

.site-cookie-notice button {
    flex: 0 0 auto;
    min-height: 40px;
    border: 1px solid var(--dr-color-white);
    border-radius: var(--dr-button-radius);
    padding: 0 16px;
    background: var(--dr-color-white);
    color: var(--dr-color-deep);
    font-size: var(--dr-font-control);
    font-weight: var(--dr-weight-semibold);
    line-height: 1.2;
    cursor: pointer;
}

.site-cookie-notice button:hover,
.site-cookie-notice button:focus-visible {
    border-color: var(--dr-color-brand-soft);
    background: var(--dr-color-brand-soft);
    color: var(--dr-color-deep);
}

.duorui-field {
    display: grid;
    gap: 6px;
}

.duorui-field-label,
.captcha-field span {
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-bold);
}

.duorui-field input,
.duorui-field select,
.duorui-field textarea,
.captcha-field input {
    width: 100%;
    border: 1px solid var(--dr-color-line);
    border-radius: 5px;
    background: var(--dr-color-white);
    color: var(--dr-color-heading);
    outline: 0;
}

.duorui-field input,
.duorui-field select,
.captcha-field input {
    min-height: 42px;
    padding: 0 12px;
}

.duorui-field textarea {
    min-height: 112px;
    padding: 10px 12px;
    resize: vertical;
}

.duorui-field--wide,
.wide {
    grid-column: 1 / -1;
}

.contact-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.duorui-modal[hidden] {
    display: none;
}

.duorui-modal {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: grid;
    place-items: center;
    padding: 24px;
}

.duorui-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(3, 13, 24, .66);
}

.duorui-modal-panel {
    position: relative;
    z-index: 1;
    width: min(560px, 100%);
    max-height: min(86vh, 820px);
    overflow: auto;
    border-radius: var(--dr-radius);
    padding: 0;
    background: var(--dr-color-white);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .28);
}

.duorui-modal-intro {
    display: grid;
    gap: 8px;
    padding: 25px 28px 20px;
    background:
        linear-gradient(135deg, rgba(var(--dr-color-primary-rgb), .12), transparent 38%),
        linear-gradient(180deg, var(--dr-color-surface) 0, var(--dr-color-surface) 100%);
}

.duorui-modal-intro span {
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-caption);
    font-weight: var(--dr-weight-heading);
    letter-spacing: 0;
    line-height: 1;
    text-transform: uppercase;
}

.duorui-modal-intro h3 {
    margin: 0 42px 0 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-h3);
    line-height: var(--dr-line-heading);
}

.duorui-modal-intro p {
    max-width: 460px;
    margin: 0;
    color: var(--dr-color-body);
    font-size: var(--dr-font-body-small);
    line-height: 1.55;
}

/* Modals can be rendered inside dark CTA blocks; keep dialog text isolated from ancestor page-section colors. */
.duorui-modal .duorui-modal-intro span {
    color: var(--dr-color-primary-hover);
}

.duorui-modal .duorui-modal-intro h3 {
    color: var(--dr-color-heading);
}

.duorui-modal .duorui-modal-intro p {
    color: var(--dr-color-body);
}

.duorui-modal .duorui-modal-form--compact,
.duorui-modal .duorui-modal-form--compact .duorui-field,
.duorui-modal .duorui-modal-form--compact .form-status {
    color: var(--dr-color-body);
}

.duorui-modal .duorui-modal-form--compact {
    border: 0;
    border-radius: 0;
    background: var(--dr-color-white);
    box-shadow: none;
}

.duorui-modal-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: var(--dr-color-surface);
    color: var(--dr-color-heading);
    font-size: var(--dr-font-card-title);
    line-height: 1;
}

.duorui-modal-form--compact {
    border: 0;
    border-radius: 0;
    padding: 20px 28px 26px;
    background: var(--dr-color-white);
    box-shadow: none;
}

.duorui-modal-form--compact .contact-form-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
}

.duorui-modal-form--compact .duorui-field {
    gap: 0;
}

.duorui-modal-form--compact .duorui-field-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.duorui-modal-form--compact input,
.duorui-modal-form--compact select,
.duorui-modal-form--compact textarea {
    min-height: 40px;
    border-color: rgba(var(--dr-color-primary-rgb), .16);
    border-radius: 5px;
    background: var(--dr-color-surface-soft);
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body-small);
}

.duorui-modal-form--compact textarea {
    min-height: 78px;
}

.duorui-modal-form--compact input::placeholder,
.duorui-modal-form--compact textarea::placeholder {
    color: var(--dr-color-muted);
}

.duorui-modal-form--compact .contact-submit {
    width: 100%;
    min-height: 40px;
    margin-top: 2px;
}

.duorui-modal-form--compact .form-status {
    margin: 2px 0 0;
    font-size: var(--dr-font-meta);
    line-height: 1.4;
}

.sitebuilder-carousel-viewport {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

[data-carousel-track] {
    display: flex;
    gap: 22px;
    width: 100%;
    min-width: 0;
    transform: translate3d(var(--dr-carousel-offset, 0px), 0, 0);
    transition: transform .4s cubic-bezier(.22, .61, .36, 1);
}

[data-carousel-track][data-carousel-immediate="true"] {
    transition: none;
}

[data-carousel-slide] {
    flex: 0 0 calc((100% - 44px) / 3);
    min-width: 0;
}

[data-carousel-slide][hidden],
[hidden] {
    display: none;
}

[data-carousel-layout="fixed-slots"] [data-carousel-slide] {
    flex-basis: calc((100% - 66px) / 4);
}

.product-gallery [data-carousel-slide],
.thumbnail-rail [data-carousel-slide] {
    flex-basis: auto;
}

.page-builder-timeline-controls {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: 18px;
}

.page-builder-timeline-controls button,
.thumbnail-rail button,
[data-carousel-controls] > button {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 1px solid var(--dr-color-line);
    border-radius: 50%;
    background: var(--dr-color-white);
    color: var(--dr-color-primary);
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.page-builder-timeline-controls button:hover,
.page-builder-timeline-controls button:focus-visible,
.thumbnail-rail > button:hover,
.thumbnail-rail > button:focus-visible,
.thumbnail-rail > button:active,
[data-carousel-controls] > button:hover,
[data-carousel-controls] > button:focus-visible,
[data-carousel-controls] > button:active {
    border-color: var(--dr-color-primary);
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
}

.thumbnail-rail > button:active {
    transform: translateY(1px);
}

[data-carousel-controls] {
    display: flex;
    align-items: center;
    gap: 8px;
}

[data-carousel-controls] > button {
    flex: 0 0 auto;
}

.page-builder-card,
.product-card,
.series-product-card,
.detail-panel,
.contact-form,
.contact-info-panel,
    .filter-panel,
.news-card {
    border: 1px solid var(--dr-color-line);
    border-radius: var(--dr-radius);
    background: var(--dr-color-white);
    box-shadow: var(--dr-shadow-soft);
}

.page-builder-card,
.product-card,
.series-product-card,
.detail-panel,
.news-card {
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.page-builder-card:hover,
.product-card:hover,
.series-product-card:hover,
.news-card:hover {
    border-color: rgba(var(--dr-color-primary-rgb), .26);
    box-shadow: 0 20px 42px rgba(10, 30, 50, .12);
    transform: translateY(-2px);
}

.product-card-action {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    justify-self: start;
    margin-top: auto;
    color: var(--dr-color-primary);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-heading);
}

.product-card-link:hover .product-card-action,
.product-card-link:focus-visible .product-card-action {
    color: var(--dr-color-primary-hover);
}

.page-builder-card {
    min-width: 0;
}

.filter-panel,
.product-series-tabs-shell,
.faq-category-nav {
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    background: var(--dr-color-white);
    box-shadow: var(--dr-shadow-soft);
}

.filter-panel {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    padding: 18px;
}

.filter-panel--single,
.filter-panel--compact {
    grid-template-columns: minmax(0, 1fr);
}

.filter-panel--dual {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.filter-group h2 {
    margin: 0 0 12px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-h4);
}

.filter-chip-list,
.series-tabs,
.faq-category-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.filter-chip-list a,
.series-tabs a,
.faq-category-nav a {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 38px;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .14);
    border-radius: 0;
    padding: 0 14px;
    background: var(--dr-color-surface-soft);
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-bold);
    line-height: 1.15;
}

.filter-chip-list a.active,
.series-tabs a.active,
.faq-category-nav a[aria-current="page"] {
    border-color: var(--dr-color-primary);
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
}

.filter-count {
    color: inherit;
    opacity: .72;
}

/* Product archive taxonomy navigation. This component owns the complete
 * category/filter surface so page composition never changes link geometry. */
.product-archive-nav {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    border: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.product-archive-nav .filter-group {
    min-width: 0;
}

.product-archive-nav .filter-group h2 {
    margin-bottom: 14px;
}

.product-archive-nav .filter-chip-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1px;
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    background: rgba(var(--dr-color-primary-rgb), .12);
    box-shadow: var(--dr-shadow-soft);
}

.product-archive-nav .filter-chip-list a {
    justify-content: space-between;
    min-width: 0;
    min-height: 58px;
    border: 0;
    padding: 10px 15px;
    background: var(--dr-color-white);
    font-size: var(--dr-font-body-small);
    line-height: 1.32;
}

.product-archive-nav .filter-chip-list a:hover,
.product-archive-nav .filter-chip-list a:focus-visible {
    background: var(--dr-color-surface);
}

.product-archive-nav .filter-chip-list a.active {
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
}

.product-archive-nav .filter-chip-list a > span:first-child {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* Product category cards are image-led and preserve the complete CMS image. */
.product-category-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.product-category-card {
    min-width: 0;
}

.product-category-card a {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    height: 100%;
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .13);
    border-radius: var(--dr-radius);
    background: var(--dr-color-white);
    color: inherit;
    box-shadow: var(--dr-shadow-soft);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.product-category-card a:hover,
.product-category-card a:focus-visible {
    border-color: rgba(var(--dr-color-primary-rgb), .32);
    box-shadow: 0 20px 44px rgba(10, 31, 51, .105);
    transform: translateY(-2px);
}

.product-category-card__media {
    display: grid;
    aspect-ratio: 16 / 9;
    place-items: center;
    overflow: hidden;
    padding: 14px;
    background: var(--dr-color-surface-soft);
}

.product-category-card__media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.product-category-card__body {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 10px;
    min-width: 0;
    padding: 20px;
}

.product-category-card h2,
.product-category-card h3 {
    margin: 0;
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-card-title);
    line-height: 1.24;
}

.product-category-card p {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.product-category-card__meta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

.product-category-card__arrow {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .14);
    border-radius: 50%;
    background: var(--dr-color-white);
    color: var(--dr-color-primary);
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.product-category-card a:hover .product-category-card__arrow,
.product-category-card a:focus-visible .product-category-card__arrow {
    border-color: var(--dr-color-primary);
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
    transform: translateX(2px);
}

.product-series-tabs-shell,
.faq-category-nav {
    padding: 12px;
}

.carousel-thumb {
    display: grid;
    place-items: center;
    width: 78px;
    min-width: 78px;
    height: 78px;
    min-height: 78px;
    overflow: hidden;
    border-radius: 12px;
}

.carousel-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.page-builder-section--inquiry {
    padding-top: var(--dr-section-y-tight);
    padding-bottom: var(--dr-section-y-tight);
    background: var(--dr-color-surface);
}

.page-builder-inquiry {
    position: relative;
    display: grid;
    grid-template-columns: 54px minmax(0, 1.15fr) minmax(180px, .8fr) auto;
    gap: 20px;
    align-items: center;
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .14);
    border-radius: 6px;
    padding: 24px 28px;
    background: var(--dr-color-primary);
    box-shadow: 0 22px 46px rgba(7, 29, 51, .16);
}

.page-builder-inquiry::before {
    content: "";
    position: absolute;
    inset: 0;
    display: none;
    pointer-events: none;
}

.page-builder-inquiry::after {
    content: "";
    position: absolute;
    display: none;
    top: -42px;
    right: -32px;
    width: 180px;
    height: 180px;
    border: 1px solid rgba(255, 255, 255, .15);
    transform: rotate(28deg);
}

.page-builder-inquiry-icon {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 6px;
    background: var(--dr-color-white);
    color: var(--dr-color-primary);
    box-shadow: 0 12px 26px rgba(var(--dr-color-primary-rgb), .24);
}

.page-builder-inquiry > div {
    position: relative;
    z-index: 1;
    max-width: 860px;
}

/* cta-band is shared by Page Builder, Applications and Solution Detail. The
 * panel-specific classes keep their visual identity, while these slots keep
 * the optional icon, checklist and actions from creating an implicit second
 * row when one page supplies more content than another. */
.page-builder-inquiry .cta-band__icon {
    grid-column: 1;
    grid-row: 1;
}

.page-builder-inquiry .cta-band__copy {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
}

.page-builder-inquiry .cta-band__list {
    grid-column: 3;
    grid-row: 1;
    min-width: 0;
    margin: 0;
}

.page-builder-inquiry .cta-band__actions {
    grid-column: 4;
    grid-row: 1;
    min-width: 0;
}

.page-builder-inquiry h2 {
    margin: 0 0 7px;
    color: var(--dr-color-white);
    font-size: var(--dr-font-card-title);
    line-height: 1.18;
}

.page-builder-inquiry p {
    max-width: 820px;
    margin: 0;
    color: var(--dr-color-white);
    font-size: var(--dr-font-small);
    line-height: 1.55;
}

.page-builder-inquiry-actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: var(--dr-button-group-gap);
    justify-content: flex-end;
}

.page-builder-inquiry .button,
.page-builder-inquiry-actions .button {
    position: relative;
    z-index: 1;
    min-width: 136px;
    border-radius: var(--dr-button-radius);
    text-transform: none;
    white-space: nowrap;
}

.page-builder-inquiry-actions .button.secondary {
    border: 1px solid rgba(255, 255, 255, .32);
    background: rgba(255, 255, 255, .1);
    color: var(--dr-color-white);
}

.page-builder-inquiry-actions .button.secondary:hover,
.page-builder-inquiry-actions .button.secondary:focus-visible {
    border-color: var(--dr-color-white);
    background: var(--dr-color-white);
    color: var(--dr-color-primary-hover);
}

.tabs__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.tabs__nav a,
.tabs__nav button {
    min-height: 42px;
    border: 1px solid var(--dr-color-line);
    border-radius: 999px;
    padding: 0 16px;
    background: var(--dr-color-white);
    color: var(--dr-color-body);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-bold);
}

.tabs__nav [aria-selected="true"],
.tabs__nav [aria-current="page"] {
    border-color: var(--dr-color-primary);
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
}

.product-info-tabs {
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .14);
    background: var(--dr-color-white);
    box-shadow: 0 18px 42px rgba(10, 30, 50, .075);
}

.product-info-tabs__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    border-bottom: 1px solid rgba(var(--dr-color-primary-rgb), .14);
    background: var(--dr-color-surface);
}

.product-info-tabs__nav button {
    position: relative;
    min-height: 56px;
    border: 0;
    border-right: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    padding: 0 24px;
    background: transparent;
    color: var(--dr-color-primary-hover);
    font: inherit;
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-heading);
    cursor: pointer;
}

.product-info-tabs__nav button::after {
    content: "";
    position: absolute;
    right: 18px;
    bottom: 0;
    left: 18px;
    height: 3px;
    background: transparent;
}

.product-info-tabs__nav button:hover,
.product-info-tabs__nav button:focus-visible,
.product-info-tabs__nav button.is-active {
    background: var(--dr-color-white);
    color: var(--dr-color-primary);
}

.product-info-tabs__nav button.is-active::after {
    background: var(--dr-color-primary);
}

.product-info-tabs__body {
    padding: 32px;
}

.product-info-tabs__panel h2 {
    margin: 0 0 18px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-card-title);
    font-weight: var(--dr-weight-heading);
    line-height: 1.18;
}

.detail-rich-copy {
    max-width: 1100px;
    color: var(--dr-color-body);
    font-size: var(--dr-font-body);
}

.detail-rich-copy p {
    margin-top: 0;
    margin-bottom: 20px;
}

.detail-rich-copy p:last-child {
    margin-bottom: 0;
}

.technical-parameters-content {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.technical-parameters-content table {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    overflow: hidden;
    border: 1px solid var(--dr-color-line);
    background: var(--dr-color-white);
}

.technical-parameters-content th,
.technical-parameters-content td {
    border-bottom: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    padding: 14px 16px;
    text-align: left;
    vertical-align: top;
    color: var(--dr-color-body);
    font-size: var(--dr-font-body-small);
    line-height: 1.55;
}

.technical-parameters-content th,
.technical-parameters-content td:first-child {
    width: 34%;
    background: var(--dr-color-surface);
    color: var(--dr-color-primary-hover);
    font-weight: var(--dr-weight-bold);
}

.technical-parameters-content tr:last-child th,
.technical-parameters-content tr:last-child td {
    border-bottom: 0;
}

.technical-parameters-content p {
    margin: 0 0 12px;
    color: var(--dr-color-muted);
    line-height: 1.65;
}

.technical-parameters-content ul,
.technical-parameters-content ol {
    display: grid;
    gap: 10px;
    margin: 0;
    padding-left: 20px;
    color: var(--dr-color-body);
}

.detail-recommended-grid,
.recommended-products {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.recommended-products-title {
    grid-column: 1 / -1;
}

.detail-recommended-grid article,
.related-product-card,
.related-news-card {
    min-width: 0;
}

.detail-recommended-grid a,
.related-product-card a,
.related-news-card a {
    display: grid;
    gap: 10px;
    min-height: 100%;
    color: inherit;
}

.detail-recommended-grid img,
.related-product-card img,
.related-news-card img {
    width: 100%;
    height: 210px;
    border-radius: 6px;
    background: var(--dr-color-surface);
    object-fit: contain;
}

.detail-recommended-grid h3,
.related-product-card h3,
.related-news-card h3 {
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body);
    font-weight: var(--dr-weight-bold);
}

.detail-recommended-grid span,
.related-product-card span,
.related-news-card span {
    color: var(--dr-color-muted);
}

.parameter-card {
    margin-top: 22px;
    padding: 22px;
    border: 1px solid var(--dr-color-line);
    border-radius: var(--dr-radius);
    background: var(--dr-color-white);
    box-shadow: var(--dr-shadow-soft);
}

.parameter-card hr {
    border: 0;
    border-top: 1px solid var(--dr-color-line);
    margin: 20px 0;
}

.parameter-card__section h2 {
    margin: 0 0 14px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-card-title);
}

.fact-grid--parameters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fact-item {
    min-width: 0;
}

.fact-item--parameter {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    column-gap: 12px;
    row-gap: 7px;
    align-items: start;
    justify-items: start;
    min-height: 0;
    padding: 14px;
    background: linear-gradient(180deg, var(--dr-color-white), var(--dr-color-surface-soft));
    text-align: left;
}

.fact-item--parameter .fact-value {
    display: none;
    grid-column: 2;
    margin: 0;
    overflow: visible;
    overflow-wrap: anywhere;
    text-align: left;
    word-break: normal;
    hyphens: none;
}

.fact-icon {
    grid-row: span 2;
    color: var(--dr-color-primary);
}

.fact-name {
    display: block;
    min-width: 0;
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-heading);
    line-height: 1.35;
    text-align: left;
}

.fact-value {
    display: block;
    min-width: 0;
    margin: 0;
    color: var(--dr-color-body);
    font-size: var(--dr-font-body-small);
    font-style: normal;
    line-height: 1.6;
    text-align: left;
}

/* Shared card grids and media cards */
.product-card-grid,
.series-product-grid,
.page-builder-card-grid,
.core-strength-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.product-card-media,
.series-product-media {
    display: grid;
    aspect-ratio: 16 / 10;
    place-items: center;
    min-height: 0;
    overflow: hidden;
    padding: 18px;
    background: var(--dr-color-surface);
}

.product-card-media img,
.series-product-media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.page-builder-card img {
    width: 100%;
    height: 180px;
    border-radius: 6px;
    object-fit: cover;
}

.series-product-title,
.page-builder-card {
    padding: 22px;
}

.product-card {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
    padding: 0;
}

.product-card-link {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    height: 100%;
    color: inherit;
}

/* Product archive card variant. The archive and filtered category state use
 * the same component; page CSS only controls surrounding section rhythm. */
.duorui-page-product-index .product-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.duorui-page-product-index .product-card {
    border-color: rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 8px;
    box-shadow: 0 16px 42px rgba(var(--dr-shadow-rgb), .075);
}

.duorui-page-product-index .product-card-link {
    grid-template-columns: minmax(240px, .88fr) minmax(0, 1.12fr);
    grid-template-rows: minmax(0, 1fr);
    min-height: 360px;
}

.duorui-page-product-index .product-card-media {
    min-height: 360px;
    aspect-ratio: auto;
    padding: 22px;
    background: var(--dr-color-surface);
}

.duorui-page-product-index .product-card-body {
    gap: 13px;
    padding: 24px;
}

.duorui-page-product-index .product-card-body h3 {
    margin: 0;
    font-size: var(--dr-font-card-title);
    line-height: 1.25;
}

.duorui-page-product-index .product-card-body > p {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.58;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.duorui-page-product-index .spec-icon-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px 16px;
}

.duorui-page-product-index .product-card-grid--count-1 {
    grid-template-columns: minmax(0, 1fr);
}

.duorui-page-product-index .product-card-grid--count-1 .product-card-link {
    grid-template-columns: minmax(340px, .9fr) minmax(0, 1.1fr);
    grid-template-rows: minmax(0, 1fr);
    min-height: 390px;
}

.duorui-page-product-index .product-card-grid--count-1 .product-card-media {
    min-height: 390px;
    aspect-ratio: auto;
}

.duorui-page-product-index .product-card-grid--count-1 .product-card-body {
    align-content: center;
    padding: 38px 42px;
}

.duorui-page-product-index .product-card-grid--count-1 .spec-icon-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.product-card-body {
    display: grid;
    gap: 14px;
    align-content: start;
    padding: 22px;
}

.product-card h2,
.product-card h3,
.series-product-title,
.page-builder-card h3 {
    margin: 0 0 12px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-h3);
    line-height: 1.14;
}

.product-card p,
.page-builder-card p {
    margin: 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-small);
    line-height: 1.58;
}

/* Shared DUORUI content components moved from page content layer. */

/* Shared page-builder process steps */
.page-builder-section--process_steps {
    background: var(--dr-color-white);
}

.page-builder-section--process_steps .page-builder-card-grid {
    counter-reset: service-step;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    background: var(--dr-color-white);
    box-shadow: none;
}

.page-builder-section--process_steps .page-builder-card {
    counter-increment: service-step;
    position: relative;
    display: grid;
    align-content: start;
    min-height: 214px;
    border: 0;
    border-right: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 0;
    padding: 24px 22px;
    box-shadow: none;
}

.page-builder-section--process_steps .page-builder-card:last-child {
    border-right: 0;
}

.page-builder-section--process_steps .page-builder-card::before {
    content: counter(service-step, decimal-leading-zero);
    position: absolute;
    top: 18px;
    right: 18px;
    color: rgba(var(--dr-color-primary-rgb), .12);
    font-size: var(--dr-font-step-number);
    font-weight: var(--dr-weight-heading);
    line-height: 1;
}

.page-builder-section--process_steps .page-builder-card:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 48px;
    right: -12px;
    z-index: 1;
    width: 24px;
    height: 2px;
    background: linear-gradient(90deg, var(--dr-color-primary), rgba(var(--dr-color-primary-rgb), .2));
}

.page-builder-process-icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    margin-bottom: 22px;
    border-radius: 6px;
    background: rgba(var(--dr-color-primary-rgb), .09);
    color: var(--dr-color-primary);
}

/* Product related cards */
.product-related-section {
    margin-top: 44px;
    padding: 0 0 18px;
    background: transparent;
}

.product-related-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(var(--dr-color-primary-rgb), .12);
}

.product-related-head h2 {
    position: relative;
    margin: 0;
    padding-left: 15px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-section-title);
    font-weight: var(--dr-weight-heading);
    line-height: 1.18;
}

.product-related-head h2::before {
    content: "";
    position: absolute;
    top: .18em;
    bottom: .16em;
    left: 0;
    width: 4px;
    border-radius: 999px;
    background: var(--dr-color-primary);
}

.product-related-head p {
    max-width: 520px;
    margin: 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.55;
}

.product-related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.product-related-card {
    min-width: 0;
}

.product-related-card a {
    position: relative;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-height: 100%;
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .14);
    border-radius: 8px;
    background: var(--dr-color-white);
    color: inherit;
    text-decoration: none;
    box-shadow: 0 12px 30px rgba(10, 30, 50, .055);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.product-related-card a::after {
    content: "›";
    position: absolute;
    right: 14px;
    bottom: 14px;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    background: rgba(var(--dr-color-primary-rgb), .08);
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-card-title);
    font-weight: var(--dr-weight-semibold);
    line-height: 1;
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
}

.product-related-card a:hover,
.product-related-card a:focus-visible {
    border-color: rgba(var(--dr-color-primary-rgb), .32);
    box-shadow: 0 18px 42px rgba(10, 30, 50, .11);
    transform: translateY(-2px);
}

.product-related-card a:hover::after,
.product-related-card a:focus-visible::after {
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
    transform: translateX(2px);
}

.product-related-card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    height: auto;
    border-bottom: 1px solid rgba(var(--dr-color-primary-rgb), .1);
    background: var(--dr-color-line);
    object-fit: contain;
}

.product-related-card h3,
.product-related-card strong {
    display: block;
    margin: 0;
    padding: 18px 54px 8px 18px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-lead);
    font-weight: var(--dr-weight-heading);
    line-height: 1.25;
}

.product-related-card span {
    display: block;
    margin: 0;
    padding: 0 54px 22px 18px;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.55;
}

/* Product resources and support CTA */

/* Application CTA panel */
.application-cta-section {
    padding-top: var(--dr-section-y-tight);
    padding-bottom: var(--dr-section-y-tight);
    background: var(--dr-color-white);
}

.application-cta-panel {
    position: relative;
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr) auto;
    gap: 20px;
    align-items: center;
    overflow: hidden;
    border-radius: 8px;
    padding: 24px 28px;
    background: var(--dr-color-primary);
    box-shadow: 0 24px 54px rgba(7, 29, 51, .16);
}

.application-cta-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    display: none;
    pointer-events: none;
}

.application-cta-panel > div,
.application-cta-panel__action {
    position: relative;
    z-index: 1;
}

.application-cta-panel h2 {
    margin: 0;
    color: var(--dr-color-white);
    font-size: var(--dr-font-card-title);
    line-height: var(--dr-line-heading);
}

.application-cta-panel p {
    max-width: 820px;
    margin: 10px 0 0;
    color: rgba(255, 255, 255, .82);
    font-size: var(--dr-font-body-small);
    line-height: 1.58;
}

.application-cta-panel__action {
    display: flex;
    justify-content: flex-end;
}

.application-cta-button {
    min-width: 138px;
    border-radius: 4px;
    border: 1px solid var(--dr-color-white);
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
    white-space: nowrap;
}

.application-cta-button:hover,
.application-cta-button:focus-visible {
    border-color: var(--dr-color-white);
    background: var(--dr-color-primary-hover);
    color: var(--dr-color-white);
}

/* Shared list reset; Service page layout owns the grid and visual treatment. */
.service-workflow-steps {
    margin: 0;
    padding: 0;
    list-style: none;
}

.dr-section {
    padding: 88px 0;
    background: var(--dr-color-white);
}

.dr-section:nth-of-type(even) {
    background: var(--dr-color-surface);
}

.section-head--solution {
    margin-bottom: 30px;
}

.dr-solution-machine-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.dr-solution-machine-card {
    min-width: 0;
}

.dr-solution-machine-card a {
    display: grid;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--dr-color-line);
    background: var(--dr-color-white);
    color: var(--dr-color-heading);
    box-shadow: var(--dr-shadow-soft);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.dr-solution-machine-card a:hover,
.dr-solution-machine-card a:focus-visible {
    border-color: rgba(var(--dr-color-primary-rgb), .7);
    box-shadow: var(--dr-shadow);
    transform: translateY(-3px);
}

.dr-solution-machine-card a > span {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--dr-color-surface);
}

.dr-solution-machine-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}

.dr-solution-machine-card a:hover img,
.dr-solution-machine-card a:focus-visible img {
    transform: scale(1.035);
}

.dr-solution-machine-card h3,
.dr-solution-machine-card em {
    display: block;
}

.dr-solution-machine-card h3 {
    margin: 0;
    padding: 15px 16px 3px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body);
    line-height: 1.25;
}

.dr-solution-machine-card em {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0 16px 16px;
    color: var(--dr-color-primary);
    font-size: var(--dr-font-meta);
    font-style: normal;
    font-weight: var(--dr-weight-heading);
}

.dr-solution-workflow {
    background: var(--dr-color-surface);
}

.dr-solution-flow-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 22px;
    margin: 28px 0 0;
    padding: 0;
    list-style: none;
}

.dr-solution-flow-list li {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 9px;
    align-items: baseline;
    padding: 13px 0;
    border-top: 1px solid var(--dr-color-line);
}

.dr-solution-flow-list span {
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-caption);
    font-weight: var(--dr-weight-heading);
    letter-spacing: 0;
}

.dr-solution-flow-list h3 {
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body-small);
    line-height: 1.25;
}

.dr-solution-workflow__media {
    margin: 0;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: var(--dr-color-surface);
}

.dr-solution-workflow__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dr-section.dr-solution-custom {
    background: var(--dr-color-deep);
}

.dr-solution-custom__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 18px;
    margin-top: 24px;
}

.dr-solution-custom__list article {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 10px;
    padding: 15px 0;
    border-top: 1px solid rgba(255, 255, 255, .16);
}

.dr-solution-custom__list article > span {
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-caption);
    font-weight: var(--dr-weight-heading);
}

.dr-solution-custom__list h3 {
    display: block;
    color: var(--dr-color-white);
    font-size: var(--dr-font-body-small);
    line-height: 1.3;
}

.dr-solution-custom__list p {
    margin: 5px 0 0;
    color: rgba(255, 255, 255, .62);
    font-size: var(--dr-font-meta);
    line-height: 1.5;
}

.dr-solution-proof {
    background: var(--dr-color-white);
}

.dr-solution-proof-list {
    display: grid;
    gap: 0;
}

.dr-solution-proof-list article {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    padding: 17px 0;
    border-bottom: 1px solid var(--dr-color-line);
}

.dr-solution-proof-list article:first-child {
    padding-top: 0;
}

.dr-solution-proof-list article > span {
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-meta);
    font-weight: var(--dr-weight-heading);
    letter-spacing: 0;
}

.dr-solution-proof-list h3 {
    display: block;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body);
    line-height: 1.25;
}

.dr-solution-proof-list p {
    margin: 5px 0 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.52;
}

/* ===== Page compositions ===== */
/* Page-scoped composition belongs to the content layer. */
.duorui-page-product-series { background: var(--dr-color-white); }
.duorui-page-product-series .series-products--archive { min-height:0; padding:clamp(42px,5vw,64px) 0 88px; background:var(--dr-color-white); }
.duorui-page-product-series .series-products__empty { margin:0; border-top:1px solid var(--dr-color-line); padding:32px 0; color:var(--dr-color-muted); }
.duorui-page-product-series .series-product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.duorui-page-product-series .series-product-link { display:flex; flex-direction:column; height:100%; overflow:hidden; border:1px solid var(--dr-color-line); border-radius:4px; background:var(--dr-color-white); color:inherit; transition:border-color .18s ease,transform .18s ease; }
.duorui-page-product-series .series-product-link:hover { border-color:var(--dr-color-primary-hover); transform:translateY(-2px); }
.duorui-page-product-series .series-product-link:focus-visible { outline:2px solid var(--dr-color-primary); outline-offset:-2px; }
.duorui-page-product-series .series-product-media { display:grid; place-items:center; aspect-ratio:4 / 3; min-height:0; padding:20px; background:var(--dr-color-surface); }
.duorui-page-product-series .series-product-media img { width:100%; height:100%; object-fit:contain; }
.duorui-page-product-series .series-product-title { margin:0; padding:0; color:var(--dr-color-heading); font-size: var(--dr-font-card-title); line-height:1.3; }
.duorui-page-product-series .series-pagination { display:flex; justify-content:center; margin-top:28px; }

/* Product archives share one CMS-backed composition across the all-products
 * view and query-filtered category views. */
.duorui-page-product-index {
    background: var(--dr-color-white);
}

.duorui-page-product-index .product-filter-section {
    padding: 30px 0;
    background: var(--dr-color-surface);
}

.duorui-page-product-index .product-filter-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

.duorui-page-product-index .product-archive-section {
    padding: clamp(52px, 6vw, 82px) 0;
    background: var(--dr-color-white);
}

.duorui-page-product-index .product-archive-title {
    margin: 0 0 26px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-page-title);
    line-height: 1.12;
}

.product-category-section {
    padding: clamp(54px, 6vw, 78px) 0 42px;
    background: var(--dr-color-surface);
}

.duorui-page-solution-index .solution-index-hero .wrap { position:relative; z-index:1; }
.duorui-page-solution-index .solution-index-layout--solo { grid-template-columns:minmax(0,1fr); }
.duorui-page-solution-index .solution-index-layout--solo .solution-index-grid { grid-template-columns:minmax(0,1fr); }
.duorui-page-solution-index .solution-index-layout--solo .solution-index-card>a,
.duorui-page-solution-index .solution-index-layout--solo .solution-index-card>div { grid-template-columns:minmax(420px,1.08fr) minmax(0,.92fr); align-items:stretch; }
.duorui-page-solution-index .solution-index-layout--solo .solution-index-card__media img { height:100%; min-height:360px; }
.duorui-page-solution-index .solution-index-layout--solo .solution-index-card>a>div,
.duorui-page-solution-index .solution-index-layout--solo .solution-index-card>div { display:flex; flex-direction:column; justify-content:center; padding:42px 48px; }
.duorui-page-solution-index .solution-index-layout--solo .solution-index-card h3 { font-size:var(--dr-font-section-title); }
.duorui-page-solution-index .solution-index-layout--solo .solution-index-card span { margin-top:26px; }

.duorui-page-search .search-hero {
    position: relative;
    display: grid;
    min-height: clamp(320px, 35vh, 430px);
    align-items: center;
    overflow: hidden;
    background: var(--dr-color-deep);
}

.duorui-page-search .search-hero .duorui-hero__media::after {
    background:
        linear-gradient(90deg, rgba(3, 18, 32, .97), rgba(3, 18, 32, .78) 48%, rgba(3, 18, 32, .24)),
        linear-gradient(0deg, rgba(3, 18, 32, .48), rgba(3, 18, 32, .05));
}

.duorui-page-search .search-hero .duorui-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.duorui-page-search .search-hero__copy {
    max-width: 760px;
}

.duorui-page-search .search-hero__copy .eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    color: var(--dr-color-brand-soft);
    font-size: var(--dr-font-meta);
    font-weight: var(--dr-weight-heading);
    letter-spacing: 0;
}

.duorui-page-search .search-hero__copy .eyebrow::before {
    width: 28px;
    height: 2px;
    background: currentColor;
    content: "";
}

.duorui-page-search .search-section {
    padding: 0 0 82px;
}

.duorui-page-search .search-page-form input {
    min-height: 72px;
    padding-inline: 24px;
    font-size: var(--dr-font-body);
}

.duorui-page-search .search-empty-state {
    display: grid;
    grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
    gap: 42px;
    align-items: center;
    border: 0;
    border-radius: 6px;
    padding: 36px 40px;
    box-shadow: 0 18px 46px rgba(var(--dr-shadow-rgb), .08);
}

.duorui-page-search .search-empty-state p {
    margin-top: 12px;
}

.duorui-page-search .search-empty-links {
    margin-top: 0;
}

.duorui-page-search .search-result-card {
    position: relative;
    border-radius: 6px;
    padding: 28px 32px 28px 36px;
}

.duorui-page-search .search-result-card::before {
    position: absolute;
    top: 24px;
    bottom: 24px;
    left: 0;
    width: 3px;
    background: var(--dr-color-primary);
    content: "";
}

.duorui-page-news-detail .news-detail-article,
.duorui-page-news-detail .news-detail-side,
.duorui-page-faq-index .faq-index-content,
.duorui-page-faq-index .faq-guide-card,
.duorui-page-faq-index .faq-search-form,
.duorui-page-faq-index .faq-category-nav {
    border-radius: 6px;
}

.duorui-page-solution-detail .dr-solution-proof-list p {
    font-size: var(--dr-font-body-small);
    line-height: 1.55;
}
.series-products,
.contact-main-section,
.faq-index-section,
.news-detail-main,
.detail-main {
    background: var(--dr-color-surface);
}

.spec-icon-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    border-top: 1px solid rgba(var(--dr-color-primary-rgb), .1);
    padding-top: 14px;
}

.spec-icon-row span {
    display: grid;
    gap: 5px;
    min-width: 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-meta);
    line-height: 1.25;
}

.spec-item-icon img {
    width: 22px;
    height: 22px;
    object-fit: contain;
}

.spec-item-value {
    color: var(--dr-color-heading);
    font-style: normal;
    font-weight: var(--dr-weight-bold);
}

.spec-item-label {
    color: var(--dr-color-muted);
    font-size: var(--dr-font-caption);
    font-weight: var(--dr-weight-bold);
}

.product-intro,
.contact-layout,
.faq-index-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 460px);
    gap: 44px;
    align-items: start;
}

.fact-grid,
.detail-process-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.fact-item,
.detail-process-grid article {
    border: 1px solid var(--dr-color-line);
    border-radius: var(--dr-radius);
    padding: 16px;
    background: var(--dr-color-white);
}

#home-cert-quality {
    background: var(--dr-color-surface);
}

#home-cert-quality .page-builder-card-grid {
    grid-template-columns: minmax(320px, .9fr) minmax(0, 1.1fr);
    align-items: stretch;
    gap: 18px;
}

#home-cert-quality .page-builder-card {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 0;
    padding: 14px 14px 18px;
    box-shadow: 0 12px 30px rgba(10, 30, 50, .06);
}

#home-cert-quality .page-builder-card:first-child {
    grid-row: span 3;
}

#home-cert-quality .page-builder-card img {
    height: 145px;
    border-radius: 0;
}

#home-cert-quality .page-builder-card:first-child img {
    height: 290px;
}

#home-cert-quality .page-builder-card h3 {
    margin-top: 14px;
    margin-bottom: 7px;
    font-size: var(--dr-font-h4);
}

#home-cert-quality .page-builder-card p {
    margin: 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-small);
    line-height: 1.55;
}

.product-intro {
    grid-template-columns: minmax(420px, .48fr) minmax(0, .52fr);
    padding-top: 52px;
    padding-bottom: 8px;
    gap: 46px;
}

.product-summary h1 {
    margin: 0 0 14px;
    font-size: var(--dr-font-page-title);
    line-height: 1.12;
}

.product-summary > p {
    max-width: 760px;
    margin-top: 0;
    color: var(--dr-color-body);
    font-size: var(--dr-font-body);
    line-height: 1.62;
}

.product-summary .kicker {
    margin-top: 14px;
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-bold);
}

.product-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--dr-button-group-gap);
    margin-top: 20px;
}

.product-gallery {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 78px;
    gap: 18px;
    align-items: stretch;
}

.gallery-stage {
    display: grid;
    place-items: center;
    aspect-ratio: 1 / 1;
    border: 1px solid var(--dr-color-line);
    border-radius: var(--dr-radius);
    min-height: 440px;
    padding: 30px;
    background: var(--dr-color-white);
}

.gallery-stage img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.thumbnail-rail {
    display: grid;
    grid-template-rows: 78px minmax(0, 1fr) 78px;
    gap: 12px;
    justify-items: center;
    min-width: 0;
}

.duorui-page-product-detail .thumbnail-rail {
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    grid-template-rows: auto;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 0;
    overflow: hidden;
}

.thumbnail-rail .carousel-thumb-strip {
    max-height: 348px;
    overflow: hidden;
}

.duorui-page-product-detail .thumbnail-rail .carousel-thumb-strip {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 88px;
    gap: 10px;
    width: 100%;
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.duorui-page-product-detail .thumbnail-rail .carousel-thumb-strip::-webkit-scrollbar {
    display: none;
}

.carousel-thumb-strip {
    display: grid;
    gap: 10px;
    max-width: 100%;
    min-width: 0;
}

.thumbnail-rail .carousel-thumb {
    border: 1px solid var(--dr-color-line);
    border-radius: 12px;
    padding: 7px;
    background: var(--dr-color-white);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.duorui-page-product-detail .thumbnail-rail .carousel-thumb {
    width: 88px;
    min-width: 88px;
    height: 66px;
    min-height: 66px;
    border-radius: 8px;
    padding: 0;
    background: var(--dr-color-line);
    box-shadow: none;
    scroll-snap-align: start;
    opacity: .78;
}

.thumbnail-rail > button {
    width: 78px;
    height: 78px;
    border-radius: 12px;
    box-shadow: 0 10px 22px rgba(var(--dr-color-primary-rgb), .08);
    flex: 0 0 auto;
}

.duorui-page-product-detail .thumbnail-rail > button {
    width: 42px;
    height: 42px;
    border-radius: 8px;
    border-color: rgba(var(--dr-color-primary-rgb), .2);
    background: rgba(255, 255, 255, .72);
    box-shadow: none;
}

.carousel-thumb.is-active {
    border-color: var(--dr-color-primary);
    background: var(--dr-color-white);
    box-shadow: inset 0 0 0 2px var(--dr-color-primary), 0 10px 22px rgba(var(--dr-color-primary-rgb), .14);
}

.duorui-page-product-detail .carousel-thumb.is-active {
    border-color: var(--dr-color-primary);
    background: var(--dr-color-surface);
    box-shadow: inset 0 0 0 2px var(--dr-color-primary);
    opacity: 1;
}

.duorui-page-product-detail .carousel-thumb:hover,
.duorui-page-product-detail .carousel-thumb:focus-visible {
    border-color: var(--dr-color-primary);
    opacity: 1;
}

.detail-panel {
    margin-top: 28px;
    padding: 30px;
}

.news-card {
    padding: 16px;
}

.news-card h2 {
    margin: 0 0 8px;
    font-size: var(--dr-font-card-title);
    line-height: 1.25;
}

.news-card p {
    margin: 0 0 12px;
    color: var(--dr-color-muted);
}

.news-detail-body br {
    content: "";
}

.news-detail-body h2,
.news-detail-body h3 {
    margin: 32px 0 12px;
    color: var(--dr-color-heading);
    line-height: var(--dr-line-heading);
}

.news-detail-body strong {
    color: var(--dr-color-heading);
}

.news-detail-shell .related-news-section,
.news-detail-shell .related-news {
    grid-column: 1 / -1;
}

.duorui-page-contact {
    background: var(--dr-color-surface);
}

.duorui-page-contact .contact-hero .duorui-hero__copy {
    max-width: 760px;
}

.duorui-page-contact .contact-form,
.duorui-page-contact .contact-info-panel {
    position: relative;
    overflow: hidden;
    border-radius: 6px;
}

.duorui-page-contact .contact-form::before,
.duorui-page-contact .contact-info-panel::before {
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, var(--dr-color-primary), var(--dr-color-primary));
    content: "";
}

.duorui-page-contact .contact-info-panel {
    align-self: start;
    padding: 30px 28px 26px;
    background: var(--dr-color-surface);
}

.duorui-page-contact .contact-form {
    padding: 30px 30px 32px;
}

.duorui-page-contact .contact-form h2,
.duorui-page-contact .contact-info-panel h2 {
    margin: 0 0 18px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-h3);
    line-height: var(--dr-line-heading);
}

.duorui-page-contact .contact-detail-row:first-child {
    padding-top: 2px;
}

.duorui-page-contact .contact-detail-row:last-child {
    padding-bottom: 2px;
    border-bottom: 0;
}

.duorui-page-contact .contact-detail-row p,
.duorui-page-contact .contact-detail-row a {
    min-width: 0;
    overflow-wrap: anywhere;
}

.duorui-page-contact .contact-detail-row p {
    margin: 0;
    color: var(--dr-color-body);
    font-size: var(--dr-font-body-small);
    line-height: 1.6;
}

.duorui-page-contact .contact-detail-label {
    display: block;
    margin-bottom: 3px;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-meta);
    font-weight: var(--dr-weight-bold);
}

.duorui-page-contact .contact-detail-row a {
    color: var(--dr-color-primary-hover);
    font-weight: var(--dr-weight-bold);
}

.duorui-page-contact .social-icon-row {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid rgba(var(--dr-color-primary-rgb), .12);
}

.duorui-page-contact .social-icon-row a {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .14);
    border-radius: 6px;
    background: var(--dr-color-surface-soft);
    color: var(--dr-color-primary-hover);
}

.duorui-page-contact .social-icon-row span {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    color: var(--dr-color-primary-hover);
}

.duorui-page-contact .social-icon-row em {
    display: none;
}

.duorui-page-contact .social-icon-row img {
    display: none;
}

.duorui-page-contact .contact-decision-panel {
    margin-top: 30px;
    padding: 30px;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 6px;
    background: var(--dr-color-white);
    box-shadow: 0 18px 42px rgba(var(--dr-shadow-rgb), .055);
}

.duorui-page-contact .contact-decision-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 34px;
}

.duorui-page-contact .contact-decision-group + .contact-decision-group {
    padding-left: 34px;
    border-left: 1px solid rgba(var(--dr-color-primary-rgb), .12);
}

.duorui-page-contact .contact-decision-head {
    margin-bottom: 18px;
}

.duorui-page-contact .contact-decision-head h2 {
    margin: 0 0 9px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-h3);
    line-height: var(--dr-line-heading);
}

.duorui-page-contact .contact-decision-head p {
    margin: 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.55;
}

.duorui-page-contact .contact-decision-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.duorui-page-contact .contact-decision-card {
    min-width: 0;
    padding: 16px;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .1);
    border-radius: 5px;
    background: var(--dr-color-surface);
}

.duorui-page-contact .contact-decision-card h3 {
    margin: 0 0 7px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body-small);
    line-height: 1.3;
}

.duorui-page-contact .contact-decision-card p {
    margin: 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-meta);
    line-height: 1.55;
}

.duorui-page-contact .contact-map-section {
    margin-top: 30px;
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 8px;
    background: var(--dr-color-white);
    box-shadow: 0 18px 42px rgba(var(--dr-shadow-rgb), .055);
}

.duorui-page-contact .contact-map-head {
    display: grid;
    gap: 7px;
    padding: 24px 28px 20px;
}

.duorui-page-contact .contact-map-head h2 {
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-h3);
    line-height: var(--dr-line-heading);
}

.duorui-page-contact .contact-map-head p {
    max-width: 880px;
    margin: 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.55;
}

.duorui-page-contact .map-panel--google {
    position: relative;
    min-height: 300px;
    overflow: hidden;
    border-top: 1px solid rgba(var(--dr-color-primary-rgb), .1);
    background:
        linear-gradient(135deg, rgba(var(--dr-color-primary-rgb), .13), transparent 42%),
        var(--dr-color-line);
}

.duorui-page-contact .map-panel--google iframe {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
    height: 300px;
    border: 0;
}

.duorui-page-contact .map-panel__fallback {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 8px;
    padding: 28px;
    color: var(--dr-color-primary-hover);
    text-align: center;
}

.duorui-page-contact .map-panel__fallback span {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border-radius: 999px;
    background: var(--dr-color-white);
    color: var(--dr-color-primary-hover);
    box-shadow: var(--dr-shadow-soft);
}

.duorui-page-contact .map-panel__fallback strong {
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-lead);
    line-height: 1.2;
}

.duorui-page-contact .map-panel__fallback small {
    max-width: 560px;
    color: var(--dr-color-body);
    font-size: var(--dr-font-body-small);
    line-height: 1.45;
}

.duorui-page-contact .contact-map-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 12px;
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-heading);
}

.duorui-page-contact .contact-submit {
    grid-column: 1 / -1;
    justify-self: start;
    min-width: 260px;
}

.faq-index-hero {
    min-height: 360px;
}

.faq-index-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(240px, 320px);
    gap: 28px;
}

.faq-index-hero-copy {
    max-width: 760px;
}

.faq-index-hero-copy p {
    max-width: 720px;
    margin-top: 16px;
}

.faq-index-section {
    padding: var(--dr-section-y) 0 var(--dr-section-y-tight);
}

.faq-index-layout {
    display: grid;
    grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

.faq-index-sidebar {
    position: sticky;
    top: calc(var(--dr-header-height) + 18px);
    display: grid;
    gap: 14px;
}

.faq-guide-card,
.faq-search-form,
.faq-category-nav,
.faq-index-content {
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 8px;
    background: var(--dr-color-white);
    box-shadow: var(--dr-shadow-soft);
}

.faq-guide-card {
    display: grid;
    gap: 10px;
    padding: 20px;
}

.faq-guide-card > span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 6px;
    background: var(--dr-color-surface);
    color: var(--dr-color-primary);
}

.faq-guide-card h2 {
    margin: 0;
    font-size: var(--dr-font-h4);
}

.faq-guide-card p {
    margin: 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.62;
}

.faq-search-form {
    display: grid;
    gap: 8px;
    padding: 16px;
}

.faq-search-label {
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-bold);
}

.faq-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--dr-button-group-gap);
}

.faq-search-row input {
    min-height: 40px;
    border: 1px solid var(--dr-color-line);
    border-radius: 5px;
    padding: 0 12px;
}

.faq-search-row button {
    min-height: var(--dr-button-h);
    min-width: 76px;
    border: 0;
    border-radius: var(--dr-button-radius);
    padding: 0 var(--dr-button-px);
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
    font-size: var(--dr-button-font);
    font-weight: var(--dr-weight-bold);
    line-height: 1.2;
}

.faq-category-nav {
    display: grid;
    gap: 6px;
    padding: 12px;
}

.faq-category-nav a {
    display: flex;
    align-items: center;
    min-height: 38px;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .1);
    border-radius: 5px;
    padding: 0 12px;
    background: var(--dr-color-surface-soft);
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-bold);
}

.faq-category-nav a:hover,
.faq-category-nav a[aria-current="page"] {
    border-color: var(--dr-color-primary);
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
}

.faq-index-content {
    display: grid;
    gap: 0;
    overflow: hidden;
}

.faq-index-content-head {
    display: grid;
    gap: 14px;
    padding: 22px 24px;
    border-bottom: 1px solid rgba(var(--dr-color-primary-rgb), .1);
    background: linear-gradient(180deg, var(--dr-color-white), var(--dr-color-surface-soft));
}

.faq-category-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.faq-category-summary span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 28px;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 999px;
    padding: 0 10px;
    background: var(--dr-color-white);
    color: var(--dr-color-muted);
    font-size: var(--dr-font-meta);
    font-weight: var(--dr-weight-bold);
}

.faq-category-summary b {
    color: var(--dr-color-primary-hover);
}

.faq-accordion {
    display: grid;
}

.faq-accordion-item {
    border: 0;
    border-bottom: 1px solid rgba(var(--dr-color-primary-rgb), .1);
    background: var(--dr-color-white);
}

.faq-accordion-item:last-child {
    border-bottom: 0;
}

.faq-accordion-question {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 34px;
    gap: 16px;
    align-items: center;
    min-height: 74px;
    padding: 18px 24px;
    cursor: pointer;
    list-style: none;
}

.faq-accordion-question::-webkit-details-marker {
    display: none;
}

.faq-accordion-question span {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.faq-accordion-question em {
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-caption);
    font-style: normal;
    font-weight: var(--dr-weight-heading);
    letter-spacing: 0;
}

.faq-accordion-question strong {
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body);
    line-height: 1.32;
}

.faq-accordion-question i {
    position: relative;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .16);
    border-radius: 50%;
    background: var(--dr-color-surface-soft);
}

.faq-accordion-question i::before,
.faq-accordion-question i::after {
    position: absolute;
    width: 12px;
    height: 2px;
    border-radius: 999px;
    background: var(--dr-color-primary);
    content: "";
}

.faq-accordion-question i::after {
    transform: rotate(90deg);
}

.faq-accordion-item[open] .faq-accordion-question {
    background: var(--dr-color-surface-soft);
}

.faq-accordion-item[open] .faq-accordion-question i {
    border-color: var(--dr-color-primary);
    background: var(--dr-color-primary);
}

.faq-accordion-item[open] .faq-accordion-question i::before {
    background: var(--dr-color-white);
}

.faq-accordion-item[open] .faq-accordion-question i::after {
    opacity: 0;
}

.faq-accordion-answer {
    display: grid;
    gap: 10px;
    max-width: 880px;
    padding: 0 74px 22px 24px;
}

.faq-accordion-answer p {
    margin: 0;
    color: var(--dr-color-body);
    line-height: 1.66;
}

.faq-accordion-answer a {
    justify-self: start;
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-heading);
}

.faq-accordion--compact {
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .1);
    border-radius: 8px;
}

.faq-accordion--compact .faq-accordion-question {
    min-height: 58px;
    padding: 13px 16px;
}

.faq-accordion--compact .faq-accordion-question strong {
    font-size: var(--dr-font-body-small);
}

.faq-accordion--compact .faq-accordion-answer {
    padding: 0 56px 16px 16px;
}

.page-builder-faq-item {
    border: 1px solid var(--dr-color-line);
    border-radius: var(--dr-radius);
    padding: 14px 16px;
    background: var(--dr-color-white);
}

.core-strength-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

/* DUORUI Solutions page: focused solution story */
.duorui-page-solution-detail {
    background: var(--dr-color-white);
}

.duorui-page-solution-detail .section {
    padding-top: 66px;
    padding-bottom: 66px;
}

.duorui-page-solution-detail .solution-hero--full {
    min-height: clamp(440px, 44vw, 540px);
}

.duorui-page-solution-detail .solution-hero .duorui-hero__media::after {
    background: linear-gradient(90deg, rgba(var(--dr-color-deep-rgb), .94) 0%, rgba(var(--dr-color-deep-rgb), .84) 36%, rgba(var(--dr-color-deep-rgb), .42) 68%, rgba(var(--dr-color-deep-rgb), .12) 100%), linear-gradient(0deg, rgba(var(--dr-color-deep-rgb), .54), rgba(var(--dr-color-deep-rgb), .1));
}

.duorui-page-solution-detail .solution-hero .duorui-hero__copy {
    max-width: 760px;
}

.duorui-page-solution-detail .solution-hero h1 {
    max-width: 690px;
}

/* Solution detail styles are defined by the active dr-solution component system below. */

/* DUORUI Applications page: concise industry and selection story */
.duorui-page-applications {
    background: var(--dr-color-white);
}

.duorui-page-applications .application-hero .duorui-hero__copy {
    max-width: 760px;
}

.duorui-page-applications .application-hero h1 {
    max-width: 680px;
}

.duorui-page-applications .application-hero .duorui-hero__media::after {
    background: linear-gradient(90deg, rgba(var(--dr-color-deep-rgb), .94) 0%, rgba(var(--dr-color-deep-rgb), .84) 38%, rgba(var(--dr-color-deep-rgb), .42) 68%, rgba(var(--dr-color-deep-rgb), .12) 100%), linear-gradient(0deg, rgba(var(--dr-color-deep-rgb), .54), rgba(var(--dr-color-deep-rgb), .08));
}

.application-industries-section {
    background: var(--dr-color-white);
}

.application-industry-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.application-industry-card {
    position: relative;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    align-items: stretch;
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .11);
    border-radius: 8px;
    background: var(--dr-color-white);
    box-shadow: 0 14px 34px rgba(var(--dr-shadow-rgb), .055);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.application-industry-card:hover,
.application-industry-card:focus-within {
    border-color: rgba(var(--dr-color-primary-rgb), .36);
    box-shadow: 0 22px 48px rgba(var(--dr-shadow-rgb), .1);
    transform: translateY(-2px);
}

.application-industry-card__media {
    overflow: hidden;
    min-width: 0;
    margin: 0;
    aspect-ratio: 4 / 3;
    border-bottom: 1px solid rgba(var(--dr-color-primary-rgb), .08);
    background: var(--dr-color-surface);
}

.application-industry-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    padding: 10px;
    object-fit: contain;
}

.application-industry-card__copy {
    display: grid;
    align-content: start;
    gap: 9px;
    min-width: 0;
    padding: 18px 16px 20px;
}

.application-industry-card h3 {
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body);
    line-height: 1.22;
}

.application-industry-card p {
    margin: 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-meta);
    line-height: 1.52;
}

.duorui-page-applications .application-cta-panel {
    grid-template-columns: minmax(0, 1fr) auto;
}

/* DUORUI Service page: CMS-driven service support system */
.duorui-page-service {
    background: var(--dr-color-white);
}

.duorui-page-service .service-hero .duorui-hero__copy {
    max-width: 660px;
}

.duorui-page-service .service-hero h1 {
    max-width: 620px;
}

.duorui-page-service .service-hero .duorui-hero__media img {
    object-position: center right;
    filter: saturate(.96) contrast(.98) brightness(.96);
}

.duorui-page-service .service-hero .duorui-hero__media::after {
    background: linear-gradient(90deg, rgba(var(--dr-color-deep-rgb), .92) 0%, rgba(var(--dr-color-deep-rgb), .78) 40%, rgba(var(--dr-color-deep-rgb), .38) 70%, rgba(var(--dr-color-deep-rgb), .08) 100%), linear-gradient(0deg, rgba(var(--dr-color-deep-rgb), .38), rgba(var(--dr-color-deep-rgb), .1));
}

.duorui-page-service .service-overview-section,
.duorui-page-service .service-workflow-section,
.duorui-page-service .service-project-section,
.duorui-page-service .service-faq-section {
    padding: clamp(70px, 7vw, 108px) 0;
}

.duorui-page-service .service-overview-section {
    background:
        linear-gradient(180deg, var(--dr-color-white) 0, var(--dr-color-white) 64%, var(--dr-color-surface-soft) 64%, var(--dr-color-surface-soft) 100%);
}

.duorui-page-service .service-overview-layout {
    display: grid;
    grid-template-columns: minmax(320px, .78fr) minmax(0, 1.22fr);
    gap: clamp(34px, 5vw, 78px);
    align-items: center;
}

.duorui-page-service .service-overview-copy {
    display: grid;
    gap: 20px;
}

.duorui-page-service .service-overview-copy h2 {
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-hero);
    font-weight: var(--dr-weight-semibold);
    line-height: .98;
    letter-spacing: 0;
}

.duorui-page-service .service-overview-copy p {
    max-width: 760px;
    margin: 0;
    color: var(--dr-color-body);
    font-size: var(--dr-font-body);
    line-height: 1.72;
}

.duorui-page-service .service-overview-media {
    position: relative;
    min-height: clamp(360px, 34vw, 520px);
    margin: 0;
    overflow: hidden;
    background: var(--dr-color-line);
    box-shadow: 0 28px 70px rgba(12, 43, 70, .13);
}

.duorui-page-service .service-overview-media::after {
    position: absolute;
    inset: auto 0 0;
    height: 34%;
    content: "";
    background: linear-gradient(180deg, rgba(4, 18, 32, 0), rgba(4, 18, 32, .18));
    pointer-events: none;
}

.duorui-page-service .service-overview-media img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
    display: block;
}

.duorui-page-service .service-workflow-section {
    background:
        radial-gradient(circle at 100% 0, rgba(var(--dr-color-primary-rgb), .18), transparent 34%),
        linear-gradient(135deg, var(--dr-color-deep) 0%, var(--dr-color-deep) 100%);
    color: var(--dr-color-white);
}

.duorui-page-service .service-workflow-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.duorui-page-service .service-workflow-steps li {
    position: relative;
    min-height: 278px;
    padding: 28px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .055);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
}

.duorui-page-service .service-workflow-steps li::after {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 44%;
    height: 42%;
    content: "";
    background: linear-gradient(135deg, transparent 0, rgba(var(--dr-color-primary-rgb), .14) 100%);
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
    pointer-events: none;
}

.duorui-page-service .service-step-number {
    position: absolute;
    top: 20px;
    right: 24px;
    color: rgba(255, 255, 255, .13);
    font-size: var(--dr-font-step-number);
    font-weight: var(--dr-weight-bold);
    line-height: 1;
    letter-spacing: 0;
}

.duorui-page-service .service-workflow-steps__media {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 68px;
    height: 68px;
    margin: 0 0 38px;
    overflow: hidden;
    border-radius: 20px;
    background: var(--dr-color-white);
}

.duorui-page-service .service-workflow-steps__media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.duorui-page-service .service-workflow-steps h3 {
    position: relative;
    z-index: 1;
    display: block;
    max-width: 260px;
    margin: 0 0 12px;
    color: var(--dr-color-white);
    font-size: var(--dr-font-card-title);
    font-weight: var(--dr-weight-semibold);
    line-height: 1.16;
}

.duorui-page-service .service-workflow-steps p {
    position: relative;
    z-index: 1;
    max-width: 310px;
    margin: 0;
    color: rgba(255, 255, 255, .68);
    font-size: var(--dr-font-body-small);
    line-height: 1.64;
}

.duorui-page-service .service-project-section {
    background: var(--dr-color-surface-soft);
}

.duorui-page-service .service-checklist-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.duorui-page-service .service-checklist-card {
    min-height: 188px;
    padding: 26px 24px;
    border-top: 4px solid var(--dr-color-primary);
    background: var(--dr-color-white);
    box-shadow: 0 18px 42px rgba(12, 43, 70, .08);
}

.duorui-page-service .service-checklist-card h3 {
    margin: 0 0 18px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-card-title);
    font-weight: var(--dr-weight-semibold);
    line-height: 1.2;
}

.duorui-page-service .service-checklist-card p {
    margin: 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.62;
}

.duorui-page-service .service-deliverable-panel {
    margin-top: clamp(52px, 6vw, 86px);
}

.duorui-page-service .service-deliverable-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.duorui-page-service .service-deliverable-card {
    min-width: 0;
    overflow: hidden;
    background: var(--dr-color-white);
    box-shadow: 0 18px 44px rgba(12, 43, 70, .08);
}

.duorui-page-service .service-deliverable-card img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.duorui-page-service .service-deliverable-card div {
    padding: 24px 24px 28px;
}

.duorui-page-service .service-deliverable-card h3 {
    margin: 0 0 12px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-card-title);
    font-weight: var(--dr-weight-semibold);
    line-height: 1.18;
}

.duorui-page-service .service-deliverable-card p {
    margin: 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.62;
}

.duorui-page-service .service-faq-section {
    background: var(--dr-color-white);
}

.duorui-page-service .service-faq-layout {
    max-width: 1120px;
}

.duorui-page-service .faq-accordion--service {
    background: var(--dr-color-white);
    box-shadow: 0 24px 70px rgba(12, 43, 70, .09);
}

/* DUORUI News pages: buyer-guide library and readable article detail */
.duorui-page-news,
.duorui-page-news-detail {
    background: var(--dr-color-white);
}

.duorui-page-news .news-hero .duorui-hero__copy,
.duorui-page-news-detail .news-detail-hero .duorui-hero__copy {
    max-width: 780px;
}

.duorui-page-news .news-hero .duorui-hero__media img,
.duorui-page-news-detail .news-detail-hero .duorui-hero__media img {
    filter: saturate(.96) contrast(.98) brightness(.98);
}

.duorui-page-news .news-hero .duorui-hero__media img {
    object-position: 70% center;
}

.duorui-page-news .news-hero .duorui-hero__media::after,
.duorui-page-news-detail .news-detail-hero .duorui-hero__media::after {
    background: linear-gradient(90deg, rgba(var(--dr-color-deep-rgb), .92) 0%, rgba(var(--dr-color-deep-rgb), .78) 38%, rgba(var(--dr-color-deep-rgb), .38) 70%, rgba(var(--dr-color-deep-rgb), .08) 100%), linear-gradient(0deg, rgba(var(--dr-color-deep-rgb), .48), rgba(var(--dr-color-deep-rgb), .08));
}

.news-library-section,
.news-detail-content-section {
    background: var(--dr-color-surface-soft);
}

.duorui-page-news .news-library-section {
    padding-top: clamp(54px, 6vw, 82px);
    padding-bottom: clamp(64px, 7vw, 96px);
}

.news-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 14px;
}

.news-card-meta span,
.news-card-meta time {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    border-radius: 999px;
    padding: 0 10px;
    background: rgba(var(--dr-color-primary-rgb), .08);
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-meta);
    font-weight: var(--dr-weight-heading);
    line-height: 1;
}

.news-card-meta time {
    background: rgba(var(--dr-color-primary-rgb), .1);
    color: var(--dr-color-primary-hover);
}

.news-guide-card h3 a,
.news-detail-related-card h3 a {
    color: inherit;
}

.duorui-page-news .news-editorial-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
}

.duorui-page-news .news-editorial-lead {
    display: grid;
    grid-template-columns: minmax(0, 1.16fr) minmax(360px, .84fr);
    align-items: stretch;
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 8px;
    background: var(--dr-color-white);
    box-shadow: 0 20px 48px rgba(var(--dr-shadow-rgb), .08);
}

.duorui-page-news .news-editorial-lead__media {
    display: block;
    min-width: 0;
    min-height: clamp(300px, 30vw, 460px);
    overflow: hidden;
    background: var(--dr-color-surface);
}

.duorui-page-news .news-editorial-lead__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform .4s ease;
}

.duorui-page-news .news-editorial-lead:hover .news-editorial-lead__media img,
.duorui-page-news .news-editorial-lead:focus-within .news-editorial-lead__media img {
    transform: scale(1.025);
}

.duorui-page-news .news-editorial-lead__copy {
    display: grid;
    align-content: start;
    min-width: 0;
    padding: clamp(24px, 3vw, 38px);
}

.duorui-page-news .news-editorial-lead h2 {
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-section-title);
    line-height: 1.08;
    letter-spacing: 0;
}

.duorui-page-news .news-editorial-lead h2 a {
    color: inherit;
}

.duorui-page-news .news-editorial-lead p {
    max-width: 700px;
    margin: 16px 0 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.65;
}

.duorui-page-news .news-editorial-lead__link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    justify-self: start;
    min-height: 42px;
    margin-top: 22px;
    border-bottom: 2px solid var(--dr-color-primary);
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-heading);
}

.duorui-page-news .news-guide-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    align-content: start;
    margin-top: clamp(22px, 2.4vw, 34px);
}

.duorui-page-news .news-guide-card {
    display: grid;
    grid-template-rows: auto auto;
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 8px;
    background: var(--dr-color-white);
    box-shadow: 0 18px 38px rgba(var(--dr-shadow-rgb), .055);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.duorui-page-news .news-guide-card:hover,
.duorui-page-news .news-guide-card:focus-within {
    border-color: rgba(var(--dr-color-primary-rgb), .42);
    box-shadow: 0 22px 46px rgba(var(--dr-shadow-rgb), .11);
    transform: translateY(-2px);
}

.duorui-page-news .news-guide-card__media {
    display: block;
    min-width: 0;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--dr-color-surface);
}

.duorui-page-news .news-guide-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform .4s ease;
}

.duorui-page-news .news-guide-card:hover .news-guide-card__media img,
.duorui-page-news .news-guide-card:focus-within .news-guide-card__media img {
    transform: scale(1.03);
}

.duorui-page-news .news-guide-card__copy {
    display: grid;
    align-content: start;
    min-width: 0;
    padding: 20px 22px 21px;
}

.duorui-page-news .news-guide-card h3 {
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-card-title);
    line-height: 1.22;
    letter-spacing: 0;
}

.duorui-page-news .news-guide-card p {
    display: -webkit-box;
    overflow: hidden;
    margin: 12px 0 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.56;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.duorui-page-news .news-guide-card__link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    justify-self: start;
    margin-top: 18px;
    min-height: 40px;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .14);
    border-radius: 4px;
    padding: 0 12px;
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-heading);
}

.search-main {
    background:
        linear-gradient(180deg, var(--dr-color-surface) 0, var(--dr-color-surface) 280px, var(--dr-color-white) 280px, var(--dr-color-white) 100%);
}

.search-section {
    padding: var(--dr-section-y) 0;
}

.search-layout {
    display: grid;
    gap: 24px;
}

.search-page-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    max-width: 760px;
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .16);
    border-radius: 8px;
    background: var(--dr-color-white);
    box-shadow: 0 18px 42px rgba(var(--dr-shadow-rgb), .07);
}

.search-page-form input {
    min-height: 54px;
    min-width: 0;
    border: 0;
    padding: 0 18px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body-small);
    outline: 0;
}

.search-page-form button {
    min-height: var(--dr-button-h);
    min-width: 112px;
    border: 0;
    border-radius: var(--dr-button-radius);
    padding: 0 var(--dr-button-px);
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
    font-size: var(--dr-button-font);
    font-weight: var(--dr-weight-bold);
    line-height: 1.2;
}

.search-results {
    display: grid;
    gap: 16px;
}

.search-result-card,
.search-empty-state {
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 8px;
    padding: 24px;
    background: var(--dr-color-white);
    box-shadow: 0 14px 34px rgba(var(--dr-shadow-rgb), .055);
}

.search-result-card span {
    display: inline-flex;
    margin-bottom: 10px;
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-meta);
    font-weight: var(--dr-weight-heading);
}

.search-result-card h2,
.search-empty-state h2 {
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-h3);
    line-height: 1.24;
}

.search-result-card p,
.search-empty-state p {
    max-width: 760px;
    margin: 10px 0 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-small);
    line-height: 1.6;
}

.search-empty-links {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 20px;
}

.search-empty-links a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 46px;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .13);
    border-radius: 6px;
    padding: 0 14px;
    background: var(--dr-color-surface);
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-heading);
}

.search-empty-links a:hover,
.search-empty-links a:focus-visible {
    border-color: var(--dr-color-primary);
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
}

.news-detail-main {
    padding: 0;
    background: var(--dr-color-white);
}

.news-detail-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 24px;
    align-items: start;
}

.news-detail-article {
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 8px;
    background: var(--dr-color-white);
    box-shadow: 0 18px 42px rgba(var(--dr-shadow-rgb), .06);
}

.news-detail-image {
    margin: 0;
    background: var(--dr-color-line);
    display: block;
    width: 100%;
    max-height: 430px;
    object-fit: cover;
}

.news-detail-image img {
    width: 100%;
    max-height: 470px;
    object-fit: cover;
}

.news-detail-body {
    max-width: 820px;
    margin-inline: auto;
    padding: 40px 48px 48px;
    color: var(--dr-color-body);
    font-size: var(--dr-font-body);
    line-height: 1.76;
}

.news-detail-body p {
    margin: 0 0 18px;
}

.news-detail-body figure {
    margin: 30px 0;
}

.news-detail-body figure:first-of-type {
    margin-top: 14px;
}

.news-detail-body figure img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.news-detail-body h2 {
    margin: 34px 0 12px;
    border-left: 4px solid var(--dr-color-primary);
    padding-left: 14px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-card-title);
    line-height: 1.24;
}

.news-detail-body h2:first-child {
    margin-top: 0;
}

.news-detail-body h3 {
    margin: 28px 0 10px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-lead);
}

.news-detail-side {
    position: sticky;
    top: calc(var(--dr-header-height) + 18px);
    display: grid;
    gap: 18px;
    min-width: 0;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 8px;
    padding: 22px;
    background: var(--dr-color-white);
    box-shadow: 0 18px 42px rgba(var(--dr-shadow-rgb), .06);
}

.news-detail-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-heading);
}

.news-detail-support-copy h2 {
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-card-title);
    line-height: 1.16;
}

.news-detail-support-copy p {
    margin: 10px 0 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.58;
}

.news-detail-cta-button {
    width: 100%;
}

.news-detail-related-wrap {
    margin-top: 28px;
}

.news-detail-related-section {
    margin-top: 0;
}

.news-detail-related-head {
    margin-bottom: 18px;
}

.news-detail-related-head h2 {
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-h2);
}

.news-detail-related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.news-detail-related-card {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 0;
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 8px;
    background: var(--dr-color-white);
    box-shadow: 0 14px 30px rgba(var(--dr-shadow-rgb), .05);
}

.news-detail-related-card img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    background: var(--dr-color-line);
}

.news-related-card-body {
    display: grid;
    align-content: start;
    min-width: 0;
    padding: 16px;
}

.news-related-card-body time {
    margin-bottom: 7px;
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-meta);
    font-weight: var(--dr-weight-heading);
}

.news-related-card-body h3 {
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body-small);
    line-height: 1.28;
}

.news-related-card-body p {
    display: -webkit-box;
    overflow: hidden;
    margin: 8px 0 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-meta);
    line-height: 1.42;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* DUORUI solution archive */
.duorui-page-solution-index {
    background: var(--dr-color-surface);
}

.solution-index-hero {
    padding: clamp(76px, 8vw, 118px) 0 clamp(56px, 6vw, 84px);
    background: var(--dr-color-deep);
    color: var(--dr-color-white);
    box-shadow: inset 0 -36px 64px rgba(3, 18, 32, .22);
}

.solution-index-hero .wrap {
    display: grid;
    gap: 14px;
}

.solution-index-hero span {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 28px;
    border-left: 32px solid var(--dr-color-primary);
    padding-left: 12px;
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-meta);
    font-weight: var(--dr-weight-heading);
    letter-spacing: 0;
}

.solution-index-hero h1 {
    max-width: 760px;
    margin: 0;
    color: var(--dr-color-white);
    font-size: var(--dr-font-h1);
    line-height: var(--dr-line-heading);
    text-shadow: 0 4px 28px rgba(0, 0, 0, .34);
}

.solution-index-hero p {
    max-width: 740px;
    margin: 0;
    color: rgba(255, 255, 255, .78);
    font-size: var(--dr-font-body);
    line-height: 1.62;
}

.solution-index-band {
    padding: clamp(58px, 6vw, 84px) 0;
    background: var(--dr-color-surface);
}

.solution-index-layout {
    display: grid;
    grid-template-columns: minmax(260px, .28fr) minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

.solution-index-aside {
    display: grid;
    gap: 10px;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 8px;
    padding: 20px;
    background: var(--dr-color-white);
    box-shadow: 0 16px 34px rgba(var(--dr-shadow-rgb), .05);
}

.solution-index-aside span {
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-heading);
}

.solution-index-aside a {
    display: flex;
    align-items: center;
    min-height: 38px;
    border-top: 1px solid rgba(var(--dr-color-primary-rgb), .1);
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-bold);
}

.solution-index-main {
    min-width: 0;
}

.solution-index-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.solution-index-card > a,
.solution-index-card > div {
    display: grid;
    min-height: 100%;
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 7px;
    background: var(--dr-color-white);
    color: inherit;
    box-shadow: 0 22px 54px rgba(var(--dr-shadow-rgb), .1);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.solution-index-card > a > div,
.solution-index-card > div {
    padding: 28px;
}

.solution-index-card__copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.solution-index-card h3 {
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-h3);
    line-height: 1.18;
}

.solution-index-card p {
    margin: 12px 0 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.58;
}

.solution-index-card ul {
    display: grid;
    gap: 8px;
    margin: 20px 0 0;
    border-top: 1px solid rgba(var(--dr-color-primary-rgb), .1);
    padding: 18px 0 0;
    list-style: none;
}

.solution-index-card li {
    position: relative;
    padding-left: 18px;
    color: var(--dr-color-body);
    font-size: var(--dr-font-body-small);
    line-height: 1.45;
}

.solution-index-card li::before {
    content: "";
    position: absolute;
    top: .62em;
    left: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--dr-color-primary);
}

.solution-index-card span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    width: fit-content;
    margin-top: 24px;
    border-bottom: 2px solid var(--dr-color-primary);
    padding-bottom: 4px;
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-heading);
}

.solution-index-card > a:hover,
.solution-index-card > a:focus-visible {
    border-color: rgba(var(--dr-color-primary-rgb), .42);
    box-shadow: 0 28px 64px rgba(var(--dr-shadow-rgb), .14);
    transform: translateY(-2px);
}

/* Solution cards stay image-led while the archive remains CMS-driven. */
.duorui-page-solution-index .solution-index-card__action {
    margin-top: 22px;
    border-bottom: 0;
    color: var(--dr-color-primary-hover);
}
.duorui-page-solution-index .solution-index-card__action svg {
    transition: transform .18s ease;
}
.duorui-page-solution-index .solution-index-card > a:hover .solution-index-card__action svg,
.duorui-page-solution-index .solution-index-card > a:focus-visible .solution-index-card__action svg {
    transform: translate(2px, -2px);
}

/* Solution detail uses the same image-led rhythm as the home page: one strong
 * machine rail, one editorial process band, one dark capability story, and
 * one application scene band. Informational CMS lists stay quiet and readable
 * instead of becoming a wall of identical cards. */
.duorui-page-solution-detail .dr-section {
    padding: 104px 0 112px;
}

.duorui-page-solution-detail .section-head--solution .section-head__body {
    max-width: 720px;
}

.duorui-page-solution-detail .dr-solution-machines--rail {
    background: var(--dr-color-deep);
    color: var(--dr-color-white);
}

.duorui-page-solution-detail .dr-solution-machines--rail .dr-solution-machine-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.duorui-page-solution-detail .dr-solution-machines--rail .dr-solution-machine-card a {
    border: 0;
    border-radius: 0;
    background: var(--dr-color-deep);
    box-shadow: none;
}

.duorui-page-solution-detail .dr-solution-machines--rail .dr-solution-machine-card a:hover,
.duorui-page-solution-detail .dr-solution-machines--rail .dr-solution-machine-card a:focus-visible {
    border: 0;
    background: var(--dr-color-deep);
    box-shadow: 0 20px 44px rgba(0, 0, 0, .24);
    transform: translateY(-3px);
}

.duorui-page-solution-detail .dr-solution-machines--rail .dr-solution-machine-card a > span {
    aspect-ratio: 16 / 10;
    padding: 0;
    background: var(--dr-color-line);
}

.duorui-page-solution-detail .dr-solution-machines--rail .dr-solution-machine-card h3 {
    min-height: 0;
    padding: 20px 22px 5px;
    color: var(--dr-color-white);
    font-size: var(--dr-font-card-title);
}

.duorui-page-solution-detail .dr-solution-machines--rail .dr-solution-machine-card em {
    min-height: 0;
    padding: 0 22px 24px;
    color: rgba(255, 255, 255, .68);
    font-size: var(--dr-font-body-small);
    line-height: 1.55;
}

body.duorui-page { background: var(--dr-color-white); color: var(--dr-color-body); }

.series-products { padding: var(--dr-section-y) 0; background: var(--dr-color-white); }

.solution-index-card { background: var(--dr-color-white); border: 1px solid var(--dr-color-line); min-width: 0; }
.solution-index-card:hover img { transform: scale(1.035); }
.solution-index-card__media { overflow: hidden; display: grid; min-width: 0; margin: 0; padding: 24px; background: linear-gradient(145deg, var(--dr-color-surface), var(--dr-color-white)); }
.solution-index-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; display: block; min-height: 300px; }

/* Inner-page editorial frame: one content column, deliberate image rhythm. */
.duorui-page-solution-index .solution-index-hero { min-height: clamp(320px, 35vh, 430px); position: relative; display: grid; align-items: center; overflow: hidden; background: var(--dr-color-deep); }
.duorui-page-solution-index .solution-index-band,
.duorui-page-applications .application-industries-section { padding: var(--dr-section-y) 0; }
.duorui-page-solution-index .solution-index-layout { display: block; max-width: var(--dr-content-max); }
.duorui-page-solution-index .solution-index-aside { display: flex; align-items: center; gap: 20px; margin-bottom: 34px; padding: 0 0 16px; border-bottom: 1px solid var(--dr-color-line); }
.duorui-page-solution-index .solution-index-aside span { margin-right: auto; color: var(--dr-color-muted); }
.duorui-page-solution-index .solution-index-aside a { padding: 0 0 3px; border-bottom: 2px solid transparent; color: var(--dr-color-body); }
.duorui-page-solution-index .solution-index-aside a:hover { border-color: var(--dr-color-primary-hover); color: var(--dr-color-heading); }
.duorui-page-solution-index .solution-index-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.duorui-page-solution-index .solution-index-card > a,
.duorui-page-solution-index .solution-index-card > div { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); min-height: 310px; }
.duorui-page-solution-index .solution-index-card__media { min-height: 100%; }
.duorui-page-solution-index .solution-index-card__media img { height: 100%; object-fit: cover; }
.duorui-page-solution-index .solution-index-card > a > div,
.duorui-page-solution-index .solution-index-card > div { align-content: center; padding: 30px; }
.duorui-page-solution-index .solution-index-card h3 { font-size: var(--dr-font-card-title); }
.duorui-page-applications .application-industries-section { background: var(--dr-color-white); }
.duorui-page-applications .application-industry-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.duorui-page-applications .application-industry-card { border: 0; background: var(--dr-color-surface); }
.duorui-page-applications .application-industry-card__media { aspect-ratio: 4 / 5; overflow: hidden; }
.duorui-page-applications .application-industry-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.duorui-page-applications .application-industry-card:hover img { transform: scale(1.04); }
.duorui-page-applications .application-industry-card__copy { padding: 18px; }
.duorui-page-applications .application-industry-card h3 { color: var(--dr-color-heading); font-size: var(--dr-font-card-title); }
/* About page: one CMS-driven company story, with no retired metrics, mosaic or service layer. */
.duorui-page-about {
    background: var(--dr-color-white);
}

.duorui-page-about .section {
    padding: clamp(64px, 6vw, 88px) 0;
}

.duorui-page-about .duorui-hero__copy {
    max-width: 720px;
}

.duorui-page-about .duorui-hero__copy h1 {
    max-width: 680px;
}

.duorui-page-about .about-company-section {
    background: var(--dr-color-white);
}

.duorui-page-about .about-profile-panel {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr);
    gap: clamp(36px, 6vw, 96px);
    align-items: center;
}

.duorui-page-about .about-profile-copy {
    min-width: 0;
}

.duorui-page-about .about-profile-copy h2,
.duorui-page-about .about-factory-copy h2,
.duorui-page-about .about-strength-copy h2 {
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-page-title);
    font-weight: var(--dr-weight-heading);
    letter-spacing: 0;
    line-height: 1.08;
}

.duorui-page-about .about-lead {
    max-width: 720px;
    margin: 22px 0 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-lead);
    line-height: 1.6;
}

.duorui-page-about .about-profile-copy > p:not(.about-lead),
.duorui-page-about .about-factory-copy > p {
    max-width: 720px;
    margin: 16px 0 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.72;
}

.duorui-page-about .about-capability-band {
    display: grid;
    grid-template-columns: minmax(180px, .25fr) minmax(0, 1fr);
    gap: clamp(28px, 4vw, 56px);
    align-items: start;
    margin-top: clamp(42px, 5vw, 64px);
    padding-top: 30px;
    border-top: 1px solid var(--dr-color-line);
}

.duorui-page-about .about-capability-band > h3 {
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-card-title);
    font-weight: var(--dr-weight-semibold);
    line-height: 1.3;
}

.duorui-page-about .about-capability-band > .about-capability-head,
.duorui-page-about .about-factory-head,
.duorui-page-about .about-strength-head {
    min-width: 0;
    margin: 0;
}

.duorui-page-about .about-capability-band > .about-capability-head h2,
.duorui-page-about .about-factory-head h2,
.duorui-page-about .about-strength-head h2 {
    font-size: var(--dr-font-card-title);
}

.duorui-page-about .about-profile-capabilities {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    background: var(--dr-color-line);
}

.duorui-page-about .about-profile-capabilities article {
    min-width: 0;
    padding: 20px;
    background: var(--dr-color-surface);
}

.duorui-page-about .about-profile-capabilities h4,
.duorui-page-about .about-factory-points h3,
.duorui-page-about .about-quality-card h3,
.duorui-page-about .about-strength-card h3 {
    margin: 0;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body);
    line-height: 1.35;
}

.duorui-page-about .about-profile-capabilities p,
.duorui-page-about .about-factory-points p,
.duorui-page-about .about-quality-card p,
.duorui-page-about .about-strength-card p {
    margin: 9px 0 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body-small);
    line-height: 1.58;
}

.duorui-page-about .about-profile-media {
    grid-row: 1;
    grid-column: 2;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    min-width: 0;
    margin: 0;
    background: var(--dr-color-line);
}

.duorui-page-about .about-profile-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.duorui-page-about .about-factory-section {
    background: var(--dr-color-surface);
}

.duorui-page-about .about-factory-layout {
    display: grid;
    grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr);
    gap: clamp(36px, 6vw, 96px);
    align-items: center;
}

.duorui-page-about .about-factory-copy {
    min-width: 0;
}

.duorui-page-about .about-factory-points {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin-top: 28px;
    background: var(--dr-color-line);
}

.duorui-page-about .about-factory-points article {
    min-width: 0;
    min-height: 132px;
    padding: 20px;
    background: var(--dr-color-white);
}

.duorui-page-about .about-factory-media,
.duorui-page-about .about-factory-media figure {
    min-width: 0;
    margin: 0;
}

.duorui-page-about .about-factory-media figure {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--dr-color-line);
}

.duorui-page-about .about-factory-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.duorui-page-about .about-quality-control {
    padding-top: 48px;
    padding-bottom: 48px;
    background: var(--dr-color-deep);
    color: var(--dr-color-white);
}

.duorui-page-about .about-quality-control .section-head--on-dark .section-head__body {
    color: var(--dr-color-on-dark-muted);
}

.duorui-page-about .about-quality-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.duorui-page-about .about-quality-card {
    overflow: hidden;
    min-width: 0;
    background: rgba(255, 255, 255, .08);
}

.duorui-page-about .about-quality-card figure {
    aspect-ratio: 1.8;
    max-height: 190px;
    overflow: hidden;
    margin: 0;
}

.duorui-page-about .about-quality-card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: var(--dr-color-surface);
}

.duorui-page-about .about-quality-card > div {
    padding: 18px;
}

.duorui-page-about .about-quality-card h3 {
    color: var(--dr-color-white);
}

.duorui-page-about .about-quality-card p {
    color: rgba(255, 255, 255, .68);
}

.duorui-page-about .about-strength-section {
    background: var(--dr-color-white);
}

.duorui-page-about .about-strength-layout {
    display: grid;
    grid-template-columns: minmax(240px, .7fr) minmax(0, 1.3fr);
    gap: 60px;
    align-items: start;
}

.duorui-page-about .about-strength-copy {
    min-width: 0;
}

.duorui-page-about .core-strength-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: var(--dr-color-line);
}

.duorui-page-about .about-strength-card {
    min-width: 0;
    padding: 24px;
    background: var(--dr-color-surface);
}

/* Contact page: generous editorial grid. */
.duorui-page-contact .contact-info-panel h2,
.duorui-page-contact .contact-form h2 { color: var(--dr-color-heading); font-size: var(--dr-font-page-title); font-weight: var(--dr-weight-heading); letter-spacing: 0; }
.duorui-page-contact .contact-main-section { background: var(--dr-color-surface); padding: clamp(64px, 6vw, 88px) 0; }
.duorui-page-contact .contact-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 18px; align-items: start; }
.duorui-page-contact .contact-info-panel, .duorui-page-contact .contact-form { padding: 30px; border: 0; background: var(--dr-color-white); }
.duorui-page-contact .contact-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.duorui-page-contact .contact-form-grid > :last-child { grid-column: 1 / -1; }
.duorui-page-contact .contact-detail-list { display: grid; gap: 0; margin-top: 24px; }
.duorui-page-contact .contact-detail-row { padding: 16px 0; border-bottom: 1px solid var(--dr-color-line); }
.duorui-page-contact .contact-decision-panel, .duorui-page-contact .contact-map-section { margin-top: 18px; padding: 30px; background: var(--dr-color-white); }

/* Product detail uses one CMS-driven buying layout: gallery, editable facts, CMS tabs and related products. */
.duorui-page-product-detail .detail-main {
    padding: clamp(42px, 5vw, 72px) 0 clamp(60px, 7vw, 96px);
    background:
        linear-gradient(180deg, var(--dr-color-surface) 0, var(--dr-color-surface) 520px, var(--dr-color-white) 520px, var(--dr-color-white) 100%);
}

.duorui-page-product-detail .product-intro {
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(360px, .96fr);
    gap: clamp(42px, 5vw, 76px);
    align-items: center;
    min-height: 0;
    padding: 0;
}

.duorui-page-product-detail .product-gallery {
    gap: 14px;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    min-width: 0;
}

.duorui-page-product-detail .gallery-stage {
    aspect-ratio: 4 / 3;
    min-height: 0;
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .14);
    border-radius: 10px;
    padding: clamp(18px, 2.4vw, 34px);
    background:
        radial-gradient(circle at 18% 18%, rgba(255, 255, 255, .78), transparent 36%),
        var(--dr-color-surface);
    box-shadow: 0 18px 45px rgba(10, 30, 50, .08);
}

.duorui-page-product-detail .gallery-stage img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.duorui-page-product-detail .product-summary {
    position: relative;
    display: grid;
    align-content: center;
    min-width: 0;
    padding: clamp(8px, 1.8vw, 22px) 0;
}

.duorui-page-product-detail .product-summary::before {
    display: none;
}

.duorui-page-product-detail .product-summary .product-summary__series {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    order: -1;
    width: fit-content;
    margin: 0 0 16px;
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-heading);
    letter-spacing: .01em;
    text-transform: none;
}

.duorui-page-product-detail .product-summary .product-summary__series::before {
    width: 28px;
    height: 2px;
    background: currentColor;
    content: "";
}

.duorui-page-product-detail .product-summary h1 {
    max-width: 620px;
    margin: 0 0 18px;
    color: var(--dr-color-heading);
    font-size: var(--dr-font-page-title);
    font-weight: var(--dr-weight-bold);
    letter-spacing: 0;
    line-height: 1.06;
}

.duorui-page-product-detail .product-summary > .product-summary__lead {
    max-width: 590px;
    margin: 0;
    color: var(--dr-color-muted);
    font-size: var(--dr-font-body);
    line-height: 1.68;
}

.duorui-page-product-detail .parameter-card {
    margin-top: 26px;
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    border-radius: 10px;
    padding: 0;
    background: var(--dr-color-white);
    box-shadow: 0 16px 38px rgba(10, 30, 50, .06);
}

.duorui-page-product-detail .parameter-card .fact-grid--parameters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: rgba(var(--dr-color-primary-rgb), .12);
}

.duorui-page-product-detail .fact-item--parameter {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 8px 13px;
    align-content: center;
    min-height: 88px;
    border: 0;
    border-radius: 0;
    padding: 17px 18px;
    background: var(--dr-color-white);
}

.duorui-page-product-detail .fact-item--parameter .fact-icon {
    color: var(--dr-color-primary);
}

.duorui-page-product-detail .fact-item--parameter .fact-name {
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-heading);
    line-height: 1.35;
}

.duorui-page-product-detail .fact-item--parameter .fact-value {
    grid-column: 2;
    margin: 0;
    color: var(--dr-color-body);
    font-size: var(--dr-font-body-small);
    font-weight: var(--dr-weight-bold);
    line-height: 1.48;
}

.duorui-page-product-detail .product-detail-actions {
    margin-top: 24px;
}

.duorui-page-product-detail .product-info-tabs {
    margin-top: clamp(40px, 4.8vw, 64px);
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .13);
    border-radius: 10px;
    background: var(--dr-color-white);
    box-shadow: 0 14px 34px rgba(10, 30, 50, .045);
}

.duorui-page-product-detail .product-info-tabs__nav {
    background: var(--dr-color-surface);
}

.duorui-page-product-detail .product-info-tabs__body {
    padding: 36px 42px 40px;
}

.duorui-page-product-detail .product-info-tabs__panel {
    max-width: none;
    padding: 0;
}

.duorui-page-product-detail .product-detail-tab-empty {
    display: grid;
    min-height: 132px;
    place-items: center;
    border: 1px dashed var(--dr-color-line);
    background: var(--dr-color-surface);
    color: var(--dr-color-muted);
    text-align: center;
}

.duorui-page-product-detail .product-detail-tab-empty p {
    max-width: 42rem;
    margin: 0;
    padding: 20px;
    font-size: var(--dr-font-body-small);
    line-height: var(--dr-line-body);
}

.duorui-page-product-detail .detail-rich-copy {
    max-width: 1040px;
}

.duorui-page-product-detail .detail-related-section {
    margin: clamp(36px, 4.8vw, 64px) 0 0;
    padding: clamp(32px, 4vw, 50px) clamp(24px, 3.6vw, 42px);
    border: 1px solid rgba(var(--dr-color-primary-rgb), .1);
    border-radius: 10px;
    background: var(--dr-color-surface);
}

.duorui-page-product-detail .product-related-section {
    margin-top: clamp(36px, 4.8vw, 64px);
}

.duorui-page-product-detail .product-related-head {
    margin-bottom: 22px;
    padding-bottom: 16px;
}

.duorui-page-product-detail .product-related-grid {
    gap: 18px;
}
/* FAQ and search complete the same quiet paper-and-ink system. */
.duorui-page-faq-index .faq-index-section,
.duorui-page-search .search-section { padding: var(--dr-section-y) 0; background: var(--dr-color-surface); }
.duorui-page-faq-index .faq-index-layout { grid-template-columns: 260px minmax(0, 1fr); gap: 28px; }
.duorui-page-faq-index .faq-index-sidebar { top: 100px; }
.duorui-page-faq-index .faq-guide-card,
.duorui-page-faq-index .faq-search-form,
.duorui-page-faq-index .faq-category-nav,
.duorui-page-faq-index .faq-index-content { border: 0; border-radius: 0; box-shadow: none; }
.duorui-page-faq-index .faq-guide-card { background: var(--dr-color-deep); color: var(--dr-color-white); }
.duorui-page-faq-index .faq-guide-card h2 { color: var(--dr-color-white); }
.duorui-page-faq-index .faq-guide-card p { color: rgba(255,255,255,.7); }
.duorui-page-faq-index .faq-search-form,
.duorui-page-faq-index .faq-category-nav { padding: 18px; background: var(--dr-color-white); }
.duorui-page-faq-index .faq-category-nav a { border: 0; border-bottom: 1px solid var(--dr-color-line); border-radius: 0; background: transparent; }
.duorui-page-faq-index .faq-category-nav a:hover,
.duorui-page-faq-index .faq-category-nav a[aria-current="page"] { background: var(--dr-color-primary); color: var(--dr-color-white); }
.duorui-page-faq-index .faq-index-content { background: var(--dr-color-white); }
.duorui-page-faq-index .faq-index-content-head { padding: 26px 30px; background: var(--dr-color-white); }
.duorui-page-search .search-main { background: var(--dr-color-white); }
.duorui-page-search .search-layout { max-width: 1040px; margin: 0 auto; position: relative; z-index: 2; grid-template-columns: minmax(0, 1fr); gap: 18px; margin-top: -42px; }
.duorui-page-search .search-page-form { max-width: none; border: 1px solid var(--dr-color-line); border-radius: 0; box-shadow: none; width: min(100%, 920px); min-height: 72px; margin: 0 auto; }
.duorui-page-search .search-page-form button { background: var(--dr-color-primary); min-width: 150px; }
.duorui-page-search .search-results { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--dr-color-line); width: min(100%, 1120px); margin: 0 auto; }
.duorui-page-search .search-result-card,
.duorui-page-search .search-empty-state { min-height: 170px; border: 0; border-radius: 0; padding: 24px; background: var(--dr-color-white); }
.duorui-page-search .search-result-card h2 { color: var(--dr-color-heading); font-size: var(--dr-font-card-title); font-weight: var(--dr-weight-semibold); }
.duorui-page-search .search-result-card > span { color: var(--dr-color-primary-hover); font-size: var(--dr-font-meta); }

.duorui-page-solution-detail .dr-solution-workflow--editorial {
    background: var(--dr-color-surface-warm);
}

.duorui-page-solution-detail .dr-solution-workflow--editorial .dr-solution-workflow__head {
    max-width: 860px;
}

.duorui-page-solution-detail .dr-solution-flow-columns--editorial {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    margin-top: 26px;
    padding-top: 0;
}

.duorui-page-solution-detail .dr-solution-flow-columns--editorial .dr-solution-flow-group {
    min-width: 0;
    padding: 28px 28px 24px;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .14);
    border-radius: 8px;
    background: var(--dr-color-white);
    box-shadow: 0 16px 34px rgba(var(--dr-shadow-rgb), .055);
}

.duorui-page-solution-detail .dr-solution-workflow__map {
    margin-top: 38px;
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .14);
    border-radius: 8px;
    background: var(--dr-color-white);
    box-shadow: 0 20px 44px rgba(var(--dr-shadow-rgb), .08);
}

.duorui-page-solution-detail .dr-solution-workflow__media {
    margin: 0;
    aspect-ratio: auto;
    padding: 18px 22px 20px;
    background: linear-gradient(180deg, var(--dr-color-surface), var(--dr-color-surface));
}

.duorui-page-solution-detail .dr-solution-workflow__media img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.duorui-page-solution-detail .dr-solution-flow-columns--editorial .dr-solution-flow-list {
    margin-top: 8px;
    gap: 0 30px;
}

.duorui-page-solution-detail .dr-solution-flow-columns--editorial .dr-solution-flow-list li {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    min-height: 54px;
    padding: 13px 0;
    border-top: 1px solid rgba(var(--dr-color-primary-rgb), .12);
}

.duorui-page-solution-detail .dr-solution-flow-columns--editorial .dr-solution-flow-list li:first-child {
    border-top: 2px solid var(--dr-color-primary);
}

.duorui-page-solution-detail .dr-solution-flow-columns--editorial .dr-solution-flow-list span {
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-caption);
    font-weight: var(--dr-weight-heading);
    letter-spacing: 0;
    line-height: 1;
}

.duorui-page-solution-detail .dr-solution-flow-columns--editorial .dr-solution-flow-list h3 {
    color: var(--dr-color-heading);
    font-size: var(--dr-font-body-small);
    line-height: 1.35;
}

.duorui-page-solution-detail .dr-solution-custom--story {
    background: var(--dr-color-deep);
}

.duorui-page-solution-detail .dr-solution-story-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
    gap: 70px;
    align-items: center;
}

.duorui-page-solution-detail .dr-solution-story-media {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: var(--dr-color-deep);
}

.duorui-page-solution-detail .dr-solution-story-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.duorui-page-solution-detail .dr-solution-story-copy {
    min-width: 0;
}

.duorui-page-solution-detail .dr-solution-custom--story .section-head--solution {
    margin-bottom: 22px;
}

.duorui-page-solution-detail .dr-solution-custom--story .dr-solution-custom__list {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
}

.duorui-page-solution-detail .dr-solution-custom--story .dr-solution-custom__list article {
    padding: 17px 0;
    border-top-color: rgba(255, 255, 255, .18);
}

.duorui-page-solution-detail .dr-solution-custom--story .dr-solution-custom__list h3 {
    font-size: var(--dr-font-body);
}

.duorui-page-solution-detail .dr-solution-proof--editorial {
    background: var(--dr-color-white);
}

.duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0 28px;
}

.duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list article,
.duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list article:first-child {
    min-height: 0;
    padding: 18px 0 0;
    border: 0;
    border-top: 2px solid var(--dr-color-primary);
    border-radius: 0;
    background: transparent;
}

/* Final solution composition: keep authored content in four visual bands and
 * use editorial dividers for CMS lists instead of stacking identical cards. */
.duorui-page-solution-detail .dr-solution-workflow--editorial .section-head--solution .section-head__body p + p {
    margin-top: 12px;
}
.duorui-page-solution-detail .dr-solution-inquiry {
    background: var(--dr-color-deep);
    color: var(--dr-color-white);
}

.dr-solution-inquiry__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, 1fr) auto;
    gap: 28px;
    align-items: center;
}

.dr-solution-inquiry__copy h2,
.dr-solution-inquiry__copy p {
    color: inherit;
}

.dr-solution-inquiry__copy h2 { margin: 0 0 10px; }
.dr-solution-inquiry__copy p { margin: 0; opacity: .82; }
.dr-solution-inquiry__list { margin: 0; padding-left: 20px; columns: 2; color: var(--dr-color-white); }
.dr-solution-inquiry__list li { margin: 0 0 8px; break-inside: avoid; }
.dr-solution-inquiry__action { justify-self: end; }

/* Product category cards use the same CMS-backed grid rhythm as the archive. */
.duorui-page-product-series .series-product-content { display:flex; flex:1; flex-direction:column; align-items:flex-start; gap:14px; min-width:0; padding:20px; }
.duorui-page-product-series .series-product-action { margin-top:auto; }
.solution-index-hero__media { position:absolute; inset:0; }
.solution-index-hero__media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(3,18,32,.97),rgba(3,18,32,.8) 43%,rgba(3,18,32,.28) 78%),linear-gradient(0deg,rgba(3,18,32,.44),rgba(3,18,32,.06)); }
.solution-index-hero__media img { width:100%; height:100%; object-fit:cover; filter:saturate(.86) contrast(.94) brightness(.84); }

/* DUORUI home-inspired presentation system. Content remains supplied by the existing
 * page sections and entry view models; these selectors only define the shared
 * full-bleed scene rhythm and interaction surface. */

.duorui-home {
    overflow: hidden;
    background: var(--dr-color-white);
    color: var(--dr-color-heading);
}

.duorui-home__section {
    position: relative;
    min-height: auto;
    overflow: hidden;
    scroll-snap-align: none;
}

.duorui-home-eyebrow {
    display: block;
    margin-bottom: 16px;
    color: var(--dr-color-primary-hover);
    font-size: var(--dr-font-meta);
    font-weight: var(--dr-weight-bold);
    letter-spacing: 0;
    line-height: 1.3;
}

.duorui-home-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--dr-button-icon-gap);
    min-height: var(--dr-button-h);
    border: 1px solid transparent;
    border-radius: var(--dr-button-radius);
    padding: 0 var(--dr-button-px);
    font-size: var(--dr-button-font);
    font-weight: var(--dr-weight-bold);
    line-height: 1.2;
    transition: color .18s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.duorui-home-button svg { flex: 0 0 auto; width: 1.22em; height: 1.22em; stroke-width: 2.4; transition: transform .18s ease; }
.duorui-home-button:hover svg, .duorui-home-button:focus-visible svg { transform: translateX(2px); }
.duorui-home-button:hover, .duorui-home-button:focus-visible { transform: translateY(-1px); }
.duorui-home-button--accent { background: var(--dr-color-primary); color: var(--dr-color-white); }
.duorui-home-button--accent:hover, .duorui-home-button--accent:focus-visible { background: var(--dr-color-primary-hover); color: var(--dr-color-white); }
.duorui-home-button--light { border-color: var(--dr-color-white); background: var(--dr-color-white); color: var(--dr-color-primary-hover); }
.duorui-home-button--light:hover, .duorui-home-button--light:focus-visible { border-color: var(--dr-color-brand-soft); background: var(--dr-color-brand-soft); color: var(--dr-color-deep); }
.duorui-home-button--cta { border-color: var(--dr-color-white); background: var(--dr-color-primary); color: var(--dr-color-white); }
.duorui-home-button--cta:hover, .duorui-home-button--cta:focus-visible { border-color: var(--dr-color-white); background: var(--dr-color-primary-hover); color: var(--dr-color-white); }

.duorui-home-hero { min-height: clamp(680px, 70svh, 820px); background: var(--dr-color-deep); color: var(--dr-color-white); }
.duorui-home-hero__media, .duorui-home-hero__veil, .duorui-home-hero__slide { position: absolute; inset: 0; }
.duorui-home-hero__slide.is-active { opacity: 1; transform: scale(1); }
.duorui-home-hero__slide { background: var(--dr-color-surface); opacity: 0; transform: scale(1.04); transition: opacity .9s ease, transform 7s ease; }
.duorui-home-hero__slide img {
    box-sizing: border-box;
    display: block;
    width: 100%;
    height: 100%;
    padding: clamp(72px, 7vh, 112px) clamp(28px, 4vw, 72px) clamp(64px, 7vh, 104px) clamp(40%, 44vw, 700px);
    object-fit: contain;
    object-position: right center;
    filter: drop-shadow(0 28px 32px rgba(10, 18, 22, .24));
}
.duorui-home-hero__veil { z-index: 1; background: var(--dr-color-overlay-hero); }
.duorui-home-hero__content { position: relative; z-index: 2; display: flex; align-items: center; min-height: inherit; padding-top: 108px; padding-bottom: 88px; }
.duorui-home-hero__copy { box-sizing: border-box; width: min(620px, 52vw); padding-inline-start: 0; }
.duorui-home-hero__copy .duorui-home-eyebrow { color: var(--dr-color-on-dark-muted); }
.duorui-home-hero__slide-title { display: block; margin: 14px 0 12px; color: var(--dr-color-on-dark); font-size: var(--dr-font-body-small); font-weight: var(--dr-weight-bold); letter-spacing: 0; line-height: 1.3; }
.duorui-home-hero__slide-title[hidden] { display: none; }
.duorui-home-hero__copy h1 { max-width: 560px; margin: 0; color: var(--dr-color-white); font-size: var(--dr-font-hero); font-weight: var(--dr-weight-heading); line-height: 1.05; letter-spacing: 0; text-wrap: balance; text-shadow: 0 3px 30px rgba(0,0,0,.22); }
.duorui-home-hero__copy > p { max-width: 580px; margin: 24px 0 0; color: var(--dr-color-on-dark-muted); font-size: var(--dr-font-lead); line-height: 1.62; }
.duorui-home-hero__actions { display: flex; flex-wrap: wrap; gap: var(--dr-button-group-gap); margin-top: var(--dr-action-space); }
.duorui-home-hero__progress { position: absolute; right: var(--dr-gutter); bottom: 52px; z-index: 3; display: flex; align-items: center; gap: 14px; color: var(--dr-color-on-dark-muted); font-size: var(--dr-font-meta); letter-spacing: 0; }
.duorui-home-hero__progress i { display: block; width: 104px; height: 1px; overflow: hidden; background: var(--dr-color-on-dark-subtle); }
.duorui-home-hero__progress b { display: block; width: calc(var(--dr-hero-progress, .08) * 100%); height: 100%; background: var(--dr-color-primary); transform-origin: left center; }
.duorui-home-scroll-cue { position: absolute; bottom: 46px; left: 50%; z-index: 3; display: block; width: 25px; height: 42px; border: 1px solid var(--dr-color-on-dark-muted); border-radius: 20px; transform: translateX(-50%); }
.duorui-home-scroll-cue span { position: absolute; top: 8px; left: 50%; width: 4px; height: 8px; border-radius: 3px; background: var(--dr-color-primary); transform: translateX(-50%); animation: duorui-home-scroll-cue 1.8s ease-in-out infinite; }
@keyframes duorui-home-scroll-cue { 0%, 100% { opacity: .4; transform: translate(-50%,0); } 50% { opacity: 1; transform: translate(-50%,11px); } }

/* The supplied banner artwork already contains its own headline and product
 * labels, so keep it intact and give the site headline a separate footer band. */
.duorui-home-hero--flat-banner {
    position: relative;
    min-height: 0;
    height: auto;
    padding-top: 0;
    background: var(--dr-color-primary);
    color: var(--dr-color-white);
}
.duorui-page-home .duorui-top.is-overlay:not(.is-scrolled):not(.is-menu-open):not(.is-search-open) {
    background: linear-gradient(180deg, rgba(var(--dr-color-deep-rgb), .82) 0%, rgba(var(--dr-color-deep-rgb), .55) 68%, rgba(var(--dr-color-deep-rgb), 0) 100%);
    backdrop-filter: blur(7px);
}

.duorui-home-hero--flat-banner .duorui-home-hero__media {
    position: relative;
    width: 100%;
    height: clamp(280px, 58vw, 720px);
    max-height: 72svh;
    min-height: 280px;
    overflow: hidden;
    background: var(--dr-home-surface-soft);
}

.duorui-home-hero--flat-banner .duorui-home-hero__slide {
    transform: none;
    transition: opacity .55s var(--dr-motion-ease);
}

.duorui-home-hero--flat-banner .duorui-home-hero__slide img {
    width: 100%;
    height: 100%;
    padding: 0;
    object-fit: cover;
    object-position: center bottom;
    filter: none;
}

.duorui-home-hero--flat-banner .duorui-home-hero__veil,
.duorui-home-hero--flat-banner .duorui-home-scroll-cue {
    display: none;
}

.duorui-home-hero--flat-banner .duorui-home-hero__content {
    position: relative;
    display: block;
    width: min(var(--dr-content-max), calc(100% - (var(--dr-gutter) * 2)));
    max-width: none;
    min-height: 0;
    box-sizing: border-box;
    padding: 34px 0 38px;
    color: var(--dr-color-white);
}

.duorui-home-hero--flat-banner .duorui-home-hero__copy {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr) auto;
    gap: 12px clamp(28px, 4vw, 64px);
    align-items: center;
    width: 100%;
    margin: 0;
    padding-inline-start: 0;
    text-align: left;
}

.duorui-home-hero--flat-banner .duorui-home-hero__copy .duorui-home-eyebrow {
    display: none;
}

.duorui-home-hero--flat-banner .duorui-home-hero__copy h1 {
    grid-column: 1;
    max-width: 560px;
    margin: 0;
    color: var(--dr-color-white);
    font-size: var(--dr-font-section-title);
    line-height: 1.08;
    text-shadow: none;
}

.duorui-home-hero--flat-banner .duorui-home-hero__copy .duorui-home-hero__slide-title {
    display: none;
    margin: 0;
    color: var(--dr-color-brand-soft);
}

.duorui-home-hero--flat-banner .duorui-home-hero__copy > p {
    grid-column: 2;
    grid-row: 1;
    max-width: 560px;
    margin: 0;
    color: rgba(255, 255, 255, .86);
    font-size: var(--dr-font-body);
    line-height: 1.6;
}

.duorui-home-hero--flat-banner .duorui-home-hero__actions {
    grid-column: 3;
    grid-row: 1;
    margin: 0;
}
.duorui-home-hero--flat-banner .duorui-home-button--accent {
    border-color: var(--dr-color-white);
    background: var(--dr-color-white);
    color: var(--dr-color-primary-hover);
}
.duorui-home-hero--flat-banner .duorui-home-button--accent:hover,
.duorui-home-hero--flat-banner .duorui-home-button--accent:focus-visible {
    border-color: var(--dr-color-deep);
    background: var(--dr-color-deep);
    color: var(--dr-color-white);
}

.duorui-home-hero--flat-banner .duorui-home-hero__controls {
    position: relative;
    inset: auto;
    width: 100%;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    min-height: 36px;
    margin: -10px 0 10px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--dr-color-white);
    box-shadow: none;
    opacity: 1;
}

.duorui-home-hero--flat-banner .duorui-home-hero__controls > button {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255, 255, 255, .62);
    border-radius: 50%;
    background: rgba(255, 255, 255, .1);
    color: var(--dr-color-white);
    cursor: pointer;
    transition: background-color .2s var(--dr-motion-ease), border-color .2s var(--dr-motion-ease), transform .2s var(--dr-motion-ease);
}

.duorui-home-hero--flat-banner .duorui-home-hero__controls > button:hover,
.duorui-home-hero--flat-banner .duorui-home-hero__controls > button:focus-visible {
    border-color: var(--dr-color-white);
    background: var(--dr-color-white);
    color: var(--dr-color-primary-hover);
    transform: translateY(-1px);
}

.duorui-home-hero--flat-banner .duorui-home-hero__controls > button:nth-child(2) {
    width: auto;
    min-width: 58px;
    height: 32px;
    border-radius: 20px;
    padding-inline: 10px;
    border-color: rgba(255, 255, 255, .62);
    background: rgba(255, 255, 255, .1);
    color: var(--dr-color-white);
    font-size: var(--dr-font-caption);
    font-weight: var(--dr-weight-bold);
}

.duorui-home-hero--flat-banner .duorui-home-hero__controls > button:focus-visible {
    outline: 2px solid var(--dr-color-white);
    outline-offset: 3px;
}

.duorui-home-hero--flat-banner .duorui-home-hero__counter {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    margin-inline-start: 2px;
    color: rgba(255, 255, 255, .84);
    font-size: var(--dr-font-meta);
}

.duorui-home-hero--flat-banner .duorui-home-hero__counter > i {
    display: block;
    width: 42px;
    height: 1px;
    overflow: hidden;
    background: rgba(255, 255, 255, .36);
}

.duorui-home-hero--flat-banner .duorui-home-hero__counter > i > b {
    display: block;
    width: calc(var(--dr-hero-progress, .08) * 100%);
    height: 100%;
    background: var(--dr-color-white);
}

.duorui-home-hero--flat-banner .duorui-home-hero__counter > span {
    display: none;
}

@media (max-width: 992px) {
    .duorui-home-hero--flat-banner .duorui-home-hero__content {
        padding-block: 28px 32px;
    }

    .duorui-home-hero--flat-banner .duorui-home-hero__copy {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px 28px;
    }
    .duorui-home-hero--flat-banner .duorui-home-hero__copy h1 { grid-column: 1; grid-row: 1; font-size: var(--dr-font-section-title); }
    .duorui-home-hero--flat-banner .duorui-home-hero__copy > p { grid-column: 1; grid-row: 2; }
    .duorui-home-hero--flat-banner .duorui-home-hero__actions { grid-column: 2; grid-row: 1 / span 2; }
}

@media (max-width: 576px) {
    .duorui-home-hero--flat-banner .duorui-home-hero__content {
        padding-block: 24px 28px;
    }

    .duorui-home-hero--flat-banner .duorui-home-hero__copy {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }

    .duorui-home-hero--flat-banner .duorui-home-hero__copy > p {
        grid-column: 1;
        grid-row: auto;
        max-width: 360px;
        color: rgba(255, 255, 255, .86);
        font-size: var(--dr-font-body-small);
        line-height: 1.5;
    }

    .duorui-home-hero--flat-banner .duorui-home-hero__actions {
        grid-column: 1;
        grid-row: auto;
        margin-top: 4px;
    }

    .duorui-home-hero--flat-banner .duorui-home-hero__copy h1 {
        max-width: 100%;
        font-size: var(--dr-font-hero);
        line-height: 1.04;
    }

    .duorui-home-hero--flat-banner .duorui-home-hero__controls {
        gap: 5px;
    }

    .duorui-home-hero--flat-banner .duorui-home-hero__controls > button {
        width: 34px;
        height: 34px;
    }

    .duorui-home-hero--flat-banner .duorui-home-hero__controls > button:nth-child(2) {
        min-width: 54px;
        height: 30px;
        padding-inline: 8px;
        font-size: var(--dr-font-caption);
    }

    .duorui-home-hero--flat-banner .duorui-home-hero__counter {
        min-width: 0;
        margin-inline-start: 2px;
        gap: 6px;
    }

    .duorui-home-hero--flat-banner .duorui-home-hero__counter > i {
        width: 30px;
    }

    .duorui-home-hero--flat-banner .duorui-home-button {
        min-height: 38px;
        padding-inline: 16px;
        font-size: var(--dr-font-control);
    }
}

.duorui-home-explore { --dr-explore-rail-h: 60px; position: relative; height: clamp(680px, 68svh, 820px); min-height: 0; border-top: 0; background: var(--dr-home-surface-soft); color: var(--dr-color-heading); }
.duorui-footer::before { position: absolute; top: 0; right: 0; left: 0; z-index: 0; height: clamp(24px, 3.2vw, 48px); background: linear-gradient(180deg, rgba(var(--dr-color-primary-rgb), .08), rgba(var(--dr-color-primary-rgb), 0)); content: ''; pointer-events: none; }
.duorui-page-home .duorui-footer::before { content: none; }
.duorui-home-explore__track, .duorui-home-explore__slide { position: absolute; inset: 0; }
.duorui-home-explore__slide { background: var(--dr-home-surface-soft); opacity: 0; transition: opacity .8s var(--dr-motion-ease); }
.duorui-home-explore__slide.is-active { opacity: 1; }
.duorui-home-explore__slide > img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.duorui-home-explore__slide > .duorui-home-explore__machine-image,
.duorui-home-explore__slide > img[data-duorui-image-fit="contain"] {
    box-sizing: border-box;
    padding: 0;
    background: var(--dr-home-surface-soft);
    object-fit: contain;
    object-position: right top;
}
.duorui-home-explore__shade { position: absolute; inset: 0; background: var(--dr-home-explore-wash); pointer-events: none; }
.duorui-home-explore__copy { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: center; box-sizing: border-box; height: 100%; width: min(var(--dr-content-max), calc(100vw - (var(--dr-gutter) * 2))); padding: 96px clamp(86px, 12vw, 190px) 136px 0; }
.duorui-home-explore__copy h2 { max-width: 560px; margin: 0; color: var(--dr-color-heading); font-size: var(--dr-font-hero); line-height: 1.03; letter-spacing: 0; }
.duorui-home-explore__copy p { max-width: 500px; margin: 22px 0 0; color: var(--dr-color-body); font-size: var(--dr-font-body); line-height: 1.65; }
.duorui-home-explore__copy .duorui-home-button { align-self: flex-start; margin-top: var(--dr-action-space); }
.duorui-home-explore__controls { position: absolute; inset: 0; z-index: 4; pointer-events: none; color: var(--dr-color-muted); font-size: var(--dr-font-meta); }
.duorui-home-explore__controls button { position: absolute; top: 50%; display: grid; place-items: center; width: var(--dr-explore-control-size, 48px); height: var(--dr-explore-control-size, 48px); border: 1px solid var(--dr-color-divider); border-radius: 50%; background: var(--dr-color-white); color: var(--dr-color-primary-hover); cursor: pointer; pointer-events: auto; transform: translateY(-50%); transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; }
.duorui-home-explore__controls button:first-child { left: var(--dr-explore-control-edge, max(12px, calc((100vw - var(--dr-content-max)) / 2 - 56px))); }
.duorui-home-explore__controls button:last-child { right: var(--dr-explore-control-edge, max(12px, calc((100vw - var(--dr-content-max)) / 2 - 56px))); }
.duorui-home-explore__controls button:hover, .duorui-home-explore__controls button:focus-visible { border-color: var(--dr-color-primary); background: var(--dr-color-primary); color: var(--dr-color-white); }
.page-builder-timeline-controls button:focus-visible,
.thumbnail-rail > button:focus-visible,
.duorui-home-explore__controls button:focus-visible {
    outline: 3px solid var(--dr-color-focus);
    outline-offset: 2px;
}
.duorui-home-explore__controls span { position: absolute; right: calc(var(--dr-gutter) + 74px); bottom: 78px; }
.duorui-home-explore__controls b { color: var(--dr-color-primary); }
.duorui-home-explore__rail { position: absolute; right: var(--dr-gutter); bottom: 0; left: var(--dr-gutter); z-index: 3; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); width: min(var(--dr-content-max), calc(100% - (var(--dr-gutter) * 2))); max-width: none; margin: 0 auto; padding: 0; border-top: 1px solid rgba(var(--dr-color-deep-rgb), .12); border-bottom: 1px solid rgba(var(--dr-color-deep-rgb), .2); background: rgba(255, 255, 255, .94); box-shadow: 0 -10px 26px rgba(var(--dr-color-deep-rgb), .08); }
.duorui-home-explore__rail button { position: relative; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; align-items: center; min-width: 0; min-height: 60px; border: 0; padding: 10px 14px; background: transparent; color: var(--dr-color-heading); text-align: left; cursor: pointer; transition: color .22s var(--dr-motion-ease), background-color .22s var(--dr-motion-ease); }
.duorui-home-explore__rail button::after { position: absolute; right: 14px; bottom: -1px; left: 14px; height: 3px; background: var(--dr-color-primary); content: ''; transform: scaleX(0); transform-origin: left center; transition: transform .22s var(--dr-motion-ease); }
.duorui-home-explore__rail button:last-child { border-right: 0; }
.duorui-home-explore__rail button span { color: var(--dr-color-body); font-size: var(--dr-font-caption); font-weight: var(--dr-weight-semibold); letter-spacing: 0; }
.duorui-home-explore__rail button strong { overflow-wrap: normal; word-break: normal; hyphens: none; font-size: var(--dr-font-body-small); font-weight: var(--dr-weight-semibold); line-height: 1.25; }
.duorui-home-explore__rail button:hover, .duorui-home-explore__rail button:focus-visible, .duorui-home-explore__rail button.is-active { background: rgba(var(--dr-color-primary-rgb), .08); color: var(--dr-color-primary-hover); }
.duorui-home-explore__rail button:hover::after,
.duorui-home-explore__rail button:focus-visible::after,
.duorui-home-explore__rail button.is-active::after { transform: scaleX(1); }
.duorui-home-explore__rail button:hover span, .duorui-home-explore__rail button:focus-visible span, .duorui-home-explore__rail button.is-active span { color: var(--dr-color-primary-hover); }

.duorui-home-spaces { --dr-industry-baseline: 51%; --dr-industry-column-pad: clamp(20px, 2.4vw, 40px); --dr-industry-divider: rgba(255, 255, 255, .34); position: relative; min-height: clamp(680px, 74svh, 860px); padding: 0; overflow: hidden; isolation: isolate; border-top: 0; background: var(--dr-color-deep); color: var(--dr-color-white); }
.duorui-home-spaces::after { position: absolute; inset: 0; z-index: 1; background: var(--dr-color-overlay-stage); content: ''; pointer-events: none; }
.duorui-home-spaces__backdrop { position: absolute; inset: 0; z-index: 0; background: var(--dr-color-deep); }
.duorui-home-spaces__backdrop img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: 0; transform: scale(1.035); transition: opacity .55s var(--dr-motion-ease), transform 7s var(--dr-motion-ease); }
.duorui-home-spaces__backdrop img.is-active { opacity: 1; transform: scale(1); }
.duorui-home-spaces__intro { position: relative; z-index: 3; width: min(var(--dr-content-max), calc(100% - (var(--dr-gutter) * 2))); max-width: none; padding-top: clamp(88px, 10vh, 132px); text-align: center; }
.duorui-home-spaces__intro .duorui-home-eyebrow { color: var(--dr-color-on-dark); }
.duorui-home-spaces__intro h2 { max-width: 760px; margin: 0 auto; color: var(--dr-color-white); font-size: var(--dr-font-section-title); line-height: 1.08; letter-spacing: 0; }
.duorui-home-spaces__intro p { max-width: 680px; margin: 18px auto 0; color: var(--dr-color-on-dark-muted); line-height: 1.65; }
.duorui-home-spaces__columns { position: absolute; inset: 0; z-index: 2; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; min-height: 100%; margin: 0; padding: 0; border-top: 0; border-bottom: 0; }
.duorui-home-spaces__columns::before { position: absolute; inset: 0; z-index: 0; background: repeating-linear-gradient(90deg, transparent 0 calc(20% - .5px), var(--dr-industry-divider) calc(20% - .5px) calc(20% + .5px)); content: ''; pointer-events: none; }
.duorui-home-space { position: relative; z-index: 1; display: flex; align-items: stretch; justify-content: center; min-width: 0; overflow: hidden; border: 0; border-radius: 0; padding: 0 var(--dr-industry-column-pad); background: transparent; color: var(--dr-color-white); transition: background-color .35s var(--dr-motion-ease); }
.duorui-home-space::after { position: absolute; inset: 42% 0 0; z-index: 0; background: var(--dr-color-overlay-media-soft); content: ''; pointer-events: none; }
.duorui-home-space:hover, .duorui-home-space:focus-visible, .duorui-home-space:focus-within { background: var(--dr-color-industry-hover); }
.duorui-home-space.is-active { background: var(--dr-color-active-wash); }
@media (min-width: 993px) {
    .duorui-home-space.is-active { background: var(--dr-color-industry-active); }
}
.duorui-home-space__content { position: absolute; top: var(--dr-industry-baseline); right: var(--dr-industry-column-pad); left: var(--dr-industry-column-pad); z-index: 1; transform: none; }
.duorui-home-space > .duorui-home-space__content { position: absolute; }
.duorui-home-space__media { display: none; }
.duorui-home-space__number { display: flex; align-items: center; gap: 10px; min-height: 24px; margin: 0 0 14px; color: var(--dr-color-on-dark-muted); font-size: var(--dr-font-meta); letter-spacing: .02em; }
.duorui-home-space__number::before { width: 10px; height: 10px; flex: 0 0 auto; border: 2px solid var(--dr-color-white); border-radius: 50%; background: var(--dr-color-on-dark-subtle); content: ''; }
.duorui-home-space__rule { display: block; width: min(100%, 280px); height: 1px; margin: 16px 0 0; background: var(--dr-color-white); opacity: 0; transform-origin: left center; transition: opacity .3s var(--dr-motion-ease), transform .3s var(--dr-motion-ease); transform: scaleX(.72); }
.duorui-home-space h3 { min-height: 2.36em; margin: 0; color: var(--dr-color-white); font-size: var(--dr-font-industry-title); line-height: 1.18; }
.duorui-home-space p, .duorui-home-space a { max-height: 220px; margin-top: 16px; overflow: visible; opacity: .96; pointer-events: auto; transform: none; transition: color .25s var(--dr-motion-ease), opacity .25s var(--dr-motion-ease), transform .25s var(--dr-motion-ease); }
.duorui-home-space p { max-width: 300px; margin: 18px 0 0; color: var(--dr-color-on-dark-muted); font-size: var(--dr-font-body-small); line-height: 1.58; }
.duorui-home-space a { display: inline-flex; align-items: center; gap: 8px; width: max-content; margin-top: 22px; color: var(--dr-color-white); font-size: var(--dr-font-body-small); font-weight: var(--dr-weight-semibold); }
.duorui-home-space a:hover, .duorui-home-space a:focus-visible { color: var(--dr-color-on-dark); transform: translateX(2px); }
.duorui-home-space.is-active .duorui-home-space__rule { opacity: 1; transform: scaleX(1); }
.duorui-home-space.is-active p, .duorui-home-space.is-active a { opacity: 1; }
.duorui-home-space.is-active a { color: var(--dr-color-white); }

.duorui-home-evidence {
    --dr-home-evidence-gap: clamp(44px, 4.2vw, 64px);
    background: var(--dr-home-surface-soft);
}

.duorui-home-proof {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
    grid-template-areas:
        "media body"
        "gallery gallery";
    gap: 0;
    min-height: auto;
    background: transparent;
    color: var(--dr-color-heading);
}
.duorui-home-proof--no-media { grid-template-columns: minmax(0, 1fr); grid-template-areas: "body" "gallery"; }
.duorui-home-proof__media { position: relative; grid-area: media; min-width: 0; min-height: 0; margin: 0; overflow: hidden; background: var(--dr-color-line); }
.duorui-home-proof__media img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.duorui-home-proof__body { grid-area: body; display: flex; align-items: flex-start; min-width: 0; padding: 48px clamp(40px, 5vw, 80px); }
.duorui-home-proof__inner { width: min(720px, 100%); }
.duorui-home-proof__head { margin-bottom: 0; }
.duorui-home-proof__head .section-head__copy h2 { color: var(--dr-color-heading); }
.duorui-home-proof__head .section-head__body { max-width: 640px; color: var(--dr-color-muted); }
.duorui-home-proof__head .section-head__label { color: var(--dr-color-primary-hover); }
.duorui-home-title { margin: 0; color: var(--dr-color-white); font-weight: var(--dr-weight-heading); line-height: 1.08; letter-spacing: 0; text-wrap: balance; }
.duorui-home-section-title { max-width: 650px; font-size: var(--dr-font-section-title); }
.duorui-home-media-title { max-width: 100%; font-size: var(--dr-font-section-title); }
.duorui-home-proof__gallery .duorui-home-media-title { font-size: var(--dr-font-card-title); line-height: 1.25; }
.duorui-home-proof__inner > h2 { color: var(--dr-color-heading); }
.duorui-home-proof__summary { max-width: 640px; margin: 22px 0 0; color: var(--dr-color-muted); font-size: var(--dr-font-body); line-height: 1.68; }
.duorui-home-proof__reasons { margin-top: 32px; }
.duorui-home-proof__reasons > h3 { margin: 0 0 14px; color: var(--dr-color-heading); font-size: var(--dr-font-body); line-height: 1.25; }
.duorui-home-proof__reason-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 34px; }
.duorui-home-proof__reason-grid article { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; min-width: 0; }
.duorui-home-proof__reason-index { color: var(--dr-color-primary); font-size: var(--dr-font-caption); letter-spacing: 0; font-weight: var(--dr-weight-bold); }
.duorui-home-proof__reason-grid h3 { margin: 0; color: var(--dr-color-heading); font-size: var(--dr-font-body); line-height: 1.35; }
.duorui-home-proof__reason-grid p { margin: 8px 0 0; color: var(--dr-color-muted); font-size: var(--dr-font-body-small); line-height: 1.58; }
.duorui-home-proof__inner > .duorui-home-button { margin-top: var(--dr-action-space); }
.duorui-home-proof__gallery { grid-area: gallery; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding: 16px clamp(24px, 4vw, 72px) 0; background: transparent; }
.duorui-home-proof__gallery figure { position: relative; min-width: 0; min-height: 176px; aspect-ratio: 1.35; margin: 0; overflow: hidden; border-radius: var(--dr-radius); background: var(--dr-color-surface); }
.duorui-home-proof__gallery img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; transition: transform .45s ease; }
.duorui-home-proof__gallery figure:hover img { transform: scale(1.04); }
.duorui-home-proof__gallery figure::after { position: absolute; inset: 0; z-index: 1; background: var(--dr-color-overlay-media-dark); content: ''; pointer-events: none; }
.duorui-home-proof__gallery figcaption { position: absolute; right: var(--dr-home-media-safe-x); bottom: var(--dr-home-media-safe-bottom); left: var(--dr-home-media-safe-x); z-index: 2; padding-top: 12px; text-shadow: 0 1px 12px rgba(var(--dr-color-deep-rgb), .62); }
.duorui-home-proof__gallery figcaption p { max-width: 34ch; max-height: 0; margin: 10px 0 0; overflow: hidden; color: var(--dr-color-on-dark-muted); font-size: var(--dr-font-body-small); line-height: 1.52; opacity: 0; transform: translateY(8px); transition: max-height .28s ease, opacity .28s ease, transform .28s ease; }
.duorui-home-proof__gallery figure:hover figcaption p { max-height: 8em; opacity: 1; transform: translateY(0); }

.duorui-home-quality { position: relative; min-height: auto; padding: 0 0 clamp(64px, 6.2vw, 88px); border-top: 0; background: transparent; color: var(--dr-color-heading); }
.duorui-home-quality > .wrap { padding-top: var(--dr-home-evidence-gap); }
.duorui-home-quality__carousel { position: relative; width: 100%; min-height: clamp(500px, 52vw, 760px); margin-top: 32px; overflow: hidden; background: var(--dr-color-deep); }
.duorui-home-quality__carousel-viewport { width: 100%; height: 100%; min-height: inherit; overflow: hidden; }
.duorui-home-quality__carousel-track { gap: 0; width: 100%; height: 100%; min-height: inherit; }
.duorui-home-quality__carousel-slide { position: relative; flex: 0 0 100%; min-width: 0; min-height: inherit; margin: 0; overflow: hidden; background: var(--dr-color-deep); }
.duorui-home-quality__carousel-slide img { display: block; width: 100%; height: 100%; min-height: inherit; object-fit: cover; object-position: center; transition: transform .6s ease; }
.duorui-home-quality__carousel-slide::after { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(var(--dr-color-deep-rgb), .08) 0%, rgba(var(--dr-color-deep-rgb), .16) 36%, rgba(var(--dr-color-deep-rgb), .84) 100%); content: ''; pointer-events: none; }
.duorui-home-quality__carousel-slide:hover img { transform: scale(1.025); }
.duorui-home-quality__carousel-slide h3 { position: absolute; right: clamp(18px, 5vw, 84px); bottom: clamp(92px, 11vw, 142px); left: clamp(18px, 5vw, 84px); z-index: 2; max-width: min(820px, calc(100% - 36px)); margin: 0; color: var(--dr-color-white); font-size: var(--dr-font-section-title); line-height: 1.08; text-shadow: 0 2px 18px rgba(var(--dr-color-deep-rgb), .56); }
.duorui-home-quality__carousel-slide p { position: absolute; right: clamp(18px, 5vw, 84px); bottom: clamp(42px, 7vw, 88px); left: clamp(18px, 5vw, 84px); z-index: 2; max-width: 680px; margin: 0; color: var(--dr-color-on-dark-muted); font-size: var(--dr-font-body); line-height: 1.6; text-shadow: 0 1px 12px rgba(var(--dr-color-deep-rgb), .62); }
.duorui-home-quality__carousel-controls { position: absolute; right: clamp(18px, 5vw, 84px); bottom: clamp(18px, 2.5vw, 36px); left: clamp(18px, 5vw, 84px); z-index: 4; display: flex; align-items: center; gap: 10px; }
.duorui-home-quality__carousel-controls > button { border-color: rgba(255, 255, 255, .42); background: rgba(var(--dr-color-deep-rgb), .22); color: var(--dr-color-white); }
.duorui-home-quality__carousel-controls > button:hover,
.duorui-home-quality__carousel-controls > button:focus-visible { border-color: var(--dr-color-white); background: var(--dr-color-white); color: var(--dr-color-deep); }
.duorui-home-quality__carousel-controls > span[data-carousel-progress] { display: block; width: min(180px, 24vw); height: 2px; margin-left: 8px; background: rgba(255, 255, 255, .24); overflow: hidden; }
.duorui-home-quality__carousel-controls > span[data-carousel-progress]::before { display: block; width: var(--carousel-progress, 0%); height: 100%; background: var(--dr-color-white); content: ''; transition: width .36s ease; }
.duorui-home-quality__carousel-controls > b[data-carousel-counter] { margin-left: auto; color: rgba(255, 255, 255, .82); font-size: var(--dr-font-meta); font-weight: var(--dr-weight-bold); letter-spacing: .08em; }

.duorui-home-news { position: relative; display: grid; grid-template-columns: minmax(0, .98fr) minmax(0, 1.02fr); width: min(100%, 1620px); min-height: auto; margin-inline: auto; border-top: 0; background: var(--dr-home-surface-light); }
.duorui-home-news__left { display: flex; min-width: 0; align-items: center; background: var(--dr-color-white); }
.duorui-home-news__left-inner { width: min(var(--dr-content-max), calc(100% - (var(--dr-gutter) * 2))); margin-right: auto; margin-left: auto; padding: clamp(72px, 5.5vw, 96px) 0; }
.duorui-home-news__left h2 { color: var(--dr-color-heading); }
.duorui-home-news__intro { max-width: 520px; margin: 18px 0 0; color: var(--dr-color-muted); line-height: 1.62; }
.duorui-home-news__list { margin: 34px 0 var(--dr-action-space); border-top: 1px solid var(--dr-color-line); }
.duorui-home-news-item { display: grid; grid-template-columns: 144px minmax(0, 1fr); gap: 20px; align-items: center; min-height: 112px; border-bottom: 1px solid var(--dr-color-line); color: var(--dr-color-heading); transition: background-color .2s var(--dr-motion-ease); }
.duorui-home-news-item:hover,
.duorui-home-news-item:focus-visible { background: rgba(var(--dr-color-primary-rgb), .045); }
.duorui-home-news-item:focus-visible { outline: 2px solid var(--dr-color-focus); outline-offset: -2px; }
.duorui-home-news-item__image { display: block; aspect-ratio: 1.35; overflow: hidden; background: var(--dr-color-surface); }
.duorui-home-news-item__image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.duorui-home-news-item:hover .duorui-home-news-item__image img, .duorui-home-news-item:focus-visible .duorui-home-news-item__image img { transform: scale(1.06); }
.duorui-home-news-item__copy { display: grid; gap: 8px; min-width: 0; }
.duorui-home-news-item__copy small, .duorui-home-news__right-copy small { color: var(--dr-color-muted); font-size: var(--dr-font-meta); }
.duorui-home-news-item__copy strong { font-size: var(--dr-font-body); line-height: 1.42; transition: color .2s var(--dr-motion-ease), transform .2s var(--dr-motion-ease); }
.duorui-home-news-item:hover .duorui-home-news-item__copy strong, .duorui-home-news-item:focus-visible .duorui-home-news-item__copy strong { color: var(--dr-color-primary); }
.duorui-home-news__right { position: relative; display: block; min-width: 0; min-height: 580px; overflow: hidden; background: var(--dr-color-surface); color: var(--dr-color-white); }
.duorui-home-news__right > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: .92; filter: saturate(.98) contrast(.98); transition: transform 5s var(--dr-motion-ease); }
.duorui-home-news__right:hover > img { transform: scale(1.04); }
.duorui-home-news__right::after { position: absolute; inset: 0; z-index: 1; background: var(--dr-color-overlay-media-dark); content: ''; pointer-events: none; }
.duorui-home-news__right-copy { position: absolute; right: clamp(32px, 4vw, 72px); bottom: clamp(48px, 8vh, 96px); left: clamp(32px, 4vw, 72px); z-index: 2; padding-top: 12px; text-shadow: 0 1px 12px rgba(var(--dr-color-deep-rgb), .62); }
.duorui-home-news__right-copy .duorui-home-eyebrow { color: var(--dr-color-on-dark-muted); }
.duorui-home-news__right-copy h3 { max-width: 650px; margin: 0; color: var(--dr-color-on-dark); font-size: var(--dr-font-section-title); line-height: 1.08; transition: color .2s var(--dr-motion-ease), transform .2s var(--dr-motion-ease); }
.duorui-home-news__right:hover h3,
.duorui-home-news__right:focus-visible h3 { color: var(--dr-color-brand-soft); transform: translateX(4px); }
.duorui-home-news__right-action { position: absolute; top: clamp(24px, 3vw, 48px); right: clamp(24px, 3vw, 48px); z-index: 3; display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid rgba(255, 255, 255, .58); border-radius: 50%; background: rgba(var(--dr-color-deep-rgb), .2); color: var(--dr-color-white); transition: background-color .2s var(--dr-motion-ease), border-color .2s var(--dr-motion-ease), color .2s var(--dr-motion-ease), transform .2s var(--dr-motion-ease); }
.duorui-home-news__right-action svg { width: 18px; height: 18px; stroke-width: 2.2; transition: transform .2s var(--dr-motion-ease); }
.duorui-home-news__right:hover .duorui-home-news__right-action,
.duorui-home-news__right:focus-visible .duorui-home-news__right-action { border-color: var(--dr-color-brand-soft); background: var(--dr-color-primary); color: var(--dr-color-white); transform: translate(2px, -2px); }
.duorui-home-news__right:hover .duorui-home-news__right-action svg,
.duorui-home-news__right:focus-visible .duorui-home-news__right-action svg { transform: translate(2px, -2px); }
.duorui-home-news__right:focus-visible { outline: 3px solid var(--dr-color-focus); outline-offset: -3px; }
.duorui-home-news__right-copy small { display: block; margin-top: 18px; color: var(--dr-color-on-dark-subtle); }

.duorui-home-inquiry { position: relative; z-index: 5; background: var(--dr-color-primary); color: var(--dr-color-white); }
.duorui-home-inquiry__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(36px, 6vw, 96px); align-items: center; min-height: 192px; padding-top: 40px; padding-bottom: 40px; }
.duorui-home-inquiry__copy { min-width: 0; }
.duorui-home-inquiry h2 { margin: 0; color: var(--dr-color-white); font-size: var(--dr-font-section-title); line-height: 1.12; }
.duorui-home-inquiry p { max-width: 760px; margin: 12px 0 0; color: var(--dr-color-on-dark-muted); font-size: var(--dr-font-body); line-height: 1.58; }
.duorui-home-inquiry__button { min-width: 260px; min-height: 50px; border-color: var(--dr-color-white); background: var(--dr-color-white); color: var(--dr-color-primary); }
.duorui-home-inquiry__button:hover, .duorui-home-inquiry__button:focus-visible { border-color: var(--dr-color-deep); background: var(--dr-color-deep); color: var(--dr-color-white); }

/* ===== Responsive rules ===== */
/* Responsive rules are owned here; narrower viewport rules intentionally load after wider rules. */

/* Wide desktop */

@media (min-width: 1201px) {
    .duorui-home-spaces {
        min-height: 0;
        padding: clamp(76px, 6vw, 96px) 0 clamp(72px, 6vw, 92px);
        background: var(--dr-home-surface-soft);
        color: var(--dr-color-heading);
    }

    .duorui-home-spaces::after,
    .duorui-home-spaces__backdrop { display: none; }

    .duorui-home-spaces__intro {
        width: min(var(--dr-content-max), calc(100% - (var(--dr-gutter) * 2)));
        margin: 0 auto;
        padding: 0 0 32px;
        text-align: left;
    }

    .duorui-home-spaces__intro .duorui-home-eyebrow { color: var(--dr-color-primary-hover); }
    .duorui-home-spaces__intro h2 { max-width: 760px; margin: 0; color: var(--dr-color-heading); }
    .duorui-home-spaces__intro p { max-width: 760px; margin: 14px 0 0; color: var(--dr-color-muted); }

    .duorui-home-spaces__columns {
        position: relative;
        inset: auto;
        z-index: 2;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 16px;
        width: min(var(--dr-content-max), calc(100% - (var(--dr-gutter) * 2)));
        min-height: 0;
        margin: 0 auto;
        padding: 0;
    }

    .duorui-home-space {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto 1fr;
        min-height: 0;
        padding: 0;
        overflow: hidden;
        border: 1px solid var(--dr-color-divider);
        border-radius: 6px;
        background: var(--dr-color-white);
        box-shadow: 0 8px 22px rgba(var(--dr-shadow-rgb), .06);
        color: var(--dr-color-heading);
        transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
    }

    .duorui-home-space::after { display: none; }
    .duorui-home-space:hover,
    .duorui-home-space:focus-visible,
    .duorui-home-space:focus-within,
    .duorui-home-space.is-active {
        border-color: rgba(var(--dr-color-primary-rgb), .48);
        background: var(--dr-color-white);
        box-shadow: 0 14px 30px rgba(var(--dr-shadow-rgb), .12);
        color: var(--dr-color-heading);
        transform: translateY(-3px);
    }

    .duorui-home-space > .duorui-home-space__content {
        position: relative;
        top: auto;
        right: auto;
        left: auto;
        padding: 20px 18px 22px;
        transform: none;
    }

    .duorui-home-space__media {
        display: block;
        aspect-ratio: 4 / 3;
        margin: 0;
        overflow: hidden;
        background: var(--dr-color-surface);
    }

    .duorui-home-space__media img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform .35s ease;
    }

    .duorui-home-space:hover .duorui-home-space__media img,
    .duorui-home-space:focus-visible .duorui-home-space__media img,
    .duorui-home-space.is-active .duorui-home-space__media img { transform: scale(1.035); }

    .duorui-home-space__number {
        min-height: 0;
        margin: 0 0 10px;
        color: var(--dr-color-primary-hover);
    }

    .duorui-home-space__number::before { display: none; }
    .duorui-home-space__rule { width: 100%; margin: 14px 0 0; background: var(--dr-color-line); opacity: 1; transform: none; }
    .duorui-home-space h3 { min-height: 0; color: var(--dr-color-heading); font-size: var(--dr-font-card-title); line-height: 1.22; }
    .duorui-home-space p { max-width: none; margin-top: 14px; color: var(--dr-color-muted); }
    .duorui-home-space a { margin-top: 18px; color: var(--dr-color-primary-hover); }
    .duorui-home-space a:hover,
    .duorui-home-space a:focus-visible { color: var(--dr-color-primary); transform: translateX(2px); }

    .duorui-page-solution-detail .dr-solution-machines--rail .dr-solution-machine-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .duorui-page-solution-detail .dr-solution-machines--rail .dr-solution-machine-card { grid-column: span 2; }
    .duorui-page-solution-detail .dr-solution-machines--rail .dr-solution-machine-card:nth-child(4):nth-last-child(2) { grid-column: 2 / span 2; }
    .duorui-page-solution-detail .dr-solution-machines--rail .dr-solution-machine-card:nth-child(5):last-child { grid-column: 4 / span 2; }
    .duorui-page-solution-detail .dr-solution-flow-columns--editorial .dr-solution-flow-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; }
    .duorui-page-solution-detail .dr-solution-flow-columns--editorial .dr-solution-flow-list li { display: block; min-height: 70px; padding: 18px 0 16px; }
    .duorui-page-solution-detail .dr-solution-flow-columns--editorial .dr-solution-flow-list h3 { font-size: var(--dr-font-body); line-height: 1.35; }
    .duorui-page-solution-detail .dr-solution-custom--story .dr-solution-custom__list article { display: block; min-height: 68px; padding: 18px 0 16px; }
    .duorui-page-solution-detail .dr-solution-custom--story .dr-solution-custom__list article > div { min-width: 0; }
    .duorui-page-solution-detail .dr-solution-custom--story .dr-solution-custom__list h3 { font-size: var(--dr-font-body); line-height: 1.35; }
    .duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list { gap: 28px 36px; }
    .duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list article,
    .duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list article:first-child { min-height: 70px; padding: 18px 0 8px; }
    .duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list h3 { font-size: var(--dr-font-body); line-height: 1.35; }
    .duorui-page-solution-detail .dr-solution-workflow--editorial .dr-solution-workflow__head,
    .duorui-page-solution-detail .dr-solution-proof--editorial > .wrap > .section-head--solution {
        grid-template-columns: minmax(500px, .9fr) minmax(0, 1.1fr);
        column-gap: 72px;
        display: grid;
        gap: 18px 56px;
        align-items: start;
        max-width: none;
    }

    .duorui-page-solution-detail .dr-solution-workflow--editorial .dr-solution-workflow__head .section-head__copy h2,
    .duorui-page-solution-detail .dr-solution-proof--editorial > .wrap > .section-head--solution .section-head__copy h2 {
        max-width: 560px;
    }

    .duorui-page-solution-detail .dr-solution-custom--story .dr-solution-story-layout {
        grid-template-columns: minmax(0, 1.1fr) minmax(460px, .9fr);
        column-gap: 72px;
    } }

@media (min-width: 993px) and (max-width: 1200px) {
    .duorui-page-home .duorui-home-spaces {
        min-height: 0;
        padding: 72px 0 76px;
        background: var(--dr-home-surface-soft);
        color: var(--dr-color-heading);
    }
    .duorui-page-home main .duorui-home-spaces::after,
    .duorui-page-home main .duorui-home-spaces__backdrop { display: none; }
    .duorui-page-home .duorui-home-spaces__intro {
        width: min(var(--dr-content-max), calc(100% - (var(--dr-gutter) * 2)));
        margin: 0 auto;
        padding: 0 0 28px;
        text-align: left;
    }
    .duorui-page-home main .duorui-home-spaces__intro .duorui-home-eyebrow { color: var(--dr-color-primary-hover); }
    .duorui-page-home main .duorui-home-spaces__intro h2 { color: var(--dr-color-heading); }
    .duorui-page-home .duorui-home-spaces__intro p { color: var(--dr-color-muted); }
    .duorui-page-home .duorui-home-spaces__columns {
        position: relative;
        inset: auto;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 14px;
        width: min(var(--dr-content-max), calc(100% - (var(--dr-gutter) * 2)));
        min-height: 0;
        margin: 0 auto;
        padding: 0;
    }
    .duorui-page-home .duorui-home-space {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto 1fr;
        min-height: 0;
        padding: 0;
        overflow: hidden;
        border: 1px solid var(--dr-color-divider);
        border-radius: 6px;
        background: var(--dr-color-white);
        box-shadow: 0 8px 22px rgba(var(--dr-shadow-rgb), .06);
        color: var(--dr-color-heading);
        transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
    }
    .duorui-page-home main .duorui-home-space::after { display: none; }
    .duorui-page-home .duorui-home-space:hover,
    .duorui-page-home .duorui-home-space:focus-visible,
    .duorui-page-home .duorui-home-space:focus-within,
    .duorui-page-home .duorui-home-space.is-active {
        border-color: rgba(var(--dr-color-primary-rgb), .48);
        background: var(--dr-color-white);
        box-shadow: 0 14px 30px rgba(var(--dr-shadow-rgb), .12);
        color: var(--dr-color-heading);
        transform: translateY(-3px);
    }
    .duorui-page-home .duorui-home-space > .duorui-home-space__content { position: relative; inset: auto; padding: 18px 16px 20px; transform: none; }
    .duorui-page-home .duorui-home-space__media { display: block; aspect-ratio: 4 / 3; margin: 0; overflow: hidden; background: var(--dr-color-surface); }
    .duorui-page-home .duorui-home-space:hover .duorui-home-space__media img,
    .duorui-page-home .duorui-home-space:focus-visible .duorui-home-space__media img,
    .duorui-page-home .duorui-home-space.is-active .duorui-home-space__media img { transform: scale(1.035); }
    .duorui-page-home .duorui-home-space__number { min-height: 0; margin: 0 0 10px; color: var(--dr-color-primary-hover); }
    .duorui-page-home main .duorui-home-space__number::before { display: none; }
    .duorui-page-home .duorui-home-space__rule { width: 100%; margin: 14px 0 0; background: var(--dr-color-line); opacity: 1; transform: none; }
    .duorui-page-home main .duorui-home-space h3 { min-height: 0; color: var(--dr-color-heading); font-size: var(--dr-font-card-title); line-height: 1.22; }
    .duorui-page-home .duorui-home-space p { max-width: none; margin-top: 12px; color: var(--dr-color-muted); }
    .duorui-page-home .duorui-home-space a { margin-top: 16px; color: var(--dr-color-primary-hover); }
}

@media (min-width: 577px) {
    .duorui-page-home .duorui-home-hero--flat-banner {
        display: flex;
        flex-direction: column;
        height: 100svh;
        min-height: 0;
    }
    .duorui-page-home .duorui-home-hero--flat-banner .duorui-home-hero__media {
        flex: 1 1 auto;
        height: auto;
        max-height: none;
        min-height: 0;
    }
    .duorui-page-home .duorui-home-hero--flat-banner .duorui-home-hero__content {
        flex: 0 0 auto;
        padding-block: 20px 24px;
    }
}

/* Industry Solutions keeps its original wide, scene-led composition on
 * desktop. The card treatment below 993px remains owned by the narrow bands. */
@media (min-width: 993px) {
    .duorui-page-home .duorui-home-spaces {
        min-height: clamp(680px, 74svh, 860px);
        padding: 0;
        overflow: hidden;
        isolation: isolate;
        background: var(--dr-color-deep);
        color: var(--dr-color-white);
    }
    .duorui-page-home .duorui-home-spaces::after { display: block; }
    .duorui-page-home .duorui-home-spaces__backdrop { display: block; }
    .duorui-page-home .duorui-home-spaces__intro {
        position: relative;
        z-index: 3;
        width: min(var(--dr-content-max), calc(100% - (var(--dr-gutter) * 2)));
        margin: 0 auto;
        padding: clamp(88px, 10vh, 132px) 0 0;
        text-align: center;
    }
    .duorui-page-home .duorui-home-spaces__intro .duorui-home-eyebrow { color: var(--dr-color-on-dark); }
    .duorui-page-home .duorui-home-spaces__intro h2 { max-width: 760px; margin: 0 auto; color: var(--dr-color-white); }
    .duorui-page-home .duorui-home-spaces__intro p { max-width: 680px; margin: 18px auto 0; color: var(--dr-color-on-dark-muted); }
    .duorui-page-home .duorui-home-spaces__columns {
        position: absolute;
        inset: 0;
        z-index: 2;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 0;
        width: auto;
        min-height: 100%;
        margin: 0;
        padding: 0;
    }
    .duorui-page-home .duorui-home-spaces__columns::before { display: block; }
    .duorui-page-home .duorui-home-space {
        position: relative;
        z-index: 1;
        display: flex;
        align-items: stretch;
        justify-content: center;
        min-width: 0;
        min-height: 0;
        overflow: hidden;
        border: 0;
        border-radius: 0;
        padding: 0 var(--dr-industry-column-pad);
        background: transparent;
        box-shadow: none;
        color: var(--dr-color-white);
        transition: background-color .35s var(--dr-motion-ease);
        transform: none;
    }
    .duorui-page-home .duorui-home-space::after { display: block; }
    .duorui-page-home .duorui-home-space:hover,
    .duorui-page-home .duorui-home-space:focus-visible,
    .duorui-page-home .duorui-home-space:focus-within { border: 0; background: var(--dr-color-industry-hover); box-shadow: none; color: var(--dr-color-white); transform: none; }
    .duorui-page-home .duorui-home-space.is-active { border: 0; background: var(--dr-color-active-wash); color: var(--dr-color-white); }
    .duorui-page-home .duorui-home-space > .duorui-home-space__content { position: absolute; top: var(--dr-industry-baseline); right: var(--dr-industry-column-pad); left: var(--dr-industry-column-pad); z-index: 1; padding: 0; transform: none; }
    .duorui-page-home .duorui-home-space__media { display: none; }
    .duorui-page-home .duorui-home-space__number { display: flex; align-items: center; gap: 10px; min-height: 24px; margin: 0 0 14px; color: var(--dr-color-on-dark-muted); }
    .duorui-page-home .duorui-home-space__number::before { display: block; width: 10px; height: 10px; flex: 0 0 auto; border: 2px solid var(--dr-color-white); border-radius: 50%; background: var(--dr-color-on-dark-subtle); content: ''; }
    .duorui-page-home .duorui-home-space__rule { width: min(100%, 280px); height: 1px; margin: 16px 0 0; background: var(--dr-color-white); opacity: 0; transform: scaleX(.72); }
    .duorui-page-home .duorui-home-space h3 { min-height: 2.36em; margin: 0; color: var(--dr-color-white); font-size: var(--dr-font-industry-title); line-height: 1.18; }
    .duorui-page-home .duorui-home-space p,
    .duorui-page-home .duorui-home-space a,
    .duorui-page-home .duorui-home-space__rule {
        max-height: 0;
        margin-top: 0;
        overflow: hidden;
        opacity: 0;
        pointer-events: none;
        transform: translateY(8px);
        visibility: hidden;
        transition: max-height .35s var(--dr-motion-ease), margin-top .35s var(--dr-motion-ease), opacity .25s var(--dr-motion-ease), transform .35s var(--dr-motion-ease), visibility .35s var(--dr-motion-ease);
    }
    .duorui-page-home .duorui-home-space p { max-width: 300px; color: var(--dr-color-on-dark-muted); font-size: var(--dr-font-body-small); line-height: 1.58; }
    .duorui-page-home .duorui-home-space a { display: inline-flex; align-items: center; gap: 8px; width: max-content; color: var(--dr-color-white); font-size: var(--dr-font-body-small); font-weight: var(--dr-weight-semibold); }
    .duorui-page-home .duorui-home-space:hover p,
    .duorui-page-home .duorui-home-space:focus-visible p,
    .duorui-page-home .duorui-home-space:focus-within p,
    .duorui-page-home .duorui-home-space:hover a,
    .duorui-page-home .duorui-home-space:focus-visible a,
    .duorui-page-home .duorui-home-space:focus-within a {
        max-height: 220px;
        margin-top: 18px;
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
        visibility: visible;
    }
    .duorui-page-home .duorui-home-space:hover a,
    .duorui-page-home .duorui-home-space:focus-visible a,
    .duorui-page-home .duorui-home-space:focus-within a { margin-top: 22px; }
    .duorui-page-home .duorui-home-space:hover .duorui-home-space__rule,
    .duorui-page-home .duorui-home-space:focus-visible .duorui-home-space__rule,
    .duorui-page-home .duorui-home-space:focus-within .duorui-home-space__rule {
        max-height: 1px;
        margin-top: 16px;
        opacity: 1;
        transform: scaleX(1);
        visibility: visible;
    }
    .duorui-page-home .duorui-home-space a:hover,
    .duorui-page-home .duorui-home-space a:focus-visible { color: var(--dr-color-on-dark); transform: translateX(2px); }
}

/* Desktop interaction */

@media (min-width: 993px) {
    .duorui-page-home { scroll-snap-type: none; } }

/* Tablet and desktop */

@media (min-width: 577px) {
    .duorui-page-solution-detail .dr-solution-custom--story .dr-solution-custom__list article {
        display: block;
        min-width: 0;
        min-height: 70px;
        padding: 18px 0 16px;
    }

    .duorui-page-solution-detail .dr-solution-custom--story .dr-solution-custom__list article > div,
    .duorui-page-solution-detail .dr-solution-custom--story .dr-solution-custom__list h3,
    .duorui-page-solution-detail .dr-solution-custom--story .dr-solution-custom__list p {
        min-width: 0;
        max-width: none;
        overflow-wrap: normal;
        word-break: normal;
    }

    .duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0 44px;
        align-items: start;
    }

    .duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list article,
    .duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list article:first-child {
        display: block;
        min-width: 0;
        min-height: 74px;
        padding: 18px 0 10px;
    }

    .duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list h3,
    .duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list p {
        min-width: 0;
        max-width: none;
        overflow-wrap: normal;
        word-break: normal;
    } }

/* Tablet and compact desktop */

@media (min-width: 577px) and (max-width: 1200px) {
    [data-carousel-layout="fixed-slots"] [data-carousel-slide] {
        flex-basis: calc((100% - 22px) / 2);
    }
    .duorui-home-spaces__columns { padding-right: 0; padding-left: 0; }
    .duorui-home-space { padding-right: 18px; padding-left: 18px; }
    .duorui-home-news { display: block; min-height: 0; }
    .duorui-home-news__left-inner { width: min(var(--dr-content-max), calc(100% - (var(--dr-gutter) * 2))); padding: var(--dr-home-scene-space) 0; }
    .duorui-home-news__right-copy { right: 28px; left: 28px; }
    .duorui-top .wrap {
        grid-template-columns: minmax(130px, auto) minmax(140px, 1fr) 164px minmax(170px, auto);
        grid-template-areas:
            "brand search actions actions"
            "nav nav nav nav";
        gap: 8px 16px;
        min-height: 88px;
    }

    .duorui-top.is-overlay, .duorui-top.is-static { height: 94px; }

    .duorui-brand img {
        width: 104px;
    }

    .duorui-search-form {
        max-width: 280px;
        justify-self: end;
    }

    .duorui-nav-shell {
        display: none;
    }

    .duorui-top.is-menu-open .duorui-nav-shell {
        position: fixed;
        top: calc(var(--dr-header-height) + 10px);
        left: 50%;
        z-index: 92;
        display: block;
        width: min(760px, calc(100vw - 48px));
        max-height: calc(100dvh - var(--dr-header-height) - 24px);
        border: 1px solid rgba(var(--dr-color-primary-rgb), .14);
        border-radius: 8px;
        background: rgba(255, 255, 255, .98);
        box-shadow: 0 24px 62px rgba(10, 30, 50, .18);
        overflow: auto;
        padding: 12px;
        transform: translateX(-50%);
    }

    .duorui-nav-menu {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 7px;
        justify-content: stretch;
    }

    .duorui-nav-item--products {
        grid-column: 1 / -1;
    }

    .duorui-nav-link {
        justify-content: space-between;
        width: 100%;
        min-height: 42px;
        border: 1px solid rgba(var(--dr-color-primary-rgb), .1);
        font-size: var(--dr-font-control);
        background: var(--dr-color-surface);
    }

    .duorui-sub-menu,
    .duorui-nav-link .duorui-nav-caret {
        display: none;
    }

    .duorui-product-mega__grid {
        grid-template-columns: minmax(0, 1fr);
        min-height: 0;
    }

    .duorui-product-mega__items { max-height: none; }

    .duorui-product-mega > .duorui-product-mega__grid > .duorui-product-mega__visual {
        display: none;
    }

    .product-category-grid,
.product-card-grid,
.series-product-grid,
.page-builder-card-grid,
    .detail-recommended-grid,
.recommended-products,
.core-strength-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .core-strength-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .faq-index-hero-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .faq-index-sidebar {
        position: static;
        grid-template-columns: minmax(0, .92fr) minmax(0, 1fr);
        align-items: start;
    }

    .faq-category-nav {
        grid-column: 1 / -1;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .duorui-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .duorui-footer--with-form .duorui-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .duorui-footer-contact-column {
        grid-column: 1 / -1;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
    }

    .duorui-footer--with-form .duorui-footer-contact-column,
    .duorui-footer--with-form .duorui-footer-inquiry-column {
        grid-column: auto;
    }

    .page-builder-section--process_steps .page-builder-card-grid,
    #home-cert-quality .page-builder-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .page-builder-section--process_steps .page-builder-card:nth-child(2n) {
        border-right: 0;
    }

    .page-builder-section--process_steps .page-builder-card:nth-child(n + 3) {
        border-top: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    }
    .duorui-page-solution-detail .dr-solution-machine-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .duorui-page-solution-detail .dr-solution-custom__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .duorui-page-solution-detail .dr-solution-proof-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .duorui-page-solution-detail .dr-section {
        padding: 82px 0 88px;
    }

    .duorui-page-solution-detail .dr-solution-machines--rail .dr-solution-machine-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .duorui-page-solution-detail .dr-solution-story-layout {
        grid-template-columns: minmax(0, 1fr) minmax(300px, .85fr);
        gap: 42px;
    }
    .dr-section {
        padding: 68px 0;
    }

    .duorui-page-product-detail .product-info-tabs__nav {
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
    }

    .duorui-page-product-detail .product-info-tabs__nav::-webkit-scrollbar {
        display: none;
    }

    .duorui-page-product-detail .product-info-tabs__nav button {
        flex: 0 0 auto;
        min-width: max-content;
        scroll-snap-align: start;
        white-space: nowrap;
    }

    .duorui-page-product-detail .product-info-tabs__body {
        padding: 26px 22px;
    }
    .duorui-page-service .service-overview-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }

    .duorui-page-service .service-workflow-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .duorui-page-service .service-checklist-grid,
    .duorui-page-service .service-deliverable-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .duorui-page-news-detail .news-detail-shell {
        grid-template-columns: minmax(0, 1fr);
    }

    .duorui-page-news-detail .news-detail-side {
        position: static;
        grid-row: auto;
    }

    .duorui-page-news-detail .news-detail-related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .duorui-mobile-actions {
        align-items: center;
        gap: 4px;
        grid-area: mobile;
        display: flex;
    }

    .duorui-mobile-action {
        width: 40px;
        height: 40px;
        border: 0;
        border-radius: 50%;
        background: transparent;
        box-shadow: none;
        color: var(--dr-color-primary-hover);
        display: grid;
        place-items: center;
    }

    .duorui-mobile-action:hover,
    .duorui-mobile-action:focus-visible,
    .duorui-top.is-search-open [data-duorui-search-toggle],
    .duorui-top.is-menu-open [data-duorui-menu-toggle] {
        background: rgba(var(--dr-color-primary-rgb), .08);
        color: var(--dr-color-primary);
    }

    .duorui-mobile-action svg {
        width: 19px;
        height: 19px;
        stroke-width: 2.15;
    }

    .duorui-mobile-menu-toggle span {
        width: 20px;
        height: 2px;
        border-radius: 999px;
        margin: 2.5px 0;
        display: block;
        background: currentColor;
    }
    .duorui-page-applications .application-industry-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .duorui-page-applications .application-cta-panel__action {
        grid-column: auto;
        justify-content: flex-end;
    }
    .duorui-page-about .about-profile-panel {
        grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
        gap: 30px 38px;
    }
    .duorui-page-about .about-quality-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .duorui-page-about .about-factory-points {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .duorui-page-about .about-strength-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }
    .duorui-page-about .about-strength-copy {
        max-width: 720px;
    }
    .duorui-page-about .about-capability-band {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
    }
    .duorui-page-about .about-profile-capabilities {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .duorui-page-solution-detail .dr-solution-machines--rail .dr-solution-machine-card { grid-column: auto; } }

/* Tablet */

@media (min-width: 577px) and (max-width: 1200px) {
    .duorui-home-explore { --dr-explore-rail-h: 68px; --dr-explore-copy-side: 62px; --dr-explore-control-size: 44px; --dr-explore-control-edge: 2px; height: clamp(820px, calc(56.25vw + var(--dr-explore-rail-h)), 1040px); }
    .duorui-page-solution-detail .dr-solution-workflow--editorial .dr-solution-workflow__head,
    .duorui-page-solution-detail .dr-solution-proof--editorial > .wrap > .section-head--solution {
        display: grid;
        grid-template-columns: minmax(320px, .72fr) minmax(0, 1.28fr);
        gap: 16px 34px;
        align-items: start;
        max-width: none;
    }

    .duorui-page-solution-detail .dr-solution-workflow--editorial .dr-solution-workflow__head .section-head__body,
    .duorui-page-solution-detail .dr-solution-proof--editorial > .wrap > .section-head--solution .section-head__body {
        max-width: none;
    }

    .duorui-page-solution-detail .dr-solution-custom--story .dr-solution-story-layout {
        grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr);
        column-gap: 42px;
    }
    .duorui-home-explore__rail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .duorui-home-explore__rail button { min-height: 68px; padding: 12px 14px; } }

/* Compact tablet */

@media (max-width: 992px) {
    .duorui-header-actions {
        display: none;
    }

    .duorui-header-social {
        display: none;
    }

    .duorui-page-product-series .series-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .duorui-page-solution-index .solution-index-layout--solo .solution-index-card>a,
    .duorui-page-solution-index .solution-index-layout--solo .solution-index-card>div { grid-template-columns:minmax(250px,.9fr) minmax(0,1.1fr); }
    .duorui-page-solution-index .solution-index-layout--solo .solution-index-card__media img { min-height:300px; }
    .duorui-page-product-index .product-card-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }

    .duorui-page-product-index .product-card-link,
    .duorui-page-product-index .product-card-grid--count-1 .product-card-link {
        grid-template-columns: minmax(280px, 42%) minmax(0, 1fr);
        grid-template-rows: minmax(0, 1fr);
        min-height: 300px;
    }

    .duorui-page-product-index .product-card-media,
    .duorui-page-product-index .product-card-grid--count-1 .product-card-media {
        min-height: 300px;
        aspect-ratio: auto;
    }

    .duorui-page-product-index .product-card-grid--count-1 .product-card-body {
        padding: 28px;
    }

    .duorui-page-search .search-empty-state {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
    }

    .duorui-page-news .news-editorial-lead {
        grid-template-columns: minmax(0, 1fr);
        min-height: 0;
    }

    .duorui-page-news .news-editorial-lead__media {
        aspect-ratio: 16 / 9;
    }

    .duorui-page-news .news-editorial-lead__copy {
        padding: 34px;
    }

    .duorui-page-product-detail .product-intro {
        grid-template-columns: minmax(0, 1fr);
        gap: 34px;
    }
    .duorui-home-proof { grid-template-columns: minmax(0, 1fr); grid-template-areas: "media" "body" "gallery"; min-height: 0; }
    .duorui-home-proof--no-media { grid-template-areas: "body" "gallery"; }
    .duorui-home-proof__media { min-height: 460px; }
    .duorui-home-proof__body { padding: 72px var(--dr-gutter); }
    .duorui-home-proof__gallery { grid-column: auto; padding-right: var(--dr-gutter); padding-left: var(--dr-gutter); }
    .section-head--split { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .section-head--split > .section-head__copy,
    .section-head--split > .section-head__body { grid-column: 1; grid-row: auto; }
    .section-head:not(.section-head--split):not(.section-head--compact) { grid-template-columns: minmax(0, 1fr); }
    .section-head:not(.section-head--split):not(.section-head--compact) > .section-head__body,
    .section-head:not(.section-head--split):not(.section-head--compact) > a { grid-column: 1; grid-row: auto; }
    .duorui-home-quality__carousel { min-height: 520px; margin-top: 42px; }
    .duorui-page-about .about-profile-panel,
    .duorui-page-about .about-factory-layout {
        grid-template-columns: minmax(0, 1fr);
    }
    .duorui-page-about .about-profile-copy,
    .duorui-page-about .about-profile-media {
        grid-column: 1;
    }
    .duorui-page-about .about-profile-media {
        grid-row: auto;
        width: min(100%, 680px);
    }
    .duorui-page-solution-detail .dr-solution-workflow--editorial .dr-solution-workflow__head,
    .duorui-page-solution-detail .dr-solution-proof--editorial > .wrap > .section-head--solution {
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
        align-items: start;
    }

    .duorui-page-solution-detail .dr-solution-custom--story .dr-solution-story-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 34px;
    }

    .duorui-page-solution-detail .dr-solution-custom--story .dr-solution-story-media {
        width: min(100%, 760px);
    } }

/* Compact tablet only */

@media (min-width: 577px) and (max-width: 992px) {
    .duorui-page-home .duorui-home-spaces {
        min-height: 0;
        padding: 52px 0 0;
        background: var(--dr-home-surface-soft);
        color: var(--dr-color-heading);
    }
    .duorui-page-home .duorui-home-spaces::after,
    .duorui-page-home .duorui-home-spaces__backdrop { display: none; }
    .duorui-page-home .duorui-home-spaces__intro {
        padding: 0 0 24px;
        text-align: left;
    }
    .duorui-page-home .duorui-home-spaces__intro h2 { color: var(--dr-color-heading); }
    .duorui-page-home .duorui-home-spaces__intro p { margin: 12px 0 0; color: var(--dr-color-muted); }
    .duorui-page-home .duorui-home-spaces__columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
        padding: 0 var(--dr-gutter) 52px;
    }
    .duorui-page-home .duorui-home-space {
        grid-template-columns: minmax(0, 1fr);
        padding: 0 0 18px;
        border: 1px solid var(--dr-color-divider);
        border-radius: 6px;
        background: var(--dr-color-white);
        box-shadow: 0 8px 22px rgba(var(--dr-shadow-rgb), .06);
        color: var(--dr-color-heading);
    }
    .duorui-page-home .duorui-home-space:hover,
    .duorui-page-home .duorui-home-space:focus-visible,
    .duorui-page-home .duorui-home-space:focus-within,
    .duorui-page-home .duorui-home-space.is-active {
        border-color: rgba(var(--dr-color-primary-rgb), .4);
        background: var(--dr-color-white);
        color: var(--dr-color-heading);
    }
    .duorui-page-home .duorui-home-space__media { display: block; aspect-ratio: 16 / 9; margin: 0; overflow: hidden; background: var(--dr-color-surface); }
    .duorui-page-home .duorui-home-space__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
    .duorui-page-home .duorui-home-space__content { position: relative; inset: auto; transform: none; }
    .duorui-page-home .duorui-home-space__number,
    .duorui-page-home .duorui-home-space__rule,
    .duorui-page-home .duorui-home-space h3,
    .duorui-page-home .duorui-home-space p,
    .duorui-page-home .duorui-home-space a { margin-right: 18px; margin-left: 18px; }
    .duorui-page-home .duorui-home-space__number { margin-top: 16px; margin-bottom: 8px; color: var(--dr-color-primary-hover); }
    .duorui-page-home .duorui-home-space__rule { width: 100%; margin-top: 12px; background: var(--dr-color-line); opacity: 1; transform: none; }
    .duorui-page-home .duorui-home-space h3 { min-height: 0; color: var(--dr-color-heading); font-size: var(--dr-font-card-title); line-height: 1.22; }
    .duorui-page-home .duorui-home-space p,
    .duorui-page-home .duorui-home-space a { max-height: none; margin-top: 12px; color: var(--dr-color-muted); opacity: 1; visibility: visible; }
    .duorui-page-home .duorui-home-space a { color: var(--dr-color-primary-hover); }
    .duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 28px;
    } }

/* Small tablet */

@media (max-width: 992px) {
    .duorui-home__section { min-height: 0; }
    .duorui-home-hero:not(.duorui-home-hero--flat-banner) { min-height: 700px; }
    .duorui-home-hero:not(.duorui-home-hero--flat-banner) .duorui-home-hero__content { min-height: 700px; padding-top: 112px; }
    .duorui-home-hero__copy { width: min(620px, 78vw); }
    .duorui-home-hero__slide img {
        padding: 190px 24px 116px 28%;
        object-position: right bottom;
    }
    .duorui-home-explore__slide > .duorui-home-explore__machine-image,
    .duorui-home-explore__slide > img[data-duorui-image-fit="contain"] {
        padding: 0;
        object-fit: contain;
        object-position: right top;
    }
    .duorui-home-spaces { min-height: 0; padding: 72px 0 0; background: var(--dr-home-surface-warm); color: var(--dr-color-heading); }
    .duorui-home-spaces__intro { padding-top: 0; text-align: center; }
    .duorui-home-spaces__intro h2 { color: var(--dr-color-heading); }
    .duorui-home-spaces__intro p { margin-right: auto; margin-left: auto; color: var(--dr-color-muted); }
    .duorui-home-spaces__columns { position: relative; inset: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 0; padding: 0 var(--dr-gutter) 56px; }
    .duorui-home-spaces__columns::before { display: none; }
    .duorui-home-space { display: grid; grid-template-columns: minmax(0, 1fr); min-height: 0; padding: 0 16px 22px; border: 1px solid var(--dr-color-divider); border-radius: var(--dr-radius); background: var(--dr-color-white); box-shadow: 0 12px 26px rgba(10, 30, 50, .08); color: var(--dr-color-heading); }
    .duorui-home-space:first-child,
    .duorui-home-space:last-child { border-left: 1px solid var(--dr-color-divider); border-right: 1px solid var(--dr-color-divider); }
    .duorui-home-space__content,
    .duorui-home-space > .duorui-home-space__content { position: relative; top: auto; right: auto; left: auto; transform: none; }
    .duorui-home-space h3 { color: var(--dr-color-heading); }
    .duorui-home-space p,
    .duorui-home-space a { max-height: none; margin-top: 14px; opacity: 1; visibility: visible; transform: none; }
    .dr-solution-inquiry__layout { grid-template-columns: 1fr; }
    .dr-solution-inquiry__list { columns: 1; }
    .dr-solution-inquiry__action { justify-self: start; }
    .duorui-page-solution-index .solution-index-aside { overflow-x: auto; padding-right: 16px; }
    .duorui-page-solution-index .solution-index-grid { grid-template-columns: 1fr; }
    .duorui-page-solution-index .solution-index-card > a,
    .duorui-page-solution-index .solution-index-card > div { grid-template-columns: 1fr; min-height: 0; }
    .duorui-page-solution-index .solution-index-card__media { aspect-ratio: 16 / 9; min-height: 0; }
    .duorui-page-solution-index .solution-index-card > a > div,
    .duorui-page-solution-index .solution-index-card > div { padding: 24px; }
    .duorui-page-applications .application-industry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .duorui-page-faq-index .faq-index-layout { grid-template-columns: 1fr; }
    .duorui-page-faq-index .faq-index-sidebar { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .duorui-page-search .search-results { grid-template-columns: 1fr; }
    .duorui-page-product-detail .product-intro,
    .duorui-page-news .news-editorial-layout { grid-template-columns: 1fr; }
    .duorui-page-product-detail .product-summary { position: static; max-width: 820px; padding: 0; }
    .duorui-page-news .news-guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .duorui-page-news .news-guide-card { min-height: 0; }
    .duorui-page-news .news-guide-card__media { aspect-ratio: 1.35; height: auto; }
    .duorui-page-service .service-overview-layout,
    .duorui-page-contact .contact-layout { grid-template-columns: 1fr; gap: 28px; }
    .duorui-page-service .service-workflow-steps,
    .duorui-page-service .service-checklist-grid,
    .duorui-page-service .service-deliverable-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Mobile */

@media (max-width: 768px) {
    [data-carousel-layout="fixed-slots"] [data-carousel-slide] {
        flex-basis: 100%;
    }
    .duorui-page-product-series .series-products--archive { padding-top:52px; padding-bottom:64px; }
    .duorui-page-product-series .series-product-grid { grid-template-columns:minmax(0,1fr); gap:14px; }
    .duorui-page-product-series .series-product-media { padding:13px; }
    .duorui-page-product-series .series-product-content { gap:12px; }
    .duorui-page-solution-index .solution-index-layout--solo .solution-index-card__media { aspect-ratio:16/9; padding:12px; }
    .duorui-page-solution-index .solution-index-layout--solo .solution-index-card__media img { min-height:0; }
    .duorui-page-solution-detail .dr-solution-machines { position:relative; overflow:hidden; contain:paint; }
    .duorui-page-search .search-hero {
        min-height: 330px;
    }

    .duorui-page-search .search-hero__copy h1 {
        font-size: var(--dr-font-page-title);
    }

    .duorui-page-search .search-hero__copy p {
        font-size: var(--dr-font-body-small);
        line-height: 1.55;
    }

    .duorui-page-search .search-section {
        padding-bottom: 48px;
    }

    .duorui-page-search .search-layout {
        gap: 14px;
        margin-top: -28px;
    }

    .duorui-page-search .search-page-form {
        grid-template-columns: minmax(0, 1fr);
        min-height: 0;
    }

    .duorui-page-search .search-page-form input,
    .duorui-page-search .search-page-form button {
        min-height: 56px;
    }

    .duorui-page-search .search-page-form button {
        min-width: 0;
    }

    .duorui-page-search .search-empty-state {
        gap: 18px;
        padding: 24px 18px;
    }

    .duorui-page-search .search-empty-links {
        grid-template-columns: minmax(0, 1fr);
    }

    .duorui-page-news .news-library-section {
        padding-top: 42px;
        padding-bottom: 52px;
    }

    .duorui-page-news .news-editorial-lead__copy {
        padding: 22px 18px 24px;
    }

    .duorui-page-news .news-editorial-lead p {
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    .duorui-page-product-detail .product-intro {
        gap: 24px;
    }

    .duorui-page-product-detail .product-summary h1 {
        max-width: 100%;
        line-height: 1.08;
    }

    .duorui-page-product-detail .product-summary > .product-summary__lead {
        font-size: var(--dr-font-body-small);
        line-height: 1.6;
    }

    .duorui-page-product-index .product-filter-section {
        padding: 20px 0;
    }

    .duorui-page-product-index .product-archive-nav .filter-chip-list {
        display: flex;
        flex-wrap: nowrap;
        gap: 1px;
        overflow-x: auto;
        overflow-y: hidden;
        padding-right: 16px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .duorui-page-product-index .product-archive-nav .filter-chip-list::-webkit-scrollbar {
        display: none;
    }

    .duorui-page-product-index .product-archive-nav .filter-chip-list a {
        flex: 0 0 min(72vw, 240px);
        width: auto;
        min-height: 52px;
        scroll-snap-align: start;
    }

    .duorui-page-product-index .product-archive-section {
        padding: 42px 0;
    }

    .duorui-page-product-index .product-archive-title {
        margin-bottom: 18px;
        font-size: var(--dr-font-section-title);
    }

    .duorui-page-product-index .product-card-grid {
        gap: 12px;
    }

    .duorui-page-product-index .product-card-link,
    .duorui-page-product-index .product-card-grid--count-1 .product-card-link {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto minmax(0, 1fr);
        min-height: 0;
    }

    .duorui-page-product-index .product-card-media,
    .duorui-page-product-index .product-card-grid--count-1 .product-card-media {
        min-height: 0;
        height: auto;
        aspect-ratio: 16 / 10;
        border-right: 0;
        border-bottom: 1px solid rgba(var(--dr-color-primary-rgb), .08);
        padding: 12px;
    }

    .duorui-page-product-index .product-card-body,
    .duorui-page-product-index .product-card-grid--count-1 .product-card-body {
        min-width: 0;
        gap: 9px;
        align-content: start;
        padding: 18px 16px 20px;
    }

    .duorui-page-product-index .product-card-body h3 {
        font-size: var(--dr-font-body);
        line-height: 1.25;
    }

    .duorui-page-product-index .product-card-body > p {
        font-size: var(--dr-font-meta);
        line-height: 1.46;
        -webkit-line-clamp: 2;
    }

    .duorui-page-product-index .spec-icon-row,
    .duorui-page-product-index .product-card-grid--count-1 .spec-icon-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
        padding-top: 10px;
    }

    .duorui-page-product-index .spec-icon-row span:nth-child(n + 3) {
        display: none;
    }

    .duorui-page-product-index .spec-icon-row span {
        font-size: var(--dr-font-caption);
    }

    .duorui-page-product-index .product-card-action {
        font-size: var(--dr-font-meta);
    }

    .product-category-section {
        padding: 42px 0 28px;
    }

    .product-category-grid {
        display: flex;
        gap: 12px;
        overflow-x: auto;
        overflow-y: hidden;
        padding-right: 16px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .product-category-grid::-webkit-scrollbar {
        display: none;
    }

    .product-category-card {
        flex: 0 0 min(82vw, 310px);
        scroll-snap-align: start;
    }

    .product-category-card__body {
        gap: 7px;
        padding: 16px;
    }

    .product-category-card h2,
    .product-category-card h3 {
        font-size: var(--dr-font-body);
        line-height: 1.25;
    }

    .product-category-card p {
        font-size: var(--dr-font-meta);
        line-height: 1.42;
        -webkit-line-clamp: 2;
    }

    .product-category-card__arrow {
        width: 30px;
        height: 30px;
    }

    .duorui-home { overflow: clip; }
    .duorui-home__section { min-height: 0; scroll-snap-align: none; }
    .duorui-home-hero__copy { width: 100%; padding-inline: 0; }
    .duorui-home-hero--flat-banner .duorui-home-hero__copy { width: 100%; padding-inline-start: 0; }
    .duorui-home-hero__copy > p { font-size: var(--dr-font-body); line-height: 1.55; }
    .duorui-home-hero:not(.duorui-home-hero--flat-banner) .duorui-home-hero__slide img {
        padding: 240px 12px 88px;
        object-position: center bottom;
        filter: drop-shadow(0 18px 22px rgba(10, 18, 22, .2));
    }
    .duorui-home-hero__veil { background: var(--dr-color-overlay-hero-mobile); }
    .duorui-home-hero__progress i { width: 62px; }
    .duorui-home-explore__slide > .duorui-home-explore__machine-image,
    .duorui-home-explore__slide > img[data-duorui-image-fit="contain"] {
        padding: 0;
        object-fit: cover;
        object-position: 78% center;
        opacity: 1;
    }
    .duorui-home-explore__shade {
        background:
            var(--dr-home-explore-wash-mobile),
            linear-gradient(180deg, transparent 62%, rgba(243, 248, 251, .62) 100%);
    }
    .duorui-home-explore__copy p { font-size: var(--dr-font-body-small); }
    .duorui-home-explore__controls span { right: 16px; bottom: 72px; }
    .duorui-home-news { display: block; width: 100%; min-height: 0; }
    .duorui-home-news__left-inner { width: min(100%, calc(100% - 32px)); padding: 68px 0 62px; }
    .duorui-home-news__left h2 { font-size: var(--dr-font-section-title); }
    .duorui-home-news__list { margin-top: 26px; }
    .duorui-home-news-item { grid-template-columns: 92px minmax(0, 1fr); gap: 12px; min-height: 88px; }
    .duorui-home-news-item__copy strong { font-size: var(--dr-font-body-small); }
    .duorui-home-news__right-copy { right: 16px; bottom: 58px; left: 16px; }
    .duorui-home-inquiry__inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; min-height: 0; padding: 30px 16px 32px; }
    .duorui-home-inquiry h2 { font-size: var(--dr-font-card-title); }
    .duorui-home-inquiry p { margin-top: 10px; }
    .duorui-home-inquiry .duorui-home-button { width: 100%; margin-top: 22px; }
    .duorui-home-proof__media { min-height: 320px; }
    .duorui-home-proof__body { padding: 58px 16px 64px; }
    .duorui-home-proof__summary { font-size: var(--dr-font-body-small); }
    .duorui-home-proof__reason-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .duorui-home-proof__gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 8px 16px 0; }
    .duorui-home-proof__gallery figure,
    .duorui-home-proof__gallery img { min-height: 135px; }
    .duorui-home-proof__gallery figcaption { right: 16px; bottom: 16px; left: 16px; padding-top: 10px; }
    .duorui-home-proof__gallery figcaption p { max-height: 8em; opacity: 1; transform: none; }
    .duorui-home-quality { padding-top: 48px; padding-bottom: 64px; }
    .duorui-home-quality__head { padding-right: 0; padding-left: 0; }
    .duorui-home-quality__head h2 { font-size: var(--dr-font-section-title); }
    .duorui-home-quality__carousel { min-height: clamp(360px, 86vw, 520px); margin-top: 24px; }
    .duorui-home-quality__carousel-slide h3 { right: 16px; bottom: 136px; left: 16px; max-width: calc(100% - 32px); font-size: var(--dr-font-section-title); }
    .duorui-home-quality__carousel-slide p { right: 16px; bottom: 84px; left: 16px; max-width: calc(100% - 32px); font-size: var(--dr-font-body-small); }
    .duorui-home-quality__carousel-controls { right: 16px; bottom: 18px; left: 16px; }
    .duorui-home-quality__carousel-controls > span[data-carousel-progress] { width: 120px; }
    .duorui-page-solution-detail .dr-solution-flow-columns,
    .duorui-page-solution-detail .dr-solution-custom__list,
    .duorui-page-solution-detail .dr-solution-proof-list {
        grid-template-columns: minmax(0, 1fr);
    }

    .duorui-page-solution-detail .dr-solution-flow-group {
        padding: 20px 18px 16px;
    }

    .duorui-page-solution-detail .dr-solution-flow-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 12px;
    }

    .duorui-page-solution-detail .dr-solution-proof-list article,
    .duorui-page-solution-detail .dr-solution-proof-list article:first-child {
        min-height: 0;
    }
    .duorui-page-solution-detail .dr-section {
        padding: 58px 0 64px;
    }

    .duorui-page-solution-detail .section-head--solution {
        margin-bottom: 28px;
    }

    .duorui-page-solution-detail .dr-solution-machines--rail .dr-solution-machine-card h3 {
        padding: 17px 18px 4px;
        font-size: var(--dr-font-lead);
    }

    .duorui-page-solution-detail .dr-solution-machines--rail .dr-solution-machine-card em {
        padding: 0 18px 20px;
        font-size: var(--dr-font-meta);
    }

    .duorui-page-solution-detail .dr-solution-flow-columns--editorial {
        grid-template-columns: minmax(0, 1fr);
        gap: 34px;
    }

    .duorui-page-solution-detail .dr-solution-workflow__map { margin-top: 30px; }
    .duorui-page-solution-detail .dr-solution-workflow__media { padding: 12px 12px 14px; width: 100%; min-width: 0; }
    .duorui-page-solution-detail .dr-solution-flow-columns--editorial .dr-solution-flow-group { padding: 22px 18px 18px; }

    .duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list article,
    .duorui-page-solution-detail .dr-solution-proof--editorial .dr-solution-proof-list article:first-child {
        padding: 17px 0 0;
    }

    .duorui-page-solution-detail .dr-solution-story-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 34px;
    }

    .duorui-page-solution-detail .dr-solution-story-media {
        aspect-ratio: 16 / 10;
    }
    .dr-section {
        padding: 52px 0;
    }

    .duorui-social-row {
        flex-wrap: wrap;
        max-width: 100%;
    }

    .duorui-nav-shell {
        width: min(calc(100vw - 24px), 420px);
        max-height: calc(100dvh - var(--dr-header-height) - 18px);
        overflow-y: auto;
        padding: 10px;
    }

    .duorui-top:not(.is-menu-open) .duorui-nav-shell {
        display: none;
    }

    .duorui-nav-link {
        min-height: 42px;
        padding: 0 10px;
        font-size: var(--dr-font-control);
    }

    .duorui-hero,
    .duorui-hero--compact {
        min-height: 300px;
    }

    .duorui-hero__content {
        padding-top: 36px;
        padding-bottom: 36px;
    }

    .duorui-hero p,
    .duorui-hero .summary {
        font-size: var(--dr-font-body);
        line-height: 1.56;
    }

    .section-head {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
        gap: 12px;
        margin-bottom: 22px;
    }

    .section-head h2 {
        min-width: 0;
    }

    .section-head__body {
        grid-column: 1;
        grid-row: auto;
        max-width: none;
        margin-top: 0;
    }

    .section-head a {
        grid-column: 1;
        grid-row: auto;
        min-width: 0;
        min-height: var(--dr-button-h);
        justify-self: start;
        padding-right: 12px;
        padding-left: 12px;
        white-space: nowrap;
    }

    .page-builder-inquiry {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
        padding: 28px 24px;
    }

    .page-builder-inquiry .cta-band__icon,
    .page-builder-inquiry .cta-band__copy,
    .page-builder-inquiry .cta-band__list,
    .page-builder-inquiry .cta-band__actions {
        grid-column: 1;
        grid-row: auto;
    }

    .page-builder-inquiry .cta-band__list {
        padding-left: 20px;
    }

    .page-builder-inquiry h2 {
        font-size: var(--dr-font-h2);
    }

    .page-builder-inquiry .button {
        width: 100%;
        min-width: 0;
    }

    .page-builder-inquiry-actions {
        width: 100%;
        justify-content: stretch;
    }

    .page-wide-body-copy {
        padding-left: 18px;
        font-size: var(--dr-font-body);
    }

    .search-page-form {
        grid-template-columns: minmax(0, 1fr);
    }

    .solution-hero--full {
        min-height: 420px;
    }

    .duorui-page-product-detail .parameter-card {
        padding: 0;
        margin-top: 18px;
    }

    .duorui-page-product-detail .parameter-card .fact-grid--parameters {
        grid-template-columns: minmax(0, 1fr);
    }

    .duorui-page-product-detail .fact-item--parameter {
        grid-template-columns: 24px minmax(0, 1fr);
        padding: 11px 12px;
    }

    .duorui-page-product-detail .fact-name {
        font-size: var(--dr-font-body-small);
    }

    .duorui-page-product-detail .fact-value {
        font-size: var(--dr-font-body-small);
        line-height: 1.42;
    }

    .duorui-page-product-detail .technical-parameters-content {
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
    }

    .duorui-page-product-detail .product-related-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }

    .duorui-page-product-detail .product-related-card a {
        grid-template-columns: 112px minmax(0, 1fr);
        grid-template-rows: auto auto;
        gap: 4px 13px;
        align-items: center;
        min-height: 0;
        border-radius: 8px;
    }

    .duorui-page-product-detail .product-related-card a::after {
        right: 12px;
        bottom: 12px;
        width: 26px;
        height: 26px;
        font-size: var(--dr-font-card-title);
    }

    .duorui-page-product-detail .product-related-card img {
        grid-row: 1 / 3;
        width: 112px;
        height: 84px;
        aspect-ratio: auto;
        border-right: 1px solid rgba(var(--dr-color-primary-rgb), .1);
        border-bottom: 0;
    }

    .duorui-page-product-detail .product-related-card h3,
    .duorui-page-product-detail .product-related-card strong {
        padding: 14px 42px 0 0;
        font-size: var(--dr-font-body-small);
        line-height: 1.22;
    }

    .duorui-page-product-detail .product-related-card span {
        grid-column: 2;
        display: -webkit-box;
        overflow: hidden;
        padding: 0 42px 14px 0;
        font-size: var(--dr-font-meta);
        line-height: 1.42;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .product-detail-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .product-detail-actions .button,
    .product-detail-actions button {
        width: 100%;
    }

    .spec-icon-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .page-builder-section--process_steps .page-builder-card-grid,
    .core-strength-grid,
    #home-cert-quality .page-builder-card-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .page-builder-section--process_steps .page-builder-card {
        border-right: 0;
        border-bottom: 1px solid rgba(var(--dr-color-primary-rgb), .12);
    }

    .page-builder-section--process_steps .page-builder-card:last-child {
        border-bottom: 0;
    }

    .page-builder-section--process_steps .page-builder-card::after {
        display: none;
    }

    .news-detail-main {
        padding: 36px 0 48px;
    }

    .news-detail-body {
        padding: 24px 20px 28px;
        font-size: var(--dr-font-body-small);
        line-height: 1.7;
    }

    .news-detail-side {
        position: static;
    }

    .fact-grid--parameters,
    .parameter-card .fact-grid--parameters {
        grid-template-columns: minmax(0, 1fr);
    }

    .parameter-card {
        margin-top: 18px;
        padding: 18px;
    }

    .parameter-card hr {
        margin: 16px 0;
    }

    .fact-item--parameter {
        grid-template-columns: 26px minmax(0, 1fr);
        column-gap: 10px;
        padding: 12px;
    }

    .fact-icon svg {
        width: 20px;
        height: 20px;
    }

    .fact-name,
    .fact-value {
        font-size: var(--dr-font-body-small);
        line-height: 1.45;
    }

    .product-intro {
        padding-top: 34px;
    }

    .product-card-media,
    .series-product-media {
        min-height: 116px;
    }

    [data-carousel-slide],
    [data-carousel-layout="fixed-slots"] [data-carousel-slide] {
        flex-basis: 82%;
    }

    .product-gallery,
    .duorui-page-product-detail .product-gallery {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .gallery-stage,
    .duorui-page-product-detail .gallery-stage {
        min-height: 0;
        aspect-ratio: 4 / 3;
        padding: 0;
    }

    .thumbnail-rail,
    .duorui-page-product-detail .thumbnail-rail {
        grid-template-columns: 40px minmax(0, 1fr) 40px;
        grid-template-rows: auto;
        align-items: center;
        gap: 7px;
        max-width: 100%;
        border-left: 0;
        padding-left: 0;
        overflow: hidden;
    }

    .thumbnail-rail > button,
    .duorui-page-product-detail .thumbnail-rail > button {
        width: 40px;
        height: 40px;
        border-radius: 10px;
    }

    .thumbnail-rail > button:first-child svg,
    .thumbnail-rail > button:last-child svg {
        transform-origin: center;
    }

    .thumbnail-rail:not([data-carousel-thumbnails]) > button:first-child svg,
    .thumbnail-rail:not([data-carousel-thumbnails]) > button:last-child svg {
        transform: rotate(-90deg);
    }

    .duorui-page-product-detail .thumbnail-rail > button:first-child svg,
    .duorui-page-product-detail .thumbnail-rail > button:last-child svg {
        transform: none;
    }

    .carousel-thumb-strip,
    .duorui-page-product-detail .thumbnail-rail .carousel-thumb-strip {
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: 75px;
        min-width: 0;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        gap: 7px;
        padding-bottom: 2px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .carousel-thumb-strip::-webkit-scrollbar {
        display: none;
    }

    .carousel-thumb,
    .duorui-page-product-detail .thumbnail-rail .carousel-thumb {
        width: 75px;
        min-width: 75px;
        height: 58px;
        min-height: 0;
        aspect-ratio: auto;
        padding: 0;
        scroll-snap-align: start;
    }

    .carousel-thumb img {
        height: 100%;
    }

    .technical-parameters-content table {
        min-width: 540px;
    }

    .technical-parameters-content th,
    .technical-parameters-content td {
        padding: 12px 12px;
        font-size: var(--dr-font-body-small);
    }

    .faq-index-hero {
        min-height: 300px;
    }

    .faq-index-section {
        padding: 36px 0;
    }

    .faq-index-sidebar,
    .faq-category-nav {
        grid-template-columns: minmax(0, 1fr);
    }

    .faq-guide-card,
    .faq-search-form,
    .faq-index-content-head {
        padding: 18px;
    }

    .faq-category-summary {
        display: none;
    }

    .faq-accordion-question {
        grid-template-columns: minmax(0, 1fr) 30px;
        gap: 12px;
        min-height: 64px;
        padding: 15px 16px;
    }

    .faq-accordion-question strong {
        font-size: var(--dr-font-body-small);
        line-height: 1.34;
    }

    .faq-accordion-question i {
        width: 30px;
        height: 30px;
    }

    .faq-accordion-answer {
        padding: 0 16px 18px;
    }

    .duorui-modal-panel {
        padding: 0;
    }

    .faq-search-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .social-icon-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .filter-chip-list a,
    .series-tabs a,
    .faq-category-nav a {
        width: 100%;
        justify-content: space-between;
    }

    .core-strength-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .duorui-page-product-detail .detail-main {
        padding: 32px 0 48px;
        background:
            linear-gradient(180deg, var(--dr-color-surface) 0, var(--dr-color-surface) 540px, var(--dr-color-white) 540px, var(--dr-color-white) 100%);
    }

    .duorui-page-product-detail .product-info-tabs {
        margin-top: 32px;
    }

    .duorui-page-product-detail .product-info-tabs__nav button {
        min-height: 48px;
        padding: 0 16px;
        font-size: var(--dr-font-body-small);
    }

    .duorui-page-product-detail .product-info-tabs__nav button::after {
        right: 14px;
        left: 14px;
    }

    .duorui-page-product-detail .product-info-tabs__body {
        padding: 22px 18px 24px;
    }

    .duorui-page-product-detail .product-info-tabs__panel h2 {
        font-size: var(--dr-font-card-title);
    }

    .duorui-page-product-detail .detail-rich-copy {
        font-size: var(--dr-font-body-small);
        line-height: 1.62;
    }

    .duorui-page-product-detail .detail-rich-copy p {
        margin-bottom: 16px;
    }

    .duorui-page-product-detail .product-related-section {
        margin-top: 30px;
        padding: 24px 14px 26px;
    }

    .duorui-page-product-detail .product-related-head {
        margin-bottom: 14px;
        padding-bottom: 12px;
    }

    .duorui-page-product-detail .product-related-head h2 {
        font-size: var(--dr-font-card-title);
    }
    .duorui-page-applications .section {
        padding-top: 42px;
        padding-bottom: 42px;
    }

    .duorui-page-applications .application-industry-card__media img {
        min-height: 0;
    }

    .duorui-page-applications .application-cta-panel h2 {
        font-size: var(--dr-font-h2);
    }

    .duorui-page-applications .application-cta-button {
        width: 100%;
        min-width: 0;
    }

    .duorui-page-service .section {
        padding-top: 42px;
        padding-bottom: 42px;
    }

    .duorui-page-service .service-hero .duorui-hero__media img {
        object-position: 58% center;
    }

    .duorui-page-service .service-hero .duorui-hero__media::after {
        background: linear-gradient(90deg, rgba(var(--dr-color-deep-rgb), .9) 0%, rgba(var(--dr-color-deep-rgb), .68) 62%, rgba(var(--dr-color-deep-rgb), .18) 100%), linear-gradient(0deg, rgba(var(--dr-color-deep-rgb), .42), rgba(var(--dr-color-deep-rgb), .12));
    }

    .duorui-page-service .service-overview-section,
    .duorui-page-service .service-workflow-section,
    .duorui-page-service .service-project-section,
    .duorui-page-service .service-faq-section {
        padding-top: 46px;
        padding-bottom: 46px;
    }

    .duorui-page-service .service-overview-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
    }

    .duorui-page-service .service-overview-copy h2 {
        font-size: var(--dr-font-section-title);
        line-height: 1.04;
    }

    .duorui-page-service .service-overview-copy p {
        font-size: var(--dr-font-body-small);
        line-height: 1.58;
    }

    .duorui-page-service .service-overview-section {
        background: var(--dr-color-white);
    }

    .duorui-page-service .service-overview-media {
        min-height: 260px;
    }

    .duorui-page-service .service-workflow-steps {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }

    .duorui-page-service .service-workflow-steps li {
        min-height: 0;
        padding: 20px;
    }

    .duorui-page-service .service-step-number {
        top: 18px;
        right: 18px;
        font-size: var(--dr-font-step-number);
    }

    .duorui-page-service .service-workflow-steps__media {
        width: 54px;
        height: 54px;
        margin-bottom: 22px;
        border-radius: 16px;
    }

    .duorui-page-service .service-workflow-steps h3 {
        margin: 0;
        font-size: var(--dr-font-body-small);
    }

    .duorui-page-service .service-workflow-steps p {
        font-size: var(--dr-font-meta);
    }

    .duorui-page-service .service-checklist-grid,
    .duorui-page-service .service-deliverable-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .duorui-page-service .service-checklist-card {
        min-height: 0;
        padding: 18px;
    }

    .duorui-page-service .service-checklist-card h3 {
        margin-bottom: 10px;
        font-size: var(--dr-font-body-small);
    }

    .duorui-page-service .service-checklist-card p {
        font-size: var(--dr-font-meta);
    }

    .duorui-page-service .service-deliverable-panel {
        margin-top: 34px;
    }

    .duorui-page-service .service-deliverable-card img {
        display: block;
        width: 100%;
        height: auto;
    }

    .duorui-page-service .service-deliverable-card div {
        padding: 18px;
    }

    .duorui-page-service .service-deliverable-card h3 {
        font-size: var(--dr-font-body);
    }

    .duorui-page-service .service-deliverable-card p {
        font-size: var(--dr-font-meta);
    }

    .duorui-page-service .faq-accordion--service {
        box-shadow: none;
        border: 1px solid var(--dr-color-line);
    }

    .duorui-page-contact .contact-form,
    .duorui-page-contact .contact-info-panel {
        padding: 22px 18px;
    }

    .duorui-page-contact .contact-decision-panel {
        margin-top: 24px;
        padding: 22px 18px;
    }
    .duorui-page-contact .contact-decision-grid,
    .duorui-page-contact .contact-decision-card-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .duorui-page-contact .contact-decision-grid {
        gap: 24px;
    }
    .duorui-page-contact .contact-decision-group + .contact-decision-group {
        padding-top: 24px;
        padding-left: 0;
        border-top: 1px solid rgba(var(--dr-color-primary-rgb), .12);
        border-left: 0;
    }

    .duorui-page-contact .contact-map-head {
        padding: 20px 18px 16px;
    }

    .duorui-page-contact .map-panel--google,
    .duorui-page-contact .map-panel--google iframe {
        min-height: 240px;
        height: 240px;
    }

    .duorui-page-contact .contact-submit {
        width: 100%;
        min-width: 0;
    }

    .duorui-page-solution-index .solution-index-layout,
    .duorui-page-solution-index .solution-index-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .duorui-page-solution-index .solution-index-hero {
        padding-top: 58px;
        padding-bottom: 46px;
        min-height: 300px;
    }

    .duorui-page-solution-index .solution-index-card > a > div,
    .duorui-page-solution-index .solution-index-card > div {
        padding: 18px;
    }

    .duorui-page-news .section,
    .duorui-page-news-detail .section {
        padding-top: 42px;
        padding-bottom: 42px;
    }

    .duorui-page-news .news-card-meta {
        margin-bottom: 10px;
    }

    .duorui-page-news .news-guide-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
    }

    .duorui-page-news .news-guide-card {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto;
    }

    .duorui-page-news .news-guide-card__media {
        min-height: 0;
        aspect-ratio: 16 / 10;
    }

    .duorui-page-news .news-guide-card__copy {
        padding: 16px;
    }

    .duorui-page-news .news-guide-card h3 {
        font-size: var(--dr-font-body-small);
        line-height: 1.26;
    }

    .duorui-page-news .news-guide-card p {
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .duorui-page-news .news-guide-card__link {
        margin-top: 10px;
    }

    .duorui-page-news-detail .news-detail-body {
        padding: 24px 18px 28px;
        font-size: var(--dr-font-body-small);
        line-height: 1.68;
    }

    .duorui-page-news-detail .news-detail-body h2 {
        margin-top: 26px;
        font-size: var(--dr-font-lead);
        line-height: 1.28;
    }

    .duorui-page-news-detail .news-detail-side {
        padding: 18px;
    }

    .duorui-page-news-detail .news-detail-related-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .duorui-page-news-detail .news-detail-related-card {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto minmax(0, 1fr);
        gap: 0;
    }

    .duorui-page-news-detail .news-detail-related-card img {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 10;
    }

    .duorui-page-news-detail .news-related-card-body {
        padding: 14px;
    }

    .duorui-page-news-detail .news-related-card-body h3 {
        font-size: var(--dr-font-body-small);
    }

    .duorui-page-news-detail .news-related-card-body p {
        display: none;
    }

    .duorui-page-solution-detail .section {
        padding-top: 42px;
        padding-bottom: 42px;
    }

    .duorui-page-solution-detail .solution-hero--full {
        min-height: 470px;
    }
    .duorui-modal {
        padding: 14px;
    }

    .duorui-modal-intro {
        padding: 22px 20px 17px;
    }

    .duorui-modal-intro h3 {
        margin-right: 34px;
        font-size: var(--dr-font-lead);
    }

    .duorui-modal-intro p {
        font-size: var(--dr-font-body-small);
    }

    .duorui-modal-form--compact {
        padding: 18px 20px 22px;
    }

    .duorui-page-service .service-workflow-steps li::after {
        display: none;
    }

    .search-empty-links {
        grid-template-columns: minmax(0, 1fr);
    }
    .duorui-page-applications .application-cta-panel p {
        font-size: var(--dr-font-body-small);
        line-height: 1.55;
    }

    .duorui-page-applications .application-industry-card {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto minmax(0, 1fr);
        gap: 0;
        min-height: 100%;
        padding: 0;
        scroll-snap-align: start;
    }

    .duorui-page-applications .application-industry-card__media {
        aspect-ratio: 4 / 3;
    }

    .duorui-page-applications .application-industry-card__copy {
        gap: 8px;
        padding: 17px 16px 19px;
    }

    .duorui-page-applications .application-industry-card h3 {
        font-size: var(--dr-font-body-small);
        line-height: 1.24;
    }

    .duorui-page-applications .application-industry-card p {
        display: block;
        font-size: var(--dr-font-meta);
        line-height: 1.5;
    }

    .duorui-page-applications .application-cta-panel {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
        padding: 22px 18px;
    }

    .duorui-page-applications .application-cta-panel__action {
        grid-column: auto;
        justify-content: flex-start;
        width: 100%;
    }
    .duorui-page-about .section {
        padding-top: 44px;
        padding-bottom: 44px;
    }
    .duorui-page-about .about-profile-panel {
        gap: 24px;
    }
    .duorui-page-about .about-profile-media {
        aspect-ratio: 4 / 3;
    }

    .duorui-page-about .about-capability-band {
        margin-top: 32px;
        padding-top: 22px;
    }

    .duorui-page-about .about-profile-capabilities article {
        min-height: 154px;
        scroll-snap-align: start;
    }

    .duorui-page-about .about-factory-layout {
        gap: 28px;
    }

    .duorui-page-about .about-factory-points {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .duorui-page-about .about-factory-points article {
        padding: 16px;
    }

    .duorui-page-about .about-quality-card {
        height: 100%;
        scroll-snap-align: start;
    }

    .duorui-page-about .about-quality-card figure {
        aspect-ratio: 4 / 3;
    }
    .duorui-page-solution-detail .dr-solution-workflow--editorial .dr-solution-workflow__head,
    .duorui-page-solution-detail .dr-solution-proof--editorial > .wrap > .section-head--solution { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .duorui-page-solution-detail .dr-solution-workflow--editorial .dr-solution-workflow__head .section-head__body,
    .duorui-page-solution-detail .dr-solution-proof--editorial > .wrap > .section-head--solution .section-head__body { max-width: 680px; }
    .duorui-page-solution-detail .dr-solution-flow-columns--editorial .dr-solution-flow-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
    .duorui-page-solution-detail .dr-solution-custom--story .dr-solution-custom__list article { display: block; }
}

/* Mobile component contract: rails, tabs, and compact page forms. */
@media (max-width: 768px) {
    [data-yc-component="mobile-rail"] {
        position: relative;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    [data-yc-component="mobile-rail"]::-webkit-scrollbar { display: none; }

    [data-yc-component="mobile-rail"].series-tabs {
        display: flex;
        flex-wrap: nowrap;
        gap: 8px;
        overflow-x: auto;
        overflow-y: hidden;
        padding-right: 36px;
        scroll-snap-type: x proximity;
    }

    [data-yc-component="mobile-rail"].series-tabs > * { flex: 0 0 auto; }

    [data-yc-component="mobile-rail"]::after {
        position: sticky;
        right: 0;
        display: block;
        width: 34px;
        height: 100%;
        margin-top: -100%;
        margin-left: auto;
        background: linear-gradient(90deg, rgba(255,255,255,0), var(--dr-color-white));
        content: '';
        pointer-events: none;
        opacity: .94;
        transition: opacity .2s ease;
    }

    [data-yc-component="mobile-rail"][data-at-end="true"]::after,
    [data-yc-component="mobile-rail"][data-overflow="false"]::after { opacity: 0; }

    .duorui-page-applications .application-industry-grid[data-yc-component="mobile-rail"],
    .duorui-page-solution-detail .dr-solution-machine-grid[data-yc-component="mobile-rail"],
    .duorui-page-about .about-profile-capabilities[data-yc-component="mobile-rail"],
    .duorui-page-about .about-quality-grid[data-yc-component="mobile-rail"] {
        grid-auto-flow: column;
        grid-auto-columns: min(82vw, 320px);
        grid-template-columns: none;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 2px;
        padding-right: 36px;
    }

    .duorui-page-applications .application-industry-grid[data-yc-component="mobile-rail"] {
        gap: 12px;
        padding-bottom: 12px;
    }

    .duorui-page-solution-detail .dr-solution-machine-grid[data-yc-component="mobile-rail"] {
        gap: 12px;
        padding-bottom: 12px;
    }

    .duorui-page-about .about-profile-capabilities[data-yc-component="mobile-rail"] {
        gap: 10px;
        padding-bottom: 12px;
    }

    .duorui-page-about .about-quality-grid[data-yc-component="mobile-rail"] {
        gap: 12px;
        padding-bottom: 12px;
    }

    .duorui-page-applications .application-industry-grid[data-yc-component="mobile-rail"] > *,
    .duorui-page-solution-detail .dr-solution-machine-grid[data-yc-component="mobile-rail"] > *,
    .duorui-page-about .about-profile-capabilities[data-yc-component="mobile-rail"] > *,
    .duorui-page-about .about-quality-grid[data-yc-component="mobile-rail"] > * { scroll-snap-align: start; }

    .duorui-page-contact .duorui-footer-contact-column { grid-template-columns: minmax(0, 1fr); }
}

/* Reduced motion */

@media (prefers-reduced-motion: reduce) {
    .duorui-home-hero__slide, .duorui-home-button, .duorui-home-news-item, .duorui-home-news-item__copy strong, .duorui-home-news-item__image img, .duorui-home-spaces__backdrop img, .duorui-home-space, .duorui-page-home .duorui-home-space, .duorui-home-space__media img, .duorui-home-space p, .duorui-home-space a, .duorui-home-explore__slide, .duorui-home-proof__gallery img, .duorui-home-proof__gallery figcaption p, .duorui-home-quality__carousel-slide img, .duorui-home-news__right > img, .duorui-home-news__right-copy h3 { transition-duration: .01ms; }
    .duorui-home-scroll-cue span { animation: none; } }

/* Full-page approved composition: light application cards and proof surfaces,
 * a two-column factory story, and a quality mosaic before the editorial close. */
.duorui-page-home .duorui-home-spaces {
    min-height: 0;
    padding: clamp(58px, 5.4vw, 82px) 0 clamp(54px, 5vw, 76px);
    overflow: visible;
    isolation: auto;
    background: var(--dr-color-surface-soft);
    color: var(--dr-color-heading);
}
.duorui-page-home .duorui-home-spaces::after,
.duorui-page-home .duorui-home-spaces__backdrop,
.duorui-page-home .duorui-home-spaces__columns::before { display: none; }
.duorui-page-home .duorui-home-spaces__intro {
    position: relative;
    z-index: 1;
    width: min(var(--dr-content-max), calc(100% - (var(--dr-gutter) * 2)));
    margin: 0 auto;
    padding: 0 0 clamp(26px, 2.4vw, 36px);
    text-align: left;
}
.duorui-page-home .duorui-home-spaces__intro .duorui-home-eyebrow { color: var(--dr-color-primary-hover); }
.duorui-page-home .duorui-home-spaces__intro h2 { max-width: 760px; margin: 0; color: var(--dr-color-heading); }
.duorui-page-home .duorui-home-spaces__intro p { max-width: 760px; margin: 12px 0 0; color: var(--dr-color-muted); }
.duorui-page-home .duorui-home-spaces__columns {
    position: relative;
    inset: auto;
    z-index: 1;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: clamp(12px, 1.2vw, 18px);
    width: min(var(--dr-content-max), calc(100% - (var(--dr-gutter) * 2)));
    min-height: 0;
    margin: 0 auto;
    padding: 0;
}
.duorui-page-home .duorui-home-space {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    border: 1px solid rgba(var(--dr-color-primary-rgb), .11);
    border-radius: 4px;
    padding: 0 0 18px;
    background: var(--dr-color-white);
    box-shadow: 0 8px 22px rgba(var(--dr-shadow-rgb), .06);
    color: var(--dr-color-heading);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.duorui-page-home .duorui-home-space::after { display: none; }
.duorui-page-home .duorui-home-space:hover,
.duorui-page-home .duorui-home-space:focus-visible,
.duorui-page-home .duorui-home-space:focus-within,
.duorui-page-home .duorui-home-space.is-active {
    border-color: rgba(var(--dr-color-primary-rgb), .38);
    background: var(--dr-color-white);
    box-shadow: 0 14px 28px rgba(var(--dr-shadow-rgb), .11);
    color: var(--dr-color-heading);
    transform: translateY(-2px);
}
.duorui-page-home .duorui-home-space > .duorui-home-space__content { position: relative; inset: auto; padding: 16px 14px 2px; transform: none; }
.duorui-page-home .duorui-home-space__media { display: block; aspect-ratio: 1.28; margin: 0; overflow: hidden; background: var(--dr-color-surface); }
.duorui-page-home .duorui-home-space__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.duorui-page-home .duorui-home-space:hover .duorui-home-space__media img,
.duorui-page-home .duorui-home-space:focus-visible .duorui-home-space__media img { transform: scale(1.035); }
.duorui-page-home .duorui-home-space__number { min-height: 0; margin: 0 0 8px; color: var(--dr-color-primary-hover); }
.duorui-page-home .duorui-home-space__number::before { display: none; }
.duorui-page-home .duorui-home-space__rule { width: 100%; margin: 10px 0 0; background: var(--dr-color-line); opacity: 1; transform: none; }
.duorui-page-home .duorui-home-space h3 { min-height: 2.35em; margin: 0; color: var(--dr-color-heading); font-size: var(--dr-font-card-title); line-height: 1.22; }
.duorui-page-home .duorui-home-space p { max-height: none; margin: 10px 0 0; color: var(--dr-color-muted); font-size: var(--dr-font-meta); line-height: 1.5; opacity: 1; visibility: visible; transform: none; }
.duorui-page-home .duorui-home-space a { display: inline-flex; align-items: center; gap: 6px; width: max-content; max-height: none; margin: 10px 0 0; color: var(--dr-color-primary-hover); font-size: var(--dr-font-meta); opacity: 1; visibility: visible; transform: none; }

.duorui-page-home .duorui-home-evidence { background: var(--dr-color-surface-soft); color: var(--dr-color-heading); }
.duorui-page-home .duorui-home-proof {
    grid-template-columns: minmax(0, .98fr) minmax(0, 1.02fr);
    grid-template-areas: "media body" "gallery gallery";
    gap: 0;
    min-height: 0;
    padding-top: clamp(8px, 1vw, 14px);
    background: var(--dr-color-surface-soft);
    color: var(--dr-color-heading);
}
.duorui-page-home .duorui-home-proof__media { min-height: 0; aspect-ratio: 1.28; background: var(--dr-color-line); }
.duorui-page-home .duorui-home-proof__media::after { content: none; }
.duorui-page-home .duorui-home-proof__body { min-height: 0; align-items: start; padding: clamp(30px, 3.2vw, 48px) clamp(28px, 4vw, 60px); background: transparent; }
.duorui-page-home .duorui-home-proof__inner { width: min(720px, 100%); height: auto; margin: 0; }
.duorui-page-home .duorui-home-proof__head .section-head__copy h2,
.duorui-page-home .duorui-home-proof__inner > h2,
.duorui-page-home .duorui-home-proof__reason-grid h3,
.duorui-page-home .duorui-home-proof__reasons > h3 { color: var(--dr-color-heading); }
.duorui-page-home .duorui-home-proof__head .section-head__body,
.duorui-page-home .duorui-home-proof__reason-grid p { color: var(--dr-color-muted); }
.duorui-page-home .duorui-home-proof__head .section-head__label,
.duorui-page-home .duorui-home-proof__reason-index { color: var(--dr-color-primary-hover); }
.duorui-page-home .duorui-home-proof__gallery { position: relative; z-index: 1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.2vw, 18px); padding: clamp(10px, 1vw, 16px) var(--dr-gutter) 0; background: transparent; }
.duorui-page-home .duorui-home-proof__gallery figure { min-height: 0; aspect-ratio: 1.35; border-radius: 4px; background: var(--dr-color-line); }
.duorui-page-home .duorui-home-proof__gallery figure::after { background: var(--dr-color-overlay-media-dark); }
.duorui-page-home .duorui-home-proof__gallery figcaption { right: 18px; bottom: 18px; left: 18px; }
.duorui-page-home .duorui-home-proof__gallery figcaption p { max-height: none; opacity: 1; transform: none; }
.duorui-page-home .duorui-home-proof__inner > .duorui-home-button--accent { border-color: var(--dr-color-primary); background: var(--dr-color-primary); color: var(--dr-color-white); }

.duorui-page-home .duorui-home-quality { min-height: 0; padding: 0 0 clamp(58px, 5vw, 78px); overflow: visible; background: var(--dr-color-surface-soft); color: var(--dr-color-heading); }
.duorui-page-home .duorui-home-quality::before { content: none; }
.duorui-page-home .duorui-home-quality > .duorui-home-quality__overlay-wrap { position: relative; inset: auto; z-index: auto; width: min(var(--dr-content-max), calc(100% - (var(--dr-gutter) * 2))); max-width: none; margin: 0 auto; padding: clamp(52px, 4.8vw, 72px) 0 0; pointer-events: auto; }
.duorui-page-home .duorui-home-quality .section-head__copy h2 { color: var(--dr-color-heading); }
.duorui-page-home .duorui-home-quality .section-head__label { color: var(--dr-color-primary-hover); }
.duorui-page-home .duorui-home-quality .section-head__body,
.duorui-page-home .duorui-home-quality .section-head__body p { max-width: 720px; color: var(--dr-color-muted); line-height: 1.56; }
.duorui-page-home .duorui-home-quality .section-head__action.duorui-home-button--accent { border-color: var(--dr-color-primary); background: var(--dr-color-primary); color: var(--dr-color-white); }
.duorui-page-home .duorui-home-quality .section-head__action.duorui-home-button--accent:hover,
.duorui-page-home .duorui-home-quality .section-head__action.duorui-home-button--accent:focus-visible { border-color: var(--dr-color-primary-hover); background: var(--dr-color-primary-hover); color: var(--dr-color-white); }
.duorui-page-home .duorui-home-quality__mosaic { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(12px, 1.2vw, 18px); min-height: clamp(440px, 40vw, 640px); margin-top: clamp(28px, 3vw, 42px); }
.duorui-page-home .duorui-home-quality__primary,
.duorui-page-home .duorui-home-quality__tile { position: relative; min-width: 0; min-height: 0; margin: 0; overflow: hidden; border-radius: 4px; background: var(--dr-color-line); }
.duorui-page-home .duorui-home-quality__side { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 1.2vw, 18px); min-width: 0; }
.duorui-page-home .duorui-home-quality__primary img,
.duorui-page-home .duorui-home-quality__tile img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.duorui-page-home .duorui-home-quality__primary::after,
.duorui-page-home .duorui-home-quality__tile::after { position: absolute; inset: 0; z-index: 1; background: var(--dr-color-overlay-media-dark); content: ''; pointer-events: none; }
.duorui-page-home .duorui-home-quality__primary figcaption,
.duorui-page-home .duorui-home-quality__tile figcaption { position: absolute; right: 18px; bottom: 18px; left: 18px; z-index: 2; }
.duorui-page-home .duorui-home-quality__primary h3,
.duorui-page-home .duorui-home-quality__tile h3 { margin: 0; color: var(--dr-color-white); font-size: var(--dr-font-card-title); line-height: 1.25; text-shadow: 0 1px 12px rgba(var(--dr-color-deep-rgb), .5); }
.duorui-page-home .duorui-home-quality__primary p,
.duorui-page-home .duorui-home-quality__tile p { max-width: 540px; margin: 8px 0 0; color: var(--dr-color-on-dark-muted); font-size: var(--dr-font-meta); line-height: 1.5; text-shadow: 0 1px 10px rgba(var(--dr-color-deep-rgb), .62); }
.duorui-page-home .duorui-home-quality__primary:hover img,
.duorui-page-home .duorui-home-quality__tile:hover img { transform: scale(1.03); }
.duorui-page-home .duorui-home-quality--no-media { padding-bottom: clamp(48px, 5vw, 72px); }

.duorui-page-home .duorui-home-news__right { min-height: clamp(480px, 42vw, 620px); }
.duorui-page-home .duorui-home-news__right:hover .duorui-home-news__right-copy h3,
.duorui-page-home .duorui-home-news__right:focus-visible .duorui-home-news__right-copy h3 { color: var(--dr-color-brand-soft); }

@media (min-width: 993px) and (max-width: 1200px) {
    .duorui-page-home .duorui-home-quality__mosaic { min-height: 460px; }
}
@media (max-width: 992px) {
    .duorui-page-home .duorui-home-spaces { padding-top: 56px; }
    .duorui-page-home .duorui-home-spaces__columns { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-bottom: 0; }
    .duorui-page-home .duorui-home-proof { grid-template-columns: minmax(0, 1fr); grid-template-areas: "media" "body" "gallery"; }
    .duorui-page-home .duorui-home-proof__media { aspect-ratio: 16 / 9; }
    .duorui-page-home .duorui-home-proof__body { padding: 44px var(--dr-gutter); }
    .duorui-page-home .duorui-home-proof__gallery { padding: 0 var(--dr-gutter); }
    .duorui-page-home .duorui-home-quality__mosaic { grid-template-columns: minmax(0, 1fr); min-height: 0; }
    .duorui-page-home .duorui-home-quality__primary { min-height: clamp(340px, 58vw, 500px); }
    .duorui-page-home .duorui-home-quality__side { grid-template-rows: repeat(2, minmax(180px, 32vw)); }
}
@media (max-width: 576px) {
    .duorui-page-home .duorui-home-spaces__intro { padding-bottom: 22px; }
    .duorui-page-home .duorui-home-spaces__columns { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .duorui-page-home .duorui-home-space__media { aspect-ratio: 16 / 9; }
    .duorui-page-home .duorui-home-proof__body { padding: 38px 20px 42px; }
    .duorui-page-home .duorui-home-proof__gallery { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 0 20px; }
    .duorui-page-home .duorui-home-proof__gallery figure { aspect-ratio: 1.45; }
    .duorui-page-home .duorui-home-quality { padding-bottom: 48px; }
    .duorui-page-home .duorui-home-quality > .duorui-home-quality__overlay-wrap { padding-top: 44px; }
    .duorui-page-home .duorui-home-quality__mosaic { gap: 10px; margin-top: 24px; }
    .duorui-page-home .duorui-home-quality__primary { min-height: 70vw; }
    .duorui-page-home .duorui-home-quality__side { gap: 10px; grid-template-rows: repeat(2, minmax(150px, 42vw)); }
    .duorui-page-home .duorui-home-quality__primary figcaption,
    .duorui-page-home .duorui-home-quality__tile figcaption { right: 12px; bottom: 12px; left: 12px; }
    .duorui-page-home .duorui-home-quality__tile p { display: none; }
    .duorui-page-home .duorui-home-news__right { min-height: 420px; }
}

/* ===== Responsive contract =====
 * The component-level tokens below make the supported viewport bands explicit
 * and keep the final shell sizing contract in one place.
 */
/* ===== Mobile presentation contract =====
 * The phone shell has one predictable row. Desktop-only navigation density and
 * the header consultation action move out of the viewport; page CTAs remain
 * available in their owning sections. Search opens as a single layer below the
 * shell so it never changes the page flow or pushes hero content down.
 */
@media (max-width: 768px) {
    .duorui-top.is-overlay,
    .duorui-top.is-static {
        --dr-header-height: 72px;
        height: 72px;
    }

    .duorui-top .wrap {
        position: relative;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas: "brand mobile";
        gap: 12px;
        min-height: 72px;
        padding: 6px var(--dr-gutter);
    }

    .duorui-brand img {
        width: 90px;
    }

    .duorui-mobile-actions {
        display: flex;
        align-items: center;
        gap: 4px;
    }

    .duorui-mobile-action {
        width: 42px;
        height: 42px;
        border: 0;
        border-radius: 50%;
        background: transparent;
        box-shadow: none;
        color: var(--dr-color-primary-hover);
        display: grid;
        place-items: center;
    }

    .duorui-top.is-overlay .duorui-mobile-action {
        color: var(--dr-color-white);
        text-shadow: 0 1px 10px rgba(0, 0, 0, .42);
    }

    .duorui-top.is-overlay.is-scrolled .duorui-mobile-action,
    .duorui-top.is-overlay.is-menu-open .duorui-mobile-action,
    .duorui-top.is-overlay.is-search-open .duorui-mobile-action {
        color: var(--dr-color-heading);
        text-shadow: none;
    }

    .duorui-search-form,
    .duorui-top.is-search-open .duorui-search-form {
        position: fixed;
        top: calc(var(--dr-header-height) + 8px);
        right: var(--dr-gutter);
        left: var(--dr-gutter);
        z-index: 95;
        display: none;
        width: calc(100vw - (var(--dr-gutter) * 2));
        max-width: none;
        height: 44px;
        margin: 0;
        grid-area: auto;
        justify-self: stretch;
        box-sizing: border-box;
        background: var(--dr-color-white);
        box-shadow: 0 12px 28px rgba(10, 30, 50, .16);
    }

    .duorui-top.is-search-open .duorui-search-form {
        display: flex;
    }

    .duorui-nav-shell,
    .duorui-top:not(.is-menu-open) .duorui-nav-shell {
        display: none;
    }

    .duorui-top.is-menu-open .duorui-nav-shell {
        display: block;
        position: fixed;
        left: 50%;
        z-index: 92;
        overflow: auto;
        padding: 12px;
        transform: translateX(-50%);
        top: calc(var(--dr-header-height) + 8px);
        width: min(calc(100vw - (var(--dr-gutter) * 2)), 420px);
        max-height: calc(100dvh - 96px);
    }

    .duorui-nav-menu {
        grid-template-columns: minmax(0, 1fr);
    }

    .duorui-nav-item--products {
        grid-column: auto;
    }

    .duorui-home-hero:not(.duorui-home-hero--flat-banner) {
        min-height: 640px;
    }

    .duorui-home-hero:not(.duorui-home-hero--flat-banner) .duorui-home-hero__content {
        min-height: 640px;
        align-items: flex-start;
        padding-top: 86px;
        padding-bottom: 92px;
    }

    .duorui-home-hero__copy h1 {
        max-width: 100%;
        font-size: var(--dr-font-hero);
        line-height: 1.08;
    }

    .duorui-home-scroll-cue {
        display: none;
    }

    .duorui-home-hero__progress {
        right: 16px;
        bottom: 24px;
        left: 16px;
        justify-content: flex-end;
    }

    .duorui-home-explore {
        height: calc(100svh - var(--dr-header-height));
        min-height: calc(100svh - var(--dr-header-height));
        scroll-margin-top: var(--dr-header-height);
    }

    .duorui-home-explore__copy {
        width: calc(100% - (var(--dr-gutter) * 2));
        margin-inline: auto;
        height: 100%;
        justify-content: flex-start;
        padding: 112px var(--dr-explore-copy-side, 60px) 154px;
        transform: none;
    }

    .duorui-home-spaces__intro {
        z-index: 3;
        padding: 0 0 28px;
        pointer-events: auto;
        text-align: center;
    }

    .duorui-home-spaces {
        min-height: 0;
        padding-top: 48px;
        padding-bottom: 0;
        background: var(--dr-color-surface-warm);
        color: var(--dr-color-heading);
    }

    .duorui-home-spaces__intro p { margin-right: auto; margin-left: auto; color: var(--dr-color-body); }
    .duorui-home-spaces__intro h2 { color: var(--dr-color-heading); font-size: var(--dr-font-section-title); }
    .duorui-home-spaces::after { display: block; background: var(--dr-color-overlay-stage); }
    .duorui-home-spaces__backdrop { display: block; opacity: .16; }

    .duorui-home-spaces__columns {
        position: relative;
        inset: auto;
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
        padding: 0 16px 42px;
        border: 0;
        background: transparent;
    }

    .duorui-home-spaces__columns::before,
    .duorui-home-space::before,
    .duorui-home-space__number::before { content: none; }

    .duorui-home-space {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        min-width: 0;
        min-height: 0;
        padding: 0 0 22px;
        border: 1px solid var(--dr-color-divider);
        border-radius: var(--dr-radius);
        background: var(--dr-color-white);
        box-shadow: 0 12px 26px rgba(10, 30, 50, .08);
        color: var(--dr-color-heading);
    }

    .duorui-home-space:hover,
    .duorui-home-space:focus-visible,
    .duorui-home-space:focus-within,
    .duorui-home-space.is-active {
        background: var(--dr-color-white);
        color: var(--dr-color-heading);
    }

    .duorui-home-space.is-active {
        background: var(--dr-color-brand-soft);
    }

    .duorui-home-space.is-active h3,
    .duorui-home-space.is-active p,
    .duorui-home-space.is-active a {
        color: var(--dr-color-heading);
    }

    .duorui-home-space > .duorui-home-space__content {
        position: relative;
        top: auto;
        right: auto;
        left: auto;
        transform: none;
    }

    .duorui-home-space__media {
        display: block;
        aspect-ratio: 16 / 9;
        margin: 0;
        overflow: hidden;
        background: var(--dr-color-surface);
    }

    .duorui-home-space__media img { display: block; width: 100%; height: 100%; object-fit: cover; }

    .duorui-home-space__number,
    .duorui-home-space__rule,
    .duorui-home-space h3,
    .duorui-home-space p,
    .duorui-home-space a { margin-right: 18px; margin-left: 18px; }

    .duorui-home-space__number { margin-top: 18px; margin-bottom: 8px; color: var(--dr-color-primary); }
    .duorui-home-space__rule { width: 42px; margin-bottom: 12px; }
    .duorui-home-space p,
    .duorui-home-space a { max-height: none; margin-top: 14px; opacity: 1; pointer-events: auto; transform: none; }

    .duorui-home-space a { color: var(--dr-color-primary-hover); }

    .duorui-home-explore__rail {
        bottom: 0;
    }

    .duorui-home-news__right {
        min-height: 460px;
    }

    .duorui-footer {
        padding: 54px 0 36px;
    }

    .duorui-footer-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 34px;
        padding-top: 0;
    }

    .duorui-footer--with-form .duorui-footer-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .duorui-footer-brand .duorui-brand {
        width: min(var(--dr-footer-logo-width), 100%);
    }

    .duorui-footer-brand .duorui-brand img {
        width: min(148px, var(--dr-footer-logo-width));
        max-width: 100%;
    }

    .duorui-footer-contact-column {
        grid-column: auto;
        gap: 24px;
    }

    .duorui-footer-nav-group {
        padding-top: 20px;
        border-top: 1px solid var(--dr-color-line);
    }

    .duorui-footer-form {
        padding-top: 20px;
        border-top: 1px solid var(--dr-color-line);
    }
}

@media (max-width: 576px) {
    /* The product preview is a nested menu, not page content. Keep its
     * categories inside the mobile shell and let the panel scroll locally. */
    .duorui-product-mega {
        max-height: min(38vh, 300px);
        padding: 8px 0 0;
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .duorui-home-explore {
        --dr-explore-copy-side: 60px;
        --dr-explore-control-size: 44px;
        --dr-explore-control-edge: 8px;
    }

    .duorui-product-mega__grid {
        display: block;
    }

    .duorui-product-mega__items {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        max-height: none;
        overflow: visible;
    }

    .duorui-product-mega__visual {
        display: none;
    }

    .site-cookie-notice {
        right: 16px;
        bottom: 16px;
        left: 16px;
        align-items: flex-start;
        width: auto;
        flex-direction: column;
        gap: 12px;
    }

    .duorui-top.is-overlay,
    .duorui-top.is-static,
    .duorui-top .wrap {
        min-height: 68px;
        height: 68px;
    }

    .duorui-top.is-overlay,
    .duorui-top.is-static { --dr-header-height: 68px; }

    .duorui-top .wrap {
        padding-top: 4px;
        padding-bottom: 4px;
    }

    .duorui-brand img {
        width: 84px;
    }

    .duorui-mobile-action {
        width: 44px;
        height: 44px;
    }

    .duorui-home-explore__rail {
        right: 0;
        left: 0;
        display: flex;
        overflow-x: auto;
        overflow-y: hidden;
        grid-template-columns: none;
        scroll-padding-inline: 16px;
        scrollbar-width: none;
        scroll-snap-type: x mandatory;
    }

    .duorui-home-explore__rail::-webkit-scrollbar { display: none; }

    .duorui-home-explore__rail button {
        flex: 0 0 min(78vw, 224px);
        padding-inline: 16px;
        scroll-snap-align: start;
    }

    .duorui-page-product-index .product-series-tabs-shell {
        position: relative;
        overflow: hidden;
    }

    .duorui-page-product-index .series-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        padding-right: 42px;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
    }

    .duorui-page-product-index .series-tabs a {
        flex: 0 0 auto;
        width: auto;
        scroll-snap-align: start;
        white-space: nowrap;
    }

    .duorui-page-product-index .product-series-tabs-shell::after {
        position: absolute;
        top: 12px;
        right: 12px;
        bottom: 12px;
        display: grid;
        place-items: center;
        width: 30px;
        border-left: 1px solid var(--dr-color-line);
        background: linear-gradient(90deg, rgba(255, 255, 255, 0), var(--dr-color-white) 34%);
        color: var(--dr-color-primary-hover);
        content: ">";
        font-size: var(--dr-font-card-title);
        pointer-events: none;
    }

    .duorui-page-service .service-workflow-steps,
    .duorui-page-service .service-checklist-grid,
    .duorui-page-service .service-deliverable-grid,
    .duorui-page-contact .contact-form-grid {
        grid-template-columns: 1fr;
    }

    .duorui-footer-grid > * { min-width: 0; }
    .duorui-footer-contact-column {
        grid-column: auto;
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }
    .duorui-footer-form {
        width: 100%;
        box-sizing: border-box;
    }
    .duorui-page-solution-index .solution-index-aside { gap: 16px; }
    .duorui-page-solution-index .solution-index-aside span { min-width: max-content; }
    .duorui-page-faq-index .faq-index-sidebar { grid-template-columns: 1fr; }
    .duorui-page-faq-index .faq-index-hero-grid {
        display: block;
        grid-template-columns: minmax(0, 1fr);
        width: min(100%, calc(100vw - (var(--dr-gutter) * 2)));
        min-width: 0;
    }
    .duorui-page-faq-index .faq-index-hero-copy {
        width: 100%;
        max-width: none;
        min-width: 0;
    }
    .duorui-page-product-detail .fact-grid--parameters,
    .duorui-page-news .news-guide-grid { grid-template-columns: 1fr; }
    .duorui-page-product-detail .detail-main { padding-top: 28px; }
    .duorui-page-faq-detail .faq-detail-hero { padding-top: 28px; }

    .duorui-home-hero__progress {
        font-size: var(--dr-font-caption);
    }

    .duorui-home-hero__progress i {
        width: 46px;
    }

    .duorui-home-inquiry__button {
        min-width: 0;
    }

    .duorui-page-product-index .product-card-media,
    .duorui-page-product-index .product-card-grid--count-1 .product-card-media {
        min-height: 0;
        aspect-ratio: 16 / 10;
        padding: 14px;
    }

    .duorui-page-product-index .product-card-body,
    .duorui-page-product-index .product-card-grid--count-1 .product-card-body {
        min-width: 0;
        gap: 10px;
    }

    .duorui-page-product-index .product-card-body > p {
        -webkit-line-clamp: 3;
    }

    .duorui-page-product-index .spec-icon-row,
    .duorui-page-product-index .product-card-grid--count-1 .spec-icon-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .duorui-page-faq-index .faq-index-hero-copy p {
        max-width: 100%;
    }
}


