/* Dr Hahnz release gate.
   This file is intentionally narrow: it owns the app shell, commerce surfaces
   and responsive text containment so older theme/Elementor rules cannot leak
   into customer-facing components. */

:root {
  --dh62-ivory: #f3eee0;
  --dh62-ivory-deep: #e8dfcd;
  --dh62-olive: #526447;
  --dh62-olive-deep: #3f5137;
  --dh62-charcoal: #3a3e3b;
  --dh62-gold: #b39b55;
  --dh62-line: rgba(63, 81, 55, 0.22);
}

/* Shared catalogue contract: one proportion system for every shop,
   category, size and tag archive instead of page-specific crop patches. */
@media (min-width: 981px) {
  html body .dh-category-collection__head {
    grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr) !important;
    align-items: center !important;
    gap: clamp(32px, 3.4vw, 52px) !important;
    margin-bottom: clamp(36px, 4vw, 58px) !important;
    padding-bottom: clamp(26px, 2.5vw, 36px) !important;
  }

  html body .dh-category-collection__head > p {
    max-width: 42ch !important;
    font-size: clamp(1.12rem, 1.35vw, 1.3rem) !important;
    line-height: 1.5 !important;
  }

  html body .dh-category-collection .dh-menu-item__image {
    height: clamp(280px, 22vw, 330px) !important;
  }
}

html body .dh-category-collection .dh-menu-item .dh-menu-item__image > img,
html body #dh-luxury .dh-dining .dh-menu-item .dh-menu-item__image > img,
html body.single-product .woocommerce-product-gallery__image > a > img,
html body.single-product .woocommerce-product-gallery__image > img {
  width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  padding: clamp(8px, 1.2vw, 18px) !important;
  object-fit: contain !important;
  object-position: center bottom !important;
  transform: none !important;
}

html body.single-product .e-loop-item .elementor-widget-flip-box > .elementor-widget-container {
  background-color: transparent !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
}

html body.single-product .e-loop-item .elementor-flip-box__front {
  background-color: transparent !important;
}

@media (min-width: 768px) and (max-width: 980px) {
  html body .dh-category-collection .dh-menu-item__image {
    height: 260px !important;
  }

  html body .dh-category-collection__head > p {
    font-size: 1.06rem !important;
    line-height: 1.5 !important;
  }
}

@media (max-width: 767px) {
  html body .dh-category-collection .dh-menu-item__image,
  html body #dh-luxury .dh-dining .dh-menu-item__image {
    height: 220px !important;
  }
}

/* 0.6.48 physical-iPhone playback. Compact layouts hold one full-resolution
   static poster while the normalized 25-fps MP4 buffers; no animated WebP is
   allowed into the phone render path. If iOS blocks autoplay, expose the small
   branded play control instead of leaving an apparently moving low-fps layer. */
@media (max-width: 1024px), (hover: none) and (pointer: coarse) {
  html body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card) > .dh-film-mobile > img {
    image-rendering: auto !important;
  }

  html body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card).dh-playback-blocked > .dh-film-play {
    display: grid !important;
  }
}

/* Carousel controls retain a real icon box after the global responsive reset. */
html body .dh-film-controls button svg {
  display: block !important;
  flex: 0 0 20px !important;
  width: 20px !important;
  min-width: 20px !important;
  height: 20px !important;
  min-height: 20px !important;
  fill: none !important;
  stroke: var(--dh62-olive, #526447) !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round;
  stroke-linejoin: round;
}

html body .dh-film-controls button[data-dh-film-prev] svg {
  transform: rotate(180deg) !important;
}

/* Editorial geometry: remove the generic soft-card language sitewide. Only
   elements whose meaning is inherently circular keep a circular silhouette. */
html body:not(.wp-admin) :where(
  button,
  .button,
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea,
  .dh-menu-item,
  .dh-menu-item__image,
  .dh-film-card,
  .dh-film-card video,
  .dh-macro__grid figure,
  .dh-origin__pack,
  .dh-continue-card,
  .dh-context-film__media,
  .dh-product-dossier,
  .dh-product-dossier__tab,
  .dh-drawer,
  .dh-drawer__panel,
  .dh-search,
  .dh-search__panel,
  .dh-app-sheet__panel,
  .dh-app-tab,
  .dh-mobile-purchase-bar,
  .woocommerce ul.products li.product,
  .woocommerce-product-gallery,
  .woocommerce-product-gallery__image,
  .woocommerce-cart-form,
  .woocommerce-checkout-review-order,
  .woocommerce form .form-row input,
  .woocommerce form .form-row textarea,
  .elementor-widget-container,
  article.elementor-post
) {
  border-radius: 0 !important;
}

/* Absolute square/rectangle contract: no component or inherited page-builder
   style can reintroduce rounded UI. The explicitly requested pointer halo is
   the sole circular interface effect. */
html body:not(.wp-admin):not(#dh-rounded-ui-disabled):not(#dh-rounded-ui-retired) *,
html body:not(.wp-admin):not(#dh-rounded-ui-disabled):not(#dh-rounded-ui-retired) *::before,
html body:not(.wp-admin):not(#dh-rounded-ui-disabled):not(#dh-rounded-ui-retired) *::after {
  border-radius: 0 !important;
}

html body:not(.wp-admin):not(#dh-rounded-ui-disabled):not(#dh-rounded-ui-retired) .dh-pointer-halo {
  border-radius: 50% !important;
}

/* 0.6.24 final system gate -------------------------------------------------
   These rules intentionally sit last. They retire the surviving legacy art,
   make reveal content fail open, and lock shared responsive geometry. */

/* Elementor template 7277 retained two copies of the 2023 red barcode image.
   The migration removes the nodes; these selectors also defeat stale caches. */
html body.single-product .elementor-7277 [data-id="64f073a"],
html body.single-product .elementor-7277 [data-id="185c9e7"],
html body.single-product .elementor-7277 [data-id="3335fe9"],
html body .elementor-element-93aa79f,
html body.single-product img[src*="underline-red.png"] {
  display: none !important;
}

html body.single-product .elementor-7277 [data-id="0f7fc46"] {
  border-top: 1px solid rgba(179, 155, 85, 0.66) !important;
}

/* Content must never depend on an animation observer succeeding. */
html body #dh-luxury .dh-reveal {
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
}

html body #dh-luxury .dh-macro,
html body #dh-luxury .dh-macro .dh-section-head,
html body #dh-luxury .dh-macro__grid {
  min-height: 0 !important;
}

html body #dh-luxury .dh-macro {
  height: auto !important;
  padding-top: clamp(64px, 8vw, 118px) !important;
  padding-bottom: clamp(64px, 8vw, 118px) !important;
}

/* The olive engravings need to register on ivory without competing with copy. */
html body.dh-system-page .dh-page-olive,
html body.dh-context-page .dh-page-olive {
  opacity: 0.13 !important;
  mix-blend-mode: multiply !important;
  filter: contrast(1.18) saturate(1.08) !important;
}

/* One premium seal, used as punctuation rather than wallpaper. */
.dh-section-seal,
.dh-brand-seal {
  display: block !important;
  width: clamp(72px, 7vw, 108px) !important;
  height: auto !important;
  object-fit: contain !important;
}

.dh-section-seal {
  margin: 0 0 clamp(22px, 2.5vw, 34px) auto !important;
  opacity: 0.88;
}

.dh-footer__identity,
.dh-global-footer__identity {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 22px !important;
  width: 100% !important;
}

.dh-footer__identity > img:first-child,
.dh-global-footer__identity > img:first-child {
  width: min(232px, 66%) !important;
  height: auto !important;
}

/* The halo follows the viewport, never document flow. The custom arrow stays
   stable while only the ivory/gold light breathes. */
@media (hover: hover) and (pointer: fine) {
  html body > .dh-pointer-halo {
    --dh-pointer-x: -120px;
    --dh-pointer-y: -120px;
    position: fixed !important;
    z-index: 2147483646 !important;
    top: 0 !important;
    right: auto !important;
    bottom: auto !important;
    left: 0 !important;
    display: block !important;
    width: 54px !important;
    min-width: 54px !important;
    max-width: 54px !important;
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(243, 238, 224, 0.78) !important;
    border-radius: 50% !important;
    background: radial-gradient(circle, rgba(243, 238, 224, 0.42) 0 10%, rgba(199, 183, 120, 0.24) 32%, rgba(179, 155, 85, 0) 70%) !important;
    box-shadow: 0 0 8px rgba(243, 238, 224, 0.82), 0 0 18px rgba(199, 183, 120, 0.78), 0 0 34px rgba(179, 155, 85, 0.6) !important;
    pointer-events: none !important;
    visibility: visible !important;
    opacity: 0 !important;
    transform: translate3d(calc(var(--dh-pointer-x) - 27px), calc(var(--dh-pointer-y) - 27px), 0) !important;
  }

  html body > .dh-pointer-halo.is-visible {
    opacity: 1 !important;
    animation: dh-pointer-halo-0622 0.95s ease-in-out infinite !important;
  }
}

@keyframes dh-pointer-halo-0622 {
  0%, 100% {
    box-shadow: 0 0 7px rgba(243, 238, 224, 0.72), 0 0 16px rgba(199, 183, 120, 0.64), 0 0 28px rgba(179, 155, 85, 0.44);
    filter: brightness(0.92);
  }
  50% {
    box-shadow: 0 0 12px rgba(243, 238, 224, 1), 0 0 28px rgba(199, 183, 120, 0.96), 0 0 46px rgba(179, 155, 85, 0.72);
    filter: brightness(1.28);
  }
}

@media (prefers-reduced-motion: reduce) {
  html body > .dh-pointer-halo.is-visible {
    animation: none !important;
    opacity: 0.9 !important;
  }
}

/* A single semantic recommendation tile replaces the old empty Elementor
   fragments. Every visible pixel is one link and carries the front packshot. */
html body.single-product .dh-related-empty {
  display: none !important;
}

html body.single-product .e-loop-item.dh-linked-product-card {
  position: relative !important;
  display: block !important;
  min-width: 0 !important;
  min-height: 410px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid rgba(179, 155, 85, 0.54) !important;
  background: #f3eee0 !important;
  box-shadow: 0 16px 42px rgba(58, 62, 59, 0.12) !important;
}

html body.single-product .e-loop-item.dh-linked-product-card > .dh-related-card {
  display: grid !important;
  grid-template-rows: 238px minmax(0, 1fr) !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 410px !important;
  color: #3a3e3b !important;
  text-decoration: none !important;
}

.dh-related-card__media {
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  min-width: 0 !important;
  overflow: hidden !important;
  border-bottom: 1px solid rgba(179, 155, 85, 0.34) !important;
  background: radial-gradient(circle at 50% 42%, #fffaf0 0 26%, #eee7d8 70%, rgba(82, 100, 71, 0.16) 100%) !important;
}

.dh-related-card__media img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  padding: 16px !important;
  object-fit: contain !important;
  object-position: center !important;
  filter: drop-shadow(0 15px 15px rgba(58, 62, 59, 0.2)) !important;
  transform: none !important;
}

.dh-related-card__copy {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  min-width: 0 !important;
  padding: 20px !important;
}

.dh-related-card__title {
  display: block !important;
  width: 100% !important;
  color: #3a3e3b !important;
  font: 400 clamp(1.2rem, 1.55vw, 1.58rem)/1.08 var(--dh-serif, Georgia, serif) !important;
  letter-spacing: 0.01em !important;
  text-transform: uppercase !important;
}

.dh-related-card__meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  margin: 13px 0 10px !important;
}

.dh-related-card__meta > span {
  display: inline-flex !important;
  padding: 5px 7px !important;
  color: #3f5137 !important;
  border: 1px solid rgba(63, 81, 55, 0.28) !important;
  font: 800 0.66rem/1 var(--dh-sans, Arial, sans-serif) !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
}

.dh-related-card__price,
.dh-related-card__price * {
  color: #705817 !important;
  font: 800 0.94rem/1.25 var(--dh-sans, Arial, sans-serif) !important;
  white-space: nowrap !important;
}

.dh-related-card__cta {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  min-height: 46px !important;
  margin-top: auto !important;
  padding-top: 14px !important;
  color: #3f5137 !important;
  border-top: 1px solid rgba(179, 155, 85, 0.42) !important;
  font: 800 0.72rem/1 var(--dh-sans, Arial, sans-serif) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

/* If Elementor leaves carousel markup without exposing a Swiper instance,
   render the unique recommendations as a static grid. This also neutralises
   stale inline translations and slide widths that would move real cards out
   of the viewport after loop clones are removed. */
html body.single-product .dh-related-static :is(.swiper, .swiper-container) {
  width: 100% !important;
  height: auto !important;
  overflow: visible !important;
  transform: none !important;
  translate: none !important;
  transition: none !important;
}

html body.single-product .dh-related-static .swiper-wrapper {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 20px !important;
  width: 100% !important;
  height: auto !important;
  transform: none !important;
  translate: none !important;
  transition: none !important;
}

html body.single-product .dh-related-static[data-dh-related-count="1"] .swiper-wrapper {
  grid-template-columns: minmax(0, 520px) !important;
}

html body.single-product .dh-related-static[data-dh-related-count="2"] .swiper-wrapper {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

html body.single-product .dh-related-static[data-dh-related-count="3"] .swiper-wrapper {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

html body.single-product .dh-related-static .e-loop-item {
  position: relative !important;
  inset: auto !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  transform: none !important;
  translate: none !important;
  transition: none !important;
}

html body.single-product .dh-related-static :is(
  .swiper-button-prev,
  .swiper-button-next,
  .swiper-pagination,
  .elementor-swiper-button,
  .elementor-swiper-button-prev,
  .elementor-swiper-button-next
) {
  display: none !important;
}

@media (min-width: 768px) and (max-width: 1024px) {
  html body.single-product .dh-related-static .swiper-wrapper,
  html body.single-product .dh-related-static[data-dh-related-count="3"] .swiper-wrapper {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  html body.single-product .dh-related-static[data-dh-related-count="1"] .swiper-wrapper {
    grid-template-columns: minmax(0, 520px) !important;
  }
}

@media (max-width: 767px) {
  html body.single-product .dh-related-static .swiper-wrapper,
  html body.single-product .dh-related-static[data-dh-related-count] .swiper-wrapper {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 16px !important;
  }
}

/* Home catalogue action rows align on one baseline at every desktop width. */
@media (min-width: 768px) {
  html body #dh-luxury .dh-menu-item__copy {
    display: flex !important;
    flex-direction: column !important;
  }

  html body #dh-luxury .dh-menu-item__actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(148px, 0.82fr) !important;
    align-items: stretch !important;
    gap: 12px !important;
    width: 100% !important;
    margin-top: auto !important;
  }

  html body #dh-luxury .dh-menu-item__actions > a {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-height: 52px !important;
    margin: 0 !important;
    padding: 12px 14px !important;
  }
}

html body #dh-luxury .dh-quick-add,
html body #dh-luxury .dh-quick-add:visited,
html body #dh-luxury .dh-quick-add:hover,
html body #dh-luxury .dh-quick-add:focus-visible {
  color: #f3eee0 !important;
  background: #3f5137 !important;
}

html body #dh-luxury .dh-subnav a {
  color: #3f5137 !important;
}

/* Phone/tablet app surfaces: no clipped display type and no empty media slab. */
@media (max-width: 980px) {
  html body #dh-luxury .dh-origin {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  html body #dh-luxury .dh-origin__copy {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: clamp(42px, 8vw, 72px) clamp(18px, 5vw, 44px) !important;
    overflow: hidden !important;
  }

  html body #dh-luxury .dh-origin__copy :where(h2, p) {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    overflow: visible !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  html body #dh-luxury .dh-origin__copy h2 {
    font-size: clamp(2.15rem, 9.6vw, 4.2rem) !important;
    line-height: 0.98 !important;
    letter-spacing: -0.035em !important;
  }

  html body.home .dh-origin__pack {
    width: 100% !important;
    height: min(92vw, 520px) !important;
    min-height: 0 !important;
    max-height: 520px !important;
    aspect-ratio: auto !important;
  }

  html body.home .dh-origin__pack > img {
    padding: clamp(20px, 6vw, 42px) !important;
  }

  .dh-section-seal {
    width: 74px !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
}

/* Aviano's unusually wide capitals make "INGREDIENTS." wider than the
   available copy measure on narrow phones. Scale only this editorial heading
   to its usable mobile measure; keep words intact and tablet/desktop type
   unchanged. */
@media (max-width: 767px) {
  html body #dh-luxury .dh-origin__copy h2 {
    font-size: clamp(1.35rem, calc(8.5vw - 4px), 4.2rem) !important;
  }
}

@media (max-width: 767px) {
  html body.dh-system-page .dh-page-olive,
  html body.dh-context-page .dh-page-olive {
    opacity: 0.115 !important;
  }

  html body.single-product .e-loop-item.dh-linked-product-card,
  html body.single-product .e-loop-item.dh-linked-product-card > .dh-related-card {
    min-height: 382px !important;
  }

  html body.single-product .e-loop-item.dh-linked-product-card > .dh-related-card {
    grid-template-rows: 216px minmax(0, 1fr) !important;
  }

  .dh-related-card__copy {
    padding: 17px !important;
  }

  .dh-related-card__title {
    font-size: clamp(1.2rem, 6vw, 1.55rem) !important;
  }
}

/* Two-image product gallery: stable, contained and visible even if FlexSlider
   is delayed. PHP also reports exactly two thumbnail columns to WooCommerce. */
html body.single-product .woocommerce-product-gallery {
  visibility: visible !important;
  opacity: 1 !important;
}

html body.single-product .woocommerce-product-gallery__image {
  position: relative !important;
  /* FlexSlider writes the real slide width inline after measuring its viewport.
     Keep the pre-initialisation fallback without overriding that runtime width. */
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 4 / 5 !important;
  overflow: hidden !important;
  background: radial-gradient(circle at 50% 45%, #fffaf0 0 38%, #eee7d8 82%, rgba(82, 100, 71, 0.12) 100%) !important;
}

html body.single-product .woocommerce-product-gallery__image > a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

html body.single-product .woocommerce-product-gallery__image :is(a > img, > img) {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  padding: clamp(16px, 3vw, 34px) !important;
  object-fit: contain !important;
  object-position: center !important;
  transform: none !important;
}

html body.single-product .woocommerce-product-gallery .flex-control-thumbs {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  width: 100% !important;
}

html body.single-product .woocommerce-product-gallery .flex-control-thumbs li {
  width: 100% !important;
  margin: 0 !important;
}

/* Preserve native form affordances inside the branded pointer system. */
@media (hover: hover) and (pointer: fine) {
  html body :is(input[type="text"], input[type="email"], input[type="tel"], input[type="search"], input[type="number"], input[type="password"], input[type="url"], textarea),
  html body :is(input[type="text"], input[type="email"], input[type="tel"], input[type="search"], input[type="number"], input[type="password"], input[type="url"], textarea) * {
    cursor: text !important;
  }

  html body :is(:disabled, [aria-disabled="true"], .disabled) {
    cursor: not-allowed !important;
  }
}

html body :is(a, button, input, select, textarea, [role="button"]):focus-visible {
  outline: 3px solid #3f5137 !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 2px #f3eee0, 0 0 0 5px #b39b55 !important;
}

html body:not(.wp-admin) :is(.dh-button--solid, .dh-drawer__cta, .single_add_to_cart_button, .checkout-button, #place_order) {
  color: #242824 !important;
}

.dh-global-footer__legal {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 10px 20px !important;
  grid-column: 1 / -1 !important;
  width: 100% !important;
  padding-top: 22px !important;
  border-top: 1px solid rgba(179, 155, 85, 0.48) !important;
}

.dh-global-footer__legal a {
  color: #f3eee0 !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
}

html body:not(.wp-admin) :where(.dh-film-play, .dh-mobile-purchase-bar button, .single_add_to_cart_button, .checkout-button, #place_order) {
  border-radius: 0 !important;
}

/* 0.6.9 house ornament: custom gold-and-olive pencil work replaces every old
   wave/background flourish. It is one non-interactive layer, intentionally
   faint enough that typography keeps its measured contrast. */
html body.dh-system-page .dh-page-olive,
html body.dh-context-page .dh-page-olive {
  position: fixed !important;
  z-index: 3 !important;
  inset: 0 !important;
  display: block !important;
  width: 100vw !important;
  height: 100dvh !important;
  opacity: 0.082 !important;
  pointer-events: none !important;
  background-color: transparent !important;
  background-image:
    url("../images/olive-pencil-sprig.svg?v=2"),
    url("../images/olive-pencil-branch.svg?v=2"),
    url("../images/olive-pencil-gold.svg?v=2") !important;
  background-position:
    -120px 14vh,
    calc(100vw - 390px) 56vh,
    48vw calc(100vh - 170px) !important;
  background-repeat: no-repeat !important;
  background-size: 290px auto, 480px auto, 230px auto !important;
  mix-blend-mode: normal;
  transform: none !important;
}

@media (max-width: 767px) {
  html body.dh-system-page .dh-page-olive,
  html body.dh-context-page .dh-page-olive {
    opacity: 0.07 !important;
    background-position: -100px 18vh, calc(100vw - 235px) 61vh, 38vw calc(100vh - 128px) !important;
    background-size: 190px auto, 310px auto, 165px auto !important;
  }
}

html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  overflow-x: clip;
}

