/*
 * Dr Hahnz — Canonical CSS replacement layer
 *
 * This is intentionally a single final cascade layer. It normalizes the
 * existing luxury-plugin rules without adding another family of per-page
 * patches. Review in Customizer preview before publishing.
 */

:root {
  --dh-charcoal: #3a3e3b;
  --dh-charcoal-soft: #4a4f4b;
  --dh-ivory: #f3eee0;
  --dh-ivory-deep: #e8dfcd;
  --dh-olive: #526447;
  --dh-olive-deep: #3f5137;
  --dh-olive-light: #738064;
  --dh-gold: #b39b55;
  --dh-gold-light: #c7b778;
}


/* Universal legibility contract: words and monetary units may wrap only at
   intentional boundaries; assistive-only labels must not influence layout. */
body.dh-context-page :is(h1, h2, h3, h4, .elementor-heading-title),
body.dh-system-page :is(h1, h2, h3, h4),
.dh-hero h1,
.dh-menu-item h3,
.woocommerce-loop-product__title {
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}

.screen-reader-text,
.woocommerce .screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Remove legacy decorative fragments; use one quiet ivory page surface. */
body.dh-system-page,
body.dh-context-page {
  background: var(--dh-ivory) !important;
}

/* Palette lock: no inherited pure black, pure white, copper or brown panels. */
body.dh-context-page .elementor-location-header,
body.dh-context-page .elementor-location-header :is(.e-con, .elementor-section, .elementor-container),
body.dh-context-page .elementor-location-footer,
body.dh-context-page .elementor-location-footer :is(.e-con, .elementor-section, .elementor-container),
.dh-header,
.dh-footer,
.dh-drawer,
.dh-search,
.dh-macro__grid figure,
.dh-film-card,
.dh-context-film__media {
  background-color: var(--dh-charcoal) !important;
  background-image: none !important;
}

body.dh-context-page .elementor-location-header :is(a, p, span, strong, button, input),
body.dh-context-page .elementor-location-footer :is(a, p, span, strong, button, input) {
  color: var(--dh-ivory) !important;
}

/* The versioned plugin owns the site chrome. Retire Elementor's legacy header,
   footer and repeated contact component instead of recolouring their remnants. */
body:not(.home) > .elementor-location-header,
body:not(.home) .elementor-location-header,
body:not(.home) > .elementor-location-footer,
body:not(.home) .elementor-location-footer,
body.dh-context-page #contact.elementor-element-b69ad6d,
body.dh-context-page .elementor-element-8a2fab9 {
  display: none !important;
}

/* Legacy accent cleanup, including Elementor pseudo-elements that painted the
   copper end caps above the header and old carousel controls. */
body.dh-system-page :is(.dh-luxury, .dh-context-page) :is(button, [role="button"]),
body.dh-context-page :is(button, [role="button"]) {
  border-color: var(--dh-gold) !important;
}

body.dh-system-page :is(.dh-luxury, .dh-context-page) :is(button, [role="button"]):not(.single_add_to_cart_button):not(.checkout-button),
body.dh-context-page :is(button, [role="button"]):not(.single_add_to_cart_button):not(.checkout-button) {
  color: var(--dh-olive-deep) !important;
}

.dh-global-header {
  position: relative;
  z-index: 9000;
  width: 100%;
  color: var(--dh-ivory);
  border-bottom: 1px solid rgba(199, 183, 120, 0.30);
  background: var(--dh-charcoal);
}

.dh-global-announcement {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px var(--dh-gutter);
  color: var(--dh-ivory);
  border-bottom: 1px solid rgba(199, 183, 120, 0.22);
  background: var(--dh-olive-deep);
  font-family: var(--dh-sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-align: center;
  text-transform: uppercase;
}

.dh-global-nav {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(28px, 4vw, 68px);
  min-height: 86px;
  padding: 0 var(--dh-gutter);
}

.dh-global-brand {
  color: var(--dh-ivory) !important;
  font-family: var(--dh-serif);
  font-size: clamp(1.5rem, 2vw, 2rem);
  line-height: 1;
  letter-spacing: 0.08em;
  text-decoration: none !important;
  white-space: nowrap;
}

.dh-global-links,
.dh-global-actions {
  display: flex;
  align-items: center;
  gap: clamp(16px, 2vw, 32px);
}

.dh-global-links {
  justify-content: center;
}

.dh-global-links a,
.dh-global-actions a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--dh-ivory) !important;
  font-family: var(--dh-sans);
  font-size: 0.88rem;
  font-weight: 700;
  text-decoration: none !important;
  white-space: nowrap;
}

.dh-global-links a:hover,
.dh-global-actions a:hover {
  color: var(--dh-gold-light) !important;
}

.dh-global-footer {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.25fr 0.8fr 1fr;
  gap: clamp(36px, 6vw, 96px);
  padding: clamp(52px, 7vw, 96px) var(--dh-gutter);
  color: var(--dh-ivory);
  border-top: 1px solid rgba(199, 183, 120, 0.34);
  background: var(--dh-charcoal);
}

.dh-global-footer__brand strong {
  display: block;
  color: var(--dh-ivory);
  font-family: var(--dh-serif);
  font-size: clamp(1.8rem, 3vw, 3rem);
  letter-spacing: 0.08em;
}

.dh-global-footer :is(p, a, div) {
  color: rgba(243, 238, 224, 0.86) !important;
  font-family: var(--dh-sans);
  line-height: 1.65;
}

.dh-global-footer__links,
.dh-global-footer__contact {
  display: grid;
  align-content: start;
  gap: 10px;
}

.dh-global-footer a {
  min-height: 32px;
  text-decoration: none !important;
}

.dh-global-footer a:hover {
  color: var(--dh-gold-light) !important;
}

.dh-header,
.dh-footer,
.dh-drawer,
.dh-search {
  border-color: rgba(199, 183, 120, 0.38) !important;
}

body.dh-system-page .dh-page-olive,
body.dh-context-page .dh-page-olive,
body.dh-system-page .elementor-shape,
body.dh-context-page .elementor-shape,
body.dh-system-page .elementor-shape-divider,
body.dh-context-page .elementor-shape-divider {
  display: none !important;
  background-image: none !important;
}

/* Restore a dependable native pointer: the scripted olive cursor is the box. */
.dh-olive-cursor {
  display: none !important;
}

.dh-luxury.has-custom-cursor,
.dh-luxury.has-custom-cursor a,
.dh-luxury.has-custom-cursor button {
  cursor: auto !important;
}

.dh-luxury.has-custom-cursor a,
.dh-luxury.has-custom-cursor button,
body.dh-context-page a,
body.dh-context-page button,
body.dh-context-page [role="button"] {
  cursor: pointer !important;
}

/* The old broad white-text rule was also turning the ivory CTA label white. */
.dh-hero .dh-cta--ivory :is(span, svg),
.dh-hero .dh-cta--ivory :is(span, svg) * {
  color: var(--dh-charcoal) !important;
}

.dh-hero .dh-cta--glass :is(span, svg),
.dh-hero .dh-cta--glass :is(span, svg) * {
  color: var(--dh-ivory) !important;
}

/* Context heroes: contain long titles inside their text panel at every width. */
.dh-context-film {
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr) !important;
  width: 100% !important;
  max-width: none !important;
  height: clamp(620px, 68svh, 760px) !important;
  min-height: 0 !important;
  margin: 0 0 clamp(64px, 8vw, 126px) !important;
  border-color: rgba(52, 69, 46, 0.42) !important;
  background: linear-gradient(145deg, var(--dh-olive), var(--dh-charcoal)) !important;
}

.dh-context-film__copy {
  min-width: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: clamp(38px, 4.4vw, 70px) !important;
  overflow: hidden !important;
}

.dh-context-film h1,
.dh-context-film #dh-context-title {
  max-width: 100% !important;
  margin: 0 !important;
  font-size: clamp(2.75rem, 4vw, 4.55rem) !important;
  font-weight: 600 !important;
  line-height: 0.96 !important;
  letter-spacing: -0.03em !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}

.dh-context-film #dh-context-title.dh-context-title--long {
  max-width: 18ch !important;
  font-size: clamp(2rem, 2.65vw, 2.85rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.02em !important;
}

