/* D&H Design System — global Huawei-inspired style layer */
body.dhds-enabled {
    background: var(--dhds-bg);
    color: var(--dhds-text);
    font-family: var(--dhds-font);
}



/* Strong Huawei-style typography override. This is intentionally specific because
   many themes/Elementor widgets set their own font-family and menu typography. */
.dhds-enabled.dhds-strict-typography,
.dhds-enabled.dhds-strict-typography body,
.dhds-enabled.dhds-strict-typography input,
.dhds-enabled.dhds-strict-typography button,
.dhds-enabled.dhds-strict-typography select,
.dhds-enabled.dhds-strict-typography textarea,
.dhds-enabled.dhds-strict-typography table,
.dhds-enabled.dhds-strict-typography .site,
.dhds-enabled.dhds-strict-typography #page,
.dhds-enabled.dhds-strict-typography .site-header,
.dhds-enabled.dhds-strict-typography .site-footer,
.dhds-enabled.dhds-strict-typography header,
.dhds-enabled.dhds-strict-typography footer,
.dhds-enabled.dhds-strict-typography nav,
.dhds-enabled.dhds-strict-typography .main-navigation,
.dhds-enabled.dhds-strict-typography .primary-navigation,
.dhds-enabled.dhds-strict-typography .elementor,
.dhds-enabled.dhds-strict-typography .elementor *:not(i):not(.fa):not(.fas):not(.far):not(.fab):not(.eicon):not([class*="icon"]),
.dhds-enabled.dhds-strict-typography .woocommerce,
.dhds-enabled.dhds-strict-typography .woocommerce *:not(i):not(.fa):not(.fas):not(.far):not(.fab):not(.eicon):not([class*="icon"]) {
    font-family: var(--dhds-font) !important;
}

.dhds-enabled.dhds-strict-typography h1,
.dhds-enabled.dhds-strict-typography h2,
.dhds-enabled.dhds-strict-typography h3,
.dhds-enabled.dhds-strict-typography h4,
.dhds-enabled.dhds-strict-typography h5,
.dhds-enabled.dhds-strict-typography h6,
.dhds-enabled.dhds-strict-typography .elementor-heading-title,
.dhds-enabled.dhds-strict-typography .woocommerce-loop-product__title,
.dhds-enabled.dhds-strict-typography .product_title,
.dhds-enabled.dhds-strict-typography .entry-title {
    font-family: var(--dhds-font) !important;
    color: var(--dhds-text);
    letter-spacing: -0.035em;
    font-weight: 700;
    line-height: 1.08;
}

.dhds-enabled.dhds-strict-typography .site-header,
.dhds-enabled.dhds-strict-typography header,
.dhds-enabled.dhds-strict-typography .elementor-location-header,
.dhds-enabled.dhds-strict-typography .main-navigation,
.dhds-enabled.dhds-strict-typography .primary-navigation,
.dhds-enabled.dhds-strict-typography .elementor-nav-menu,
.dhds-enabled.dhds-strict-typography .elementor-nav-menu--main,
.dhds-enabled.dhds-strict-typography .menu,
.dhds-enabled.dhds-strict-typography .nav-menu {
    font-family: var(--dhds-font) !important;
}

.dhds-enabled.dhds-strict-typography .site-header a,
.dhds-enabled.dhds-strict-typography header a,
.dhds-enabled.dhds-strict-typography .elementor-location-header a,
.dhds-enabled.dhds-strict-typography .main-navigation a,
.dhds-enabled.dhds-strict-typography .primary-navigation a,
.dhds-enabled.dhds-strict-typography .elementor-nav-menu a,
.dhds-enabled.dhds-strict-typography .menu a,
.dhds-enabled.dhds-strict-typography .nav-menu a {
    font-family: var(--dhds-font) !important;
    font-weight: 650 !important;
    letter-spacing: -0.01em !important;
    text-transform: none !important;
    text-decoration: none !important;
}

.dhds-enabled.dhds-strict-typography .elementor-button,
.dhds-enabled.dhds-strict-typography button,
.dhds-enabled.dhds-strict-typography input[type="submit"],
.dhds-enabled.dhds-strict-typography .button,
.dhds-enabled.dhds-strict-typography .wp-block-button__link,
.dhds-enabled.dhds-strict-typography .single_add_to_cart_button,
.dhds-enabled.dhds-strict-typography .checkout-button {
    font-family: var(--dhds-font) !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em !important;
    text-transform: none !important;
}

