/*
D&H Huawei Child Theme v2.0.0
Structural visual layer for WooCommerce and WordPress pages.
*/

:root {
  --dhh-bg: #f3f5f7;
  --dhh-surface: #ffffff;
  --dhh-text: #111827;
  --dhh-muted: #667085;
  --dhh-border: #e5e7eb;
  --dhh-blue: #0b5cff;
  --dhh-radius: 26px;
  --dhh-max: 1180px;
  --dhh-header-max: 1280px;
  --dhh-shadow: 0 18px 55px rgba(15,23,42,.055);
}

body.dhh-theme {
  background: var(--dhh-bg);
  color: var(--dhh-text);
}

body.dhh-theme a {
  text-underline-offset: 3px;
}

body.dhh-theme .site,
body.dhh-theme .site-main,
body.dhh-theme #primary,
body.dhh-theme .content-area {
  background: transparent;
}

/* Keep main content boxed and consistent. */
body.dhh-theme:not(.home) .site-main,
body.dhh-theme:not(.home) #primary,
body.dhh-theme:not(.home) .content-area,
body.dhh-theme:not(.home) main#main {
  max-width: none;
  width: 100%;
}

/* WooCommerce archive hero */
.dhh-shop-hero {
  width: min(var(--dhh-max), calc(100vw - 48px));
  margin: 34px auto 26px;
  padding: clamp(28px, 4vw, 48px);
  background: linear-gradient(135deg,#fff,#f7fbff);
  border: 1px solid rgba(229,231,235,.9);
  border-radius: var(--dhh-radius);
  box-shadow: var(--dhh-shadow);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  gap: 28px;
  align-items: end;
}

.dhh-kicker {
  display: block;
  margin-bottom: 12px;
  text-transform: uppercase;
  letter-spacing: .075em;
  font-size: 11px;
  font-weight: 850;
  color: var(--dhh-muted);
}

.dhh-shop-hero h1 {
  margin: 0;
  font-size: clamp(38px, 4.3vw, 62px);
  line-height: .98;
  letter-spacing: -.06em;
  font-weight: 880;
}

.dhh-shop-hero p {
  margin: 12px 0 0;
  max-width: 640px;
  color: var(--dhh-muted);
  font-size: 16px;
  line-height: 1.55;
}

.dhh-shop-quickcats {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.dhh-shop-quickcats a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 15px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(229,231,235,.95);
  color: #344054;
  text-decoration: none;
  font-size: 13px;
  font-weight: 750;
}

.dhh-shop-quickcats a:hover {
  background: #111827;
  border-color: #111827;
  color: #fff;
}

/* Hide duplicate/default archive title/breadcrumbs from parent themes. */
.dhh-shop-archive .woocommerce-products-header,
.dhh-shop-archive .woocommerce-breadcrumb,
.dhh-shop-archive .page-header,
.dhh-shop-archive .ast-archive-description {
  display: none !important;
}

/* Archive loop shell */
.dhh-shop-loop-shell {
  width: min(var(--dhh-max), calc(100vw - 48px));
  margin: 0 auto 44px;
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(229,231,235,.75);
  border-radius: var(--dhh-radius);
  padding: clamp(18px, 2.3vw, 28px);
  box-shadow: 0 18px 55px rgba(15,23,42,.04);
}

.dhh-shop-archive .woocommerce-result-count {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  color: var(--dhh-muted);
  font-size: 13px;
  font-weight: 700;
  margin: 0 0 22px !important;
}

.dhh-shop-archive .woocommerce-ordering {
  float: right;
  margin: 0 0 22px !important;
}

.dhh-shop-archive .woocommerce-ordering select {
  min-width: 220px;
  height: 46px;
  border: 1px solid rgba(229,231,235,.95);
  border-radius: 12px;
  background: #fff;
  padding: 0 42px 0 14px;
  color: #344054;
  font-weight: 700;
  box-shadow: none;
}

/* Product grid */
.dhh-shop-archive ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0,1fr)) !important;
  gap: 22px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  clear: both !important;
}

.dhh-shop-archive ul.products li.product {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 20px !important;
  min-height: 380px;
  background: #fff !important;
  border: 1px solid rgba(229,231,235,.86) !important;
  border-radius: 20px !important;
  box-shadow: 0 14px 38px rgba(15,23,42,.045) !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  display: flex;
  flex-direction: column;
}

.dhh-shop-archive ul.products li.product:hover {
  transform: translateY(-3px);
  border-color: rgba(17,24,39,.16) !important;
  box-shadow: 0 20px 55px rgba(15,23,42,.075) !important;
}

.dhh-shop-archive ul.products li.product a.woocommerce-LoopProduct-link {
  display: flex;
  flex-direction: column;
  flex: 1;
  text-decoration: none !important;
}

.dhh-shop-archive ul.products li.product img {
  width: 100% !important;
  height: 190px !important;
  object-fit: contain !important;
  margin: 0 0 18px !important;
  padding: 0 !important;
  background: #fff;
}

.dhh-shop-archive ul.products li.product .woocommerce-loop-product__title {
  margin: 0 0 12px !important;
  padding: 0 !important;
  font-size: 15px !important;
  line-height: 1.28 !important;
  letter-spacing: -.025em;
  font-weight: 780 !important;
  color: #111827 !important;
  min-height: 58px;
}

.dhh-shop-archive ul.products li.product .price {
  margin-top: auto !important;
  color: var(--dhh-blue) !important;
  font-size: 15px !important;
  line-height: 1.35 !important;
  font-weight: 880 !important;
}

.dhh-shop-archive ul.products li.product .button {
  margin-top: 16px !important;
  min-height: 42px;
  border-radius: 999px !important;
  background: #111827 !important;
  color: #fff !important;
  border: 0 !important;
  display: inline-flex !important;
  justify-content: center;
  align-items: center;
  font-weight: 850 !important;
  font-size: 13px !important;
}

.dhh-shop-archive ul.products li.product .onsale {
  left: 16px !important;
  right: auto !important;
  top: 16px !important;
  min-height: 30px !important;
  min-width: 30px !important;
  line-height: 30px !important;
  border-radius: 999px !important;
  background: #d8102a !important;
  color: #fff !important;
  font-size: 11px !important;
  font-weight: 850 !important;
}

/* Pagination */
.dhh-shop-archive nav.woocommerce-pagination {
  margin: 36px 0 0;
}

.dhh-shop-archive nav.woocommerce-pagination ul {
  border: 0 !important;
  display: flex;
  justify-content: center;
  gap: 8px;
}

.dhh-shop-archive nav.woocommerce-pagination ul li {
  border: 0 !important;
}

.dhh-shop-archive nav.woocommerce-pagination a,
.dhh-shop-archive nav.woocommerce-pagination span {
  min-width: 42px;
  height: 42px;
  border-radius: 999px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: #fff !important;
  color: #344054 !important;
  border: 1px solid rgba(229,231,235,.9) !important;
  font-weight: 800 !important;
}

.dhh-shop-archive nav.woocommerce-pagination span.current {
  background: #111827 !important;
  border-color: #111827 !important;
  color: #fff !important;
}

/* Single product base shell */
.dhh-single-product div.product {
  width: min(var(--dhh-max), calc(100vw - 48px));
  max-width: min(var(--dhh-max), calc(100vw - 48px));
  margin: 34px auto 44px;
}

.dhh-single-product div.product div.images,
.dhh-single-product div.product div.summary {
  border-radius: var(--dhh-radius);
}

.dhh-single-product div.product div.images {
  background: #fff;
  border: 1px solid rgba(229,231,235,.86);
  box-shadow: var(--dhh-shadow);
  overflow: hidden;
}

.dhh-single-product div.product div.summary {
  background: #eefaff;
  border: 1px solid rgba(229,231,235,.72);
  padding: clamp(24px, 3vw, 38px);
}

/* Cart/checkout/account general shell */
.dhh-cart .woocommerce,
.dhh-checkout .woocommerce,
.dhh-my-account .woocommerce {
  width: min(var(--dhh-max), calc(100vw - 48px));
  max-width: min(var(--dhh-max), calc(100vw - 48px));
  margin: 34px auto 64px;
}

/* Order received */
.woocommerce-order-received .woocommerce-order {
  width: min(var(--dhh-max), calc(100vw - 48px));
  max-width: min(var(--dhh-max), calc(100vw - 48px));
  margin: 34px auto 64px;
  padding: clamp(30px, 4vw, 56px);
  border: 1px solid rgba(229,231,235,.86);
  border-radius: var(--dhh-radius);
  background: #fff;
  box-shadow: var(--dhh-shadow);
}

.woocommerce-order-received .woocommerce-order h2,
.woocommerce-order-received .woocommerce-order h3 {
  letter-spacing: -.04em;
}

/* Static pages */
body.dhh-theme:not(.woocommerce-page):not(.home) .entry-content {
  width: min(var(--dhh-max), calc(100vw - 48px));
  max-width: min(var(--dhh-max), calc(100vw - 48px));
  margin-left: auto;
  margin-right: auto;
}

/* Responsive */
@media (max-width: 1080px) {
  .dhh-shop-archive ul.products {
    grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  }
}

@media (max-width: 820px) {
  .dhh-shop-hero {
    grid-template-columns: 1fr;
  }
  .dhh-shop-quickcats {
    justify-content: flex-start;
  }
  .dhh-shop-archive .woocommerce-ordering {
    float: none;
    width: 100%;
  }
  .dhh-shop-archive .woocommerce-ordering select {
    width: 100%;
  }
  .dhh-shop-archive ul.products {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
}

@media (max-width: 560px) {
  .dhh-shop-hero,
  .dhh-shop-loop-shell,
  .dhh-cart .woocommerce,
  .dhh-checkout .woocommerce,
  .dhh-my-account .woocommerce,
  .dhh-single-product div.product,
  .woocommerce-order-received .woocommerce-order {
    width: calc(100vw - 28px);
    max-width: calc(100vw - 28px);
  }
  .dhh-shop-archive ul.products {
    grid-template-columns: 1fr !important;
  }
}


/* v2.0.1 visual polish and Astra layout corrections */

/* Global text rhythm */
body.dhh-theme {
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.dhh-theme h1,
body.dhh-theme h2,
body.dhh-theme h3,
body.dhh-theme h4 {
  color: var(--dhh-text);
  letter-spacing: -.045em;
}

/* Hide Astra/parent page titles on checkout/account/shop pages where templates provide their own title. */
body.dhh-theme.woocommerce-page .entry-header,
body.dhh-theme.woocommerce-page .ast-archive-description,
body.dhh-theme.woocommerce-checkout .entry-title,
body.dhh-theme.dhh-checkout .entry-title,
body.dhh-theme.dhh-my-account .entry-title {
  display: none !important;
}

/* Force Astra no-sidebar / full-width for WooCommerce so shop hero does not become a skinny column. */
body.dhh-theme.dhh-shop-archive.ast-left-sidebar #primary,
body.dhh-theme.dhh-shop-archive.ast-right-sidebar #primary,
body.dhh-theme.dhh-shop-archive #primary,
body.dhh-theme.dhh-shop-archive .site-main,
body.dhh-theme.dhh-shop-archive main#main,
body.dhh-theme.dhh-single-product #primary,
body.dhh-theme.dhh-cart #primary,
body.dhh-theme.dhh-checkout #primary,
body.dhh-theme.dhh-my-account #primary {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.dhh-theme.dhh-shop-archive #secondary,
body.dhh-theme.dhh-shop-archive aside.sidebar-main,
body.dhh-theme.dhh-shop-archive .widget-area.secondary {
  display: none !important;
}

body.dhh-theme.dhh-shop-archive .ast-container,
body.dhh-theme.dhh-single-product .ast-container,
body.dhh-theme.dhh-cart .ast-container,
body.dhh-theme.dhh-checkout .ast-container,
body.dhh-theme.dhh-my-account .ast-container,
body.woocommerce-order-received .ast-container {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Shop archive: cleaner hero and product area */
.dhh-shop-hero {
  min-height: 260px;
  align-items: center;
}

.dhh-shop-hero h1 {
  max-width: 620px;
}

.dhh-shop-quickcats a {
  box-shadow: 0 8px 24px rgba(15,23,42,.04);
}

.dhh-shop-loop-shell {
  overflow: visible;
}

.dhh-shop-archive ul.products li.product {
  min-height: 400px;
}

.dhh-shop-archive ul.products li.product .button {
  margin-top: 18px !important;
  transition: transform .16s ease, background .16s ease;
}

.dhh-shop-archive ul.products li.product .button:hover {
  transform: translateY(-1px);
  background: #0b1220 !important;
}

/* Single product: make the top area less cramped and more premium */
.dhh-single-product div.product {
  margin-top: 42px;
}

.dhh-single-product div.product div.summary {
  border-radius: 24px;
}

.dhh-single-product div.product .product_title {
  font-size: clamp(24px, 2.6vw, 34px);
  line-height: 1.08;
  letter-spacing: -.04em;
  margin-bottom: 10px;
}

.dhh-single-product div.product p.price,
.dhh-single-product div.product span.price {
  color: var(--dhh-blue);
  font-size: 20px;
  line-height: 1.25;
  font-weight: 850;
}

.dhh-single-product div.product form.cart .button,
.dhh-single-product div.product .single_add_to_cart_button {
  min-height: 48px !important;
  border-radius: 999px !important;
  background: #111827 !important;
  color: #fff !important;
  font-weight: 850 !important;
  padding: 0 26px !important;
}

.dhh-single-product .woocommerce-tabs,
.dhh-single-product .related.products {
  width: min(var(--dhh-max), calc(100vw - 48px));
  max-width: min(var(--dhh-max), calc(100vw - 48px));
  margin-left: auto !important;
  margin-right: auto !important;
}

.dhh-single-product .related.products h2 {
  font-size: 24px;
  font-weight: 850;
}

/* Checkout start and checkout templates: polish generic buttons/cards created by Elementor templates */
body.dhh-theme .dh-checkout-start,
body.dhh-theme .dh-checkout-page,
body.dhh-theme .dh-cart-page {
  font-size: 15px;
}

body.dhh-theme .dh-btn,
body.dhh-theme .dh-checkout-page #place_order,
body.dhh-theme .dh-checkout-page button.button,
body.dhh-theme .dh-cart-shell .checkout-button,
body.dhh-theme .dh-cart-shell .wc-proceed-to-checkout a.checkout-button {
  font-size: 15px !important;
  font-weight: 850 !important;
  border-radius: 12px !important;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}

body.dhh-theme .dh-btn:hover,
body.dhh-theme .dh-checkout-page #place_order:hover,
body.dhh-theme .dh-checkout-page button.button:hover,
body.dhh-theme .dh-cart-shell .checkout-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 30px rgba(15,23,42,.16);
}

body.dhh-theme .dh-checkout-card,
body.dhh-theme .dh-checkout-page #customer_details,
body.dhh-theme .dh-checkout-page #order_review,
body.dhh-theme .dh-cart-shell .woocommerce-cart-form,
body.dhh-theme .dh-cart-shell .cart_totals {
  border-radius: 24px !important;
}

/* Checkout page: slightly stronger labels and more readable summary */
body.dhh-theme .dh-checkout-page form .form-row label {
  color: #697386 !important;
  font-weight: 760 !important;
  letter-spacing: -.01em;
}

body.dhh-theme .dh-checkout-page #order_review:before,
body.dhh-theme .dh-checkout-page h3 {
  font-size: 25px !important;
}

body.dhh-theme .dh-checkout-page .woocommerce-checkout-review-order-table th,
body.dhh-theme .dh-checkout-page .woocommerce-checkout-review-order-table td {
  font-size: 14px !important;
}

body.dhh-theme .dh-checkout-page .woocommerce-privacy-policy-text {
  color: #475467;
  font-size: 14px;
  line-height: 1.55;
}

body.dhh-theme .dh-checkout-page #payment ul.payment_methods {
  border-radius: 18px !important;
}

/* My Account */
.dhh-my-account .woocommerce {
  background: transparent;
}

.dhh-my-account .woocommerce-MyAccount-navigation,
.dhh-my-account .woocommerce-MyAccount-content,
.dhh-my-account form.woocommerce-form-login {
  background: #fff;
  border: 1px solid rgba(229,231,235,.86);
  border-radius: 24px;
  box-shadow: var(--dhh-shadow);
  padding: clamp(22px, 3vw, 34px);
}

.dhh-my-account .woocommerce-MyAccount-navigation ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.dhh-my-account .woocommerce-MyAccount-navigation a {
  display: flex;
  min-height: 42px;
  align-items: center;
  padding: 0 14px;
  border-radius: 12px;
  color: #344054;
  text-decoration: none;
  font-weight: 750;
}

.dhh-my-account .woocommerce-MyAccount-navigation .is-active a,
.dhh-my-account .woocommerce-MyAccount-navigation a:hover {
  background: #f3f5f7;
  color: var(--dhh-blue);
}

/* Thank you / order received page */
.woocommerce-order-received .woocommerce-order {
  background: #fff;
}

.woocommerce-order-received .woocommerce-thankyou-order-received {
  color: #344054;
  font-size: 16px;
  margin-bottom: 24px;
}

.woocommerce-order-received .woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 14px;
  padding: 0;
  margin: 0 0 28px;
}