.dh-context-film__copy > p:not(.dh-kicker) {
  max-width: 36ch !important;
  margin-top: clamp(18px, 2vw, 26px) !important;
  color: rgba(244, 240, 230, 0.92) !important;
  font-size: clamp(0.95rem, 1.05vw, 1.08rem) !important;
  line-height: 1.55 !important;
}

.dh-context-film__media,
.dh-context-film__media :is(video, iframe) {
  min-width: 0 !important;
  height: 100% !important;
}

.dh-context-film__media :is(video, iframe) {
  display: block !important;
  width: 100% !important;
  object-fit: cover !important;
  filter: brightness(1.03) contrast(1.04) saturate(1.02) !important;
}

.dh-context-film__veil {
  background: linear-gradient(90deg, rgba(29, 30, 25, 0.28), transparent 48%),
    linear-gradient(0deg, rgba(29, 30, 25, 0.46), transparent 56%) !important;
}

/* Product cards: keep words, currency amounts and actions in their own rows. */
.dh-menu-item,
.dh-menu-item__copy,
.dh-menu-item__title-row,
.dh-menu-item h3,
.dh-menu-item h3 a,
body.dh-context-page .e-loop-item.product,
.woocommerce ul.products li.product {
  min-width: 0 !important;
  max-width: 100% !important;
}

.dh-menu-item {
  grid-template-columns: clamp(96px, 10vw, 150px) minmax(0, 1fr) !important;
  align-items: start !important;
  height: auto !important;
  min-height: 232px !important;
  overflow: visible !important;
}

.dh-menu-item__copy {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  gap: 0 !important;
}

.dh-menu-item__title-row {
  display: block !important;
}

.dh-menu-item h3,
.dh-menu-item h3 a,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  min-height: 0 !important;
  margin: 0 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
  line-height: 1.12 !important;
}

.dh-menu-item__price,
.dh-menu-item__price .price,
.dh-menu-item__price :is(ins, del, bdi, span),
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price :is(ins, del, bdi, span),
body.single-product .summary .price,
body.single-product .summary .price :is(ins, del, bdi, span) {
  color: var(--dh-olive) !important;
  font-family: var(--dh-sans) !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  line-height: 1.35 !important;
  text-align: left !important;
  white-space: nowrap !important;
}

.dh-menu-item__price,
.woocommerce ul.products li.product .price,
body.single-product .summary .price {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 10px 0 0 !important;
  font-size: clamp(0.94rem, 1vw, 1.1rem) !important;
}

.dh-menu-item__price :is(ins, del),
.woocommerce ul.products li.product .price :is(ins, del),
body.single-product .summary .price :is(ins, del) {
  display: inline-block !important;
  margin: 0 0.32em 0 0 !important;
}

.woocommerce ul.products li.product .price del {
  color: rgba(29, 30, 25, 0.55) !important;
}

.dh-menu-item__copy > p {
  min-height: 0 !important;
  margin: 10px 0 16px !important;
  color: rgba(29, 30, 25, 0.82) !important;
  font-size: 0.92rem !important;
  line-height: 1.5 !important;
  -webkit-line-clamp: 3 !important;
}

.dh-menu-item__actions {
  align-self: end !important;
  min-height: 42px !important;
}

/* Eliminate the remaining copper/brown purchase treatment. */
body.single-product .single_add_to_cart_button,
body.single-product button.single_add_to_cart_button,
body.single-product .button.alt,
body.dh-context-page :is(#wpsl-search-btn, .wpsl-search-btn),
body.dh-context-page :is(.woocommerce a.button, .woocommerce button.button, .woocommerce input.button) {
  color: var(--dh-ivory) !important;
  border-color: var(--dh-olive) !important;
  background: var(--dh-olive) !important;
}

body.single-product .single_add_to_cart_button:hover,
body.single-product button.single_add_to_cart_button:hover,
body.single-product .button.alt:hover,
body.dh-context-page :is(.woocommerce a.button, .woocommerce button.button, .woocommerce input.button):hover {
  color: var(--dh-ivory) !important;
  background: var(--dh-olive-deep) !important;
}

/* Form grids, tables and media never escape their panels. */
body.dh-context-page :is(form, .gform_wrapper, .elementor-form, .elementor-form-fields-wrapper, .gform_fields),
body.dh-context-page :is(.woocommerce-product-gallery, .elementor-widget-video, .wp-video) {
  min-width: 0 !important;
  max-width: 100% !important;
}

body.dh-context-page :is(.elementor-form-fields-wrapper, .gform_fields) {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.dh-context-page :is(.elementor-form-field-group, .gfield, .ginput_container) {
  min-width: 0 !important;
}

body.dh-context-page :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  color: var(--dh-charcoal) !important;
  border-color: rgba(52, 69, 46, 0.58) !important;
  background: var(--dh-ivory) !important;
}

body.dh-context-page :is(table, .shop_table) {
  max-width: 100% !important;
  color: var(--dh-charcoal) !important;
  border-color: rgba(52, 69, 46, 0.28) !important;
}

/* Automated retirement of legacy YouTube, copper, waves and contact styling. */
body :is(iframe[src*="youtube.com"], iframe[src*="youtube-nocookie.com"], iframe[src*="youtu.be"]),
body .elementor-background-video-container:has(iframe[src*="youtube"]),
body .elementor-background-video-container:has(iframe[src*="youtu.be"]),
body .elementor-background-video-embed:has(iframe[src*="youtube"]),
body .elementor-background-video-embed:has(iframe[src*="youtu.be"]) {
  display: none !important;
}

/* Retire each player as a component as well, so no empty 16:9 black shell remains. */
body .elementor-widget-video:has(iframe[src*="youtube"]),
body .elementor-widget-video:has(iframe[src*="youtu.be"]) {
  display: none !important;
}

.dh-context-film:has(iframe[src*="youtube"]),
.dh-context-film:has(iframe[src*="youtu.be"]) {
  grid-template-columns: minmax(0, 1fr) !important;
}

.dh-context-film:has(iframe[src*="youtube"]) .dh-context-film__media,
.dh-context-film:has(iframe[src*="youtu.be"]) .dh-context-film__media {
  display: none !important;
}

body.dh-context-page .elementor-element.e-con:has(> .elementor-background-video-container),
body.dh-context-page .elementor-element.e-con:has(> .elementor-background-video-embed) {
  background-image: none !important;
  background-color: var(--dh-olive) !important;
  background: linear-gradient(145deg, var(--dh-olive), var(--dh-charcoal)) !important;
}

body.dh-context-page .elementor-element:has(> .elementor-widget-container > .elementor-widget-video iframe[src*="youtube"]),
body.dh-context-page .elementor-element:has(> .elementor-widget-container > .elementor-widget-video iframe[src*="youtu.be"]) {
  min-height: 0 !important;
  background-image: none !important;
}

/* Shared legacy shipping ribbon: retain the message, remove the copper art. */
body.dh-context-page .elementor-element-22a0623d {
  min-height: 40px !important;
  background: var(--dh-charcoal) !important;
  border-bottom: 1px solid rgba(244, 240, 230, 0.22) !important;
}

body.dh-context-page .elementor-element-22a0623d::before,
body.dh-context-page .elementor-element-22a0623d::after {
  content: none !important;
  display: none !important;
  background: none !important;
}

body.dh-context-page .elementor-element-22a0623d :is(h1, h2, h3, p, span, strong, a) {
  color: var(--dh-ivory) !important;
}

/* The repeated legacy contact treatment becomes one accessible olive panel. */
body.dh-context-page #contact.elementor-element-b69ad6d,
body.dh-context-page .elementor-element-8a2fab9 {
  background-image: none !important;
  background-color: var(--dh-olive) !important;
}

body.dh-context-page #contact.elementor-element-b69ad6d :is(h1, h2, h3, p, span, strong, label),
body.dh-context-page .elementor-element-8a2fab9 :is(h1, h2, h3, p, span, strong, label) {
  color: var(--dh-ivory) !important;
}

/* Prevent legacy Elementor blocks from breaking the page rhythm. */
body.dh-context-page .elementor-location-single :is(.e-con, .elementor-section, .elementor-column, .elementor-widget, .elementor-widget-container),
body.dh-context-page .elementor-location-single :is(.elementor-tabs, .woocommerce-tabs, .elementor-accordion, .woocommerce-product-gallery) {
  min-width: 0 !important;
  max-width: 100% !important;
}

body.dh-context-page .elementor-location-single :is(.elementor-widget-image img, .elementor-widget-video video, .elementor-widget-video iframe, .wp-video video) {
  display: block;
  max-width: 100% !important;
  height: auto;
}

body.dh-context-page .elementor-location-single :is(.elementor-tabs, .woocommerce-tabs) {
  overflow: hidden !important;
  border-color: rgba(52, 69, 46, 0.24) !important;
}

body.dh-context-page .elementor-location-single :is(.elementor-tab-title, .woocommerce-tabs li a) {
  min-height: 46px;
  color: var(--dh-olive) !important;
  line-height: 1.2 !important;
  white-space: normal !important;
}

/* Native video is always a full-bleed film, never a letterboxed object. */
body.dh-context-page :is(.dh-context-film__media, .elementor-widget-video, .elementor-background-video-container, .wp-video) {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate;
  background: var(--dh-charcoal) !important;
}

body.dh-context-page :is(.dh-context-film__media video, .elementor-widget-video video, .elementor-background-video-container video, .wp-video video) {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  min-width: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  transform: scale(1.018);
  filter: brightness(1.09) contrast(1.32) saturate(1.48) !important;
}

/* Keep type legible on the stronger grade without dulling the footage. */
body.dh-context-page :is(.dh-context-film__media, .elementor-widget-video, .elementor-background-video-container)::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(120deg, rgba(58, 62, 59, 0.22), transparent 54%, rgba(63, 81, 55, 0.12));
}