body :where(h1, h2, h3, h4, p, a, button, label, th, td, span) {
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

body :where(h1, h2, h3, h4) {
  text-wrap: balance;
}

/* One readable button contract. Broad legacy rules must never recolour icons. */
body .dh-app-topbar .dh-app-icon-button,
body.dh-context-page .dh-app-topbar .dh-app-icon-button,
body.dh-system-page .dh-app-topbar .dh-app-icon-button {
  color: var(--dh62-ivory) !important;
  border: 0 !important;
  background: transparent !important;
}

html.dh-mobile-app-ready body.dh-system-page .dh-app-topbar button.dh-app-icon-button,
html.dh-mobile-app-ready body.dh-system-page .dh-app-topbar a.dh-app-icon-button,
html.dh-mobile-app-ready body.dh-context-page .dh-app-topbar button.dh-app-icon-button,
html.dh-mobile-app-ready body.dh-context-page .dh-app-topbar a.dh-app-icon-button {
  display: grid !important;
  place-items: center !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--dh62-ivory) !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html.dh-mobile-app-ready body .dh-app-topbar .dh-app-icon-button :where(svg, path, circle, ellipse),
html.dh-mobile-app-ready body .dh-app-bottom .dh-app-tab :where(svg, path, circle, ellipse) {
  stroke: currentColor !important;
}

html.dh-mobile-app-ready body.dh-system-page .dh-app-bottom .dh-app-tab,
html.dh-mobile-app-ready body.dh-system-page .dh-app-bottom .dh-app-tab span,
html.dh-mobile-app-ready body.dh-context-page .dh-app-bottom .dh-app-tab,
html.dh-mobile-app-ready body.dh-context-page .dh-app-bottom .dh-app-tab span {
  color: rgba(243, 238, 224, 0.78) !important;
}

html.dh-mobile-app-ready body.dh-system-page .dh-app-bottom .dh-app-tab :where(svg, path, circle, ellipse),
html.dh-mobile-app-ready body.dh-context-page .dh-app-bottom .dh-app-tab :where(svg, path, circle, ellipse) {
  stroke: #f3eee0 !important;
}

html.dh-mobile-app-ready body .dh-app-bottom .dh-app-tab.is-active,
html.dh-mobile-app-ready body .dh-app-bottom .dh-app-tab.is-active span {
  color: #f3eee0 !important;
}

body .dh-app-sheet .dh-app-icon-button,
body.dh-context-page .dh-app-sheet .dh-app-icon-button {
  color: var(--dh62-olive-deep) !important;
}

/* Catalogue copy is authored to fit; never conceal half a sentence. */
.dh-menu-item,
.dh-menu-item__copy,
.dh-menu-item__title-row,
.dh-menu-item__actions,
.dh-menu-item h3,
.dh-menu-item h3 a {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: visible !important;
}

.dh-menu-item__copy > p {
  display: block !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  -webkit-box-orient: initial !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
}

.dh-menu-item__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 9px 0 0;
}

.dh-menu-item__meta span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 9px;
  color: var(--dh62-olive-deep) !important;
  border: 1px solid var(--dh62-line);
  border-radius: 999px;
  background: rgba(82, 100, 71, 0.08);
  font: 700 0.7rem/1.1 var(--dh-sans, Arial, sans-serif) !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.dh-menu-item__price,
.dh-menu-item__price * ,
.woocommerce-Price-amount,
.woocommerce-Price-currencySymbol {
  white-space: nowrap !important;
}

/* The complete related-product card is one clear navigation target. */
body.single-product .dh-linked-product-card,
body.single-product .dh-linked-product-card * {
  cursor: pointer;
}

body.single-product .dh-linked-product-card:focus-within {
  outline: 2px solid var(--dh62-gold);
  outline-offset: 3px;
}

/* Product dossier: readable contrast and strict containment. */
body.single-product :where(.dh-product-tabs, .elementor-tabs-wrapper, .woocommerce-tabs ul.tabs) {
  max-width: 100% !important;
}

body.single-product .dh-product-dossier__tabs {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 8px !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow: visible !important;
}

body.single-product .dh-product-dossier__tab {
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  min-height: 50px !important;
  margin: 0 !important;
  padding: 10px 8px !important;
  color: var(--dh62-ivory) !important;
  border: 1px solid rgba(243, 238, 224, 0.4) !important;
  background: var(--dh62-olive) !important;
  font-size: 0.78rem !important;
  line-height: 1.15 !important;
  text-align: center !important;
  white-space: normal !important;
}

/* Canonical's global button contract is intentionally very specific. Keep the
   dossier's inactive olive tabs ivory, even on system/context product pages. */
html body.single-product.dh-system-page.dh-context-page button.dh-product-dossier__tab:not([aria-selected="true"]) {
  color: var(--dh62-ivory) !important;
  background: var(--dh62-olive) !important;
}

body.single-product .dh-product-dossier__tab:is(:hover, :focus-visible, [aria-selected="true"], .is-active) {
  color: var(--dh62-charcoal) !important;
  background: var(--dh62-ivory-deep) !important;
  outline: 2px solid var(--dh62-gold) !important;
  outline-offset: -3px !important;
}

html body.single-product.dh-system-page.dh-context-page button.dh-product-dossier__tab:is(:hover, :focus-visible, [aria-selected="true"], .is-active) {
  color: var(--dh62-charcoal) !important;
  background: var(--dh62-ivory-deep) !important;
}

body.single-product :where(.dh-product-tabs button, .elementor-tab-title, .woocommerce-tabs ul.tabs li a) {
  color: var(--dh62-ivory) !important;
  border-color: rgba(243, 238, 224, 0.4) !important;
  background: var(--dh62-olive) !important;
}

body.single-product :where(.dh-product-tabs button, .elementor-tab-title, .woocommerce-tabs ul.tabs li a):is(:hover, :focus-visible, [aria-selected="true"], .elementor-active) {
  color: var(--dh62-charcoal) !important;
  background: var(--dh62-ivory-deep) !important;
  outline: 2px solid var(--dh62-gold) !important;
  outline-offset: -3px;
}

/* Checkout and account use the approved warm system—never white or pale gold text. */
body.woocommerce-checkout :where(.col-1, .col-2, .woocommerce-additional-fields, .e-checkout__order_review, .e-coupon-box, #payment, .woocommerce-checkout-review-order, .woocommerce-billing-fields),
body.woocommerce-account :where(.woocommerce-MyAccount-content, .woocommerce-form-login, .woocommerce-form-register) {
  color: var(--dh62-charcoal) !important;
  border-color: var(--dh62-line) !important;
  background: var(--dh62-ivory) !important;
}

body.woocommerce-checkout :where(.col-1, .col-2, .woocommerce-additional-fields, .e-checkout__order_review, .e-coupon-box, #payment, .woocommerce-checkout-review-order, .woocommerce-billing-fields) :where(p, span, label, td, th, a, strong, small),
body.woocommerce-account :where(.woocommerce-MyAccount-content, .woocommerce-form-login, .woocommerce-form-register) :where(p, span, label, td, th, a, strong, small) {
  color: var(--dh62-charcoal) !important;
}

body.woocommerce-checkout :where(input, select, textarea),
body.woocommerce-account :where(input, select, textarea) {
  color: var(--dh62-charcoal) !important;
  border: 1px solid var(--dh62-olive) !important;
  background: #f8f3e7 !important;
}

body.woocommerce-checkout input[type="checkbox"],
body.woocommerce-account input[type="checkbox"] {
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  min-height: 22px !important;
}

body.woocommerce-checkout :where(button, .button, a.button),
body.woocommerce-account :where(button, .button, a.button) {
  min-height: 48px !important;
  color: var(--dh62-ivory) !important;
  border-color: var(--dh62-olive) !important;
  background: var(--dh62-olive) !important;
}

body.woocommerce-checkout .elementor-element-aa3cf7b h2 {
  margin: 0 0 8px !important;
  color: var(--dh62-olive-deep) !important;
  font: 800 0.78rem/1.2 var(--dh-sans, Arial, sans-serif) !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

body.woocommerce-checkout .elementor-element-a784b15 h2 {
  margin: 0 0 24px !important;
  color: var(--dh62-charcoal) !important;
  font: 500 clamp(2.2rem, 6vw, 3.5rem)/1.02 var(--dh-serif, Georgia, serif) !important;
  letter-spacing: -0.025em !important;
  text-transform: none !important;
}

/* Transactional pages begin with the task, not a campaign film. */
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) main {
  padding-top: clamp(24px, 5vw, 64px) !important;
}

.dh-transaction-progress {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  width: min(100% - 32px, 780px);
  margin: 28px auto 0;
  padding: 10px;
  border: 1px solid var(--dh62-line);
  border-radius: 18px;
  background: var(--dh62-ivory);
}

.dh-transaction-progress span {
  min-width: 0;
  padding: 10px 8px;
  color: var(--dh62-olive-deep);
  border-radius: 12px;
  font: 700 0.75rem/1.15 var(--dh-sans, Arial, sans-serif);
  letter-spacing: 0.04em;
  text-align: center;
  text-transform: uppercase;
}

.dh-transaction-progress span.is-current {
  color: var(--dh62-ivory);
  background: var(--dh62-olive);
}

/* Canonical taxonomy collection owns the storefront; retire the old loop. */
body:is(.tax-pa_size, .tax-product_tag) main.site-main,
body:is(.tax-pa_size, .tax-product_tag) #primary.site-main,
body:is(.tax-pa_size, .tax-product_tag) .elementor-location-archive {
  display: none !important;
}

body:is(.tax-pa_size, .tax-product_tag) .dh-category-collection {
  display: block !important;
}

/* Remove the hard black rectangle from the old composite lineup wherever retained. */
img[src*="pack-lineup.jpg"] {
  padding: clamp(16px, 3vw, 32px) !important;
  background: radial-gradient(circle at 50% 45%, #f8f3e7 0, var(--dh62-ivory) 58%, var(--dh62-ivory-deep) 100%) !important;
  mix-blend-mode: multiply;
}

/* High-contrast, visible keyboard focus across commerce and navigation. */
body :where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--dh62-gold) !important;
  outline-offset: 3px !important;
}

@media (min-width: 768px) and (max-width: 980px) {
  body.single-product .dh-product-dossier__tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  body.single-product :where(.dh-product-tabs, .elementor-tabs-wrapper, .woocommerce-tabs ul.tabs) {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    overflow: visible !important;
  }

  body.single-product :where(.dh-product-tabs > *, .elementor-tabs-wrapper > *, .woocommerce-tabs ul.tabs > li) {
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
}

@media (max-width: 767px) {
  :root {
    --dh-app-top: 64px;
    --dh-app-bottom: 72px;
  }

  html,
  body,
  #page,
  #content,
  #dh-luxury,
  #dh-luxury .dh-luxury,
  #dh-luxury main,
  #dh-luxury section,
  #dh-luxury header,
  #dh-luxury footer,
  #dh-luxury div {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  html body #dh-luxury .dh-dining {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  html body #dh-luxury .dh-dining__paper {
    width: 100% !important;
    margin: 0 !important;
    padding: 44px 16px 32px !important;
    overflow: visible !important;
  }

  html body #dh-luxury .dh-dining__head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 18px !important;
    width: 100% !important;
    margin: 0 0 28px !important;
  }

  html body #dh-luxury .dh-dining__head > div,
  html body #dh-luxury .dh-dining__head > p {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  html body #dh-luxury .dh-dining__head h2,
  html body #dh-luxury .dh-section-head h2,
  html body #dh-luxury .dh-macro h2,
  html body #dh-luxury .dh-continue h2 {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: clamp(1.9rem, 8.7vw, 2.2rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.04em !important;
    overflow: visible !important;
    white-space: normal !important;
  }

  html body #dh-luxury .dh-dining__head > p,
  html body #dh-luxury .dh-section-head > p:not(.dh-kicker) {
    font-size: 1rem !important;
    line-height: 1.55 !important;
  }

  html body #dh-luxury .dh-dining__tabs {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
    margin: 0 0 20px !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  html body #dh-luxury .dh-dining__tabs button,
  html body #dh-luxury .dh-dining__tabs a {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 52px !important;
    padding: 10px 8px !important;
    font-size: 0.72rem !important;
    line-height: 1.2 !important;
    letter-spacing: 0.06em !important;
    text-align: center !important;
    white-space: normal !important;
  }

  html body #dh-luxury .dh-dining__tabs > a {
    grid-column: 1 / -1 !important;
    min-height: 44px !important;
  }

  html.dh-mobile-app-ready body .dh-app-topbar {
    position: sticky !important;
    z-index: 2147483000 !important;
    top: 0 !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    display: grid !important;
    grid-template-columns: 48px minmax(0, 1fr) 48px 48px !important;
    width: 100% !important;
    height: calc(var(--dh-app-top) + env(safe-area-inset-top)) !important;
    color: var(--dh62-ivory) !important;
    background: rgba(58, 62, 59, 0.98) !important;
  }

  html.dh-mobile-app-ready body .dh-app-sheet {
    position: fixed !important;
    z-index: 2147483002 !important;
    inset: 0 !important;
    display: grid !important;
    width: 100vw !important;
    height: 100dvh !important;
    margin: 0 !important;
    align-items: end !important;
  }

  html.dh-mobile-app-ready body .dh-app-bottom {
    position: fixed !important;
    z-index: 2147483001 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    display: grid !important;
    width: 100% !important;
    margin: 0 !important;
  }

  html.dh-mobile-app-ready body .dh-app-bottom .dh-app-tab {
    display: grid !important;
    grid-template-rows: 28px 16px !important;
    place-items: center !important;
    min-width: 0 !important;
    min-height: 56px !important;
    margin: 0 !important;
    padding: 4px 2px 2px !important;
    color: rgba(243, 238, 224, 0.72) !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  html.dh-mobile-app-ready body .dh-app-bottom .dh-app-tab:is(.is-active, :active) {
    color: var(--dh62-ivory) !important;
    background: rgba(82, 100, 71, 0.78) !important;
  }

  .dh-app-search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px;
    gap: 8px;
    margin: 16px 4px 12px;
  }

  .dh-app-search-form input {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    padding: 0 14px;
    color: var(--dh62-charcoal);
    border: 1px solid var(--dh62-olive);
    border-radius: 14px;
    background: #f8f3e7;
    font-size: 16px;
  }

  .dh-app-search-form button {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    padding: 0;
    color: var(--dh62-ivory) !important;
    border: 0 !important;
    border-radius: 14px;
    background: var(--dh62-olive) !important;
  }

  .dh-context-film h1,
  .dh-context-film h2,
  .dh-context-film #dh-context-title,
  body.single-product h1,
  body.single-post h1,
  .dh-category-collection h2,
  .dh-category-collection h3,
  .dh-menu-item h3,
  .dh-menu-item h3 a {
    max-width: 100% !important;
    overflow: visible !important;
    font-size: clamp(1.55rem, 7.4vw, 2.2rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.025em !important;
  }

  .dh-context-film h1,
  .dh-context-film h2,
  .dh-context-film #dh-context-title {
    width: calc(100% - 8px) !important;
    max-width: calc(100% - 8px) !important;
    margin-right: 8px !important;
    font-size: clamp(1.72rem, 7.8vw, 2.2rem) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.035em !important;
  }

  .dh-context-film .dh-context-title--long,
  body.dh-page-contact-us .dh-context-film #dh-context-title {
    font-size: clamp(1.65rem, 7.3vw, 2.05rem) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.025em !important;
  }

  body.single-product .dh-context-film #dh-context-title {
    width: calc(100% - 8px) !important;
    max-width: calc(100% - 8px) !important;
    margin-right: 8px !important;
    font-size: clamp(1.72rem, 7.7vw, 2rem) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.035em !important;
  }

  .dh-context-film {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .dh-context-film__copy,
  .dh-context-film__media {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body :where(.site-main, main, article, section, .elementor, .elementor-section, .elementor-container, .elementor-column, .elementor-widget-wrap, .woocommerce, .product, .summary) {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body :where(img, video, iframe, table, form) {
    max-width: 100% !important;
  }

  body :where(h1, h2, h3, h4, p, li, a, button, label, th, td) {
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
  }

  body :where(.woocommerce table.shop_table, .woocommerce-cart-form, .cart_totals, .woocommerce-checkout, .woocommerce-form) {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .dh-category-collection,
  .dh-category-collection__head,
  .dh-category-collection__list,
  .dh-category-collection__split,
  .dh-category-collection__group,
  .dh-menu-item {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .dh-category-collection__list,
  .dh-category-collection__split .dh-category-collection__list {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 16px !important;
  }

  .dh-category-collection .dh-menu-item,
  html body #dh-luxury .dh-dining .dh-menu-item {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 16px !important;
    overflow: hidden !important;
  }

  .dh-category-collection .dh-menu-item__image,
  html body #dh-luxury .dh-dining .dh-menu-item__image {
    width: 100% !important;
    height: 220px !important;
  }

  .dh-category-collection .dh-menu-item__image img,
  html body #dh-luxury .dh-dining .dh-menu-item__image img {
    width: 100% !important;
    height: 100% !important;
    padding: 2px !important;
    object-fit: contain !important;
  }

  html body #dh-luxury .dh-menu-item__copy,
  html body #dh-luxury .dh-menu-item__title-row,
  html body #dh-luxury .dh-menu-item__actions {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  html body #dh-luxury .dh-menu-item__title-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
  }

  html body #dh-luxury .dh-menu-item h3,
  html body #dh-luxury .dh-menu-item h3 a {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: 1.55rem !important;
    line-height: 1.08 !important;
    letter-spacing: -0.018em !important;
    overflow: visible !important;
    white-space: normal !important;
  }

  html body #dh-luxury .dh-menu-item__price {
    margin-top: 2px !important;
    font-size: 1rem !important;
  }

  html body #dh-luxury .dh-menu-item__copy > p {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    margin: 10px 0 12px !important;
    overflow: visible !important;
    font-size: 0.92rem !important;
    line-height: 1.48 !important;
    -webkit-line-clamp: unset !important;
  }

  .dh-menu-item__copy {
    grid-template-rows: auto auto auto 1fr !important;
  }

  .dh-menu-item__copy > p {
    margin: 10px 0 12px !important;
    font-size: 0.86rem !important;
    line-height: 1.42 !important;
  }

  .dh-menu-item__actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
  }

  .dh-menu-item__actions a,
  .dh-quick-add,
  .dh-text-link {
    min-width: 0 !important;
    min-height: 44px !important;
    padding: 10px 12px !important;
    white-space: normal !important;
  }

  html body #dh-luxury .dh-quick-add,
  html body #dh-luxury .dh-quick-add:visited {
    color: var(--dh62-ivory) !important;
    background: var(--dh62-olive-deep) !important;
  }

  /* Product information is an accordion-like vertical stack on phones. */
  body.single-product .dh-product-dossier__tabs {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }

  body.single-product :where(.dh-product-tabs, .elementor-tabs-wrapper, .woocommerce-tabs ul.tabs) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
    overflow: visible !important;
  }

  body.single-product :where(.dh-product-tabs > *, .elementor-tabs-wrapper > *, .woocommerce-tabs ul.tabs > li) {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .dh-mobile-purchase-bar {
    position: fixed;
    z-index: 2147482999;
    right: 10px;
    bottom: calc(var(--dh-app-bottom) + env(safe-area-inset-bottom) + 10px);
    left: 10px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid rgba(199, 183, 120, 0.48);
    border-radius: 18px;
    background: rgba(58, 62, 59, 0.98);
    box-shadow: 0 18px 46px rgba(29, 30, 25, 0.3);
  }

  .dh-mobile-purchase-bar__copy {
    min-width: 0;
    color: var(--dh62-ivory);
  }

  .dh-mobile-purchase-bar__copy strong,
  .dh-mobile-purchase-bar__copy span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .dh-mobile-purchase-bar__copy strong {
    font-size: 0.82rem;
  }

  .dh-mobile-purchase-bar__copy span {
    margin-top: 2px;
    color: var(--dh62-ivory-deep);
    font-size: 0.74rem;
  }

  .dh-mobile-purchase-bar button {
    min-height: 44px;
    padding: 10px 16px;
    color: var(--dh62-charcoal) !important;
    border: 0 !important;
    border-radius: 13px;
    background: var(--dh62-gold) !important;
    font-weight: 800;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dh-pointer-halo,
  .dh-context-film video,
  .dh-film-card video {
    animation: none !important;
    transition: none !important;
  }
}

/* Tablet receives the same app chrome, with the content grid left spacious. */
@media (min-width: 768px) and (max-width: 1024px) {
  :root {
    --dh-app-top: 72px;
    --dh-app-bottom: 76px;
  }

  html {
    scroll-padding-top: 84px;
    scroll-padding-bottom: 92px;
  }

  body {
    padding-bottom: calc(var(--dh-app-bottom) + env(safe-area-inset-bottom)) !important;
  }

  html.dh-mobile-app-ready body > :is(.dh-header, .elementor-location-header),
  html.dh-mobile-app-ready body > header:not(.dh-app-topbar),
  html.dh-mobile-app-ready body .dh-header,
  html.dh-mobile-app-ready body .elementor-location-header,
  html.dh-mobile-app-ready body .dh-global-header,
  html.dh-mobile-app-ready .dh-subnav,
  html.dh-mobile-app-ready .dh-quick-order {
    display: none !important;
  }

  html.dh-mobile-app-ready body .dh-app-topbar {
    position: sticky !important;
    z-index: 2147483000 !important;
    top: 0 !important;
    display: grid !important;
    grid-template-columns: 56px minmax(0, 1fr) 56px 56px !important;
    align-items: center;
    width: 100% !important;
    height: calc(var(--dh-app-top) + env(safe-area-inset-top));
    padding: env(safe-area-inset-top) 16px 0;
    color: var(--dh62-ivory);
    border-bottom: 1px solid rgba(179, 155, 85, 0.38);
    background: rgba(58, 62, 59, 0.98);
    box-shadow: 0 12px 30px rgba(58, 62, 59, 0.18);
    backdrop-filter: blur(18px) saturate(1.2);
  }

  .dh-app-icon-button {
    display: grid !important;
    place-items: center;
    width: 48px;
    height: 48px;
    margin: 0;
    padding: 0;
    color: var(--dh62-ivory) !important;
    border: 0 !important;
    border-radius: 14px;
    background: transparent !important;
  }

  .dh-app-brand {
    display: block;
    min-width: 0;
    padding: 8px 16px;
    text-align: center;
  }

  .dh-app-brand img {
    width: 190px;
    max-width: 60%;
    height: auto;
  }

  .dh-app-icon {
    display: block;
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
  }

  html.dh-mobile-app-ready body .dh-app-bottom {
    position: fixed !important;
    z-index: 2147483001 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    height: calc(var(--dh-app-bottom) + env(safe-area-inset-bottom));
    padding: 7px max(28px, env(safe-area-inset-left)) env(safe-area-inset-bottom) max(28px, env(safe-area-inset-right));
    border-top: 1px solid rgba(179, 155, 85, 0.38);
    background: rgba(58, 62, 59, 0.98);
    box-shadow: 0 -12px 30px rgba(58, 62, 59, 0.18);
  }

  .dh-app-tab {
    display: grid !important;
    grid-template-rows: 30px 18px;
    place-items: center;
    min-width: 0;
    min-height: 60px;
    margin: 0 !important;
    padding: 4px 2px !important;
    color: rgba(243, 238, 224, 0.72) !important;
    border: 0 !important;
    border-radius: 14px;
    background: transparent !important;
    font: 700 0.72rem/1 var(--dh-sans, Arial, sans-serif) !important;
    text-decoration: none !important;
  }

  .dh-app-tab:is(.is-active, :active) {
    color: var(--dh62-ivory) !important;
    background: rgba(82, 100, 71, 0.78) !important;
  }

  html.dh-mobile-app-ready body .dh-app-sheet {
    position: fixed !important;
    z-index: 2147483002 !important;
    inset: 0 !important;
    display: grid !important;
    align-items: end;
    visibility: hidden;
    opacity: 0;
    background: rgba(58, 62, 59, 0.58);
    backdrop-filter: blur(9px);
    transition: opacity 200ms ease, visibility 200ms ease;
  }

  html.dh-mobile-app-ready body .dh-app-sheet.is-open {
    visibility: visible;
    opacity: 1;
  }

  .dh-app-sheet__panel {
    width: min(100%, 720px);
    max-height: 84dvh;
    margin: 0 auto;
    padding: 22px 24px calc(28px + env(safe-area-inset-bottom));
    overflow: auto;
    color: var(--dh62-charcoal);
    border-radius: 26px 26px 0 0;
    background: var(--dh62-ivory);
    box-shadow: 0 -28px 70px rgba(58, 62, 59, 0.28);
  }

  .dh-app-sheet__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .dh-app-sheet__links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding-top: 14px;
  }

  .dh-app-sheet__links a {
    display: flex;
    align-items: center;
    min-height: 56px;
    padding: 0 16px;
    color: var(--dh62-charcoal) !important;
    border: 1px solid var(--dh62-line);
    border-radius: 15px;
    background: var(--dh62-ivory-deep);
    font-weight: 700;
  }

  .dh-app-search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 52px;
    gap: 10px;
    margin-top: 18px;
  }

  .dh-app-search-form input {
    min-width: 0;
    min-height: 52px;
    padding: 0 16px;
    color: var(--dh62-charcoal);
    border: 1px solid var(--dh62-olive);
    border-radius: 14px;
    background: #f8f3e7;
    font-size: 16px;
  }

  .dh-app-search-form button {
    display: grid;
    place-items: center;
    width: 52px;
    min-height: 52px;
    color: var(--dh62-ivory) !important;
    border: 0 !important;
    border-radius: 14px;
    background: var(--dh62-olive) !important;
  }

  .dh-mobile-purchase-bar {
    display: none;
  }
}