.woocommerce-order-received .woocommerce-order-overview li {
  margin: 0 !important;
  padding: 16px !important;
  border: 1px solid rgba(229,231,235,.86) !important;
  border-radius: 16px;
  background: #f8fafc;
  list-style: none;
  color: #667085;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.woocommerce-order-received .woocommerce-order-overview strong {
  display: block;
  margin-top: 6px;
  color: #111827;
  font-size: 16px;
  text-transform: none;
  letter-spacing: 0;
}

.woocommerce-order-received table.shop_table {
  border: 1px solid rgba(229,231,235,.9) !important;
  border-radius: 16px !important;
  overflow: hidden;
  background: #fff;
}

.woocommerce-order-received table.shop_table th,
.woocommerce-order-received table.shop_table td {
  padding: 14px 16px !important;
}

/* Footer/newsletter spacing should feel connected with boxed pages */
.dhds-huawei-footer,
.dhds-footer-newsletter {
  font-size: 14px;
}

/* Mobile refinements */
@media (max-width: 900px) {
  .woocommerce-order-received .woocommerce-order-overview {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

@media (max-width: 560px) {
  .woocommerce-order-received .woocommerce-order-overview {
    grid-template-columns: 1fr;
  }
  .dhh-shop-hero h1 {
    font-size: 38px;
  }
}


/* v2.0.2: Single product gallery and related products polish */

/* Product gallery: keep the layout clean with one main image and a horizontal thumbnail carousel. */
.dhh-single-product div.product div.images {
  padding: clamp(12px, 1.6vw, 22px);
}

.dhh-single-product div.product div.images .woocommerce-product-gallery__wrapper {
  margin: 0 !important;
}

.dhh-single-product div.product div.images .woocommerce-product-gallery__image {
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
}

.dhh-single-product div.product div.images .woocommerce-product-gallery__image:not(:first-child) {
  width: auto !important;
  max-width: none !important;
}

/* Default Woo thumbnails / flex-control-nav */
.dhh-single-product div.product div.images .flex-control-thumbs {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  list-style: none !important;
  padding: 12px 2px 4px !important;
  margin: 12px 0 0 !important;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.dhh-single-product div.product div.images .flex-control-thumbs::-webkit-scrollbar {
  height: 6px;
}

.dhh-single-product div.product div.images .flex-control-thumbs::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 999px;
}

.dhh-single-product div.product div.images .flex-control-thumbs::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 999px;
}

.dhh-single-product div.product div.images .flex-control-thumbs li {
  flex: 0 0 72px !important;
  width: 72px !important;
  margin: 0 !important;
  padding: 0 !important;
  scroll-snap-align: start;
}

.dhh-single-product div.product div.images .flex-control-thumbs img {
  width: 72px !important;
  height: 72px !important;
  object-fit: cover !important;
  border-radius: 12px !important;
  border: 2px solid transparent !important;
  opacity: .72 !important;
  transition: opacity .16s ease, border-color .16s ease, transform .16s ease;
}

.dhh-single-product div.product div.images .flex-control-thumbs img.flex-active,
.dhh-single-product div.product div.images .flex-control-thumbs img:hover {
  opacity: 1 !important;
  border-color: #111827 !important;
  transform: translateY(-1px);
}

/* If a product gallery shortcode/template outputs a plain image grid, compact it into a visual row. */
.dhh-single-product div.product div.images .woocommerce-product-gallery__wrapper > div:not(:first-child) {
  margin-top: 10px;
}

.dhh-single-product div.product div.images .woocommerce-product-gallery__wrapper > div:not(:first-child) img {
  max-height: 96px;
  object-fit: contain;
}

/* Related products: clean cards and D&H button style instead of tight red buttons. */
.dhh-single-product .related.products {
  margin-top: 56px !important;
  padding-top: 0 !important;
}

.dhh-single-product .related.products h2 {
  margin: 0 0 22px !important;
  font-size: clamp(26px, 2.4vw, 34px) !important;
  line-height: 1.08 !important;
  letter-spacing: -.05em !important;
  font-weight: 880 !important;
  color: #111827 !important;
}

.dhh-single-product .related.products ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0,1fr)) !important;
  gap: 22px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.dhh-single-product .related.products ul.products li.product {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 20px !important;
  background: #fff !important;
  border: 1px solid rgba(229,231,235,.86) !important;
  border-radius: 20px !important;
  box-shadow: 0 14px 38px rgba(15,23,42,.045) !important;
  min-height: 390px !important;
  display: flex !important;
  flex-direction: column !important;
}

.dhh-single-product .related.products ul.products li.product a.woocommerce-LoopProduct-link {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  text-decoration: none !important;
}

.dhh-single-product .related.products ul.products li.product img {
  width: 100% !important;
  height: 190px !important;
  object-fit: contain !important;
  margin: 0 0 16px !important;
  border-radius: 14px !important;
  background: #fff !important;
}

.dhh-single-product .related.products .woocommerce-loop-category__title,
.dhh-single-product .related.products .woocommerce-loop-product__title {
  min-height: 58px !important;
  margin: 0 0 10px !important;
  padding: 0 !important;
  color: #111827 !important;
  font-size: 15px !important;
  line-height: 1.25 !important;
  letter-spacing: -.025em !important;
  font-weight: 800 !important;
}

.dhh-single-product .related.products ul.products li.product .price {
  color: #111827 !important;
  font-size: 15px !important;
  line-height: 1.35 !important;
  font-weight: 850 !important;
  margin-top: auto !important;
}

.dhh-single-product .related.products ul.products li.product .button,
.dhh-single-product .related.products ul.products li.product a.button,
.dhh-single-product .related.products ul.products li.product .added_to_cart {
  width: 100% !important;
  min-height: 42px !important;
  margin-top: 16px !important;
  padding: 0 16px !important;
  border-radius: 999px !important;
  border: 1px solid #111827 !important;
  background: #fff !important;
  color: #111827 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 13px !important;
  line-height: 1 !important;
  font-weight: 850 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  box-shadow: none !important;
  transition: transform .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease;
}

.dhh-single-product .related.products ul.products li.product .button:hover,
.dhh-single-product .related.products ul.products li.product a.button:hover,
.dhh-single-product .related.products ul.products li.product .added_to_cart:hover {
  background: #111827 !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 10px 26px rgba(15,23,42,.14) !important;
}

/* Out of stock label should be calm, not a heavy overlay. */
.dhh-single-product .related.products ul.products li.product .ast-shop-product-out-of-stock,
.dhh-single-product .related.products ul.products li.product .out-of-stock,
.dhh-single-product .related.products ul.products li.product .stock.out-of-stock {
  background: rgba(255,255,255,.92) !important;
  color: #111827 !important;
  border: 1px solid rgba(229,231,235,.9) !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: 850 !important;
  padding: 8px 14px !important;
}

@media (max-width: 1080px) {
  .dhh-single-product .related.products ul.products {
    grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  }
}

@media (max-width: 820px) {
  .dhh-single-product .related.products ul.products {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
}

@media (max-width: 560px) {
  .dhh-single-product div.product div.images .flex-control-thumbs li {
    flex-basis: 64px !important;
    width: 64px !important;
  }
  .dhh-single-product div.product div.images .flex-control-thumbs img {
    width: 64px !important;
    height: 64px !important;
  }
  .dhh-single-product .related.products ul.products {
    grid-template-columns: 1fr !important;
  }
}


/* v2.0.3: Category archive layout fix
   Product categories should be clean: compact title + product grid, no large split hero/card. */

/* Remove any duplicated category hero/header injected by plugins or parent theme */
body.dhh-shop-archive.tax-product_cat .dhds-shop-hero,
body.dhh-shop-archive.tax-product_cat .woocommerce-products-header,
body.dhh-shop-archive.tax-product_cat .page-header,
body.dhh-shop-archive.tax-product_cat .ast-archive-description,
body.dhh-shop-archive.tax-product_cat .woocommerce-breadcrumb {
  display: none !important;
}

/* Make sure the archive is full-width no-sidebar under Astra */
body.dhh-theme.tax-product_cat.ast-left-sidebar #primary,
body.dhh-theme.tax-product_cat.ast-right-sidebar #primary,
body.dhh-theme.tax-product_cat #primary,
body.dhh-theme.tax-product_cat .site-main,
body.dhh-theme.tax-product_cat main#main,
body.dhh-theme.post-type-archive-product #primary,
body.dhh-theme.woocommerce-shop #primary {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

body.dhh-theme.tax-product_cat #secondary,
body.dhh-theme.tax-product_cat aside.sidebar-main,
body.dhh-theme.tax-product_cat .widget-area.secondary,
body.dhh-theme.tax-product_cat .ast-left-sidebar #secondary,
body.dhh-theme.tax-product_cat .ast-right-sidebar #secondary {
  display: none !important;
}

body.dhh-theme.tax-product_cat .ast-container,
body.dhh-theme.woocommerce-shop .ast-container,
body.dhh-theme.post-type-archive-product .ast-container {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Compact category header */
.dhh-category-header {
  width: min(var(--dhh-max), calc(100vw - 48px)) !important;
  margin: 30px auto 22px !important;
  padding: 30px 34px !important;
  background: #fff !important;
  border: 1px solid rgba(229,231,235,.86) !important;
  border-radius: 24px !important;
  box-shadow: 0 14px 38px rgba(15,23,42,.045) !important;
}

.dhh-category-header .dhh-kicker {
  margin-bottom: 10px !important;
}

.dhh-category-header h1 {
  margin: 0 !important;
  font-size: clamp(32px, 3.5vw, 48px) !important;
  line-height: 1.02 !important;
  letter-spacing: -.055em !important;
  font-weight: 880 !important;
  color: #111827 !important;
}

.dhh-category-header p {
  margin: 10px 0 0 !important;
  max-width: 720px !important;
  color: var(--dhh-muted, #667085) !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
}

/* Product loop should sit directly under compact header, not beside it */
body.dhh-theme.tax-product_cat .dhh-shop-loop-shell,
body.dhh-theme.woocommerce-shop .dhh-shop-loop-shell,
body.dhh-theme.post-type-archive-product .dhh-shop-loop-shell {
  width: min(var(--dhh-max), calc(100vw - 48px)) !important;
  margin: 0 auto 44px !important;
  clear: both !important;
  display: block !important;
}

/* Clear any parent theme flex/two-column layout around the archive loop */
body.dhh-theme.tax-product_cat .site-content,
body.dhh-theme.tax-product_cat .content-area,
body.dhh-theme.tax-product_cat main#main,
body.dhh-theme.tax-product_cat .woocommerce {
  display: block !important;
}

/* Product grid repairs */
body.dhh-theme.tax-product_cat ul.products,
body.dhh-theme.woocommerce-shop ul.products,
body.dhh-theme.post-type-archive-product ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0,1fr)) !important;
  gap: 22px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.dhh-theme.tax-product_cat ul.products::before,
body.dhh-theme.tax-product_cat ul.products::after,
body.dhh-theme.woocommerce-shop ul.products::before,
body.dhh-theme.woocommerce-shop ul.products::after {
  display: none !important;
}

body.dhh-theme.tax-product_cat ul.products li.product,
body.dhh-theme.woocommerce-shop ul.products li.product,
body.dhh-theme.post-type-archive-product ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

/* Keep old shop hero only for the main Shop page; never let it become a side column on categories. */
body.dhh-theme.tax-product_cat .dhh-shop-hero {
  display: none !important;
}

@media (max-width: 1080px) {
  body.dhh-theme.tax-product_cat ul.products,
  body.dhh-theme.woocommerce-shop ul.products,
  body.dhh-theme.post-type-archive-product ul.products {
    grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  }
}

@media (max-width: 820px) {
  body.dhh-theme.tax-product_cat ul.products,
  body.dhh-theme.woocommerce-shop ul.products,
  body.dhh-theme.post-type-archive-product ul.products {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
  .dhh-category-header {
    padding: 26px 24px !important;
  }
}

@media (max-width: 560px) {
  .dhh-category-header,
  body.dhh-theme.tax-product_cat .dhh-shop-loop-shell,
  body.dhh-theme.woocommerce-shop .dhh-shop-loop-shell,
  body.dhh-theme.post-type-archive-product .dhh-shop-loop-shell {
    width: calc(100vw - 28px) !important;
  }
  body.dhh-theme.tax-product_cat ul.products,
  body.dhh-theme.woocommerce-shop ul.products,
  body.dhh-theme.post-type-archive-product ul.products {
    grid-template-columns: 1fr !important;
  }
}


/* v2.0.4: Fix product gallery active image and category archive overflow */

/* Product gallery: undo any rule that made non-first gallery slides look like thumbnails.
   Woo/Flexslider should show one active full image, with other images only in the thumbnail rail. */
.dhh-single-product div.product div.images .woocommerce-product-gallery__wrapper,
.dhh-single-product div.product div.images .flex-viewport,
.dhh-single-product div.product div.images .flex-viewport .woocommerce-product-gallery__wrapper {
  width: 100% !important;
  max-width: 100% !important;
  overflow: hidden !important;
}

.dhh-single-product div.product div.images .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image,
.dhh-single-product div.product div.images .woocommerce-product-gallery__image {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
}

.dhh-single-product div.product div.images .woocommerce-product-gallery__wrapper > div:not(:first-child),
.dhh-single-product div.product div.images .woocommerce-product-gallery__wrapper > div:not(:first-child) img {
  max-height: none !important;
}

.dhh-single-product div.product div.images .woocommerce-product-gallery__image a {
  display: block !important;
  width: 100% !important;
}

.dhh-single-product div.product div.images .woocommerce-product-gallery__image img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  border-radius: 18px !important;
}