.dhds-enabled a {
    color: inherit;
    text-decoration-thickness: .08em;
    text-underline-offset: .18em;
}

.dhds-enabled .site,
.dhds-enabled #page,
.dhds-enabled .elementor-location-header,
.dhds-enabled .elementor-location-footer {
    font-family: var(--dhds-font);
}

.dhds-enabled .elementor-section-wrap,
.dhds-enabled .entry-content {
    background: var(--dhds-bg);
}

.dhds-enabled .elementor-widget-button .elementor-button,
.dhds-enabled button,
.dhds-enabled input[type="submit"],
.dhds-enabled .button,
.dhds-enabled .wp-block-button__link {
    border-radius: var(--dhds-button-radius);
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease;
}

.dhds-enabled .elementor-widget-button .elementor-button:hover,
.dhds-enabled button:hover,
.dhds-enabled input[type="submit"]:hover,
.dhds-enabled .button:hover,
.dhds-enabled .wp-block-button__link:hover {
    transform: translateY(-1px);
}

.dhds-enabled input[type="text"],
.dhds-enabled input[type="email"],
.dhds-enabled input[type="tel"],
.dhds-enabled input[type="password"],
.dhds-enabled input[type="search"],
.dhds-enabled input[type="number"],
.dhds-enabled select,
.dhds-enabled textarea {
    border: 1px solid var(--dhds-border);
    border-radius: 14px;
    background: #fff;
    color: var(--dhds-text);
    min-height: 44px;
    box-shadow: none;
}

.dhds-enabled input:focus,
.dhds-enabled select:focus,
.dhds-enabled textarea:focus {
    border-color: var(--dhds-primary);
    outline: 2px solid rgba(17, 24, 39, .08);
    outline-offset: 1px;
}

.dhds-enabled .dhds-card,
.dhds-enabled .elementor-widget-container.dhds-card {
    background: var(--dhds-surface);
    border-radius: var(--dhds-radius-lg);
    border: 1px solid rgba(229, 231, 235, .75);
    box-shadow: 0 18px 45px rgba(15, 23, 42, .06);
}

.dhds-enabled .dhds-soft-section {
    background: var(--dhds-bg);
    border-radius: var(--dhds-radius-lg);
}

.dhds-enabled .dhds-pill,
.dhds-enabled .elementor-widget-button.dhds-pill .elementor-button {
    border-radius: var(--dhds-button-radius);
}

.dhds-enabled .dhds-muted {
    color: var(--dhds-muted);
}

.dhds-enabled .dhds-accent {
    color: var(--dhds-accent);
}

.dhds-back-to-top {
    position: fixed;
    right: 22px;
    bottom: 22px;
    width: 44px;
    height: 44px;
    z-index: 999;
    border: 0;
    border-radius: 50%;
    background: rgba(17, 24, 39, .88);
    color: #fff;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    box-shadow: 0 16px 35px rgba(15, 23, 42, .22);
}

.dhds-back-to-top.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.dhds-enabled .dhds-sticky-nav,
.dhds-enabled .elementor-widget-container .dhds-sticky-nav {
    position: sticky;
    top: 16px;
    z-index: 50;
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 10px;
    margin: 0 auto;
    width: fit-content;
    max-width: calc(100vw - 32px);
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(229,231,235,.9);
    border-radius: 999px;
    backdrop-filter: blur(18px);
    box-shadow: 0 18px 50px rgba(15, 23, 42, .1);
}

.dhds-enabled .dhds-sticky-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0 16px;
    border-radius: 999px;
    color: var(--dhds-muted);
    text-decoration: none;
    font-size: 14px;
    white-space: nowrap;
}

.dhds-enabled .dhds-sticky-nav a:hover,
.dhds-enabled .dhds-sticky-nav a.is-active {
    background: var(--dhds-primary);
    color: #fff;
}