/* Final packshot containment lock. Some legacy responsive image rules restore
   height:auto with high specificity; anchoring the transparent master to all
   four edges guarantees the whole bag remains inside its stage. */
html body .dh-category-collection .dh-menu-item a.dh-menu-item__image,
html body #dh-luxury .dh-dining .dh-menu-item a.dh-menu-item__image {
  position: relative !important;
  overflow: hidden !important;
}

html body .dh-category-collection .dh-menu-item a.dh-menu-item__image > img,
html body #dh-luxury .dh-dining .dh-menu-item a.dh-menu-item__image > img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: auto !important;
  box-sizing: border-box !important;
  object-fit: contain !important;
  object-position: center !important;
  transform: none !important;
}

/* Stable charcoal/ivory arrow on the entire rendered tree. The separate gold
   halo is the only animated pointer layer. Touch devices retain normal input. */
@media (hover: hover) and (pointer: fine) {
  html body,
  html body * {
    cursor: url("../images/cursor-luxury.svg") 5 4, auto !important;
  }

  html body :is(a[href], button, input, select, textarea, label, summary, [role="button"], [onclick], [tabindex]:not([tabindex="-1"]), .dh-linked-product-card),
  html body :is(a[href], button, input, select, textarea, label, summary, [role="button"], [onclick], [tabindex]:not([tabindex="-1"]), .dh-linked-product-card) * {
    cursor: url("../images/cursor-luxury.svg") 5 4, pointer !important;
  }
}

/* The transparent packshot fills one intentional ivory display stage. This
   supersedes the legacy 72svh/780px media minimum that left a blank grey slab
   below the image on phones. */
html body.home .dh-origin__pack {
  position: relative !important;
  min-height: 0 !important;
  overflow: hidden !important;
  isolation: isolate;
  background:
    radial-gradient(circle at 50% 42%, rgba(243, 238, 224, 0.98) 0 28%, rgba(232, 225, 208, 0.94) 63%, rgba(82, 100, 71, 0.16) 100%) !important;
}

html body.home .dh-origin__pack > img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  box-sizing: border-box !important;
  padding: clamp(32px, 5vw, 76px) !important;
  object-fit: contain !important;
  object-position: 50% 50% !important;
  background: transparent !important;
  filter: drop-shadow(0 22px 24px rgba(58, 62, 59, 0.22)) !important;
  transform: none !important;
}

/* Film stages remain clickable recovery targets when a browser blocks muted
   autoplay. No play tile is allowed to obscure product or lifestyle imagery. */
.dh-film-card,
.dh-context-film__media {
  position: relative;
}

/* All site films are atmospheric, not media-player widgets. Removing hit
   testing prevents Safari/iOS from painting its large native play/pause disc
   when a visitor touches the film; the document-level gesture retry still
   resumes any browser-blocked muted playback. */
html body:not(.wp-admin) :is(#dh-luxury, .dh-context-film) video {
  pointer-events: none !important;
  -webkit-touch-callout: none !important;
}

html body:not(.wp-admin) :is(#dh-luxury, .dh-context-film) video::-webkit-media-controls,
html body:not(.wp-admin) :is(#dh-luxury, .dh-context-film) video::-webkit-media-controls-enclosure,
html body:not(.wp-admin) :is(#dh-luxury, .dh-context-film) video::-webkit-media-controls-panel,
html body:not(.wp-admin) :is(#dh-luxury, .dh-context-film) video::-webkit-media-controls-start-playback-button {
  display: none !important;
  -webkit-appearance: none !important;
}

/* The hero film is a full-stage layer. Keeping it absolute is essential:
   a positioned container with no in-flow children otherwise collapses to 0px
   even while its video is loaded and playing. */
.dh-hero__film {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  overflow: hidden;
  background: var(--dh62-charcoal, #3a3e3b) url("../images/video-posters/hero-senior-couple-dog-native.jpg") center / cover no-repeat !important;
}

.dh-film-play {
  display: none !important;
}

.dh-film-play svg {
  display: none !important;
}

@media (max-width: 1024px) {
  html body.home .dh-origin__pack {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 560px;
    aspect-ratio: 4 / 5 !important;
  }

  html body.home .dh-origin__pack > img {
    padding: clamp(24px, 7vw, 58px) !important;
  }
}

@media (max-width: 520px) {
  html body.home .dh-origin__pack {
    max-height: 460px;
  }

  html body.home .dh-origin__pack > img {
    padding: 24px !important;
  }

  .dh-film-play { display: none !important; }
}

/* Product-story triptych: one visual system across all three 3:2 frames. The
   lineup uses original transparent packshots rather than the old black JPEG. */
html body #dh-luxury .dh-macro__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  grid-auto-rows: 1fr;
}

html body #dh-luxury .dh-macro__grid > figure {
  aspect-ratio: 3 / 2 !important;
  min-height: 0 !important;
  border: 1px solid rgba(201, 170, 90, 0.56) !important;
  border-radius: 20px !important;
  background: var(--dh62-charcoal, #3a3e3b) !important;
  box-shadow: inset 0 0 0 1px rgba(243, 238, 224, 0.045), 0 18px 46px rgba(58, 62, 59, 0.2);
}

html body #dh-luxury .dh-macro__grid > figure > img:not(.dh-macro__lineup-pack) {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
  filter: brightness(1.06) contrast(1.1) saturate(1.16) !important;
  transform: none !important;
}

html body #dh-luxury .dh-macro__lineup-stage {
  display: block !important;
  padding: 0 !important;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 52%, rgba(179, 155, 85, 0.23), transparent 43%),
    linear-gradient(145deg, rgba(82, 100, 71, 0.98), rgba(58, 62, 59, 0.98)) !important;
}

html body #dh-luxury .dh-macro__lineup-stage::before {
  position: absolute;
  right: 7%;
  bottom: 9%;
  left: 7%;
  height: 13%;
  border-radius: 50%;
  background: rgba(201, 170, 90, 0.18);
  filter: blur(18px);
  content: "";
}

html body #dh-luxury .dh-macro__lineup-stage > .dh-macro__lineup-pack {
  position: absolute !important;
  z-index: 1;
  bottom: -4.52% !important;
  display: block !important;
  width: 52.5% !important;
  height: auto !important;
  max-height: none !important;
  min-width: 0 !important;
  padding: 0 !important;
  object-fit: contain !important;
  object-position: 50% 100% !important;
  background: transparent !important;
  filter: drop-shadow(0 14px 12px rgba(29, 30, 25, 0.34)) brightness(1.05) contrast(1.05) saturate(1.08) !important;
  transform: none !important;
}

html body #dh-luxury .dh-macro__lineup-stage > .dh-macro__lineup-pack--cat {
  right: auto !important;
  left: -6.5% !important;
  bottom: -4.52% !important;
}

html body #dh-luxury .dh-macro__lineup-stage > .dh-macro__lineup-pack--hero {
  z-index: 3;
  right: auto !important;
  left: 20.5% !important;
  bottom: -1.3% !important;
  width: 59% !important;
}

html body #dh-luxury .dh-macro__lineup-stage > .dh-macro__lineup-pack--dog {
  right: -6.5% !important;
  left: auto !important;
  bottom: -2.47% !important;
}

/* Controlled gold cadence across the storefront: structural highlights and
   primary actions, while ivory and olive remain the dominant fields. */
html body:not(.wp-admin) :is(.dh-header, .dh-app-topbar, .dh-app-bottom, .dh-subnav) {
  border-color: rgba(201, 170, 90, 0.58) !important;
}