/* If Flexslider has not initialized yet, show the first image as the big preview and keep rest out of the preview area. */
.dhh-single-product div.product div.images .woocommerce-product-gallery:not(.flexslider) .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:not(:first-child) {
  display: none !important;
}

/* Thumbnail rail should be the only place where non-active images appear as thumbnails. */
.dhh-single-product div.product div.images .flex-control-thumbs {
  width: 100% !important;
  max-width: 100% !important;
}

/* Category archive: remove kicker and fix horizontal overflow. */
.dhh-category-header .dhh-kicker {
  display: none !important;
}

body.dhh-theme.tax-product_cat,
body.dhh-theme.tax-product_cat html {
  overflow-x: hidden !important;
}

body.dhh-theme.tax-product_cat .site,
body.dhh-theme.tax-product_cat .site-content,
body.dhh-theme.tax-product_cat .ast-container,
body.dhh-theme.tax-product_cat #content,
body.dhh-theme.tax-product_cat #primary,
body.dhh-theme.tax-product_cat main#main,
body.dhh-theme.tax-product_cat .content-area {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  float: none !important;
  clear: both !important;
  overflow: visible !important;
}

body.dhh-theme.tax-product_cat #secondary,
body.dhh-theme.tax-product_cat .sidebar-main,
body.dhh-theme.tax-product_cat aside.sidebar,
body.dhh-theme.tax-product_cat aside.widget-area {
  display: none !important;
  width: 0 !important;
  max-width: 0 !important;
}