body.dh-context-page :is(.dh-context-film__media, .elementor-widget-video, .elementor-background-video-container) :is(.elementor-custom-embed-image-overlay, .elementor-custom-embed-play) {
  z-index: 2 !important;
}

/* Deliberate tactile-looking feedback, also used where browser haptics are unavailable. */
@keyframes dh-feedback-acknowledge {
  0% { transform: scale(1); }
  42% { transform: scale(0.972); }
  100% { transform: scale(1); }
}

@media (prefers-reduced-motion: no-preference) {
  body.dh-context-page :is(button, input[type="submit"], input[type="button"], .button, .dh-cta, .dh-menu-item__actions a, [role="button"]):active {
    animation: dh-feedback-acknowledge 180ms cubic-bezier(.2, .8, .2, 1) both;
    filter: brightness(1.08) saturate(1.08);
  }
}

@media (max-width: 980px) {
  .dh-context-film {
    display: block !important;
    height: min(720px, calc(100svh - 66px)) !important;
    min-height: 580px !important;
  }

  .dh-context-film__copy {
    position: absolute !important;
    z-index: 3 !important;
    inset: 0 !important;
    display: flex !important;
    justify-content: flex-end !important;
    padding: 100px clamp(20px, 6vw, 48px) 42px !important;
    background: linear-gradient(0deg, rgba(38, 56, 32, 0.96), rgba(29, 30, 25, 0.10) 64%) !important;
  }

  .dh-context-film h1,
  .dh-context-film #dh-context-title {
    max-width: min(13ch, 100%) !important;
    font-size: clamp(2.5rem, 6.4vw, 3.25rem) !important;
    line-height: 0.98 !important;
  }

  .dh-context-film #dh-context-title.dh-context-title--long {
    max-width: min(17ch, 100%) !important;
    font-size: clamp(1.72rem, 7vw, 2.3rem) !important;
    line-height: 1.02 !important;
  }
}

@media (min-width: 981px) {
  .dh-context-film h1,
  .dh-context-film #dh-context-title {
    font-size: clamp(2.85rem, 3.45vw, 3.35rem) !important;
  }

  .dh-hero h1 {
    max-width: 13ch !important;
    font-size: clamp(3.3rem, 4.6vw, 4.35rem) !important;
    line-height: 0.95 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  body.dh-context-page .dh-menu-grid,
  body.dh-context-page .woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: clamp(22px, 2.3vw, 34px) !important;
  }

  body.dh-context-page .dh-menu-item {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 16px !important;
    padding: 18px !important;
  }

  body.dh-context-page .dh-menu-item__image {
    width: 100% !important;
    height: 220px !important;
  }

  body.single-product .summary .product_title,
  body.single-product .product .summary h1.product_title {
    display: none !important;
  }
}

@media (max-width: 700px) {
  .dh-menu-item {
    grid-template-columns: 84px minmax(0, 1fr) !important;
    gap: 14px !important;
    min-height: 0 !important;
    padding: 18px !important;
  }

  .dh-menu-item__image {
    width: 84px !important;
    height: 124px !important;
  }

  .dh-menu-item h3,
  .dh-menu-item h3 a {
    font-size: 1.08rem !important;
  }

  .dh-menu-item__price,
  .woocommerce ul.products li.product .price,
  body.single-product .summary .price {
    font-size: 0.95rem !important;
  }

  body.dh-context-page :is(.elementor-form-fields-wrapper, .gform_fields) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.dh-context-page .elementor-location-single :is(.elementor-tab-title, .woocommerce-tabs li a) {
    min-height: 48px;
    padding: 12px !important;
  }
}

/* Desktop pointer halo: a circular ivory/gold signal on interactive hover.
   The native pointer remains intact and the halo cannot intercept clicks. */
.dh-pointer-halo {
  --dh-pointer-x: -100px;
  --dh-pointer-y: -100px;
  position: fixed;
  z-index: 2147483646;
  left: 0;
  top: 0;
  width: 44px;
  height: 44px;
  border: 1px solid var(--dh-ivory);
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(calc(var(--dh-pointer-x) - 22px), calc(var(--dh-pointer-y) - 22px), 0) scale(0.72);
  background: radial-gradient(circle, rgba(241, 224, 165, 0.17) 0 22%, rgba(212, 175, 55, 0.07) 38%, rgba(212, 175, 55, 0) 70%);
  box-shadow:
    0 0 0 2px rgba(212, 175, 55, 0.42),
    0 0 14px 4px rgba(241, 224, 165, 0.62),
    0 0 30px 9px rgba(212, 175, 55, 0.34);
  transition: opacity 140ms ease, transform 180ms cubic-bezier(.2, .8, .2, 1);
  will-change: transform, opacity;
}

.dh-pointer-halo.is-visible {
  opacity: 1;
  transform: translate3d(calc(var(--dh-pointer-x) - 22px), calc(var(--dh-pointer-y) - 22px), 0) scale(1);
  animation: dh-pointer-halo-flash 1.15s ease-in-out infinite;
}

@keyframes dh-pointer-halo-flash {
  0%, 100% {
    border-color: var(--dh-ivory);
    filter: brightness(1);
  }
  50% {
    border-color: var(--dh-gold-light);
    filter: brightness(1.34);
  }
}

@media (hover: none), (pointer: coarse) {
  .dh-pointer-halo {
    display: none !important;
  }
}

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

/* One cinematic film grade everywhere: deep separation and controlled colour,
   avoiding the over-saturated digital look of the earlier maximum setting. */
body:is(.dh-system-page, .dh-context-page) video,
body:is(.dh-system-page, .dh-context-page) .elementor-background-video-container video,
body:is(.dh-system-page, .dh-context-page) .elementor-widget-video video,
body:is(.dh-system-page, .dh-context-page) .wp-video video {
  filter: brightness(0.96) contrast(1.35) saturate(1.28) sepia(0.06) hue-rotate(-2deg) !important;
}

.dh-hero__gradient {
  background:
    linear-gradient(90deg, rgba(63, 81, 55, 0.64) 0%, rgba(63, 81, 55, 0.16) 50%, rgba(58, 62, 59, 0.08) 100%),
    linear-gradient(0deg, rgba(58, 62, 59, 0.78) 0%, rgba(58, 62, 59, 0.08) 52%, rgba(58, 62, 59, 0.24) 100%) !important;
}

.dh-film-card::after {
  background: linear-gradient(0deg, rgba(58, 62, 59, 0.82) 0%, rgba(63, 81, 55, 0.40) 31%, rgba(58, 62, 59, 0.03) 68%) !important;
}

/* Prices are single semantic units: never orphan the currency or stack a range. */
body.dh-context-page :is(.dh-menu-item__price, .price, .woocommerce-Price-amount) {
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}

body.dh-context-page .dh-menu-item__price {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: baseline;
  gap: 0.32ch;
  width: max-content;
  max-width: 100%;
}