html body:not(.wp-admin) :is(.dh-section-head, .dh-product-dossier__head, .woocommerce-products-header)::after {
  display: block;
  width: min(112px, 24vw);
  height: 2px;
  margin-top: clamp(18px, 2vw, 28px);
  background: linear-gradient(90deg, var(--dh62-gold, #b39b55), rgba(201, 170, 90, 0));
  content: "";
}

html body:not(.wp-admin) :is(.dh-menu-item, .dh-continue-card, .dh-product-dossier, .woocommerce ul.products li.product, .woocommerce-cart-form, .woocommerce-checkout-review-order) {
  border-color: rgba(179, 155, 85, 0.42) !important;
  box-shadow: inset 0 0 0 1px rgba(201, 170, 90, 0.08), 0 16px 42px rgba(58, 62, 59, 0.08);
}

html body:not(.wp-admin) :is(.dh-menu-item, .dh-product-dossier, .woocommerce ul.products li.product, .summary) :is(.dh-menu-item__price, .price, .woocommerce-Price-amount, .dh-product-dossier__price) {
  color: #80661f !important;
}

html body:not(.wp-admin) :is(.dh-button--solid, .dh-drawer__cta, .single_add_to_cart_button, .checkout-button, #place_order) {
  color: var(--dh62-charcoal, #3a3e3b) !important;
  border-color: var(--dh62-gold, #b39b55) !important;
  background: linear-gradient(135deg, #d2bb75, var(--dh62-gold, #b39b55)) !important;
  box-shadow: 0 10px 24px rgba(179, 155, 85, 0.24) !important;
}

html body:not(.wp-admin) :is(.dh-app-tab.is-active, .dh-app-tab:active) {
  box-shadow: inset 0 2px 0 var(--dh62-gold, #b39b55) !important;
}

@media (max-width: 767px) {
  html body #dh-luxury .dh-macro__grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 14px !important;
  }

  html body #dh-luxury .dh-macro__grid > figure {
    width: 100% !important;
    aspect-ratio: 3 / 2 !important;
  }
}

/* Product-family tabs use the semantic hidden attribute. Several responsive
   card rules deliberately use display:grid!important, so the hidden state
   must be the final authority or the inactive family remains in the layout. */
html body #dh-luxury .dh-menu-item[hidden] {
  display: none !important;
}

/* Final geometry lock must follow all legacy and component radius rules. */
html body:not(.wp-admin) :where(
  button,
  .button,
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea,
  .dh-menu-item,
  .dh-menu-item__image,
  .dh-film-card,
  .dh-film-card video,
  .dh-macro__grid figure,
  .dh-origin__pack,
  .dh-continue-card,
  .dh-context-film__media,
  .dh-product-dossier,
  .dh-product-dossier__tab,
  .dh-drawer,
  .dh-drawer__panel,
  .dh-search,
  .dh-search__panel,
  .dh-app-sheet__panel,
  .dh-app-tab,
  .dh-mobile-purchase-bar,
  .dh-film-play,
  .woocommerce ul.products li.product,
  .woocommerce-product-gallery,
  .woocommerce-product-gallery__image,
  .woocommerce-cart-form,
  .woocommerce-checkout-review-order,
  article.elementor-post
) {
  border-radius: 0 !important;
}

html body:not(.wp-admin):not(#dh-rounded-ui-disabled):not(#dh-rounded-ui-retired) *,
html body:not(.wp-admin):not(#dh-rounded-ui-disabled):not(#dh-rounded-ui-retired) *::before,
html body:not(.wp-admin):not(#dh-rounded-ui-disabled):not(#dh-rounded-ui-retired) *::after {
  border-radius: 0 !important;
}

html body:not(.wp-admin):not(#dh-rounded-ui-disabled):not(#dh-rounded-ui-retired) .dh-pointer-halo {
  border-radius: 50% !important;
}

/* 0.6.24 postflight lock. Keep these cache-safe retirement and ornament
   values last so no older release layer can restore the red divider or fade
   the commissioned gold-and-olive pencil work back into invisibility. */
html body.single-product .elementor-7277 [data-id="64f073a"],
html body.single-product .elementor-7277 [data-id="185c9e7"],
html body.single-product .elementor-7277 [data-id="3335fe9"],
html body .elementor-element-93aa79f,
html body img[src*="underline-red.png"] {
  display: none !important;
}

html body.dh-system-page .dh-page-olive,
html body.dh-context-page .dh-page-olive {
  opacity: 0.13 !important;
  mix-blend-mode: multiply !important;
  filter: contrast(1.18) saturate(1.08) !important;
}

@media (max-width: 767px) {
  html body.dh-system-page .dh-page-olive,
  html body.dh-context-page .dh-page-olive {
    opacity: 0.11 !important;
  }
}

/* Narrow-phone typography contract. The display face is intentionally wide,
   so headings scale against their real inner measure instead of relying on
   clipping or breaking a word. These rules stop at 430px; larger phone,
   tablet and desktop composition remains owned by the canonical system. */
@media (max-width: 430px) {
  html body #dh-luxury :is(
    .dh-hero__copy h1,
    .dh-origin__copy h2,
    .dh-beliefs__content h2,
    .dh-macro .dh-section-head h2,
    .dh-dining__head h2,
    .dh-film-journal .dh-section-head h2,
    .dh-continue > .dh-section-head h2,
    .dh-usual__intro h2,
    .dh-film-card__copy h3,
    .dh-continue-card h3,
    .dh-usual__card h3
  ),
  html body :is(.dh-category-collection, #dh-luxury .dh-dining) .dh-menu-item h3,
  html body :is(.dh-category-collection, #dh-luxury .dh-dining) .dh-menu-item h3 a,
  html body.single-product :is(
    .summary .product_title,
    .product .summary h1.product_title,
    h1.entry-title,
    .dh-product-dossier__header h2,
    .dh-product-dossier__panel h3
  ),
  html body .dh-context-film :is(h1, h2, #dh-context-title),
  html body.dh-page-contact-us .dh-contact-intro h2,
  html body:is(
    .dh-page-our-story,
    .dh-page-delivery-policy-2,
    .dh-page-refunds-and-returns,
    .dh-page-terms-and-conditions,
    .dh-page-privacy-policy
  ) .elementor-location-single :is(h1, h2, h3, h4, .elementor-heading-title, .wp-block-heading),
  html body.single-post .elementor-location-single :is(h1, h2, h3, h4, .elementor-heading-title, .wp-block-heading),
  html body.woocommerce-account :is(h1.entry-title, .entry-content > h1, .elementor-heading-title) {
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
  }

  html body #dh-luxury .dh-hero__copy h1 {
    font-size: clamp(1.85rem, 9.5vw, 2.55rem) !important;
    line-height: 0.98 !important;
  }

  html body #dh-luxury .dh-origin__copy h2 {
    font-size: clamp(1.35rem, calc(8.5vw - 4px), 2.1rem) !important;
  }

  html body #dh-luxury .dh-beliefs__content h2 {
    font-size: clamp(1.8rem, 9.5vw, 2.5rem) !important;
    line-height: 1 !important;
  }

  html body #dh-luxury :is(
    .dh-macro .dh-section-head h2,
    .dh-dining__head h2,
    .dh-film-journal .dh-section-head h2,
    .dh-continue > .dh-section-head h2,
    .dh-category-collection__head h2
  ) {
    font-size: clamp(1.65rem, 8.2vw, 2.15rem) !important;
    line-height: 1.03 !important;
  }

  html body #dh-luxury .dh-usual__intro h2 {
    font-size: clamp(1.75rem, 8.8vw, 2.3rem) !important;
    line-height: 1.02 !important;
  }

  html body #dh-luxury .dh-film-card__copy h3,
  html body #dh-luxury :is(.dh-continue-card, .dh-usual__card) h3 {
    font-size: clamp(1.2rem, 6.2vw, 1.4rem) !important;
    line-height: 1.14 !important;
  }

  html body :is(.dh-category-collection, #dh-luxury .dh-dining) .dh-menu-item h3,
  html body :is(.dh-category-collection, #dh-luxury .dh-dining) .dh-menu-item h3 a {
    font-size: clamp(1.12rem, 5.8vw, 1.32rem) !important;
    line-height: 1.1 !important;
  }

  html body.single-product :is(
    .summary .product_title,
    .product .summary h1.product_title,
    h1.entry-title
  ) {
    font-size: clamp(1.35rem, 6.8vw, 1.8rem) !important;
    line-height: 1 !important;
  }

  html body.single-product .dh-product-dossier__header h2 {
    font-size: clamp(1.45rem, 7.6vw, 2rem) !important;
    line-height: 1.04 !important;
  }

  html body.single-product .dh-product-dossier__panel h3 {
    font-size: clamp(1.05rem, 5.7vw, 1.3rem) !important;
    line-height: 1.12 !important;
  }

  html body .dh-context-film :is(h1, h2, #dh-context-title) {
    font-size: clamp(1.5rem, 8vw, 2rem) !important;
    line-height: 1.04 !important;
  }

  html body .dh-context-film #dh-context-title.dh-context-title--long,
  html body.dh-page-contact-us .dh-context-film #dh-context-title {
    font-size: clamp(1.3rem, 6.8vw, 1.8rem) !important;
    line-height: 1.08 !important;
  }

  html body.single-product .dh-context-film #dh-context-title {
    font-size: clamp(1.2rem, 6vw, 1.6rem) !important;
    line-height: 1.08 !important;
  }

  html body.dh-page-terms-and-conditions .dh-context-film #dh-context-title {
    font-size: clamp(1.05rem, 5.2vw, 1.35rem) !important;
    line-height: 1.1 !important;
  }

  html body.dh-page-contact-us .dh-contact-intro h2 {
    font-size: clamp(1.65rem, 9.2vw, 2.15rem) !important;
    line-height: 1.04 !important;
  }

  html body:is(
    .dh-page-our-story,
    .dh-page-delivery-policy-2,
    .dh-page-refunds-and-returns,
    .dh-page-terms-and-conditions,
    .dh-page-privacy-policy
  ) .elementor-location-single :is(h2, h3, h4, .elementor-heading-title, .wp-block-heading),
  html body.single-post .elementor-location-single :is(h2.wp-block-heading, h3.wp-block-heading, h4.wp-block-heading) {
    font-size: clamp(1.1rem, 6vw, 1.45rem) !important;
    line-height: 1.18 !important;
  }

  html body.single-post .elementor-location-single h1.elementor-heading-title {
    font-size: clamp(1.45rem, 7vw, 1.9rem) !important;
    line-height: 1.08 !important;
  }

  html body.woocommerce-account :is(h1.entry-title, .entry-content > h1, .elementor-heading-title) {
    font-size: clamp(2rem, 9vw, 2.4rem) !important;
    line-height: 1 !important;
  }

  html body:is(
    .dh-page-contact-us,
    .dh-page-delivery-policy-2,
    .dh-page-refunds-and-returns,
    .dh-page-terms-and-conditions,
    .dh-page-privacy-policy
  ) .elementor-location-single > .elementor-top-section,
  html body.single-post .elementor-location-single > .elementor-top-section {
    width: 100% !important;
    max-width: 100% !important;
    padding-right: 16px !important;
    padding-left: 16px !important;
  }

  html body:is(
    .dh-page-contact-us,
    .dh-page-delivery-policy-2,
    .dh-page-refunds-and-returns,
    .dh-page-terms-and-conditions,
    .dh-page-privacy-policy
  ) .elementor-location-single > .elementor-top-section > .elementor-container,
  html body:is(
    .dh-page-contact-us,
    .dh-page-delivery-policy-2,
    .dh-page-refunds-and-returns,
    .dh-page-terms-and-conditions,
    .dh-page-privacy-policy
  ) .elementor-location-single > .elementor-top-section > .elementor-container > .elementor-top-column,
  html body:is(
    .dh-page-contact-us,
    .dh-page-delivery-policy-2,
    .dh-page-refunds-and-returns,
    .dh-page-terms-and-conditions,
    .dh-page-privacy-policy
  ) .elementor-location-single > .elementor-top-section > .elementor-container > .elementor-top-column > .elementor-widget-wrap {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  html body.dh-page-contact-us .dh-contact-page {
    width: 100% !important;
    max-width: 100% !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  html body.single-post .elementor-location-single > .e-con.e-parent {
    width: 100% !important;
    max-width: 100% !important;
    padding-right: 16px !important;
    padding-left: 16px !important;
  }

  html body.single-post .elementor-location-single .e-con.e-child {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
}

/* Exhaustive shared-component corrections. These declarations are the final
   authority for shell elements that are direct body children, because the
   legacy page-layer selector otherwise turns fixed UI back into normal flow. */
html body:not(.wp-admin) > .dh-mobile-purchase-bar {
  display: none !important;
}

html body.dh-system-page > .dh-quick-order {
  position: fixed !important;
  z-index: 9990 !important;
}

html body .dh-app-basket,
html body .dh-app-tab {
  position: relative !important;
}

html body .dh-app-count[hidden] {
  display: none !important;
}

html body .dh-app-tab > .dh-app-count {
  top: 3px !important;
  right: 4px !important;
}

html body .dh-app-bottom .dh-app-tab--search,
html body .dh-app-bottom .dh-app-tab--search > span {
  text-transform: none !important;
}

html body .dh-film-controls button {
  width: 48px !important;
  min-width: 48px !important;
  height: 48px !important;
  min-height: 48px !important;
}

html body.single-product .woocommerce-product-gallery__trigger {
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
}

/* Contrast corrections verified against the rendered backgrounds. */
html body #dh-luxury .dh-macro .dh-section-head > p:not(.dh-kicker) {
  color: #f3eee0 !important;
}

html body #dh-luxury .dh-subnav {
  border-top-color: rgba(179, 155, 85, 0.72) !important;
  border-bottom-color: rgba(179, 155, 85, 0.72) !important;
  background: rgba(47, 56, 44, 0.94) !important;
}

html body #dh-luxury .dh-subnav a,
html body #dh-luxury .dh-subnav a * {
  color: #f3eee0 !important;
  font-size: 0.78rem !important;
  line-height: 1.2 !important;
}

html body:not(.wp-admin) .dh-category-collection .dh-menu-item .dh-menu-item__price,
html body:not(.wp-admin) .dh-category-collection .dh-menu-item .dh-menu-item__price * {
  color: #705817 !important;
}

html body:not(.wp-admin).single-product .dh-linked-product-card .dh-related-card .dh-related-card__price,
html body:not(.wp-admin).single-product .dh-linked-product-card .dh-related-card .dh-related-card__price * {
  color: #705817 !important;
}

/* Final palette containment for the two remaining Elementor/WooCommerce
   surfaces that still inherited the retired pure-white/copper scheme. */
html body.category-pet-care article.elementor-post,
html body.category-pet-care article.elementor-post .elementor-post__card {
  border-radius: 0 !important;
  border-color: rgba(179, 155, 85, 0.46) !important;
  background: #f3eee0 !important;
}

html body.category-pet-care article.elementor-post .elementor-post__thumbnail__link,
html body.category-pet-care article.elementor-post .elementor-post__thumbnail,
html body.category-pet-care article.elementor-post .elementor-post__thumbnail img {
  color: #3a3e3b !important;
  border-color: #b39b55 !important;
}

html body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active > a,
html body.dh-system-page.woocommerce-account .woocommerce-MyAccount-navigation li.is-active > a {
  color: #f3eee0 !important;
  border-color: #b39b55 !important;
  border-radius: 0 !important;
  background: #3f5137 !important;
}

html body.woocommerce-account .woocommerce-MyAccount-content-wrapper,
html body.dh-system-page.woocommerce-account .woocommerce-MyAccount-content-wrapper {
  color: #3a3e3b !important;
  border-color: rgba(179, 155, 85, 0.46) !important;
  border-radius: 0 !important;
  background: #f3eee0 !important;
}

/* Keep WooCommerce PhotoSwipe genuinely fullscreen above the app shell. The
   legacy direct-child page layer otherwise changes it to a low z-index box. */
html body.dh-system-page > .pswp {
  position: fixed !important;
  z-index: 2147483647 !important;
  inset: 0 !important;
  width: 100vw !important;
  max-width: none !important;
  height: 100vh !important;
  height: 100dvh !important;
  margin: 0 !important;
}

@media (min-width: 1280px) {
  html body.dh-system-page > .dh-quick-order {
    right: 20px !important;
    bottom: 20px !important;
    left: auto !important;
    display: flex !important;
    width: auto !important;
    max-width: calc(100vw - 40px) !important;
    margin: 0 !important;
  }
}

@media (min-width: 768px) and (max-width: 1100px) {
  html body .dh-category-collection__list,
  html body .dh-category-collection__split .dh-category-collection__list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 1024px) {
  html.dh-mobile-app-ready body > .dh-quick-order {
    display: none !important;
  }
}

@media (max-width: 767px) {
  html body.single-product form.variations_form table.variations,
  html body.single-product form.variations_form table.variations > tbody,
  html body.single-product form.variations_form table.variations > tbody > tr,
  html body.single-product form.variations_form table.variations > tbody > tr > th,
  html body.single-product form.variations_form table.variations > tbody > tr > td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  html body.single-product form.variations_form table.variations > tbody > tr > th.label {
    padding: 0 0 8px !important;
    text-align: left !important;
  }

  html body.single-product form.variations_form table.variations > tbody > tr > td.value {
    padding: 0 !important;
  }

  html body.single-product form.variations_form table.variations select {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  html body.single-product form.variations_form .reset_variations {
    display: inline-block !important;
    margin-top: 8px !important;
  }

  html body.single-product > .dh-mobile-purchase-bar {
    position: fixed !important;
    z-index: 2147482999 !important;
    right: 10px !important;
    bottom: calc(var(--dh-app-bottom) + env(safe-area-inset-bottom) + 10px) !important;
    left: 10px !important;
    display: grid !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  html body.dh-system-page.dh-context-page.single-product > aside.dh-mobile-purchase-bar[aria-label="Quick purchase"] > button,
  html body.dh-system-page.dh-context-page.single-product > aside.dh-mobile-purchase-bar[aria-label="Quick purchase"] > .button,
  html body.dh-system-page.dh-context-page.single-product > aside.dh-mobile-purchase-bar[aria-label="Quick purchase"] > a.button {
    border: 1px solid #b39b55 !important;
    color: #f3eee0 !important;
    background: #3f5137 !important;
  }

  html body.dh-system-page.dh-context-page.single-product > aside.dh-mobile-purchase-bar[aria-label="Quick purchase"] > button *,
  html body.dh-system-page.dh-context-page.single-product > aside.dh-mobile-purchase-bar[aria-label="Quick purchase"] > .button * {
    color: #f3eee0 !important;
  }
}

/* 0.6.25 — measured layout, commerce, editorial and app-shell corrections. */
:root {
  --dh-gold-deep: #705817;
  --dh-gold: #b39b55;
  --dh-gold-light: #c7b778;
  --dh-ivory: #f3eee0;
  --dh-charcoal: #3a3e3b;
  --dh-olive: #3f5137;
}

/* Card actions always own a complete row. This removes the narrow copy/CTA
   collision seen at desktop and tablet widths. */
html body #dh-luxury .dh-menu-item__actions {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
}

html body #dh-luxury .dh-menu-item__actions > a {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Product media remains contained at ultrawide sizes and the retired Woo
   hover-zoom clone can never enlarge over the layout. */
html body.single-product .woocommerce-product-gallery__image img.zoomImg {
  display: none !important;
}

html body.single-product .woocommerce-product-gallery__image > a,
html body.single-product .woocommerce-product-gallery__image > a > img:not(.zoomImg),
html body.single-product .woocommerce-product-gallery__image > img.wp-post-image {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
}

html body.single-product .woocommerce-product-gallery .flex-control-thumbs {
  justify-content: center !important;
  grid-template-columns: repeat(2, minmax(0, 88px)) !important;
}

html body.single-product .woocommerce-product-gallery .flex-control-thumbs li,
html body.single-product .woocommerce-product-gallery .flex-control-thumbs img {
  width: 88px !important;
  max-width: 88px !important;
  height: 88px !important;
  object-fit: contain !important;
}

/* The homepage philosophy statement uses the seal as an editorial accent,
   not a separate empty row, and keeps whole words at every width. */
html body #dh-luxury .dh-macro {
  padding-block: clamp(72px, 6vw, 96px) !important;
}

html body #dh-luxury .dh-macro > .dh-section-head {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  grid-template-rows: auto auto !important;
  column-gap: clamp(32px, 4vw, 64px) !important;
  width: 100% !important;
  max-width: min(100%, 80rem) !important;
  margin: 0 auto clamp(36px, 4vw, 52px) !important;
}

html body #dh-luxury .dh-macro > .dh-section-head > .dh-section-seal {
  grid-column: 2 !important;
  grid-row: 1 / span 2 !important;
  align-self: start !important;
  width: clamp(72px, 6vw, 100px) !important;
  margin: 0 !important;
}

html body #dh-luxury .dh-macro > .dh-section-head > #dh-macro-title {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  font-size: clamp(3.2rem, 4.15vw, 4.5rem) !important;
  line-height: 1.01 !important;
  letter-spacing: -0.025em !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
  text-wrap: balance !important;
}

html body #dh-luxury .dh-macro > .dh-section-head > p:not(.dh-kicker) {
  grid-column: 1 !important;
  grid-row: 2 !important;
  max-width: 44rem !important;
  margin: clamp(18px, 2vw, 26px) 0 0 !important;
  font-size: clamp(1rem, 1.05vw, 1.1rem) !important;
  line-height: 1.55 !important;
}

/* Gold ribbons are reserved for editorial chapter headings. Deep gold is used
   behind ivory type so the combination remains readable, while bright gold
   stays on borders and ornaments. */
html body.dh-page-our-story #content .elementor-element-1d54649 .elementor-heading-title {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 14px clamp(18px, 2.2vw, 32px) 13px !important;
  box-sizing: border-box !important;
  border: 1px solid var(--dh-gold) !important;
  border-radius: 0 !important;
  color: var(--dh-ivory) !important;
  background: var(--dh-gold-deep) !important;
  font-size: clamp(1.35rem, 2vw, 2rem) !important;
  line-height: 1.14 !important;
  letter-spacing: 0.055em !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
  text-wrap: balance !important;
}

/* First-party contact form: fixed destination, square geometry and large
   app-like controls. */
html body.dh-page-contact-us .dh-contact-form-section {
  display: grid !important;
  grid-template-columns: minmax(240px, 0.72fr) minmax(0, 1.28fr) !important;
  gap: clamp(28px, 4vw, 64px) !important;
  width: min(100%, 1240px) !important;
  margin: clamp(36px, 5vw, 72px) auto 0 !important;
  padding: clamp(28px, 4vw, 56px) !important;
  box-sizing: border-box !important;
  border: 1px solid rgba(179, 155, 85, 0.62) !important;
  border-radius: 0 !important;
  background: rgba(243, 238, 224, 0.96) !important;
}

html body.dh-page-contact-us .dh-contact-form-section__intro h2 {
  margin: 8px 0 16px !important;
  color: var(--dh-charcoal) !important;
  font-size: clamp(2rem, 3.8vw, 3.5rem) !important;
  line-height: 1.02 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}

html body.dh-page-contact-us .dh-contact-form-section__intro p,
html body.dh-page-contact-us .dh-contact-form-section__intro a {
  overflow-wrap: break-word !important;
  word-break: normal !important;
}

html body.dh-page-contact-us .dh-contact-form {
  position: relative !important;
  min-width: 0 !important;
}

html body.dh-page-contact-us .dh-contact-form__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
}

html body.dh-page-contact-us .dh-contact-form p {
  min-width: 0 !important;
  margin: 0 !important;
}

html body.dh-page-contact-us .dh-contact-form__wide {
  grid-column: 1 / -1 !important;
}

html body.dh-page-contact-us .dh-contact-form label {
  display: block !important;
  margin-bottom: 7px !important;
  color: var(--dh-olive) !important;
  font-size: 0.78rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  line-height: 1.3 !important;
  text-transform: uppercase !important;
}

html body.dh-page-contact-us .dh-contact-form :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), select, textarea) {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 52px !important;
  margin: 0 !important;
  padding: 12px 14px !important;
  box-sizing: border-box !important;
  border: 1px solid rgba(63, 81, 55, 0.44) !important;
  border-radius: 0 !important;
  color: var(--dh-charcoal) !important;
  background: #fffaf0 !important;
  font: 700 1rem/1.45 "Dr Hahnz Myriad", "Myriad Pro", Arial, sans-serif !important;
}

html body.dh-page-contact-us .dh-contact-form textarea {
  min-height: 176px !important;
  resize: vertical !important;
}

html body.dh-page-contact-us .dh-contact-form :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), select, textarea):focus {
  outline: 3px solid rgba(179, 155, 85, 0.38) !important;
  outline-offset: 2px !important;
  border-color: var(--dh-gold-deep) !important;
}