body.dhh-theme.tax-product_cat .dhh-category-header,
body.dhh-theme.tax-product_cat .dhh-shop-loop-shell {
  display: block !important;
  clear: both !important;
  float: none !important;
  width: min(var(--dhh-max), calc(100vw - 48px)) !important;
  max-width: min(var(--dhh-max), calc(100vw - 48px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

body.dhh-theme.tax-product_cat .dhh-category-header {
  margin-top: 30px !important;
  margin-bottom: 22px !important;
  min-height: auto !important;
}

body.dhh-theme.tax-product_cat .dhh-category-header h1 {
  max-width: 760px !important;
}

/* The loop card must not be wider than the viewport; product cards should shrink inside it. */
body.dhh-theme.tax-product_cat .dhh-shop-loop-shell {
  overflow: hidden !important;
}

body.dhh-theme.tax-product_cat ul.products {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(14px, 1.5vw, 22px) !important;
}

body.dhh-theme.tax-product_cat ul.products li.product {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

body.dhh-theme.tax-product_cat ul.products li.product img {
  max-width: 100% !important;
}

/* Astra sometimes applies column widths through classes; neutralize them inside product categories. */
body.dhh-theme.tax-product_cat ul.products[class*="columns-"] li.product,
body.dhh-theme.tax-product_cat ul.products li.ast-article-single,
body.dhh-theme.tax-product_cat ul.products li.ast-article-post {
  width: auto !important;
  margin-right: 0 !important;
}

@media (max-width: 1180px) {
  body.dhh-theme.tax-product_cat ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 860px) {
  body.dhh-theme.tax-product_cat ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 560px) {
  body.dhh-theme.tax-product_cat .dhh-category-header,
  body.dhh-theme.tax-product_cat .dhh-shop-loop-shell {
    width: calc(100vw - 28px) !important;
    max-width: calc(100vw - 28px) !important;
  }

  body.dhh-theme.tax-product_cat ul.products {
    grid-template-columns: 1fr !important;
  }
}


/* v2.0.5: Controlled active-image gallery
   The active thumbnail is shown full-size in the custom stage; other images remain as thumbnails. */
.dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced {
  position: relative;
}

.dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced .flex-viewport,
.dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced > .woocommerce-product-gallery__wrapper {
  display: none !important;
}

.dhh-gallery-stage {
  width: 100%;
  margin: 0 0 16px;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
}

.dhh-gallery-stage-link {
  display: block;
  width: 100%;
  text-decoration: none;
}

.dhh-gallery-stage-img {
  display: block;
  width: 100% !important;
  height: auto !important;
  max-height: 620px;
  object-fit: contain !important;
  border-radius: 18px;
  background: #fff;
}

.dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced .flex-control-thumbs {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  list-style: none !important;
  padding: 12px 2px 4px !important;
  margin: 0 !important;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced .flex-control-thumbs li {
  flex: 0 0 76px !important;
  width: 76px !important;
  margin: 0 !important;
  padding: 0 !important;
  scroll-snap-align: start;
}

.dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced .flex-control-thumbs img {
  width: 76px !important;
  height: 76px !important;
  object-fit: cover !important;
  border-radius: 12px !important;
  border: 2px solid transparent !important;
  opacity: .68 !important;
  transition: opacity .16s ease, border-color .16s ease, transform .16s ease;
}

.dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced .flex-control-thumbs img.flex-active,
.dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced .flex-control-thumbs img:hover {
  opacity: 1 !important;
  border-color: #111827 !important;
  transform: translateY(-1px);
}

@media (max-width: 560px) {
  .dhh-gallery-stage-img {
    max-height: 460px;
  }
  .dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced .flex-control-thumbs li {
    flex-basis: 64px !important;
    width: 64px !important;
  }
  .dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced .flex-control-thumbs img {
    width: 64px !important;
    height: 64px !important;
  }
}


/* v2.0.6: force controlled active gallery to be the only large image */
.dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced > .flex-viewport,
.dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced > .woocommerce-product-gallery__wrapper,
.dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced .flex-viewport,
.dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced .woocommerce-product-gallery__wrapper {
  display: none !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.dhh-single-product div.product div.images .dhh-gallery-stage {
  display: block !important;
  width: 100% !important;
  margin: 0 0 16px !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  background: #fff !important;
}

.dhh-single-product div.product div.images .dhh-gallery-stage-img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: 620px !important;
  object-fit: contain !important;
  border-radius: 18px !important;
  background: #fff !important;
}

.dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced .flex-control-thumbs {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 12px 2px 4px !important;
  margin: 0 !important;
}


/* v2.0.7: Gallery duplicate rail fix and custom lightbox arrows */
.dhh-single-product div.product div.images .woocommerce-product-gallery.dhh-gallery-enhanced .flex-control-thumbs:not(.dhh-primary-thumbs) {
  display: none !important;
}

.dhh-gallery-stage-button {
  display: block !important;
  width: 100% !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  cursor: zoom-in !important;
}

.dhh-gallery-stage-button:focus {
  outline: 2px solid #111827;
  outline-offset: 3px;
}

.dhh-lightbox-open {
  overflow: hidden !important;
}

.dhh-gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, .84);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  padding: clamp(20px, 4vw, 56px);
}

.dhh-gallery-lightbox.is-open {
  display: flex;
}

.dhh-lightbox-stage {
  max-width: min(980px, 82vw);
  max-height: 84vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0,0,0,.34);
}

.dhh-lightbox-img {
  display: block;
  max-width: 100%;
  max-height: 84vh;
  width: auto;
  height: auto;
  object-fit: contain;
}

.dhh-lightbox-close,
.dhh-lightbox-prev,
.dhh-lightbox-next {
  position: fixed;
  border: 0;
  background: rgba(255,255,255,.92);
  color: #111827;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 12px 34px rgba(0,0,0,.18);
}

.dhh-lightbox-close {
  top: 24px;
  right: 24px;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  font-size: 32px;
  line-height: 1;
}

.dhh-lightbox-prev,
.dhh-lightbox-next {
  top: 50%;
  width: 54px;
  height: 54px;
  margin-top: -27px;
  border-radius: 999px;
  font-size: 42px;
  line-height: 1;
}

.dhh-lightbox-prev {
  left: 28px;
}

.dhh-lightbox-next {
  right: 28px;
}

.dhh-lightbox-close:hover,
.dhh-lightbox-prev:hover,
.dhh-lightbox-next:hover {
  background: #fff;
  transform: translateY(-1px);
}

@media (max-width: 760px) {
  .dhh-lightbox-stage {
    max-width: 92vw;
  }
  .dhh-lightbox-prev,
  .dhh-lightbox-next {
    width: 44px;
    height: 44px;
    font-size: 34px;
  }
  .dhh-lightbox-prev {
    left: 12px;
  }
  .dhh-lightbox-next {
    right: 12px;
  }
}


/* v2.0.8: Category product card readability and button spacing */
body.dhh-theme.tax-product_cat .dhh-shop-loop-shell,
body.dhh-theme.woocommerce-shop .dhh-shop-loop-shell,
body.dhh-theme.post-type-archive-product .dhh-shop-loop-shell {
  padding: clamp(26px, 3vw, 40px) !important;
}

body.dhh-theme.tax-product_cat .woocommerce-result-count,
body.dhh-theme.woocommerce-shop .woocommerce-result-count,
body.dhh-theme.post-type-archive-product .woocommerce-result-count {
  margin-bottom: 28px !important;
  color: #697386 !important;
  font-size: 14px !important;
  font-weight: 780 !important;
}

body.dhh-theme.tax-product_cat .woocommerce-ordering select,
body.dhh-theme.woocommerce-shop .woocommerce-ordering select,
body.dhh-theme.post-type-archive-product .woocommerce-ordering select {
  height: 54px !important;
  min-width: 240px !important;
  border-radius: 16px !important;
  padding-left: 18px !important;
  font-size: 15px !important;
  font-weight: 780 !important;
}

/* More breathing space inside product cards */
body.dhh-theme.tax-product_cat ul.products,
body.dhh-theme.woocommerce-shop ul.products,
body.dhh-theme.post-type-archive-product ul.products {
  gap: clamp(22px, 2vw, 30px) !important;
}

body.dhh-theme.tax-product_cat ul.products li.product,
body.dhh-theme.woocommerce-shop ul.products li.product,
body.dhh-theme.post-type-archive-product ul.products li.product {
  padding: clamp(24px, 2.2vw, 30px) !important;
  min-height: 440px !important;
  border-radius: 24px !important;
}

/* Keep image area cleaner and more balanced */
body.dhh-theme.tax-product_cat ul.products li.product img,
body.dhh-theme.woocommerce-shop ul.products li.product img,
body.dhh-theme.post-type-archive-product ul.products li.product img {
  height: 210px !important;
  margin-bottom: 22px !important;
}

/* Product category/meta text */
body.dhh-theme.tax-product_cat ul.products li.product .ast-woo-product-category,
body.dhh-theme.woocommerce-shop ul.products li.product .ast-woo-product-category,
body.dhh-theme.post-type-archive-product ul.products li.product .ast-woo-product-category,
body.dhh-theme.tax-product_cat ul.products li.product .posted_in,
body.dhh-theme.woocommerce-shop ul.products li.product .posted_in,
body.dhh-theme.post-type-archive-product ul.products li.product .posted_in {
  display: block !important;
  margin-bottom: 10px !important;
  color: #98a2b3 !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  font-weight: 650 !important;
}

/* Product title: more readable with proper spacing */
body.dhh-theme.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
body.dhh-theme.woocommerce-shop ul.products li.product .woocommerce-loop-product__title,
body.dhh-theme.post-type-archive-product ul.products li.product .woocommerce-loop-product__title {
  min-height: 66px !important;
  margin-bottom: 18px !important;
  font-size: 17px !important;
  line-height: 1.28 !important;
  letter-spacing: -.035em !important;
  font-weight: 850 !important;
}

/* Price: add vertical separation from title */
body.dhh-theme.tax-product_cat ul.products li.product .price,
body.dhh-theme.woocommerce-shop ul.products li.product .price,
body.dhh-theme.post-type-archive-product ul.products li.product .price {
  display: block !important;
  margin-top: auto !important;
  margin-bottom: 22px !important;
  font-size: 16px !important;
  line-height: 1.45 !important;
  font-weight: 880 !important;
}

/* Button: remove tight pill feeling, add a calmer D&H/Huawei-style CTA */
body.dhh-theme.tax-product_cat ul.products li.product .button,
body.dhh-theme.tax-product_cat ul.products li.product a.button,
body.dhh-theme.woocommerce-shop ul.products li.product .button,
body.dhh-theme.woocommerce-shop ul.products li.product a.button,
body.dhh-theme.post-type-archive-product ul.products li.product .button,
body.dhh-theme.post-type-archive-product ul.products li.product a.button {
  width: 100% !important;
  min-height: 48px !important;
  margin-top: 0 !important;
  padding: 0 18px !important;
  border-radius: 14px !important;
  background: #111827 !important;
  color: #fff !important;
  border: 1px solid #111827 !important;
  display: inline-flex !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  font-size: 14px !important;
  line-height: 1.1 !important;
  font-weight: 850 !important;
  letter-spacing: -.015em !important;
  white-space: normal !important;
  box-shadow: none !important;
}

body.dhh-theme.tax-product_cat ul.products li.product .button:hover,
body.dhh-theme.tax-product_cat ul.products li.product a.button:hover,
body.dhh-theme.woocommerce-shop ul.products li.product .button:hover,
body.dhh-theme.woocommerce-shop ul.products li.product a.button:hover,
body.dhh-theme.post-type-archive-product ul.products li.product .button:hover,
body.dhh-theme.post-type-archive-product ul.products li.product a.button:hover {
  background: #fff !important;
  color: #111827 !important;
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(15,23,42,.13) !important;
}

/* Out of stock overlay/button should not feel cramped */
body.dhh-theme.tax-product_cat ul.products li.product .ast-shop-product-out-of-stock,
body.dhh-theme.woocommerce-shop ul.products li.product .ast-shop-product-out-of-stock,
body.dhh-theme.post-type-archive-product ul.products li.product .ast-shop-product-out-of-stock {
  left: 22px !important;
  right: 22px !important;
  width: auto !important;
  padding: 12px 16px !important;
  border-radius: 14px !important;
  font-size: 14px !important;
  font-weight: 850 !important;
  letter-spacing: -.01em !important;
}

/* If only 5 products on a category page, keep cards aligned and avoid huge empty horizontal overflow */
body.dhh-theme.tax-product_cat ul.products li.product:nth-child(n) {
  align-self: stretch;
}

@media (max-width: 820px) {
  body.dhh-theme.tax-product_cat ul.products li.product,
  body.dhh-theme.woocommerce-shop ul.products li.product,
  body.dhh-theme.post-type-archive-product ul.products li.product {
    min-height: 420px !important;
  }
}

@media (max-width: 560px) {
  body.dhh-theme.tax-product_cat .dhh-shop-loop-shell,
  body.dhh-theme.woocommerce-shop .dhh-shop-loop-shell,
  body.dhh-theme.post-type-archive-product .dhh-shop-loop-shell {
    padding: 18px !important;
  }

  body.dhh-theme.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
  body.dhh-theme.woocommerce-shop ul.products li.product .woocommerce-loop-product__title,
  body.dhh-theme.post-type-archive-product ul.products li.product .woocommerce-loop-product__title {
    min-height: auto !important;
  }
}


/* v2.0.9: Category subcategory links and product navigation polish */
.dhh-category-subcats {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

.dhh-category-subcats a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 16px;
  border-radius: 999px;
  background: #f8fafc;
  border: 1px solid rgba(229,231,235,.95);
  color: #344054;
  text-decoration: none;
  font-size: 13px;
  font-weight: 780;
  box-shadow: 0 8px 24px rgba(15,23,42,.035);
}

.dhh-category-subcats a:hover {
  background: #111827;
  border-color: #111827;
  color: #fff;
}

/* Make product images feel intentionally clickable without creating mid-page focus jumps. */
body.dhh-theme.tax-product_cat ul.products li.product a.woocommerce-LoopProduct-link:focus,
body.dhh-theme.woocommerce-shop ul.products li.product a.woocommerce-LoopProduct-link:focus {
  outline: none;
}

body.dhh-theme.tax-product_cat ul.products li.product a.woocommerce-LoopProduct-link:focus-visible,
body.dhh-theme.woocommerce-shop ul.products li.product a.woocommerce-LoopProduct-link:focus-visible {
  outline: 2px solid #111827;
  outline-offset: 4px;
  border-radius: 14px;
}


/* v2.1.3: Keep compact shop/category header, but revert product-card spacing/button experiments */

/* Remove any old/plugin duplicate archive hero text if D&H Design System plugin is also outputting it. */
body.dhh-theme.woocommerce-shop .dhds-shop-hero,
body.dhh-theme.post-type-archive-product .dhds-shop-hero,
body.dhh-theme.tax-product_cat .dhds-shop-hero,
body.dhh-theme.woocommerce-shop .dhds-shop-hero-copy,
body.dhh-theme.post-type-archive-product .dhds-shop-hero-copy,
body.dhh-theme.tax-product_cat .dhds-shop-hero-copy,
body.dhh-theme.woocommerce-shop .dhds-shop-quickcats,
body.dhh-theme.post-type-archive-product .dhds-shop-quickcats,
body.dhh-theme.tax-product_cat .dhds-shop-quickcats,
body.dhh-theme.woocommerce-shop .dhh-shop-hero,
body.dhh-theme.post-type-archive-product .dhh-shop-hero,
body.dhh-theme.tax-product_cat .dhh-shop-hero {
  display: none !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Compact header for shop/category. */
body.dhh-theme.woocommerce-shop .dhh-category-header,
body.dhh-theme.post-type-archive-product .dhh-category-header,
body.dhh-theme.tax-product_cat .dhh-category-header,
body.dhh-theme .dhh-archive-header {
  width: min(var(--dhh-max), calc(100vw - 48px)) !important;
  max-width: min(var(--dhh-max), calc(100vw - 48px)) !important;
  margin: 30px auto 22px !important;
  padding: 30px 34px !important;
  background: #fff !important;
  border: 1px solid rgba(229,231,235,.86) !important;
  border-radius: 24px !important;
  box-shadow: 0 14px 38px rgba(15,23,42,.045) !important;
  display: block !important;
  clear: both !important;
  float: none !important;
  box-sizing: border-box !important;
}

/* Keep archive full-width/no-sidebar without forcing product-card internal spacing. */
body.dhh-theme.woocommerce-shop .site,
body.dhh-theme.woocommerce-shop .site-content,
body.dhh-theme.woocommerce-shop .ast-container,
body.dhh-theme.woocommerce-shop #content,
body.dhh-theme.woocommerce-shop #primary,
body.dhh-theme.woocommerce-shop main#main,
body.dhh-theme.woocommerce-shop .content-area,
body.dhh-theme.post-type-archive-product .site,
body.dhh-theme.post-type-archive-product .site-content,
body.dhh-theme.post-type-archive-product .ast-container,
body.dhh-theme.post-type-archive-product #content,
body.dhh-theme.post-type-archive-product #primary,
body.dhh-theme.post-type-archive-product main#main,
body.dhh-theme.post-type-archive-product .content-area,
body.dhh-theme.tax-product_cat .site,
body.dhh-theme.tax-product_cat .site-content,
body.dhh-theme.tax-product_cat .ast-container,
body.dhh-theme.tax-product_cat #content,
body.dhh-theme.tax-product_cat #primary,
body.dhh-theme.tax-product_cat main#main,
body.dhh-theme.tax-product_cat .content-area {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  float: none !important;
  clear: both !important;
}

body.dhh-theme.woocommerce-shop #secondary,
body.dhh-theme.post-type-archive-product #secondary,
body.dhh-theme.tax-product_cat #secondary,
body.dhh-theme.woocommerce-shop aside.sidebar-main,
body.dhh-theme.post-type-archive-product aside.sidebar-main,
body.dhh-theme.tax-product_cat aside.sidebar-main,
body.dhh-theme.woocommerce-shop aside.widget-area,
body.dhh-theme.post-type-archive-product aside.widget-area,
body.dhh-theme.tax-product_cat aside.widget-area {
  display: none !important;
  width: 0 !important;
  max-width: 0 !important;
}

body.dhh-theme.woocommerce-shop .dhh-shop-loop-shell,
body.dhh-theme.post-type-archive-product .dhh-shop-loop-shell,
body.dhh-theme.tax-product_cat .dhh-shop-loop-shell {
  width: min(var(--dhh-max), calc(100vw - 48px)) !important;
  max-width: min(var(--dhh-max), calc(100vw - 48px)) !important;
  margin: 0 auto 44px !important;
  clear: both !important;
  display: block !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

/* Restore earlier product card rhythm from before the button-alignment experiments. */
body.dhh-theme.woocommerce-shop ul.products,
body.dhh-theme.post-type-archive-product ul.products,
body.dhh-theme.tax-product_cat ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0,1fr)) !important;
  gap: 22px !important;
}

body.dhh-theme.woocommerce-shop ul.products li.product,
body.dhh-theme.post-type-archive-product ul.products li.product,
body.dhh-theme.tax-product_cat ul.products li.product {
  min-height: 380px !important;
  padding: 20px !important;
}

body.dhh-theme.woocommerce-shop ul.products li.product a.woocommerce-LoopProduct-link,
body.dhh-theme.post-type-archive-product ul.products li.product a.woocommerce-LoopProduct-link,
body.dhh-theme.tax-product_cat ul.products li.product a.woocommerce-LoopProduct-link {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  row-gap: initial !important;
}

body.dhh-theme.woocommerce-shop ul.products li.product img,
body.dhh-theme.post-type-archive-product ul.products li.product img,
body.dhh-theme.tax-product_cat ul.products li.product img {
  height: 190px !important;
  object-fit: contain !important;
  margin: 0 0 18px !important;
}

body.dhh-theme.woocommerce-shop ul.products li.product .woocommerce-loop-product__title,
body.dhh-theme.post-type-archive-product ul.products li.product .woocommerce-loop-product__title,
body.dhh-theme.tax-product_cat ul.products li.product .woocommerce-loop-product__title {
  min-height: 58px !important;
  margin: 0 0 12px !important;
  font-size: 15px !important;
  line-height: 1.28 !important;
  font-weight: 780 !important;
}

body.dhh-theme.woocommerce-shop ul.products li.product .price,
body.dhh-theme.post-type-archive-product ul.products li.product .price,
body.dhh-theme.tax-product_cat ul.products li.product .price {
  margin-top: auto !important;
  margin-bottom: 0 !important;
  min-height: initial !important;
  font-size: 15px !important;
  line-height: 1.35 !important;
}

body.dhh-theme.woocommerce-shop ul.products li.product .button,
body.dhh-theme.woocommerce-shop ul.products li.product a.button,
body.dhh-theme.post-type-archive-product ul.products li.product .button,
body.dhh-theme.post-type-archive-product ul.products li.product a.button,
body.dhh-theme.tax-product_cat ul.products li.product .button,
body.dhh-theme.tax-product_cat ul.products li.product a.button {
  width: auto !important;
  min-height: 42px !important;
  margin-top: 16px !important;
  padding: 0 18px !important;
  border-radius: 999px !important;
  background: #111827 !important;
  color: #fff !important;
  border: 0 !important;
  display: inline-flex !important;
  align-self: flex-start !important;
  justify-content: center !important;
  align-items: center !important;
  font-size: 13px !important;
  font-weight: 850 !important;
}

/* Keep stock/out-of-stock visible again; only style it calmly. */
body.dhh-theme.woocommerce-shop ul.products li.product .ast-shop-product-out-of-stock,
body.dhh-theme.post-type-archive-product ul.products li.product .ast-shop-product-out-of-stock,
body.dhh-theme.tax-product_cat ul.products li.product .ast-shop-product-out-of-stock {
  display: block !important;
}

@media (max-width: 1180px) {
  body.dhh-theme.woocommerce-shop ul.products,
  body.dhh-theme.post-type-archive-product ul.products,
  body.dhh-theme.tax-product_cat ul.products {
    grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  }
}

@media (max-width: 860px) {
  body.dhh-theme.woocommerce-shop ul.products,
  body.dhh-theme.post-type-archive-product ul.products,
  body.dhh-theme.tax-product_cat ul.products {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
}

@media (max-width: 560px) {
  body.dhh-theme.woocommerce-shop .dhh-category-header,
  body.dhh-theme.post-type-archive-product .dhh-category-header,
  body.dhh-theme.tax-product_cat .dhh-category-header,
  body.dhh-theme.woocommerce-shop .dhh-shop-loop-shell,
  body.dhh-theme.post-type-archive-product .dhh-shop-loop-shell,
  body.dhh-theme.tax-product_cat .dhh-shop-loop-shell {
    width: calc(100vw - 28px) !important;
    max-width: calc(100vw - 28px) !important;
  }

  body.dhh-theme.woocommerce-shop ul.products,
  body.dhh-theme.post-type-archive-product ul.products,
  body.dhh-theme.tax-product_cat ul.products {
    grid-template-columns: 1fr !important;
  }
}


/* v2.1.4: Cart coupon/apply button spacing fix */
body.dhh-theme.dhh-cart .coupon,
body.dhh-theme.woocommerce-cart .coupon {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
}

body.dhh-theme.dhh-cart .coupon input.input-text,
body.dhh-theme.woocommerce-cart .coupon input.input-text,
body.dhh-theme.dhh-cart input#coupon_code,
body.dhh-theme.woocommerce-cart input#coupon_code {
  min-width: 190px !important;
  height: 48px !important;
  border-radius: 12px !important;
  border: 1px solid rgba(203,213,225,.95) !important;
  padding: 0 16px !important;
  background: #fff !important;
  font-size: 14px !important;
  box-shadow: none !important;
}

body.dhh-theme.dhh-cart .coupon button.button,
body.dhh-theme.woocommerce-cart .coupon button.button,
body.dhh-theme.dhh-cart button[name="apply_coupon"],
body.dhh-theme.woocommerce-cart button[name="apply_coupon"] {
  min-height: 48px !important;
  min-width: 130px !important;
  padding: 0 20px !important;
  border-radius: 12px !important;
  background: #111827 !important;
  color: #fff !important;
  border: 1px solid #111827 !important;
  font-size: 14px !important;
  line-height: 1.1 !important;
  font-weight: 850 !important;
  letter-spacing: -.01em !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

body.dhh-theme.dhh-cart .coupon button.button:hover,
body.dhh-theme.woocommerce-cart .coupon button.button:hover,
body.dhh-theme.dhh-cart button[name="apply_coupon"]:hover,
body.dhh-theme.woocommerce-cart button[name="apply_coupon"]:hover {
  background: #fff !important;
  color: #111827 !important;
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(15,23,42,.12) !important;
}

body.dhh-theme.dhh-cart button[name="update_cart"],
body.dhh-theme.woocommerce-cart button[name="update_cart"] {
  min-height: 48px !important;
  padding: 0 22px !important;
  border-radius: 999px !important;
  font-size: 14px !important;
  font-weight: 850 !important;
}

/* Override any red Astra/WooCommerce button styling inside cart table. */
body.dhh-theme.woocommerce-cart table.cart td.actions .button {
  background-color: #111827 !important;
  color: #fff !important;
}

body.dhh-theme.woocommerce-cart table.cart td.actions .button:hover {
  background-color: #fff !important;
  color: #111827 !important;
}

@media (max-width: 560px) {
  body.dhh-theme.dhh-cart .coupon,
  body.dhh-theme.woocommerce-cart .coupon {
    width: 100% !important;
  }

  body.dhh-theme.dhh-cart .coupon input.input-text,
  body.dhh-theme.woocommerce-cart .coupon input.input-text,
  body.dhh-theme.dhh-cart .coupon button.button,
  body.dhh-theme.woocommerce-cart .coupon button.button {
    width: 100% !important;
  }
}


/* v2.1.5: Match cart buttons to checkout button style */
body.dhh-theme.dhh-cart .coupon button.button,
body.dhh-theme.woocommerce-cart .coupon button.button,
body.dhh-theme.dhh-cart button[name="apply_coupon"],
body.dhh-theme.woocommerce-cart button[name="apply_coupon"],
body.dhh-theme.dhh-cart button[name="update_cart"],
body.dhh-theme.woocommerce-cart button[name="update_cart"],
body.dhh-theme.dhh-cart .wc-proceed-to-checkout a.checkout-button,
body.dhh-theme.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.dhh-theme.dhh-cart .cart_totals .checkout-button,
body.dhh-theme.woocommerce-cart .cart_totals .checkout-button,
body.dhh-theme.dhh-cart table.cart td.actions .button,
body.dhh-theme.woocommerce-cart table.cart td.actions .button {
  min-height: 54px !important;
  padding: 0 24px !important;
  border-radius: 10px !important;
  background: #111827 !important;
  color: #fff !important;
  border: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  font-size: 15px !important;
  line-height: 1.1 !important;
  font-weight: 850 !important;
  letter-spacing: -0.02em !important;
  white-space: nowrap !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

body.dhh-theme.dhh-cart .coupon button.button:hover,
body.dhh-theme.woocommerce-cart .coupon button.button:hover,
body.dhh-theme.dhh-cart button[name="apply_coupon"]:hover,
body.dhh-theme.woocommerce-cart button[name="apply_coupon"]:hover,
body.dhh-theme.dhh-cart button[name="update_cart"]:hover,
body.dhh-theme.woocommerce-cart button[name="update_cart"]:hover,
body.dhh-theme.dhh-cart .wc-proceed-to-checkout a.checkout-button:hover,
body.dhh-theme.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
body.dhh-theme.dhh-cart .cart_totals .checkout-button:hover,
body.dhh-theme.woocommerce-cart .cart_totals .checkout-button:hover,
body.dhh-theme.dhh-cart table.cart td.actions .button:hover,
body.dhh-theme.woocommerce-cart table.cart td.actions .button:hover {
  background: #0b1220 !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 12px 30px rgba(15,23,42,.16) !important;
}

/* Cart coupon row should visually match the checkout coupon area. */
body.dhh-theme.dhh-cart .coupon input.input-text,
body.dhh-theme.woocommerce-cart .coupon input.input-text,
body.dhh-theme.dhh-cart input#coupon_code,
body.dhh-theme.woocommerce-cart input#coupon_code {
  height: 54px !important;
  border-radius: 10px !important;
  border: 1px solid rgba(203,213,225,.95) !important;
  padding: 0 16px !important;
  font-size: 15px !important;
}

body.dhh-theme.dhh-cart .coupon,
body.dhh-theme.woocommerce-cart .coupon {
  gap: 12px !important;
}

/* Proceed to checkout is the primary CTA and should be full-width in totals card. */
body.dhh-theme.dhh-cart .wc-proceed-to-checkout a.checkout-button,
body.dhh-theme.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.dhh-theme.dhh-cart .cart_totals .checkout-button,
body.dhh-theme.woocommerce-cart .cart_totals .checkout-button {
  width: 100% !important;
}

/* Disabled update basket should remain readable but subdued. */
body.dhh-theme.dhh-cart button[name="update_cart"]:disabled,
body.dhh-theme.woocommerce-cart button[name="update_cart"]:disabled,
body.dhh-theme.dhh-cart table.cart td.actions .button:disabled,
body.dhh-theme.woocommerce-cart table.cart td.actions .button:disabled {
  opacity: .46 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}


/* v2.1.6: Checkout coupon icon language cleanup */
body.dhh-theme .dh-coupon-toggle span:before,
body.dhh-theme .dh-checkout-page .dh-coupon-toggle span:before,
body.dhh-theme.woocommerce-checkout .dh-coupon-toggle span:before {
  content: "%" !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}


/* v2.1.7: Modern 404 page */
body.error404.dhh-theme {
  background: var(--dhh-bg, #f3f5f7);
}

.dhh-404-main {
  width: 100%;
}

.dhh-404-shell {
  width: min(var(--dhh-max, 1180px), calc(100vw - 48px));
  margin: clamp(34px, 5vw, 72px) auto 26px;
  padding: clamp(34px, 5vw, 72px);
  background: linear-gradient(135deg, #fff, #f7fbff);
  border: 1px solid rgba(229,231,235,.9);
  border-radius: 30px;
  box-shadow: 0 22px 70px rgba(15,23,42,.07);
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(280px, .95fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
  overflow: hidden;
  position: relative;
}

.dhh-404-shell:before {
  content: "";
  position: absolute;
  width: 520px;
  height: 520px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(11,92,255,.10), rgba(11,92,255,0) 68%);
  right: -160px;
  top: -170px;
  pointer-events: none;
}

.dhh-404-kicker {
  display: inline-flex;
  margin-bottom: 16px;
  padding: 7px 12px;
  border-radius: 999px;
  background: #eef6ff;
  color: #0b5cff;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.dhh-404-copy h1 {
  max-width: 720px;
  margin: 0;
  color: #111827;
  font-size: clamp(42px, 5vw, 72px);
  line-height: .98;
  letter-spacing: -.065em;
  font-weight: 900;
}

.dhh-404-copy p {
  max-width: 620px;
  margin: 20px 0 0;
  color: #667085;
  font-size: 17px;
  line-height: 1.58;
}

.dhh-404-search {
  display: grid;
  grid-template-columns: 1fr 58px;
  max-width: 560px;
  margin-top: 30px;
  background: #fff;
  border: 1px solid rgba(203,213,225,.95);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 14px 36px rgba(15,23,42,.055);
}

.dhh-404-search input {
  height: 58px;
  border: 0 !important;
  outline: 0;
  box-shadow: none !important;
  padding: 0 20px;
  background: transparent;
  color: #111827;
  font-size: 15px;
}

.dhh-404-search button {
  width: 58px;
  height: 58px;
  border: 0;
  border-left: 1px solid rgba(229,231,235,.95);
  background: #fff;
  color: #111827;
  cursor: pointer;
  font-size: 28px;
  line-height: 1;
  font-weight: 700;
}

.dhh-404-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.dhh-404-actions a {
  min-height: 48px;
  padding: 0 22px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-size: 14px;
  font-weight: 850;
}

.dhh-404-primary {
  background: #111827;
  color: #fff;
  border: 1px solid #111827;
}

.dhh-404-secondary {
  background: #fff;
  color: #111827;
  border: 1px solid rgba(203,213,225,.95);
}

.dhh-404-panel {
  position: relative;
  min-height: 390px;
  display: grid;
  place-items: center;
}

.dhh-404-code {
  position: relative;
  z-index: 2;
  color: #111827;
  font-size: clamp(88px, 13vw, 170px);
  font-weight: 900;
  letter-spacing: -.09em;
  line-height: .8;
}

.dhh-404-card {
  position: absolute;
  border-radius: 24px;
  background: #fff;
  border: 1px solid rgba(229,231,235,.9);
  box-shadow: 0 22px 65px rgba(15,23,42,.10);
}

.dhh-card-1 {
  width: 210px;
  height: 150px;
  transform: rotate(-9deg) translate(-72px, -82px);
}

.dhh-card-2 {
  width: 240px;
  height: 170px;
  transform: rotate(7deg) translate(72px, 78px);
  background: linear-gradient(135deg, #fff, #eefaff);
}

.dhh-card-3 {
  width: 120px;
  height: 88px;
  transform: rotate(13deg) translate(150px, -118px);
  background: #f8fafc;
}

.dhh-404-links {
  width: min(var(--dhh-max, 1180px), calc(100vw - 48px));
  margin: 0 auto clamp(44px, 6vw, 80px);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

.dhh-404-links a {
  min-height: 40px;
  padding: 0 16px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(229,231,235,.9);
  color: #344054;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  font-size: 13px;
  font-weight: 760;
}

.dhh-404-links a:hover {
  background: #111827;
  border-color: #111827;
  color: #fff;
}

@media (max-width: 860px) {
  .dhh-404-shell {
    grid-template-columns: 1fr;
  }

  .dhh-404-panel {
    min-height: 240px;
  }
}

@media (max-width: 560px) {
  .dhh-404-shell,
  .dhh-404-links {
    width: calc(100vw - 28px);
  }

  .dhh-404-shell {
    padding: 28px 22px;
  }

  .dhh-404-actions a {
    width: 100%;
  }
}


/* v2.1.8: 404 page single button and product-only search */
.dhh-404-actions {
  margin-top: 24px;
}

.dhh-404-actions .dhh-404-primary {
  min-width: 210px;
}

.dhh-404-actions .dhh-404-secondary {
  display: none !important;
}

.dhh-404-search input[type="hidden"] {
  display: none !important;
}

.dhh-404-search input[type="search"] {
  -webkit-appearance: none;
  appearance: none;
}

.dhh-404-search input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none;
}


/* v2.1.9: 404 homepage button text contrast fix */
.dhh-404-actions .dhh-404-primary,
.dhh-404-actions .dhh-404-primary:visited,
.dhh-404-actions .dhh-404-primary:hover,
.dhh-404-actions .dhh-404-primary:focus {
  color: #ffffff !important;
}

.dhh-404-actions .dhh-404-primary {
  background: #111827 !important;
  border-color: #111827 !important;
}


/* v2.2.0: My Account redesign */

/* General my-account shell */
body.dhh-theme.dhh-my-account,
body.dhh-theme.woocommerce-account {
  background: var(--dhh-bg, #f3f5f7);
}

body.dhh-theme.dhh-my-account .entry-header,
body.dhh-theme.woocommerce-account .entry-header,
body.dhh-theme.dhh-my-account .entry-title,
body.dhh-theme.woocommerce-account .entry-title {
  display: none !important;
}

body.dhh-theme.dhh-my-account .woocommerce,
body.dhh-theme.woocommerce-account .woocommerce {
  width: min(var(--dhh-max, 1180px), calc(100vw - 48px)) !important;
  max-width: min(var(--dhh-max, 1180px), calc(100vw - 48px)) !important;
  margin: clamp(34px, 5vw, 72px) auto clamp(58px, 7vw, 96px) !important;
}

/* Logged-out account page header */
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce:before {
  content: "My Account";
  display: block;
  text-align: center;
  margin: 0 0 28px;
  color: #111827;
  font-size: clamp(38px, 4vw, 56px);
  line-height: 1;
  letter-spacing: -.06em;
  font-weight: 900;
}

/* Login/register grid */
body.dhh-theme.woocommerce-account:not(.logged-in) .u-columns {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 28px !important;
  align-items: stretch !important;
  width: 100% !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) .u-column1,
body.dhh-theme.woocommerce-account:not(.logged-in) .u-column2 {
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) .u-column1 h2,
body.dhh-theme.woocommerce-account:not(.logged-in) .u-column2 h2 {
  margin: 0 0 18px !important;
  color: #111827 !important;
  font-size: clamp(28px, 3vw, 38px) !important;
  line-height: 1.05 !important;
  letter-spacing: -.055em !important;
  font-weight: 880 !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) form.login,
body.dhh-theme.woocommerce-account:not(.logged-in) form.register,
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce-form-login,
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce-form-register {
  min-height: 360px !important;
  background: #fff !important;
  border: 1px solid rgba(229,231,235,.86) !important;
  border-radius: 26px !important;
  box-shadow: 0 18px 55px rgba(15,23,42,.06) !important;
  padding: clamp(28px, 3.4vw, 46px) !important;
  margin: 0 !important;
}

/* Fields */
body.dhh-theme.woocommerce-account:not(.logged-in) form .form-row {
  margin-bottom: 18px !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) form label {
  color: #667085 !important;
  font-size: 14px !important;
  font-weight: 760 !important;
  margin-bottom: 8px !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) input.input-text,
body.dhh-theme.woocommerce-account:not(.logged-in) input[type="text"],
body.dhh-theme.woocommerce-account:not(.logged-in) input[type="email"],
body.dhh-theme.woocommerce-account:not(.logged-in) input[type="password"] {
  width: 100% !important;
  height: 54px !important;
  border: 1px solid rgba(203,213,225,.95) !important;
  border-radius: 14px !important;
  background: #fff !important;
  padding: 0 16px !important;
  font-size: 15px !important;
  box-shadow: none !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) input.input-text:focus,
body.dhh-theme.woocommerce-account:not(.logged-in) input[type="text"]:focus,
body.dhh-theme.woocommerce-account:not(.logged-in) input[type="email"]:focus,
body.dhh-theme.woocommerce-account:not(.logged-in) input[type="password"]:focus {
  outline: 0 !important;
  border-color: #111827 !important;
  box-shadow: 0 0 0 3px rgba(17,24,39,.07) !important;
}

/* Buttons */
body.dhh-theme.woocommerce-account:not(.logged-in) button.button,
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce-button,
body.dhh-theme.woocommerce-account:not(.logged-in) input[type="submit"] {
  min-width: 150px !important;
  min-height: 52px !important;
  padding: 0 26px !important;
  border-radius: 12px !important;
  border: 1px solid #111827 !important;
  background: #111827 !important;
  color: #fff !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 15px !important;
  line-height: 1.1 !important;
  font-weight: 850 !important;
  letter-spacing: -.02em !important;
  box-shadow: none !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) button.button:hover,
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce-button:hover {
  background: #0b1220 !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 12px 30px rgba(15,23,42,.16) !important;
}

/* Remember/lost password */
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce-form__label-for-checkbox {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  color: #475467 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) .lost_password {
  margin: 14px 0 0 !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) .lost_password a,
body.dhh-theme.woocommerce-account:not(.logged-in) form.register a {
  color: #0b5cff !important;
  text-decoration: none !important;
  font-weight: 760 !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) form.register p {
  color: #667085 !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
}

/* Logged-in account dashboard */
body.dhh-theme.woocommerce-account.logged-in .woocommerce {
  display: grid !important;
  grid-template-columns: 280px minmax(0, 1fr) !important;
  gap: 28px !important;
  align-items: start !important;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content {
  float: none !important;
  width: auto !important;
  background: #fff !important;
  border: 1px solid rgba(229,231,235,.86) !important;
  border-radius: 26px !important;
  box-shadow: 0 18px 55px rgba(15,23,42,.06) !important;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
  padding: 18px !important;
  position: sticky;
  top: 96px;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content {
  padding: clamp(26px, 3vw, 42px) !important;
  min-height: 240px;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li {
  margin: 0 0 6px !important;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a {
  min-height: 44px;
  padding: 0 14px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  color: #344054;
  text-decoration: none;
  font-size: 14px;
  font-weight: 780;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation .is-active a,
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a:hover {
  background: #f3f5f7;
  color: #0b5cff;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content p {
  color: #475467;
  font-size: 15px;
  line-height: 1.6;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content a {
  color: #0b5cff;
  font-weight: 760;
}

/* Account tables/forms */
body.dhh-theme.woocommerce-account table.shop_table {
  border: 1px solid rgba(229,231,235,.9) !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  background: #fff !important;
}

body.dhh-theme.woocommerce-account table.shop_table th,
body.dhh-theme.woocommerce-account table.shop_table td {
  padding: 14px 16px !important;
}

body.dhh-theme.woocommerce-account .addresses .title h3,
body.dhh-theme.woocommerce-account form h3 {
  color: #111827 !important;
  font-size: 24px !important;
  letter-spacing: -.045em !important;
  font-weight: 880 !important;
}

/* Elementor-built My Account page compatibility */
body.dhh-theme.woocommerce-account .elementor-widget-woocommerce-my-account,
body.dhh-theme.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce {
  width: min(var(--dhh-max, 1180px), calc(100vw - 48px)) !important;
  max-width: min(var(--dhh-max, 1180px), calc(100vw - 48px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Mobile */
@media (max-width: 860px) {
  body.dhh-theme.woocommerce-account:not(.logged-in) .u-columns {
    grid-template-columns: 1fr !important;
  }

  body.dhh-theme.woocommerce-account.logged-in .woocommerce {
    display: block !important;
  }

  body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
    position: static;
    margin-bottom: 22px;
  }

  body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul {
    display: flex !important;
    gap: 8px !important;
    overflow-x: auto !important;
    padding-bottom: 4px !important;
  }

  body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li {
    flex: 0 0 auto !important;
  }
}

@media (max-width: 560px) {
  body.dhh-theme.woocommerce-account .woocommerce,
  body.dhh-theme.woocommerce-account .elementor-widget-woocommerce-my-account,
  body.dhh-theme.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce {
    width: calc(100vw - 28px) !important;
    max-width: calc(100vw - 28px) !important;
  }
}


/* v2.2.1: My Account logged-out layout repair */

/* Hide old Elementor page title only on the logged-out account page, but keep form headings. */
body.dhh-theme.woocommerce-account:not(.logged-in) .elementor-widget-heading,
body.dhh-theme.woocommerce-account:not(.logged-in) .page-title,
body.dhh-theme.woocommerce-account:not(.logged-in) .entry-title {
  display: none !important;
}

/* Reset old Elementor/Woo wrappers so the login/register forms sit in one clean row. */
body.dhh-theme.woocommerce-account:not(.logged-in) .entry-content,
body.dhh-theme.woocommerce-account:not(.logged-in) .elementor,
body.dhh-theme.woocommerce-account:not(.logged-in) .elementor-section,
body.dhh-theme.woocommerce-account:not(.logged-in) .elementor-container,
body.dhh-theme.woocommerce-account:not(.logged-in) .e-con,
body.dhh-theme.woocommerce-account:not(.logged-in) .e-con-inner,
body.dhh-theme.woocommerce-account:not(.logged-in) .elementor-widget-woocommerce-my-account,
body.dhh-theme.woocommerce-account:not(.logged-in) .elementor-widget-container {
  width: 100% !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

/* Main Woo account wrapper */
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce {
  width: min(var(--dhh-max, 1180px), calc(100vw - 48px)) !important;
  max-width: min(var(--dhh-max, 1180px), calc(100vw - 48px)) !important;
  margin: clamp(34px, 5vw, 70px) auto clamp(58px, 7vw, 96px) !important;
  display: block !important;
}

/* One centered title */
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce:before {
  content: "My Account";
  display: block !important;
  text-align: center !important;
  margin: 0 0 34px !important;
  color: #111827 !important;
  font-size: clamp(38px, 4vw, 56px) !important;
  line-height: 1 !important;
  letter-spacing: -.06em !important;
  font-weight: 900 !important;
}

/* Actual login/register two-card layout */
body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login,
body.dhh-theme.woocommerce-account:not(.logged-in) .u-columns#customer_login,
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce > .u-columns {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 32px !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) .u-column1,
body.dhh-theme.woocommerce-account:not(.logged-in) .u-column2,
body.dhh-theme.woocommerce-account:not(.logged-in) .col-1,
body.dhh-theme.woocommerce-account:not(.logged-in) .col-2 {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Form headings align naturally with their cards */
body.dhh-theme.woocommerce-account:not(.logged-in) .u-column1 > h2,
body.dhh-theme.woocommerce-account:not(.logged-in) .u-column2 > h2,
body.dhh-theme.woocommerce-account:not(.logged-in) .col-1 > h2,
body.dhh-theme.woocommerce-account:not(.logged-in) .col-2 > h2 {
  margin: 0 0 16px !important;
  color: #111827 !important;
  font-size: clamp(28px, 3vw, 38px) !important;
  line-height: 1.05 !important;
  letter-spacing: -.055em !important;
  font-weight: 880 !important;
}

/* Cards */
body.dhh-theme.woocommerce-account:not(.logged-in) form.login,
body.dhh-theme.woocommerce-account:not(.logged-in) form.register,
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce-form-login,
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce-form-register {
  flex: 1 1 auto !important;
  min-height: 360px !important;
  background: #fff !important;
  border: 1px solid rgba(229,231,235,.86) !important;
  border-radius: 26px !important;
  box-shadow: 0 18px 55px rgba(15,23,42,.06) !important;
  padding: clamp(28px, 3.4vw, 46px) !important;
  margin: 0 !important;
}

/* Remember me + button row: separate them clearly. */
body.dhh-theme.woocommerce-account:not(.logged-in) form.login .form-row:nth-last-of-type(1),
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce-form-login .form-row:nth-last-of-type(1) {
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
  flex-wrap: wrap !important;
  margin-top: 12px !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce-form__label-for-checkbox,
body.dhh-theme.woocommerce-account:not(.logged-in) label.woocommerce-form__label-for-checkbox {
  margin-right: 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  white-space: nowrap !important;
}

/* Login/register buttons */
body.dhh-theme.woocommerce-account:not(.logged-in) button[name="login"],
body.dhh-theme.woocommerce-account:not(.logged-in) button[name="register"],
body.dhh-theme.woocommerce-account:not(.logged-in) button.button.woocommerce-form-login__submit,
body.dhh-theme.woocommerce-account:not(.logged-in) button.button.woocommerce-form-register__submit {
  min-width: 150px !important;
  min-height: 52px !important;
  padding: 0 28px !important;
  margin-left: 0 !important;
  border-radius: 12px !important;
  background: #111827 !important;
  color: #fff !important;
  border: 1px solid #111827 !important;
  font-size: 15px !important;
  font-weight: 850 !important;
}

/* Lost password spacing */
body.dhh-theme.woocommerce-account:not(.logged-in) .lost_password {
  margin: 18px 0 0 !important;
}

/* Prevent old blue theme button from leaking in */
body.dhh-theme.woocommerce-account:not(.logged-in) .button,
body.dhh-theme.woocommerce-account:not(.logged-in) input[type="submit"] {
  background-color: #111827 !important;
  color: #fff !important;
}

/* Logged-in view: keep previous card layout but avoid Elementor width conflict. */
body.dhh-theme.woocommerce-account.logged-in .elementor-widget-container > .woocommerce {
  display: grid !important;
  grid-template-columns: 280px minmax(0, 1fr) !important;
  gap: 28px !important;
}

@media (max-width: 860px) {
  body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login,
  body.dhh-theme.woocommerce-account:not(.logged-in) .u-columns#customer_login,
  body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce > .u-columns {
    grid-template-columns: 1fr !important;
  }

  body.dhh-theme.woocommerce-account.logged-in .elementor-widget-container > .woocommerce {
    display: block !important;
  }
}

@media (max-width: 560px) {
  body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce {
    width: calc(100vw - 28px) !important;
    max-width: calc(100vw - 28px) !important;
  }
}


/* v2.2.2: My Account login/register alignment hard fix
   Force WooCommerce logged-out account columns into one aligned row. */
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce #customer_login,
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce .col2-set#customer_login,
body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login.u-columns,
body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login.col2-set {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  grid-template-areas: "login register" !important;
  gap: 32px !important;
  align-items: start !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: 0 !important;
  clear: both !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login:before,
body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login:after,
body.dhh-theme.woocommerce-account:not(.logged-in) .col2-set#customer_login:before,
body.dhh-theme.woocommerce-account:not(.logged-in) .col2-set#customer_login:after {
  content: none !important;
  display: none !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login > .u-column1,
body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login > .col-1 {
  grid-area: login !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login > .u-column2,
body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login > .col-2 {
  grid-area: register !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login > .u-column1,
body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login > .u-column2,
body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login > .col-1,
body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login > .col-2 {
  float: none !important;
  clear: none !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  position: static !important;
  transform: none !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login > .u-column1 > h2,
body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login > .u-column2 > h2,
body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login > .col-1 > h2,
body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login > .col-2 > h2 {
  display: block !important;
  margin: 0 0 18px !important;
  padding: 0 !important;
  text-align: left !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login form.login,
body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login form.register {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 390px !important;
  margin: 0 !important;
}

/* Remove any accidental top/left offsets from old Elementor/account styling. */
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce .u-column1,
body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce .u-column2 {
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
}

/* Login button row spacing */
body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login form.login .form-row:last-of-type,
body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login .woocommerce-form-login .form-row:last-of-type {
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
  flex-wrap: wrap !important;
}

body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login button[name="login"] {
  margin-left: 0 !important;
}

@media (max-width: 860px) {
  body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce #customer_login,
  body.dhh-theme.woocommerce-account:not(.logged-in) .woocommerce .col2-set#customer_login,
  body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login.u-columns,
  body.dhh-theme.woocommerce-account:not(.logged-in) #customer_login.col2-set {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "login"
      "register" !important;
  }
}


/* v2.2.3: Logged-in My Account layout repair */

/* Hide legacy Elementor heading on logged-in account page too */
body.dhh-theme.woocommerce-account.logged-in .elementor-widget-heading,
body.dhh-theme.woocommerce-account.logged-in .page-title,
body.dhh-theme.woocommerce-account.logged-in .entry-title {
  display: none !important;
}

/* Reset Elementor wrappers so Woo account can control its own layout */
body.dhh-theme.woocommerce-account.logged-in .entry-content,
body.dhh-theme.woocommerce-account.logged-in .elementor,
body.dhh-theme.woocommerce-account.logged-in .elementor-section,
body.dhh-theme.woocommerce-account.logged-in .elementor-container,
body.dhh-theme.woocommerce-account.logged-in .e-con,
body.dhh-theme.woocommerce-account.logged-in .e-con-inner,
body.dhh-theme.woocommerce-account.logged-in .elementor-widget-woocommerce-my-account,
body.dhh-theme.woocommerce-account.logged-in .elementor-widget-woocommerce-my-account .elementor-widget-container {
  width: 100% !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

/* The actual WooCommerce My Account shell */
body.dhh-theme.woocommerce-account.logged-in .woocommerce,
body.dhh-theme.woocommerce-account.logged-in .elementor-widget-woocommerce-my-account .woocommerce,
body.dhh-theme.woocommerce-account.logged-in .elementor-widget-container > .woocommerce {
  width: min(var(--dhh-max, 1180px), calc(100vw - 48px)) !important;
  max-width: min(var(--dhh-max, 1180px), calc(100vw - 48px)) !important;
  margin: clamp(34px, 5vw, 70px) auto clamp(58px, 7vw, 96px) !important;
  display: grid !important;
  grid-template-columns: 280px minmax(0, 1fr) !important;
  grid-template-areas: "account-nav account-content" !important;
  gap: 28px !important;
  align-items: start !important;
}

/* Force nav and content into the correct grid positions */
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
  grid-area: account-nav !important;
  width: 100% !important;
  max-width: 280px !important;
  min-width: 0 !important;
  float: none !important;
  margin: 0 !important;
  padding: 18px !important;
  position: sticky !important;
  top: 96px !important;
  background: #fff !important;
  border: 1px solid rgba(229,231,235,.86) !important;
  border-radius: 26px !important;
  box-shadow: 0 18px 55px rgba(15,23,42,.06) !important;
  box-sizing: border-box !important;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content {
  grid-area: account-content !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  float: none !important;
  margin: 0 !important;
  padding: clamp(26px, 3vw, 42px) !important;
  background: #fff !important;
  border: 1px solid rgba(229,231,235,.86) !important;
  border-radius: 26px !important;
  box-shadow: 0 18px 55px rgba(15,23,42,.06) !important;
  min-height: 260px !important;
  box-sizing: border-box !important;
}

/* Navigation should be vertical and readable */
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  overflow: visible !important;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li {
  display: block !important;
  width: 100% !important;
  margin: 0 0 6px !important;
  padding: 0 !important;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a {
  min-height: 44px !important;
  padding: 0 14px !important;
  border-radius: 14px !important;
  display: flex !important;
  align-items: center !important;
  color: #344054 !important;
  background: transparent !important;
  text-decoration: none !important;
  font-size: 14px !important;
  font-weight: 780 !important;
  line-height: 1.2 !important;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation .is-active a,
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a:hover {
  background: #f3f5f7 !important;
  color: #0b5cff !important;
}

/* Dashboard content */
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content p {
  color: #475467 !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
  max-width: 760px !important;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content a {
  color: #0b5cff !important;
  font-weight: 760 !important;
  text-decoration: none !important;
}

/* Notice should not become a narrow vertical box */
body.dhh-theme.woocommerce-account.logged-in .woocommerce-Message,
body.dhh-theme.woocommerce-account.logged-in .woocommerce-info,
body.dhh-theme.woocommerce-account.logged-in .woocommerce-message {
  width: 100% !important;
  max-width: 100% !important;
  border-radius: 16px !important;
  padding: 16px 18px !important;
  line-height: 1.5 !important;
}

/* Tables/forms inside account content */
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content table.shop_table {
  width: 100% !important;
  margin: 0 !important;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content input.input-text,
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="text"],
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="email"],
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="password"],
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content select {
  min-height: 48px !important;
  border-radius: 12px !important;
  border: 1px solid rgba(203,213,225,.95) !important;
  padding: 0 14px !important;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content button.button,
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content .button {
  min-height: 46px !important;
  padding: 0 20px !important;
  border-radius: 12px !important;
  background: #111827 !important;
  color: #fff !important;
  border: 1px solid #111827 !important;
  font-weight: 850 !important;
}

/* Responsive logged-in account */
@media (max-width: 860px) {
  body.dhh-theme.woocommerce-account.logged-in .woocommerce,
  body.dhh-theme.woocommerce-account.logged-in .elementor-widget-woocommerce-my-account .woocommerce,
  body.dhh-theme.woocommerce-account.logged-in .elementor-widget-container > .woocommerce {
    display: block !important;
    width: calc(100vw - 28px) !important;
    max-width: calc(100vw - 28px) !important;
  }

  body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
    position: static !important;
    max-width: none !important;
    margin-bottom: 22px !important;
  }

  body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul {
    display: flex !important;
    gap: 8px !important;
    overflow-x: auto !important;
    padding-bottom: 4px !important;
  }

  body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li {
    flex: 0 0 auto !important;
    width: auto !important;
  }

  body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a {
    white-space: nowrap !important;
  }
}


/* v2.2.4: My Account notice icon/text overlap fix */
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-message,
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-info,
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-error,
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Message {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 64px !important;
  padding: 18px 22px 18px 58px !important;
  margin: 0 0 28px !important;
  border-radius: 18px !important;
  border: 1px solid rgba(229,231,235,.9) !important;
  border-left: 4px solid #0b5cff !important;
  background: #f8fafc !important;
  color: #344054 !important;
  line-height: 1.55 !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-message:before,
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-info:before,
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-error:before,
body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Message:before {
  position: absolute !important;
  left: 22px !important;
  top: 20px !important;
  margin: 0 !important;
  width: 20px !important;
  height: 20px !important;
  line-height: 20px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #0b5cff !important;
  font-size: 15px !important;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-error {
  border-left-color: #d8102a !important;
}

body.dhh-theme.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-error:before {
  color: #d8102a !important;
}


/* v2.2.5: Find Your Order / Order Tracking page redesign */

/* Generic support for order tracking pages, including legacy Elementor pages */
body.dhh-theme :is(.woocommerce-form-track-order, form.track_order),
body.dhh-theme :is(.woocommerce-form-login, form.login) {
  box-sizing: border-box;
}

/* Page-level container for likely order tracking pages */
body.dhh-theme .entry-content:has(.woocommerce-form-track-order),
body.dhh-theme .entry-content:has(form.track_order) {
  width: min(var(--dhh-max, 1180px), calc(100vw - 48px)) !important;
  max-width: min(var(--dhh-max, 1180px), calc(100vw - 48px)) !important;
  margin: clamp(34px, 5vw, 70px) auto clamp(58px, 7vw, 96px) !important;
}

/* If the page was built with Elementor columns, make the section look like one D&H checkout-style panel */
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) .elementor-section,
body.dhh-theme .entry-content:has(form.track_order) .elementor-section,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) .e-con,
body.dhh-theme .entry-content:has(form.track_order) .e-con {
  background: transparent !important;
}

body.dhh-theme .entry-content:has(.woocommerce-form-track-order) > *,
body.dhh-theme .entry-content:has(form.track_order) > * {
  box-sizing: border-box;
}

/* Main heading */
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) h1,
body.dhh-theme .entry-content:has(form.track_order) h1,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) h2:first-child,
body.dhh-theme .entry-content:has(form.track_order) h2:first-child {
  margin: 0 0 clamp(24px, 3vw, 36px) !important;
  color: #111827 !important;
  text-align: center !important;
  font-size: clamp(38px, 4vw, 56px) !important;
  line-height: 1 !important;
  letter-spacing: -.06em !important;
  font-weight: 900 !important;
}

/* Two-column layout when forms sit inside columns or direct wrappers */
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) .elementor-container,
body.dhh-theme .entry-content:has(form.track_order) .elementor-container,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) .e-con-inner,
body.dhh-theme .entry-content:has(form.track_order) .e-con-inner {
  max-width: var(--dhh-max, 1180px) !important;
}

/* Card styling for both login and order lookup blocks */
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) form.login,
body.dhh-theme .entry-content:has(form.track_order) form.login,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) .woocommerce-form-login,
body.dhh-theme .entry-content:has(form.track_order) .woocommerce-form-login,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) form.track_order,
body.dhh-theme .entry-content:has(form.track_order) form.track_order,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) .woocommerce-form-track-order {
  background: #fff !important;
  border: 1px solid rgba(229,231,235,.86) !important;
  border-radius: 26px !important;
  box-shadow: 0 18px 55px rgba(15,23,42,.06) !important;
  padding: clamp(28px, 3.4vw, 46px) !important;
  margin: 0 !important;
}

/* Legacy page sections with headings beside each form */
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) h2,
body.dhh-theme .entry-content:has(form.track_order) h2,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) h3,
body.dhh-theme .entry-content:has(form.track_order) h3 {
  color: #111827 !important;
  font-size: clamp(24px, 2.5vw, 34px) !important;
  line-height: 1.08 !important;
  letter-spacing: -.05em !important;
  font-weight: 880 !important;
  margin: 0 0 18px !important;
}

body.dhh-theme .entry-content:has(.woocommerce-form-track-order) p,
body.dhh-theme .entry-content:has(form.track_order) p {
  color: #667085 !important;
  font-size: 15px !important;
  line-height: 1.58 !important;
}

/* Form rows and labels */
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) form .form-row,
body.dhh-theme .entry-content:has(form.track_order) form .form-row,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) form p,
body.dhh-theme .entry-content:has(form.track_order) form p {
  margin-bottom: 18px !important;
}

body.dhh-theme .entry-content:has(.woocommerce-form-track-order) form label,
body.dhh-theme .entry-content:has(form.track_order) form label {
  color: #667085 !important;
  font-size: 14px !important;
  font-weight: 760 !important;
  margin-bottom: 8px !important;
}

/* Inputs */
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) input.input-text,
body.dhh-theme .entry-content:has(form.track_order) input.input-text,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) input[type="text"],
body.dhh-theme .entry-content:has(form.track_order) input[type="text"],
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) input[type="email"],
body.dhh-theme .entry-content:has(form.track_order) input[type="email"],
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) input[type="password"],
body.dhh-theme .entry-content:has(form.track_order) input[type="password"] {
  width: 100% !important;
  height: 54px !important;
  border: 1px solid rgba(203,213,225,.95) !important;
  border-radius: 14px !important;
  background: #fff !important;
  padding: 0 16px !important;
  color: #111827 !important;
  font-size: 15px !important;
  box-shadow: none !important;
}

body.dhh-theme .entry-content:has(.woocommerce-form-track-order) input:focus,
body.dhh-theme .entry-content:has(form.track_order) input:focus {
  outline: 0 !important;
  border-color: #111827 !important;
  box-shadow: 0 0 0 3px rgba(17,24,39,.07) !important;
}

/* Buttons match checkout style */
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) button.button,
body.dhh-theme .entry-content:has(form.track_order) button.button,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) .button,
body.dhh-theme .entry-content:has(form.track_order) .button,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) input[type="submit"],
body.dhh-theme .entry-content:has(form.track_order) input[type="submit"] {
  min-width: 150px !important;
  min-height: 52px !important;
  padding: 0 26px !important;
  border-radius: 12px !important;
  border: 1px solid #111827 !important;
  background: #111827 !important;
  color: #fff !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 15px !important;
  line-height: 1.1 !important;
  font-weight: 850 !important;
  letter-spacing: -.02em !important;
  box-shadow: none !important;
}

body.dhh-theme .entry-content:has(.woocommerce-form-track-order) button.button:hover,
body.dhh-theme .entry-content:has(form.track_order) button.button:hover,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) .button:hover,
body.dhh-theme .entry-content:has(form.track_order) .button:hover {
  background: #0b1220 !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 12px 30px rgba(15,23,42,.16) !important;
}

/* Remember me / lost password */
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) .woocommerce-form__label-for-checkbox,
body.dhh-theme .entry-content:has(form.track_order) .woocommerce-form__label-for-checkbox {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  color: #475467 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
}

body.dhh-theme .entry-content:has(.woocommerce-form-track-order) .lost_password,
body.dhh-theme .entry-content:has(form.track_order) .lost_password {
  margin: 14px 0 0 !important;
}

body.dhh-theme .entry-content:has(.woocommerce-form-track-order) .lost_password a,
body.dhh-theme .entry-content:has(form.track_order) .lost_password a {
  color: #0b5cff !important;
  text-decoration: none !important;
  font-weight: 760 !important;
}

/* If the page is old Elementor two columns, keep them aligned */
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) .elementor-column,
body.dhh-theme .entry-content:has(form.track_order) .elementor-column,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) .e-con,
body.dhh-theme .entry-content:has(form.track_order) .e-con {
  align-self: stretch !important;
}