body.dh-context-page .dh-menu-item__price > span:not(.screen-reader-text),
body.dh-context-page .dh-menu-item__price .woocommerce-Price-amount,
body.dh-context-page .dh-menu-item__price .woocommerce-Price-currencySymbol {
  display: inline-flex !important;
  width: auto !important;
  min-width: 0 !important;
}

body.dh-context-page .dh-menu-item__price .woocommerce-Price-currencySymbol {
  margin-right: 0.10em;
}

/* Contrast contract: every olive interactive surface uses ivory type and icons. */
body.dh-context-page :is(
  .dh-quick-add,
  .single_add_to_cart_button,
  .checkout-button,
  .woocommerce button.button.alt,
  .woocommerce a.button.alt,
  .woocommerce input.button.alt,
  .gform_button,
  .elementor-form button[type="submit"]
) {
  color: var(--dh-ivory) !important;
  border-color: var(--dh-olive) !important;
  background: var(--dh-olive) !important;
  text-shadow: 0 1px 0 rgba(58, 62, 59, 0.22);
}

body.dh-context-page :is(
  .dh-quick-add,
  .single_add_to_cart_button,
  .checkout-button,
  .woocommerce button.button.alt,
  .woocommerce a.button.alt,
  .woocommerce input.button.alt,
  .gform_button,
  .elementor-form button[type="submit"]
) :is(svg, path) {
  color: currentColor !important;
  stroke: currentColor !important;
}

body.dh-context-page :is(.elementor-tab-title.elementor-active, .woocommerce-tabs li.active a) {
  color: var(--dh-ivory) !important;
  background: var(--dh-olive) !important;
}

/* Product-image art direction: one integrated 3D stage, never a pasted-on tile. */
:is(.dh-menu-item__image, .woocommerce-product-gallery__image) {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: transparent !important;
}

:is(.dh-menu-item__image, .woocommerce-product-gallery__image)::before {
  content: "";
  position: absolute;
  z-index: 0;
  right: 12%;
  bottom: 7%;
  left: 12%;
  height: 12%;
  border-radius: 50%;
  background: rgba(58, 62, 59, 0.22);
  filter: blur(15px);
  transform: perspective(260px) rotateX(68deg);
}

:is(.dh-menu-item__image, .woocommerce-product-gallery__image) img,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  padding: clamp(8px, 3vw, 28px);
  object-fit: contain !important;
  object-position: center bottom !important;
  background: transparent !important;
  filter: drop-shadow(0 18px 15px rgba(58, 62, 59, 0.24)) contrast(1.04) saturate(1.08) !important;
  transform: translateY(-1%) scale(0.97);
  transition: transform 420ms cubic-bezier(.2, .8, .2, 1), filter 420ms ease;
}

/* Legacy packshots have pale backdrops baked in; multiply integrates them until each
   source is replaced by its exact transparent master. */
:is(.dh-menu-item__image, .woocommerce-product-gallery__image) img:not([src*="transparent"]):not([src*="dr-hahnz-gallery-"]),
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img:not([src*="transparent"]) {
  mix-blend-mode: multiply;
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img {
  min-height: 240px;
  border-radius: 18px;
  background: transparent !important;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  :is(.dh-menu-item, .woocommerce ul.products li.product, .woocommerce-product-gallery__image):hover img {
    filter: drop-shadow(0 24px 22px rgba(58, 62, 59, 0.31)) contrast(1.07) saturate(1.14) !important;
    transform: translateY(-3%) scale(1.015);
  }
}

/* Pet Care is an editorial journal, not a residual Elementor archive. The old
   YouTube hero becomes a self-contained brand composition and every story uses
   the same crop, rhythm and readable card surface. */
body.category-pet-care .elementor-element-3d98c69,
body.category-pet-care .elementor-element-3d98c69.dh-youtube-retired {
  position: relative !important;
  isolation: isolate;
  min-height: clamp(390px, 48vw, 620px) !important;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 24%, rgba(199, 183, 120, 0.34), transparent 0 22%),
    radial-gradient(circle at 76% 58%, rgba(115, 128, 100, 0.44), transparent 0 31%),
    linear-gradient(135deg, var(--dh-olive-deep) 0 42%, var(--dh-charcoal) 100%) !important;
}

/* The plugin now supplies Pet Care's local-film hero. The old Elementor
   YouTube hero is removed from the rendered page entirely. */
body.category-pet-care .elementor-location-archive > .elementor-element-3d98c69,
body.category-pet-care .elementor-element-3d98c69 {
  display: none !important;
}

body.category-pet-care .elementor-element-3d98c69::before {
  content: "" !important;
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  opacity: 0.66;
  background:
    linear-gradient(112deg, transparent 0 53%, rgba(243, 238, 224, 0.10) 53% 53.4%, transparent 53.4%),
    repeating-radial-gradient(ellipse at 86% 110%, transparent 0 26px, rgba(199, 183, 120, 0.10) 27px 29px, transparent 30px 56px);
}

body.category-pet-care .elementor-element-3d98c69 > .e-con-inner,
body.category-pet-care .elementor-element-3d98c69 > .e-con,
body.category-pet-care .elementor-element-3d98c69 .elementor-widget {
  position: relative;
  z-index: 2;
}

body.category-pet-care .elementor-element-3d98c69 :is(h1, h2, h3, p, span) {
  color: var(--dh-ivory) !important;
  text-shadow: 0 2px 28px rgba(58, 62, 59, 0.34);
}

body.category-pet-care .elementor-element-3d98c69 .elementor-heading-title {
  font-size: clamp(2.9rem, 6vw, 5.4rem) !important;
  line-height: 0.94 !important;
  letter-spacing: 0.02em !important;
}

body.category-pet-care .elementor-posts-container.elementor-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(22px, 2.7vw, 38px) !important;
  align-items: stretch !important;
  max-width: 1240px;
  margin-inline: auto;
}

body.category-pet-care article.elementor-post,
body.category-pet-care article.elementor-post.elementor-grid-item {
  display: flex !important;
  flex-direction: column;
  min-width: 0 !important;
  height: 100%;
  overflow: hidden;
  border: 1px solid rgba(82, 100, 71, 0.20) !important;
  border-radius: 22px !important;
  background: rgba(255, 250, 240, 0.78) !important;
  box-shadow: 0 18px 48px rgba(58, 62, 59, 0.10) !important;
}

body.category-pet-care article.elementor-post[hidden],
body.category-pet-care article.dh-duplicate-retired {
  display: none !important;
}

body.category-pet-care article.elementor-post .elementor-post__thumbnail__link,
body.category-pet-care article.elementor-post .elementor-post__thumbnail {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 16 / 10;
  overflow: hidden !important;
}

body.category-pet-care article.elementor-post .elementor-post__thumbnail img,
body.category-pet-care article.elementor-post img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
  filter: contrast(1.12) saturate(1.22) !important;
  transform: none !important;
}

body.category-pet-care article.elementor-post .elementor-post__text {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: clamp(22px, 2.5vw, 32px) !important;
}

body.category-pet-care article.elementor-post .elementor-post__title,
body.category-pet-care article.elementor-post .elementor-post__title a {
  color: var(--dh-charcoal) !important;
  font-size: clamp(1.25rem, 1.55vw, 1.55rem) !important;
  line-height: 1.08 !important;
  letter-spacing: 0.015em !important;
  text-decoration: none !important;
}

body.category-pet-care article.elementor-post .elementor-post__excerpt,
body.category-pet-care article.elementor-post .elementor-post__excerpt p {
  color: var(--dh-charcoal-soft) !important;
  font-size: 0.98rem !important;
  line-height: 1.62 !important;
}

.dh-contact-page {
  max-width: 1240px;
  margin: 0 auto;
  padding: clamp(64px, 8vw, 120px) var(--dh-gutter);
}

.dh-contact-intro {
  max-width: 760px;
  margin-bottom: clamp(36px, 5vw, 68px);
}

.dh-contact-intro h2 {
  margin: 10px 0 20px;
  color: var(--dh-charcoal);
  font-family: var(--dh-serif);
  font-size: clamp(2.5rem, 5.2vw, 5rem);
  line-height: 0.98;
  letter-spacing: -0.025em;
}