@media (max-width: 767px) {
    .dhds-enabled .dhds-sticky-nav {
        justify-content: flex-start;
        overflow-x: auto;
        width: calc(100vw - 24px);
        border-radius: 22px;
    }

    .dhds-back-to-top {
        right: 16px;
        bottom: 16px;
    }
}


/* v1.0.0: Site-wide Header/Footer wrappers */
.dhds-sitewide-header-wrap,
.dhds-sitewide-footer-wrap {
    width: 100%;
    position: relative;
    z-index: 1000;
}
.dhds-sitewide-header-wrap + .wp-site-blocks,
.dhds-sitewide-header-wrap + #page,
.dhds-sitewide-header-wrap + .site {
    margin-top: 0;
}

/* Optional: hide existing theme/Elementor header/footer when the D&H site-wide versions are enabled. */
body.dhds-hide-theme-header-footer.dhds-sitewide-header-enabled :where(.site-header, header.site-header, .elementor-location-header, .elementor-template-full-width .elementor-location-header, #masthead, .main-header-bar, .ast-primary-header-bar, .storefront-primary-navigation) {
    display: none !important;
}
body.dhds-hide-theme-header-footer.dhds-sitewide-footer-enabled :where(.site-footer, footer.site-footer, .elementor-location-footer, #colophon, .footer-widgets, .storefront-handheld-footer-bar) {
    display: none !important;
}


/* v1.1.0: Page Shell & Static Elementor Content Alignment */
body.dhds-enabled.dhds-page-shell-enabled {
    background: var(--dhds-bg);
}

body.dhds-enabled.dhds-page-shell-enabled:not(.home) .site-main,
body.dhds-enabled.dhds-page-shell-enabled:not(.home) #primary,
body.dhds-enabled.dhds-page-shell-enabled:not(.home) .content-area,
body.dhds-enabled.dhds-page-shell-enabled:not(.home) main#main {
    width: 100%;
}

body.dhds-enabled.dhds-page-shell-enabled:not(.home) .entry-header,
body.dhds-enabled.dhds-page-shell-enabled:not(.home) .page-header {
    max-width: var(--dhds-static-max, 1180px);
    margin: 34px auto 18px;
    padding: 0 clamp(20px, 2.4vw, 48px);
}

body.dhds-enabled.dhds-page-shell-enabled:not(.home) .entry-title,
body.dhds-enabled.dhds-page-shell-enabled:not(.home) .page-title {
    font-size: clamp(34px, 3.4vw, 58px);
    line-height: 1;
    letter-spacing: -.055em;
    font-weight: 850;
    color: var(--dhds-text);
}

/* Elementor pages such as policy/static pages */
body.dhds-enabled.dhds-page-shell-enabled:not(.home):not(.woocommerce-page) .elementor:not(.elementor-location-header):not(.elementor-location-footer),
body.dhds-enabled.dhds-page-shell-enabled:not(.home):not(.woocommerce-page) .elementor-section-wrap {
    width: 100%;
}