/* Mobile */
@media (max-width: 860px) {
  body.dhh-theme .entry-content:has(.woocommerce-form-track-order),
  body.dhh-theme .entry-content:has(form.track_order) {
    width: calc(100vw - 28px) !important;
    max-width: calc(100vw - 28px) !important;
  }
}


/* v2.2.6: Back-to-top duplicate fix + Find Order button spacing */

/* Single product page: hide duplicated scroll/back-to-top buttons from plugins/widgets.
   Keep the D&H button or Astra's button, but not both. */
body.dhh-theme.single-product :is(
  .e-scroll-to-top,
  .elementor-scroll-to-top,
  .eael-ext-scroll-to-top,
  .premium-scroll-to-top,
  .htmega-scrollup,
  .scrollup,
  .scroll-to-top,
  .back-to-top,
  .back-to-top-wrapper,
  #back-to-top,
  #scroll-top,
  #scrollUp
):not(.ast-scroll-top):not(.dhds-back-to-top) {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
}

/* If both Astra and D&H back-to-top buttons exist, prefer the D&H button. */
body.dhh-theme.single-product:has(.dhds-back-to-top) .ast-scroll-top {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
}

/* Normalize the remaining back-to-top button so it sits cleanly in one position. */
body.dhh-theme .dhds-back-to-top,
body.dhh-theme .ast-scroll-top {
  right: 24px !important;
  bottom: 24px !important;
  z-index: 9999 !important;
}