.dh-contact-intro > p:last-child {
  max-width: 56ch;
  color: var(--dh-charcoal-soft);
  font-family: var(--dh-sans);
  font-size: clamp(1rem, 1.4vw, 1.18rem);
  line-height: 1.65;
}

.dh-contact-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2.5vw, 32px);
}

.dh-contact-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 220px;
  padding: clamp(24px, 3vw, 38px);
  color: var(--dh-charcoal) !important;
  border: 1px solid rgba(82, 100, 71, 0.22);
  border-radius: 22px;
  background: var(--dh-ivory-deep);
  box-shadow: 0 18px 42px rgba(58, 62, 59, 0.09);
  text-decoration: none !important;
}

.dh-contact-card span,
.dh-contact-card small {
  color: var(--dh-olive);
  font-family: var(--dh-sans);
  font-weight: 700;
}

.dh-contact-card span {
  margin-bottom: auto;
  font-size: 0.76rem;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.dh-contact-card strong {
  color: var(--dh-charcoal);
  font-family: var(--dh-serif);
  font-size: clamp(1.3rem, 2vw, 1.8rem);
  line-height: 1.12;
  overflow-wrap: anywhere;
}

.dh-contact-card small {
  margin-top: 12px;
  font-size: 0.84rem;
}

@media (min-width: 768px) and (max-width: 1024px) {
  body.category-pet-care .elementor-posts-container.elementor-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px !important;
  }

  .dh-hero h1 {
    max-width: 12ch !important;
    font-size: clamp(3.35rem, 7vw, 4.1rem) !important;
    line-height: 0.94 !important;
  }

  .dh-global-nav {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 18px;
    min-height: 74px;
  }

  .dh-global-links {
    gap: 14px;
  }

  .dh-global-links a,
  .dh-global-actions a {
    font-size: 0.74rem;
  }

  .dh-global-links a:nth-last-child(-n+2) {
    display: none;
  }

  .dh-global-footer {
    grid-template-columns: 1fr 1fr;
  }

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

/* App shell is injected globally but must never appear above the phone breakpoint. */
.dh-app-topbar,
.dh-app-bottom,
.dh-app-sheet {
  display: none;
}

/* Unified phone experience: one app shell across plugin, Elementor and shop pages. */
@media (max-width: 767px) {
  :root {
    --dh-app-top: 64px;
    --dh-app-bottom: 72px;
    --dh-app-radius: 18px;
  }

  #wpadminbar {
    display: none !important;
  }

  html {
    margin-top: 0 !important;
    scroll-padding-top: calc(var(--dh-app-top) + 12px);
    scroll-padding-bottom: calc(var(--dh-app-bottom) + 16px);
  }

  body {
    padding-bottom: calc(var(--dh-app-bottom) + env(safe-area-inset-bottom)) !important;
    background: var(--dh-ivory) !important;
    overscroll-behavior-y: none;
    -webkit-tap-highlight-color: transparent;
  }

  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;
  }

  .dh-app-topbar {
    position: sticky;
    z-index: 99990;
    top: 0;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 48px 48px;
    align-items: center;
    width: 100%;
    height: calc(var(--dh-app-top) + env(safe-area-inset-top));
    padding: env(safe-area-inset-top) 8px 0;
    color: var(--dh-ivory);
    border-bottom: 1px solid rgba(199, 183, 120, 0.28);
    background: rgba(58, 62, 59, 0.96);
    box-shadow: 0 12px 30px rgba(58, 62, 59, 0.18);
    backdrop-filter: blur(18px) saturate(1.25);
  }

  .dh-app-topbar a,
  .dh-app-topbar button,
  .dh-app-bottom a {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }

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

  .dh-app-icon-button:active {
    background: rgba(243, 238, 224, 0.10) !important;
  }

  .dh-app-brand {
    min-width: 0;
    padding: 8px 10px;
    color: var(--dh-ivory) !important;
    font-family: var(--dh-serif) !important;
    font-size: 1.28rem;
    line-height: 1;
    letter-spacing: 0.08em;
    text-align: center;
    white-space: nowrap;
  }

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

  .dh-app-count {
    position: absolute;
    top: 3px;
    right: 2px;
    display: grid;
    place-items: center;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    color: var(--dh-charcoal);
    border-radius: 999px;
    background: var(--dh-gold-light);
    font-family: var(--dh-sans);
    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1;
  }

  .dh-app-bottom {
    position: fixed;
    z-index: 99992;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    height: calc(var(--dh-app-bottom) + env(safe-area-inset-bottom));
    padding: 6px 8px env(safe-area-inset-bottom);
    border-top: 1px solid rgba(199, 183, 120, 0.30);
    background: rgba(58, 62, 59, 0.97);
    box-shadow: 0 -12px 30px rgba(58, 62, 59, 0.18);
    backdrop-filter: blur(20px) saturate(1.2);
  }

  .dh-app-tab {
    display: grid;
    grid-template-rows: 28px 16px;
    place-items: center;
    min-width: 0;
    min-height: 56px;
    padding: 4px 2px 2px;
    color: rgba(243, 238, 224, 0.68) !important;
    border-radius: 14px;
    font-family: var(--dh-sans);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1;
    text-decoration: none !important;
  }

  .dh-app-tab .dh-app-icon {
    width: 21px;
    height: 21px;
  }

  .dh-app-tab:is(.is-active, :active) {
    color: var(--dh-ivory) !important;
    background: rgba(115, 128, 100, 0.34);
  }

  .dh-app-sheet {
    position: fixed;
    z-index: 99994;
    inset: 0;
    display: grid;
    align-items: end;
    visibility: hidden;
    opacity: 0;
    background: rgba(58, 62, 59, 0.54);
    backdrop-filter: blur(8px);
    transition: opacity 220ms ease, visibility 220ms ease;
  }

  .dh-app-sheet__panel {
    max-height: min(78svh, 680px);
    padding: 18px 16px calc(22px + env(safe-area-inset-bottom));
    overflow: auto;
    color: var(--dh-charcoal);
    border-radius: 24px 24px 0 0;
    background: var(--dh-ivory);
    box-shadow: 0 -28px 70px rgba(58, 62, 59, 0.28);
    transform: translateY(28px);
    transition: transform 240ms cubic-bezier(.2, .8, .2, 1);
  }

  .dh-app-sheet.is-open {
    visibility: visible;
    opacity: 1;
  }

  .dh-app-sheet.is-open .dh-app-sheet__panel {
    transform: translateY(0);
  }

  body.dh-app-sheet-open {
    overflow: hidden !important;
  }

  .dh-app-sheet__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    padding: 0 4px 12px;
    border-bottom: 1px solid rgba(82, 100, 71, 0.22);
  }

  .dh-app-sheet__title {
    font-family: var(--dh-serif);
    font-size: 1.35rem;
    letter-spacing: 0.08em;
  }

  .dh-app-sheet__links {
    display: grid;
    gap: 8px;
    padding: 14px 0 0;
  }

  .dh-app-sheet__links a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 54px;
    padding: 0 16px;
    color: var(--dh-charcoal) !important;
    border: 1px solid rgba(82, 100, 71, 0.20);
    border-radius: 15px;
    background: var(--dh-ivory-deep);
    font-family: var(--dh-sans);
    font-weight: 700;
    text-decoration: none !important;
  }

  .dh-app-sheet__links a::after {
    content: "→";
    color: var(--dh-gold);
    font-size: 1.1rem;
  }

  .dh-hero {
    min-height: calc(100svh - var(--dh-app-top) - var(--dh-app-bottom)) !important;
  }

  .dh-hero__content {
    justify-content: flex-end !important;
    min-height: calc(100svh - var(--dh-app-top) - var(--dh-app-bottom)) !important;
    padding: 52px 20px 32px !important;
  }

  .dh-hero h1 {
    max-width: min(12.5ch, 100%) !important;
    font-size: clamp(2.1rem, 10.5vw, 2.75rem) !important;
    line-height: 0.95 !important;
    letter-spacing: -0.025em !important;
    text-wrap: balance;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
  }

  .dh-hero__gradient {
    background:
      linear-gradient(90deg, rgba(63, 81, 55, 0.44) 0%, rgba(63, 81, 55, 0.05) 78%),
      linear-gradient(0deg, rgba(58, 62, 59, 0.88) 0%, rgba(58, 62, 59, 0.08) 58%, rgba(58, 62, 59, 0.16) 100%) !important;
  }

  .dh-hero__actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100%;
    gap: 10px !important;
  }

  .dh-hero__actions .dh-cta {
    width: 100% !important;
    min-height: 54px !important;
  }

  .dh-context-film {
    height: calc(100svh - var(--dh-app-top) - var(--dh-app-bottom)) !important;
    min-height: 560px !important;
    margin: 0 0 18px !important;
    border: 0 !important;
    border-radius: 0 0 22px 22px;
    overflow: hidden !important;
  }

  .dh-context-film__copy {
    padding: 42px 22px 34px !important;
  }

  .dh-context-film h1,
  .dh-context-film #dh-context-title {
    max-width: min(12.5ch, 100%) !important;
    font-size: clamp(2.15rem, 10.25vw, 2.75rem) !important;
    line-height: 0.95 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
  }

  :is(.dh-section, .dh-dining, .dh-origin, .dh-macro, .dh-films, .dh-menu-collection) {
    padding-right: 16px !important;
    padding-left: 16px !important;
  }

  :is(.dh-film-card, .dh-menu-item, .woocommerce ul.products li.product, .woocommerce div.product, .elementor-widget-form, .gform_wrapper) {
    border-radius: var(--dh-app-radius) !important;
    overflow: hidden;
  }

  .dh-film-card {
    min-height: 420px !important;
  }

  .dh-menu-item {
    grid-template-columns: 112px minmax(0, 1fr) !important;
    gap: 14px !important;
    padding: 14px !important;
    border: 1px solid rgba(82, 100, 71, 0.18) !important;
    background: var(--dh-ivory-deep) !important;
  }

  .dh-menu-item__image {
    width: 112px !important;
    height: 150px !important;
    border-radius: 13px;
  }

  .dh-global-footer {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
    padding: 44px 22px calc(44px + var(--dh-app-bottom) + env(safe-area-inset-bottom));
  }

  .dh-global-footer a {
    min-height: 44px;
  }

  .dh-contact-page {
    padding: 52px 18px;
  }

  .dh-contact-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .dh-contact-card {
    min-height: 190px;
    border-radius: var(--dh-app-radius);
  }

  body.dh-context-page :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
  body.dh-context-page :is(button, .button) {
    min-height: 50px;
    border-radius: 13px !important;
  }

  body.category-pet-care .elementor-element-3d98c69 {
    min-height: 330px !important;
  }

  body.category-pet-care .elementor-element-3d98c69 .elementor-heading-title {
    font-size: clamp(2.45rem, 12vw, 3.15rem) !important;
  }

  body.category-pet-care .elementor-posts-container.elementor-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 16px !important;
    padding-inline: 16px;
  }

  body.category-pet-care article.elementor-post,
  body.category-pet-care article.elementor-post.elementor-grid-item {
    border-radius: var(--dh-app-radius) !important;
  }

  body.category-pet-care article.elementor-post .elementor-post__text {
    padding: 22px !important;
  }

  body.dh-context-page :is(
    button,
    .button,
    .dh-cta,
    .dh-menu-item__actions a,
    .woocommerce a.button,
    .woocommerce button.button,
    .woocommerce input.button,
    input[type="submit"],
    select
  ) {
    min-height: 44px !important;
  }

  body.dh-context-page :is(.elementor-tabs-wrapper, .woocommerce-tabs ul.tabs) {
    display: flex !important;
    max-width: 100%;
    overflow-x: auto !important;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }

  body.dh-context-page :is(.elementor-tabs-wrapper, .woocommerce-tabs ul.tabs)::-webkit-scrollbar {
    display: none;
  }

  body.dh-context-page :is(.elementor-tabs-wrapper, .woocommerce-tabs ul.tabs) > * {
    flex: 0 0 auto;
  }

  body.dh-context-page :is(.woocommerce, .woocommerce-page) :is(.shop_table, .woocommerce-cart-form, .cart-collaterals) {
    max-width: 100% !important;
    overflow-x: auto;
    border-radius: var(--dh-app-radius);
  }

  @media (prefers-reduced-motion: reduce) {
    .dh-app-sheet,
    .dh-app-sheet__panel {
      transition: none !important;
    }
  }
}