html body.dh-page-contact-us .dh-contact-form > button {
  width: 100% !important;
  min-height: 54px !important;
  margin-top: 18px !important;
  border: 1px solid var(--dh-gold) !important;
  border-radius: 0 !important;
  color: var(--dh-ivory) !important;
  background: var(--dh-olive) !important;
}

html body.dh-page-contact-us .dh-contact-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

html body.dh-page-contact-us .dh-contact-notice {
  margin: 0 0 18px !important;
  padding: 14px 16px !important;
  border: 1px solid var(--dh-gold) !important;
  color: var(--dh-charcoal) !important;
  background: #fffaf0 !important;
}

/* Retire the last white/black transient surfaces. */
html body.dh-page-where-to-buy-pet-supply .elementor-element-390f2e0 {
  background-color: var(--dh-ivory) !important;
}

html body .pswp__bg {
  background: var(--dh-charcoal) !important;
}

html body.woocommerce-checkout .blockUI.blockOverlay {
  background: var(--dh-ivory) !important;
  opacity: 0.82 !important;
}

@media (min-width: 1025px) {
  html body.single-product .elementor-7277 .elementor-element.elementor-element-fff7d93 {
    display: flex !important;
    width: min(calc(100% - 48px), 1440px) !important;
    max-width: 1440px !important;
    margin-inline: auto !important;
    padding: clamp(48px, 5vw, 72px) !important;
    gap: clamp(36px, 4vw, 56px) !important;
    box-sizing: border-box !important;
  }

  html body.single-product .elementor-7277 .elementor-element-7d65675 {
    flex: 0 1 46% !important;
    width: 46% !important;
    max-width: 520px !important;
    min-width: 0 !important;
  }

  html body.single-product .elementor-7277 .elementor-element-71c6ec1 {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
  }

  html body.single-product .woocommerce-product-gallery {
    width: 100% !important;
    max-width: 520px !important;
    margin-inline: auto !important;
  }

  html body.dh-page-terms-and-conditions .dh-context-film #dh-context-title {
    font-size: clamp(1.9rem, 2.4vw, 2.2rem) !important;
    line-height: 1.08 !important;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  html body #dh-luxury .dh-macro {
    padding-block: 64px 76px !important;
  }

  html body #dh-luxury .dh-macro > .dh-section-head {
    column-gap: 32px !important;
  }

  html body #dh-luxury .dh-macro > .dh-section-head > #dh-macro-title {
    font-size: clamp(2.4rem, 5vw, 3.2rem) !important;
  }

  html body.dh-page-contact-us .dh-contact-form-section {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 767px) {
  html body.single-product .woocommerce-product-gallery__image {
    height: clamp(360px, 118vw, 520px) !important;
    max-height: 520px !important;
    aspect-ratio: auto !important;
  }

  html body #dh-luxury .dh-macro {
    padding: 52px 16px 64px !important;
  }

  html body #dh-luxury .dh-macro > .dh-section-head {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto !important;
    gap: 0 !important;
  }

  html body #dh-luxury .dh-macro > .dh-section-head > .dh-section-seal {
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    width: 58px !important;
    margin: 0 0 20px !important;
  }

  html body #dh-luxury .dh-macro > .dh-section-head > #dh-macro-title {
    grid-column: 1 !important;
    grid-row: 2 !important;
    font-size: clamp(1.4rem, 7vw, 2rem) !important;
    line-height: 1.04 !important;
  }

  html body #dh-luxury .dh-macro > .dh-section-head > p:not(.dh-kicker) {
    grid-column: 1 !important;
    grid-row: 3 !important;
    margin-top: 18px !important;
    font-size: 1rem !important;
  }

  html body.dh-page-our-story #content .elementor-element-1d54649 .elementor-heading-title {
    width: 100% !important;
    padding: 12px 14px 11px !important;
    font-size: clamp(1.05rem, 5.2vw, 1.3rem) !important;
    line-height: 1.18 !important;
    letter-spacing: 0.035em !important;
  }

  html body.dh-page-contact-us .dh-contact-form-section {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 24px !important;
    width: 100% !important;
    margin-top: 28px !important;
    padding: 22px 16px !important;
  }

  html body.dh-page-contact-us .dh-contact-form-section__intro h2 {
    font-size: clamp(1.65rem, 8vw, 2.05rem) !important;
  }

  html body.dh-page-contact-us .dh-contact-form__grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 15px !important;
  }

  html body.dh-page-contact-us .dh-contact-form__wide {
    grid-column: 1 !important;
  }

  /* Account and order-history tables become scannable app cards rather than
     horizontally squeezed desktop tables. */
  html body.woocommerce-account .woocommerce-orders-table thead {
    display: none !important;
  }

  html body.woocommerce-account .woocommerce-orders-table,
  html body.woocommerce-account .woocommerce-orders-table tbody,
  html body.woocommerce-account .woocommerce-orders-table tr,
  html body.woocommerce-account .woocommerce-orders-table td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  html body.woocommerce-account .woocommerce-orders-table tr {
    margin-bottom: 12px !important;
    border: 1px solid rgba(179, 155, 85, 0.5) !important;
    background: var(--dh-ivory) !important;
  }

  html body.woocommerce-account .woocommerce-orders-table td {
    min-height: 42px !important;
    padding: 10px 12px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(179, 155, 85, 0.24) !important;
    text-align: right !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  html body.woocommerce-account .woocommerce-orders-table td::before {
    content: attr(data-title) !important;
    float: left !important;
    margin-right: 16px !important;
    color: var(--dh-olive) !important;
    font-size: 0.72rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
  }

  html body.woocommerce-account .woocommerce-orders-table td:last-child {
    border-bottom: 0 !important;
  }

  html body.woocommerce-account .woocommerce-orders-table .button {
    display: block !important;
    width: 100% !important;
    margin-top: 4px !important;
    clear: both !important;
    text-align: center !important;
  }
}

/* Tablet cards are vertical by design: a full packshot frame followed by a
   full-width copy and action area. This removes the narrow copy column seen at
   1024px and gives the tablet shop a deliberate app catalogue rhythm. */
@media (min-width: 768px) and (max-width: 1100px) {
  html body #dh-luxury .dh-dining .dh-menu-item {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 18px !important;
    padding: 18px !important;
  }

  html body #dh-luxury .dh-dining .dh-menu-item__image {
    width: 100% !important;
    height: clamp(250px, 31vw, 340px) !important;
  }

  html body #dh-luxury .dh-dining .dh-menu-item__copy {
    width: 100% !important;
    min-width: 0 !important;
  }
}

/* Keep product detail in a single, centred app column through tablet widths;
   the two-column editorial layout starts only when both columns are useful. */
@media (max-width: 1279px) {
  html body.single-product .elementor-7277 .elementor-element.elementor-element-fff7d93 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: min(100%, 880px) !important;
    max-width: 880px !important;
    margin-inline: auto !important;
    padding: clamp(20px, 4vw, 40px) !important;
    gap: clamp(24px, 4vw, 38px) !important;
    box-sizing: border-box !important;
  }

  html body.single-product .elementor-7277 .elementor-element-7d65675,
  html body.single-product .elementor-7277 .elementor-element-71c6ec1 {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  html body.single-product .woocommerce-product-gallery {
    width: 100% !important;
    max-width: 520px !important;
    margin-inline: auto !important;
  }
}

@media (min-width: 1025px) and (max-width: 1279px) {
  html body.single-product .woocommerce-product-gallery__image {
    height: 520px !important;
    max-height: 520px !important;
    aspect-ratio: auto !important;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  html body.single-product .woocommerce-product-gallery__image {
    height: 520px !important;
    max-height: 520px !important;
    aspect-ratio: auto !important;
  }

  /* My Account uses the same card contract on tablet, not a desktop data grid
     squeezed under the persistent app navigation. */
  html body.woocommerce-account .woocommerce-orders-table thead {
    display: none !important;
  }

  html body.woocommerce-account .woocommerce-orders-table,
  html body.woocommerce-account .woocommerce-orders-table tbody,
  html body.woocommerce-account .woocommerce-orders-table tr,
  html body.woocommerce-account .woocommerce-orders-table td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  html body.woocommerce-account .woocommerce-orders-table tr {
    margin-bottom: 14px !important;
    border: 1px solid rgba(179, 155, 85, 0.5) !important;
    background: var(--dh-ivory) !important;
  }

  html body.woocommerce-account .woocommerce-orders-table td {
    min-height: 44px !important;
    padding: 11px 14px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(179, 155, 85, 0.24) !important;
    text-align: right !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  html body.woocommerce-account .woocommerce-orders-table td::before {
    content: attr(data-title) !important;
    float: left !important;
    margin-right: 18px !important;
    color: var(--dh-olive) !important;
    font-size: 0.74rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
  }

  html body.woocommerce-account .woocommerce-orders-table td:last-child {
    border-bottom: 0 !important;
  }

  html body.woocommerce-account .woocommerce-orders-table .button {
    display: block !important;
    width: 100% !important;
    margin-top: 4px !important;
    clear: both !important;
    text-align: center !important;
  }
}
html body .dh-empty-legacy-media {
  display: none !important;
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

/* 0.6.27 — one authoritative responsive contract.
 * This layer deliberately follows every historical rule in the bundle. It
 * removes the breakpoint gaps and unbounded display type that caused the
 * same components to fail differently on phone, tablet and desktop. */

html body:not(.wp-admin) :where(
  #dh-luxury,
  #content,
  .site-main,
  .elementor,
  .elementor-section,
  .elementor-container,
  .elementor-column,
  .elementor-widget,
  .elementor-widget-container,
  .woocommerce,
  .product,
  .summary,
  .dh-context-film,
  .dh-context-film__copy,
  .dh-context-film__media,
  .dh-origin,
  .dh-origin__copy,
  .dh-origin__pack,
  .dh-macro,
  .dh-macro__grid,
  .dh-category-collection,
  .dh-category-collection__list,
  .dh-category-collection__split,
  .dh-category-collection__group,
  .dh-menu-item,
  .dh-menu-item__copy,
  .dh-menu-item__actions,
  .dh-contact-form-section,
  .dh-contact-form
) {
  min-width: 0 !important;
  max-width: 100%;
  box-sizing: border-box !important;
}

html body:not(.wp-admin) :where(h1, h2, h3, h4, p, li, a, button, label, th, td) {
  min-width: 0;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: none !important;
}

html body:not(.wp-admin) :where(img, video, iframe, canvas, svg) {
  max-width: 100%;
}

/* Homepage origin: the copy and transparent packshot always own separate,
 * bounded columns. The headline can never run through the packshot again. */
html body.home #dh-luxury .dh-origin {
  display: grid !important;
  grid-template-columns: minmax(0, 52%) minmax(0, 48%) !important;
  width: min(100%, 1600px) !important;
  min-height: clamp(610px, 56vw, 820px) !important;
  height: auto !important;
  margin-inline: auto !important;
  overflow: hidden !important;
}

html body.home #dh-luxury .dh-origin__copy {
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  width: 100% !important;
  padding: clamp(52px, 6vw, 96px) clamp(30px, 5vw, 78px) !important;
  overflow: visible !important;
}

html body.home #dh-luxury .dh-origin__copy h2 {
  width: 100% !important;
  max-width: 11.8em !important;
  margin: 0 !important;
  font-size: clamp(2.55rem, 3.65vw, 3.65rem) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.025em !important;
  white-space: normal !important;
  text-wrap: balance !important;
  overflow: visible !important;
}

html body.home #dh-luxury .dh-origin__copy > p:not(.dh-kicker) {
  max-width: 42rem !important;
  font-size: clamp(1rem, 1.15vw, 1.16rem) !important;
  font-weight: 500 !important;
  line-height: 1.58 !important;
}

html body.home #dh-luxury .dh-origin__pack {
  position: relative !important;
  z-index: 0 !important;
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  height: 100% !important;
  min-height: inherit !important;
  max-height: none !important;
  margin: 0 !important;
  overflow: hidden !important;
  background: radial-gradient(circle at 50% 48%, #fffaf0 0 34%, #eee7d8 76%, rgba(179, 155, 85, 0.18) 100%) !important;
}

html body.home #dh-luxury .dh-origin__pack > img {
  position: absolute !important;
  inset: clamp(18px, 2vw, 34px) !important;
  display: block !important;
  width: calc(100% - clamp(36px, 4vw, 68px)) !important;
  height: calc(100% - clamp(36px, 4vw, 68px)) !important;
  max-width: none !important;
  max-height: none !important;
  margin: auto !important;
  padding: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
  transform: none !important;
}

/* Homepage product-story triptych: identical frames and a pack lineup that
 * fills its frame without cropping any bag. */
html body.home #dh-luxury .dh-macro__grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  gap: clamp(12px, 1.6vw, 24px) !important;
}

html body.home #dh-luxury .dh-macro__grid > figure {
  position: relative !important;
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  aspect-ratio: 3 / 2 !important;
  margin: 0 !important;
  overflow: hidden !important;
  border-radius: 0 !important;
}

html body.home #dh-luxury .dh-macro__lineup-stage > .dh-macro__lineup-pack {
  bottom: -5% !important;
  width: 58% !important;
}

html body.home #dh-luxury .dh-macro__lineup-stage > .dh-macro__lineup-pack--cat {
  left: -8.5% !important;
}

html body.home #dh-luxury .dh-macro__lineup-stage > .dh-macro__lineup-pack--hero {
  left: 17.5% !important;
  bottom: -2% !important;
  width: 66% !important;
}

html body.home #dh-luxury .dh-macro__lineup-stage > .dh-macro__lineup-pack--dog {
  right: -8.5% !important;
}

/* Retired Elementor artwork is hidden immediately while the upgrade routine
 * permanently removes the nodes from saved Elementor data. */
html body.single-product .elementor-7277 [data-id="863c2b1"],
html body.single-product .elementor-7277 [data-id="e1d6dd4"],
html body.single-post .elementor-7152 [data-id="42f902a"] {
  display: none !important;
}

/* Product detail: one breakpoint contract — app column through tablet, two
 * genuinely useful columns from laptop upward. */
html body.single-product .elementor-7277 [data-id="8163fb0"] {
  flex: 1 1 100% !important;
  width: 100% !important;
  max-width: 100% !important;
}

html body.single-product .elementor-7277 [data-id="390aac2"] > .elementor-widget-container {
  margin: 0 !important;
}

html body.single-product .elementor-7277 [data-id="390aac2"] .elementor-heading-title,
html body.single-product .elementor-7277 [data-id="390aac2"] h1 {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin: 0 0 24px !important;
  padding: 13px clamp(16px, 2vw, 28px) 12px !important;
  border: 1px solid var(--dh-gold) !important;
  color: var(--dh-ivory) !important;
  background: var(--dh-gold-deep) !important;
  font-size: clamp(2rem, 3vw, 3.25rem) !important;
  line-height: 1.04 !important;
  letter-spacing: 0.015em !important;
  white-space: normal !important;
  text-wrap: balance !important;
  overflow: visible !important;
}

html body.single-product .woocommerce-product-gallery {
  width: 100% !important;
  max-width: 520px !important;
  margin-inline: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
}

html body.single-product .woocommerce-product-gallery .flex-viewport,
html body.single-product .woocommerce-product-gallery__wrapper,
html body.single-product .woocommerce-product-gallery__image {
  min-height: 0 !important;
  max-height: none !important;
}

html body.single-product .woocommerce-product-gallery__image {
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  overflow: hidden !important;
}

html body.single-product .woocommerce-product-gallery__image > a {
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  height: 100% !important;
}

html body.single-product .woocommerce-product-gallery__image :is(a > img, > img) {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  padding: clamp(14px, 2.4vw, 28px) !important;
  object-fit: contain !important;
  object-position: center !important;
  transform: none !important;
}

@media (min-width: 1025px) {
  html body.single-product .elementor-7277 .elementor-element.elementor-element-fff7d93 {
    display: grid !important;
    grid-template-columns: minmax(360px, 520px) minmax(0, 1fr) !important;
    align-items: start !important;
    gap: clamp(36px, 4vw, 64px) !important;
    width: min(calc(100% - 48px), 1440px) !important;
    max-width: 1440px !important;
    margin-inline: auto !important;
    padding: clamp(42px, 4.5vw, 72px) !important;
  }

  html body.single-product .elementor-7277 .elementor-element-7d65675,
  html body.single-product .elementor-7277 .elementor-element-71c6ec1 {
    width: 100% !important;
    max-width: 100% !important;
  }

  html body.single-product .elementor-7277 .elementor-element-71c6ec1 {
    position: relative !important;
    padding-right: clamp(82px, 7vw, 106px) !important;
  }

  html body.single-product .elementor-7277 .elementor-element-71c6ec1::before {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    width: clamp(68px, 6vw, 90px) !important;
    aspect-ratio: 1 !important;
    background: url("../images/dr-hahnz-seal-gold.png") center / contain no-repeat !important;
    content: "" !important;
  }

  html body.dh-system-page > .dh-quick-order,
  html body.dh-context-page > .dh-quick-order {
    display: none !important;
  }
}

@media (max-width: 1024px) {
  html body.single-product .elementor-7277 .elementor-element.elementor-element-fff7d93 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: min(100%, 760px) !important;
    max-width: 760px !important;
    margin-inline: auto !important;
    padding: clamp(18px, 4vw, 36px) !important;
    gap: clamp(22px, 4vw, 36px) !important;
  }

  html body.single-product .elementor-7277 .elementor-element-7d65675,
  html body.single-product .elementor-7277 .elementor-element-71c6ec1 {
    width: 100% !important;
    max-width: 100% !important;
    padding-right: 0 !important;
  }

  html body.single-product .elementor-7277 .elementor-element-71c6ec1::before {
    display: none !important;
  }
}

/* Catalogue: stable 1/2/3/4-column progression, equal cards within each row,
 * uniform packshot stages and bottom-aligned actions. */
html body .dh-category-collection__list,
html body #dh-luxury .dh-dining__list {
  display: grid !important;
  align-items: stretch !important;
  gap: clamp(16px, 2vw, 28px) !important;
}

html body .dh-category-collection .dh-menu-item,
html body #dh-luxury .dh-dining .dh-menu-item {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  align-self: stretch !important;
  align-items: stretch !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

html body .dh-category-collection .dh-menu-item__image,
html body #dh-luxury .dh-dining .dh-menu-item__image {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: clamp(250px, 24vw, 340px) !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

html body .dh-category-collection .dh-menu-item__image > img,
html body #dh-luxury .dh-dining .dh-menu-item__image > img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: auto !important;
  padding: clamp(12px, 1.4vw, 22px) !important;
  object-fit: contain !important;
  object-position: center !important;
  transform: none !important;
}

html body .dh-category-collection .dh-menu-item__copy,
html body #dh-luxury .dh-dining .dh-menu-item__copy {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
  padding: clamp(18px, 2vw, 28px) !important;
}

html body .dh-category-collection .dh-menu-item__copy > p,
html body #dh-luxury .dh-dining .dh-menu-item__copy > p {
  display: block !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  -webkit-line-clamp: unset !important;
}

html body .dh-category-collection .dh-menu-item__actions,
html body #dh-luxury .dh-dining .dh-menu-item__actions {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 8px !important;
  width: 100% !important;
  margin-top: auto !important;
}

html body .dh-category-collection .dh-menu-item__actions > a,
html body #dh-luxury .dh-dining .dh-menu-item__actions > a {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  min-height: 50px !important;
  margin: 0 !important;
  padding: 11px 14px !important;
}