/* Find Your Order / Order Tracking page: make Track / Login buttons match checkout style
   and prevent old red/tight buttons from leaking through. */
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) button.button,
body.dhh-theme .entry-content:has(form.track_order) button.button,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) .button,
body.dhh-theme .entry-content:has(form.track_order) .button,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) input[type="submit"],
body.dhh-theme .entry-content:has(form.track_order) input[type="submit"] {
  min-height: 54px !important;
  min-width: 150px !important;
  padding: 0 26px !important;
  border-radius: 12px !important;
  background: #111827 !important;
  color: #fff !important;
  border: 1px solid #111827 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 15px !important;
  line-height: 1.1 !important;
  font-weight: 850 !important;
  letter-spacing: -.02em !important;
  box-shadow: none !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

body.dhh-theme .entry-content:has(.woocommerce-form-track-order) button.button:hover,
body.dhh-theme .entry-content:has(form.track_order) button.button:hover,
body.dhh-theme .entry-content:has(.woocommerce-form-track-order) .button:hover,
body.dhh-theme .entry-content:has(form.track_order) .button:hover {
  background: #0b1220 !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 12px 30px rgba(15,23,42,.16) !important;
}

body.dhh-theme .entry-content:has(.woocommerce-form-track-order),
body.dhh-theme .entry-content:has(form.track_order) {
  padding-top: clamp(32px, 4vw, 56px) !important;
  padding-bottom: clamp(40px, 5vw, 72px) !important;
}

body.dhh-theme .entry-content:has(.woocommerce-form-track-order) form,
body.dhh-theme .entry-content:has(form.track_order) form {
  margin-top: 16px !important;
}


/* v2.2.7: Search overlay opacity adjustment
   Make all D&H/header/search panels 90% opaque so product results are readable. */
body.dhh-theme :is(
  .dhds-search-panel,
  .dhds-search-overlay,
  .dhds-search-modal,
  .dhds-search-backdrop,
  .dhds-search-results,
  .dhds-search-results-panel,
  .dhds-live-search,
  .dhds-header-search-panel,
  .dhds-sticky-search-panel,
  .dhds-search-suggestions,
  .dhds-search-dropdown
) {
  background-color: rgba(255, 255, 255, 0.90) !important;
  backdrop-filter: blur(18px) saturate(1.1) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.1) !important;
}