/* 0.5.8 — official wordmark, commerce-first flow and final responsive QA. */
.dh-global-brand {
  display: block !important;
  width: clamp(156px, 15vw, 226px);
  padding: 0 !important;
}

.dh-global-brand img,
.dh-global-footer__brand > img,
.dh-footer__brand > img,
.dh-wordmark > img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  filter: none !important;
}

.dh-global-footer__brand > img {
  width: min(100%, 310px) !important;
  margin-bottom: 22px;
}

/* Every product price is one horizontal semantic unit. */
.dh-menu-item__price {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: baseline !important;
  gap: 0.28ch !important;
  width: max-content !important;
  max-width: 100% !important;
  font-size: clamp(0.84rem, 0.94vw, 1rem) !important;
  font-variant-numeric: tabular-nums;
  white-space: nowrap !important;
}

.dh-menu-item__price :is(.price, ins, del, bdi, span),
.dh-menu-item__price .woocommerce-Price-amount,
.dh-menu-item__price .woocommerce-Price-currencySymbol {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
  white-space: nowrap !important;
}

/* The all-products archive is one scannable collection, not two narrow columns. */
.dh-category-collection__split {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: clamp(48px, 7vw, 88px) !important;
}

.dh-category-collection__list,
.dh-category-collection__split .dh-category-collection__list {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(18px, 2vw, 28px) !important;
}

.dh-category-collection .dh-menu-item {
  grid-template-columns: minmax(0, 1fr) !important;
  align-content: start !important;
  gap: 14px !important;
  min-height: 0 !important;
  padding: 18px !important;
}

.dh-category-collection .dh-menu-item__image {
  width: 100% !important;
  height: clamp(190px, 18vw, 240px) !important;
}

/* The source images were previously centred from left:50%, leaving blank cards. */
body.category-pet-care article.elementor-post .elementor-post__thumbnail {
  position: relative !important;
}

body.category-pet-care article.elementor-post .elementor-post__thumbnail img,
body.category-pet-care article.elementor-post img {
  position: absolute !important;
  inset: 0 !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  transform: none !important;
}

/* One restrained cinematic master across every retained self-hosted film. */
body:is(.dh-system-page, .dh-context-page) video,
body:is(.dh-system-page, .dh-context-page) .elementor-background-video-container video,
body:is(.dh-system-page, .dh-context-page) .elementor-widget-video video,
body:is(.dh-system-page, .dh-context-page) .wp-video video {
  filter: brightness(0.96) contrast(1.35) saturate(1.28) sepia(0.06) hue-rotate(-2deg) !important;
}

/* Once the canonical lead film exists, retire its old container as well as the
   embedded player; this removes the empty olive/black staging gaps. */
body.dh-context-page:has(.dh-context-film) .elementor-location-single :is(.e-con, .elementor-section):has(> .elementor-widget-video),
body.dh-context-page:has(.dh-context-film) .site-main :is(.e-con, .elementor-section):has(> .elementor-widget-video),
body.dh-context-page:has(.dh-context-film) :is(.elementor-column, .elementor-widget-wrap):has(> .elementor-widget-video) {
  display: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Product, basket, checkout and account pages start with the task—not a film. */
body.single-product :is(.site-main, .elementor-location-single),
body.woocommerce-cart :is(.site-main, .elementor-location-single),
body.woocommerce-checkout :is(.site-main, .elementor-location-single),
body.woocommerce-account :is(.site-main, .elementor-location-single) {
  padding-top: clamp(30px, 4vw, 58px) !important;
}

body.single-product .summary .product_title,
body.single-product .product .summary h1.product_title,
body.single-product h1.entry-title {
  display: block !important;
  max-width: 15ch !important;
  margin: 0 0 18px !important;
  color: var(--dh-olive-deep) !important;
  font-size: clamp(2.35rem, 4vw, 4.25rem) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.025em !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}

body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) :is(h1.entry-title, .entry-content > h1, .elementor-heading-title) {
  max-width: 16ch !important;
  color: var(--dh-olive-deep) !important;
  font-size: clamp(2.4rem, 5vw, 4.75rem) !important;
  line-height: 0.98 !important;
}