@media (max-width: 699px) {
  html body .dh-category-collection__list,
  html body .dh-category-collection__split .dh-category-collection__list,
  html body #dh-luxury .dh-dining__list {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

@media (min-width: 700px) and (max-width: 1099px) {
  html body .dh-category-collection__list,
  html body .dh-category-collection__split .dh-category-collection__list,
  html body #dh-luxury .dh-dining__list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 1100px) and (max-width: 1599px) {
  html body .dh-category-collection__list,
  html body .dh-category-collection__split .dh-category-collection__list,
  html body #dh-luxury .dh-dining__list {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 1600px) {
  html body .dh-category-collection__list,
  html body .dh-category-collection__split .dh-category-collection__list,
  html body #dh-luxury .dh-dining__list {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

/* Contact: the desktop intro is bounded, the form stacks before either side
 * can collide, and the submit label wins over the generic button cascade. */
html body.dh-page-contact-us .dh-contact-form-section > * {
  min-width: 0 !important;
  max-width: 100% !important;
}

html body.dh-page-contact-us .dh-contact-form-section__intro h2 {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin: 0 0 18px !important;
  padding: 13px clamp(16px, 2vw, 28px) 12px !important;
  border: 1px solid var(--dh-gold) !important;
  color: var(--dh-ivory) !important;
  background: var(--dh-gold-deep) !important;
  font-size: clamp(1.65rem, 2.65vw, 2.65rem) !important;
  line-height: 1.08 !important;
  letter-spacing: 0.025em !important;
  white-space: normal !important;
  text-wrap: balance !important;
}

html body.dh-page-contact-us .dh-contact-form-section__intro a {
  overflow-wrap: anywhere !important;
}

html body.dh-system-page.dh-context-page.dh-page-contact-us .dh-contact-form > button[type="submit"] {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 56px !important;
  color: var(--dh-ivory) !important;
  -webkit-text-fill-color: var(--dh-ivory) !important;
  border: 1px solid var(--dh-gold) !important;
  background: var(--dh-olive) !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

@media (max-width: 1279px) {
  html body.dh-page-contact-us .dh-contact-form-section {
    grid-template-columns: minmax(0, 1fr) !important;
    width: min(100%, 920px) !important;
  }
}

/* Pet-care articles: remove the duplicate legacy masthead and restore a
 * readable editorial measure instead of a 70%-wide heavy text slab. */
html body.single-post .elementor-7152 [data-id="ea6cd42"],
html body.single-post .elementor-7152 [data-id="c1514e7"],
html body.single-post .elementor-7152 [data-id="6703149"] {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
}

html body.single-post .elementor-7152 [data-id="6703149"] > .elementor-widget-container,
html body.single-post .elementor-7152 [data-id="6703149"] .elementor-widget-container {
  width: min(100%, 68ch) !important;
  max-width: 68ch !important;
  margin-inline: auto !important;
}

html body.single-post .elementor-7152 [data-id="6703149"] :is(p, li) {
  font-size: clamp(1rem, 1.05vw, 1.12rem) !important;
  font-weight: 400 !important;
  line-height: 1.7 !important;
}

html body.single-post .elementor-7152 [data-id="6703149"] :is(h2, h3) {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin: clamp(36px, 5vw, 68px) 0 22px !important;
  padding: 12px clamp(15px, 2vw, 24px) 11px !important;
  border: 1px solid var(--dh-gold) !important;
  color: var(--dh-ivory) !important;
  background: var(--dh-gold-deep) !important;
  font-size: clamp(1.4rem, 2.2vw, 2.15rem) !important;
  line-height: 1.12 !important;
  letter-spacing: 0.035em !important;
  text-wrap: balance !important;
}

/* Story chapter headings share the same restrained ribbon system rather than
 * a one-off selector that styles only the first heading. */
html body.dh-page-our-story #content .elementor-widget-heading .elementor-heading-title {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 12px clamp(16px, 2vw, 28px) 11px !important;
  border: 1px solid var(--dh-gold) !important;
  color: var(--dh-ivory) !important;
  background: var(--dh-gold-deep) !important;
  font-size: clamp(1.35rem, 2.1vw, 2.1rem) !important;
  line-height: 1.15 !important;
  letter-spacing: 0.045em !important;
  white-space: normal !important;
  text-wrap: balance !important;
}

/* Unified phone/tablet context-film and macro layouts. The app shell ends at
 * the same 1024px boundary everywhere, eliminating the old 981–1024 hybrid. */
@media (max-width: 1024px) {
  html body.dh-context-page .dh-context-film {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  html body.dh-context-page .dh-context-film__copy {
    position: relative !important;
    inset: auto !important;
    z-index: 2 !important;
    width: 100% !important;
    min-height: 0 !important;
    padding: clamp(38px, 7vw, 72px) clamp(18px, 5vw, 44px) !important;
    background: var(--dh-charcoal) !important;
  }

  html body.dh-context-page .dh-context-film__copy :is(h1, h2, #dh-context-title) {
    width: 100% !important;
    max-width: 15ch !important;
    margin-right: 0 !important;
    font-size: clamp(2rem, 6.4vw, 3.25rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.025em !important;
    white-space: normal !important;
    overflow: visible !important;
    text-wrap: balance !important;
  }

  html body.dh-context-page .dh-context-film__copy > p:not(.dh-kicker) {
    max-width: 42rem !important;
    font-weight: 500 !important;
    line-height: 1.55 !important;
  }

  html body.dh-context-page .dh-context-film__media {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: clamp(280px, 58vw, 520px) !important;
    aspect-ratio: 16 / 10 !important;
    overflow: hidden !important;
  }

  html body.dh-context-page .dh-context-film__media video {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  html body.home #dh-luxury .dh-origin {
    grid-template-columns: minmax(0, 1fr) !important;
    min-height: 0 !important;
  }

  html body.home #dh-luxury .dh-origin__copy {
    padding: clamp(42px, 8vw, 72px) clamp(18px, 5vw, 44px) !important;
  }

  html body.home #dh-luxury .dh-origin__copy h2 {
    max-width: 12em !important;
    font-size: clamp(2.15rem, 7.2vw, 3.35rem) !important;
  }

  html body.home #dh-luxury .dh-origin__pack {
    height: clamp(360px, 78vw, 620px) !important;
    min-height: 0 !important;
  }

  html body.home #dh-luxury .dh-macro__grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body.home #dh-luxury .dh-macro__grid > figure {
    min-height: 0 !important;
    aspect-ratio: 3 / 2 !important;
  }
}

@media (max-width: 520px) {
  html body.home #dh-luxury .dh-origin__copy h2,
  html body.dh-context-page .dh-context-film__copy :is(h1, h2, #dh-context-title) {
    font-size: clamp(1.9rem, 8.7vw, 2.65rem) !important;
    line-height: 1.04 !important;
  }

  html body.single-product .elementor-7277 [data-id="390aac2"] .elementor-heading-title,
  html body.single-product .elementor-7277 [data-id="390aac2"] h1 {
    width: 100% !important;
    font-size: clamp(1.7rem, 8vw, 2.3rem) !important;
  }

  html body.dh-page-contact-us .dh-contact-form-section {
    padding: 20px 14px !important;
  }

  html body.dh-page-contact-us .dh-contact-form-section__intro h2,
  html body.dh-page-our-story #content .elementor-widget-heading .elementor-heading-title,
  html body.single-post .elementor-7152 [data-id="6703149"] :is(h2, h3) {
    width: 100% !important;
    font-size: clamp(1.2rem, 5.6vw, 1.55rem) !important;
  }
}

/* 0.6.28 — final containment safeguards verified against the reported
 * 1436 x 740 desktop capture and the live Elementor product/article markup. */
html body.home #dh-luxury .dh-origin__copy {
  contain: layout !important;
}

html body.home #dh-luxury .dh-origin__copy h2 {
  box-sizing: border-box !important;
  width: min(100%, 10.8em) !important;
  max-width: 100% !important;
  font-size: clamp(2.4rem, 3.25vw, 3.25rem) !important;
  line-height: 1 !important;
}

html body.single-product div.woocommerce-product-gallery div.woocommerce-product-gallery__image {
  position: relative !important;
}

html body.single-product #content.elementor-7277 div.woocommerce-product-gallery {
  width: min(100%, 520px) !important;
  max-width: 520px !important;
  margin-inline: auto !important;
}

html body.single-product div.woocommerce-product-gallery div.woocommerce-product-gallery__image > a > img:not(.zoomImg),
html body.single-product div.woocommerce-product-gallery div.woocommerce-product-gallery__image > img.wp-post-image {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  box-sizing: border-box !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: auto !important;
  padding: clamp(14px, 2.4vw, 28px) !important;
  object-fit: contain !important;
  object-position: center !important;
  transform: none !important;
}

html body.single-product .elementor-7277 [data-id="71c6ec1"] :is(p, li),
html body.single-product .woocommerce-product-details__short-description :is(p, li) {
  font-weight: 500 !important;
  line-height: 1.55 !important;
}

html body.single-post #content.elementor-7152 > [data-id="ea6cd42"] {
  --width: 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: clamp(44px, 6vw, 88px) clamp(20px, 6vw, 96px) !important;
  box-sizing: border-box !important;
}

html body.single-post #content.elementor-7152 [data-id="c1514e7"] {
  --width: 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body.single-post #content.elementor-7152 [data-id="6703149"] :is(p, li) {
  color: var(--dh-charcoal) !important;
  font-family: "PT Sans", var(--dh-sans) !important;
  font-size: clamp(1rem, calc(.94rem + .35vw), 1.125rem) !important;
  font-weight: 400 !important;
  line-height: 1.7 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

html body.single-post #content.elementor-7152 [data-id="6703149"] strong {
  font-weight: 700 !important;
}

html body.single-post #content.elementor-7152 [data-id="6703149"] :is(h2.wp-block-heading, h3.wp-block-heading) {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin: clamp(44px, 6vw, 72px) 0 clamp(18px, 2.5vw, 28px) !important;
  padding: 11px clamp(15px, 2vw, 24px) !important;
  box-sizing: border-box !important;
  border: 1px solid var(--dh-gold) !important;
  border-radius: 0 !important;
  color: var(--dh-ivory) !important;
  background: var(--dh-gold-deep) !important;
  font-size: clamp(1.45rem, 2.4vw, 2.2rem) !important;
  font-weight: 600 !important;
  line-height: 1.12 !important;
  letter-spacing: .015em !important;
  text-transform: none !important;
  white-space: normal !important;
  word-break: normal !important;
  text-wrap: balance !important;
}

@media (min-width: 1025px) {
  html body.single-product #content.elementor-7277 .elementor-element.elementor-element-fff7d93 {
    grid-template-columns: clamp(390px, 42vw, 520px) minmax(0, 1fr) !important;
  }
}

@media (max-width: 1024px) {
  html body.home #dh-luxury .dh-origin__copy h2 {
    width: min(100%, 12em) !important;
    font-size: clamp(2.15rem, 7.2vw, 3.35rem) !important;
  }
}

@media (max-width: 520px) {
  html body.home #dh-luxury .dh-origin__copy h2 {
    width: 100% !important;
    font-size: clamp(1.9rem, 8.7vw, 2.65rem) !important;
  }

  html body.single-post #content.elementor-7152 > [data-id="ea6cd42"] {
    padding: 36px 18px 56px !important;
  }
}

/* Homepage belief statement: a bounded editorial heading, not a billboard.
   The previous 5.2vw size consumed 439px of height inside a 560px text column
   at 1436px. This keeps the portrait and copy in visual balance and stacks the
   complete section at tablet/app widths instead of crushing either column. */
html body.home #dh-luxury .dh-beliefs__content {
  padding-right: clamp(40px, 5vw, 72px) !important;
  padding-left: clamp(40px, 5vw, 72px) !important;
}

html body.home #dh-luxury .dh-beliefs__content h2 {
  width: 100% !important;
  max-width: 12.8ch !important;
  font-size: clamp(2.5rem, 3.6vw, 3.75rem) !important;
  line-height: 1.02 !important;
  text-wrap: balance !important;
}

/* Contact uses concise, task-led language and gives the form and heading
   enough real measure at desktop widths. The heading ribbon always owns its
   full grid track and is allowed to grow vertically—never crop horizontally. */
@media (min-width: 1280px) {
  html body.dh-page-contact-us .dh-contact-form-section {
    grid-template-columns: minmax(320px, 0.86fr) minmax(0, 1.14fr) !important;
  }
}

html body.dh-page-contact-us .dh-contact-form-section__intro h2 {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 12px clamp(14px, 1.5vw, 20px) !important;
  overflow: visible !important;
  font-size: clamp(1.6rem, 2.1vw, 2.1rem) !important;
  line-height: 1.1 !important;
  letter-spacing: 0.015em !important;
  text-wrap: balance !important;
}

html body.dh-page-contact-us .dh-context-film__copy #dh-context-title {
  max-width: 11ch !important;
  font-size: clamp(2.5rem, 3.4vw, 3.6rem) !important;
  line-height: 1.02 !important;
  text-wrap: balance !important;
}

@media (max-width: 900px) {
  html body.home #dh-luxury .dh-beliefs {
    grid-template-columns: minmax(0, 1fr) !important;
    min-height: 0 !important;
  }

  html body.home #dh-luxury .dh-beliefs__portrait {
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(199, 183, 120, 0.36) !important;
  }

  html body.home #dh-luxury .dh-beliefs__content {
    padding: clamp(48px, 8vw, 72px) clamp(22px, 6vw, 46px) !important;
  }

  html body.home #dh-luxury .dh-beliefs__content h2 {
    max-width: 13ch !important;
    font-size: clamp(2.25rem, 7vw, 3.4rem) !important;
  }

  html body.dh-page-contact-us .dh-context-film__copy #dh-context-title {
    max-width: 12ch !important;
    font-size: clamp(2.15rem, 6.2vw, 3rem) !important;
  }
}

@media (max-width: 430px) {
  html body.home #dh-luxury .dh-beliefs__content h2 {
    max-width: 100% !important;
    font-size: clamp(1.8rem, 9.5vw, 2.5rem) !important;
  }


  html body.dh-page-contact-us .dh-context-film__copy #dh-context-title {
    max-width: 100% !important;
    font-size: clamp(1.8rem, 8.4vw, 2.25rem) !important;
  }
}

/* One restrained title scale for every non-home context hero. Long editorial
   phrases no longer expand into near full-screen billboards on desktop. */
@media (min-width: 1025px) {
  html body.dh-context-page .dh-context-film__copy :is(h1, h2, #dh-context-title) {
    width: 100% !important;
    max-width: 15ch !important;
    font-size: clamp(2.15rem, 2.4vw, 3rem) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.018em !important;
    text-wrap: balance !important;
  }

  html body.dh-context-page .dh-context-film__copy #dh-context-title.dh-context-title--long {
    max-width: 18ch !important;
    font-size: clamp(1.9rem, 2.15vw, 2.65rem) !important;
    line-height: 1.08 !important;
  }
}

@media (min-width: 431px) and (max-width: 1024px) {
  html body.dh-context-page .dh-context-film__copy :is(h1, h2, #dh-context-title),
  html body.dh-context-page .dh-context-film__copy #dh-context-title.dh-context-title--long {
    max-width: 16ch !important;
    font-size: clamp(2rem, 5.2vw, 2.7rem) !important;
    line-height: 1.05 !important;
  }
}

/* Global dropdown typography contract. It covers native select menus,
   WooCommerce variations, checkout/account fields, stockist filters, contact
   and Select2-enhanced controls with one consistent brand sans face. */
html body:not(.wp-admin) select,
html body:not(.wp-admin) select option,
html body:not(.wp-admin) select optgroup,
html body:not(.wp-admin) .select2-container,
html body:not(.wp-admin) .select2-container .select2-selection,
html body:not(.wp-admin) .select2-container .select2-selection__rendered,
html body:not(.wp-admin) .select2-container .select2-results__option,
html body:not(.wp-admin) .woocommerce form .form-row select,
html body:not(.wp-admin) form.variations_form table.variations select,
html body:not(.wp-admin) .dh-contact-form select,
html body:not(.wp-admin) .wpsl-search select {
  font-family: "Dr Hahnz Myriad", "Myriad Pro", Arial, sans-serif !important;
  font-size: 1rem !important;
  font-style: normal !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

html body:not(.wp-admin) select,
html body:not(.wp-admin) select option,
html body:not(.wp-admin) select optgroup,
html body:not(.wp-admin) .select2-container .select2-selection__rendered,
html body:not(.wp-admin) .select2-container .select2-results__option {
  color: var(--dh-charcoal) !important;
  -webkit-text-fill-color: var(--dh-charcoal) !important;
  background-color: var(--dh-ivory) !important;
}

/* Final shared-component contract: bounded editorial typography, reachable
   continuation cards, and single-column card internals at every catalogue
   density. These selectors intentionally sit last in the cascade. */
html body.home #dh-luxury .dh-dining .dh-menu-item {
  grid-template-columns: minmax(0, 1fr) !important;
}

html body.home #dh-luxury :is(
  .dh-macro .dh-section-head h2,
  .dh-dining__head h2,
  .dh-film-journal .dh-section-head h2,
  .dh-continue > .dh-section-head h2,
  .dh-usual__intro h2
) {
  width: 100% !important;
  max-width: 16ch !important;
  line-height: 1.04 !important;
  letter-spacing: -0.018em !important;
  text-wrap: balance !important;
}

html body.home #dh-luxury .dh-film-controls button {
  color: var(--dh-ivory) !important;
}

html body.home #dh-luxury .dh-film-controls button svg {
  stroke: currentColor !important;
}

html body.home #dh-luxury .dh-film-controls button:is(:hover, :focus-visible) {
  color: var(--dh-olive-deep) !important;
}

@media (min-width: 1025px) {
  html body.home #dh-luxury :is(
    .dh-macro .dh-section-head h2,
    .dh-dining__head h2,
    .dh-film-journal .dh-section-head h2,
    .dh-continue > .dh-section-head h2,
    .dh-usual__intro h2
  ) {
    font-size: clamp(2.8rem, 3.2vw, 3.5rem) !important;
  }

  html body.home #dh-luxury .dh-origin__copy h2 {
    width: min(100%, 11.5em) !important;
    max-width: 100% !important;
    overflow: visible !important;
    font-size: clamp(3.1rem, 3vw, 3.25rem) !important;
  }

  html body.home #dh-luxury .dh-hero__copy h1 {
    max-width: 13ch !important;
    font-size: clamp(3.25rem, 3.5vw, 4.2rem) !important;
    line-height: 1.02 !important;
    text-wrap: balance !important;
  }

  html body.home #dh-luxury .dh-beliefs__content h2 {
    font-size: clamp(2.8rem, 3.2vw, 3.75rem) !important;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  html body.home #dh-luxury :is(
    .dh-macro .dh-section-head h2,
    .dh-dining__head h2,
    .dh-film-journal .dh-section-head h2,
    .dh-continue > .dh-section-head h2,
    .dh-usual__intro h2
  ) {
    font-size: clamp(2.15rem, 4.8vw, 3rem) !important;
  }

  html body.home #dh-luxury .dh-origin__copy h2 {
    width: min(100%, 12em) !important;
    max-width: 100% !important;
    overflow: visible !important;
    font-size: clamp(2.55rem, 4.85vw, 3.1rem) !important;
  }

  html body.home #dh-luxury .dh-hero__copy h1 {
    max-width: 13ch !important;
    font-size: clamp(2.8rem, 5vw, 3.5rem) !important;
    line-height: 1.02 !important;
  }

  html body.home #dh-luxury .dh-continue__grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }

  html body.home #dh-luxury .dh-hero__copy h1 {
    max-width: 13ch !important;
    font-size: clamp(2.35rem, 5.5vw, 2.8rem) !important;
    line-height: 1.02 !important;
    text-wrap: balance !important;
  }
}

@media (min-width: 431px) and (max-width: 767px) {
  html body.home #dh-luxury .dh-origin__copy h2 {
    width: min(100%, 12em) !important;
    max-width: 100% !important;
    overflow: visible !important;
    font-size: clamp(2.1rem, 5.2vw, 2.55rem) !important;
  }
}