/* Some search wrappers use pseudo-elements for their glass background. */
body.dhh-theme :is(
  .dhds-search-panel,
  .dhds-search-overlay,
  .dhds-search-modal,
  .dhds-header-search-panel,
  .dhds-sticky-search-panel
)::before,
body.dhh-theme :is(
  .dhds-search-panel,
  .dhds-search-overlay,
  .dhds-search-modal,
  .dhds-header-search-panel,
  .dhds-sticky-search-panel
)::after {
  background-color: rgba(255, 255, 255, 0.90) !important;
  opacity: 1 !important;
}

/* Search input itself should remain near-solid for readability. */
body.dhh-theme :is(
  .dhds-search-panel,
  .dhds-search-overlay,
  .dhds-search-modal,
  .dhds-header-search-panel,
  .dhds-sticky-search-panel
) input[type="search"],
body.dhh-theme :is(
  .dhds-search-panel,
  .dhds-search-overlay,
  .dhds-search-modal,
  .dhds-header-search-panel,
  .dhds-sticky-search-panel
) input[type="text"] {
  background-color: rgba(255, 255, 255, 0.96) !important;
}

/* Product result cards should be readable while still matching the glass style. */
body.dhh-theme :is(
  .dhds-search-result,
  .dhds-search-product,
  .dhds-search-results li,
  .dhds-search-results a
) {
  background-color: rgba(255, 255, 255, 0.92) !important;
}


/* v2.2.8: Empty cart 'Return to shop' button matches theme CTA */
body.dhh-theme.dhh-cart .return-to-shop .button.wc-backward,
body.dhh-theme.woocommerce-cart .return-to-shop .button.wc-backward,
body.dhh-theme .woocommerce .return-to-shop .button.wc-backward {
  min-height: 54px !important;
  padding: 0 24px !important;
  border-radius: 10px !important;
  background: #111827 !important;
  color: #ffffff !important;
  border: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  font-size: 15px !important;
  line-height: 1.1 !important;
  font-weight: 850 !important;
  letter-spacing: -0.02em !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

body.dhh-theme.dhh-cart .return-to-shop .button.wc-backward:hover,
body.dhh-theme.woocommerce-cart .return-to-shop .button.wc-backward:hover,
body.dhh-theme .woocommerce .return-to-shop .button.wc-backward:hover {
  background: #0b1220 !important;
  color: #ffffff !important;
  transform: translateY(-1px);
  box-shadow: 0 12px 30px rgba(15,23,42,.16) !important;
}


/* v2.2.9: Back-to-top duplicate/initial overlay fix
   Video analysis: on first page load, Astra and D&H/plugin back-to-top buttons can both be visible
   at the same fixed position. After scrolling, one script updates state and it looks normal.
   This CSS prevents the initial double layer by keeping only one button. */

/* Hide common duplicate scroll/back-to-top buttons from plugins/widgets. */
body.dhh-theme :is(
  .e-scroll-to-top,
  .elementor-scroll-to-top,
  .eael-ext-scroll-to-top,
  .premium-scroll-to-top,
  .htmega-scrollup,
  .scrollup,
  .scroll-to-top,
  .back-to-top,
  .back-to-top-wrapper,
  #back-to-top,
  #scroll-top,
  #scrollUp
):not(.ast-scroll-top):not(.dhds-back-to-top) {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
}

/* If D&H Design System back-to-top exists, use it and hide Astra's duplicate from initial load. */
body.dhh-theme:has(.dhds-back-to-top) .ast-scroll-top,
body.dhh-theme:has(.dhds-back-to-top) #ast-scroll-top {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
}

/* If there is no D&H button, Astra can remain as the single fallback button. */
body.dhh-theme .dhds-back-to-top,
body.dhh-theme .ast-scroll-top {
  right: 24px !important;
  bottom: 24px !important;
  z-index: 9999 !important;
}

/* Ensure the surviving D&H button has a single solid visual layer. */
body.dhh-theme .dhds-back-to-top {
  background: #111827 !important;
  color: #ffffff !important;
  border: 0 !important;
  box-shadow: 0 12px 30px rgba(15,23,42,.18) !important;
}

body.dhh-theme .dhds-back-to-top::before,
body.dhh-theme .dhds-back-to-top::after {
  box-shadow: none !important;
}