body.dhds-enabled.dhds-page-shell-enabled:not(.home):not(.woocommerce-page) .elementor-top-section,
body.dhds-enabled.dhds-page-shell-enabled:not(.home):not(.woocommerce-page) .elementor > .e-con,
body.dhds-enabled.dhds-page-shell-enabled:not(.home):not(.woocommerce-page) .elementor > .elementor-section {
    max-width: var(--dhds-static-max, 1180px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body.dhds-enabled.dhds-page-shell-enabled:not(.home):not(.woocommerce-page) .elementor-widget-text-editor > .elementor-widget-container {
    max-width: var(--dhds-static-max, 1180px);
    margin: 34px auto 58px;
    padding: clamp(30px, 4vw, 64px);
    background: var(--dhds-surface);
    border: 1px solid rgba(229,231,235,.88);
    border-radius: var(--dhds-radius-lg);
    box-shadow: 0 18px 55px rgba(15,23,42,.065);
    color: #344054;
    font-size: 16px;
    line-height: 1.75;
}

body.dhds-enabled.dhds-page-shell-enabled:not(.home):not(.woocommerce-page) .elementor-widget-text-editor > .elementor-widget-container p {
    margin: 0 0 1.1em;
}

body.dhds-enabled.dhds-page-shell-enabled:not(.home):not(.woocommerce-page) .elementor-widget-text-editor > .elementor-widget-container strong,
body.dhds-enabled.dhds-page-shell-enabled:not(.home):not(.woocommerce-page) .elementor-widget-text-editor > .elementor-widget-container b {
    color: var(--dhds-text);
    font-weight: 800;
}

body.dhds-enabled.dhds-page-shell-enabled:not(.home):not(.woocommerce-page) .elementor-widget-text-editor > .elementor-widget-container h1,
body.dhds-enabled.dhds-page-shell-enabled:not(.home):not(.woocommerce-page) .elementor-widget-text-editor > .elementor-widget-container h2,
body.dhds-enabled.dhds-page-shell-enabled:not(.home):not(.woocommerce-page) .elementor-widget-text-editor > .elementor-widget-container h3 {
    margin: 1.4em 0 .55em;
    color: var(--dhds-text);
    letter-spacing: -.035em;
    line-height: 1.08;
}

body.dhds-enabled.dhds-page-shell-enabled:not(.home):not(.woocommerce-page) .elementor-widget-text-editor > .elementor-widget-container a {
    color: var(--dhds-text);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

body.dhds-enabled.dhds-page-shell-enabled .elementor-widget-container > .woocommerce,
body.dhds-enabled.dhds-page-shell-enabled .elementor-widget-text-editor .woocommerce {
    max-width: var(--dhds-woo-max, 1500px);
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 760px) {
    body.dhds-enabled.dhds-page-shell-enabled:not(.home):not(.woocommerce-page) .elementor-widget-text-editor > .elementor-widget-container {
        margin-top: 20px;
        padding: 24px 20px;
        border-radius: 22px;
    }
}


/* v1.1.1: Strong legacy Elementor header/footer cleanup */
body.dhds-hide-theme-header-footer.dhds-sitewide-header-enabled :where(.elementor-location-header, header.elementor-location-header, .site-header, #masthead, .main-header-bar, .ast-primary-header-bar, .storefront-primary-navigation) {
    display: none !important;
    height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.dhds-hide-theme-header-footer.dhds-sitewide-footer-enabled :where(.elementor-location-footer, footer.elementor-location-footer, .site-footer, #colophon, .footer-widgets, .storefront-handheld-footer-bar) {
    display: none !important;
    height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.dhds-hide-theme-header-footer :where(.elementor-19430, [data-elementor-id="19430"], .elementor-19337, [data-elementor-id="19337"], .elementor-19343, [data-elementor-id="19343"]) {
    display: none !important;
    height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}


/* v1.1.2: Boxed D&H layout mode
   This narrows the new D&H/Huawei-inspired components so they visually match existing boxed Elementor product/page templates. */
body.dhds-enabled.dhds-boxed-layout {
    --dhds-header-max: var(--dhds-boxed-header, 1280px);
    --dhds-home-max: var(--dhds-boxed-max, 1180px);
    --dhds-section-max: var(--dhds-boxed-max, 1180px);
    --dhds-woo-max: var(--dhds-boxed-max, 1180px);
    --dhds-static-max: var(--dhds-boxed-max, 1180px);
}

body.dhds-enabled.dhds-boxed-layout:not(.home):not(.woocommerce-page) .elementor-widget-text-editor > .elementor-widget-container {
    max-width: var(--dhds-boxed-max, 1180px) !important;
}

body.dhds-enabled.dhds-boxed-layout .dhds-sitewide-header-wrap,
body.dhds-enabled.dhds-boxed-layout .dhds-sitewide-footer-wrap {
    width: 100%;
}


/* v1.1.3: broader legacy Elementor header/footer cleanup */
body.dhds-hide-theme-header-footer :where([data-elementor-type="header"], [data-elementor-type="footer"], .elementor[data-elementor-type="header"], .elementor[data-elementor-type="footer"]) {
    display: none !important;
    height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* If an old header is inserted as a normal Elementor template, remove common old-header widgets when the D&H header is active. */
body.dhds-hide-theme-header-footer.dhds-sitewide-header-enabled :where(.elementor-widget-jet-ajax-search, .elementor-widget-jet-blocks-cart, .holiday-banner) {
    display: none !important;
}