@media (max-width: 1024px) {
  html body.home #dh-luxury .dh-beliefs {
    grid-template-columns: minmax(0, 1fr) !important;
    min-height: 0 !important;
  }

  html body.home #dh-luxury .dh-beliefs__portrait {
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(199, 183, 120, 0.36) !important;
  }

  html body.home #dh-luxury .dh-beliefs__content {
    padding: clamp(44px, 7vw, 68px) clamp(22px, 6vw, 46px) !important;
  }

  html body.home #dh-luxury .dh-beliefs__content h2 {
    max-width: 13ch !important;
    font-size: clamp(2.25rem, 5.2vw, 3.4rem) !important;
  }
}

@media (max-width: 767px) {
  html body.home #dh-luxury :is(
    .dh-macro .dh-section-head h2,
    .dh-dining__head h2,
    .dh-film-journal .dh-section-head h2,
    .dh-continue > .dh-section-head h2,
    .dh-usual__intro h2
  ) {
    max-width: 100% !important;
    font-size: clamp(1.9rem, 8.1vw, 2.4rem) !important;
  }

  html body.home #dh-luxury .dh-continue__grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }
}

@media (max-width: 430px) {
  html body.home #dh-luxury .dh-origin__copy h2 {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    font-size: clamp(1.75rem, 8.1vw, 2.35rem) !important;
    letter-spacing: -0.025em !important;
  }
}

/* Final app-shell geometry: the injected bars live outside the plugin reset,
   so they must own border-box sizing. No navigation control may sit outside
   the visible phone or tablet viewport. */
html.dh-mobile-app-ready body .dh-app-topbar,
html.dh-mobile-app-ready body .dh-app-bottom {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100vw !important;
}

/* The homepage film occupies the usable app viewport between the fixed bars,
   rather than adding another full viewport below the top bar. */
@media (max-width: 1024px) {
  html.dh-mobile-app-ready body.home #dh-luxury .dh-hero,
  html.dh-mobile-app-ready body.home #dh-luxury .dh-hero__copy {
    min-height: calc(100svh - var(--dh-app-top) - var(--dh-app-bottom) - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
  }

  html body.home #dh-luxury .dh-macro > .dh-section-head > #dh-macro-title {
    width: 100% !important;
    max-width: 16ch !important;
    font-size: clamp(2.15rem, 4.8vw, 3rem) !important;
    line-height: 1.04 !important;
  }
}

@media (max-width: 767px) {
  html body.home #dh-luxury .dh-macro > .dh-section-head > #dh-macro-title {
    max-width: 100% !important;
    font-size: clamp(1.9rem, 8.1vw, 2.4rem) !important;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  html body.home #dh-luxury .dh-dining__head {
    display: block !important;
  }

  html body.home #dh-luxury .dh-dining__head > :is(div, p) {
    width: 100% !important;
    max-width: 48rem !important;
  }
}

@media (min-width: 1025px) {
  html body.home #dh-luxury .dh-macro > .dh-section-head > #dh-macro-title {
    width: 100% !important;
    max-width: 16ch !important;
    font-size: clamp(2.8rem, 3.2vw, 3.5rem) !important;
    line-height: 1.04 !important;
  }
}

/* Use the supplied brand sans at its real bundled weight in every native and
   enhanced dropdown, including the contact topic and product-size menus. */
html body:not(.wp-admin) select,
html body:not(.wp-admin) select option,
html body:not(.wp-admin) select optgroup,
html body:not(.wp-admin) .select2-container,
html body:not(.wp-admin) .select2-container :is(.select2-selection, .select2-selection__rendered, .select2-results__option),
html body:not(.wp-admin) .woocommerce form .form-row select,
html body:not(.wp-admin) form.variations_form table.variations select,
html body:not(.wp-admin) .wpsl-search select,
html body.dh-page-contact-us .dh-contact-form select {
  font-family: "Dr Hahnz Myriad", "Myriad Pro", Arial, sans-serif !important;
  font-size: 1rem !important;
  font-style: normal !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* A genuine autoplay-policy failure gets one compact, keyboard-accessible
   corner control. Normal playback has no overlay and touch never invokes the
   browser's large native play/pause disc. */
html body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card) > .dh-film-play {
  position: absolute !important;
  z-index: 6 !important;
  top: 14px !important;
  right: 14px !important;
  display: grid !important;
  place-items: center !important;
  width: 44px !important;
  height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--dh-ivory) !important;
  border: 1px solid var(--dh-gold) !important;
  border-radius: 0 !important;
  background: rgba(58, 62, 59, 0.88) !important;
  box-shadow: 0 8px 22px rgba(29, 30, 25, 0.22) !important;
  pointer-events: auto !important;
}

html body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card) > .dh-film-play svg {
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 1.8 !important;
}

/* The active dining family must be the only family in the layout. This rule
   follows every card-grid override so [hidden] cannot be undone by a later
   display:grid!important declaration. */
html body.home #dh-luxury .dh-dining .dh-menu-item[hidden] {
  display: none !important;
}

/* Botanical ornaments need enough visual weight to read as olive branches,
   not hairline screen cracks, while staying behind the content. */
html body.dh-system-page .dh-page-olive,
html body.dh-context-page .dh-page-olive {
  opacity: 0.11 !important;
  background-position: -135px 12vh, calc(100vw - 430px) 56vh, 47vw calc(100vh - 190px) !important;
  background-size: 330px auto, 560px auto, 270px auto !important;
}

@media (max-width: 767px) {
  html body.dh-system-page .dh-page-olive,
  html body.dh-context-page .dh-page-olive {
    opacity: 0.095 !important;
    background-position: -105px 15vh, calc(100vw - 280px) 62vh, 36vw calc(100vh - 142px) !important;
    background-size: 230px auto, 370px auto, 195px auto !important;
  }
}

/* Balance the house seal against the editorial typography wherever it is
   used: a strong punctuation mark beside display copy, a quieter identity
   mark in the footer, and a proportional product-detail accent. Kept at the
   true cascade end so earlier component and breakpoint rules cannot shrink it. */
html body #dh-luxury .dh-macro > .dh-section-head > .dh-section-seal {
  width: clamp(116px, 8vw, 156px) !important;
  max-width: 156px !important;
  align-self: center !important;
}

html body :is(.dh-footer__identity, .dh-global-footer__identity) > .dh-brand-seal {
  width: clamp(96px, 7vw, 128px) !important;
  max-width: 30% !important;
  flex: 0 0 auto !important;
}

@media (min-width: 768px) and (max-width: 1024px) {
  html body #dh-luxury .dh-macro > .dh-section-head > .dh-section-seal {
    width: clamp(108px, 13vw, 136px) !important;
    max-width: 136px !important;
  }
}

@media (max-width: 767px) {
  html body #dh-luxury .dh-macro > .dh-section-head > .dh-section-seal {
    width: clamp(80px, 22vw, 96px) !important;
    max-width: 30% !important;
    margin: 0 0 18px !important;
    align-self: start !important;
  }

  html body :is(.dh-footer__identity, .dh-global-footer__identity) > .dh-brand-seal {
    width: clamp(78px, 23vw, 94px) !important;
  }
}

@media (min-width: 1025px) {
  html body.single-product .elementor-7277 .elementor-element-71c6ec1 {
    padding-right: clamp(116px, 9vw, 150px) !important;
  }

  html body.single-product .elementor-7277 .elementor-element-71c6ec1::before {
    width: clamp(94px, 7.5vw, 122px) !important;
  }
}

/* Branded dropdown surface. The operating system owns an expanded native
   select menu and ignores site fonts/colours on macOS and iOS, so short
   customer-facing menus are progressively enhanced with WooCommerce's
   accessible SelectWoo control. The real select remains the form value. */
html body:not(.wp-admin) .select2-container.dh-selectwoo {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  color: var(--dh-charcoal) !important;
  font-family: "Dr Hahnz Myriad", "Myriad Pro", Arial, sans-serif !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

html body:not(.wp-admin) .select2-container.dh-selectwoo .select2-selection--single {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  height: 54px !important;
  min-height: 54px !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  color: var(--dh-charcoal) !important;
  border: 1px solid rgba(63, 81, 55, 0.62) !important;
  border-radius: 0 !important;
  background: #fffaf0 !important;
  box-shadow: none !important;
}

html body:not(.wp-admin) .select2-container.dh-selectwoo .select2-selection--single .select2-selection__rendered {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 15px 52px 14px 16px !important;
  overflow: hidden !important;
  color: var(--dh-charcoal) !important;
  -webkit-text-fill-color: var(--dh-charcoal) !important;
  font-family: "Dr Hahnz Myriad", "Myriad Pro", Arial, sans-serif !important;
  font-size: 1rem !important;
  font-style: normal !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  text-overflow: ellipsis !important;
  text-transform: none !important;
  white-space: nowrap !important;
}

html body:not(.wp-admin) .select2-container.dh-selectwoo .select2-selection--single .select2-selection__placeholder {
  color: var(--dh-olive-deep) !important;
  -webkit-text-fill-color: var(--dh-olive-deep) !important;
  opacity: 1 !important;
}

html body:not(.wp-admin) .select2-container.dh-selectwoo .select2-selection--single .select2-selection__arrow {
  position: absolute !important;
  inset: 0 0 0 auto !important;
  display: grid !important;
  place-items: center !important;
  width: 46px !important;
  height: 100% !important;
  border-left: 1px solid rgba(179, 155, 85, 0.58) !important;
  background: rgba(232, 223, 205, 0.62) !important;
}

html body:not(.wp-admin) .select2-container.dh-selectwoo .select2-selection--single .select2-selection__arrow b {
  position: static !important;
  width: 9px !important;
  height: 9px !important;
  margin: -5px 0 0 !important;
  border: 0 solid var(--dh-olive-deep) !important;
  border-width: 0 2px 2px 0 !important;
  transform: rotate(45deg) !important;
}

html body:not(.wp-admin) .select2-container.dh-selectwoo.select2-container--open .select2-selection__arrow b {
  margin: 5px 0 0 !important;
  transform: rotate(225deg) !important;
}

html body:not(.wp-admin) .select2-container.dh-selectwoo:is(.select2-container--focus, .select2-container--open) .select2-selection--single,
html body:not(.wp-admin) .select2-container.dh-selectwoo .select2-selection--single:focus-visible {
  border-color: var(--dh-gold) !important;
  outline: 3px solid rgba(179, 155, 85, 0.36) !important;
  outline-offset: 2px !important;
  box-shadow: inset 0 0 0 1px var(--dh-gold) !important;
}

html body:not(.wp-admin) .select2-container.dh-selectwoo.dh-selectwoo--disabled .select2-selection--single,
html body:not(.wp-admin) .select2-container.dh-selectwoo .select2-selection--single[aria-disabled="true"] {
  cursor: not-allowed !important;
  opacity: 0.56 !important;
  background: var(--dh-ivory-deep) !important;
}

html body:not(.wp-admin) .select2-dropdown.dh-select-dropdown,
html body:not(.wp-admin) .select2-container--open .select2-dropdown {
  box-sizing: border-box !important;
  overflow: hidden !important;
  color: var(--dh-charcoal) !important;
  border: 1px solid var(--dh-gold) !important;
  border-radius: 0 !important;
  background: var(--dh-ivory) !important;
  box-shadow: 0 18px 40px rgba(29, 30, 25, 0.24) !important;
  font-family: "Dr Hahnz Myriad", "Myriad Pro", Arial, sans-serif !important;
  font-size: 1rem !important;
  font-style: normal !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  z-index: 2147483000 !important;
}

html body:not(.wp-admin) > .select2-container.select2-container--open {
  z-index: 2147483000 !important;
}

html body:not(.wp-admin) .select2-container--open .select2-results > .select2-results__options {
  max-height: min(320px, 48vh) !important;
  overscroll-behavior: contain !important;
}

html body:not(.wp-admin) .select2-container--default .select2-results__option {
  position: relative !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 13px 48px 12px 16px !important;
  box-sizing: border-box !important;
  color: var(--dh-charcoal) !important;
  -webkit-text-fill-color: var(--dh-charcoal) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(63, 81, 55, 0.16) !important;
  border-radius: 0 !important;
  background: var(--dh-ivory) !important;
  font-family: "Dr Hahnz Myriad", "Myriad Pro", Arial, sans-serif !important;
  font-size: 1rem !important;
  font-style: normal !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  white-space: normal !important;
}

html body:not(.wp-admin) .select2-container--default .select2-results__option:last-child {
  border-bottom: 0 !important;
}

html body:not(.wp-admin) .select2-container--default .select2-results__option[aria-selected="true"],
html body:not(.wp-admin) .select2-container--default .select2-results__option[data-selected="true"] {
  color: var(--dh-ivory) !important;
  -webkit-text-fill-color: var(--dh-ivory) !important;
  background: var(--dh-olive) !important;
  box-shadow: inset 4px 0 0 var(--dh-gold-light) !important;
}

html body:not(.wp-admin) .select2-container--default .select2-results__option[aria-selected="true"]::after,
html body:not(.wp-admin) .select2-container--default .select2-results__option[data-selected="true"]::after {
  content: "✓" !important;
  position: absolute !important;
  top: 50% !important;
  right: 17px !important;
  color: var(--dh-gold-light) !important;
  font-size: 1.05rem !important;
  line-height: 1 !important;
  transform: translateY(-50%) !important;
}

html body:not(.wp-admin) .select2-container--default .select2-results__option--highlighted[aria-selected],
html body:not(.wp-admin) .select2-container--default .select2-results__option--highlighted[data-selected] {
  color: var(--dh-ivory) !important;
  -webkit-text-fill-color: var(--dh-ivory) !important;
  background: var(--dh-olive-deep) !important;
  box-shadow: inset 4px 0 0 var(--dh-gold-light) !important;
}

html body:not(.wp-admin) .select2-container--default .select2-results__option[aria-disabled="true"] {
  color: rgba(58, 62, 59, 0.5) !important;
  -webkit-text-fill-color: rgba(58, 62, 59, 0.5) !important;
  cursor: not-allowed !important;
  background: var(--dh-ivory-deep) !important;
  box-shadow: none !important;
}

/* WPSL creates its own desktop dropdown. Skin that existing component rather
   than stacking SelectWoo on top of it; the visible mobile native fallback is
   progressively enhanced by dropdowns.js. */
html body:not(.wp-admin) #wpsl-search-wrap .dh-wpsl-dropdown {
  color: var(--dh-charcoal) !important;
  font-family: "Dr Hahnz Myriad", "Myriad Pro", Arial, sans-serif !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

html body:not(.wp-admin) #wpsl-search-wrap .dh-wpsl-dropdown > .wpsl-selected-item {
  min-height: 48px !important;
  padding: 12px 46px 11px 14px !important;
  box-sizing: border-box !important;
  color: var(--dh-charcoal) !important;
  border: 1px solid rgba(63, 81, 55, 0.62) !important;
  border-radius: 0 !important;
  background-color: #fffaf0 !important;
  font: 700 1rem/1.35 "Dr Hahnz Myriad", "Myriad Pro", Arial, sans-serif !important;
}

html body:not(.wp-admin) #wpsl-search-wrap .dh-wpsl-dropdown > .wpsl-selected-item:focus-visible {
  border-color: var(--dh-gold) !important;
  outline: 3px solid rgba(179, 155, 85, 0.36) !important;
  outline-offset: 2px !important;
}

html body:not(.wp-admin) #wpsl-search-wrap .dh-wpsl-dropdown > div {
  overflow: hidden !important;
  color: var(--dh-charcoal) !important;
  border: 1px solid var(--dh-gold) !important;
  border-radius: 0 !important;
  background: var(--dh-ivory) !important;
  box-shadow: 0 18px 40px rgba(29, 30, 25, 0.22) !important;
}

html body:not(.wp-admin) #wpsl-search-wrap .dh-wpsl-dropdown > div li {
  min-height: 44px !important;
  margin: 0 !important;
  padding: 12px 14px !important;
  box-sizing: border-box !important;
  color: var(--dh-charcoal) !important;
  border-bottom: 1px solid rgba(63, 81, 55, 0.16) !important;
  background: var(--dh-ivory) !important;
  font: 700 1rem/1.25 "Dr Hahnz Myriad", "Myriad Pro", Arial, sans-serif !important;
}

html body:not(.wp-admin) #wpsl-search-wrap .dh-wpsl-dropdown > div li:is(:hover, :focus, .wpsl-selected-dropdown) {
  color: var(--dh-ivory) !important;
  background: var(--dh-olive-deep) !important;
  box-shadow: inset 4px 0 0 var(--dh-gold-light) !important;
}

/* Product-title ribbon: preserve whole words at every responsive measure. */
html body.single-product .elementor-7277 [data-id="390aac2"] .elementor-heading-title,
html body.single-product .elementor-7277 [data-id="390aac2"] h1 {
  min-width: 0 !important;
  max-width: 100% !important;
  font-size: clamp(1.5rem, 2.4vw, 2.5rem) !important;
  line-height: 1.04 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
  text-wrap: balance !important;
}

@media (max-width: 1024px) {
  html body.single-product .elementor-7277 [data-id="390aac2"] .elementor-heading-title,
  html body.single-product .elementor-7277 [data-id="390aac2"] h1 {
    font-size: clamp(1.8rem, 5vw, 2.8rem) !important;
    overflow-wrap: normal !important;
  }
}

@media (max-width: 430px) {
  html body.single-product #content.elementor-7277 [data-id="390aac2"] .elementor-heading-title,
  html body.single-product #content.elementor-7277 [data-id="390aac2"] h1 {
    font-size: clamp(1.2rem, 6.25vw, 1.7rem) !important;
    line-height: 1.04 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
}

@media (min-width: 1025px) and (max-width: 1365px) {
  html body.single-product .elementor-7277 .elementor-element-71c6ec1 {
    padding-right: 0 !important;
  }

  html body.single-product .elementor-7277 .elementor-element-71c6ec1::before {
    display: none !important;
  }
}

@media (max-width: 430px) {
  html body:not(.wp-admin) .select2-dropdown.dh-select-dropdown,
  html body:not(.wp-admin) .select2-container--open .select2-dropdown {
    max-width: calc(100vw - 24px) !important;
  }
}

/* Phone/tablet playback keeps a static poster over startup; once the MP4 has
   both advanced and buffered future frames, the poster leaves the compositor. */
html body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card) > .dh-film-mobile {
  display: none !important;
}

@media (max-width: 1024px), (hover: none) and (pointer: coarse) {
  html body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card) > .dh-film-mobile {
    position: absolute !important;
    z-index: 1 !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
    opacity: 1 !important;
    pointer-events: none !important;
    transition: opacity 160ms ease !important;
  }

  html body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card) > .dh-film-mobile > img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    object-fit: cover !important;
    object-position: var(--dh-film-position, center) !important;
    filter: none !important;
  }

  html body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card) > :is(video[data-dh-video], video[data-dh-context-video]) {
    position: absolute !important;
    z-index: 0 !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    object-fit: cover !important;
    object-position: var(--dh-film-position, center) !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    pointer-events: none !important;
    transition: none !important;
  }

  html body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card).dh-film-hybrid-playing > .dh-film-mobile {
    opacity: 0 !important;
  }

  html body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card).dh-film-hybrid-playing > .dh-film-mobile.dh-film-mobile-suspended {
    display: none !important;
  }

  html body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card) > .dh-film-play {
    display: none !important;
  }

  html body:not(.wp-admin) .dh-context-film__veil,
  html body:not(.wp-admin) .dh-film-card::after {
    z-index: 2 !important;
  }

  html body:not(.wp-admin) .dh-film-card__copy {
    z-index: 3 !important;
  }
}

/* 0.6.40 iPhone hero postflight. Keep a real poster visible until Safari has
   actually begun playback; this prevents its native centre play disc from
   covering copy when Low Power Mode blocks muted autoplay. */
html.dh-feedback-ready body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card) {
  background-image: var(--dh-film-poster) !important;
  background-position: var(--dh-film-position, center) !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
}