/* WC tables previously inherited near-transparent legacy text. */
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) :is(
  .woocommerce,
  .woocommerce-cart-form,
  .cart-collaterals,
  .cart_totals,
  .shop_table,
  .woocommerce-checkout,
  .woocommerce-MyAccount-content,
  .woocommerce-MyAccount-navigation
) {
  color: var(--dh-charcoal) !important;
  opacity: 1 !important;
}

body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) :is(
  .woocommerce-cart-form,
  .cart_totals,
  .shop_table,
  .woocommerce-checkout,
  .woocommerce-MyAccount-content,
  .woocommerce-MyAccount-navigation
) :is(p, a, span, strong, b, th, td, label) {
  color: var(--dh-charcoal) !important;
  opacity: 1 !important;
}

body.woocommerce-cart :is(.checkout-button, button.button, a.button),
body.woocommerce-checkout :is(button.button, a.button, #place_order),
body.woocommerce-account :is(button.button, a.button) {
  color: var(--dh-ivory) !important;
  border-color: var(--dh-olive) !important;
  background: var(--dh-olive) !important;
  opacity: 1 !important;
}

/* Contact addresses remain whole and readable at every supported width. */
.dh-contact-card strong {
  font-family: var(--dh-sans) !important;
  font-size: clamp(1.08rem, 1.55vw, 1.45rem) !important;
  line-height: 1.3 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.dh-contact-card[href^="mailto:"] strong {
  font-size: clamp(0.94rem, 1.28vw, 1.22rem) !important;
  white-space: nowrap !important;
}

/* Remove the last wave/copper staging surfaces from retained Elementor content. */
body.dh-context-page .elementor-location-single :is(.e-con, .elementor-section, .elementor-container, .elementor-column),
body.dh-context-page .site-main :is(.e-con, .elementor-section, .elementor-container, .elementor-column) {
  background-image: none !important;
}

body:is(.dh-page-our-story, .dh-page-delivery-policy-2, .dh-page-refunds-and-returns, .dh-page-terms-and-conditions) .elementor-widget-text-editor {
  width: min(100%, 72ch) !important;
  margin-inline: auto !important;
}

body:is(.dh-page-our-story, .dh-page-delivery-policy-2, .dh-page-refunds-and-returns, .dh-page-terms-and-conditions) .elementor-location-single :is(h1, h2, h3, h4) {
  color: var(--dh-olive-deep) !important;
}

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

  .dh-global-brand {
    width: 148px;
  }

  .dh-contact-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

@media (max-width: 767px) {
  .dh-app-brand {
    display: grid !important;
    place-items: center !important;
    padding: 8px !important;
  }

  .dh-app-brand img {
    display: block !important;
    width: min(100%, 142px) !important;
    height: auto !important;
    filter: none !important;
  }

  .dh-app-sheet__title {
    display: block !important;
    width: 154px;
  }

  .dh-app-sheet__title img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    filter: none !important;
  }

  .dh-context-film h1,
  .dh-context-film #dh-context-title {
    max-width: 100% !important;
    font-size: clamp(1.95rem, 9.2vw, 2.45rem) !important;
    line-height: 0.98 !important;
    letter-spacing: -0.035em !important;
  }

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

  .dh-category-collection .dh-menu-item {
    grid-template-columns: 104px minmax(0, 1fr) !important;
    gap: 14px !important;
    padding: 14px !important;
  }

  .dh-category-collection .dh-menu-item__image {
    width: 104px !important;
    height: 144px !important;
  }

  body.single-product .summary .product_title,
  body.single-product .product .summary h1.product_title,
  body.single-product h1.entry-title {
    max-width: 100% !important;
    font-size: clamp(2rem, 9vw, 2.35rem) !important;
    line-height: 1 !important;
  }

  .dh-contact-card[href^="mailto:"] strong {
    font-size: clamp(0.82rem, 4vw, 1rem) !important;
    letter-spacing: -0.02em !important;
  }

  body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) :is(.shop_table, .woocommerce-cart-form, .cart-collaterals) {
    overflow-x: visible !important;
  }
}

/* Elementor retained an empty 250px shell after its retired YouTube background
   was removed. Retire that shell too; the canonical local film owns the page. */
body.dh-context-page :is(.e-con, .elementor-section, .elementor-column):has(> .elementor-background-video-container.dh-youtube-retired),
body.dh-context-page :is(.e-con, .elementor-section, .elementor-column):has(> .elementor-background-video-embed.dh-youtube-retired) {
  display: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* The former wave overlay is retired everywhere; ivory is the single quiet
   content surface behind packshots, articles, forms and policy copy. */
body.dh-system-page .dh-page-olive,
body.dh-context-page .dh-page-olive {
  display: none !important;
  background: none !important;
}

body.category-pet-care article.elementor-post,
body.category-pet-care article.elementor-post.elementor-grid-item {
  background: var(--dh-ivory-deep) !important;
}

body.category-pet-care article.elementor-post .elementor-post__read-more {
  display: inline-flex !important;
  align-items: center !important;
  align-self: flex-start !important;
  min-height: 44px !important;
  margin-top: auto !important;
  padding: 11px 16px !important;
  color: var(--dh-ivory) !important;
  border: 1px solid var(--dh-olive) !important;
  background: var(--dh-olive) !important;
  font-family: var(--dh-sans) !important;
  font-size: 0.78rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  line-height: 1 !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
}

body.dh-context-page .elementor-location-single :is(.e-con, .elementor-section, .elementor-container, .elementor-column)::before,
body.dh-context-page .elementor-location-single :is(.e-con, .elementor-section, .elementor-container, .elementor-column)::after,
body.dh-context-page .elementor-location-archive :is(.e-con, .elementor-section, .elementor-container, .elementor-column)::before,
body.dh-context-page .elementor-location-archive :is(.e-con, .elementor-section, .elementor-container, .elementor-column)::after,
body.dh-context-page .site-main :is(.e-con, .elementor-section, .elementor-container, .elementor-column)::before,
body.dh-context-page .site-main :is(.e-con, .elementor-section, .elementor-container, .elementor-column)::after {
  background-image: none !important;
}

body.dh-context-page .elementor:not(.elementor-location-header):not(.elementor-location-footer) :is(.e-con, .elementor-section, .elementor-container, .elementor-column) {
  background-image: none !important;
}

body.dh-context-page .elementor:not(.elementor-location-header):not(.elementor-location-footer) :is(.e-con, .elementor-section, .elementor-container, .elementor-column)::before,
body.dh-context-page .elementor:not(.elementor-location-header):not(.elementor-location-footer) :is(.e-con, .elementor-section, .elementor-container, .elementor-column)::after {
  background-image: none !important;
}

body:is(
  .dh-page-our-story,
  .dh-page-delivery-policy-2,
  .dh-page-refunds-and-returns,
  .dh-page-terms-and-conditions,
  .dh-page-contact-us,
  .dh-page-where-to-buy-pet-supply
) .elementor:not(.elementor-location-header):not(.elementor-location-footer) :is(h1, h2, h3, h4, .elementor-heading-title) {
  color: var(--dh-olive-deep) !important;
}

body:is(
  .dh-page-our-story,
  .dh-page-delivery-policy-2,
  .dh-page-refunds-and-returns,
  .dh-page-terms-and-conditions,
  .dh-page-contact-us,
  .dh-page-where-to-buy-pet-supply
) .elementor:not(.elementor-location-header):not(.elementor-location-footer) h1 {
  display: none !important;
}

/* Final WooCommerce action lock: theme button selectors previously pulled the
   olive text token onto olive controls. Keep every commerce action readable,
   including nested labels and disabled states, at every breakpoint. */
html body.dh-system-page.dh-context-page:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) :is(
  button.button,
  input.button,
  a.button,
  .wp-element-button,
  .wc-block-components-button
) {
  color: var(--dh-ivory) !important;
}

html body.dh-system-page.dh-context-page:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) :is(
  button.button,
  input.button,
  a.button,
  .wp-element-button,
  .wc-block-components-button
) * {
  color: var(--dh-ivory) !important;
}

html body.dh-system-page.dh-context-page:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) :is(
  button.button,
  input.button,
  .wp-element-button,
  .wc-block-components-button
):disabled {
  color: var(--dh-ivory) !important;
  opacity: 0.52 !important;
}

/* 0.6.0 — two-track brand and commerce homepage. The narrative path receives
   equal prominence while the live dining menu remains one deliberate action
   away at every stage. */