/* v2.2.10: Mobile header logo/action icon overlap fix */
@media (max-width: 767px) {
  body.dhh-theme .dhds-header-inner,
  body.dhh-theme .dhds-header-bar,
  body.dhh-theme .dhds-main-header-inner,
  body.dhh-theme .site-header .ast-container,
  body.dhh-theme .main-header-bar .ast-container,
  body.dhh-theme .ast-primary-header-bar .ast-container {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: wrap !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
    overflow: visible !important;
  }

  body.dhh-theme .dhds-logo,
  body.dhh-theme .dhds-site-logo,
  body.dhh-theme .site-branding,
  body.dhh-theme .ast-site-identity,
  body.dhh-theme .site-logo-img,
  body.dhh-theme .custom-logo-link {
    flex: 0 1 calc(100% - 140px) !important;
    max-width: calc(100% - 140px) !important;
    min-width: 0 !important;
    overflow: hidden !important;
    position: relative !important;
    z-index: 2 !important;
  }

  body.dhh-theme .dhds-logo img,
  body.dhh-theme .dhds-site-logo img,
  body.dhh-theme .site-branding img,
  body.dhh-theme .ast-site-identity img,
  body.dhh-theme .site-logo-img img,
  body.dhh-theme .custom-logo {
    width: auto !important;
    max-width: 100% !important;
    max-height: 34px !important;
    object-fit: contain !important;
    display: block !important;
  }

  body.dhh-theme .dhds-header-actions,
  body.dhh-theme .dhds-icons,
  body.dhh-theme .dhds-action-icons,
  body.dhh-theme .dhds-header-icons {
    flex: 0 0 auto !important;
    min-width: 118px !important;
    max-width: 138px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 12px !important;
    position: relative !important;
    z-index: 5 !important;
    margin-left: auto !important;
  }

  body.dhh-theme .dhds-header-actions a,
  body.dhh-theme .dhds-icons a,
  body.dhh-theme .dhds-action-icons a,
  body.dhh-theme .dhds-header-icons a,
  body.dhh-theme .dhds-header-actions button,
  body.dhh-theme .dhds-icons button,
  body.dhh-theme .dhds-action-icons button,
  body.dhh-theme .dhds-header-icons button {
    flex: 0 0 auto !important;
    width: 28px !important;
    min-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.dhh-theme .dhds-primary-nav,
  body.dhh-theme .dhds-menu,
  body.dhh-theme .dhds-main-menu,
  body.dhh-theme .main-navigation,
  body.dhh-theme .ast-main-header-bar-alignment,
  body.dhh-theme .ast-builder-menu {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    order: 20 !important;
    margin-top: 12px !important;
    display: flex !important;
    justify-content: center !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    white-space: nowrap !important;
  }

  body.dhh-theme .dhds-primary-nav ul,
  body.dhh-theme .dhds-menu ul,
  body.dhh-theme .dhds-main-menu ul,
  body.dhh-theme .main-navigation ul,
  body.dhh-theme .ast-builder-menu ul {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 22px !important;
    justify-content: flex-start !important;
    min-width: max-content !important;
  }
}

@media (max-width: 390px) {
  body.dhh-theme .dhds-logo img,
  body.dhh-theme .dhds-site-logo img,
  body.dhh-theme .site-branding img,
  body.dhh-theme .ast-site-identity img,
  body.dhh-theme .site-logo-img img,
  body.dhh-theme .custom-logo {
    max-height: 30px !important;
  }

  body.dhh-theme .dhds-logo,
  body.dhh-theme .dhds-site-logo,
  body.dhh-theme .site-branding,
  body.dhh-theme .ast-site-identity,
  body.dhh-theme .site-logo-img,
  body.dhh-theme .custom-logo-link {
    flex-basis: calc(100% - 126px) !important;
    max-width: calc(100% - 126px) !important;
  }

  body.dhh-theme .dhds-header-actions,
  body.dhh-theme .dhds-icons,
  body.dhh-theme .dhds-action-icons,
  body.dhh-theme .dhds-header-icons {
    min-width: 108px !important;
    gap: 9px !important;
  }
}



/* v2.2.11: Stronger mobile header logo shrink
   Previous fix still allowed the wide logo to overlap the icon area on some phones.
   This reserves a larger right-side icon lane and hard-limits logo width. */
@media (max-width: 767px) {
  body.dhh-theme .dhds-header-inner,
  body.dhh-theme .dhds-header-bar,
  body.dhh-theme .dhds-main-header-inner,
  body.dhh-theme .site-header .ast-container,
  body.dhh-theme .main-header-bar .ast-container,
  body.dhh-theme .ast-primary-header-bar .ast-container {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    column-gap: 8px !important;
    row-gap: 0 !important;
  }

  body.dhh-theme .dhds-logo,
  body.dhh-theme .dhds-site-logo,
  body.dhh-theme .site-branding,
  body.dhh-theme .ast-site-identity,
  body.dhh-theme .site-logo-img,
  body.dhh-theme .custom-logo-link {
    flex: 0 1 min(230px, calc(100% - 166px)) !important;
    width: min(230px, calc(100% - 166px)) !important;
    max-width: min(230px, calc(100% - 166px)) !important;
    min-width: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  body.dhh-theme .dhds-logo img,
  body.dhh-theme .dhds-site-logo img,
  body.dhh-theme .site-branding img,
  body.dhh-theme .ast-site-identity img,
  body.dhh-theme .site-logo-img img,
  body.dhh-theme .custom-logo {
    max-width: 100% !important;
    width: 100% !important;
    height: auto !important;
    max-height: 29px !important;
    object-fit: contain !important;
    object-position: left center !important;
  }

  body.dhh-theme .dhds-header-actions,
  body.dhh-theme .dhds-icons,
  body.dhh-theme .dhds-action-icons,
  body.dhh-theme .dhds-header-icons {
    flex: 0 0 146px !important;
    width: 146px !important;
    min-width: 146px !important;
    max-width: 146px !important;
    margin-left: auto !important;
    justify-content: flex-end !important;
    gap: 11px !important;
    position: relative !important;
    z-index: 20 !important;
    background: rgba(255,255,255,.96) !important;
  }
}

@media (max-width: 430px) {
  body.dhh-theme .dhds-logo,
  body.dhh-theme .dhds-site-logo,
  body.dhh-theme .site-branding,
  body.dhh-theme .ast-site-identity,
  body.dhh-theme .site-logo-img,
  body.dhh-theme .custom-logo-link {
    flex-basis: min(210px, calc(100% - 160px)) !important;
    width: min(210px, calc(100% - 160px)) !important;
    max-width: min(210px, calc(100% - 160px)) !important;
  }

  body.dhh-theme .dhds-logo img,
  body.dhh-theme .dhds-site-logo img,
  body.dhh-theme .site-branding img,
  body.dhh-theme .ast-site-identity img,
  body.dhh-theme .site-logo-img img,
  body.dhh-theme .custom-logo {
    max-height: 27px !important;
  }

  body.dhh-theme .dhds-header-actions,
  body.dhh-theme .dhds-icons,
  body.dhh-theme .dhds-action-icons,
  body.dhh-theme .dhds-header-icons {
    flex-basis: 138px !important;
    width: 138px !important;
    min-width: 138px !important;
    max-width: 138px !important;
    gap: 9px !important;
  }
}

@media (max-width: 380px) {
  body.dhh-theme .dhds-logo,
  body.dhh-theme .dhds-site-logo,
  body.dhh-theme .site-branding,
  body.dhh-theme .ast-site-identity,
  body.dhh-theme .site-logo-img,
  body.dhh-theme .custom-logo-link {
    flex-basis: min(190px, calc(100% - 148px)) !important;
    width: min(190px, calc(100% - 148px)) !important;
    max-width: min(190px, calc(100% - 148px)) !important;
  }

  body.dhh-theme .dhds-logo img,
  body.dhh-theme .dhds-site-logo img,
  body.dhh-theme .site-branding img,
  body.dhh-theme .ast-site-identity img,
  body.dhh-theme .site-logo-img img,
  body.dhh-theme .custom-logo {
    max-height: 25px !important;
  }

  body.dhh-theme .dhds-header-actions,
  body.dhh-theme .dhds-icons,
  body.dhh-theme .dhds-action-icons,
  body.dhh-theme .dhds-header-icons {
    flex-basis: 128px !important;
    width: 128px !important;
    min-width: 128px !important;
    max-width: 128px !important;
    gap: 7px !important;
  }
}


/* v2.2.12: Mobile header split into two rows
   Put the logo on its own first row and the action icons on a second row
   to completely avoid overlap on narrow screens. */
@media (max-width: 767px) {
  body.dhh-theme .dhds-header-inner,
  body.dhh-theme .dhds-header-bar,
  body.dhh-theme .dhds-main-header-inner,
  body.dhh-theme .site-header .ast-container,
  body.dhh-theme .main-header-bar .ast-container,
  body.dhh-theme .ast-primary-header-bar .ast-container {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    row-gap: 10px !important;
  }

  body.dhh-theme .dhds-logo,
  body.dhh-theme .dhds-site-logo,
  body.dhh-theme .site-branding,
  body.dhh-theme .ast-site-identity,
  body.dhh-theme .site-logo-img,
  body.dhh-theme .custom-logo-link {
    order: 1 !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  body.dhh-theme .dhds-logo img,
  body.dhh-theme .dhds-site-logo img,
  body.dhh-theme .site-branding img,
  body.dhh-theme .ast-site-identity img,
  body.dhh-theme .site-logo-img img,
  body.dhh-theme .custom-logo {
    width: auto !important;
    max-width: 220px !important;
    height: auto !important;
    max-height: 28px !important;
    object-fit: contain !important;
    object-position: left center !important;
  }

  body.dhh-theme .dhds-header-actions,
  body.dhh-theme .dhds-icons,
  body.dhh-theme .dhds-action-icons,
  body.dhh-theme .dhds-header-icons {
    order: 2 !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 12px !important;
    margin-left: 0 !important;
    padding-top: 2px !important;
    background: transparent !important;
    position: relative !important;
    z-index: 20 !important;
  }
}

@media (max-width: 430px) {
  body.dhh-theme .dhds-logo img,
  body.dhh-theme .dhds-site-logo img,
  body.dhh-theme .site-branding img,
  body.dhh-theme .ast-site-identity img,
  body.dhh-theme .site-logo-img img,
  body.dhh-theme .custom-logo {
    max-width: 205px !important;
    max-height: 26px !important;
  }

  body.dhh-theme .dhds-header-actions,
  body.dhh-theme .dhds-icons,
  body.dhh-theme .dhds-action-icons,
  body.dhh-theme .dhds-header-icons {
    gap: 10px !important;
  }
}

@media (max-width: 380px) {
  body.dhh-theme .dhds-logo img,
  body.dhh-theme .dhds-site-logo img,
  body.dhh-theme .site-branding img,
  body.dhh-theme .ast-site-identity img,
  body.dhh-theme .site-logo-img img,
  body.dhh-theme .custom-logo {
    max-width: 190px !important;
    max-height: 24px !important;
  }

  body.dhh-theme .dhds-header-actions,
  body.dhh-theme .dhds-icons,
  body.dhh-theme .dhds-action-icons,
  body.dhh-theme .dhds-header-icons {
    gap: 8px !important;
  }
}



/* v2.2.13: Exact D&H Design System mobile header two-row fix
   Previous mobile CSS targeted generic/Astra wrappers, but the active header uses:
   .dhds-huawei-header > .dhds-header-shell > .dhds-header-logo / .dhds-mega-nav / .dhds-header-actions.
   This forces true separate rows: logo row, icon row, menu row. */
@media (max-width: 767px) {
  body.dhh-theme .dhds-huawei-header .dhds-header-shell {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "logo"
      "actions"
      "nav" !important;
    align-items: center !important;
    justify-items: stretch !important;
    gap: 8px !important;
    min-height: 0 !important;
    padding: 12px 18px 0 !important;
    overflow: visible !important;
  }

  body.dhh-theme .dhds-huawei-header .dhds-header-logo {
    grid-area: logo !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    overflow: hidden !important;
  }

  body.dhh-theme .dhds-huawei-header .dhds-header-logo .custom-logo-link,
  body.dhh-theme .dhds-huawei-header .dhds-header-logo a {
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
  }

  body.dhh-theme .dhds-huawei-header .dhds-header-logo img,
  body.dhh-theme .dhds-huawei-header .dhds-header-logo .custom-logo {
    width: auto !important;
    max-width: min(260px, 100%) !important;
    height: auto !important;
    max-height: 34px !important;
    object-fit: contain !important;
    object-position: left center !important;
    display: block !important;
  }

  body.dhh-theme .dhds-huawei-header .dhds-header-actions {
    grid-area: actions !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 16px !important;
    padding: 0 !important;
    margin: 0 !important;
    white-space: nowrap !important;
    background: transparent !important;
    position: relative !important;
    z-index: 20 !important;
  }

  body.dhh-theme .dhds-huawei-header .dhds-header-actions .dhds-icon-link {
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    min-height: 26px !important;
    flex: 0 0 26px !important;
  }

  body.dhh-theme .dhds-huawei-header .dhds-header-actions .dhds-icon-link svg {
    width: 24px !important;
    height: 24px !important;
  }

  body.dhh-theme .dhds-huawei-header .dhds-mega-nav {
    grid-area: nav !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 52px !important;
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    white-space: nowrap !important;
    gap: 10px !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  body.dhh-theme .dhds-huawei-header .dhds-mega-item {
    flex: 0 0 auto !important;
  }

  body.dhh-theme .dhds-huawei-header .dhds-mega-item > a {
    height: 44px !important;
    padding: 0 12px !important;
  }
}

@media (max-width: 430px) {
  body.dhh-theme .dhds-huawei-header .dhds-header-shell {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  body.dhh-theme .dhds-huawei-header .dhds-header-logo img,
  body.dhh-theme .dhds-huawei-header .dhds-header-logo .custom-logo {
    max-width: min(235px, 100%) !important;
    max-height: 31px !important;
  }

  body.dhh-theme .dhds-huawei-header .dhds-header-actions {
    gap: 14px !important;
  }
}

@media (max-width: 380px) {
  body.dhh-theme .dhds-huawei-header .dhds-header-logo img,
  body.dhh-theme .dhds-huawei-header .dhds-header-logo .custom-logo {
    max-width: min(215px, 100%) !important;
    max-height: 29px !important;
  }

  body.dhh-theme .dhds-huawei-header .dhds-header-actions {
    gap: 12px !important;
  }
}



/* v2.2.15: Safe stock-status hiding only for real WooCommerce product cards.
   This replaces the broad v2.2.14 approach, which could interfere with homepage carousel markup.
   Keep homepage D&H product carousels untouched. */

/* Shop/category/archive product cards */
body.dhh-theme:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat) ul.products li.product > .ast-shop-product-out-of-stock,
body.dhh-theme:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat) ul.products li.product .astra-shop-thumbnail-wrap > .ast-shop-product-out-of-stock,
body.dhh-theme:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat) ul.products li.product .astra-shop-thumbnail-wrap > .out-of-stock,
body.dhh-theme:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat) ul.products li.product .ast-shop-product-out-of-stock,
body.dhh-theme:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat) ul.products li.product p.stock,
body.dhh-theme:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat) ul.products li.product span.stock {
  display: none !important;
}

/* Related / upsell / cross-sell cards on product/cart pages */
body.dhh-theme .related.products ul.products li.product > .ast-shop-product-out-of-stock,
body.dhh-theme .related.products ul.products li.product .astra-shop-thumbnail-wrap > .ast-shop-product-out-of-stock,
body.dhh-theme .related.products ul.products li.product .astra-shop-thumbnail-wrap > .out-of-stock,
body.dhh-theme .related.products ul.products li.product .ast-shop-product-out-of-stock,
body.dhh-theme .related.products ul.products li.product p.stock,
body.dhh-theme .related.products ul.products li.product span.stock,
body.dhh-theme .upsells.products ul.products li.product > .ast-shop-product-out-of-stock,
body.dhh-theme .upsells.products ul.products li.product .astra-shop-thumbnail-wrap > .ast-shop-product-out-of-stock,
body.dhh-theme .upsells.products ul.products li.product .astra-shop-thumbnail-wrap > .out-of-stock,
body.dhh-theme .upsells.products ul.products li.product .ast-shop-product-out-of-stock,
body.dhh-theme .upsells.products ul.products li.product p.stock,
body.dhh-theme .upsells.products ul.products li.product span.stock,
body.dhh-theme .cross-sells ul.products li.product > .ast-shop-product-out-of-stock,
body.dhh-theme .cross-sells ul.products li.product .astra-shop-thumbnail-wrap > .ast-shop-product-out-of-stock,
body.dhh-theme .cross-sells ul.products li.product .astra-shop-thumbnail-wrap > .out-of-stock,
body.dhh-theme .cross-sells ul.products li.product .ast-shop-product-out-of-stock,
body.dhh-theme .cross-sells ul.products li.product p.stock,
body.dhh-theme .cross-sells ul.products li.product span.stock {
  display: none !important;
}

/* Explicitly protect D&H homepage product carousel from stock-hide/product-listing overrides. */
body.dhh-theme .dhds-huawei-home .dhds-product-carousel,
body.dhh-theme .dhds-huawei-home .dhds-product-track,
body.dhh-theme .dhds-huawei-home .dhds-carousel-product-card,
body.dhh-theme .dhds-huawei-home .dhds-carousel-card-copy,
body.dhh-theme .dhds-huawei-home .dhds-carousel-card-bottom {
  visibility: visible !important;
  opacity: 1 !important;
}