html.dh-feedback-ready body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card) > :is(video[data-dh-video], video[data-dh-context-video]) {
  opacity: 0 !important;
  transition: opacity 420ms ease !important;
}

html.dh-feedback-ready body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card).dh-film-is-playing > :is(video[data-dh-video], video[data-dh-context-video]) {
  opacity: 1 !important;
}

/* Retain the script-created fallback as a desktop Safari recovery path. Phone
   and tablet layouts use the direct responsive picture layer above instead. */
html.dh-feedback-ready body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card) > .dh-film-fallback {
  position: absolute !important;
  z-index: 1 !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  object-fit: cover !important;
  object-position: var(--dh-film-position, center) !important;
  opacity: 0 !important;
  filter: brightness(1.12) contrast(1.13) saturate(1.28) !important;
  pointer-events: none !important;
  transition: opacity 240ms ease, transform 1400ms var(--dh-ease) !important;
}

html.dh-feedback-ready body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card).dh-film-fallback-ready > .dh-film-fallback {
  opacity: 1 !important;
}

html.dh-feedback-ready body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card).dh-film-use-fallback > :is(video[data-dh-video], video[data-dh-context-video]) {
  opacity: 0 !important;
}

/* These overrides intentionally follow the generic poster gate above. The MP4
   stays compositor-visible beneath the opaque static poster so iOS can begin
   muted autoplay; the covering poster fades only after measured playback. */
@media (max-width: 1024px), (hover: none) and (pointer: coarse) {
  html.dh-feedback-ready body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card) > :is(video[data-dh-video], video[data-dh-context-video]) {
    z-index: 0 !important;
    opacity: 1 !important;
    filter: none !important;
    transition: none !important;
  }

  html.dh-feedback-ready body:not(.wp-admin) :is(.dh-hero__film, .dh-context-film__media, .dh-film-card).dh-film-hybrid-playing > .dh-film-mobile {
    opacity: 0 !important;
  }
}

html body:not(.wp-admin) .dh-film-card:hover > .dh-film-fallback,
html body:not(.wp-admin) .dh-film-card:focus-within > .dh-film-fallback,
html body:not(.wp-admin) .dh-context-film:hover .dh-context-film__media > .dh-film-fallback {
  transform: scale(1.025) !important;
}

html body:not(.wp-admin) .dh-context-film__veil,
html body:not(.wp-admin) .dh-film-card::after {
  z-index: 1;
}

html body.home #dh-luxury .dh-hero__gradient {
  z-index: 2;
  pointer-events: none;
}

html body.home #dh-luxury .dh-hero__copy {
  z-index: 3;
}

html.dh-feedback-ready body:not(.wp-admin) .dh-hero__film > video[data-dh-video] {
  object-position: var(--dh-film-position, center) !important;
}

html body:not(.wp-admin) :is(#dh-luxury, .dh-context-film) video::-webkit-media-controls-overlay-play-button {
  display: none !important;
  -webkit-appearance: none !important;
}

@media (max-width: 430px) {
  /* Portrait films now use their natural centre. The landscape no-script
     fallback protects the woman and dog rather than cropping from the right. */
  html body.home #dh-luxury .dh-hero__film video {
    object-position: 50% center !important;
  }

  html body.home #dh-luxury .dh-hero__film video[data-dh-film-key="hero-senior-couple-dog"] {
    object-position: 40% center !important;
  }

  /* Copy contrast must remain stable on the palest frame, not only the poster. */
  html body.home #dh-luxury .dh-hero__gradient {
    background:
      linear-gradient(90deg, rgba(52, 69, 46, 0.72) 0%, rgba(52, 69, 46, 0.48) 70%, rgba(29, 30, 25, 0.34) 100%),
      linear-gradient(0deg, rgba(29, 30, 25, 0.92) 0%, rgba(29, 30, 25, 0.42) 64%, rgba(29, 30, 25, 0.30) 100%) !important;
  }

  /* The old 110px/92px padding made the second CTA and cue extend beneath the
     fixed app dock on short iPhones. Preserve both 54px touch targets. */
  html.dh-mobile-app-ready body.home #dh-luxury .dh-hero__copy {
    padding: clamp(48px, 9svh, 64px) 20px 56px !important;
  }

  html body.home #dh-luxury .dh-hero__copy h1 {
    margin-bottom: 14px !important;
    font-size: clamp(1.75rem, 8.5vw, 2.2rem) !important;
    line-height: 1 !important;
  }

  html body.home #dh-luxury .dh-hero__copy > p:not(.dh-kicker) {
    line-height: 1.45 !important;
  }

  html body.home #dh-luxury .dh-hero__actions {
    margin-top: 18px !important;
  }

  html body.home #dh-luxury .dh-hero__actions .dh-cta--glass {
    background: rgba(29, 30, 25, 0.42) !important;
  }

  /* This duplicates the first CTA and becomes a stray hairline above the dock. */
  html body.home #dh-luxury .dh-scroll-cue {
    display: none !important;
  }
}

/* Balance the menu side against Search + Basket. This centres the wordmark
   without moving its link over either 44px action target on narrow phones. */
@media (max-width: 767px) {
  html.dh-mobile-app-ready body .dh-app-topbar {
    grid-template-columns: 96px minmax(0, 1fr) 48px 48px !important;
  }

  html.dh-mobile-app-ready body .dh-app-brand {
    padding-inline: 0 !important;
    transform: none !important;
  }

  html.dh-mobile-app-ready body .dh-app-brand img {
    width: min(100%, 132px) !important;
  }
}

/* A phone turned sideways has only 180–260px between the two app bars. Place
   the story and actions side-by-side so neither CTA can fall beneath the dock,
   and keep both bars outside the iPhone notch/home-indicator safe areas. */
@media (orientation: landscape) and (max-height: 500px) and (max-width: 1024px) {
  html.dh-mobile-app-ready body .dh-app-topbar {
    grid-template-columns: 112px minmax(0, 1fr) 56px 56px !important;
    padding-right: max(16px, env(safe-area-inset-left), env(safe-area-inset-right)) !important;
    padding-left: max(16px, env(safe-area-inset-left), env(safe-area-inset-right)) !important;
  }

  html.dh-mobile-app-ready body .dh-app-bottom {
    padding-right: max(16px, env(safe-area-inset-left), env(safe-area-inset-right)) !important;
    padding-left: max(16px, env(safe-area-inset-left), env(safe-area-inset-right)) !important;
  }

  html.dh-mobile-app-ready body .dh-app-brand {
    padding-inline: 0 !important;
    transform: none !important;
  }

  html.dh-mobile-app-ready body.home #dh-luxury .dh-hero,
  html.dh-mobile-app-ready body.home #dh-luxury .dh-hero__copy {
    min-height: calc(100svh - var(--dh-app-top) - var(--dh-app-bottom) - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
  }

  html.dh-mobile-app-ready body.home #dh-luxury .dh-hero__copy {
    display: grid !important;
    grid-template-columns: minmax(0, 0.95fr) minmax(280px, 1.05fr) !important;
    grid-template-rows: auto auto !important;
    align-content: center !important;
    justify-content: initial !important;
    column-gap: 24px !important;
    row-gap: 8px !important;
    width: 100% !important;
    max-width: none !important;
    padding: 12px max(20px, env(safe-area-inset-right)) 12px max(20px, env(safe-area-inset-left)) !important;
  }

  html body.home #dh-luxury .dh-hero__copy h1 {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: center;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: clamp(1.7rem, 3.4vw, 2rem) !important;
    line-height: 0.98 !important;
  }

  html body.home #dh-luxury .dh-hero__copy > p:not(.dh-kicker) {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: 0.9rem !important;
    line-height: 1.35 !important;
  }

  html body.home #dh-luxury .dh-hero__actions {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
    margin-top: 0 !important;
  }

  html body.home #dh-luxury .dh-hero__actions .dh-cta {
    min-width: 0 !important;
    min-height: 54px !important;
    padding: 0 12px !important;
    line-height: 1.3 !important;
  }

  html body.home #dh-luxury .dh-hero__actions .dh-cta span {
    white-space: nowrap !important;
  }

  html body.home #dh-luxury .dh-hero__actions .dh-cta--glass {
    background: rgba(29, 30, 25, 0.46) !important;
  }

  html body.home #dh-luxury .dh-hero__gradient {
    background:
      linear-gradient(90deg, rgba(52, 69, 46, 0.76) 0%, rgba(52, 69, 46, 0.52) 68%, rgba(29, 30, 25, 0.38) 100%),
      linear-gradient(0deg, rgba(29, 30, 25, 0.80) 0%, rgba(29, 30, 25, 0.30) 70%, rgba(29, 30, 25, 0.30) 100%) !important;
  }

  html body.home #dh-luxury .dh-scroll-cue {
    display: none !important;
  }
}

/* WordPress keeps a 32px administrator toolbar at tablet landscape widths.
   Remove it from the usable hero height so signed-in QA sees the same clear
   CTA-to-dock spacing as public visitors. */
@media (orientation: landscape) and (min-width: 768px) and (max-height: 500px) and (max-width: 1024px) {
  html.dh-mobile-app-ready body.admin-bar.home #dh-luxury .dh-hero,
  html.dh-mobile-app-ready body.admin-bar.home #dh-luxury .dh-hero__copy {
    min-height: calc(100svh - var(--dh-app-top) - var(--dh-app-bottom) - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
  }
}

@media (orientation: landscape) and (max-height: 340px) and (max-width: 1024px) {
  html.dh-mobile-app-ready body.home #dh-luxury .dh-hero__copy {
    padding-top: 4px !important;
    padding-bottom: 12px !important;
  }

  html body.home #dh-luxury .dh-hero__copy h1 {
    grid-column: 1 / -1 !important;
    line-height: 0.96 !important;
  }

  html body.home #dh-luxury .dh-hero__copy > p:not(.dh-kicker) {
    display: none !important;
  }

  html body.home #dh-luxury .dh-hero__actions .dh-cta {
    font-size: 13px !important;
  }
}

/* 0.6.41 iPhone playback and product-table postflight. Native Safari controls
   must never leave an empty playback tile, while every two-column nutrition
   and feeding table remains readable without horizontal sliding. */
html body:not(.wp-admin) :is(#dh-luxury, .dh-context-film) video,
html body:not(.wp-admin) :is(#dh-luxury, .dh-context-film) video::-webkit-media-controls,
html body:not(.wp-admin) :is(#dh-luxury, .dh-context-film) video::-webkit-media-controls-enclosure,
html body:not(.wp-admin) :is(#dh-luxury, .dh-context-film) video::-webkit-media-controls-start-playback-button,
html body:not(.wp-admin) :is(#dh-luxury, .dh-context-film) video::-webkit-media-controls-overlay-play-button {
  -webkit-appearance: none !important;
}

@media (max-width: 700px) {
  html body.single-product .dh-product-dossier__table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: visible !important;
  }

  html body.single-product .dh-product-dossier table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: fixed !important;
  }

  html body.single-product .dh-product-dossier :is(th, td) {
    min-width: 0 !important;
    padding: 13px 8px !important;
    vertical-align: top !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  html body.single-product .dh-product-dossier :is(th, td):first-child {
    width: 58% !important;
  }

  html body.single-product .dh-product-dossier :is(th, td):last-child {
    width: 42% !important;
    text-align: right !important;
  }

  html body.single-product .dh-product-dossier td:last-child {
    white-space: nowrap !important;
    font-variant-numeric: tabular-nums !important;
  }
}

@media (max-width: 767px) {
  html:has(body.single-product) {
    scroll-padding-bottom: calc(var(--dh-app-bottom) + env(safe-area-inset-bottom) + 96px) !important;
  }

  html body.single-product {
    padding-bottom: calc(var(--dh-app-bottom) + env(safe-area-inset-bottom) + 96px) !important;
  }
}

/* 0.7.0 consolidated emotional-story system */
.dh-owned-page{background:#f4efe2;color:#343934;overflow:hidden}.dh-owned-page h2,.dh-owned-page h3{font-family:var(--dh-serif,Georgia,serif);font-weight:500}.dh-story-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);min-height:560px}.dh-story-split--reverse .dh-story-split__copy{order:2}.dh-story-split--reverse figure{order:1}.dh-story-split__copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(48px,7vw,108px)}.dh-story-split__copy h2{max-width:760px;margin:.2em 0 .55em;font-size:clamp(42px,5.2vw,82px);line-height:.94}.dh-story-split__copy>p:not(.dh-kicker){max-width:640px;font-size:clamp(17px,1.25vw,21px);line-height:1.65}.dh-story-split figure{margin:0;min-height:520px;background:#dcd5c4}.dh-story-split figure img{width:100%;height:100%;object-fit:cover}.dh-story-pack{display:grid!important;place-items:center;padding:6vw}.dh-story-pack img{max-width:72%!important;max-height:680px!important;object-fit:contain!important}.dh-process-section{padding:clamp(64px,8vw,120px) clamp(28px,6vw,96px)}.dh-process-section header{max-width:900px}.dh-process-section h2,.dh-proof-section h2,.dh-care-intro h2,.dh-care-close h2{font-size:clamp(42px,5.2vw,78px);line-height:.96;margin:.2em 0 .35em}.dh-process-section header>p:last-child,.dh-process-note{max-width:780px;font-size:18px;line-height:1.6}.dh-process-map{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:54px 0 28px;padding:1px;background:rgba(93,83,49,.28);list-style:none}.dh-process-map li{min-height:180px;padding:26px;background:#f4efe2;display:flex;flex-direction:column;justify-content:space-between}.dh-process-map b{font-size:12px;letter-spacing:.16em}.dh-process-map span{font-family:var(--dh-serif,Georgia,serif);font-size:clamp(22px,2vw,34px)}.dh-proof-section{padding:clamp(64px,8vw,120px) clamp(28px,6vw,96px);background:#343934;color:#f4efe2}.dh-proof-section header{max-width:850px}.dh-proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:50px;background:rgba(232,215,156,.28)}.dh-proof-grid article{padding:36px;background:#3d433d}.dh-proof-grid span{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#d3bd72}.dh-proof-grid h3{font-size:32px;margin:18px 0 12px}.dh-proof-grid p{line-height:1.6}.dh-care-intro,.dh-care-close{padding:clamp(64px,8vw,120px) clamp(28px,7vw,110px)}.dh-care-intro{max-width:none}.dh-care-intro>p:last-child,.dh-care-close>p{max-width:760px;font-size:18px;line-height:1.65}.dh-care-chapter{display:grid;grid-template-columns:1.05fr .95fr;min-height:520px;background:#f4efe2}.dh-care-chapter.is-reverse figure{order:2}.dh-care-chapter.is-reverse>div{order:1}.dh-care-chapter figure{margin:0;min-height:500px}.dh-care-chapter figure img{width:100%;height:100%;object-fit:cover}.dh-care-chapter>div{display:flex;flex-direction:column;justify-content:center;padding:clamp(42px,6vw,92px)}.dh-care-chapter>div>span{font-size:12px;font-weight:800;letter-spacing:.18em;color:#8c7430}.dh-care-chapter h2{font-size:clamp(40px,4.5vw,70px);line-height:.98;margin:.28em 0}.dh-care-chapter p{max-width:620px;font-size:18px;line-height:1.65}.dh-care-close>div{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.dh-story-close .dh-cta{align-self:flex-start;margin-top:24px}.dh-context-film__media img,.dh-context-film__media video{filter:saturate(.92) contrast(.98)}
@media(max-width:900px){.dh-story-split,.dh-care-chapter{grid-template-columns:1fr}.dh-story-split--reverse .dh-story-split__copy,.dh-story-split--reverse figure,.dh-care-chapter.is-reverse figure,.dh-care-chapter.is-reverse>div{order:initial}.dh-story-split figure,.dh-care-chapter figure{min-height:62vw;max-height:560px}.dh-process-map{grid-template-columns:repeat(2,1fr)}.dh-proof-grid{grid-template-columns:1fr}.dh-story-pack{min-height:420px!important}.dh-story-pack img{max-width:58%!important}}
@media(max-width:540px){.dh-process-map{grid-template-columns:1fr}.dh-process-map li{min-height:126px}.dh-story-split__copy,.dh-care-chapter>div{padding:44px 24px}.dh-care-intro,.dh-care-close,.dh-process-section,.dh-proof-section{padding:54px 24px}.dh-story-pack img{max-width:72%!important}}

/* 0.7.0 mobile release locks */
@media(max-width:700px){
  html,body{max-width:100%;overflow-x:hidden}
  .dh-context-film,.dh-context-film__copy,.dh-context-film__media{min-width:0;max-width:100vw}
  .dh-context-film__copy{padding-left:24px!important;padding-right:24px!important}
  .dh-context-film__copy h1,.dh-context-film__copy h2{max-width:100%;font-size:clamp(34px,10.5vw,48px)!important;line-height:.95!important;overflow-wrap:normal!important;word-break:normal!important}
  .dh-context-film__copy>p{max-width:100%;font-size:15px!important;line-height:1.55!important}
  .dh-hero__copy{left:20px!important;right:20px!important;width:auto!important;max-width:none!important}
  .dh-hero__copy h1{font-size:clamp(44px,13.5vw,62px)!important;line-height:.9!important;max-width:100%!important}
  .dh-hero__copy>p{font-size:16px!important;line-height:1.5!important;max-width:100%!important}
  .dh-hero__actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important}
  .dh-hero__actions .dh-cta{width:100%!important;min-height:54px!important;justify-content:space-between!important}
  .dh-quick-order{position:fixed!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;max-width:100vw!important;display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;z-index:9998!important}
  .dh-quick-order>a{min-width:0!important;padding:8px 2px!important;font-size:10px!important;overflow:hidden!important}
  .dh-quick-order>a span{font-size:10px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .dh-quick-order svg{width:20px!important;height:20px!important}
  body{padding-bottom:66px!important}
}

/* 0.7.0 owned-page narrow-screen typography correction */
.dh-owned-page h1,.dh-owned-page h2,.dh-owned-page h3{max-width:100%!important;width:auto!important;white-space:normal!important;overflow-wrap:normal!important;word-break:normal!important;hyphens:none!important;text-wrap:balance}
@media(max-width:540px){
  .dh-story-split__copy h2,.dh-care-intro h2,.dh-care-close h2,.dh-care-chapter h2,.dh-process-section h2,.dh-proof-section h2{font-size:clamp(32px,9.4vw,42px)!important;line-height:.98!important;letter-spacing:-.015em!important;max-width:100%!important;white-space:normal!important}
  .dh-story-split__copy>p:not(.dh-kicker),.dh-care-intro>p:last-child,.dh-care-close>p,.dh-care-chapter p,.dh-process-section header>p:last-child,.dh-process-note,.dh-proof-grid p{font-size:16px!important;line-height:1.56!important;max-width:100%!important}
  .dh-care-chapter>div,.dh-story-split__copy{min-width:0!important;width:100%!important}
  .dh-care-intro,.dh-care-close,.dh-process-section,.dh-proof-section{min-width:0!important;width:100%!important;overflow:hidden!important}
  .dh-hero__copy>p{font-size:15px!important;line-height:1.45!important;max-width:92%!important}
}

/* 0.7.0 final owned-page box-model lock */
.dh-owned-page,.dh-owned-page *{box-sizing:border-box}
@media(max-width:540px){
  .dh-story-split__copy,.dh-care-chapter>div,.dh-care-intro,.dh-care-close,.dh-process-section,.dh-proof-section{width:100%!important;max-width:100%!important;box-sizing:border-box!important}
  .dh-story-split__copy h2,.dh-care-intro h2,.dh-care-close h2,.dh-care-chapter h2,.dh-process-section h2,.dh-proof-section h2{font-size:clamp(30px,8.7vw,38px)!important;line-height:1!important;letter-spacing:-.01em!important;overflow:visible!important}
  .dh-story-split__copy>p:not(.dh-kicker),.dh-care-intro>p:last-child,.dh-care-close>p,.dh-care-chapter p{overflow:visible!important;white-space:normal!important}
}