.dh-luxury .dh-subnav {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.dh-beliefs {
  display: grid;
  grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr);
  min-height: 780px;
  color: var(--dh-ivory);
  border-top: 1px solid rgba(199, 183, 120, 0.44);
  border-bottom: 1px solid rgba(199, 183, 120, 0.44);
  background: var(--dh-olive-deep);
}

.dh-beliefs__portrait {
  position: relative;
  min-height: 100%;
  overflow: hidden;
  border-right: 1px solid rgba(199, 183, 120, 0.36);
}

.dh-beliefs__portrait::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(180deg, rgba(58, 62, 59, 0.08), rgba(63, 81, 55, 0.38));
  pointer-events: none;
}

.dh-beliefs__portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: brightness(0.92) contrast(1.26) saturate(1.08) sepia(0.04);
}

.dh-beliefs__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(70px, 7vw, 118px) clamp(36px, 7vw, 112px);
}

.dh-beliefs .dh-kicker {
  display: block !important;
  margin-bottom: 24px;
  color: var(--dh-gold-light) !important;
}

.dh-beliefs h2 {
  max-width: 760px;
  color: var(--dh-ivory) !important;
  font-size: clamp(2.8rem, 5.2vw, 5.8rem);
  line-height: 0.98;
  text-wrap: balance;
}

.dh-beliefs__intro {
  max-width: 660px;
  margin-top: 30px !important;
  color: var(--dh-ivory) !important;
  font-size: clamp(1.02rem, 1.35vw, 1.24rem);
  line-height: 1.65;
}

.dh-beliefs__list {
  margin: clamp(42px, 5vw, 70px) 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(243, 238, 224, 0.22);
}

.dh-beliefs__list li {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 18px;
  padding: 24px 0;
  border-bottom: 1px solid rgba(243, 238, 224, 0.22);
}

.dh-beliefs__list li > span {
  padding-top: 4px;
  color: var(--dh-gold-light) !important;
  font-family: var(--dh-sans);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.dh-beliefs__list h3 {
  color: var(--dh-ivory) !important;
  font-size: clamp(1.28rem, 1.8vw, 1.72rem);
  line-height: 1.18;
}

.dh-beliefs__list p {
  max-width: 620px;
  margin-top: 8px !important;
  color: var(--dh-ivory) !important;
  font-size: 0.98rem;
  line-height: 1.55;
  opacity: 0.9;
}

.dh-beliefs__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 34px;
  margin-top: 34px;
}

.dh-beliefs__actions .dh-text-link {
  color: var(--dh-ivory) !important;
}

.dh-luxury .dh-macro .dh-section-head > p:not(.dh-kicker),
.dh-luxury .dh-continue > .dh-section-head > p:not(.dh-kicker) {
  max-width: 720px;
  margin-top: 24px;
  color: var(--dh-charcoal) !important;
  font-size: 1.05rem;
  line-height: 1.6;
}

.dh-luxury .dh-continue__grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.dh-luxury .dh-continue-card {
  min-height: 490px;
}

.dh-luxury .dh-continue-card > span {
  display: block !important;
  margin-top: auto;
  color: var(--dh-gold-light) !important;
}

.dh-luxury .dh-continue-card h3 {
  padding-right: 28px;
  font-size: clamp(1.28rem, 1.7vw, 1.82rem);
}

@media (max-width: 1100px) {
  .dh-beliefs {
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  }

  .dh-beliefs__content {
    padding-right: clamp(34px, 5vw, 68px);
    padding-left: clamp(34px, 5vw, 68px);
  }

  .dh-luxury .dh-continue__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .dh-beliefs {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .dh-beliefs__portrait {
    min-height: clamp(360px, 112vw, 540px);
    border-right: 0;
    border-bottom: 1px solid rgba(199, 183, 120, 0.36);
  }

  .dh-beliefs__content {
    padding: 64px 22px 70px;
  }

  .dh-beliefs h2 {
    font-size: clamp(2.65rem, 13vw, 4.3rem);
    line-height: 1;
  }

  .dh-beliefs__intro {
    margin-top: 24px !important;
    font-size: 1rem;
  }

  .dh-beliefs__list {
    margin-top: 38px;
  }

  .dh-beliefs__list li {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px;
    padding: 21px 0;
  }

  .dh-beliefs__list p {
    font-size: 0.94rem;
  }

  .dh-beliefs__actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .dh-luxury .dh-continue > .dh-section-head > p:not(.dh-kicker),
  .dh-luxury .dh-macro .dh-section-head > p:not(.dh-kicker) {
    font-size: 0.98rem;
  }

  .dh-luxury .dh-continue__grid {
    grid-template-columns: repeat(4, minmax(82vw, 1fr));
  }

  .dh-luxury .dh-continue-card {
    min-height: 460px;
  }
}

/* Hard contrast lock for the live dining controls. These selectors carry the
   homepage root ID so later theme/button rules cannot turn olive controls into
   olive-on-olive text again. */
html body #dh-luxury .dh-dining__tabs button {
  color: var(--dh-olive-deep) !important;
  border-color: var(--dh-gold) !important;
  background: var(--dh-ivory) !important;
  text-shadow: none !important;
}

html body #dh-luxury .dh-dining__tabs button[aria-selected="true"] {
  color: var(--dh-ivory) !important;
  border-color: var(--dh-gold-light) !important;
  background: var(--dh-olive-deep) !important;
  box-shadow: inset 0 0 0 2px var(--dh-gold-light) !important;
}

html body #dh-luxury .dh-dining__tabs button[aria-selected="true"] *,
html body #dh-luxury .dh-quick-add,
html body #dh-luxury .dh-quick-add:visited,
html body #dh-luxury .dh-quick-add * {
  color: var(--dh-ivory) !important;
  text-shadow: none !important;
}

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

html body #dh-luxury .dh-quick-add:hover,
html body #dh-luxury .dh-quick-add:focus-visible {
  color: var(--dh-ivory) !important;
  border-color: var(--dh-gold-light) !important;
  background: var(--dh-olive) !important;
  outline: 3px solid var(--dh-gold-light) !important;
  outline-offset: 2px !important;
}

/* The philosophy panel must remain visibly readable even while reveal effects
   or theme utilities are active. Ivory on this charcoal-olive gradient exceeds
   the AA large- and normal-text requirements. */
html body #dh-luxury .dh-beliefs__content {
  background: linear-gradient(145deg, var(--dh-olive-deep) 0%, var(--dh-charcoal) 100%) !important;
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

html body #dh-luxury .dh-beliefs__content :is(h2, h3, p, span, a) {
  color: var(--dh-ivory) !important;
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
  text-shadow: 0 2px 18px rgba(58, 62, 59, 0.28);
}

/* Product packshots are the card's visual anchor. The prior 150px desktop cap
   left an unused image column and made the bags look miniature inside large
   cards. These proportions scale the product with the card without cropping. */
@media (min-width: 901px) {
  html body #dh-luxury .dh-dining .dh-menu-item {
    grid-template-columns: clamp(210px, 17vw, 292px) minmax(0, 1fr) !important;
    align-items: center !important;
    gap: clamp(24px, 2.4vw, 42px) !important;
    min-height: clamp(360px, 30vw, 480px) !important;
    padding: clamp(24px, 2.3vw, 42px) !important;
  }

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

  html body #dh-luxury .dh-dining .dh-menu-item__image img {
    padding: clamp(4px, 0.6vw, 10px) !important;
    transform: translateY(-1%) scale(1.08) !important;
  }
}

@media (min-width: 701px) and (max-width: 900px) {
  html body #dh-luxury .dh-dining .dh-menu-item {
    grid-template-columns: 178px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 22px !important;
    min-height: 310px !important;
  }

  html body #dh-luxury .dh-dining .dh-menu-item__image {
    width: 178px !important;
    height: 248px !important;
  }
}

@media (max-width: 700px) {
  html body #dh-luxury .dh-dining .dh-menu-item {
    grid-template-columns: 124px minmax(0, 1fr) !important;
  }

  html body #dh-luxury .dh-dining .dh-menu-item__image {
    width: 124px !important;
    height: 172px !important;
  }

  html body #dh-luxury .dh-dining .dh-menu-item__image img {
    padding: 4px !important;
    transform: translateY(-1%) scale(1.04) !important;
  }
}
