/* =====================================================================
   DAVID'S HARP — Master Stylesheet
   Palette: Pearl White + Champagne Gold + Black
   Type: Cormorant Garamond (serif) + Manrope (sans)
   ===================================================================== */

:root {
  /* Pearl whites */
  --dh-pearl:        #FFFDF8;
  --dh-pearl-2:      #FBF7F0;
  --dh-pearl-3:      #F7F1E8;
  /* Warm neutrals */
  --dh-cream:        #EFE5D7;
  --dh-cream-2:      #E7DCCB;
  --dh-sand:         #DCCDB8;
  --dh-taupe:        #A9967E;
  /* Champagne gold */
  --dh-gold:         #C89A45;
  --dh-gold-light:   #D4A95C;
  --dh-gold-deep:    #B9822A;
  --dh-gold-soft:    #DDB66A;
  /* Black / ink */
  --dh-ink:          #171513;
  --dh-black:        #111111;
  --dh-ink-soft:     #4a423a;

  --dh-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --dh-sans:  "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;

  --dh-radius:   18px;
  --dh-radius-lg: 26px;
  --dh-shadow-soft: 0 10px 30px rgba(110,75,30,.10);
  --dh-shadow-card: 0 14px 40px rgba(110,75,30,.12);
  --dh-container: 1440px;

  --dh-gold-gradient: linear-gradient(135deg,#e7c789 0%,#c89a45 45%,#b9822a 100%);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--dh-sans);
  color: var(--dh-ink);
  background: var(--dh-pearl);
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;
  overflow-x: clip; /* clip (not hidden) so position:sticky header keeps working */
}
/* Sticky header wrapper — parent is <body> so it sticks through the whole page */
#dh-header { position: sticky; top: 0; z-index: 60; }

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }

h1,h2,h3,h4 { font-family: var(--dh-serif); font-weight: 600; line-height: 1.05; margin: 0; letter-spacing: .01em; }

.dh-container { width: min(92%, var(--dh-container)); margin-inline: auto; }
.dh-narrow    { width: min(92%, 900px); margin-inline: auto; }

.gold { color: var(--dh-gold-deep); }
.eyebrow {
  font-family: var(--dh-sans);
  text-transform: uppercase;
  letter-spacing: .34em;
  font-size: .78rem;
  font-weight: 600;
  color: var(--dh-gold-deep);
  display: inline-block;
}

/* Ornamental gold divider (·—◇—·) */
.dh-flourish { display:flex; align-items:center; justify-content:center; gap:.5rem; margin:.7rem 0 1.4rem; }
.dh-flourish::before, .dh-flourish::after {
  content:""; height:1px; width:60px;
  background:linear-gradient(90deg,transparent,var(--dh-gold));
}
.dh-flourish::after { background:linear-gradient(90deg,var(--dh-gold),transparent); }
.dh-flourish span { color:var(--dh-gold); font-size:.7rem; letter-spacing:.2em; }

/* ------------------------------------------------------------------ */
/* 3D ICON SYSTEM                                                       */
/* ------------------------------------------------------------------ */
.dh-icon-3d {
  color: var(--dh-gold);
  filter:
    drop-shadow(0 1px 0 rgba(255,255,255,.9))
    drop-shadow(0 2px 2px rgba(100,70,25,.18));
}
.dh-icon-btn {
  width: 46px; height: 46px; border-radius: 50%;
  display: grid; place-items: center;
  background: radial-gradient(120% 120% at 30% 25%, #ffffff 0%, #f4ead9 55%, #e6d4ba 100%);
  border: 1px solid rgba(200,154,69,.6);
  box-shadow:
    inset 0 1.5px 1px rgba(255,255,255,1),
    inset 0 -2px 3px rgba(150,110,45,.22),
    0 4px 10px rgba(100,70,30,.18);
  color: var(--dh-gold-deep);
  transition: transform .18s ease, box-shadow .18s ease;
  position: relative;
}
.dh-icon-btn:hover { transform: translateY(-2px); box-shadow: inset 0 1.5px 1px rgba(255,255,255,1), inset 0 -2px 3px rgba(150,110,45,.22), 0 8px 18px rgba(100,70,30,.26); }
.dh-icon-btn:active { transform: translateY(0); box-shadow: inset 0 2px 4px rgba(150,110,45,.3), 0 2px 5px rgba(100,70,30,.18); }
.dh-icon-btn svg { width: 21px; height: 21px; filter: drop-shadow(0 1px 0 rgba(255,255,255,.9)) drop-shadow(0 1px 1px rgba(120,80,25,.35)); }

/* Shared 3D treatment for all circular gold icon holders */
.dh-feature .ico, .dh-longevity-card .ico, .dh-note .ico, .dh-social a {
  background: radial-gradient(120% 120% at 30% 25%, #ffffff 0%, #f4ead9 55%, #e6d4ba 100%) !important;
  border: 1px solid rgba(200,154,69,.6) !important;
  box-shadow:
    inset 0 1.5px 1px rgba(255,255,255,1),
    inset 0 -2px 3px rgba(150,110,45,.22),
    0 4px 10px rgba(100,70,30,.16) !important;
}
.dh-feature .ico svg, .dh-longevity-card .ico svg, .dh-note .ico svg, .dh-social a svg,
.dh-assurance svg, .dh-mood-card .ico svg, .dh-trust-item svg {
  filter: drop-shadow(0 1px 0 rgba(255,255,255,.9)) drop-shadow(0 1px 1px rgba(120,80,25,.3));
}

/* Exact supplied gold brand icons (raster-in-SVG) */
.dh-img-icon { display:inline-block; object-fit:contain; vertical-align:middle;
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.7)) drop-shadow(0 2px 3px rgba(120,80,25,.22)); }
.dh-trust-item .dh-img-icon { width:42px; height:38px; flex:none; }
.dh-feature .ico .dh-img-icon { width:30px; height:30px; }
.dh-longevity-card .ico .dh-img-icon { width:32px; height:32px; }

.dh-icon-btn .badge {
  position:absolute; top:-4px; right:-4px;
  min-width:19px; height:19px; padding:0 5px;
  background:var(--dh-gold-gradient); color:#fff;
  font-family:var(--dh-sans); font-size:.68rem; font-weight:700;
  border-radius:999px; display:grid; place-items:center;
  box-shadow:0 2px 5px rgba(110,75,25,.35);
}

/* ------------------------------------------------------------------ */
/* 3D BUTTON SYSTEM                                                     */
/* ------------------------------------------------------------------ */
.dh-btn, .dh-btn-gold {
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  font-family:var(--dh-sans); font-weight:600; font-size:.82rem;
  letter-spacing:.14em; text-transform:uppercase;
  padding:.95rem 2.1rem; border-radius:999px; cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.dh-btn {
  color:#3a2c14;
  background:linear-gradient(180deg, rgba(255,255,255,.85) 0%, rgba(255,250,242,.6) 100%);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border:1.5px solid rgba(212,169,92,.9);
  box-shadow:
    inset 0 2px 3px rgba(255,255,255,1),
    inset 0 -3px 6px rgba(200,154,69,.32),
    0 0 0 1px rgba(255,241,206,.6),
    0 0 20px rgba(212,169,92,.4),
    0 8px 20px rgba(110,75,30,.16);
}
.dh-btn:hover { transform:translateY(-2px); box-shadow:inset 0 2px 3px rgba(255,255,255,1), inset 0 -3px 6px rgba(200,154,69,.32), 0 0 0 1px rgba(255,241,206,.7), 0 0 30px rgba(212,169,92,.6), 0 12px 26px rgba(110,75,30,.22); }
.dh-btn:active { transform:translateY(0); box-shadow:inset 0 2px 5px rgba(150,110,45,.3), 0 2px 6px rgba(110,75,25,.18); }
.dh-btn-gold {
  color:#fff; text-shadow:0 1px 1px rgba(120,80,20,.35);
  background:linear-gradient(145deg,#e7c886 0%,#c89a45 50%,#a9741f 100%);
  border:1px solid #e0bd76;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.5),
    inset 0 -2px 4px rgba(120,80,20,.45),
    0 5px 14px rgba(110,75,25,.30),
    0 1px 0 rgba(90,60,15,.4);
}
.dh-btn-gold:hover { transform:translateY(-2px); box-shadow:inset 0 1px 0 rgba(255,255,255,.55), inset 0 -2px 4px rgba(120,80,20,.45), 0 11px 24px rgba(110,75,25,.40), 0 1px 0 rgba(90,60,15,.4); }
.dh-btn-gold:active { transform:translateY(0); box-shadow:inset 0 2px 5px rgba(120,80,20,.55), 0 3px 7px rgba(110,75,25,.28); }
.dh-btn svg, .dh-btn-gold svg { width:16px; height:16px; filter:drop-shadow(0 1px 0 rgba(255,255,255,.4)); }
.dh-btn.full, .dh-btn-gold.full { width:100%; }

/* ------------------------------------------------------------------ */
/* HEADER                                                               */
/* ------------------------------------------------------------------ */
.dh-header {
  position:sticky; top:0; z-index:50;
  background:linear-gradient(180deg, rgba(251,247,240,.96), rgba(247,241,232,.9));
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(200,154,69,.22);
}
.dh-header-inner {
  display:flex; align-items:center; justify-content:space-between;
  gap:1.2rem; padding:.85rem 0; width:min(94%,var(--dh-container)); margin-inline:auto;
}
.dh-logo {
  font-family:var(--dh-serif); font-weight:700;
  font-size:1.9rem; letter-spacing:.02em;
  color:var(--dh-gold-deep);
  text-shadow:0 1px 0 rgba(255,255,255,.8), 0 2px 3px rgba(110,75,25,.18);
  white-space:nowrap; display:inline-flex; align-items:center;
}
.dh-logo small { font-size:.55em; }
/* Exact 3D gold wordmark logo image */
.dh-logo-img { height:44px; width:auto; display:block; filter:drop-shadow(0 2px 3px rgba(110,75,25,.25)); }
@media (max-width:600px){ .dh-logo-img { height:32px; } }

/* center glass pill — glowing gold glass capsule (reference match) */
.dh-nav-glass {
  display:flex; align-items:center; gap:.4rem;
  background:linear-gradient(180deg, rgba(255,255,255,.82) 0%, rgba(255,250,242,.55) 100%);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border:1.5px solid rgba(212,169,92,.9);
  box-shadow:
    inset 0 2px 3px rgba(255,255,255,1),
    inset 0 -3px 6px rgba(200,154,69,.35),
    0 0 0 1px rgba(255,241,206,.7),
    0 0 26px rgba(212,169,92,.5),
    0 10px 26px rgba(110,75,30,.2);
  border-radius:999px; padding:.55rem .85rem;
}
.dh-nav-glass a {
  position:relative;
  font-family:var(--dh-sans); font-weight:600; font-size:.82rem;
  letter-spacing:.13em; text-transform:uppercase; color:var(--dh-ink);
  padding:.5rem 1.15rem; border-radius:999px; transition:color .18s ease;
}
.dh-nav-glass a::after {
  content:""; position:absolute; left:1.15rem; right:1.15rem; bottom:.28rem; height:2px;
  background:var(--dh-gold-gradient); border-radius:2px; transform:scaleX(0); transform-origin:center;
  transition:transform .22s ease;
}
.dh-nav-glass a:hover { color:var(--dh-gold-deep); }
.dh-nav-glass a.active { color:var(--dh-gold-deep); }
.dh-nav-glass a.active::after, .dh-nav-glass a:hover::after { transform:scaleX(1); }
.dh-nav-sep { width:1px; height:16px; background:rgba(200,154,69,.4); }

.dh-header-actions { display:flex; align-items:center; gap:1rem; }
.dh-burger { display:none; }
/* Header utility icons: bare polished-gold 3D (no circle) — reference match */
.dh-header-actions .dh-icon-btn {
  width:34px; height:34px; background:none; border:none; box-shadow:none;
  color:var(--dh-gold-deep);
}
.dh-header-actions .dh-icon-btn:hover { transform:translateY(-2px); box-shadow:none; }
.dh-header-actions .dh-icon-btn:active { transform:translateY(0); box-shadow:none; }
.dh-header-actions .dh-icon-btn svg {
  width:26px; height:26px;
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.85)) drop-shadow(0 2px 2px rgba(120,80,25,.4));
}
.dh-header-actions .dh-icon-btn .badge { top:-6px; right:-8px; }

/* mobile drawer */
.dh-drawer {
  position:fixed; inset:0; z-index:60; background:rgba(23,21,19,.35);
  opacity:0; visibility:hidden; transition:opacity .25s ease;
}
.dh-drawer.open { opacity:1; visibility:visible; }
.dh-drawer-panel {
  position:absolute; top:0; right:0; height:100%; width:min(80%,320px);
  background:var(--dh-pearl); box-shadow:-10px 0 40px rgba(110,75,25,.2);
  padding:1.5rem 1.4rem; transform:translateX(100%); transition:transform .28s ease;
  display:flex; flex-direction:column; gap:.4rem;
}
.dh-drawer.open .dh-drawer-panel { transform:translateX(0); }
.dh-drawer-panel a {
  font-family:var(--dh-sans); font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  font-size:.9rem; padding:.9rem .4rem; border-bottom:1px solid rgba(200,154,69,.2);
}
.dh-drawer-close { align-self:flex-end; background:none; border:none; color:var(--dh-gold-deep); }
.dh-drawer-close svg { width:26px; height:26px; }

/* ------------------------------------------------------------------ */
/* HERO (section 1)                                                     */
/* ------------------------------------------------------------------ */
.dh-hero {
  position:relative;
  background:
    linear-gradient(90deg, rgba(251,247,240,.97) 0%, rgba(251,247,240,.82) 30%, rgba(251,247,240,.35) 52%, rgba(251,247,240,0) 72%),
    url("../img/campaign/scene-hero.webp") center right/cover no-repeat;
  overflow:hidden;
}

/* Subtle campaign-image section backgrounds (pearl overlay keeps text readable) */
.dh-bg { position:relative; background-size:cover; background-position:center; }
.dh-bg::before { content:""; position:absolute; inset:0; background:rgba(251,247,240,.88); pointer-events:none; z-index:0; }
.dh-section.alt.dh-bg::before { background:rgba(247,241,232,.9); }
.dh-bg > * { position:relative; z-index:1; }

/* Bottle-in-scene sections: bottle sits on the right of the bg, text on the left */
.dh-scene { position:relative; background-size:cover; background-position:center right; overflow:hidden; }
.dh-scene::before { content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(90deg, rgba(251,247,240,.96) 0%, rgba(251,247,240,.8) 36%, rgba(251,247,240,.2) 60%, rgba(251,247,240,0) 82%); }
.dh-section.alt.dh-scene::before {
  background:linear-gradient(90deg, rgba(247,241,232,.97) 0%, rgba(247,241,232,.82) 36%, rgba(247,241,232,.22) 60%, rgba(247,241,232,0) 82%); }
.dh-scene > * { position:relative; z-index:1; }
.dh-scene .dh-split { min-height:520px; align-items:center; }
@media (max-width:900px){
  .dh-scene { background-position:center; }
  .dh-scene::before { background:rgba(251,247,240,.9); }
  .dh-section.alt.dh-scene::before { background:rgba(247,241,232,.92); }
  .dh-scene .dh-split { min-height:0; }
}

/* Pearl-satin section background (silk visible behind cards, reference match) */
.dh-satin { position:relative; background-size:cover; background-position:center; }
.dh-satin::before { content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(251,247,240,.32), rgba(247,241,232,.48)); }
.dh-satin > * { position:relative; z-index:1; }

/* Mood card product image */
.dh-mood-card .mood-img { border-radius:16px; overflow:hidden; margin-bottom:1.2rem; aspect-ratio:4/5; background:#f7f1e8; }
.dh-mood-card .mood-img img { width:100%; height:100%; object-fit:cover; }
.dh-hero-inner {
  position:relative; display:block; max-width:none;
  width:min(92%,var(--dh-container)); margin-inline:auto; padding:5rem 0 4.5rem; min-height:560px;
}
.dh-hero-inner > div { max-width:600px; }
.dh-hero h1 { font-size:clamp(2.6rem,5vw,4.4rem); font-weight:600; }
.dh-hero .sub { max-width:34ch; color:var(--dh-ink-soft); margin:1.4rem 0 2rem; }
.dh-hero-price { margin-top:2rem; }
.dh-hero-price .label { font-size:.72rem; letter-spacing:.28em; color:var(--dh-gold-deep); text-transform:uppercase; }
.dh-hero-price .amt { font-family:var(--dh-serif); font-size:2.6rem; color:var(--dh-gold-deep); line-height:1; }
.dh-hero-visual {
  position:relative; border-radius:var(--dh-radius-lg); overflow:hidden;
  background:linear-gradient(160deg,#171513,#241f18);
  box-shadow:var(--dh-shadow-card);
  aspect-ratio: 5/4;
}
.dh-hero-visual img { width:100%; height:100%; object-fit:contain; padding:1.5rem; }

/* trust strip */
.dh-trust {
  background:linear-gradient(180deg,#f7f1e8,#efe5d7);
  border-top:1px solid rgba(200,154,69,.25); border-bottom:1px solid rgba(200,154,69,.25);
}
/* Trust / feature bands attached inside sections (over scene/silk, reference match) */
#collectionTrust, #whyBar, #artBar, #moodBar { margin-top:1.5rem; }
.dh-footer-features { margin-bottom:2.6rem; }
#collectionTrust .dh-trust, #whyBar .dh-trust, #artBar .dh-trust, #moodBar .dh-trust, .dh-footer-features .dh-trust {
  background:linear-gradient(180deg, rgba(255,253,248,.72), rgba(247,241,232,.55));
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  border:1px solid rgba(200,154,69,.4);
  border-radius:22px; width:min(94%, var(--dh-container)); margin:0 auto;
}
#collectionTrust .dh-trust-inner, #whyBar .dh-trust-inner, #artBar .dh-trust-inner, #moodBar .dh-trust-inner, .dh-footer-features .dh-trust-inner { width:100%; padding:0 1rem; }
#whyBar .dh-trust-item p, #artBar .dh-trust-item p, #moodBar .dh-trust-item p { font-size:.8rem; }

/* Hero DH monogram (supplied 3D gold emblem) */
.dh-hero-mono { height:76px; width:auto; display:block; margin-bottom:.6rem;
  filter:drop-shadow(0 2px 4px rgba(110,75,25,.25)); }
@media (max-width:600px){ .dh-hero-mono { height:56px; } }

/* Footer brand emblem */
.dh-footer-brand { display:inline-block; }
.dh-footer-mono { height:82px; width:auto; display:block;
  filter:drop-shadow(0 2px 4px rgba(110,75,25,.22)); }
.dh-trust-inner {
  display:grid; grid-template-columns:repeat(4,1fr);
  width:min(92%,var(--dh-container)); margin-inline:auto;
}
.dh-trust-item { display:flex; align-items:center; gap:.9rem; padding:1.4rem 1.2rem; }
.dh-trust-item + .dh-trust-item { border-left:1px solid rgba(200,154,69,.25); }
.dh-trust-item svg { width:34px; height:34px; flex:none; }
.dh-trust-item h4 { font-family:var(--dh-sans); font-size:.82rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.dh-trust-item p { margin:.15rem 0 0; font-size:.82rem; color:var(--dh-ink-soft); }

/* ------------------------------------------------------------------ */
/* SECTIONS                                                             */
/* ------------------------------------------------------------------ */
.dh-section { padding:4.5rem 0; }
.dh-section.alt { background:linear-gradient(180deg,#fbf7f0,#f7f1e8); }
.dh-section-head { text-align:center; max-width:720px; margin:0 auto 2.6rem; }
.dh-section-head h2 { font-size:clamp(2rem,4vw,3.2rem); }
.dh-section-head p { color:var(--dh-ink-soft); margin:.4rem 0 0; }

/* collection grid */
.dh-collection-grid {
  display:grid; grid-template-columns:repeat(6,1fr); gap:1rem;
}
.dh-product-card {
  background:linear-gradient(160deg,rgba(255,255,255,.95),rgba(247,241,232,.9));
  border:1px solid rgba(200,154,69,.28); border-radius:var(--dh-radius);
  padding:1rem .9rem 1.2rem; text-align:center;
  box-shadow:var(--dh-shadow-soft);
  transition:transform .2s ease, box-shadow .2s ease;
  position:relative;
  display:flex; flex-direction:column; height:100%;
}
.dh-product-card .price { margin-top:auto; }
.dh-product-card:hover { transform:translateY(-5px); box-shadow:var(--dh-shadow-card); }
.dh-product-thumb {
  display:block; width:100%; border-radius:14px; overflow:hidden; aspect-ratio:1;
  background:linear-gradient(160deg,#fffdf8,#f3eadc);
  margin-bottom:.9rem;
}
.dh-product-thumb img { width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }
.dh-product-card h3 { font-family:var(--dh-sans); font-size:.98rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.dh-product-card .cat { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--dh-gold-deep); margin-top:.2rem; }
.dh-product-card .notes { font-size:.78rem; color:var(--dh-ink-soft); margin:.35rem 0; }
.dh-product-card .price { font-family:var(--dh-serif); font-size:1.3rem; color:var(--dh-ink); margin:.3rem 0 .7rem; }
.dh-wish {
  position:absolute; top:.9rem; right:.9rem; width:32px; height:32px; border-radius:50%;
  background:rgba(255,255,255,.9); border:1px solid rgba(200,154,69,.4);
  display:grid; place-items:center; color:var(--dh-gold-deep);
}
.dh-wish svg { width:16px; height:16px; }
.rating { display:flex; align-items:center; justify-content:center; gap:.35rem; font-size:.76rem; color:var(--dh-ink-soft); }
.stars { color:var(--dh-gold); letter-spacing:1px; }

.center-cta { text-align:center; margin-top:2.4rem; }

/* Minimal frosted collection card (reference Section 2) */
.dh-product-card.minimal {
  display:block; text-align:center; padding:1.2rem 1rem 1.5rem;
  background:linear-gradient(160deg, rgba(255,253,248,.6), rgba(247,241,232,.4));
  backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px);
  border:1px solid rgba(200,154,69,.35); border-radius:22px;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.85), 0 12px 30px rgba(110,75,30,.1);
}
.dh-product-card.minimal:hover { transform:translateY(-6px); box-shadow:inset 0 1px 1px rgba(255,255,255,.95), 0 18px 40px rgba(110,75,30,.16); }
.dh-product-card.minimal { display:flex; flex-direction:column; }
.dh-product-card.minimal .dh-product-thumb { background:transparent; margin-bottom:.9rem; aspect-ratio:auto; display:block; overflow:visible; }
.dh-product-card.minimal .dh-product-thumb img { width:100%; height:auto; display:block; }
.dh-product-card.minimal h3 { font-family:var(--dh-sans); font-size:1rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--dh-ink); }
.dh-product-card.minimal .cat { font-size:.74rem; letter-spacing:.22em; text-transform:uppercase; color:var(--dh-ink-soft); margin-top:.35rem; }
.dh-card-flourish { position:relative; display:block; height:10px; width:72px; margin:.75rem auto 0; }
.dh-card-flourish::before { content:""; position:absolute; top:50%; left:0; right:0; height:1px; transform:translateY(-50%);
  background:linear-gradient(90deg, transparent, var(--dh-gold) 25%, var(--dh-gold) 75%, transparent); }
.dh-card-flourish::after { content:"◆"; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  color:var(--dh-gold); font-size:.5rem; line-height:1; padding:0 5px; background:rgba(252,248,241,.75); }

/* split feature (why / craft) */
.dh-split { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:center; }
/* Bottle-scene image column (real <img>, cropped to show the bottle) */
.dh-scene-img { border-radius:var(--dh-radius-lg); overflow:hidden; box-shadow:var(--dh-shadow-card);
  aspect-ratio:4/3; background:linear-gradient(160deg,#fffdf8,#f3eadc); }
.dh-scene-img img { width:100%; height:100%; object-fit:cover; object-position:center right; display:block; }
.dh-split-top { display:grid; grid-template-columns:1.05fr 1fr; gap:2.2rem; align-items:center; margin-bottom:2.6rem; }
@media (max-width:900px){ .dh-split-top { grid-template-columns:1fr; } }
.dh-split-visual { border-radius:var(--dh-radius-lg); overflow:hidden; background:#141210; box-shadow:var(--dh-shadow-card); aspect-ratio:4/5; }
.dh-split-visual img { width:100%; height:100%; object-fit:contain; padding:1.5rem; }
.dh-split h2 { font-size:clamp(2rem,3.6vw,3rem); }
.dh-feature-list { margin-top:1.8rem; display:flex; flex-direction:column; gap:1.3rem; }
.dh-feature { display:flex; gap:1rem; align-items:flex-start; }
.dh-feature .ico {
  flex:none; width:52px; height:52px; border-radius:50%;
  background:linear-gradient(145deg,#fff,#efe5d7); border:1px solid rgba(200,154,69,.5);
  display:grid; place-items:center; color:var(--dh-gold-deep);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.9), 0 3px 8px rgba(100,70,30,.14);
}
.dh-feature .ico svg { width:24px; height:24px; }
.dh-feature h4 { font-family:var(--dh-sans); font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:.9rem; color:var(--dh-gold-deep); }
.dh-feature p { margin:.2rem 0 0; font-size:.9rem; color:var(--dh-ink-soft); }

/* mood cards */
.dh-mood-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.dh-mood-card {
  position:relative; border-radius:var(--dh-radius-lg); overflow:hidden;
  border:1px solid rgba(200,154,69,.32);
  background:linear-gradient(160deg, rgba(255,253,248,.72), rgba(247,241,232,.58));
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  box-shadow:var(--dh-shadow-soft); padding:1.8rem;
  display:grid; grid-template-columns:1fr .82fr; gap:1rem; align-items:center;
  transition:transform .2s ease, box-shadow .2s ease;
}
.dh-mood-card:hover { transform:translateY(-6px); box-shadow:var(--dh-shadow-card); }
.dh-mood-card .mc-text { display:flex; flex-direction:column; align-items:flex-start; }
.dh-mood-card .ico { color:var(--dh-gold-deep); margin-bottom:.7rem; }
.dh-mood-card .ico svg { width:38px; height:38px; }
.dh-mood-card h3 { font-size:1.9rem; line-height:1; }
.dh-mood-card .lbl { font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--dh-gold-deep); margin:.2rem 0 .9rem; }
.dh-mood-card p { color:var(--dh-ink-soft); margin-bottom:1.2rem; font-size:.92rem; }
.dh-mood-card .mood-img { aspect-ratio:3/4; margin:0; border-radius:14px; overflow:hidden; }
.dh-mood-card .mood-img img { width:100%; height:100%; object-fit:cover; }
@media (max-width:600px){ .dh-mood-card { grid-template-columns:1fr; } .dh-mood-card .mood-img { aspect-ratio:4/3; } }

/* longevity cards */
.dh-longevity-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; }
.dh-longevity-card {
  background:linear-gradient(160deg,rgba(255,255,255,.96),rgba(247,241,232,.9));
  border:1px solid rgba(200,154,69,.25); border-radius:var(--dh-radius);
  padding:1.6rem 1.1rem; text-align:center; box-shadow:var(--dh-shadow-soft);
}
.dh-longevity-card .ico {
  width:60px; height:60px; margin:0 auto 1rem; border-radius:50%;
  background:linear-gradient(145deg,#fff,#efe5d7); border:1px solid rgba(200,154,69,.5);
  display:grid; place-items:center; color:var(--dh-gold-deep);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.9), 0 3px 8px rgba(100,70,30,.14);
}
.dh-longevity-card .ico svg { width:26px; height:26px; }
.dh-longevity-card h4 { font-family:var(--dh-serif); font-size:1.15rem; margin-bottom:.5rem; }
.dh-longevity-card p { font-size:.82rem; color:var(--dh-ink-soft); }

.dh-stat-bar {
  margin-top:1.4rem; display:grid; grid-template-columns:repeat(4,1fr);
  background:linear-gradient(160deg,#fff,#f3eadc);
  border:1px solid rgba(200,154,69,.3); border-radius:var(--dh-radius); overflow:hidden;
}
.dh-stat { display:flex; align-items:center; justify-content:center; gap:.8rem; padding:1.3rem 1rem; text-align:left; }
.dh-stat + .dh-stat { border-left:1px solid rgba(200,154,69,.25); }
.dh-stat .big { font-family:var(--dh-serif); font-size:1.9rem; color:var(--dh-gold-deep); line-height:1; }
.dh-stat small { display:block; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dh-ink-soft); }

/* reviews */
.dh-review-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.dh-review-card {
  background:linear-gradient(160deg,#fff,#f7f1e8); border:1px solid rgba(200,154,69,.25);
  border-radius:var(--dh-radius); padding:1.8rem 1.6rem; box-shadow:var(--dh-shadow-soft);
}
.dh-review-card .stars { font-size:1rem; text-align:center; display:block; margin-bottom:1rem; }
.dh-review-card blockquote { margin:0; font-family:var(--dh-serif); font-size:1.15rem; text-align:center; color:var(--dh-ink); }
.dh-review-author { display:flex; align-items:center; gap:.8rem; margin-top:1.4rem; padding-top:1.1rem; border-top:1px solid rgba(200,154,69,.25); }
.dh-review-author .av { width:40px; height:40px; border-radius:50%; background:var(--dh-gold-gradient); display:grid; place-items:center; color:#fff; }
.dh-review-author .av svg { width:20px; height:20px; }
.dh-review-author b { display:block; font-family:var(--dh-sans); font-size:.9rem; }
.dh-review-author span { font-size:.75rem; color:var(--dh-gold-deep); letter-spacing:.05em; }

/* ------------------------------------------------------------------ */
/* FOOTER                                                               */
/* ------------------------------------------------------------------ */
.dh-newsletter {
  background:linear-gradient(180deg,#f7f1e8,#efe5d7); border-top:1px solid rgba(200,154,69,.25);
  padding:3rem 0;
}
.dh-newsletter-inner { text-align:center; max-width:560px; margin:0 auto; }
.dh-newsletter h3 { font-size:2rem; color:var(--dh-gold-deep); }
.dh-newsletter p { color:var(--dh-ink-soft); margin:.4rem 0 1.4rem; }
.dh-news-form { display:flex; gap:.5rem; background:#fff; border:1px solid rgba(200,154,69,.45); border-radius:999px; padding:.4rem .4rem .4rem 1.3rem; box-shadow:var(--dh-shadow-soft); }
.dh-news-form input { flex:1; border:none; background:transparent; font-family:var(--dh-sans); font-size:.9rem; outline:none; color:var(--dh-ink); }
.dh-news-form button { width:46px; height:46px; border-radius:50%; border:none; background:var(--dh-gold-gradient); color:#fff; display:grid; place-items:center; flex:none; }
.dh-news-form button svg { width:18px; height:18px; }

.dh-footer { background:linear-gradient(180deg,#fbf7f0,#f3eadc); border-top:1px solid rgba(200,154,69,.25); padding:3.4rem 0 1.6rem; }
.dh-footer-grid { display:grid; grid-template-columns:1.3fr 1fr 1.2fr 1.4fr; gap:2rem; }
.dh-footer .brand .dh-logo { font-size:1.8rem; }
.dh-footer .brand p { color:var(--dh-ink-soft); font-size:.9rem; margin:.8rem 0 1.2rem; max-width:26ch; }
.dh-social { display:flex; gap:.7rem; }
.dh-social a { width:42px; height:42px; border-radius:50%; border:1px solid rgba(200,154,69,.5); background:linear-gradient(145deg,#fff,#efe5d7); display:grid; place-items:center; color:var(--dh-gold-deep); box-shadow:inset 0 1px 1px rgba(255,255,255,.9),0 2px 6px rgba(100,70,30,.14); transition:transform .18s ease; }
.dh-social a:hover { transform:translateY(-2px); }
.dh-social svg { width:19px; height:19px; }
.dh-footer h4 { font-family:var(--dh-serif); font-size:1.3rem; color:var(--dh-gold-deep); margin-bottom:1rem; }
.dh-footer ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.7rem; }
.dh-footer ul a { font-size:.9rem; color:var(--dh-ink-soft); transition:color .15s ease; }
.dh-footer ul a:hover { color:var(--dh-gold-deep); }
.dh-contact-item { display:flex; gap:.7rem; align-items:flex-start; font-size:.88rem; color:var(--dh-ink-soft); margin-bottom:.9rem; }
.dh-contact-item svg { width:18px; height:18px; color:var(--dh-gold-deep); flex:none; margin-top:2px; }
.dh-footer-bottom { text-align:center; margin-top:2.4rem; padding-top:1.4rem; border-top:1px solid rgba(200,154,69,.25); font-size:.82rem; color:var(--dh-ink-soft); }

/* ------------------------------------------------------------------ */
/* PAGE HEADERS / BREADCRUMB                                            */
/* ------------------------------------------------------------------ */
.dh-page-hero {
  background:linear-gradient(160deg,#fffdf8,#f7f1e8,#efe5d7);
  border-bottom:1px solid rgba(200,154,69,.22); padding:3rem 0 2.6rem; text-align:center;
}
.dh-page-hero h1 { font-size:clamp(2.4rem,5vw,3.6rem); }
.dh-page-hero p { color:var(--dh-ink-soft); max-width:56ch; margin:.6rem auto 0; }
.dh-breadcrumb { font-size:.8rem; color:var(--dh-ink-soft); padding:1.2rem 0; letter-spacing:.03em; }
.dh-breadcrumb a:hover { color:var(--dh-gold-deep); }
.dh-breadcrumb .sep { color:var(--dh-gold); margin:0 .5rem; }

/* ------------------------------------------------------------------ */
/* SHOP                                                                 */
/* ------------------------------------------------------------------ */
/* Shop hero banner (text left, bottle scene right — reference match) */
.dh-shop-hero { position:relative; overflow:hidden; border-bottom:1px solid rgba(200,154,69,.25);
  background:linear-gradient(120deg,#fbf7f0,#f3eadc); }
.dh-shop-hero .dh-container { position:relative; display:grid; grid-template-columns:1fr 1fr; align-items:center; min-height:320px; z-index:1; }
.dh-shop-hero .txt { padding:3rem 0; }
.dh-shop-hero h1 { font-size:clamp(2.6rem,5vw,4rem); }
.dh-shop-hero p { color:var(--dh-ink-soft); max-width:34ch; margin:.4rem 0 0; }
.dh-shop-hero .banner-img { position:absolute; right:calc((100% - min(94%,var(--dh-container)))/2 * -1); top:0; bottom:0; width:54%; }
.dh-shop-hero .banner-img::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg, #f6efe4 0%, rgba(246,239,228,.4) 22%, transparent 45%); }
.dh-shop-hero .banner-img img { width:100%; height:100%; object-fit:cover; object-position:center right; }
@media (max-width:820px){
  .dh-shop-hero .dh-container { grid-template-columns:1fr; min-height:0; text-align:center; }
  .dh-shop-hero .txt { padding:2rem 0 12rem; }
  .dh-shop-hero .banner-img { width:100%; top:auto; height:200px; }
  .dh-shop-hero .banner-img::before { background:linear-gradient(180deg,#f6efe4,transparent 40%); }
}

/* Category pill on product cards */
.dh-cat-pill { display:inline-block; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  color:var(--dh-gold-deep); border:1px solid rgba(200,154,69,.5); border-radius:999px; padding:.28rem .8rem; margin-bottom:.5rem;
  background:rgba(255,253,248,.7); }

/* Sort dropdown */
.dh-sort { display:flex; align-items:center; gap:.6rem; font-size:.85rem; color:var(--dh-ink-soft); }
.dh-sort select { font-family:var(--dh-sans); font-size:.85rem; color:var(--dh-ink); border:1px solid rgba(200,154,69,.45);
  border-radius:999px; padding:.5rem 2rem .5rem 1rem; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23b9822a' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right .8rem center;
  -webkit-appearance:none; appearance:none; cursor:pointer; }

/* Price range (dual slider) */
.dh-range { position:relative; height:34px; margin:.4rem 0 .2rem; }
.dh-range .track { position:absolute; top:15px; left:0; right:0; height:4px; border-radius:4px; background:rgba(200,154,69,.25); }
.dh-range .fill { position:absolute; top:15px; height:4px; border-radius:4px; background:var(--dh-gold-gradient); }
.dh-range input[type=range]{ position:absolute; top:8px; left:0; width:100%; margin:0; background:none; -webkit-appearance:none; appearance:none; pointer-events:none; }
.dh-range input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; pointer-events:auto; width:18px; height:18px; border-radius:50%;
  background:radial-gradient(120% 120% at 30% 25%,#fff,#e6d4ba); border:1px solid var(--dh-gold-deep); box-shadow:0 2px 5px rgba(110,75,25,.3); cursor:pointer; }
.dh-range input[type=range]::-moz-range-thumb{ pointer-events:auto; width:18px; height:18px; border-radius:50%; background:#fff; border:1px solid var(--dh-gold-deep); cursor:pointer; }
.dh-range-labels { display:flex; justify-content:space-between; font-size:.82rem; color:var(--dh-ink-soft); }

/* Product-page bottom trust row */
.dh-prod-trust { border-top:1px solid rgba(200,154,69,.25); margin-top:3rem; padding-top:1.6rem;
  display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.dh-prod-trust .t { display:flex; gap:.8rem; align-items:flex-start; }
.dh-prod-trust .t .ico { width:44px; height:44px; flex:none; border-radius:50%; display:grid; place-items:center; color:var(--dh-gold-deep);
  background:radial-gradient(120% 120% at 30% 25%,#fff,#efe5d7); border:1px solid rgba(200,154,69,.5); }
.dh-prod-trust .t .ico svg { width:22px; height:22px; }
.dh-prod-trust b { display:block; font-family:var(--dh-sans); font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; }
.dh-prod-trust span { font-size:.82rem; color:var(--dh-ink-soft); }
@media (max-width:760px){ .dh-prod-trust { grid-template-columns:1fr 1fr; } }

.dh-shop-layout { display:grid; grid-template-columns:250px 1fr; gap:2rem; align-items:start; }
.dh-filter {
  background:linear-gradient(160deg,#fff,#f7f1e8); border:1px solid rgba(200,154,69,.25);
  border-radius:var(--dh-radius); padding:1.5rem; position:sticky; top:90px;
}
.dh-filter h3 { font-family:var(--dh-serif); color:var(--dh-gold-deep); font-size:1.3rem; padding-bottom:.8rem; border-bottom:1px solid rgba(200,154,69,.3); }
.dh-filter-group { padding:1.1rem 0; border-bottom:1px solid rgba(200,154,69,.2); }
.dh-filter-group h5 { font-family:var(--dh-sans); font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; margin:0 0 .8rem; }
.dh-check { display:flex; align-items:center; gap:.6rem; font-size:.86rem; color:var(--dh-ink-soft); padding:.3rem 0; cursor:pointer; }
.dh-check input { accent-color:var(--dh-gold-deep); width:16px; height:16px; }
.dh-shop-toolbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.4rem; }
.dh-shop-toolbar .count { font-size:.85rem; color:var(--dh-ink-soft); }
.dh-shop-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:1.4rem; align-items:stretch; }
.dh-chiprow { display:flex; gap:.6rem; flex-wrap:wrap; margin-bottom:1.6rem; }
.dh-chip { padding:.5rem 1.2rem; border-radius:999px; border:1px solid rgba(200,154,69,.4); background:#fff; font-size:.78rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; transition:all .15s ease; }
.dh-chip.active, .dh-chip:hover { background:var(--dh-gold-gradient); color:#fff; border-color:transparent; }

/* ------------------------------------------------------------------ */
/* PRODUCT PAGE                                                         */
/* ------------------------------------------------------------------ */
.dh-product-layout { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:start; }
.dh-gallery { display:grid; grid-template-columns:80px 1fr; gap:1rem; }
.dh-thumbs { display:flex; flex-direction:column; gap:.7rem; }
.dh-thumbs img { border-radius:12px; border:1px solid rgba(200,154,69,.3); cursor:pointer; background:linear-gradient(160deg,#fffdf8,#f3eadc); aspect-ratio:1; object-fit:cover; transition:border-color .15s ease; }
.dh-thumbs img.active, .dh-thumbs img:hover { border-color:var(--dh-gold-deep); }
.dh-gallery-main { border-radius:var(--dh-radius-lg); overflow:hidden; background:linear-gradient(160deg,#fffdf8,#f3eadc); box-shadow:var(--dh-shadow-card); aspect-ratio:1; }
.dh-gallery-main img { width:100%; height:100%; object-fit:cover; }
.badge-best { display:inline-block; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--dh-gold-deep); font-weight:700; }
.dh-product-info h1 { font-size:clamp(2.2rem,4vw,3rem); margin:.4rem 0; }
.dh-product-info .subtitle { color:var(--dh-gold-deep); letter-spacing:.06em; }
.dh-price-lg { font-family:var(--dh-serif); font-size:2.2rem; margin:1rem 0 .2rem; }
.dh-tax { font-size:.8rem; color:var(--dh-ink-soft); }
.dh-desc { color:var(--dh-ink-soft); margin:1.2rem 0; }
.dh-size-row { display:flex; gap:.7rem; margin:.6rem 0 1.4rem; }
.dh-size {
  padding:.75rem 1.6rem; border-radius:12px; border:1px solid rgba(200,154,69,.45);
  background:#fff; font-weight:600; font-size:.9rem; cursor:pointer; transition:all .15s ease;
}
.dh-size.active { background:linear-gradient(145deg,#ddb66a,#b9822a); color:#fff; border-color:transparent; }
.dh-label { font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--dh-ink); display:block; margin-bottom:.5rem; }
.dh-qty { display:inline-flex; align-items:center; border:1px solid rgba(200,154,69,.45); border-radius:12px; overflow:hidden; background:#fff; }
.dh-qty button { width:44px; height:44px; border:none; background:transparent; font-size:1.2rem; color:var(--dh-gold-deep); }
.dh-qty input { width:48px; text-align:center; border:none; font-family:var(--dh-sans); font-size:1rem; outline:none; }
.dh-buy-actions { display:flex; flex-direction:column; gap:.8rem; margin:1.6rem 0; }
.dh-assurance { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; padding-top:1.4rem; border-top:1px solid rgba(200,154,69,.25); }
.dh-assurance .a { display:flex; gap:.6rem; align-items:flex-start; font-size:.78rem; }
.dh-assurance svg { width:26px; height:26px; color:var(--dh-gold-deep); flex:none; }
.dh-assurance b { display:block; }
.dh-assurance span { color:var(--dh-ink-soft); }

.dh-notes-tabs { display:grid; grid-template-columns:.9fr 1.4fr; gap:1.6rem; margin-top:3rem; }
.dh-notes-box, .dh-tabs-box { background:linear-gradient(160deg,#fff,#f7f1e8); border:1px solid rgba(200,154,69,.25); border-radius:var(--dh-radius); padding:2rem; }
.dh-notes-box h3, .dh-tabs-box h3 { font-family:var(--dh-serif); text-align:center; color:var(--dh-ink); margin-bottom:1.4rem; }
.dh-note { display:flex; gap:1rem; align-items:flex-start; padding:1rem 0; border-bottom:1px solid rgba(200,154,69,.2); }
.dh-note:last-child { border-bottom:none; }
.dh-note .ico { width:44px; height:44px; border-radius:50%; background:linear-gradient(145deg,#fff,#efe5d7); border:1px solid rgba(200,154,69,.5); display:grid; place-items:center; color:var(--dh-gold-deep); flex:none; }
.dh-note .ico svg { width:22px; height:22px; }
.dh-note b { font-family:var(--dh-sans); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dh-gold-deep); }
.dh-note p { margin:.15rem 0 0; font-size:.9rem; color:var(--dh-ink-soft); }
.dh-tab-nav { display:flex; gap:1.6rem; border-bottom:1px solid rgba(200,154,69,.3); margin-bottom:1.3rem; }
.dh-tab-nav button { background:none; border:none; padding:.4rem 0 .9rem; font-family:var(--dh-sans); font-weight:700; font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dh-ink-soft); position:relative; }
.dh-tab-nav button.active { color:var(--dh-gold-deep); }
.dh-tab-nav button.active::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--dh-gold-gradient); }
.dh-tab-panel { display:none; color:var(--dh-ink-soft); }
.dh-tab-panel.active { display:block; }

/* ------------------------------------------------------------------ */
/* CART                                                                 */
/* ------------------------------------------------------------------ */
.dh-cart-layout { display:grid; grid-template-columns:1.6fr 1fr; gap:2rem; align-items:start; }
.dh-cart-item { display:grid; grid-template-columns:90px 1fr auto; gap:1.2rem; align-items:center; padding:1.2rem 0; border-bottom:1px solid rgba(200,154,69,.25); }
.dh-cart-item .thumb { width:90px; height:90px; border-radius:12px; overflow:hidden; background:linear-gradient(160deg,#fffdf8,#f3eadc); }
.dh-cart-item .thumb img { width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }
.dh-cart-item h4 { font-family:var(--dh-sans); font-size:1rem; font-weight:700; }
.dh-cart-item .meta { font-size:.8rem; color:var(--dh-ink-soft); }
.dh-cart-remove { background:none; border:none; color:var(--dh-taupe); font-size:.78rem; margin-top:.4rem; text-decoration:underline; padding:0; }
.dh-cart-right { display:flex; flex-direction:column; gap:.4rem; align-items:flex-end; }
.dh-summary { background:linear-gradient(160deg,#fff,#f7f1e8); border:1px solid rgba(200,154,69,.28); border-radius:var(--dh-radius); padding:1.8rem; position:sticky; top:90px; }
.dh-summary h3 { font-family:var(--dh-serif); color:var(--dh-gold-deep); margin-bottom:1.2rem; }
.dh-summary-row { display:flex; justify-content:space-between; padding:.6rem 0; font-size:.9rem; color:var(--dh-ink-soft); }
.dh-summary-total { display:flex; justify-content:space-between; padding-top:1rem; margin-top:.5rem; border-top:1px solid rgba(200,154,69,.3); font-family:var(--dh-serif); font-size:1.5rem; color:var(--dh-ink); }
.dh-coupon { display:flex; gap:.5rem; margin:1.2rem 0; }
.dh-coupon input { flex:1; border:1px solid rgba(200,154,69,.4); border-radius:10px; padding:.7rem .9rem; font-family:var(--dh-sans); outline:none; }
.dh-pay-note { display:flex; align-items:center; gap:.6rem; justify-content:center; margin-top:1.2rem; font-size:.78rem; color:var(--dh-ink-soft); }
.dh-pay-note .rz { font-weight:800; color:#072654; letter-spacing:-.02em; }
.dh-empty { text-align:center; padding:4rem 1rem; }
.dh-empty svg { width:70px; height:70px; color:var(--dh-gold); margin:0 auto 1.2rem; }
.dh-empty h2 { font-size:2rem; }
.dh-empty p { color:var(--dh-ink-soft); margin:.6rem 0 1.6rem; }

/* ------------------------------------------------------------------ */
/* ACCOUNT                                                              */
/* ------------------------------------------------------------------ */
.dh-account-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.dh-auth-card { background:linear-gradient(160deg,#fff,#f7f1e8); border:1px solid rgba(200,154,69,.28); border-radius:var(--dh-radius-lg); padding:2.4rem; box-shadow:var(--dh-shadow-soft); }
.dh-auth-card h2 { font-size:1.8rem; color:var(--dh-gold-deep); margin-bottom:1.4rem; }
.dh-field { margin-bottom:1.2rem; }
.dh-field label { font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; display:block; margin-bottom:.5rem; }
.dh-field label .req { color:var(--dh-gold-deep); }
.dh-input-wrap { position:relative; }
.dh-field input { width:100%; border:1px solid rgba(200,154,69,.4); border-radius:12px; padding:.85rem 1rem; font-family:var(--dh-sans); font-size:.92rem; outline:none; background:#fff; transition:border-color .15s ease; }
.dh-field input:focus { border-color:var(--dh-gold-deep); }
.dh-eye { position:absolute; right:.8rem; top:50%; transform:translateY(-50%); background:none; border:none; color:var(--dh-gold-deep); }
.dh-eye svg { width:20px; height:20px; }
.dh-remember { display:flex; align-items:center; gap:.5rem; font-size:.85rem; color:var(--dh-ink-soft); margin-bottom:1.2rem; }
.dh-forgot { color:var(--dh-gold-deep); font-size:.85rem; text-align:center; display:block; margin-top:1rem; }
.dh-privacy-note { font-size:.78rem; color:var(--dh-ink-soft); margin-bottom:1.2rem; }

/* ------------------------------------------------------------------ */
/* LEGAL / CONTENT PAGES                                                */
/* ------------------------------------------------------------------ */
.dh-content { max-width:820px; margin:0 auto; padding:3rem 0 4rem; }
.dh-content h2 { font-size:1.9rem; color:var(--dh-ink); margin:2.2rem 0 .8rem; }
.dh-content h2:first-child { margin-top:0; }
.dh-content p, .dh-content li { color:var(--dh-ink-soft); }
.dh-content ul { padding-left:1.2rem; }
.dh-content li { margin:.4rem 0; }
.dh-content strong { color:var(--dh-ink); }

/* ------------------------------------------------------------------ */
/* POLICY / TERMS poster pages (reference match)                        */
/* ------------------------------------------------------------------ */
.dh-policy-hero { text-align:center; padding:3rem 0 1.5rem; width:min(92%,900px); margin:0 auto; }
.dh-policy-hero .mono { width:auto; height:78px; margin:0 auto .6rem; display:block; filter:drop-shadow(0 2px 3px rgba(110,75,25,.22)); }
.dh-policy-hero h1 { font-size:clamp(2.4rem,5.5vw,4rem); color:var(--dh-gold-deep); letter-spacing:.01em; }
.dh-policy-hero .intro { color:var(--dh-ink-soft); max-width:60ch; margin:1rem auto 0; }
.dh-policy { display:grid; grid-template-columns:1.35fr 1fr; gap:2.5rem; align-items:start;
  width:min(92%,var(--dh-container)); margin:0 auto; padding:1rem 0 2rem; }
.dh-policy-list { display:flex; flex-direction:column; }
.dh-policy-item { display:grid; grid-template-columns:64px 1fr; gap:1.1rem; padding:1.4rem 0; border-top:1px solid rgba(200,154,69,.22); }
.dh-policy-item:first-child { border-top:none; }
.dh-policy-item .ico { width:56px; height:56px; border-radius:50%;
  background:radial-gradient(120% 120% at 30% 25%, #ffffff 0%, #f4ead9 55%, #e6d4ba 100%);
  border:1px solid rgba(200,154,69,.5); display:grid; place-items:center; color:var(--dh-gold-deep);
  box-shadow:inset 0 1.5px 1px rgba(255,255,255,1), 0 3px 8px rgba(100,70,30,.15); }
.dh-policy-item .ico svg { width:26px; height:26px; filter:drop-shadow(0 1px 0 rgba(255,255,255,.8)); }
.dh-policy-item h3 { font-family:var(--dh-serif); color:var(--dh-gold-deep); font-size:1.35rem; margin-bottom:.35rem; }
.dh-policy-item p { color:var(--dh-ink-soft); font-size:.95rem; }
.dh-policy-item p + p { margin-top:.6rem; }
.dh-policy-visual { position:sticky; top:100px; border-radius:var(--dh-radius-lg); overflow:hidden;
  box-shadow:var(--dh-shadow-card); aspect-ratio:3/4; background:linear-gradient(160deg,#fffdf8,#f3eadc); }
.dh-policy-visual img { width:100%; height:100%; object-fit:cover; object-position:center right; }
.dh-policy-callout { width:min(92%,var(--dh-container)); margin:0 auto 2rem; display:grid; grid-template-columns:64px 1fr; gap:1.1rem; align-items:center;
  background:linear-gradient(160deg,#fff,#f7f1e8); border:1px solid rgba(200,154,69,.35); border-radius:var(--dh-radius); padding:1.4rem 1.8rem; box-shadow:var(--dh-shadow-soft); }
.dh-policy-callout .ico { width:56px; height:56px; border-radius:50%; background:radial-gradient(120% 120% at 30% 25%, #fff, #efe5d7); border:1px solid rgba(200,154,69,.5); display:grid; place-items:center; color:var(--dh-gold-deep); }
.dh-policy-callout .ico svg { width:26px; height:26px; }
.dh-policy-callout p { color:var(--dh-ink); font-size:1.05rem; }
.dh-policy-callout strong { color:var(--dh-gold-deep); }
.dh-policy-trust { width:min(92%,var(--dh-container)); margin:0 auto 3rem; display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  border:1px solid rgba(200,154,69,.3); border-radius:var(--dh-radius); overflow:hidden; background:linear-gradient(160deg,#fff,#f3eadc); }
.dh-policy-trust .t { text-align:center; padding:1.4rem 1rem; }
.dh-policy-trust .t + .t { border-left:1px solid rgba(200,154,69,.25); }
.dh-policy-trust .ico { width:46px; height:46px; margin:0 auto .5rem; border-radius:50%; background:radial-gradient(120% 120% at 30% 25%, #fff, #efe5d7); border:1px solid rgba(200,154,69,.5); display:grid; place-items:center; color:var(--dh-gold-deep); }
.dh-policy-trust .ico svg { width:22px; height:22px; }
.dh-policy-trust b { display:block; font-family:var(--dh-sans); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; }
@media (max-width:860px){
  .dh-policy { grid-template-columns:1fr; }
  .dh-policy-visual { position:static; aspect-ratio:16/10; order:-1; }
  .dh-policy-trust { grid-template-columns:repeat(2,1fr); }
  .dh-policy-trust .t:nth-child(3){ border-left:none; }
}

/* FAQ accordion */
.dh-faq { max-width:820px; margin:0 auto; }
.dh-faq-item { background:linear-gradient(160deg,#fff,#f7f1e8); border:1px solid rgba(200,154,69,.28); border-radius:var(--dh-radius); margin-bottom:1rem; overflow:hidden; }
.dh-faq-q { width:100%; text-align:left; background:none; border:none; padding:1.3rem 1.5rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; font-family:var(--dh-serif); font-size:1.3rem; color:var(--dh-ink); }
.dh-faq-q .ico { color:var(--dh-gold-deep); transition:transform .2s ease; flex:none; }
.dh-faq-q .ico svg { width:22px; height:22px; }
.dh-faq-item.open .dh-faq-q .ico { transform:rotate(45deg); }
.dh-faq-a { max-height:0; overflow:hidden; transition:max-height .3s ease; }
.dh-faq-a p { margin:0; padding:0 1.5rem 1.4rem; color:var(--dh-ink-soft); }

/* ABOUT — story layout (reference match) */
.dh-story-hero { display:grid; grid-template-columns:1.1fr 1fr; gap:2.6rem; align-items:center; width:min(92%,var(--dh-container)); margin:0 auto; padding:3rem 0 2rem; }
.dh-story-hero h1 { font-size:clamp(2.4rem,4.6vw,3.6rem); }
.dh-story-hero p { color:var(--dh-ink-soft); margin:.9rem 0 0; }
.dh-story-hero .scene { border-radius:var(--dh-radius-lg); overflow:hidden; box-shadow:var(--dh-shadow-card); background:linear-gradient(160deg,#fffdf8,#f3eadc); }
.dh-story-hero .scene img { width:100%; display:block; }
.dh-story { width:min(92%,1120px); margin:0 auto; padding:1.5rem 0 3.5rem; }
.dh-story-row { display:grid; grid-template-columns:300px 96px 1fr; gap:1.6rem; align-items:center; padding:2.2rem 0; border-top:1px solid rgba(200,154,69,.28); }
.dh-story-row .img { border-radius:16px; overflow:hidden; aspect-ratio:4/3; box-shadow:var(--dh-shadow-soft); background:#171513; }
.dh-story-row .img img { width:100%; height:100%; object-fit:cover; }
.dh-story-row .ico { width:78px; height:78px; border-radius:50%; margin:0 auto;
  background:radial-gradient(120% 120% at 30% 25%, #ffffff 0%, #f4ead9 55%, #e6d4ba 100%);
  border:1px solid rgba(200,154,69,.55); display:grid; place-items:center; color:var(--dh-gold-deep);
  box-shadow:inset 0 1.5px 1px rgba(255,255,255,1), inset 0 -2px 3px rgba(150,110,45,.22), 0 4px 10px rgba(100,70,30,.16); }
.dh-story-row .ico svg { width:34px; height:34px; filter:drop-shadow(0 1px 0 rgba(255,255,255,.8)); }
.dh-story-row .body h3 { font-family:var(--dh-serif); color:var(--dh-gold-deep); font-size:1.55rem; margin-bottom:.5rem; }
.dh-story-row .body p { color:var(--dh-ink-soft); }
.dh-promise { display:grid; grid-template-columns:150px 1fr; gap:2rem; align-items:center;
  background:linear-gradient(160deg,#fff,#f7f1e8); border:1px solid rgba(200,154,69,.3);
  border-radius:var(--dh-radius-lg); padding:2rem 2.2rem; margin-top:2.4rem; box-shadow:var(--dh-shadow-soft); }
.dh-promise .mono { width:128px; height:128px; border-radius:50%; margin:0 auto;
  background:radial-gradient(120% 120% at 30% 25%, #fff, #efe5d7); border:1px solid rgba(200,154,69,.5);
  display:grid; place-items:center; box-shadow:inset 0 1.5px 1px rgba(255,255,255,1), 0 4px 12px rgba(100,70,30,.15); }
.dh-promise .mono img { width:76px; height:auto; }
.dh-promise h3 { font-family:var(--dh-serif); color:var(--dh-gold-deep); font-size:1.55rem; margin-bottom:.5rem; }
.dh-promise p { color:var(--dh-ink-soft); }
@media (max-width:820px){
  .dh-story-hero { grid-template-columns:1fr; }
  .dh-story-row { grid-template-columns:1fr; gap:1rem; text-align:center; }
  .dh-story-row .ico { margin:.4rem auto; }
  .dh-promise { grid-template-columns:1fr; text-align:center; }
}

/* about (legacy) */
.dh-about-block { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:center; margin-bottom:3rem; }
.dh-about-block.rev .txt { order:2; }
.dh-about-visual { border-radius:var(--dh-radius-lg); overflow:hidden; background:#141210; aspect-ratio:4/3; box-shadow:var(--dh-shadow-card); }
.dh-about-visual img { width:100%; height:100%; object-fit:contain; padding:1.5rem; }
.dh-about-block h2 { font-size:2rem; color:var(--dh-gold-deep); margin-bottom:.8rem; }
.dh-about-block p { color:var(--dh-ink-soft); }

/* ------------------------------------------------------------------ */
/* RESPONSIVE                                                           */
/* ------------------------------------------------------------------ */
@media (max-width:1100px){
  .dh-collection-grid { grid-template-columns:repeat(3,1fr); }
  .dh-longevity-grid { grid-template-columns:repeat(3,1fr); }
  .dh-shop-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px){
  .dh-nav-glass { display:none; }
  .dh-burger { display:grid; }
  .dh-hero-inner, .dh-split, .dh-product-layout, .dh-cart-layout, .dh-account-grid, .dh-about-block, .dh-notes-tabs { grid-template-columns:1fr; }
  .dh-about-block.rev .txt { order:0; }
  .dh-mood-grid { grid-template-columns:1fr; }
  .dh-review-grid { grid-template-columns:1fr; }
  .dh-shop-layout { grid-template-columns:1fr; }
  .dh-filter { position:static; }
  .dh-trust-inner { grid-template-columns:repeat(2,1fr); }
  .dh-trust-item:nth-child(3) { border-left:none; }
  .dh-footer-grid { grid-template-columns:1fr 1fr; }
  .dh-hero-visual, .dh-split-visual { aspect-ratio:4/3; }
}
@media (max-width:600px){
  .dh-collection-grid, .dh-longevity-grid, .dh-shop-grid { grid-template-columns:repeat(2,1fr); }
  .dh-stat-bar { grid-template-columns:repeat(2,1fr); }
  .dh-stat:nth-child(3) { border-left:none; }
  .dh-footer-grid { grid-template-columns:1fr; }
  .dh-trust-inner { grid-template-columns:1fr; }
  .dh-trust-item + .dh-trust-item { border-left:none; border-top:1px solid rgba(200,154,69,.25); }
  .dh-logo { font-size:1.4rem; }
  .dh-gallery { grid-template-columns:1fr; }
  .dh-thumbs { flex-direction:row; overflow-x:auto; }
  .dh-thumbs img { width:70px; flex:none; }
  .dh-assurance { grid-template-columns:1fr; }
  .dh-section { padding:3rem 0; }
}

/* reveal-on-scroll */
.reveal { opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{opacity:1;transform:none;} html{scroll-behavior:auto;} }

/* ================================================================== */
/* WordPress / WooCommerce integration                                 */
/* ================================================================== */
/* Primary menu inside the glass pill */
.dh-nav-glass ul.dh-nav-menu { display:flex; align-items:center; gap:.2rem; list-style:none; margin:0; padding:0; }
.dh-nav-glass ul.dh-nav-menu li { position:relative; }
.dh-nav-glass ul.dh-nav-menu li + li::before { content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:1px; height:16px; background:rgba(200,154,69,.4); }
.dh-nav-glass ul.dh-nav-menu a { position:relative; display:block; font-family:var(--dh-sans); font-weight:600; font-size:.82rem; letter-spacing:.13em; text-transform:uppercase; color:var(--dh-ink); padding:.5rem 1.15rem; border-radius:999px; transition:color .18s ease; }
.dh-nav-glass ul.dh-nav-menu a:hover, .dh-nav-glass .current-menu-item>a, .dh-nav-glass .current_page_item>a { color:var(--dh-gold-deep); }
.dh-nav-glass ul.dh-nav-menu a::after { content:""; position:absolute; left:1.15rem; right:1.15rem; bottom:.28rem; height:2px; background:var(--dh-gold-gradient); border-radius:2px; transform:scaleX(0); transform-origin:center; transition:transform .22s ease; }
.dh-nav-glass ul.dh-nav-menu a:hover::after, .dh-nav-glass .current-menu-item>a::after, .dh-nav-glass .current_page_item>a::after { transform:scaleX(1); }
.dh-logo .custom-logo { height:44px; width:auto; display:block; }

/* Mobile drawer menu */
.dh-drawer-menu { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.dh-drawer-menu a, .dh-drawer-panel>a { font-family:var(--dh-sans); font-weight:600; letter-spacing:.12em; text-transform:uppercase; font-size:.9rem; padding:.9rem .4rem; border-bottom:1px solid rgba(200,154,69,.2); display:block; }

/* Footer menu lists (when a WP menu is assigned) */
.dh-footer-grid ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.7rem; }
.dh-footer-grid ul a { font-size:.9rem; color:var(--dh-ink-soft); }
.dh-footer-grid ul a:hover { color:var(--dh-gold-deep); }

/* WooCommerce shop grid (reset ul.products) */
ul.products.dh-shop-grid { list-style:none; margin:0; padding:0; }
ul.products.dh-shop-grid::before, ul.products.dh-shop-grid::after { content:none; display:none; }
.dh-product-card.product { float:none; width:auto; margin:0; }
.woocommerce ul.products li.product .dh-cat-pill, .woocommerce ul.products li.product h3 { text-align:center; }

/* WooCommerce add-to-cart in cards -> glass button */
.dh-product-card .button, .dh-product-card .added_to_cart {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem; width:100%; margin-top:.3rem;
  font-family:var(--dh-sans); font-weight:600; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase;
  padding:.85rem 1.4rem; border-radius:999px; cursor:pointer; text-decoration:none;
  color:#3a2c14; background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,250,242,.6));
  border:1.5px solid rgba(212,169,92,.9);
  box-shadow:inset 0 2px 3px rgba(255,255,255,1), inset 0 -3px 6px rgba(200,154,69,.32), 0 0 0 1px rgba(255,241,206,.6), 0 8px 20px rgba(110,75,30,.16);
  transition:transform .18s ease, box-shadow .18s ease;
}
.dh-product-card .button:hover { transform:translateY(-2px); }

/* Gold primary WooCommerce buttons */
.woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce .single_add_to_cart_button, .woocommerce #place_order {
  color:#fff !important; text-shadow:0 1px 1px rgba(120,80,20,.35);
  background:linear-gradient(145deg,#e7c886 0%,#c89a45 50%,#a9741f 100%) !important;
  border:1px solid #e0bd76 !important; border-radius:999px !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 5px 14px rgba(110,75,25,.3) !important;
  text-transform:uppercase; letter-spacing:.08em; font-weight:700;
}
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
  border-radius:999px; text-transform:uppercase; letter-spacing:.06em; font-weight:600;
}
.woocommerce .price, .woocommerce-Price-amount { color:var(--dh-ink); }
.woocommerce span.onsale { background:var(--dh-gold-gradient); border-radius:999px; }

/* Search panel */
.dh-search-panel { position:fixed; inset:0; z-index:70; background:rgba(23,21,19,.35); opacity:0; visibility:hidden; transition:opacity .25s ease; display:grid; place-items:start center; padding-top:14vh; }
.dh-search-panel.open { opacity:1; visibility:visible; }
.dh-search-box { position:relative; width:min(92%,640px); background:var(--dh-pearl); border:1px solid rgba(200,154,69,.4); border-radius:16px; padding:1.2rem 1.4rem; box-shadow:0 20px 50px rgba(110,75,25,.25); }
.dh-search-box form { display:flex; gap:.5rem; }
.dh-search-box input[type=search], .dh-search-box input[type=text] { flex:1; border:1px solid rgba(200,154,69,.4); border-radius:12px; padding:.8rem 1rem; font-family:var(--dh-sans); outline:none; background:#fff; }
.dh-search-box button[type=submit] { border:none; border-radius:12px; padding:0 1.2rem; background:var(--dh-gold-gradient); color:#fff; font-weight:600; cursor:pointer; }
.dh-search-close { position:absolute; top:-14px; right:-14px; width:36px; height:36px; border-radius:50%; border:1px solid rgba(200,154,69,.5); background:#fff; color:var(--dh-gold-deep); display:grid; place-items:center; cursor:pointer; }
.dh-search-close svg { width:20px; height:20px; }

/* WooCommerce content wrapper (single, cart, checkout, account) */
.dh-woo-wrap { padding:1.6rem 0 3.5rem; }
.dh-woo-wrap .woocommerce-breadcrumb { font-size:.82rem; color:var(--dh-ink-soft); margin-bottom:1.2rem; }
.dh-woo-wrap .woocommerce-message, .dh-woo-wrap .woocommerce-info, .dh-woo-wrap .woocommerce-error { border-top-color:var(--dh-gold); border-radius:12px; }

/* Cart / checkout / account page header (title left, secure badge right) */
.dh-woo-head { padding:2.4rem 0 0; }
.dh-woo-head .dh-container { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; }
.dh-woo-head h1 { font-size:clamp(2rem,4.2vw,3rem); text-transform:uppercase; letter-spacing:.02em; }
.dh-woo-head .woocommerce-breadcrumb { font-size:.82rem; color:var(--dh-ink-soft); margin:.5rem 0 0; }
.dh-woo-head .secure { display:flex; align-items:center; gap:.7rem; }
.dh-woo-head .secure svg { width:34px; height:34px; color:var(--dh-gold); flex:none; }
.dh-woo-head .secure strong { display:block; font-size:.86rem; text-transform:uppercase; letter-spacing:.06em; }
.dh-woo-head .secure span { font-size:.78rem; color:var(--dh-ink-soft); }
@media (max-width:640px) { .dh-woo-head .secure { display:none; } }

/* Inline gold feature icons + custom-logo sizing (fixes) */
.dh-img-icon.dh-gold-ico { display:inline-flex; align-items:center; justify-content:center; color:var(--dh-gold-deep); }
.dh-img-icon.dh-gold-ico svg { width:100%; height:100%; display:block; }
.dh-trust-item .dh-img-icon.dh-gold-ico { width:38px; height:38px; }
.dh-feature .ico .dh-img-icon.dh-gold-ico { width:30px; height:30px; }
.dh-longevity-card .ico .dh-img-icon.dh-gold-ico { width:30px; height:30px; }

/* Header logo — cap size whether custom logo or wordmark */
.dh-header .dh-logo { display:inline-flex; align-items:center; max-height:56px; }
.dh-header .dh-logo img, .dh-header .custom-logo, .dh-header .custom-logo-link img { height:48px !important; width:auto !important; max-width:220px; display:block; }
@media (max-width:600px){ .dh-header .dh-logo img, .dh-header .custom-logo, .dh-header .custom-logo-link img { height:36px !important; } }

/* ================================================================== */
/* WooCommerce single product / cart / account — branded layout        */
/* ================================================================== */
.dh-product-page { padding:1.4rem 0 2rem; }
.dh-product-page .woocommerce-breadcrumb { font-size:.82rem; color:var(--dh-ink-soft); margin-bottom:1.2rem; }

/* Gallery: vertical thumbnails to the left of the main image */
.dh-gallery-col .woocommerce-product-gallery { position:relative; margin:0; }
.dh-gallery-col .woocommerce-product-gallery__wrapper { border-radius:var(--dh-radius-lg); overflow:hidden; box-shadow:var(--dh-shadow-card); background:linear-gradient(160deg,#fffdf8,#f3eadc); margin:0; }
.dh-gallery-col .woocommerce-product-gallery img { border-radius:var(--dh-radius-lg); }
.dh-gallery-col .woocommerce-product-gallery__trigger { position:absolute; top:1rem; right:1rem; z-index:5; background:#fff; border:1px solid rgba(200,154,69,.4); border-radius:50%; width:40px; height:40px; }
@media (min-width:768px){
  .dh-gallery-col .woocommerce-product-gallery { display:grid; grid-template-columns:82px 1fr; gap:1rem; align-items:start; }
  .dh-gallery-col .woocommerce-product-gallery__wrapper { grid-column:2; grid-row:1; }
  .dh-gallery-col .flex-control-thumbs { grid-column:1; grid-row:1; display:flex; flex-direction:column; gap:.7rem; margin:0; padding:0; list-style:none; }
  .dh-gallery-col .flex-control-thumbs li { width:100%; margin:0; }
  .dh-gallery-col .flex-control-thumbs img { border-radius:12px; border:1px solid rgba(200,154,69,.3); cursor:pointer; opacity:.72; transition:opacity .15s ease,border-color .15s ease; }
  .dh-gallery-col .flex-control-thumbs img.flex-active, .dh-gallery-col .flex-control-thumbs img:hover { opacity:1; border-color:var(--dh-gold-deep); }
}

/* Summary column */
.dh-product-info .product_title { font-family:var(--dh-serif); font-weight:600; font-size:clamp(2rem,4vw,3rem); margin:.3rem 0; line-height:1.05; }
.dh-product-info .subtitle { color:var(--dh-gold-deep); letter-spacing:.06em; }
.dh-product-info .woocommerce-product-rating { margin:.5rem 0; font-size:.85rem; }
.dh-product-info .star-rating span::before { color:var(--dh-gold); }
.dh-price-lg { font-family:var(--dh-serif); font-size:2rem; color:var(--dh-ink); margin:1rem 0 .2rem; }
.dh-price-lg .price { font-size:inherit; color:inherit; }
.dh-product-info form.cart { margin:1.2rem 0 0; }
.dh-product-info table.variations { width:100%; border:none; margin:0 0 1rem; }
.dh-product-info table.variations td, .dh-product-info table.variations th { border:none; padding:.4rem 0; }
.dh-product-info table.variations th.label { text-align:left; font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; }
.dh-product-info table.variations select { border:1px solid rgba(200,154,69,.45); border-radius:12px; padding:.7rem 1rem; font-family:var(--dh-sans); background:#fff; }
.dh-product-info .woocommerce-variation-add-to-cart, .dh-product-info form.cart:not(.variations_form) { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.dh-product-info .quantity input.qty { width:64px; text-align:center; padding:.65rem; border:1px solid rgba(200,154,69,.45); border-radius:12px; font-family:var(--dh-sans); }
.dh-product-info .single_add_to_cart_button { flex:1; min-width:200px; padding:1rem 2rem !important; }
.dh-product-info .woocommerce-variation-price .price { font-family:var(--dh-serif); font-size:1.5rem; }

/* Fragrance notes + tabs side by side */
.dh-tabs-box .woocommerce-tabs { margin:0; }
.dh-tabs-box .woocommerce-tabs ul.tabs { list-style:none; margin:0 0 1.2rem; padding:0; display:flex; gap:1.6rem; border-bottom:1px solid rgba(200,154,69,.3); }
.dh-tabs-box .woocommerce-tabs ul.tabs::before { display:none; }
.dh-tabs-box .woocommerce-tabs ul.tabs li { padding:0; margin:0; background:none; border:none; border-radius:0; }
.dh-tabs-box .woocommerce-tabs ul.tabs li::before, .dh-tabs-box .woocommerce-tabs ul.tabs li::after { display:none; }
.dh-tabs-box .woocommerce-tabs ul.tabs li a { padding:.2rem 0 .8rem; font-family:var(--dh-sans); font-weight:700; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dh-ink-soft); }
.dh-tabs-box .woocommerce-tabs ul.tabs li.active a { color:var(--dh-gold-deep); box-shadow:0 2px 0 var(--dh-gold-deep); }
.dh-tabs-box .woocommerce-tabs .panel, .dh-tabs-box .woocommerce-Tabs-panel { color:var(--dh-ink-soft); padding:0; }
.dh-tabs-box .woocommerce-tabs .panel h2 { display:none; }

/* Related products grid uses branded cards */
.dh-single .related.products, .dh-single .upsells.products { margin-top:3rem; }
.dh-single .related.products > h2 { font-family:var(--dh-serif); font-size:2rem; margin:0 0 1.4rem; }
.dh-single .related.products ul.products, .dh-single .upsells.products ul.products { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:1.4rem; list-style:none; margin:0; padding:0; }

/* Account single column (registration disabled) */
.dh-account-grid.single { grid-template-columns:1fr; max-width:540px; margin:0 auto; }

/* Cart / checkout branding */
.woocommerce table.shop_table { border-radius:var(--dh-radius); border-color:rgba(200,154,69,.3); overflow:hidden; }
.woocommerce-cart table.cart img { width:70px; border-radius:10px; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-checkout #order_review { background:linear-gradient(160deg,#fff,#f7f1e8); border:1px solid rgba(200,154,69,.3); border-radius:var(--dh-radius); padding:1.4rem; }
.woocommerce .cart_totals h2, .woocommerce-checkout #order_review_heading, .woocommerce-billing-fields h3, .woocommerce-additional-fields h3, #order_review_heading { font-family:var(--dh-serif); color:var(--dh-gold-deep); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .select2-container--default .select2-selection--single {
  border:1px solid rgba(200,154,69,.4) !important; border-radius:12px !important; padding:.7rem .9rem; font-family:var(--dh-sans);
}
.woocommerce #payment, .woocommerce-checkout #payment { background:transparent; }

/* ================================================================== */
/* Neutralise WooCommerce's float layout (woocommerce-layout.css).     */
/* It sets div.images{48%}, div.summary{48%} and li.product{30.75%}    */
/* with floats. Inside our CSS grids those percentages shrink each     */
/* child inside its own track, leaving squashed cards and dead space.  */
/* ================================================================== */
ul.products.dh-shop-grid li.product,
.woocommerce ul.products.dh-shop-grid li.product,
.woocommerce-page ul.products.dh-shop-grid li.product {
  width:100% !important; float:none !important; margin:0 !important; clear:none !important;
}
.dh-product-layout .dh-gallery-col div.images,
.dh-product-layout .woocommerce-product-gallery,
.woocommerce div.product .dh-gallery-col div.images,
.woocommerce div.product .dh-gallery-col .woocommerce-product-gallery {
  width:100% !important; float:none !important; margin:0 !important;
}
.dh-product-layout .summary,
.woocommerce div.product .dh-product-info.summary {
  width:100% !important; float:none !important; margin:0 !important; clear:none !important;
}
.dh-gallery-col .woocommerce-product-gallery__wrapper img { width:100%; height:auto; }

/* Related products — 5-up branded grid instead of WooCommerce floats */
.related.products > h2, .up-sells > h2 {
  font-family:var(--dh-serif); color:var(--dh-ink); font-size:1.6rem;
  text-transform:uppercase; letter-spacing:.04em; margin:3rem 0 1.4rem;
}
.related.products ul.products, .up-sells ul.products {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
  gap:1.4rem; list-style:none; margin:0; padding:0;
}
.related.products ul.products li.product, .up-sells ul.products li.product {
  width:100% !important; float:none !important; margin:0 !important; clear:none !important;
}

/* ================================================================== */
/* WooCommerce Blocks cart & checkout (the newer block-based pages)    */
/* ================================================================== */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-components-button:not(.is-link) {
  background:var(--dh-gold-gradient) !important; color:#fff !important;
  border:none !important; border-radius:999px !important;
  font-family:var(--dh-sans); font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; font-size:.82rem; padding:1rem 2rem !important;
  box-shadow:0 8px 22px rgba(185,130,42,.28);
}
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-components-button:not(.is-link):hover { filter:brightness(1.06); }
.wp-block-woocommerce-cart .wc-block-cart__sidebar .wc-block-components-sidebar,
.wc-block-checkout__sidebar .wc-block-components-totals-wrapper,
.wp-block-woocommerce-checkout-order-summary-block {
  background:linear-gradient(160deg,#fff,#f7f1e8);
  border:1px solid rgba(200,154,69,.3); border-radius:var(--dh-radius); padding:1.4rem;
}
.wc-block-components-totals-item__label { font-family:var(--dh-sans); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-product-price__value { font-family:var(--dh-serif); color:var(--dh-gold-deep); }
.wc-block-components-product-name { font-family:var(--dh-sans); font-weight:700; color:var(--dh-ink); }
.wc-block-components-text-input input, .wc-block-components-select__container {
  border-radius:12px !important; border-color:rgba(200,154,69,.4) !important;
}

/* Shop filter panel — clear link + tame widget styling inside the panel */
.dh-filter-clear {
  display:block; text-align:center; margin-top:1.2rem; padding:.75rem 1rem;
  border:1px solid var(--dh-gold); border-radius:999px;
  color:var(--dh-gold-deep); font-size:.78rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
}
.dh-filter-clear:hover { background:var(--dh-gold); color:#fff; }
.dh-filter .widget { padding:1.1rem 0 0; border-top:1px solid rgba(200,154,69,.2); margin-top:1.1rem; }
.dh-filter .widget:first-of-type { border-top:none; }
.dh-filter .widget-title, .dh-filter .wp-block-heading {
  font-family:var(--dh-sans); font-size:.78rem; letter-spacing:.12em;
  text-transform:uppercase; margin:0 0 .8rem; color:var(--dh-ink);
}
.dh-filter ul { list-style:none; margin:0; padding:0; }
.dh-filter li { font-size:.86rem; color:var(--dh-ink-soft); padding:.28rem 0; }
.dh-filter .price_slider_wrapper .ui-slider-range, .dh-filter .ui-slider-handle { background:var(--dh-gold) !important; }
.dh-filter .button, .dh-filter button[type="submit"] {
  background:var(--dh-gold-gradient); color:#fff; border:none;
  border-radius:999px; padding:.55rem 1.2rem; font-size:.76rem;
  font-weight:700; letter-spacing:.08em; text-transform:uppercase;
}

/* ================================================================== */
/* Filter panel — collapsible groups, checkboxes, price slider         */
/* ================================================================== */
.dh-acc-head {
  width:100%; display:flex; align-items:center; justify-content:space-between;
  background:none; border:none; padding:0; cursor:pointer;
  font-family:var(--dh-sans); font-size:.78rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:var(--dh-ink);
}
.dh-acc-head .dh-chev { width:16px; height:16px; color:var(--dh-gold-deep); transition:transform .2s ease; }
.dh-filter-group.open .dh-acc-head .dh-chev { transform:rotate(180deg); }
.dh-acc-body { display:none; padding-top:.9rem; }
.dh-filter-group.open .dh-acc-body { display:block; }

.dh-filter .dh-check {
  display:flex; align-items:center; gap:.65rem; padding:.34rem 0;
  font-size:.86rem; color:var(--dh-ink-soft); cursor:pointer; text-decoration:none;
}
.dh-filter .dh-check .box {
  width:17px; height:17px; border-radius:5px; flex:none;
  border:1.5px solid rgba(200,154,69,.6); background:#fff; position:relative;
}
.dh-filter .dh-check.on { color:var(--dh-gold-deep); font-weight:700; }
.dh-filter .dh-check.on .box { background:var(--dh-gold-gradient); border-color:var(--dh-gold-deep); }
.dh-filter .dh-check.on .box::after {
  content:""; position:absolute; left:5px; top:1.5px; width:4px; height:8px;
  border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg);
}
.dh-filter .dh-check:hover { color:var(--dh-gold-deep); }

/* Dual-handle price slider */
.dh-range { position:relative; height:26px; margin:.4rem 0 .2rem; }
.dh-range .track, .dh-range .fill {
  position:absolute; top:11px; height:4px; border-radius:999px;
}
.dh-range .track { left:0; right:0; background:rgba(200,154,69,.25); }
.dh-range .fill { background:var(--dh-gold-gradient); }
.dh-range input[type="range"] {
  position:absolute; left:0; right:0; top:0; width:100%; height:26px;
  margin:0; background:none; pointer-events:none; -webkit-appearance:none; appearance:none;
}
.dh-range input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance:none; pointer-events:auto; cursor:grab;
  width:18px; height:18px; border-radius:50%;
  background:var(--dh-gold-gradient); border:2px solid #fff;
  box-shadow:0 2px 6px rgba(110,75,30,.35);
}
.dh-range input[type="range"]::-moz-range-thumb {
  pointer-events:auto; cursor:grab; width:18px; height:18px; border-radius:50%;
  background:var(--dh-gold-deep); border:2px solid #fff;
  box-shadow:0 2px 6px rgba(110,75,30,.35);
}
.dh-range input[type="range"]::-moz-range-track { background:none; }
.dh-range-vals { display:flex; justify-content:space-between; font-size:.84rem; color:var(--dh-ink-soft); }
.dh-range-vals .woocommerce-Price-amount { color:var(--dh-gold-deep); font-weight:700; }
.dh-range-go {
  margin-top:.9rem; width:100%; padding:.55rem 1rem;
  background:none; border:1px solid rgba(200,154,69,.5); border-radius:999px;
  color:var(--dh-gold-deep); font-size:.74rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
}
.dh-range-go:hover { background:var(--dh-gold); color:#fff; border-color:var(--dh-gold); }

/* Load More */
.dh-loadmore {
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.9rem 2.6rem; border-radius:999px;
  background:linear-gradient(160deg,#fffdf8,#f4ebdc);
  border:1px solid rgba(200,154,69,.5); color:var(--dh-ink);
  font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  box-shadow:var(--dh-shadow-soft);
}
.dh-loadmore:hover { border-color:var(--dh-gold-deep); color:var(--dh-gold-deep); }
.dh-loadmore .dh-chev { width:16px; height:16px; }
.dh-pagination-wrap { margin-top:1rem; }
.dh-pagination-wrap .woocommerce-pagination ul { border:none; display:inline-flex; gap:.4rem; }
.dh-pagination-wrap .woocommerce-pagination li { border:none; }
.dh-pagination-wrap .woocommerce-pagination a, .dh-pagination-wrap .woocommerce-pagination span.current {
  border-radius:50%; min-width:34px; line-height:34px; padding:0;
}
.dh-pagination-wrap .woocommerce-pagination span.current { background:var(--dh-gold) !important; color:#fff !important; }

/* ================================================================== */
/* Single product — size pills, quantity stepper, Buy It Now           */
/* ================================================================== */
.dh-product-info select.dh-select-hidden {
  position:absolute; width:1px; height:1px; opacity:0; pointer-events:none;
}
.dh-swatches { display:flex; flex-wrap:wrap; gap:.7rem; }
.dh-swatch {
  min-width:96px; padding:.75rem 1.4rem; border-radius:12px;
  border:1px solid rgba(200,154,69,.55); background:#fff;
  font-family:var(--dh-sans); font-size:.9rem; font-weight:600; color:var(--dh-ink);
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.dh-swatch:hover { border-color:var(--dh-gold-deep); }
.dh-swatch.on {
  background:var(--dh-gold-gradient); color:#fff;
  border-color:var(--dh-gold-deep); box-shadow:0 6px 16px rgba(185,130,42,.28);
}

.dh-product-info form.cart .quantity {
  display:inline-flex; align-items:center; border:1px solid rgba(200,154,69,.45);
  border-radius:12px; overflow:hidden; background:#fff;
}
.dh-product-info form.cart .quantity input.qty {
  width:52px; border:none !important; border-radius:0 !important;
  text-align:center; font-weight:700; -moz-appearance:textfield;
}
.dh-product-info form.cart .quantity input.qty::-webkit-outer-spin-button,
.dh-product-info form.cart .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.dh-qty-btn {
  width:40px; height:44px; border:none; background:none;
  color:var(--dh-gold-deep); font-size:1.15rem; line-height:1;
}
.dh-qty-btn:hover { background:rgba(200,154,69,.12); }

.dh-product-info .single_add_to_cart_button { display:flex; align-items:center; justify-content:center; gap:.8rem; }
.dh-btn-cart { width:20px; height:20px; flex:none; }

.dh-buy-now {
  flex:1 0 100%; margin-top:.9rem; padding:1rem 2rem;
  background:transparent; border:1px solid var(--dh-gold-deep); border-radius:999px;
  color:var(--dh-gold-deep); font-family:var(--dh-sans); font-size:.84rem;
  font-weight:700; letter-spacing:.12em; text-transform:uppercase;
}
.dh-buy-now:hover { background:var(--dh-gold); border-color:var(--dh-gold); color:#fff; }

/* Fragrance notes — vertical rail with diamond markers */
.dh-notes-box .dh-note { position:relative; display:flex; gap:.9rem; align-items:center; padding:1rem 0 1rem 1.5rem; }
.dh-notes-box .dh-note + .dh-note { border-top:1px solid rgba(200,154,69,.22); }
.dh-notes-box .dh-note::before {
  content:""; position:absolute; left:0; top:50%; width:9px; height:9px;
  margin-top:-4.5px; background:var(--dh-gold); transform:rotate(45deg);
}
.dh-notes-box .dh-note::after {
  content:""; position:absolute; left:4px; top:0; bottom:0; width:1px;
  border-left:1px dotted rgba(200,154,69,.55); z-index:-1;
}
.dh-notes-box .dh-note .ico svg { width:34px; height:34px; color:var(--dh-gold-deep); }
.dh-notes-box .dh-note b { display:block; font-family:var(--dh-sans); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; }
.dh-notes-box .dh-note p { margin:.2rem 0 0; font-size:.86rem; color:var(--dh-ink-soft); }

/* Mini trust row inside the tab panel */
.dh-tab-trust { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.6rem; padding-top:1.4rem; border-top:1px solid rgba(200,154,69,.25); }
.dh-tab-trust .t { display:flex; gap:.7rem; align-items:center; font-size:.78rem; }
.dh-tab-trust .ico svg { width:30px; height:30px; color:var(--dh-gold-deep); }
.dh-tab-trust b { display:block; }
.dh-tab-trust span { color:var(--dh-ink-soft); }
@media (max-width:700px){ .dh-tab-trust { grid-template-columns:1fr; } }

/* ================================================================== */
/* My Account — one glass card, dotted divider, iconed column heads     */
/* ================================================================== */
.dh-account-grid {
  background:linear-gradient(160deg,rgba(255,253,248,.92),rgba(247,241,232,.92));
  border:1px solid rgba(200,154,69,.3); border-radius:var(--dh-radius-lg);
  box-shadow:var(--dh-shadow-card); padding:2.6rem; position:relative;
}
.dh-account-grid .dh-auth-card {
  background:none; border:none; box-shadow:none; padding:0 2.2rem; text-align:center;
}
.dh-account-grid:not(.single) .dh-auth-card + .dh-auth-card { border-left:1px dotted rgba(200,154,69,.6); }
.dh-account-grid:not(.single)::after {
  content:""; position:absolute; left:50%; top:50%; width:10px; height:10px;
  margin:-5px 0 0 -5px; background:var(--dh-gold); transform:rotate(45deg);
  box-shadow:0 0 0 6px rgba(255,253,248,.95);
}
.dh-auth-ico { display:block; color:var(--dh-gold-deep); margin-bottom:.5rem; }
.dh-auth-ico svg { width:34px; height:34px; margin:0 auto; }
.dh-account-grid .dh-auth-card h2 {
  font-family:var(--dh-serif); font-size:1.7rem; text-transform:uppercase; letter-spacing:.04em;
}
.dh-account-grid .dh-auth-card .dh-flourish { margin:.4rem 0 1.6rem; }
.dh-account-grid .dh-field { text-align:left; }
.dh-account-grid .dh-field label {
  display:block; font-size:.72rem; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; margin-bottom:.45rem;
}
.dh-account-grid .dh-field .req { color:var(--dh-gold-deep); font-size:.66rem; }
.dh-account-grid .dh-remember { justify-content:flex-start; }
@media (max-width:820px){
  .dh-account-grid { padding:1.8rem; }
  .dh-account-grid .dh-auth-card { padding:0; }
  .dh-account-grid:not(.single) .dh-auth-card + .dh-auth-card {
    border-left:none; border-top:1px dotted rgba(200,154,69,.6); margin-top:2rem; padding-top:2rem;
  }
  .dh-account-grid:not(.single)::after { display:none; }
}

/* Footer payment badges */
.dh-pay { margin-top:1.2rem; }
.dh-pay .lbl { font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dh-ink-soft); margin-bottom:.5rem; }
.dh-pay .row { display:flex; flex-wrap:wrap; gap:.5rem; }
.dh-pay .row span {
  padding:.34rem .7rem; border-radius:7px; background:#fff;
  border:1px solid rgba(200,154,69,.3); font-size:.68rem; font-weight:800;
  letter-spacing:.04em; color:var(--dh-ink);
}

/* ================================================================== */
/* About page                                                          */
/* ================================================================== */
.dh-about-hero { position:relative; overflow:hidden; background:linear-gradient(120deg,#fffdf8,#f6efe4); }
.dh-about-hero .dh-container { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:center; min-height:460px; }
.dh-about-hero .txt { padding:3.2rem 0; }
.dh-about-hero h1 { font-size:clamp(2.4rem,4.6vw,3.6rem); text-transform:uppercase; letter-spacing:.01em; }
.dh-about-hero p { color:var(--dh-ink-soft); max-width:52ch; margin:0 0 1rem; }
.dh-about-hero .banner-img { position:absolute; right:0; top:0; bottom:0; width:52%; }
.dh-about-hero .banner-img::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,#f8f2e8 0%,rgba(248,242,232,0) 34%); }
.dh-about-hero .banner-img img { width:100%; height:100%; object-fit:cover; }

.dh-about-block { display:grid; grid-template-columns:.85fr 1.15fr; gap:2.4rem; align-items:center; padding:2.2rem 0; }
.dh-about-block + .dh-about-block { border-top:1px solid rgba(200,154,69,.22); }
.dh-about-block .shot { position:relative; }
.dh-about-block .shot img { width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:var(--dh-radius); box-shadow:var(--dh-shadow-card); }
.dh-about-block .medallion {
  position:absolute; right:-42px; top:50%; margin-top:-42px;
  width:84px; height:84px; border-radius:50%; display:grid; place-items:center;
  background:radial-gradient(120% 120% at 30% 25%,#fff 0%,#f7f0e4 60%,#efe3d0 100%);
  border:1px solid rgba(200,154,69,.45); box-shadow:0 10px 26px rgba(110,75,30,.18); color:var(--dh-gold-deep);
}
.dh-about-block .medallion svg { width:40px; height:40px; }
.dh-about-block h2 { font-family:var(--dh-serif); color:var(--dh-gold-deep); font-size:1.5rem; text-transform:uppercase; letter-spacing:.03em; }
.dh-about-block .copy .dh-flourish { justify-content:flex-start; margin:.5rem 0 1rem; }
.dh-about-block p { color:var(--dh-ink-soft); margin:0; }

.dh-promise {
  display:grid; grid-template-columns:150px 1fr .8fr; gap:2rem; align-items:center;
  margin-top:2.4rem; padding:2rem; border:1px solid rgba(200,154,69,.3);
  border-radius:var(--dh-radius-lg); background:linear-gradient(160deg,#fffdf8,#f7f1e8);
}
.dh-promise .mono {
  width:130px; height:130px; border-radius:50%; display:grid; place-items:center;
  background:radial-gradient(120% 120% at 30% 25%,#fff,#f3ead9);
  border:1px solid rgba(200,154,69,.4);
}
.dh-promise .mono img { width:70px; }
.dh-promise h2 { font-family:var(--dh-serif); color:var(--dh-gold-deep); font-size:1.3rem; text-transform:uppercase; }
.dh-promise .copy .dh-flourish { justify-content:flex-start; margin:.4rem 0 .8rem; }
.dh-promise p { color:var(--dh-ink-soft); font-size:.92rem; margin:0; }
.dh-promise .shopfront img { border-radius:var(--dh-radius); opacity:.85; }

@media (max-width:900px){
  .dh-about-hero .dh-container { grid-template-columns:1fr; min-height:0; }
  .dh-about-hero .txt { padding:2rem 0 14rem; }
  .dh-about-hero .banner-img { width:100%; top:auto; height:230px; }
  .dh-about-hero .banner-img::before { background:linear-gradient(180deg,#f8f2e8,transparent 45%); }
  .dh-about-block { grid-template-columns:1fr; gap:1.2rem; }
  .dh-about-block .medallion { right:1rem; top:auto; bottom:-30px; margin:0; width:64px; height:64px; }
  .dh-about-block .medallion svg { width:30px; height:30px; }
  .dh-promise { grid-template-columns:1fr; text-align:center; }
  .dh-promise .mono { margin:0 auto; }
  .dh-promise .copy .dh-flourish { justify-content:center; }
}

/* ================================================================== */
/* FAQ page                                                            */
/* ================================================================== */
.dh-faq-page { background-size:cover; background-position:center; padding:3rem 0 4rem; }
.dh-faq-head { text-align:center; margin-bottom:2.2rem; }
.dh-faq-head h1 { font-family:var(--dh-serif); color:var(--dh-gold-deep); font-size:clamp(2.6rem,5vw,3.6rem); }
.dh-faq-head .sub { font-family:var(--dh-serif); font-size:1.5rem; letter-spacing:.06em; text-transform:uppercase; margin:.2rem 0 0; }
.dh-faq-layout { display:grid; grid-template-columns:1.25fr .75fr; gap:2rem; align-items:start; }
.dh-faq { max-width:none; }
.dh-faq-q { gap:1rem; }
.dh-faq-q .medallion {
  width:56px; height:56px; flex:none; border-radius:50%; display:grid; place-items:center;
  background:radial-gradient(120% 120% at 30% 25%,#fff,#f4ebdb);
  border:1px solid rgba(200,154,69,.4); color:var(--dh-gold-deep);
}
.dh-faq-q .medallion svg { width:28px; height:28px; }
.dh-faq-q .q { flex:1; text-align:left; }
.dh-faq-side { position:sticky; top:100px; display:grid; gap:1.2rem; }
.dh-faq-side .shot img { width:100%; border-radius:var(--dh-radius-lg); box-shadow:var(--dh-shadow-card); }
.dh-faq-trust {
  display:grid; grid-template-columns:repeat(4,1fr); gap:.6rem; text-align:center;
  padding:1.2rem 1rem; border:1px solid rgba(200,154,69,.3);
  border-radius:var(--dh-radius); background:linear-gradient(160deg,#fffdf8,#f7f1e8);
}
.dh-faq-trust .t { display:flex; flex-direction:column; align-items:center; gap:.35rem; }
.dh-faq-trust .t + .t { border-left:1px solid rgba(200,154,69,.25); }
.dh-faq-trust .ico svg, .dh-faq-trust .dh-img-icon { width:30px; height:30px; color:var(--dh-gold-deep); }
.dh-faq-trust b { font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; }
.dh-faq-trust .s { font-size:.68rem; color:var(--dh-ink-soft); line-height:1.35; }
.dh-faq-sign { text-align:center; margin-top:2.6rem; }
.dh-faq-sign img { width:170px; margin:0 auto; }
@media (max-width:900px){
  .dh-faq-layout { grid-template-columns:1fr; }
  .dh-faq-side { position:static; }
  .dh-faq-trust { grid-template-columns:repeat(2,1fr); }
  .dh-faq-trust .t:nth-child(3) { border-left:none; }
}

/* ================================================================== */
/* Footer refinements to match the reference                           */
/* ================================================================== */
.dh-footer-brand { display:block; }
.dh-footer-word { width:190px; margin-top:.5rem; }
.dh-footer-grid h4 + .dh-flourish { justify-content:flex-start; margin:.35rem 0 1rem; }
.dh-footer-grid h4 + .dh-flourish::before { display:none; }
.dh-footer-grid ul li + li { border-top:1px solid rgba(200,154,69,.22); }
.dh-footer-grid ul li a { display:block; padding:.6rem 0; }
.dh-footer-brand + .dh-flourish { justify-content:flex-start; margin:.6rem 0 .8rem; }
.dh-footer-brand + .dh-flourish::before { display:none; }
.dh-social a {
  width:44px; height:44px; border-radius:50%; display:grid; place-items:center;
  border:1px solid rgba(200,154,69,.5); color:var(--dh-gold-deep);
}
.dh-social a:hover { background:var(--dh-gold); color:#fff; border-color:var(--dh-gold); }
.dh-social a svg { width:20px; height:20px; }
.dh-footer-bottom { text-align:center; }

/* ================================================================== */
/* Slimmer, glassier header                                            */
/* ================================================================== */
.dh-header {
  background:linear-gradient(180deg, rgba(255,253,248,.62), rgba(247,241,232,.42));
  backdrop-filter:blur(18px) saturate(150%);
  -webkit-backdrop-filter:blur(18px) saturate(150%);
  border-bottom:1px solid rgba(200,154,69,.16);
}
.dh-header-inner { padding:.42rem 0; gap:1rem; }
.dh-logo-img { height:34px; }
.dh-header .dh-logo { max-height:40px; }
.dh-header .dh-logo img,
.dh-header .custom-logo,
.dh-header .custom-logo-link img { height:34px !important; }
.dh-nav-glass { padding:.22rem .5rem; }
.dh-nav-glass ul.dh-nav-menu a { font-size:.76rem; padding:.42rem .95rem; }
.dh-header-actions { gap:.7rem; }
.dh-header-actions .dh-icon-btn { width:38px; height:38px; }
.dh-header-actions .dh-icon-btn svg { width:19px; height:19px; }
@media (max-width:600px){
  .dh-header-inner { padding:.35rem 0; }
  .dh-logo-img { height:28px; }
  .dh-header .dh-logo img,
  .dh-header .custom-logo,
  .dh-header .custom-logo-link img { height:28px !important; }
}

/* ================================================================== */
/* Tighter footer                                                      */
/* ================================================================== */
.dh-footer { padding:2rem 0 1rem; }
.dh-footer-grid { gap:1.6rem; }
.dh-footer h4 { font-size:1.05rem; margin-bottom:.4rem; }
.dh-footer .brand p { font-size:.84rem; margin:.5rem 0 .8rem; }
.dh-footer ul { gap:0; }
.dh-footer-grid ul li a { padding:.42rem 0; font-size:.85rem; }
.dh-footer-word { width:150px; margin-top:.35rem; }
.dh-footer-mono { max-width:64px; }
.dh-social a { width:36px; height:36px; }
.dh-social a svg, .dh-social svg { width:17px; height:17px; }
.dh-contact-item { margin-bottom:.6rem; font-size:.84rem; }
.dh-footer-bottom { margin-top:1rem; padding-top:.9rem; font-size:.78rem; }
.dh-footer .dh-flourish { margin:.3rem 0 .7rem; }
.dh-footer-features { padding-bottom:.4rem; }

/* ================================================================== */
/* Cart — classic [woocommerce_cart] styled to the reference           */
/* ================================================================== */
.woocommerce-cart .dh-woo-wrap .woocommerce {
  display:grid; grid-template-columns:1.55fr .85fr; gap:1.6rem; align-items:start;
}
.woocommerce-cart .dh-woo-wrap form.woocommerce-cart-form,
.woocommerce-cart .dh-woo-wrap .cart-collaterals {
  background:linear-gradient(160deg,#fffdf8,#f7f1e8);
  border:1px solid rgba(200,154,69,.3); border-radius:var(--dh-radius-lg);
  padding:1.6rem; box-shadow:var(--dh-shadow-soft); margin:0;
}
.woocommerce-cart .dh-woo-wrap .cart-collaterals,
.woocommerce-cart .dh-woo-wrap .cart-collaterals .cart_totals { width:100%; float:none; }
.woocommerce-cart .dh-woo-wrap .cart-collaterals .cart_totals {
  background:none; border:none; padding:0;
}
.woocommerce-cart table.shop_table.cart { border:none; background:none; margin:0; }
.woocommerce-cart table.shop_table.cart thead th {
  background:none; border:none; border-bottom:1px solid rgba(200,154,69,.3);
  font-family:var(--dh-sans); font-size:.72rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:var(--dh-ink); padding:0 0 .9rem;
}
.woocommerce-cart table.shop_table.cart td {
  border:none; border-bottom:1px solid rgba(200,154,69,.2); padding:1.1rem .6rem; vertical-align:middle;
}
.woocommerce-cart table.shop_table.cart td.product-thumbnail img {
  width:78px; height:78px; object-fit:cover; border-radius:12px;
  border:1px solid rgba(200,154,69,.25);
}
.woocommerce-cart td.product-name a { font-family:var(--dh-sans); font-weight:700; color:var(--dh-ink); }
.woocommerce-cart td.product-name .variation { font-size:.8rem; color:var(--dh-ink-soft); margin:.2rem 0 0; }
.woocommerce-cart td.product-price, .woocommerce-cart td.product-subtotal { color:var(--dh-gold-deep); font-weight:700; }
.woocommerce-cart td.product-remove a.remove {
  color:var(--dh-taupe) !important; font-size:1.3rem; background:none !important;
}
.woocommerce-cart td.product-remove a.remove:hover { color:#b3261e !important; }
.woocommerce-cart .coupon { display:flex; gap:.6rem; align-items:center; }
.woocommerce-cart .coupon #coupon_code {
  width:190px; padding:.7rem .9rem; border:1px solid rgba(200,154,69,.4); border-radius:999px;
}
.woocommerce-cart .actions .button, .woocommerce-cart .coupon .button {
  background:none !important; border:1px solid rgba(200,154,69,.55) !important;
  color:var(--dh-gold-deep) !important; border-radius:999px !important;
  padding:.7rem 1.5rem !important; font-size:.74rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
}
.woocommerce-cart .actions .button:hover, .woocommerce-cart .coupon .button:hover {
  background:var(--dh-gold) !important; color:#fff !important; border-color:var(--dh-gold) !important;
}
.woocommerce-cart .cart_totals h2 { font-size:1.1rem; letter-spacing:.08em; text-transform:uppercase; margin:0 0 1rem; }
.woocommerce-cart .cart_totals table { border:none; }
.woocommerce-cart .cart_totals table th, .woocommerce-cart .cart_totals table td {
  border:none; border-bottom:1px solid rgba(200,154,69,.2); padding:.7rem 0; font-size:.9rem;
}
.woocommerce-cart .cart_totals .order-total th, .woocommerce-cart .cart_totals .order-total td { border-bottom:none; }
.woocommerce-cart .cart_totals .order-total .woocommerce-Price-amount {
  font-family:var(--dh-serif); font-size:1.5rem; color:var(--dh-gold-deep);
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  display:block; width:100%; text-align:center;
  background:var(--dh-gold-gradient) !important; color:#fff !important;
  border-radius:999px !important; padding:1rem 1.5rem !important;
  font-size:.82rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  box-shadow:0 8px 22px rgba(185,130,42,.3);
}
@media (max-width:900px){
  .woocommerce-cart .dh-woo-wrap .woocommerce { grid-template-columns:1fr; }
  .woocommerce-cart table.shop_table.cart td.product-thumbnail img { width:60px; height:60px; }
}

/* ================================================================== */
/* Header — deeper transparency (true frosted glass)                   */
/* ================================================================== */
.dh-header {
  background:linear-gradient(180deg, rgba(255,253,248,.34), rgba(247,241,232,.18));
  backdrop-filter:blur(22px) saturate(165%);
  -webkit-backdrop-filter:blur(22px) saturate(165%);
  border-bottom:1px solid rgba(200,154,69,.12);
  box-shadow:0 2px 18px rgba(110,75,30,.05);
}

/* Brand wordmark (replaces the DH monogram everywhere) */
.dh-footer-word { width:200px; margin:0; }
.dh-policy-hero .mono, .dh-policy-hero img.mono { width:230px; height:auto; }
.dh-promise .mono {
  width:auto; height:auto; border:none; background:none; border-radius:0;
}
.dh-promise .mono img { width:150px; }
.dh-faq-sign img { width:230px; }

/* ================================================================== */
/* Contact page                                                        */
/* ================================================================== */
.dh-contact-page { background-size:cover; background-position:center; padding:3rem 0 4rem; }
.dh-contact-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:1.6rem; align-items:start; }
.dh-contact-card, .dh-contact-body {
  background:linear-gradient(160deg,rgba(255,253,248,.94),rgba(247,241,232,.94));
  border:1px solid rgba(200,154,69,.3); border-radius:var(--dh-radius-lg);
  padding:1.8rem; box-shadow:var(--dh-shadow-soft);
}
.dh-contact-card .row { display:flex; gap:.9rem; align-items:flex-start; padding:1rem 0; }
.dh-contact-card .row + .row { border-top:1px solid rgba(200,154,69,.22); }
.dh-contact-card .ico {
  width:46px; height:46px; flex:none; border-radius:50%; display:grid; place-items:center;
  background:radial-gradient(120% 120% at 30% 25%,#fff,#f4ebdb);
  border:1px solid rgba(200,154,69,.4); color:var(--dh-gold-deep);
}
.dh-contact-card .ico svg { width:20px; height:20px; }
.dh-contact-card b {
  display:block; font-size:.74rem; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--dh-gold-deep); margin-bottom:.25rem;
}
.dh-contact-card span { color:var(--dh-ink-soft); font-size:.9rem; line-height:1.6; }
.dh-contact-card a { color:inherit; }
.dh-contact-card a:hover { color:var(--dh-gold-deep); }
.dh-contact-card .hours { margin-top:1.1rem; padding-top:1.1rem; border-top:1px solid rgba(200,154,69,.22); }
.dh-contact-hint { color:var(--dh-ink-soft); }
.dh-contact-body input[type="text"], .dh-contact-body input[type="email"],
.dh-contact-body input[type="tel"], .dh-contact-body textarea, .dh-contact-body select {
  width:100%; padding:.8rem 1rem; border:1px solid rgba(200,154,69,.4);
  border-radius:12px; font-family:var(--dh-sans); background:#fff; margin-bottom:1rem;
}
.dh-contact-body input[type="submit"], .dh-contact-body button[type="submit"] {
  background:var(--dh-gold-gradient); color:#fff; border:none; border-radius:999px;
  padding:.9rem 2.2rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; font-size:.8rem;
}
@media (max-width:900px){ .dh-contact-layout { grid-template-columns:1fr; } }

/* ================================================================== */
/* My Account — logged-in dashboard                                    */
/* ================================================================== */
.woocommerce-account .woocommerce-MyAccount-navigation {
  width:100%; float:none; margin-bottom:1.4rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.5rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display:block; padding:.6rem 1.3rem; border-radius:999px;
  border:1px solid rgba(200,154,69,.45); color:var(--dh-ink);
  font-size:.76rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
  background:linear-gradient(160deg,#fffdf8,#f5ece0);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
  background:var(--dh-gold-gradient); color:#fff; border-color:var(--dh-gold-deep);
}
.woocommerce-account .woocommerce-MyAccount-content {
  width:100%; float:none;
  background:linear-gradient(160deg,#fffdf8,#f7f1e8);
  border:1px solid rgba(200,154,69,.3); border-radius:var(--dh-radius-lg);
  padding:1.8rem; box-shadow:var(--dh-shadow-soft);
}
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
  font-family:var(--dh-serif); color:var(--dh-gold-deep);
}
.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
  border-radius:var(--dh-radius); border-color:rgba(200,154,69,.3);
}
.woocommerce-account .woocommerce-MyAccount-content .button,
.woocommerce-account .woocommerce-MyAccount-content button[type="submit"] {
  background:var(--dh-gold-gradient) !important; color:#fff !important;
  border:none !important; border-radius:999px !important;
  padding:.8rem 1.8rem !important; font-size:.78rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
}

/* ================================================================== */
/* Exact gold artwork icons (raster-in-SVG, served as <img>)           */
/* ================================================================== */
.dh-img-icon.dh-gold-ico img { width:100%; height:100%; object-fit:contain; display:block; }
.dh-img-icon.dh-gold-ico {
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.7)) drop-shadow(0 2px 3px rgba(100,70,25,.16));
}
/* Slightly larger than the old line icons — the artwork has its own padding */
.dh-trust-item .dh-img-icon.dh-gold-ico { width:52px; height:52px; }
.dh-feature .ico .dh-img-icon.dh-gold-ico { width:44px; height:44px; }
.dh-longevity-card .ico .dh-img-icon.dh-gold-ico { width:44px; height:44px; }
.dh-faq-trust .dh-img-icon.dh-gold-ico { width:40px; height:40px; }
@media (max-width:700px){
  .dh-trust-item .dh-img-icon.dh-gold-ico { width:42px; height:42px; }
  .dh-feature .ico .dh-img-icon.dh-gold-ico { width:38px; height:38px; }
}

/* Transparent 3D wordmark — no plate behind it anywhere it appears */
.dh-logo-img, .dh-footer-word, .dh-policy-hero img.mono,
.dh-promise .mono img, .dh-faq-sign img { background:transparent; }
.dh-header .dh-logo { background:none; box-shadow:none; }

/* ================================================================== */
/* Glassmorphism — nav pill, icon buttons, CTAs (thin bold gold ring)  */
/* ================================================================== */
.dh-nav-glass {
  background:linear-gradient(180deg, rgba(255,255,255,.42) 0%, rgba(255,250,242,.20) 100%);
  backdrop-filter:blur(24px) saturate(180%);
  -webkit-backdrop-filter:blur(24px) saturate(180%);
  border:1.5px solid rgba(200,154,69,.85);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.95),
    inset 0 -2px 5px rgba(200,154,69,.22),
    0 0 0 1px rgba(255,241,206,.45),
    0 6px 20px rgba(110,75,30,.14);
}
.dh-header-actions .dh-icon-btn {
  background:linear-gradient(180deg, rgba(255,255,255,.5), rgba(255,250,242,.22));
  backdrop-filter:blur(18px) saturate(170%);
  -webkit-backdrop-filter:blur(18px) saturate(170%);
  border:1.5px solid rgba(200,154,69,.8);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.9),
    inset 0 -2px 4px rgba(200,154,69,.2),
    0 3px 10px rgba(110,75,30,.12);
}
.dh-header-actions .dh-icon-btn:hover {
  border-color:var(--dh-gold-deep);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.95),
    0 0 0 1px rgba(255,241,206,.6),
    0 6px 16px rgba(110,75,30,.18);
}

/* Glass CTAs: outlined buttons get the same frosted fill + bold ring */
.dh-btn-ghost, .dh-loadmore, .dh-buy-now, .dh-range-go,
.dh-filter-clear, .dh-swatch, .woocommerce-cart .actions .button,
.woocommerce-cart .coupon .button {
  background:linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,250,242,.28)) !important;
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  border:1.5px solid rgba(200,154,69,.8) !important;
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.9),
    0 3px 12px rgba(110,75,30,.1);
}
.dh-swatch.on {
  background:var(--dh-gold-gradient) !important; color:#fff;
  border-color:var(--dh-gold-deep) !important;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.35), 0 6px 16px rgba(185,130,42,.3);
}
/* Filled gold CTAs keep the ring so they read as the same family */
.dh-btn-gold, .woocommerce .single_add_to_cart_button, .woocommerce #place_order,
.wc-block-cart__submit-button, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  border:1.5px solid rgba(185,130,42,.9) !important;
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.4),
    inset 0 -2px 5px rgba(120,80,20,.22),
    0 8px 22px rgba(185,130,42,.28) !important;
}

/* ================================================================== */
/* Product gallery — thumbnail strip arrows                            */
/* ================================================================== */
.dh-thumb-nav { display:flex; flex-direction:column; align-items:center; gap:.5rem; }
.dh-thumb-nav .flex-control-thumbs { max-height:430px; overflow-y:auto; scrollbar-width:none; }
.dh-thumb-nav .flex-control-thumbs::-webkit-scrollbar { display:none; }
.dh-thumb-arrow {
  width:38px; height:38px; flex:none; border-radius:50%;
  display:grid; place-items:center; color:var(--dh-gold-deep);
  background:linear-gradient(180deg, rgba(255,255,255,.75), rgba(255,250,242,.4));
  backdrop-filter:blur(12px);
  border:1.5px solid rgba(200,154,69,.7);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.9), 0 3px 10px rgba(110,75,30,.12);
}
.dh-thumb-arrow:hover { background:var(--dh-gold); color:#fff; border-color:var(--dh-gold); }
.dh-thumb-arrow svg { width:17px; height:17px; }
.dh-thumb-arrow.up svg { transform:rotate(180deg); }

/* "You may also like" — gold rule trailing the heading */
.related.products > h2, .up-sells > h2 {
  display:flex; align-items:center; gap:1.2rem; white-space:nowrap;
}
.related.products > h2::after, .up-sells > h2::after {
  content:""; flex:1; height:1px;
  background:linear-gradient(90deg, var(--dh-gold), rgba(200,154,69,0));
}

/* ================================================================== */
/* Account — icons inside fields, gold checkbox                        */
/* ================================================================== */
.dh-field .dh-input-wrap, .dh-field { position:relative; }
.dh-account-grid .dh-field input.input-text {
  width:100%; padding:.9rem 2.6rem .9rem 2.8rem;
  border:1px solid rgba(200,154,69,.4); border-radius:12px;
  background:rgba(255,255,255,.75); backdrop-filter:blur(8px);
  font-family:var(--dh-sans);
}
.dh-account-grid .dh-field input.input-text:focus {
  outline:none; border-color:var(--dh-gold-deep);
  box-shadow:0 0 0 3px rgba(200,154,69,.16);
}
.dh-field .field-ico {
  position:absolute; left:.95rem; bottom:.95rem; width:19px; height:19px;
  color:var(--dh-gold-deep); pointer-events:none;
}
.dh-field .dh-eye { position:absolute; right:.7rem; bottom:.7rem; background:none; border:none; color:var(--dh-taupe); }
.dh-field .dh-eye svg { width:19px; height:19px; }
.dh-remember { display:flex; align-items:center; gap:.6rem; margin:1rem 0; font-size:.76rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.dh-remember input[type="checkbox"] { position:absolute; opacity:0; width:0; height:0; }
.dh-remember .box {
  width:22px; height:22px; border-radius:6px; flex:none; position:relative;
  border:1.5px solid rgba(200,154,69,.7); background:#fff;
}
.dh-remember input:checked + .box { background:var(--dh-gold-gradient); border-color:var(--dh-gold-deep); }
.dh-remember input:checked + .box::after {
  content:""; position:absolute; left:7px; top:2.5px; width:5px; height:11px;
  border:solid #fff; border-width:0 2.5px 2.5px 0; transform:rotate(45deg);
}

/* ================================================================== */
/* Contact form                                                        */
/* ================================================================== */
.dh-contact-body h2 { font-family:var(--dh-serif); color:var(--dh-gold-deep); font-size:1.4rem; margin:0 0 1.2rem; }
.dh-contact-form .hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.dh-contact-form .two { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.dh-contact-form label { display:block; margin-bottom:1rem; }
.dh-contact-form label > span {
  display:block; font-size:.72rem; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; margin-bottom:.4rem; color:var(--dh-ink);
}
.dh-contact-form label > span i { color:var(--dh-gold-deep); font-style:normal; }
.dh-contact-form input, .dh-contact-form textarea {
  width:100%; padding:.85rem 1rem; border:1px solid rgba(200,154,69,.4);
  border-radius:12px; font-family:var(--dh-sans); font-size:.92rem;
  background:rgba(255,255,255,.8); backdrop-filter:blur(8px);
}
.dh-contact-form input:focus, .dh-contact-form textarea:focus {
  outline:none; border-color:var(--dh-gold-deep); box-shadow:0 0 0 3px rgba(200,154,69,.16);
}
.dh-contact-form textarea { resize:vertical; }
.dh-form-note { padding:.9rem 1.1rem; border-radius:12px; margin-bottom:1.2rem; font-size:.9rem; }
.dh-form-note.ok  { background:rgba(122,160,90,.12); border:1px solid rgba(122,160,90,.5); color:#3f5c2a; }
.dh-form-note.err { background:rgba(179,38,30,.08); border:1px solid rgba(179,38,30,.4); color:#8c2018; }
@media (max-width:640px){ .dh-contact-form .two { grid-template-columns:1fr; } }

/* ================================================================== */
/* Product page corrections — measured against the reference design    */
/* ================================================================== */

/* 1. Gallery: restore the two-column grid after the JS wraps the thumb
      strip in .dh-thumb-nav (the wrapper became the grid child, so the
      placement rules had to move onto it). */
@media (min-width:768px){
  .dh-gallery-col .woocommerce-product-gallery { grid-template-columns:92px 1fr; gap:1.1rem; }
  .dh-gallery-col .woocommerce-product-gallery .dh-thumb-nav { grid-column:1; grid-row:1; width:92px; }
  .dh-gallery-col .woocommerce-product-gallery__wrapper { grid-column:2; grid-row:1; }
}
.dh-thumb-nav .flex-control-thumbs {
  width:100%; display:flex; flex-direction:column; gap:.6rem;
  margin:0; padding:0; list-style:none;
}
.dh-thumb-nav .flex-control-thumbs li { width:100% !important; margin:0 !important; float:none !important; }
.dh-thumb-nav .flex-control-thumbs img {
  width:100% !important; height:auto !important; aspect-ratio:1;
  object-fit:cover; border-radius:12px;
  border:1px solid rgba(200,154,69,.35); opacity:.75; cursor:pointer;
}
.dh-thumb-nav .flex-control-thumbs img.flex-active,
.dh-thumb-nav .flex-control-thumbs img:hover { opacity:1; border-color:var(--dh-gold-deep); }
/* Keep the main image whole rather than letting a tall file dominate */
.dh-gallery-col .woocommerce-product-gallery__wrapper img {
  max-height:600px; object-fit:contain; background:#fff;
}

/* 2. Typography: the summary column was running far larger than the design */
.dh-product-info .product_title {
  font-size:clamp(1.9rem,2.6vw,2.6rem) !important;
  text-transform:uppercase; letter-spacing:.01em; margin:.2rem 0 .1rem;
}
.dh-product-info .subtitle { font-size:1rem; }
.dh-price-lg { font-size:1.9rem !important; margin:.7rem 0 .15rem; }
.dh-price-lg .price, .dh-price-lg .woocommerce-Price-amount { font-size:inherit !important; }
.dh-price-lg del { opacity:.5; font-size:.7em; }
.dh-tax { font-size:.86rem; color:var(--dh-ink-soft); }
.dh-product-info .dh-desc { font-size:.94rem; color:var(--dh-ink-soft); }
.dh-product-info .dh-flourish { margin:1rem 0; }

/* 3. Quantity on its own row, then full-width CTAs (design stacks them) */
.dh-product-info .woocommerce-variation-add-to-cart,
.dh-product-info form.cart:not(.variations_form) {
  display:block !important;
}
.dh-product-info form.cart .quantity { display:inline-flex; margin:0 0 1rem; }
.dh-product-info .single_add_to_cart_button {
  width:100% !important; flex:none !important; margin:0 !important;
  padding:1.05rem 2rem !important; font-size:.9rem; letter-spacing:.12em;
}
.dh-buy-now { width:100%; display:block; margin-top:.85rem; }
.dh-qty-label {
  display:block; font-size:.74rem; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--dh-ink); margin:.2rem 0 .5rem;
}

/* 4. Richer gold on the primary CTA (it was reading washed out) */
.woocommerce .single_add_to_cart_button, .dh-btn-gold,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button, .woocommerce #place_order {
  background:linear-gradient(135deg,#d9a94f 0%,#bd8526 48%,#a97218 100%) !important;
  color:#fff !important; text-shadow:0 1px 1px rgba(90,58,10,.3);
}

/* 5. Sale flash was floating loose at the far left of the viewport */
.dh-single span.onsale, .woocommerce div.product .dh-gallery-col span.onsale {
  position:absolute; top:1rem; left:1rem; right:auto; margin:0; z-index:6;
  min-height:0; min-width:0; line-height:1; padding:.5rem .95rem;
  border-radius:999px; background:var(--dh-gold-gradient); color:#fff;
  font-family:var(--dh-sans); font-size:.68rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
}
.dh-gallery-col { position:relative; }

/* 6. Breadcrumb spacing to match the design's chevron separators */
.dh-product-page .woocommerce-breadcrumb { margin-bottom:1.4rem; }
.dh-product-page .woocommerce-breadcrumb a { color:var(--dh-ink-soft); }
.dh-product-page .woocommerce-breadcrumb a:hover { color:var(--dh-gold-deep); }
.dh-product-page .woocommerce-breadcrumb .sep { color:var(--dh-gold); margin:0 .15rem; }

/* ================================================================== */
/* 3D gold icons — now inline <svg> cropping a shared sprite sheet     */
/* ================================================================== */
.dh-img-icon.dh-gold-ico { display:inline-block; line-height:0; }
.dh-img-icon.dh-gold-ico > svg { width:100%; height:100%; display:block; overflow:visible; }
.dh-img-icon.dh-gold-ico img { width:100%; height:100%; object-fit:contain; display:block; }

/* ================================================================== */
/* Glassmorphism — navbar and every button                             */
/* ================================================================== */
:root {
  --dh-glass-fill: linear-gradient(180deg, rgba(255,255,255,.46) 0%, rgba(255,250,242,.20) 100%);
  --dh-glass-blur: blur(26px) saturate(185%);
  --dh-glass-ring: 1.5px solid rgba(200,154,69,.85);
  --dh-glass-shadow:
    inset 0 1px 1px rgba(255,255,255,.95),
    inset 0 -2px 6px rgba(200,154,69,.22),
    0 0 0 1px rgba(255,241,206,.4),
    0 6px 20px rgba(110,75,30,.13);
}

.dh-nav-glass,
.dh-header-actions .dh-icon-btn,
.dh-btn-ghost, .dh-loadmore, .dh-buy-now, .dh-range-go, .dh-filter-clear,
.dh-swatch, .dh-qty-btn, .dh-thumb-arrow, .dh-wish,
.dh-product-info form.cart .quantity,
.woocommerce-cart .actions .button, .woocommerce-cart .coupon .button,
.woocommerce .button:not(.single_add_to_cart_button):not(.checkout-button):not(.dh-btn-gold):not(.woocommerce-Button),
.dh-product-card .button, .dh-product-card .added_to_cart,
.woocommerce-account .woocommerce-MyAccount-navigation li a,
.dh-contact-form input, .dh-contact-form textarea,
.dh-account-grid .dh-field input.input-text,
.dh-filter .dh-check .box, .dh-remember .box {
  background:var(--dh-glass-fill) !important;
  backdrop-filter:var(--dh-glass-blur);
  -webkit-backdrop-filter:var(--dh-glass-blur);
  border:var(--dh-glass-ring) !important;
  box-shadow:var(--dh-glass-shadow);
}

/* Hover lifts the ring rather than changing the fill */
.dh-nav-glass:hover,
.dh-header-actions .dh-icon-btn:hover,
.dh-btn-ghost:hover, .dh-loadmore:hover, .dh-buy-now:hover,
.dh-range-go:hover, .dh-filter-clear:hover, .dh-swatch:hover,
.dh-thumb-arrow:hover, .dh-product-card .button:hover {
  border-color:var(--dh-gold-deep) !important;
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,1),
    0 0 0 1px rgba(255,241,206,.65),
    0 8px 22px rgba(110,75,30,.18);
}

/* Selected / filled states stay solid gold so hierarchy survives */
.dh-swatch.on, .dh-filter .dh-check.on .box, .dh-remember input:checked + .box,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
  background:var(--dh-gold-gradient) !important;
  border-color:var(--dh-gold-deep) !important;
  color:#fff;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.35), 0 6px 16px rgba(185,130,42,.3);
}
.dh-qty-btn { border-radius:0 !important; border:none !important; box-shadow:none !important; background:transparent !important; }
.dh-product-info form.cart .quantity { overflow:hidden; }
.dh-filter .dh-check .box, .dh-remember .box { backdrop-filter:none; }

/* Primary gold CTAs: keep the solid fill, add the same ring + inner light */
.dh-btn-gold, .woocommerce .single_add_to_cart_button, .woocommerce #place_order,
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  border:1.5px solid rgba(185,130,42,.95) !important;
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.45),
    inset 0 -2px 6px rgba(120,80,20,.25),
    0 0 0 1px rgba(255,241,206,.35),
    0 8px 24px rgba(185,130,42,.3) !important;
}

/* ================================================================== */
/* Liquid glass — bright specular rim, inner light, soft outer bloom   */
/* Matches the glowing nav capsule in the reference artwork.           */
/* ================================================================== */
.dh-nav-glass {
  position:relative;
  background:
    linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,252,246,.62) 42%, rgba(255,248,236,.78) 100%) !important;
  backdrop-filter:blur(30px) saturate(200%) brightness(1.06);
  -webkit-backdrop-filter:blur(30px) saturate(200%) brightness(1.06);
  border:1.5px solid rgba(206,162,79,.95) !important;
  box-shadow:
    inset 0 2px 2px rgba(255,255,255,1),
    inset 0 -4px 10px rgba(200,154,69,.30),
    inset 0 0 22px rgba(255,246,224,.85),
    0 0 0 1px rgba(255,243,214,.75),
    0 0 30px rgba(226,186,110,.55),
    0 12px 30px rgba(110,75,30,.20) !important;
}
/* specular sheen across the top third */
.dh-nav-glass::before {
  content:""; position:absolute; inset:2px 2px auto 2px; height:42%;
  border-radius:999px; pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,.85), rgba(255,255,255,0));
}
/* (legacy nav under-glow removed — it collided with the ring pseudo-element) */

/* Same liquid treatment on every button surface */
.dh-header-actions .dh-icon-btn,
.dh-btn-ghost, .dh-loadmore, .dh-buy-now, .dh-range-go, .dh-filter-clear,
.dh-swatch, .dh-thumb-arrow, .dh-wish,
.dh-product-card .button, .dh-product-card .added_to_cart,
.woocommerce-account .woocommerce-MyAccount-navigation li a,
.woocommerce-cart .actions .button, .woocommerce-cart .coupon .button {
  position:relative; overflow:hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.9) 0%, rgba(255,252,246,.58) 45%, rgba(255,248,236,.72) 100%) !important;
  backdrop-filter:blur(26px) saturate(195%) brightness(1.05);
  -webkit-backdrop-filter:blur(26px) saturate(195%) brightness(1.05);
  border:1.5px solid rgba(206,162,79,.9) !important;
  box-shadow:
    inset 0 2px 2px rgba(255,255,255,1),
    inset 0 -3px 8px rgba(200,154,69,.26),
    inset 0 0 16px rgba(255,246,224,.7),
    0 0 0 1px rgba(255,243,214,.55),
    0 0 18px rgba(226,186,110,.35),
    0 8px 20px rgba(110,75,30,.15) !important;
}
.dh-header-actions .dh-icon-btn::before,
.dh-btn-ghost::before, .dh-loadmore::before, .dh-buy-now::before,
.dh-filter-clear::before, .dh-swatch::before, .dh-thumb-arrow::before,
.dh-product-card .button::before {
  content:""; position:absolute; inset:1px 1px auto 1px; height:45%;
  border-radius:inherit; pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,.8), rgba(255,255,255,0));
}
.dh-header-actions .dh-icon-btn:hover,
.dh-btn-ghost:hover, .dh-loadmore:hover, .dh-buy-now:hover,
.dh-filter-clear:hover, .dh-swatch:hover, .dh-thumb-arrow:hover,
.dh-product-card .button:hover {
  border-color:var(--dh-gold-deep) !important;
  box-shadow:
    inset 0 2px 2px rgba(255,255,255,1),
    inset 0 0 20px rgba(255,246,224,.9),
    0 0 0 1px rgba(255,243,214,.8),
    0 0 26px rgba(226,186,110,.6),
    0 10px 26px rgba(110,75,30,.2) !important;
}

/* ================================================================== */
/* Product card — notes line + star rating (reference layout)          */
/* ================================================================== */
.dh-product-card .notes {
  font-size:.8rem; color:var(--dh-ink-soft); margin:.3rem 0 .1rem; text-align:center;
}
.dh-product-card .rating {
  display:flex; align-items:center; justify-content:center; gap:.35rem;
  margin:.25rem 0 .1rem; font-size:.8rem; color:var(--dh-ink-soft);
}
.dh-product-card .rating .stars { color:var(--dh-gold); letter-spacing:.06em; line-height:1; }
.dh-product-card .rating .stars .off { color:rgba(200,154,69,.3); }
.dh-product-card .rating .stars .half {
  background:linear-gradient(90deg,var(--dh-gold) 50%, rgba(200,154,69,.3) 50%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.dh-product-card .rating .count { font-size:.76rem; }
.dh-product-card .rating.empty { opacity:.75; }

/* Price slider applies on release — hide the no-JS fallback button */
.dh-price-filter.js-auto .dh-range-go { display:none; }
.dh-range-go { display:block; }

/* ================================================================== */
/* Smaller footer                                                      */
/* ================================================================== */
.dh-footer { padding:1.5rem 0 .8rem; }
.dh-footer-grid { gap:1.2rem; grid-template-columns:1.2fr 1fr 1.2fr 1.3fr; }
.dh-footer h4 { font-size:.95rem; margin-bottom:.25rem; }
.dh-footer .brand p { font-size:.8rem; margin:.4rem 0 .6rem; }
.dh-footer-word { width:165px; }
.dh-footer-grid ul li a { padding:.34rem 0; font-size:.82rem; }
.dh-contact-item { margin-bottom:.45rem; font-size:.8rem; }
.dh-contact-item svg { width:16px; height:16px; }
.dh-social a { width:32px; height:32px; }
.dh-social a svg, .dh-social svg { width:15px; height:15px; }
.dh-footer .dh-flourish { margin:.2rem 0 .5rem; }
.dh-footer-bottom { margin-top:.7rem; padding-top:.7rem; font-size:.75rem; }
@media (max-width:900px){ .dh-footer-grid { grid-template-columns:1fr 1fr; } }

/* ================================================================== */
/* Breathing room around the feature / trust bars                      */
/* They were sitting flush against the section above them.             */
/* ================================================================== */

/* Standalone bars (shop, about, contact, generic pages) */
.dh-trust { margin-block:3.6rem; }

/* Bars nested inside a homepage section keep one source of spacing */
#collectionTrust, #whyBar, #artBar, #moodBar { margin-top:3.4rem; margin-bottom:1rem; }
#collectionTrust .dh-trust, #whyBar .dh-trust,
#artBar .dh-trust, #moodBar .dh-trust { margin-block:0; }

/* Give the content above a bar somewhere to breathe */
#whyBar, #artBar, #moodBar, #collectionTrust { padding-top:.6rem; }
.dh-section + .dh-trust, .reveal > .dh-trust { margin-top:3.6rem; }

/* Last bar before the footer shouldn't crowd it */
.dh-trust:last-child { margin-bottom:2.8rem; }

@media (max-width:820px){
  .dh-trust { margin-block:2.4rem; }
  #collectionTrust, #whyBar, #artBar, #moodBar { margin-top:2.4rem; }
  .dh-section + .dh-trust, .reveal > .dh-trust { margin-top:2.4rem; }
}

/* ================================================================== */
/* Product page — thumbnail visibility, control spacing, variation price*/
/* ================================================================== */

/* Thumbnails: size them whether or not the JS arrow wrapper exists,
   and override WooCommerce flexslider's own percentage widths. */
.dh-gallery-col .flex-control-thumbs,
.dh-thumb-nav .flex-control-thumbs {
  display:flex !important; flex-direction:column; gap:.65rem;
  width:100% !important; margin:0 !important; padding:0 !important; list-style:none;
}
.dh-gallery-col .flex-control-thumbs li,
.dh-thumb-nav .flex-control-thumbs li {
  width:100% !important; max-width:none !important; margin:0 !important;
  float:none !important; display:block !important;
}
.dh-gallery-col .flex-control-thumbs img,
.dh-thumb-nav .flex-control-thumbs img {
  width:100% !important; height:auto !important; max-width:none !important;
  aspect-ratio:1; object-fit:cover; display:block;
  border-radius:12px !important; opacity:.72; cursor:pointer;
  border:1px solid rgba(200,154,69,.35);
  transition:opacity .15s ease, border-color .15s ease;
}
.dh-gallery-col .flex-control-thumbs img.flex-active,
.dh-gallery-col .flex-control-thumbs img:hover,
.dh-thumb-nav .flex-control-thumbs img.flex-active,
.dh-thumb-nav .flex-control-thumbs img:hover { opacity:1; border-color:var(--dh-gold-deep); }

@media (min-width:768px){
  .dh-gallery-col .woocommerce-product-gallery { grid-template-columns:96px 1fr; gap:1.2rem; }
  .dh-gallery-col .woocommerce-product-gallery > .flex-control-thumbs { grid-column:1; grid-row:1; }
  .dh-gallery-col .woocommerce-product-gallery .dh-thumb-nav { grid-column:1; grid-row:1; width:96px; }
}

/* Sale flash must not sit on top of the thumbnails */
.dh-single span.onsale, .woocommerce div.product .dh-gallery-col span.onsale {
  left:auto; right:1rem; top:1rem;
}

/* Spacing between SIZE / QUANTITY / the two CTAs */
.dh-product-info table.variations { margin:0 0 1.6rem; }
.dh-product-info table.variations th.label { padding-bottom:.6rem; }
.dh-swatches { gap:.8rem; margin-top:.2rem; }
.dh-qty-label { margin:1.4rem 0 .6rem; }
.dh-product-info form.cart .quantity { margin:0 0 1.5rem; }
.dh-product-info .single_add_to_cart_button { margin:0 0 1rem !important; }
.dh-buy-now { margin-top:0; }
.dh-assurance { margin-top:2rem; padding-top:1.8rem; }

/* Variation price — show the selected size's price clearly */
.dh-product-info .woocommerce-variation-price { margin:0 0 1.2rem; }
.dh-product-info .woocommerce-variation-price .price,
.dh-product-info .woocommerce-variation-price .woocommerce-Price-amount {
  font-family:var(--dh-serif); font-size:1.7rem; color:var(--dh-gold-deep); font-weight:600;
}
.dh-product-info .woocommerce-variation-availability { font-size:.85rem; color:var(--dh-ink-soft); }
.dh-product-info .single_variation_wrap { display:block; }
.dh-price-lg { display:block; }
/* Sale flash — anchor to the gallery regardless of ancestor classes */
.dh-gallery-col span.onsale {
  position:absolute !important; top:1rem !important; right:1rem !important; left:auto !important;
  z-index:6; margin:0 !important; min-height:0; min-width:0; line-height:1;
  padding:.5rem .95rem; border-radius:999px;
  background:var(--dh-gold-gradient); color:#fff;
  font-family:var(--dh-sans); font-size:.68rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
}

/* ================================================================== */
/* Accessibility helper — was missing entirely, so WordPress's hidden  */
/* labels ("Noble Root quantity", "Skip to content", etc.) rendered as */
/* visible text on the page.                                           */
/* ================================================================== */
.screen-reader-text, .sr-only {
  border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%);
  height:1px; width:1px; margin:-1px; padding:0; overflow:hidden;
  position:absolute !important; word-wrap:normal !important;
}
.screen-reader-text:focus, .sr-only:focus {
  background:#fff; border-radius:6px; clip:auto !important; clip-path:none;
  color:var(--dh-ink); display:block; height:auto; width:auto;
  left:6px; top:6px; padding:.7rem 1.1rem; z-index:100000;
  font-size:.85rem; text-decoration:none;
  box-shadow:0 4px 14px rgba(110,75,30,.25);
}

/* ================================================================== */
/* Header icons — plain, no gold ring or glass plate                   */
/* ================================================================== */
.dh-header-actions .dh-icon-btn,
.dh-header-actions .dh-icon-btn:hover {
  background:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  border:none !important;
  box-shadow:none !important;
  color:var(--dh-gold-deep);
  width:34px; height:34px;
}
.dh-header-actions .dh-icon-btn::before { display:none !important; }
.dh-header-actions .dh-icon-btn:hover { color:var(--dh-gold); transform:translateY(-1px); }
.dh-header-actions .dh-icon-btn svg { width:22px; height:22px; }
.dh-header-actions .dh-icon-btn .badge {
  background:var(--dh-gold-gradient); color:#fff; border:none;
}

/* ================================================================== */
/* Sale flash — top-left, clear of the zoom control on the right       */
/* ================================================================== */
.dh-gallery-col span.onsale {
  left:1rem !important; right:auto !important; top:1rem !important;
}
.dh-gallery-col .woocommerce-product-gallery__trigger { top:1rem; right:1rem; }

/* ================================================================== */
/* More air between the quantity block and the CTAs                    */
/* ================================================================== */
.dh-qty-label { margin:1.8rem 0 .7rem; }
.dh-product-info form.cart .quantity { margin:0 0 2rem; }
.dh-product-info .single_add_to_cart_button { margin:0 0 1.1rem !important; }

/* Assurance row is two items now (Easy Returns removed) */
.dh-assurance { grid-template-columns:repeat(2,1fr); gap:1.6rem; max-width:520px; }
@media (max-width:520px){ .dh-assurance { grid-template-columns:1fr; } }

/* ================================================================== */
/* Prices — Bodoni Moda SemiBold                                       */
/* ================================================================== */
:root { --dh-price: "Bodoni Moda", "Cormorant Garamond", Georgia, serif; }

.dh-price-lg, .dh-price-lg .price, .dh-price-lg .woocommerce-Price-amount,
.dh-product-info .woocommerce-variation-price .price,
.dh-product-info .woocommerce-variation-price .woocommerce-Price-amount,
.dh-product-card .price, .dh-product-card .price .woocommerce-Price-amount,
.woocommerce-cart .cart_totals .order-total .woocommerce-Price-amount,
.woocommerce-cart td.product-price, .woocommerce-cart td.product-subtotal,
.dh-range-vals .woocommerce-Price-amount,
.wc-block-components-totals-item__value,
.wc-block-components-product-price__value,
.wc-block-formatted-money-amount {
  font-family:var(--dh-price) !important;
  font-weight:600;
  font-variant-numeric:lining-nums;
  letter-spacing:.005em;
}
.dh-price-lg del, .dh-product-card .price del { font-weight:600; opacity:.45; }
.dh-price-lg ins, .dh-product-card .price ins { text-decoration:none; }

/* ================================================================== */
/* Sale flash — on the main image, not over the thumbnail strip        */
/* ================================================================== */
.dh-gallery-col span.onsale { top:1rem !important; right:auto !important; }
@media (min-width:768px){
  /* clear the 96px thumbnail column + its 1.2rem gap */
  .dh-gallery-col span.onsale { left:calc(96px + 1.2rem + 1rem) !important; }
}
@media (max-width:767px){
  .dh-gallery-col span.onsale { left:1rem !important; }
}

/* ================================================================== */
/* Buy column — narrower CTAs, more air above them                     */
/* ================================================================== */
.dh-product-info form.cart .quantity { margin:0 0 2.4rem; }
.dh-product-info .single_add_to_cart_button {
  width:auto !important; min-width:0 !important;
  max-width:330px; display:flex !important;
  padding:.95rem 2.2rem !important; margin:0 0 .9rem !important;
}
.dh-buy-now {
  width:100%; max-width:330px; display:block;
  padding:.9rem 2.2rem; margin:0;
}
.dh-product-info .woocommerce-variation-add-to-cart { display:block !important; }

/* ================================================================== */
/* Header cart count — was washed out and unreadable                   */
/* ================================================================== */
.dh-header-actions .dh-icon-btn { overflow:visible; position:relative; }
.dh-header-actions .dh-icon-btn .badge,
.dh-cart-badge .badge {
  position:absolute; top:-5px; right:-7px; z-index:3;
  min-width:20px; height:20px; padding:0 5px;
  background:linear-gradient(135deg,#c89a45,#a97218) !important;
  color:#fff !important;
  border:2px solid var(--dh-pearl) !important;
  border-radius:999px; display:grid; place-items:center;
  font-family:var(--dh-sans); font-size:.7rem; font-weight:800; line-height:1;
  box-shadow:0 2px 6px rgba(110,75,30,.35);
}

/* ================================================================== */
/* My Account — button labels were white on a light glass fill         */
/* ================================================================== */
.woocommerce-account .woocommerce-MyAccount-content .button,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Button,
.woocommerce .woocommerce-info .button,
.woocommerce .woocommerce-message .button {
  background:linear-gradient(135deg,#d9a94f 0%,#bd8526 48%,#a97218 100%) !important;
  color:#fff !important; border:1.5px solid rgba(185,130,42,.95) !important;
  text-shadow:0 1px 1px rgba(90,58,10,.3);
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
}
/* Any remaining glass button keeps gold text so it stays readable */
.woocommerce .button:not(.single_add_to_cart_button):not(.checkout-button):not(.dh-btn-gold):not(.woocommerce-Button) {
  color:var(--dh-gold-deep) !important;
}
/* WooCommerce notice rows inside the account panel */
.woocommerce-account .woocommerce-info, .woocommerce-account .woocommerce-message {
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  background:linear-gradient(160deg,#fffdf8,#f7f1e8); border-top:3px solid var(--dh-gold);
  border-radius:var(--dh-radius); color:var(--dh-ink); padding:1.1rem 1.4rem;
}
.woocommerce-account .woocommerce-info::before,
.woocommerce-account .woocommerce-message::before { color:var(--dh-gold-deep); }

/* ================================================================== */
/* Shop grid + card — smaller cards, image flush to the top,           */
/* Add to Cart aligned along the bottom of every card.                 */
/*                                                                     */
/* WooCommerce ships `.woocommerce ul.products.columns-3 {grid-template */
/* -columns:repeat(3,1fr)}` which outranks a bare `.dh-shop-grid`, so   */
/* the cards were locked to 3-up and oversized. This wins on both       */
/* specificity and !important.                                         */
/* ================================================================== */
.woocommerce ul.products.dh-shop-grid,
.woocommerce-page ul.products.dh-shop-grid,
ul.products.dh-shop-grid {
  display:grid !important;
  grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)) !important;
  gap:1.1rem !important;
  align-items:stretch;
}

/* Card: no top padding so the image sits flush against the card top */
.dh-shop-grid .dh-product-card {
  padding:0 0 1rem !important;
  overflow:hidden;
  border-radius:16px;
}
.dh-shop-grid .dh-product-thumb {
  border-radius:16px 16px 0 0; margin:0 0 .7rem; aspect-ratio:1/1.05;
}
.dh-shop-grid .dh-product-thumb img { mix-blend-mode:normal; object-fit:cover; }

/* Text block gets its own inset now that the card has none */
.dh-shop-grid .dh-cat-pill,
.dh-shop-grid .dh-product-card h3,
.dh-shop-grid .dh-product-card .notes,
.dh-shop-grid .dh-product-card .rating,
.dh-shop-grid .dh-product-card .price { margin-left:.85rem; margin-right:.85rem; }

.dh-shop-grid .dh-product-card h3 { font-size:.9rem; margin-top:.15rem; }
.dh-shop-grid .dh-product-card .notes {
  font-size:.75rem; margin:.3rem .85rem; line-height:1.45;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.dh-shop-grid .dh-product-card .price { font-size:1.05rem; margin:.25rem .85rem .7rem; }

/* Push the button to the bottom so every card's CTA lines up */
.dh-shop-grid .dh-product-card .price { margin-top:auto; }
.dh-shop-grid .dh-product-card .button,
.dh-shop-grid .dh-product-card .added_to_cart {
  display:block; margin:0 .85rem !important; padding:.6rem 1rem !important;
  font-size:.7rem !important; letter-spacing:.1em; border-radius:999px;
}
.dh-shop-grid .dh-cat-pill { font-size:.62rem; padding:.3rem .7rem; }

@media (max-width:1100px){
  ul.products.dh-shop-grid { grid-template-columns:repeat(auto-fill, minmax(170px,1fr)) !important; }
}
@media (max-width:640px){
  ul.products.dh-shop-grid { grid-template-columns:repeat(2,1fr) !important; gap:.8rem !important; }
}

/* ================================================================== */
/* Buy column — one column, identical width, identical left edge       */
/*                                                                     */
/* WooCommerce floats form.cart .button left, which parked ADD TO CART */
/* beside the quantity box while BUY IT NOW sat below at a different   */
/* width. Both buttons are now block-level, same max-width, no float.  */
/* ================================================================== */
.dh-product-info form.cart .quantity,
.dh-product-info form.cart .single_add_to_cart_button,
.dh-product-info .dh-buy-now {
  float:none !important;
  clear:both;
}
.dh-product-info form.cart .single_add_to_cart_button,
.dh-product-info .dh-buy-now {
  display:flex !important; align-items:center; justify-content:center;
  width:100% !important; max-width:340px !important;
  margin-left:0 !important; margin-right:0 !important;
  box-sizing:border-box;
}
.dh-product-info form.cart .single_add_to_cart_button { margin-bottom:1rem !important; }
.dh-product-info .dh-buy-now { margin-top:0; }
.dh-product-info form.cart::after { content:""; display:table; clear:both; }

/* ================================================================== */
/* Shop card button — was 100% wide with side margins, so its rounded  */
/* ends were pushed under the card's overflow:hidden and clipped.      */
/* ================================================================== */
.dh-shop-grid .dh-product-card { overflow:visible !important; }
.dh-shop-grid .dh-product-thumb { border-radius:16px 16px 0 0; overflow:hidden; }
.dh-shop-grid .dh-product-card .button,
.dh-shop-grid .dh-product-card .added_to_cart {
  width:auto !important; max-width:none !important;
  display:block; box-sizing:border-box;
  margin:0 .85rem !important;
}

/* ================================================================== */
/* Mobile drawer — the fallback menu emits <span class="dh-nav-sep">   */
/* dividers meant for the horizontal desktop pill. Stacked vertically  */
/* they became empty rows with a stray 1px gold tick.                  */
/* ================================================================== */
.dh-drawer-panel .dh-nav-sep { display:none !important; }
.dh-drawer-panel > a {
  display:block; padding:1.05rem .2rem;
  border-bottom:1px solid rgba(200,154,69,.28);
  font-family:var(--dh-sans); font-size:.92rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--dh-ink);
}
.dh-drawer-panel > a:last-child { border-bottom:none; }
.dh-drawer-panel > a:hover, .dh-drawer-panel > a:focus { color:var(--dh-gold-deep); }

/* ================================================================== */
/* About — the promise wordmark still had a plate behind it            */
/* (background was cleared earlier but the inset white box-shadow      */
/* was left in place, which is what you could still see).              */
/* ================================================================== */
.dh-promise .mono {
  box-shadow:none !important; background:none !important;
  border:none !important; border-radius:0 !important;
  width:auto !important; height:auto !important;
}
.dh-promise .mono img { background:transparent; mix-blend-mode:normal; }

/* ================================================================== */
/* Mobile hero — text and banner overlapped, clipping the second line  */
/* Stack them in normal flow instead of absolutely positioning.        */
/* ================================================================== */
@media (max-width:820px){
  .dh-shop-hero, .dh-about-hero { display:flex; flex-direction:column; }
  .dh-shop-hero .dh-container, .dh-about-hero .dh-container { order:1; }
  .dh-shop-hero .txt, .dh-about-hero .txt { padding:1.8rem 0 1.4rem; }
  .dh-shop-hero .banner-img, .dh-about-hero .banner-img {
    position:static !important; order:2; width:100% !important;
    height:210px; top:auto; bottom:auto; right:auto;
  }
  .dh-shop-hero .banner-img::before, .dh-about-hero .banner-img::before { display:none; }
  .dh-shop-hero .banner-img img, .dh-about-hero .banner-img img { height:100%; object-fit:cover; }

  /* Centre the flourish under the centred heading */
  .dh-shop-hero .dh-flourish, .dh-about-hero .dh-flourish { justify-content:center; }
  .dh-shop-hero .dh-flourish::before, .dh-about-hero .dh-flourish::before {
    display:block; content:""; height:1px; width:60px;
    background:linear-gradient(90deg,transparent,var(--dh-gold));
  }
  .dh-shop-hero p, .dh-about-hero p { max-width:none; margin-inline:auto; }
}

/* ================================================================== */
/* "You may also like" — identical cards to the shop grid              */
/* The card rules were scoped to .dh-shop-grid, so related products    */
/* kept the older, taller card. Same treatment applied here.           */
/* ================================================================== */
.related.products ul.products,
.up-sells ul.products,
.dh-single .related.products ul.products,
.dh-single .upsells.products ul.products {
  display:grid !important;
  grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)) !important;
  gap:1.1rem !important;
  list-style:none; margin:0; padding:0; align-items:stretch;
}

.related.products .dh-product-card,
.up-sells .dh-product-card {
  padding:0 0 1rem !important;
  overflow:visible !important;
  border-radius:16px;
  display:flex; flex-direction:column; height:100%;
  width:100% !important; float:none !important; margin:0 !important;
}
.related.products .dh-product-thumb,
.up-sells .dh-product-thumb {
  border-radius:16px 16px 0 0; overflow:hidden;
  margin:0 0 .7rem; aspect-ratio:1/1.05;
}
.related.products .dh-product-thumb img,
.up-sells .dh-product-thumb img { mix-blend-mode:normal; object-fit:cover; }

.related.products .dh-cat-pill,
.related.products .dh-product-card h3,
.related.products .dh-product-card .notes,
.related.products .dh-product-card .rating,
.related.products .dh-product-card .price,
.up-sells .dh-cat-pill,
.up-sells .dh-product-card h3,
.up-sells .dh-product-card .notes,
.up-sells .dh-product-card .rating,
.up-sells .dh-product-card .price { margin-left:.85rem; margin-right:.85rem; }

.related.products .dh-product-card h3,
.up-sells .dh-product-card h3 { font-size:.9rem; margin-top:.15rem; }
.related.products .dh-product-card .notes,
.up-sells .dh-product-card .notes {
  font-size:.75rem; margin:.3rem .85rem; line-height:1.45;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.related.products .dh-product-card .price,
.up-sells .dh-product-card .price {
  font-size:1.05rem; margin:.25rem .85rem .7rem; margin-top:auto;
}
.related.products .dh-cat-pill,
.up-sells .dh-cat-pill { font-size:.62rem; padding:.3rem .7rem; }

.related.products .dh-product-card .button,
.related.products .dh-product-card .added_to_cart,
.up-sells .dh-product-card .button,
.up-sells .dh-product-card .added_to_cart {
  display:block; width:auto !important; max-width:none !important;
  box-sizing:border-box; margin:0 .85rem !important;
  padding:.6rem 1rem !important; font-size:.7rem !important;
  letter-spacing:.1em; border-radius:999px;
}

@media (max-width:1100px){
  .related.products ul.products, .up-sells ul.products {
    grid-template-columns:repeat(auto-fill, minmax(170px,1fr)) !important;
  }
}
@media (max-width:640px){
  .related.products ul.products, .up-sells ul.products {
    grid-template-columns:repeat(2,1fr) !important; gap:.8rem !important;
  }
}

/* ================================================================== */
/* Variation "Clear" link — the design has no such control            */
/* ================================================================== */
.dh-product-info .reset_variations {
  display:none !important;
}
.dh-product-info table.variations tr,
.dh-product-info table.variations td,
.dh-product-info table.variations th { display:block; width:100%; }
.dh-product-info table.variations th.label { padding:0 0 .55rem; }
.dh-product-info table.variations td.value { padding:0; }

/* ================================================================== */
/* Quantity → Add to Cart gap                                          */
/*                                                                     */
/* WooCommerce's `.woocommerce div.product form.cart div.quantity`     */
/* (4 classes + 3 types) outranks any `.dh-product-info form.cart      */
/* .quantity` rule, so every earlier attempt at this margin was being  */
/* discarded and the gap computed to 0. Forced here.                   */
/* ================================================================== */
.woocommerce div.product form.cart div.quantity,
.dh-product-info form.cart .quantity {
  margin:0 0 2.2rem !important;
  float:none !important;
}
.dh-product-info form.cart .single_add_to_cart_button { margin-top:0 !important; }

/* Size swatches sit directly under the SIZE label, flush left */
.dh-product-info table.variations,
.dh-product-info table.variations tbody,
.dh-product-info table.variations tr,
.dh-product-info table.variations th,
.dh-product-info table.variations td {
  display:block !important; width:100% !important;
  padding-left:0 !important; padding-right:0 !important;
  border:none !important; text-align:left !important;
}
.dh-product-info table.variations th.label { padding:0 0 .6rem !important; }
.dh-product-info table.variations td.value { padding:0 !important; }
.dh-product-info .dh-swatches { margin-left:0 !important; }

/* ================================================================== */
/* Prices — DM Sans (replaces Bodoni Moda)                             */
/* ================================================================== */
:root { --dh-price: "DM Sans", "Manrope", system-ui, -apple-system, sans-serif; }

.dh-price-lg, .dh-price-lg .price, .dh-price-lg .woocommerce-Price-amount,
.dh-product-info .woocommerce-variation-price .price,
.dh-product-info .woocommerce-variation-price .woocommerce-Price-amount,
.dh-product-card .price, .dh-product-card .price .woocommerce-Price-amount,
.woocommerce-cart .cart_totals .order-total .woocommerce-Price-amount,
.woocommerce-cart td.product-price, .woocommerce-cart td.product-subtotal,
.dh-range-vals .woocommerce-Price-amount,
.wc-block-components-totals-item__value,
.wc-block-components-product-price__value,
.wc-block-formatted-money-amount {
  font-family:var(--dh-price) !important;
  font-weight:700;
  letter-spacing:-.01em;
  font-variant-numeric:lining-nums tabular-nums;
}
.dh-price-lg del, .dh-product-card .price del { font-weight:500; opacity:.45; }
.dh-price-lg ins, .dh-product-card .price ins { text-decoration:none; font-weight:700; }

/* ================================================================== */
/* Checkout — branded two-card layout                                  */
/* Requires the classic checkout: put [woocommerce_checkout] on the    */
/* Checkout page. The block checkout does not fire the hooks this uses.*/
/* ================================================================== */
.woocommerce-checkout .dh-woo-head { display:none; }

.dh-checkout-head {
  display:flex; align-items:center; justify-content:space-between;
  gap:1.5rem; flex-wrap:wrap; padding:.5rem 0 1.4rem;
  border-bottom:1px solid rgba(200,154,69,.25); margin-bottom:1.8rem;
}
.dh-steps { display:flex; align-items:center; gap:0; flex:1; max-width:620px; }
.dh-steps .step { display:flex; flex-direction:column; align-items:center; gap:.35rem; position:relative; flex:1; }
.dh-steps .step + .step::before {
  content:""; position:absolute; left:-50%; top:15px; width:100%; height:2px;
  background:rgba(200,154,69,.3); z-index:0;
}
.dh-steps .step.done + .step::before, .dh-steps .step.current::before { background:var(--dh-gold); }
.dh-steps .num {
  position:relative; z-index:1; width:30px; height:30px; border-radius:50%;
  display:grid; place-items:center; font-family:var(--dh-sans);
  font-size:.8rem; font-weight:700; background:#fff;
  border:1.5px solid rgba(200,154,69,.5); color:var(--dh-taupe);
}
.dh-steps .step.done .num, .dh-steps .step.current .num {
  background:var(--dh-gold-gradient); color:#fff; border-color:var(--dh-gold-deep);
  box-shadow:0 3px 10px rgba(185,130,42,.3);
}
.dh-steps .lbl { font-size:.66rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--dh-taupe); }
.dh-steps .step.done .lbl, .dh-steps .step.current .lbl { color:var(--dh-gold-deep); }
.dh-secure-badge { display:flex; align-items:center; gap:.6rem; }
.dh-secure-badge svg { width:26px; height:26px; color:var(--dh-gold-deep); }
.dh-secure-badge strong { display:block; font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; }
.dh-secure-badge span { font-size:.74rem; color:var(--dh-ink-soft); }

.dh-checkout-title { text-align:center; margin-bottom:2rem; }
.dh-checkout-title h2 {
  font-family:var(--dh-serif); font-size:clamp(1.9rem,3.6vw,2.7rem);
  text-transform:uppercase; letter-spacing:.02em;
}
.dh-checkout-title p { color:var(--dh-ink-soft); margin:.2rem 0 0; }

/* Two-card grid */
.woocommerce-checkout form.checkout {
  display:grid; grid-template-columns:1.35fr .85fr; gap:1.6rem; align-items:start;
}
.woocommerce-checkout form.checkout #customer_details { grid-column:1; }
.woocommerce-checkout form.checkout #order_review_heading,
.woocommerce-checkout form.checkout #order_review { grid-column:2; }
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review {
  background:linear-gradient(160deg,#fffdf8,#f7f1e8);
  border:1px solid rgba(200,154,69,.3); border-radius:var(--dh-radius-lg);
  padding:1.7rem; box-shadow:var(--dh-shadow-soft);
}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { width:100%; float:none; }
.woocommerce-checkout #order_review_heading {
  text-align:center; font-family:var(--dh-serif); color:var(--dh-gold-deep);
  font-size:1.15rem; letter-spacing:.1em; text-transform:uppercase;
  margin:0 0 .6rem; padding-bottom:.6rem;
}
.woocommerce-checkout h3, .woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3 {
  font-family:var(--dh-sans); font-size:.78rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--dh-gold-deep);
  margin:0 0 1rem;
}
.woocommerce-checkout .woocommerce-additional-fields { margin-top:1.4rem; }

/* Fields */
.woocommerce-checkout .form-row { padding:0 0 1rem; margin:0; }
.woocommerce-checkout .form-row label {
  display:block; font-size:.76rem; font-weight:600; color:var(--dh-ink); margin-bottom:.35rem;
}
.woocommerce-checkout .form-row .required { color:var(--dh-gold-deep); text-decoration:none; }
.woocommerce-checkout .form-row-first, .woocommerce-checkout .form-row-last {
  width:48.5%; float:left;
}
.woocommerce-checkout .form-row-last { float:right; }
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .select2-container--default .select2-selection--single,
.woocommerce-checkout .form-row select {
  width:100%; padding:.8rem 1rem !important; border:1px solid rgba(200,154,69,.4) !important;
  border-radius:12px !important; background:rgba(255,255,255,.85);
  font-family:var(--dh-sans); font-size:.92rem;
}
.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row textarea:focus {
  outline:none; border-color:var(--dh-gold-deep) !important;
  box-shadow:0 0 0 3px rgba(200,154,69,.16);
}
.woocommerce-checkout .form-row textarea { min-height:96px; resize:vertical; }

/* Order summary */
.woocommerce-checkout #order_review table.shop_table { border:none; background:none; margin:0; }
.woocommerce-checkout #order_review table.shop_table thead { display:none; }
.woocommerce-checkout #order_review table.shop_table td,
.woocommerce-checkout #order_review table.shop_table th {
  border:none; border-bottom:1px solid rgba(200,154,69,.22); padding:.75rem 0; font-size:.9rem;
}
.woocommerce-checkout #order_review .order-total th,
.woocommerce-checkout #order_review .order-total td { border-bottom:none; padding-top:1rem; }
.woocommerce-checkout #order_review .order-total .woocommerce-Price-amount {
  font-size:1.5rem; color:var(--dh-gold-deep);
}
.woocommerce-checkout #order_review .product-name { color:var(--dh-ink); font-weight:600; }
.woocommerce-checkout .cart-subtotal th, .woocommerce-checkout .order-total th {
  font-family:var(--dh-sans); font-weight:600; text-align:left;
}

/* Coupon */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
  background:none; border:none; border-top:1px solid rgba(200,154,69,.25);
  padding:1rem 0 .4rem; color:var(--dh-ink); font-size:.82rem;
  font-weight:700; letter-spacing:.1em; text-transform:uppercase;
}
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before { display:none; }
.woocommerce-checkout form.checkout_coupon {
  border:none; padding:0 0 1rem; margin:0; display:flex; gap:.6rem;
}
.woocommerce-checkout form.checkout_coupon .form-row { padding:0; width:auto; flex:1; }
.woocommerce-checkout form.checkout_coupon .button {
  background:var(--dh-gold-gradient) !important; color:#fff !important;
  border:none !important; border-radius:12px !important;
  padding:.8rem 1.5rem !important; font-size:.74rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; white-space:nowrap;
}

/* Place order */
.woocommerce-checkout #place_order {
  width:100% !important; display:block; margin-top:1rem !important;
  padding:1.05rem 1.5rem !important; font-size:.86rem; letter-spacing:.1em;
}
.woocommerce-checkout #payment { background:transparent; }
.woocommerce-checkout #payment ul.payment_methods {
  border:none; padding:0; margin:0 0 1rem;
  background:rgba(255,255,255,.6); border-radius:12px;
}
.woocommerce-checkout #payment div.form-row { padding:0; }
.woocommerce-checkout .woocommerce-privacy-policy-text { font-size:.78rem; color:var(--dh-ink-soft); }

/* Trust row */
.dh-checkout-trust {
  display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:2rem;
  padding:1.4rem 1.6rem; border:1px solid rgba(200,154,69,.3);
  border-radius:var(--dh-radius-lg); background:linear-gradient(160deg,#fffdf8,#f7f1e8);
}
.dh-checkout-trust .t { display:flex; gap:.8rem; align-items:flex-start; }
.dh-checkout-trust .t + .t { border-left:1px solid rgba(200,154,69,.22); padding-left:1rem; }
.dh-checkout-trust .ico svg { width:34px; height:34px; color:var(--dh-gold-deep); }
.dh-checkout-trust .ico .dh-img-icon { width:34px; height:34px; }
.dh-checkout-trust b {
  display:block; font-size:.74rem; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:var(--dh-gold-deep); margin-bottom:.15rem;
}
.dh-checkout-trust span { font-size:.76rem; color:var(--dh-ink-soft); line-height:1.45; }

@media (max-width:960px){
  .woocommerce-checkout form.checkout { grid-template-columns:1fr; }
  .woocommerce-checkout form.checkout #order_review_heading,
  .woocommerce-checkout form.checkout #order_review,
  .woocommerce-checkout form.checkout #customer_details { grid-column:1; }
  .dh-checkout-trust { grid-template-columns:repeat(2,1fr); }
  .dh-checkout-trust .t:nth-child(3) { border-left:none; padding-left:0; }
}
@media (max-width:560px){
  .woocommerce-checkout .form-row-first, .woocommerce-checkout .form-row-last { width:100%; float:none; }
  .dh-checkout-trust { grid-template-columns:1fr; }
  .dh-checkout-trust .t + .t { border-left:none; padding-left:0; }
  .dh-steps .lbl { font-size:.58rem; }
}

/* ================================================================== */
/* Cart — branded layout (classic [woocommerce_cart])                  */
/* ================================================================== */
.woocommerce-cart .dh-woo-head { display:none; }

.dh-cart-head { text-align:center; margin:.5rem 0 2rem; }
.dh-cart-head h2 {
  font-family:var(--dh-serif); font-size:clamp(1.9rem,3.6vw,2.7rem);
  text-transform:uppercase; letter-spacing:.02em;
}
.dh-cart-head p { color:var(--dh-ink-soft); margin:.2rem 0 0; }

/* Column headings */
.woocommerce-cart table.shop_table.cart thead th {
  font-family:var(--dh-sans); font-size:.72rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--dh-gold-deep);
  border-bottom:1px solid rgba(200,154,69,.3); padding:0 .6rem 1rem; background:none;
}
.woocommerce-cart table.shop_table.cart td.product-name { font-family:var(--dh-sans); }
.woocommerce-cart td.product-name a {
  font-family:var(--dh-serif); font-size:1.15rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.02em; color:var(--dh-ink);
}
.woocommerce-cart td.product-name .variation {
  display:block; font-size:.8rem; color:var(--dh-ink-soft); margin:.3rem 0 0;
}
.woocommerce-cart td.product-name .variation dt,
.woocommerce-cart td.product-name .variation dd { display:inline; margin:0; font-weight:400; }
.woocommerce-cart td.product-name .variation dd { margin-right:.5rem; }

/* Remove control sits under the quantity, as a labelled link */
.woocommerce-cart td.product-remove { text-align:center; }
.woocommerce-cart td.product-remove a.remove {
  display:inline-flex; align-items:center; gap:.35rem;
  width:auto !important; height:auto !important; font-size:.72rem !important;
  font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--dh-taupe) !important; background:none !important;
}
.woocommerce-cart td.product-remove a.remove::before { content:"\2715"; font-size:.9rem; }
.woocommerce-cart td.product-remove a.remove:hover { color:#b3261e !important; }

/* Coupon row + free-shipping note share a line */
.woocommerce-cart .actions {
  display:flex; align-items:center; justify-content:space-between;
  gap:1.2rem; flex-wrap:wrap; padding-top:1.2rem !important;
  border-top:1px solid rgba(200,154,69,.25);
}
.woocommerce-cart .coupon { display:flex; align-items:center; gap:0; flex:0 1 400px; }
.woocommerce-cart .coupon #coupon_code {
  width:230px; border-radius:12px 0 0 12px !important; border-right:none !important;
}
.woocommerce-cart .coupon .button {
  border-radius:0 12px 12px 0 !important;
  background:var(--dh-gold-gradient) !important; color:#fff !important;
  border:none !important; padding:.82rem 1.6rem !important;
}
.dh-cart-ship {
  display:flex; align-items:center; gap:.8rem;
  padding:.9rem 1.2rem; border:1px solid rgba(200,154,69,.35);
  border-radius:14px; background:linear-gradient(160deg,#fffdf8,#f6efe3);
}
.dh-cart-ship .ico svg { width:32px; height:32px; color:var(--dh-gold-deep); }
.dh-cart-ship b {
  display:block; font-size:.76rem; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:var(--dh-gold-deep);
}
.dh-cart-ship span { font-size:.78rem; color:var(--dh-ink-soft); }

/* Order summary panel */
.woocommerce-cart .cart_totals h2 {
  text-align:center; font-family:var(--dh-serif); color:var(--dh-gold-deep);
  font-size:1.15rem; letter-spacing:.1em; text-transform:uppercase; margin:0 0 1rem;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-destination { display:none; }
.woocommerce-cart .cart_totals .shipping th,
.woocommerce-cart .cart_totals .cart-subtotal th,
.woocommerce-cart .cart_totals .order-total th {
  font-family:var(--dh-sans); font-weight:600; font-size:.92rem; text-align:left;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-methods,
.woocommerce-cart .cart_totals .shipping ul { list-style:none; margin:0; padding:0; }
.woocommerce-cart .cart_totals .shipping label { color:#3f7d3f; font-size:.85rem; }

.dh-or {
  display:flex; align-items:center; gap:.8rem; margin:.9rem 0;
  color:var(--dh-taupe); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
}
.dh-or::before, .dh-or::after { content:""; flex:1; height:1px; background:rgba(200,154,69,.35); }
.dh-continue {
  display:flex; align-items:center; justify-content:center; gap:.5rem;
  width:100%; padding:.9rem 1.4rem; border-radius:999px;
  border:1px solid rgba(200,154,69,.55); color:var(--dh-ink);
  font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,250,242,.6));
}
.dh-continue:hover { border-color:var(--dh-gold-deep); color:var(--dh-gold-deep); }
.dh-continue svg { width:15px; height:15px; }
.dh-cart-secure {
  display:flex; align-items:center; gap:.75rem; margin-top:1.2rem;
  padding-top:1.2rem; border-top:1px solid rgba(200,154,69,.25);
}
.dh-cart-secure svg { width:34px; height:34px; color:var(--dh-gold-deep); flex:none; }
.dh-cart-secure b {
  display:block; font-size:.78rem; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:var(--dh-ink);
}
.dh-cart-secure span { font-size:.76rem; color:var(--dh-ink-soft); }

@media (max-width:760px){
  .woocommerce-cart .actions { flex-direction:column; align-items:stretch; }
  .woocommerce-cart .coupon { flex:1 1 auto; }
  .woocommerce-cart .coupon #coupon_code { width:100%; }
}

/* ================================================================== */
/* WooCommerce puts a clearfix on ul.products (::before/::after with   */
/* content:" "). In a CSS grid those pseudo-elements become real grid  */
/* items: ::before consumed the first cell (leaving a gap on the left) */
/* and ::after consumed another, pushing the last card onto a new row. */
/* ================================================================== */
ul.products.dh-shop-grid::before,
ul.products.dh-shop-grid::after,
.related.products ul.products::before,
.related.products ul.products::after,
.up-sells ul.products::before,
.up-sells ul.products::after,
.woocommerce ul.products::before,
.woocommerce ul.products::after {
  content:none !important;
  display:none !important;
}

/* ================================================================== */
/* Mobile overflow — notes + tabs block                                */
/*                                                                     */
/* A `1fr` grid track is minmax(auto,1fr), and `auto` floors at the    */
/* item's min-content. The tab row (display:flex, no wrap) had a       */
/* min-content of ~539px, so the track refused to shrink below that    */
/* and pushed the whole page 264px wider than a 375px screen.          */
/* minmax(0,…) lets the track shrink; min-width:0 does the same for    */
/* the flex/grid children inside.                                      */
/* ================================================================== */
.dh-notes-tabs { grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr); }
.dh-notes-box, .dh-tabs-box { min-width:0; }
.dh-note, .dh-note > div, .dh-tab-trust .t, .dh-tab-trust .t > div { min-width:0; }
.dh-note p, .dh-note b { overflow-wrap:anywhere; }

.dh-tabs-box .woocommerce-tabs ul.tabs { flex-wrap:wrap; gap:1.1rem; }
.dh-tabs-box .woocommerce-tabs .panel,
.dh-tabs-box .woocommerce-Tabs-panel { overflow-wrap:anywhere; }
.dh-tabs-box .woocommerce-tabs .panel table { display:block; overflow-x:auto; }

@media (max-width:900px){
  .dh-notes-tabs { grid-template-columns:minmax(0,1fr); }
  .dh-tabs-box .woocommerce-tabs ul.tabs { gap:.7rem; }
  .dh-tabs-box .woocommerce-tabs ul.tabs li a { font-size:.72rem; letter-spacing:.06em; }
  .dh-notes-box .dh-note { padding-left:1.2rem; gap:.7rem; }
  .dh-notes-box .dh-note .ico svg { width:28px; height:28px; }
}

/* Safety net: no grid/flex layout in the theme may force the page wider */
.dh-product-layout, .dh-shop-layout, .dh-cart-layout,
.dh-account-grid, .dh-about-block, .dh-promise,
.dh-faq-layout, .dh-contact-layout { min-width:0; }
.dh-product-layout > *, .dh-shop-layout > *, .dh-faq-layout > *,
.dh-contact-layout > *, .dh-about-block > *, .dh-promise > * { min-width:0; }

/* ================================================================== */
/* Image rendering — keep downscaled artwork crisp                     */
/* ================================================================== */
.dh-scene-img img, .mood-img img, .dh-policy-visual img,
.dh-shop-hero .banner-img img, .dh-about-hero .banner-img img,
.dh-faq-side .shot img, .dh-about-block .shot img {
  image-rendering:auto;
  -webkit-backface-visibility:hidden;   /* avoids blurry compositing on transforms */
  transform:translateZ(0);
}
/* The theme animates these in; a mid-animation repaint softened them */
.reveal img { will-change:auto; }

/* ================================================================== */
/* Mood cards — the artwork is 1289x1600 (portrait) but the frame was  */
/* 4/3 landscape, so object-fit:cover sliced the bottle's cap off.     */
/* 4/5 matches the source almost exactly, so nothing is cropped.       */
/* ================================================================== */
.dh-mood-card .mood-img { aspect-ratio:4/5; overflow:hidden; border-radius:14px; }
.dh-mood-card .mood-img img {
  width:100%; height:100%; object-fit:cover; object-position:center;
}
@media (max-width:900px){
  .dh-mood-card .mood-img { aspect-ratio:4/5; }
}

/* ================================================================== */
/* Product gallery on phones — swipeable strip instead of a tall stack */
/*                                                                     */
/* Below the two-column breakpoint the thumbnails were full-width and  */
/* stacked, giving a 2,100px vertical scroll for six images. On touch  */
/* they now run horizontally with scroll-snap, and the up/down arrows  */
/* give way to swiping.                                                */
/* ================================================================== */
@media (max-width:767px){
  .dh-thumb-nav { flex-direction:row; align-items:center; gap:.4rem; }
  .dh-thumb-nav .flex-control-thumbs,
  .dh-gallery-col .flex-control-thumbs {
    flex-direction:row !important;
    flex-wrap:nowrap;
    max-height:none;
    overflow-x:auto; overflow-y:hidden;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
    gap:.5rem; padding:.25rem 0 !important;
    scrollbar-width:none;
  }
  .dh-thumb-nav .flex-control-thumbs::-webkit-scrollbar,
  .dh-gallery-col .flex-control-thumbs::-webkit-scrollbar { display:none; }
  .dh-thumb-nav .flex-control-thumbs li,
  .dh-gallery-col .flex-control-thumbs li {
    width:70px !important; flex:0 0 70px; scroll-snap-align:start;
  }
  .dh-thumb-nav .flex-control-thumbs img,
  .dh-gallery-col .flex-control-thumbs img {
    aspect-ratio:1; border-radius:10px;
  }
  /* Swiping replaces the chevrons on touch */
  .dh-thumb-arrow { display:none !important; }

  /* Main image keeps a comfortable height and stays swipeable */
  .dh-gallery-col .woocommerce-product-gallery__wrapper img {
    max-height:none; width:100%; height:auto;
  }
  .dh-gallery-col .woocommerce-product-gallery { display:block; }
}

/* ================================================================== */
/* Glass button with a metallic gold ring                              */
/*                                                                     */
/* The face must stay translucent so the artwork behind shows through, */
/* which rules out painting the ring as a second background layer —    */
/* that layer covers the whole border box and bleeds through a         */
/* see-through face. Instead the ring is a masked pseudo-element:      */
/* a gradient rectangle with its centre punched out.                   */
/* ================================================================== */
.dh-btn, .dh-btn-ghost, .dh-loadmore, .dh-buy-now, .dh-filter-clear,
.dh-continue, .dh-swatch, .dh-thumb-arrow, .dh-range-go,
.dh-product-card .button, .dh-product-card .added_to_cart,
.woocommerce-account .woocommerce-MyAccount-navigation li a,
.woocommerce-cart .actions .button, .woocommerce-cart .coupon .button,
.dh-nav-glass {
  position:relative;
  border:none !important;
  background:linear-gradient(180deg,
    rgba(255,255,255,.62) 0%,
    rgba(255,255,255,.26) 24%,
    rgba(255,252,245,.09) 52%,
    rgba(248,241,228,.24) 100%) !important;
  background-clip:padding-box !important;
  backdrop-filter:blur(18px) saturate(180%) !important;
  -webkit-backdrop-filter:blur(18px) saturate(180%) !important;
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.95),
    inset 0 -2px 6px rgba(186,146,74,.10),
    0 0 0 1px rgba(255,249,235,.55),
    0 0 28px rgba(228,193,120,.5),
    0 10px 26px rgba(120,85,35,.15) !important;
  color:var(--dh-ink);
}

/* the ring itself */
.dh-btn::after, .dh-btn-ghost::after, .dh-loadmore::after, .dh-buy-now::after,
.dh-filter-clear::after, .dh-continue::after, .dh-swatch::after,
.dh-thumb-arrow::after, .dh-range-go::after,
.dh-product-card .button::after, .dh-product-card .added_to_cart::after,
.woocommerce-account .woocommerce-MyAccount-navigation li a::after,
.woocommerce-cart .actions .button::after, .woocommerce-cart .coupon .button::after,
.dh-nav-glass::after {
  content:""; position:absolute; inset:0; border-radius:inherit;
  padding:2.5px; pointer-events:none; z-index:2;
  background:linear-gradient(150deg,
    #f9ecc9 0%, #d9b063 17%, #b98a2c 39%,
    #f6e4b4 57%, #c39745 79%, #8f6a1c 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
          mask-composite:exclude;
}

.dh-btn:hover, .dh-btn-ghost:hover, .dh-loadmore:hover, .dh-buy-now:hover,
.dh-filter-clear:hover, .dh-continue:hover, .dh-swatch:hover,
.dh-thumb-arrow:hover, .dh-product-card .button:hover {
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,1),
    0 0 32px rgba(228,193,120,.6),
    0 12px 28px rgba(120,85,35,.18) !important;
}

/* selected states go solid gold so hierarchy still reads */
.dh-swatch.on,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
  background:linear-gradient(135deg,#d9a94f 0%,#bd8526 48%,#a97218 100%) !important;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  color:#fff !important;
}

/* keep label and icons above the gloss/ring layers */
.dh-btn > *, .dh-loadmore > *, .dh-buy-now > *, .dh-nav-glass > * { position:relative; z-index:3; }

/* ================================================================== */
/* Retire the older specular-sheen pseudo-elements                     */
/*                                                                     */
/* Earlier versions drew the gloss as a ::before box. On a stadium-     */
/* shaped pill its rounded bottom edge read as a hard line straight     */
/* across the middle — visible on the nav capsule. The highlight now    */
/* lives in the element's own background gradient, so these are off.    */
/* ================================================================== */
.dh-nav-glass::before,
.dh-btn::before, .dh-btn-ghost::before, .dh-loadmore::before,
.dh-buy-now::before, .dh-filter-clear::before, .dh-continue::before,
.dh-swatch::before, .dh-thumb-arrow::before, .dh-range-go::before,
.dh-product-card .button::before, .dh-product-card .added_to_cart::before,
.woocommerce-cart .actions .button::before, .woocommerce-cart .coupon .button::before {
  content:none !important;
  display:none !important;
}

/* The ring pseudo-element must never inherit stray filter/height from any
   earlier rule that targeted the same ::after (that turned the nav capsule's
   ring into a blurred 10px bar). */
.dh-nav-glass::after, .dh-btn::after, .dh-btn-ghost::after, .dh-loadmore::after,
.dh-buy-now::after, .dh-filter-clear::after, .dh-continue::after,
.dh-swatch::after, .dh-thumb-arrow::after, .dh-range-go::after,
.dh-product-card .button::after, .dh-product-card .added_to_cart::after {
  filter:none !important;
  height:auto !important;
  width:auto !important;
  left:0 !important; right:0 !important; top:0 !important; bottom:0 !important;
}

/* Product page bottom trust row now carries the 3D gold artwork */
.dh-prod-trust .ico .dh-img-icon.dh-gold-ico { width:46px; height:46px; }
.dh-prod-trust .ico .dh-img-icon.dh-gold-ico > svg { width:100%; height:100%; }
.dh-prod-trust .t { align-items:center; gap:.9rem; }
@media (max-width:700px){
  .dh-prod-trust .ico .dh-img-icon.dh-gold-ico { width:38px; height:38px; }
}

/* Tab trust row is two items now (IFRA Compliant removed) */
.dh-tab-trust { grid-template-columns:repeat(2,1fr); gap:1.4rem; max-width:520px; }
@media (max-width:700px){ .dh-tab-trust { grid-template-columns:1fr; } }

/* ================================================================== */
/* Product trust row — bare 3D icons                                   */
/* The .ico wrapper was a circular medallion (radial background +      */
/* 1px gold border). With the 3D artwork in place that ring is just    */
/* clutter, so the icon now sits on its own.                           */
/* ================================================================== */
.dh-prod-trust .t .ico {
  width:auto !important; height:auto !important;
  background:none !important;
  border:none !important;
  border-radius:0 !important;
  display:inline-flex !important;
  place-items:initial;
}
.dh-prod-trust .ico .dh-img-icon.dh-gold-ico { width:52px; height:52px; }
.dh-prod-trust .ico .dh-img-icon.dh-gold-ico > svg { width:100%; height:100%; }
@media (max-width:760px){
  .dh-prod-trust .ico .dh-img-icon.dh-gold-ico { width:42px; height:42px; }
}

/* ================================================================== */
/* Collections dropdown in the nav                                     */
/* ================================================================== */
.dh-has-sub { position:relative; display:inline-flex; align-items:center; }
.dh-has-sub > a { display:inline-flex; align-items:center; gap:.3rem; }
.dh-has-sub > a .dh-chev { width:13px; height:13px; transition:transform .18s ease; }
.dh-has-sub:hover > a .dh-chev, .dh-has-sub:focus-within > a .dh-chev { transform:rotate(180deg); }
.dh-submenu {
  position:absolute; top:100%; left:50%; transform:translate(-50%,6px);
  min-width:172px; padding:.5rem; border-radius:16px; z-index:80;
  display:flex; flex-direction:column; gap:.15rem;
  background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(250,244,232,.9));
  backdrop-filter:blur(18px) saturate(170%);
  -webkit-backdrop-filter:blur(18px) saturate(170%);
  border:1px solid rgba(200,154,69,.5);
  box-shadow:0 14px 32px rgba(110,75,30,.2);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
}
.dh-has-sub:hover .dh-submenu, .dh-has-sub:focus-within .dh-submenu {
  opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,4px);
}
.dh-submenu a {
  display:block; padding:.62rem 1rem; border-radius:10px;
  font-family:var(--dh-sans); font-size:.74rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase; color:var(--dh-ink);
}
.dh-submenu a:hover { background:rgba(200,154,69,.15); color:var(--dh-gold-deep); }
.dh-drawer-panel .dh-drawer-sub { padding-left:1.4rem; font-size:.84rem; opacity:.9; }

/* ================================================================== */
/* Collection landing pages                                            */
/* ================================================================== */
.dh-collection-hero { position:relative; overflow:hidden; border-bottom:1px solid rgba(200,154,69,.22);
  background:linear-gradient(120deg,#fffdf8,#f6efe4); }
.dh-collection-hero .dh-container {
  position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr;
  align-items:center; min-height:420px;
}
.dh-collection-hero .txt { padding:3rem 0; max-width:34rem; }
.dh-collection-hero .eyebrow { display:block; }
.dh-collection-hero .dh-flourish { justify-content:flex-start; margin:.5rem 0 1rem; }
.dh-collection-hero .dh-flourish::before { display:none; }
.dh-collection-hero h1 {
  font-family:var(--dh-serif); font-size:clamp(2.1rem,4.2vw,3.3rem);
  text-transform:uppercase; letter-spacing:.01em; line-height:1.08;
}
.dh-collection-hero p { color:var(--dh-ink-soft); margin:1rem 0 0; max-width:44ch; }
.dh-collection-hero .banner-img { position:absolute; right:0; top:0; bottom:0; width:58%; }
.dh-collection-hero .banner-img::before {
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg,#f8f2e8 0%, rgba(248,242,232,.55) 26%, rgba(248,242,232,0) 62%);
}
.dh-collection-hero .banner-img img { width:100%; height:100%; object-fit:cover; }

.dh-collection-heading {
  text-align:center; font-family:var(--dh-serif);
  font-size:clamp(1.5rem,2.8vw,2.1rem); text-transform:uppercase;
  letter-spacing:.03em; margin:0 0 1.8rem;
}
.dh-collection-grid-wrap { padding-top:2.6rem; }
.dh-collection-products { max-width:none; }

/* Gift banner */
.dh-gift-banner {
  display:grid; grid-template-columns:.85fr 1.15fr; gap:2rem; align-items:center;
  border:1px solid rgba(200,154,69,.3); border-radius:var(--dh-radius-lg);
  background:linear-gradient(160deg,#fffdf8,#f7f1e8); overflow:hidden;
}
.dh-gift-banner .shot img { width:100%; height:100%; object-fit:cover; display:block; }
.dh-gift-banner .copy { padding:2rem 2.4rem 2rem 0; }
.dh-gift-banner h2 {
  font-family:var(--dh-serif); font-size:clamp(1.4rem,2.6vw,2rem);
  text-transform:uppercase; letter-spacing:.02em; margin:.5rem 0 .6rem;
}
.dh-gift-banner p { color:var(--dh-ink-soft); margin:0; }

@media (max-width:900px){
  .dh-collection-hero .dh-container { grid-template-columns:1fr; min-height:0; }
  .dh-collection-hero { display:flex; flex-direction:column; }
  .dh-collection-hero .dh-container { order:1; }
  .dh-collection-hero .txt { padding:2rem 0 1.4rem; max-width:none; }
  .dh-collection-hero .banner-img { position:static !important; order:2; width:100% !important; height:230px; }
  .dh-collection-hero .banner-img::before { display:none; }
  .dh-gift-banner { grid-template-columns:1fr; }
  .dh-gift-banner .copy { padding:1.4rem 1.5rem 1.8rem; }
  .dh-gift-banner .shot img { height:210px; }
}

/* ================================================================== */
/* Mobile drawer — Collections is a tap-to-expand accordion            */
/*                                                                     */
/* The nav markup is shared with the desktop pill, where the submenu   */
/* is an absolutely-positioned dropdown. Inside the drawer that pushed */
/* the links outside the panel, so every positioning property is reset */
/* here and the group collapses/expands in flow instead.               */
/* ================================================================== */
.dh-drawer-panel .dh-has-sub {
  display:block !important;
  position:relative !important;
  border-bottom:1px solid rgba(200,154,69,.28);
}
.dh-drawer-panel .dh-has-sub > a {
  display:flex !important; align-items:center; justify-content:space-between;
  padding:1.05rem .2rem;
  font-family:var(--dh-sans); font-size:.92rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--dh-ink);
  cursor:pointer;
}
.dh-drawer-panel .dh-has-sub > a .dh-chev {
  display:block !important; width:16px; height:16px;
  color:var(--dh-gold-deep); transition:transform .22s ease; flex:none;
}
.dh-drawer-panel .dh-has-sub.open > a .dh-chev { transform:rotate(180deg); }

/* collapsed by default; laid out in flow, never absolute */
.dh-drawer-panel .dh-submenu {
  position:static !important;
  left:auto !important; right:auto !important; top:auto !important; bottom:auto !important;
  transform:none !important;
  opacity:1 !important; visibility:visible !important; pointer-events:auto !important;
  min-width:0 !important; width:auto !important;
  background:none !important; backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  border:none !important; box-shadow:none !important; border-radius:0 !important;
  display:block !important;
  max-height:0; overflow:hidden; padding:0 !important;
  transition:max-height .28s ease;
}
.dh-drawer-panel .dh-has-sub.open .dh-submenu { max-height:320px; padding:0 0 .4rem !important; }

.dh-drawer-panel .dh-submenu a {
  display:block !important; padding:.78rem .2rem .78rem 1.3rem;
  border-radius:0 !important; font-size:.84rem; letter-spacing:.14em;
  color:var(--dh-ink-soft); border-bottom:1px solid rgba(200,154,69,.16);
}
.dh-drawer-panel .dh-submenu a:last-child { border-bottom:none; }
.dh-drawer-panel .dh-submenu a::before {
  content:"—"; color:var(--dh-gold); margin-right:.5rem; opacity:.6;
}
.dh-drawer-panel .dh-submenu a:hover { background:rgba(200,154,69,.1); color:var(--dh-gold-deep); }
/* In the drawer the chevron reflects open/closed only — not hover/focus,
   which otherwise flipped it while the group was still collapsed. */
.dh-drawer-panel .dh-has-sub:hover > a .dh-chev,
.dh-drawer-panel .dh-has-sub:focus-within > a .dh-chev { transform:none; }
.dh-drawer-panel .dh-has-sub.open > a .dh-chev { transform:rotate(180deg) !important; }

/* ================================================================== */
/* Empty cart — the default is a bare icon on white                    */
/* ================================================================== */
.woocommerce-cart .cart-empty,
.woocommerce-cart .wc-empty-cart-message {
  text-align:center; font-family:var(--dh-serif);
  font-size:1.4rem; color:var(--dh-ink); margin:1rem 0 .4rem;
}
.woocommerce-cart .cart-empty::before,
.woocommerce-cart .wc-empty-cart-message::before { display:none !important; }
.woocommerce-cart .return-to-shop { text-align:center; margin:1.4rem 0 2.4rem; }
.woocommerce-cart .return-to-shop .button {
  display:inline-block;
  background:linear-gradient(135deg,#d9a94f 0%,#bd8526 48%,#a97218 100%) !important;
  color:#fff !important; border-radius:999px !important;
  padding:1rem 2.4rem !important; font-size:.8rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
  border:1.5px solid rgba(185,130,42,.95) !important;
}
.woocommerce-cart .cart-empty ~ .dh-cart-ship,
.woocommerce-cart .wc-empty-cart-message ~ .dh-cart-ship { display:none; }

/* ================================================================== */
/* Cart table — column widths, thumbnail, remove control              */
/* WooCommerce's classic table leads with a narrow remove column and   */
/* a separate thumbnail column, which squeezed the product cell and    */
/* pushed the headings right. Remove is relocated by JS; its column is */
/* hidden and the rest are given explicit widths.                      */
/* ================================================================== */
.woocommerce-cart table.shop_table.cart { table-layout:fixed; width:100%; }
.woocommerce-cart table.shop_table.cart th.product-remove,
.woocommerce-cart table.shop_table.cart td.product-remove { display:none !important; }

.woocommerce-cart table.shop_table.cart th.product-thumbnail,
.woocommerce-cart table.shop_table.cart td.product-thumbnail { width:120px; padding-right:0; }
.woocommerce-cart table.shop_table.cart th.product-name,
.woocommerce-cart table.shop_table.cart td.product-name { width:auto; text-align:left; padding-left:1.1rem; }
.woocommerce-cart table.shop_table.cart th.product-price,
.woocommerce-cart table.shop_table.cart td.product-price,
.woocommerce-cart table.shop_table.cart th.product-subtotal,
.woocommerce-cart table.shop_table.cart td.product-subtotal { width:15%; text-align:center; }
.woocommerce-cart table.shop_table.cart th.product-quantity,
.woocommerce-cart table.shop_table.cart td.product-quantity { width:18%; text-align:center; }

/* the PRODUCT heading spans the thumbnail + name columns */
.woocommerce-cart table.shop_table.cart th.product-thumbnail { text-indent:-9999px; }

.woocommerce-cart td.product-thumbnail img {
  width:104px !important; height:104px !important; max-width:none !important;
  object-fit:cover; border-radius:14px; border:1px solid rgba(200,154,69,.25); display:block;
}
.woocommerce-cart td.product-name a {
  display:block; font-family:var(--dh-serif); font-size:1.15rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.02em; color:var(--dh-ink); line-height:1.25;
}
.woocommerce-cart td.product-name .variation { margin:.35rem 0 0; font-size:.8rem; }

/* relocated remove control */
.woocommerce-cart td.product-quantity .dh-remove {
  display:inline-flex !important; align-items:center; gap:.35rem;
  margin:.7rem auto 0; width:auto !important; height:auto !important;
  font-size:0 !important; background:none !important; color:var(--dh-taupe) !important;
  border-radius:0 !important;
}
.woocommerce-cart td.product-quantity .dh-remove::before { content:"\2715"; font-size:.85rem; }
.woocommerce-cart td.product-quantity .dh-remove-label {
  font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
}
.woocommerce-cart td.product-quantity .dh-remove:hover { color:#b3261e !important; }
.woocommerce-cart td.product-quantity .quantity { display:inline-flex; }

/* Coupon / update row */
.woocommerce-cart .actions .coupon .button,
.woocommerce-cart .actions > .button {
  white-space:nowrap; padding:.82rem 1.4rem !important; font-size:.72rem !important;
}
.woocommerce-cart .actions > .button[name="update_cart"] {
  margin-left:.6rem; background:none !important; color:var(--dh-gold-deep) !important;
}

/* ================================================================== */
/* Checkout — two-column layout and section headings                   */
/* ================================================================== */
.woocommerce-checkout .woocommerce { display:block; }
.woocommerce-checkout form.checkout.woocommerce-checkout {
  display:grid !important;
  grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);
  gap:1.6rem; align-items:start;
}
.woocommerce-checkout form.checkout #customer_details { grid-column:1; grid-row:1 / span 2; }
.woocommerce-checkout form.checkout #order_review_heading { grid-column:2; grid-row:1; }
.woocommerce-checkout form.checkout #order_review { grid-column:2; grid-row:2; }

/* the coupon toggle sits above the grid as a slim bar */
.woocommerce-checkout .woocommerce-form-coupon-toggle { margin-bottom:1.2rem; }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
  display:flex; align-items:center; gap:.6rem;
  background:linear-gradient(160deg,#fffdf8,#f7f1e8) !important;
  border:1px solid rgba(200,154,69,.3) !important; border-top:1px solid rgba(200,154,69,.3) !important;
  border-radius:var(--dh-radius); padding:.9rem 1.2rem !important;
  font-size:.78rem !important; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:var(--dh-ink) !important;
}
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a { color:var(--dh-gold-deep); }

.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-shipping-fields > h3,
.woocommerce-checkout .woocommerce-additional-fields > h3,
.woocommerce-checkout #order_review_heading {
  font-family:var(--dh-sans) !important; font-size:.78rem !important; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--dh-gold-deep) !important;
  margin:0 0 1.1rem; padding:0;
}
.woocommerce-checkout #order_review_heading { text-align:center; font-family:var(--dh-serif) !important; font-size:1.15rem !important; }

/* Select2 country/state fields */
.woocommerce-checkout .select2-container--default .select2-selection--single {
  height:auto !important; padding:.8rem 1rem !important;
  border:1px solid rgba(200,154,69,.4) !important; border-radius:12px !important;
  background:rgba(255,255,255,.85) !important;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height:1.3 !important; padding:0 !important; color:var(--dh-ink);
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
  height:100% !important; right:.7rem;
}
.woocommerce-checkout .form-row .woocommerce-input-wrapper { display:block; width:100%; }

@media (max-width:960px){
  .woocommerce-checkout form.checkout.woocommerce-checkout { grid-template-columns:minmax(0,1fr); }
  .woocommerce-checkout form.checkout #customer_details,
  .woocommerce-checkout form.checkout #order_review_heading,
  .woocommerce-checkout form.checkout #order_review { grid-column:1; grid-row:auto; }
}
@media (max-width:760px){
  .woocommerce-cart table.shop_table.cart { table-layout:auto; }
  .woocommerce-cart td.product-thumbnail img { width:72px !important; height:72px !important; }
}

/* ================================================================== */
/* Checkout — order panel sits level with the form card                */
/* The heading is moved inside #order_review by JS, so the grid is now */
/* two columns on a single row and both cards start at the same top.   */
/* ================================================================== */
.woocommerce-checkout form.checkout.woocommerce-checkout {
  grid-template-rows:auto !important;
  align-items:start !important;
}
.woocommerce-checkout form.checkout #customer_details {
  grid-column:1 !important; grid-row:1 !important;
}
.woocommerce-checkout form.checkout #order_review {
  grid-column:2 !important; grid-row:1 !important;
}
/* if JS hasn't run yet, keep the stray heading out of the layout */
.woocommerce-checkout form.checkout > #order_review_heading { display:none; }
.woocommerce-checkout #order_review > #order_review_heading {
  display:block; text-align:center;
  font-family:var(--dh-serif) !important; font-size:1.15rem !important;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--dh-gold-deep) !important; margin:0 0 1rem !important;
  padding-bottom:.8rem; border-bottom:1px solid rgba(200,154,69,.25);
}

/* Country / State selects were rendering as small boxes */
.woocommerce-checkout .form-row .select2-container,
.woocommerce-checkout .form-row select.country_select,
.woocommerce-checkout .form-row select.state_select {
  width:100% !important; max-width:none !important; display:block !important;
}
.woocommerce-checkout .form-row .woocommerce-input-wrapper > .select2-container { width:100% !important; }

/* Inline validation messages */
.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
.woocommerce-checkout .form-row.woocommerce-invalid .select2-selection--single {
  border-color:#c0442f !important;
}
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout ul.woocommerce-error {
  background:rgba(192,68,47,.06); border:1px solid rgba(192,68,47,.35);
  border-top:3px solid #c0442f; border-radius:var(--dh-radius);
  color:#8c2018; padding:1rem 1.2rem; list-style:none; margin:0 0 1.2rem;
}
.woocommerce-checkout .woocommerce-error li { margin:.2rem 0; font-size:.88rem; }

/* Order-review table tidy-ups */
.woocommerce-checkout #order_review table th,
.woocommerce-checkout #order_review table td { text-align:left !important; vertical-align:top; }
.woocommerce-checkout #order_review table td.product-total,
.woocommerce-checkout #order_review table tfoot td { text-align:right !important; white-space:nowrap; padding-left:1rem; }
.woocommerce-checkout #order_review table td.product-name { padding-right:.8rem; font-size:.9rem; }
.woocommerce-checkout #order_review .shipping th { font-weight:600; }
.woocommerce-checkout #payment ul.payment_methods { list-style:none !important; padding:.9rem 1rem !important; margin:0 0 1rem; }
.woocommerce-checkout #payment ul.payment_methods li { list-style:none !important; }
.woocommerce-checkout #payment ul.payment_methods li::marker { content:none; }

/* ================================================================== */
/* Empty cart — branded panel                                          */
/* ================================================================== */
.dh-empty-cart {
  text-align:center; padding:3.4rem 1.5rem 3.8rem;
  border:1px solid rgba(200,154,69,.3); border-radius:var(--dh-radius-lg);
  background:linear-gradient(160deg,rgba(255,253,248,.9),rgba(247,241,232,.85));
  box-shadow:var(--dh-shadow-soft);
}
.dh-empty-cart .orb {
  width:190px; height:190px; margin:0 auto 1.6rem;
  border-radius:50%; display:grid; place-items:center;
  color:var(--dh-gold-deep);
  background:radial-gradient(circle at 34% 28%, #fff 0%, rgba(255,250,240,.55) 46%, rgba(240,229,210,.28) 72%, rgba(240,229,210,0) 100%);
  box-shadow:inset 0 2px 3px rgba(255,255,255,.9), 0 0 46px rgba(228,193,120,.35);
}
.dh-empty-cart .orb svg { width:86px; height:86px; }
.dh-empty-cart h2 {
  font-family:var(--dh-serif); font-size:clamp(1.7rem,3.4vw,2.4rem);
  text-transform:uppercase; letter-spacing:.03em; margin:0;
}
.dh-empty-cart .dh-flourish { margin:.6rem 0 1.1rem; }
.dh-empty-cart p { color:var(--dh-ink-soft); margin:0 0 1.8rem; line-height:1.75; }
.dh-empty-cart .dh-empty-cta {
  display:inline-flex; align-items:center; gap:.7rem;
  padding:1rem 2.4rem; border-radius:999px;
  background:linear-gradient(135deg,#d9a94f 0%,#bd8526 48%,#a97218 100%);
  color:#fff; font-size:.82rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  border:1.5px solid rgba(185,130,42,.95);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.4), 0 8px 22px rgba(185,130,42,.3);
}
.dh-empty-cart .dh-empty-cta:hover { filter:brightness(1.06); }
.dh-empty-cart .dh-empty-cta svg { width:15px; height:15px; }
/* WooCommerce's own empty-cart notice is replaced by the panel above */
.woocommerce-cart .cart-empty, .woocommerce-cart .return-to-shop { display:none !important; }

/* ================================================================== */
/* FAQ page — image proportions and a roomier trust grid               */
/* ================================================================== */
.dh-faq-side .shot {
  border-radius:var(--dh-radius-lg); overflow:hidden; box-shadow:var(--dh-shadow-card);
}
.dh-faq-side .shot img {
  width:100%; height:auto; display:block;
  aspect-ratio:4/5; object-fit:cover;   /* stops the landscape crop stretching */
}
.dh-faq-trust {
  grid-template-columns:repeat(2,1fr);
  gap:1rem 1.2rem; padding:1.4rem 1.2rem;
}
.dh-faq-trust .t { gap:.45rem; padding:.2rem; }
.dh-faq-trust .t + .t { border-left:none; }
.dh-faq-trust .t:nth-child(even) { border-left:1px solid rgba(200,154,69,.22); padding-left:1rem; }
.dh-faq-trust b { font-size:.74rem; line-height:1.3; }
.dh-faq-trust .s { font-size:.72rem; line-height:1.45; }

/* Answers are visible by default, as in the design; the + collapses them */
.dh-faq-item .dh-faq-a { max-height:none; }
.dh-faq-item.collapsed .dh-faq-a { max-height:0; }
.dh-faq-item.collapsed .dh-faq-q .ico { transform:none; }
.dh-faq-q .ico { transform:rotate(45deg); }
.dh-faq-a p { padding:0 1.5rem 1.4rem 5.2rem; }
@media (max-width:700px){ .dh-faq-a p { padding-left:1.5rem; } }
/* superseded by the collapse-on-click behaviour above */
.dh-faq-item.open .dh-faq-q .ico { transform:rotate(45deg); }

/* ================================================================== */
/* Cart — button clipping and full-width reassurance row               */
/* ================================================================== */
/* The glass treatment adds overflow:hidden, and the flex row let the
   button shrink below its label, so "Update Cart" was being cut off. */
.woocommerce-cart .actions .button,
.woocommerce-cart .coupon .button,
.woocommerce-cart .actions > .button {
  overflow:visible !important;
  flex:none !important;
  width:auto !important;
  min-width:max-content;
  white-space:nowrap !important;
}

/* dh_checkout_trust() prints inside .woocommerce, which the cart turns into
   a two-column grid — the row was landing in column one. Span the full row. */
.woocommerce-cart .dh-woo-wrap .woocommerce > .dh-checkout-trust,
.woocommerce-cart .dh-checkout-trust {
  grid-column:1 / -1 !important;
  width:100%;
}
.dh-checkout-trust .t > div { min-width:0; }
.dh-checkout-trust b { line-height:1.3; }
.dh-checkout-trust span { line-height:1.5; }

/* ================================================================== */
/* MOBILE — checkout and cart                                          */
/*                                                                     */
/* The desktop grid placements above use !important, which outranks a  */
/* plain media query no matter where it sits. On a phone that forced   */
/* the order panel into a second column of a one-column grid, creating */
/* a phantom track and squeezing every field to ~85px. Reset with the  */
/* same weight here.                                                   */
/* ================================================================== */
@media (max-width:960px){
  .woocommerce-checkout form.checkout.woocommerce-checkout {
    display:block !important;
    grid-template-columns:none !important;
  }
  .woocommerce-checkout form.checkout #customer_details,
  .woocommerce-checkout form.checkout #order_review,
  .woocommerce-checkout form.checkout #order_review_heading {
    grid-column:auto !important; grid-row:auto !important;
    width:100% !important; float:none !important;
    display:block !important;
  }
  .woocommerce-checkout form.checkout #order_review { margin-top:1.4rem; }

  /* two-up name fields stack */
  .woocommerce-checkout .form-row-first,
  .woocommerce-checkout .form-row-last {
    width:100% !important; float:none !important; margin-left:0 !important;
  }
  .woocommerce-checkout .form-row { padding:0 0 1rem !important; }
  .woocommerce-checkout .form-row label { white-space:normal; }
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout #order_review { padding:1.2rem !important; }
}

@media (max-width:760px){
  /* ---- Cart: WooCommerce hides the thumbnail on small screens ---- */
  .woocommerce-cart table.shop_table_responsive tr td.product-thumbnail,
  .woocommerce-cart table.shop_table.cart td.product-thumbnail {
    display:block !important; width:100% !important;
    text-align:center; padding:0 0 .9rem !important;
  }
  .woocommerce-cart table.shop_table_responsive tr td.product-thumbnail::before {
    display:none !important;   /* no "Thumbnail:" data-title label */
  }
  .woocommerce-cart td.product-thumbnail img {
    width:150px !important; height:150px !important;
    margin:0 auto; border-radius:16px;
  }

  /* each item becomes a card */
  .woocommerce-cart table.shop_table.cart tr.cart_item {
    display:block; padding:1.1rem 0 1.3rem;
    border-bottom:1px solid rgba(200,154,69,.22);
  }
  .woocommerce-cart table.shop_table.cart tr.cart_item td {
    display:flex; align-items:center; justify-content:space-between;
    gap:1rem; width:100% !important; padding:.5rem 0 !important;
    border:none !important; text-align:right !important;
  }
  .woocommerce-cart table.shop_table.cart tr.cart_item td::before {
    font-family:var(--dh-sans); font-size:.72rem; font-weight:700;
    letter-spacing:.1em; text-transform:uppercase; color:var(--dh-gold-deep);
    float:none !important;
  }
  .woocommerce-cart table.shop_table.cart td.product-name { text-align:right !important; }
  .woocommerce-cart td.product-name a { font-size:1rem; text-align:right; }
  .woocommerce-cart table.shop_table.cart td.product-quantity {
    flex-wrap:wrap; justify-content:flex-end;
  }
  .woocommerce-cart td.product-quantity .dh-remove { margin:.4rem 0 0; }

  /* coupon + update stack full width */
  .woocommerce-cart .actions { flex-direction:column; align-items:stretch; gap:.7rem; }
  .woocommerce-cart .coupon { width:100%; }
  .woocommerce-cart .coupon #coupon_code { width:100% !important; }
  .woocommerce-cart .actions > .button,
  .woocommerce-cart .coupon .button { width:100% !important; margin-left:0 !important; }
}

/* ================================================================== */
/* Slide-out cart                                                      */
/* ================================================================== */
.dh-cart-drawer {
  position:fixed; inset:0; z-index:120;
  background:rgba(40,28,12,.34); backdrop-filter:blur(3px);
  opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s;
}
.dh-cart-drawer.open { opacity:1; visibility:visible; }
body.dh-cart-open { overflow:hidden; }

.dh-cart-panel {
  position:absolute; top:0; right:0; height:100%;
  width:min(420px, 92vw); display:flex; flex-direction:column;
  background:linear-gradient(180deg,#fffdf8,#faf4ea);
  border-left:1px solid rgba(200,154,69,.35);
  box-shadow:-18px 0 46px rgba(110,75,30,.22);
  transform:translateX(100%); transition:transform .3s cubic-bezier(.4,0,.2,1);
}
.dh-cart-drawer.open .dh-cart-panel { transform:translateX(0); }

.dh-cart-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:1.2rem 1.3rem; border-bottom:1px solid rgba(200,154,69,.28); flex:none;
}
.dh-cart-head h2 { font-family:var(--dh-serif); font-size:1.4rem; margin:0; }
.dh-cart-close { background:none; border:none; color:var(--dh-gold-deep); padding:.3rem; }
.dh-cart-close svg { width:22px; height:22px; }

.dh-cart-body { flex:1; overflow-y:auto; padding:1.1rem 1.3rem 1.4rem; }
.dh-cart-body ul.cart_list:not(.dh-mini-list) { list-style:none; margin:0; padding:0; }
.dh-cart-body ul.cart_list:not(.dh-mini-list) li {
  display:grid; grid-template-columns:64px 1fr auto; gap:.85rem;
  align-items:start; padding:.95rem 0; border-bottom:1px solid rgba(200,154,69,.2);
  position:relative;
}
.dh-cart-body ul.cart_list:not(.dh-mini-list) li img {
  grid-column:1; width:64px !important; height:64px !important;
  object-fit:cover; border-radius:12px; border:1px solid rgba(200,154,69,.25);
  float:none !important; margin:0 !important;
}
.dh-cart-body ul.cart_list:not(.dh-mini-list) li a:not(.remove) {
  grid-column:2; font-family:var(--dh-sans); font-weight:700;
  font-size:.88rem; color:var(--dh-ink); text-decoration:none; display:block;
}
.dh-cart-body ul.cart_list:not(.dh-mini-list) li .quantity {
  grid-column:2; font-size:.82rem; color:var(--dh-ink-soft); margin-top:.3rem;
}
.dh-cart-body ul.cart_list:not(.dh-mini-list) li .woocommerce-Price-amount {
  font-family:var(--dh-price); font-weight:700; color:var(--dh-gold-deep);
}
.dh-cart-body ul.cart_list:not(.dh-mini-list) li a.remove {
  grid-column:3; position:static !important; color:var(--dh-taupe) !important;
  background:none !important; font-size:1.1rem !important; line-height:1 !important;
  width:auto !important; height:auto !important;
}
.dh-cart-body ul.cart_list:not(.dh-mini-list) li a.remove:hover { color:#b3261e !important; }
.dh-cart-body ul.cart_list:not(.dh-mini-list) .variation { font-size:.76rem; color:var(--dh-ink-soft); margin:.2rem 0 0; }
.dh-cart-body ul.cart_list:not(.dh-mini-list) .variation dt,
.dh-cart-body ul.cart_list:not(.dh-mini-list) .variation dd { display:inline; margin:0; }

.dh-cart-body .woocommerce-mini-cart__total {
  display:flex; align-items:center; justify-content:space-between;
  margin:1.2rem 0 1rem; padding-top:1rem;
  border-top:1px solid rgba(200,154,69,.3);
  font-family:var(--dh-sans); font-weight:700; font-size:.9rem;
}
.dh-cart-body .woocommerce-mini-cart__total .woocommerce-Price-amount {
  font-family:var(--dh-price); font-size:1.4rem; color:var(--dh-gold-deep);
}
.dh-cart-body .woocommerce-mini-cart__buttons {
  display:flex; flex-direction:column; gap:.7rem; margin:0;
}
.dh-cart-body .woocommerce-mini-cart__buttons .button {
  display:block; text-align:center; border-radius:999px;
  padding:.95rem 1.4rem !important; font-size:.8rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
}
.dh-cart-body .woocommerce-mini-cart__buttons .checkout {
  background:linear-gradient(135deg,#d9a94f 0%,#bd8526 48%,#a97218 100%) !important;
  color:#fff !important; border:1.5px solid rgba(185,130,42,.95) !important;
}
.dh-cart-body .woocommerce-mini-cart__empty-message {
  text-align:center; color:var(--dh-ink-soft); padding:2.4rem 0;
  font-family:var(--dh-serif); font-size:1.1rem;
}

/* ================================================================== */
/* Mobile header — burger left, logo centred, actions right            */
/* The burger sits first in the markup and is hidden on desktop, so a  */
/* simple flex row gives the right order on every size.                */
/* ================================================================== */
.dh-header-inner .dh-burger { display:none; }

@media (max-width:900px){
  .dh-header-inner { display:flex; align-items:center; gap:.5rem; position:relative; }
  .dh-header-inner .dh-burger { display:grid; order:1; flex:none; }
  /* the burger is one icon and the actions are three, so flex centring would
     sit the logo off-centre — pin it to the true middle instead */
  .dh-logo {
    order:2; position:absolute; left:50%; transform:translateX(-50%);
    display:flex; justify-content:center; pointer-events:auto;
  }
  .dh-header-actions { order:3; flex:none; gap:.5rem; margin-left:auto; }
  .dh-header-actions .dh-icon-btn { width:34px; height:34px; }
  .dh-header-actions .dh-icon-btn svg { width:21px; height:21px; }
  .dh-logo img, .dh-logo-img, .dh-header .custom-logo { margin:0 auto; }
}
@media (max-width:400px){
  .dh-header-actions { gap:.3rem; }
  .dh-header-actions .dh-icon-btn { width:30px; height:30px; }
  .dh-header-actions .dh-icon-btn svg { width:19px; height:19px; }
}

/* ================================================================== */
/* Mobile menu slides in from the left (matching the burger's side)     */
/* ================================================================== */
.dh-drawer-panel {
  right:auto !important; left:0 !important;
  transform:translateX(-100%) !important;
  box-shadow:10px 0 40px rgba(110,75,25,.2) !important;
}
.dh-drawer.open .dh-drawer-panel { transform:translateX(0) !important; }
.dh-drawer-panel .dh-drawer-close { margin-left:auto; }

/* ================================================================== */
/* Slide-out cart contents                                             */
/* ================================================================== */
.dh-cart-panel.is-busy { opacity:.6; pointer-events:none; transition:opacity .12s; }

.dh-mini-list { list-style:none; margin:0; padding:0; }
.dh-mini-item {
  display:grid; grid-template-columns:76px 1fr auto; gap:.9rem;
  align-items:start; padding:1rem 0;
  border-bottom:1px solid rgba(200,154,69,.2);
}
.dh-mini-item .shot img {
  width:76px !important; height:76px !important; object-fit:cover;
  border-radius:12px; border:1px solid rgba(200,154,69,.25);
  margin:0 !important; float:none !important; display:block;
}
.dh-mini-item .info { min-width:0; }
.dh-mini-item .name a, .dh-mini-item .name {
  font-family:var(--dh-sans); font-weight:700; font-size:.9rem;
  color:var(--dh-ink); text-decoration:none; display:block; line-height:1.3;
}
.dh-mini-item .meta {
  display:block; font-size:.78rem; color:var(--dh-ink-soft); margin:.2rem 0 0;
}
.dh-mini-item .meta dl, .dh-mini-item .meta dt, .dh-mini-item .meta dd,
.dh-mini-item .meta p { display:inline; margin:0; font-weight:400; }
.dh-mini-item .meta dt { margin-right:.3em; }
.dh-mini-item .meta dd + dt { margin-left:.5em; }
.dh-mini-item .price {
  display:block; margin:.4rem 0 0;
  font-family:var(--dh-price); font-weight:700; font-size:1rem; color:var(--dh-ink);
}
.dh-mini-item .ctrl { display:flex; flex-direction:column; align-items:flex-end; gap:.6rem; }
.dh-mini-remove { color:var(--dh-taupe); line-height:0; }
.dh-mini-remove svg { width:18px; height:18px; }
.dh-mini-remove:hover { color:#b3261e; }
.dh-mini-qty {
  display:inline-flex; align-items:center; gap:.1rem;
  border:1px solid rgba(200,154,69,.45); border-radius:10px; background:#fff;
}
.dh-mini-step {
  width:30px; height:30px; border:none; background:none;
  color:var(--dh-gold-deep); font-size:1rem; line-height:1;
}
.dh-mini-step:hover { background:rgba(200,154,69,.12); }
.dh-mini-qty .n { min-width:26px; text-align:center; font-weight:700; font-size:.86rem; }

.dh-mini-summary {
  margin-top:1.1rem; padding:1.1rem 1.2rem;
  border:1px solid rgba(200,154,69,.3); border-radius:var(--dh-radius);
  background:linear-gradient(160deg,#fffdf8,#f7f1e8);
}
.dh-mini-summary .head {
  display:flex; align-items:baseline; justify-content:space-between;
  font-family:var(--dh-sans); font-weight:700; font-size:.9rem; margin-bottom:.7rem;
}
.dh-mini-summary .head .items { font-size:.78rem; font-weight:600; color:var(--dh-ink-soft); }
.dh-mini-summary .row {
  display:flex; align-items:center; justify-content:space-between;
  font-size:.86rem; padding:.32rem 0; color:var(--dh-ink-soft);
}
.dh-mini-summary .row.save { color:#3f7d3f; }
.dh-mini-summary .row.total {
  margin-top:.5rem; padding-top:.7rem; border-top:1px solid rgba(200,154,69,.28);
  font-weight:700; color:var(--dh-ink); font-size:1rem;
}
.dh-mini-summary .row.total .woocommerce-Price-amount {
  font-family:var(--dh-price); font-size:1.25rem; color:var(--dh-gold-deep);
}
.dh-mini-summary .row .woocommerce-Price-amount { font-family:var(--dh-price); font-weight:700; }
.dh-mini-summary .note { margin:.7rem 0 0; font-size:.72rem; color:var(--dh-ink-soft); }

.dh-mini-trust {
  display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem;
  margin:1rem 0; padding:.9rem 0; border-top:1px solid rgba(200,154,69,.22);
  border-bottom:1px solid rgba(200,154,69,.22);
}
.dh-mini-trust .t { display:flex; align-items:center; gap:.45rem; font-size:.68rem; color:var(--dh-ink-soft); }
.dh-mini-trust .t + .t { border-left:1px solid rgba(200,154,69,.2); padding-left:.5rem; }
.dh-mini-trust svg { width:22px; height:22px; color:var(--dh-gold-deep); flex:none; }
.dh-mini-trust b { display:block; color:var(--dh-ink); font-size:.7rem; }

.dh-mini-checkout {
  display:flex; align-items:center; justify-content:center; gap:.8rem;
  padding:1rem 1.4rem; border-radius:999px;
  background:linear-gradient(135deg,#2a2521,#171513); color:#fff;
  font-size:.84rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  box-shadow:0 10px 26px rgba(23,21,19,.3);
}
.dh-mini-checkout:hover { filter:brightness(1.15); }
.dh-mini-checkout .amt { font-family:var(--dh-price); letter-spacing:0; }
.dh-mini-checkout .amt .woocommerce-Price-amount { color:#fff; }
.dh-mini-checkout svg { width:15px; height:15px; }
.dh-mini-shop {
  display:block; text-align:center; margin-top:1rem; padding:.9rem 1.4rem;
  border:1px solid rgba(200,154,69,.55); border-radius:999px;
  color:var(--dh-gold-deep); font-size:.78rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
}

@media (min-width:1024px){ .dh-cart-panel { width:min(440px, 40vw); } }
@media (max-width:420px){
  .dh-mini-item { grid-template-columns:64px 1fr auto; gap:.7rem; }
  .dh-mini-item .shot img { width:64px !important; height:64px !important; }
  .dh-mini-trust { grid-template-columns:repeat(3,1fr); gap:.3rem; }
  .dh-mini-trust .t { font-size:.62rem; }
}

/* ================================================================== */
/* Wordmark: DAVID'S HARP set in gold, in place of the logo image      */
/* ================================================================== */
/* .dh-logo carries a white emboss shadow meant for solid-colour text. Behind
   a gradient-filled glyph it reads as a pale halo, so clear it here. */
.dh-logo-type, .dh-logo-type .dh-wordmark { text-shadow:none; }
.dh-logo-type { text-decoration:none; line-height:1; letter-spacing:0; }
.dh-wordmark {
  display:block;
  font-family:var(--dh-serif, 'Cormorant Garamond', serif);
  font-weight:700;
  font-size:clamp(1rem, 2.4vw, 1.85rem);
  letter-spacing:.11em;
  text-transform:uppercase;
  white-space:nowrap;
  /* A narrow gold ramp, not a wide one: serif strokes are thin, and against
     the cream header any pale midtone reads as grey rather than gold. */
  background:linear-gradient(103deg,#8f6320 0%,#c89440 38%,#d9ab55 52%,#a9762c 72%,#8f6320 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:#a9762c;
}
/* On phones the wordmark is centred on the viewport while the burger (~46px)
   and the three action icons (~100px) flank it unequally, so the usable width
   is twice the distance from centre to the icons. Size it from that rather
   than from a guess, and give it a 12px cushion on the tighter side. */
@media (max-width:600px){
  .dh-wordmark {
    font-size:clamp(.82rem, calc((100vw - 246px) / 8.6), 1.15rem);
    letter-spacing:.06em;
  }
}
@media (max-width:380px){
  .dh-wordmark { letter-spacing:.03em; }
  .dh-header-actions { gap:2px; }
  .dh-header-actions .dh-icon-btn { width:26px; height:26px; padding:0 2px; }
  .dh-header-actions .dh-icon-btn svg { width:17px; height:17px; }
}

/* ================================================================== */
/* Cart line: plain size line, dark price (matching the reference)      */
/* ================================================================== */
.dh-mini-item .meta { font-size:.82rem; }
.dh-mini-item .price .woocommerce-Price-amount,
.dh-mini-item .price {
  color:var(--dh-ink) !important; font-weight:700; font-size:1.02rem;
}
.dh-mini-item .shot img { width:82px !important; height:96px !important; }
.dh-mini-item { grid-template-columns:82px 1fr auto; }
.dh-mini-item .ctrl { justify-content:space-between; align-self:stretch; padding:.15rem 0 .35rem; }
@media (max-width:420px){
  .dh-mini-item { grid-template-columns:70px 1fr auto; }
  .dh-mini-item .shot img { width:70px !important; height:84px !important; }
}

/* ================================================================== */
/* Stacking: keep the gallery zoom control inside the gallery          */
/* ================================================================== */
/* WooCommerce gives .woocommerce-product-gallery__trigger z-index 99 but
   leaves its parent at z-index:auto, so the magnifier joins the root
   stacking context and floats over the sticky header — landing right on the
   cart icon on narrow screens. Giving the gallery its own stacking context
   traps the trigger inside it. */
.woocommerce-product-gallery,
.dh-gallery-col .woocommerce-product-gallery { position:relative; z-index:0; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { z-index:5; }

/* Header sits above page content; the panels sit above the header. */
#dh-header, .dh-header { z-index:100; }
.dh-drawer, .dh-cart-drawer { z-index:1200; }
.dh-search-panel { z-index:1210; }

/* Nothing from the page should show through an open panel. */
body.dh-cart-open .woocommerce-product-gallery__trigger,
body.dh-nav-open .woocommerce-product-gallery__trigger { display:none !important; }
body.dh-cart-open, body.dh-nav-open { overflow:hidden; }

/* ================================================================== */
/* Cart lines: keep WooCommerce's clearfix out of the grid             */
/* ================================================================== */
/* The list carries cart_list/product_list_widget for plugin compatibility,
   and WooCommerce gives those a ::before/::after clearfix with
   `content:" "; display:table`. Inside a grid those become grid items and
   take the first cell, shunting the thumbnail, details and controls one
   place each — which drops the controls onto a second row. */
.dh-mini-list::before, .dh-mini-list::after,
.dh-mini-item::before, .dh-mini-item::after {
  content:none !important; display:none !important;
}

/* ================================================================== */
/* Collections by Mood — Men / Women / Unisex cards                    */
/* ================================================================== */
.dh-mood-grid { gap:1.6rem; align-items:stretch; }

.dh-mood-card {
  padding:0 !important;
  /* The text side needs the wider share: the CTA is a nowrap pill and would
     otherwise spill over the photo. */
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr) !important;
  gap:0 !important;
  align-items:stretch !important;
  min-height:300px;
}
.dh-mood-card .mc-text {
  padding:1.9rem .9rem 1.9rem 1.7rem;
  justify-content:center; align-items:flex-start; min-width:0;
  position:relative; z-index:2;
}
.dh-mood-card .ico { margin:0 0 1rem; line-height:0; }
.dh-gender-ico { width:46px; height:46px; display:block; }

.dh-mood-card h3 {
  font-size:clamp(1.7rem, 2.5vw, 2.25rem); line-height:1;
  text-transform:uppercase; letter-spacing:.03em; color:var(--dh-ink);
}
.dh-mood-card .lbl {
  font-size:.76rem; letter-spacing:.28em; margin:.35rem 0 0;
  color:var(--dh-gold-deep); font-weight:600;
}
/* The flourish is centred by default; this row is left-aligned. */
.dh-mood-card .dh-flourish { margin:.7rem 0 .9rem; justify-content:flex-start; }
.dh-mood-card p {
  color:var(--dh-ink-soft); font-size:.92rem; line-height:1.55;
  margin:0 0 1.4rem; max-width:15ch;
}

.dh-mood-cta {
  display:inline-flex; align-items:center; gap:.55rem; white-space:nowrap;
  padding:.7rem 1.1rem; border-radius:999px; max-width:100%;
  border:1px solid rgba(200,154,69,.62);
  background:linear-gradient(150deg, rgba(255,253,248,.9), rgba(247,238,222,.72));
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  box-shadow:0 4px 14px rgba(150,110,40,.14), inset 0 1px 0 rgba(255,255,255,.8);
  color:var(--dh-ink); font-family:var(--dh-sans);
  font-size:.72rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
  transition:transform .18s ease, box-shadow .18s ease;
}
.dh-mood-cta svg { width:13px; height:13px; color:var(--dh-gold-deep); }
.dh-mood-cta:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(150,110,40,.22), inset 0 1px 0 rgba(255,255,255,.85); }

/* The bottle runs to the card's own edge rather than sitting in a small box.
   The image is positioned against the frame rather than sized with height:100%
   — a percentage height inside an aspect-ratio box resolves differently across
   engines, and on iOS Safari it left the picture at half width. inset:0 has no
   such ambiguity. */
.dh-mood-card .mood-img {
  position:relative; width:100%;
  aspect-ratio:auto !important; height:100%; margin:0;
  border-radius:0 !important; overflow:hidden; align-self:stretch;
}
.dh-mood-card .mood-img img {
  position:absolute; inset:0;
  width:100% !important; height:100% !important; max-width:none !important;
  object-fit:cover; object-position:center; display:block;
}

@media (max-width:900px){
  .dh-mood-card { min-height:260px; }
  .dh-mood-card .mc-text { padding:1.5rem 0 1.5rem 1.4rem; }
}
@media (max-width:600px){
  .dh-mood-card { grid-template-columns:1fr !important; min-height:0; }
  .dh-mood-card .mc-text { padding:1.6rem 1.4rem 1.2rem; }
  .dh-mood-card p { max-width:none; }
  /* The art is 1040x1291 (0.806). A landscape frame cropped half its height
     away and cut the top off the bottle, so the frame matches the source. */
  .dh-mood-card .mood-img { aspect-ratio:4/5 !important; height:auto !important; }
}

/* ================================================================== */
/* Glass reflection on every button                                    */
/* ================================================================== */
/* The gloss is painted as extra background layers, not a ::before box.
   An earlier version used a box, and on a stadium-shaped pill its rounded
   bottom edge read as a hard line straight across the middle. Radial
   gradients centred outside the button fade to nothing on every side, so the
   shape of the pill can never print an edge. */
.dh-btn, .dh-btn-ghost, .dh-loadmore, .dh-buy-now, .dh-filter-clear,
.dh-range-go, .dh-continue, .dh-mood-cta, .dh-mini-shop, .dh-thumb-arrow,
.dh-product-card .button, .dh-product-card .added_to_cart,
.woocommerce-cart .actions .button, .woocommerce-cart .coupon .button,
.woocommerce .button:not(.single_add_to_cart_button):not(.checkout-button):not(.dh-btn-gold):not(.woocommerce-Button) {
  background-image:
    /* specular sweep under the top edge */
    radial-gradient(118% 64% at 50% -14%,
      rgba(255,255,255,.98) 0%, rgba(255,255,255,.62) 40%, rgba(255,255,255,0) 74%),
    /* warm light bouncing back off the bottom */
    radial-gradient(130% 58% at 50% 116%,
      rgba(255,240,208,.8) 0%, rgba(255,240,208,0) 72%),
    linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,251,243,.6) 100%)
    !important;
  background-color:transparent !important;
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
}

/* The halo in the reference: a tight bright ring plus a soft gold bloom. */
.dh-btn, .dh-loadmore, .dh-buy-now, .dh-mood-cta, .dh-mini-shop {
  box-shadow:
    inset 0 2px 3px rgba(255,255,255,1),
    inset 0 -4px 8px rgba(200,154,69,.3),
    0 0 0 1px rgba(255,243,214,.75),
    0 0 22px rgba(212,169,92,.42),
    0 8px 22px rgba(110,75,30,.17) !important;
}
.dh-btn:hover, .dh-loadmore:hover, .dh-buy-now:hover, .dh-mood-cta:hover,
.dh-mini-shop:hover {
  box-shadow:
    inset 0 2px 3px rgba(255,255,255,1),
    inset 0 -4px 8px rgba(200,154,69,.34),
    0 0 0 1px rgba(255,243,214,.9),
    0 0 34px rgba(212,169,92,.62),
    0 12px 28px rgba(110,75,30,.22) !important;
}

/* The dark checkout pill keeps its contrast but picks up the same sheen. */
.dh-mini-checkout {
  background-image:
    radial-gradient(118% 62% at 50% -16%,
      rgba(255,255,255,.3) 0%, rgba(255,255,255,.09) 44%, rgba(255,255,255,0) 76%),
    linear-gradient(135deg,#2a2521,#171513) !important;
}

/* The gold CTAs — Add to Cart, Proceed to Checkout, Place Order — stay gold.
   They carry the page's main action, so they get the same reflection but keep
   their fill rather than turning into a white glass pill. */
.dh-btn-gold, .woocommerce .single_add_to_cart_button, .woocommerce #place_order,
.wc-block-cart__submit-button, .woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  background-image:
    radial-gradient(118% 62% at 50% -14%,
      rgba(255,255,255,.55) 0%, rgba(255,255,255,.14) 45%, rgba(255,255,255,0) 76%),
    linear-gradient(145deg,#e7c886 0%,#c89a45 50%,#a9741f 100%) !important;
}

/* ================================================================== */
/* Collection pages — soft branded backdrop instead of flat white      */
/* ================================================================== */
.dh-collection-page.has-bg {
  position:relative;
  background-image:var(--dh-collection-bg);
  background-repeat:no-repeat;
  /* Pinned to the viewport so the texture carries the whole page instead of
     being stretched over its full height, which zooms into the empty centre
     of the art and reads as plain white again. */
  background-attachment:fixed;
  background-size:cover;
  background-position:center center;
}
/* A cream veil holds body copy at full contrast. It has to stay light — at
   the weight used first, the art disappeared completely. */
.dh-collection-page.has-bg::before {
  content:"";
  position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,
    rgba(250,246,238,.30) 0%,
    rgba(250,246,238,.50) 40%,
    rgba(250,246,238,.62) 100%);
}
.dh-collection-page.has-bg > * { position:relative; z-index:1; }

/* The sections inside are transparent so the plate shows through. */
.dh-collection-page .dh-section,
.dh-collection-page .dh-collection-grid-wrap { background:transparent; }

/* Cards lift off the backdrop rather than blending into it. */
.dh-collection-page .dh-product-card {
  background:linear-gradient(160deg, rgba(255,253,248,.92), rgba(250,244,235,.86));
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
}

/* iOS ignores background-attachment:fixed, and `cover` over a tall page would
   blow the art up. Lay it across the top at natural proportions instead and
   let the veil dissolve it into the page. */
@media (hover:none), (max-width:900px){
  .dh-collection-page.has-bg {
    background-attachment:scroll;
    background-size:100% auto;
    background-position:center top;
  }
  .dh-collection-page.has-bg::before {
    background:linear-gradient(180deg,
      rgba(250,246,238,.26) 0%,
      rgba(250,246,238,.55) 30%,
      rgba(250,246,238,.88) 58%,
      rgba(250,246,238,.96) 100%);
  }
}

/* ================================================================== */
/* Duo sets — picker page and homepage promo                           */
/* ================================================================== */
.dh-duo-hero { padding:3.2rem 0 1.4rem; text-align:center; }
.dh-duo-hero .eyebrow { display:block; }
.dh-duo-hero h1 { font-size:clamp(2rem,5vw,3.2rem); line-height:1.05; margin:.2rem 0 0; }
.dh-duo-hero p { color:var(--dh-ink-soft); max-width:52ch; margin:1rem auto 0; }
.dh-duo-hero .woocommerce-Price-amount { font-family:var(--dh-price); font-weight:700; color:var(--dh-gold-deep); }

.dh-duo-wrap { padding-top:1.6rem; }
.dh-duo-grid {
  display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr));
  gap:1.1rem; margin-bottom:1.6rem;
}
.dh-duo-card {
  display:flex; flex-direction:column; gap:.7rem; padding:.75rem .75rem 1rem;
  border:1px solid rgba(200,154,69,.3); border-radius:var(--dh-radius);
  background:linear-gradient(160deg, rgba(255,253,248,.9), rgba(250,244,235,.8));
  text-align:center; cursor:pointer; position:relative;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, opacity .18s ease;
}
.dh-duo-card:hover { transform:translateY(-3px); box-shadow:var(--dh-shadow-card); }
.dh-duo-card .shot { position:relative; display:block; border-radius:12px; overflow:hidden; aspect-ratio:4/5; }
.dh-duo-card .shot img { width:100%; height:100%; object-fit:cover; display:block; }
.dh-duo-card .tick {
  position:absolute; top:.5rem; right:.5rem; width:28px; height:28px; border-radius:50%;
  display:grid; place-items:center; color:#fff;
  background:linear-gradient(145deg,#c89a45,#a9741f);
  box-shadow:0 3px 10px rgba(110,75,25,.35);
  opacity:0; transform:scale(.6); transition:opacity .18s ease, transform .18s ease;
}
.dh-duo-card .tick svg { width:15px; height:15px; }
.dh-duo-card .info { display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.dh-duo-card .cat { font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:var(--dh-gold-deep); font-weight:700; }
.dh-duo-card .name { font-family:var(--dh-sans); font-weight:700; font-size:.9rem; color:var(--dh-ink); line-height:1.25; }
.dh-duo-card .size { font-size:.76rem; color:var(--dh-ink-soft); }

.dh-duo-card.is-picked {
  border-color:var(--dh-gold-deep);
  box-shadow:0 0 0 1px var(--dh-gold-deep), 0 10px 26px rgba(150,110,40,.2);
}
.dh-duo-card.is-picked .tick { opacity:1; transform:scale(1); }
.dh-duo-card.is-muted { opacity:.5; }
.dh-duo-card.is-muted:hover { transform:none; }

/* Summary bar — sticks to the bottom so the count is always in view. */
.dh-duo-bar {
  position:sticky; bottom:0; z-index:5;
  display:grid; grid-template-columns:1fr auto; gap:1rem; align-items:center;
  padding:1rem 1.3rem; border-radius:var(--dh-radius-lg);
  border:1px solid rgba(200,154,69,.4);
  background:linear-gradient(160deg, rgba(255,253,248,.94), rgba(247,241,232,.9));
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  box-shadow:0 -6px 26px rgba(110,75,30,.12);
}
.dh-duo-bar .picked { min-width:0; }
.dh-duo-bar .count { display:block; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--dh-gold-deep); font-weight:700; }
.dh-duo-bar .names { display:block; font-family:var(--dh-sans); font-weight:700; color:var(--dh-ink); font-size:.95rem; margin-top:.2rem; }
.dh-duo-bar .act { display:flex; align-items:center; gap:1rem; }
.dh-duo-bar .total .woocommerce-Price-amount { font-family:var(--dh-price); font-size:1.5rem; font-weight:700; color:var(--dh-gold-deep); }
.dh-duo-bar .dh-duo-add svg { width:14px; height:14px; }
.dh-duo-bar .dh-duo-add[disabled] { opacity:.45; cursor:not-allowed; transform:none; }
.dh-duo-bar.is-ready { border-color:var(--dh-gold-deep); }
.dh-duo-msg { grid-column:1/-1; margin:.2rem 0 0; font-size:.82rem; color:var(--dh-ink-soft); }
.dh-duo-msg.is-error { color:#b3261e; }
.dh-duo-msg:empty { display:none; }

/* Duo lines in the cart cannot change quantity — the pair is the unit. */
.dh-duo-fixed { font-weight:700; color:var(--dh-ink); }

/* Homepage promo */
.dh-duo-promo-inner {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr); gap:2.4rem;
  align-items:center; padding:2.4rem; border-radius:var(--dh-radius-lg);
  border:1px solid rgba(200,154,69,.3);
  background:linear-gradient(150deg, rgba(255,253,248,.9), rgba(247,238,222,.72));
  box-shadow:var(--dh-shadow-soft);
}
.dh-duo-promo-inner h2 { font-size:clamp(1.7rem,3.4vw,2.6rem); line-height:1.05; margin:.3rem 0 0; }
.dh-duo-promo-inner p { color:var(--dh-ink-soft); margin:1rem 0 1.6rem; max-width:44ch; }
.dh-duo-promo-inner .dh-btn svg { width:14px; height:14px; }
.dh-duo-promo-inner .shots { position:relative; display:block; aspect-ratio:1/1; }
.dh-duo-promo-inner .shots span {
  position:absolute; border-radius:16px; overflow:hidden;
  box-shadow:0 16px 38px rgba(110,75,30,.22); border:1px solid rgba(255,255,255,.7);
}
/* The carton sits in the left half of the back shot, so the front one is
   sized to overlap only the right edge — at equal widths it buried it. */
.dh-duo-promo-inner .shots .a { left:0; top:0; width:56%; aspect-ratio:4/5; }
.dh-duo-promo-inner .shots .b { right:0; bottom:0; width:50%; aspect-ratio:4/5; }
.dh-duo-promo-inner .shots img { width:100%; height:100%; object-fit:cover; display:block; }

@media (max-width:820px){
  .dh-duo-promo-inner { grid-template-columns:1fr; gap:1.8rem; padding:1.8rem; }
  .dh-duo-promo-inner p { max-width:none; }
  .dh-duo-promo-inner .shots { aspect-ratio:16/10; }
  .dh-duo-promo-inner .shots .a { width:44%; }
  .dh-duo-promo-inner .shots .b { width:40%; }
}
@media (max-width:600px){
  .dh-duo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
  .dh-duo-bar { grid-template-columns:1fr; gap:.7rem; text-align:center; padding:.9rem 1rem; }
  .dh-duo-bar .act { justify-content:center; gap:.7rem; }
  .dh-duo-bar .total .woocommerce-Price-amount { font-size:1.3rem; }
  /* Keep the label on one line — it wraps at the desktop tracking. */
  .dh-duo-bar .dh-duo-add {
    flex:1; justify-content:center; white-space:nowrap;
    padding:.85rem 1rem; font-size:.74rem; letter-spacing:.08em;
  }
}

/* Duo page hero — product shot beside the wording on wide screens. */
.dh-duo-hero.has-shot .dh-container {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.92fr);
  gap:2.4rem; align-items:center; text-align:left;
}
.dh-duo-hero.has-shot .shot {
  grid-column:2; grid-row:1 / span 4;
  border-radius:var(--dh-radius-lg); overflow:hidden;
  box-shadow:0 18px 40px rgba(110,75,30,.2); border:1px solid rgba(255,255,255,.7);
}
.dh-duo-hero.has-shot .shot img { width:100%; height:100%; object-fit:cover; display:block; }
.dh-duo-hero.has-shot .eyebrow,
.dh-duo-hero.has-shot h1,
.dh-duo-hero.has-shot p { grid-column:1; }
.dh-duo-hero.has-shot .dh-flourish { grid-column:1; justify-content:flex-start; }
.dh-duo-hero.has-shot p { margin-left:0; }
@media (max-width:820px){
  .dh-duo-hero.has-shot .dh-container { grid-template-columns:1fr; gap:1.4rem; text-align:center; }
  .dh-duo-hero.has-shot .shot { grid-column:1; grid-row:auto; order:-1; }
  .dh-duo-hero.has-shot .dh-flourish { justify-content:center; }
  .dh-duo-hero.has-shot p { margin-left:auto; margin-right:auto; }
}

/* ================================================================== */
/* Discovery set builder — Build Your Duo / Build Your Trio            */
/* ================================================================== */
.dh-set-hero { padding:2.6rem 0 1.2rem; }
.dh-set-hero .dh-container {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.92fr);
  gap:2.2rem; align-items:center;
}
.dh-set-hero .eyebrow { display:block; letter-spacing:.24em; }
.dh-set-hero h1 { font-size:clamp(2.1rem,5.2vw,3.6rem); line-height:1.02; margin:.35rem 0 0; }
.dh-set-hero .dh-flourish { justify-content:flex-start; margin:.6rem 0 .9rem; }
.dh-set-hero p { color:var(--dh-ink-soft); max-width:42ch; margin:0 0 1.3rem; }
.dh-set-hero .shot { position:relative; border-radius:var(--dh-radius-lg); overflow:hidden; }
.dh-set-hero .shot img { width:100%; height:100%; object-fit:cover; display:block; }
.dh-set-hero .shot .badge {
  position:absolute; top:1rem; right:1rem; z-index:2;
  display:grid; place-items:center; width:74px; height:74px; border-radius:50%; text-align:center;
  background:linear-gradient(145deg,#e7c886,#a9741f); color:#fff;
  font-size:.62rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; line-height:1.15;
  box-shadow:0 8px 20px rgba(110,75,25,.35); padding:.4rem;
}

.dh-set-price {
  display:inline-flex; align-items:baseline; gap:.9rem; flex-wrap:wrap;
  padding:.9rem 1.4rem; border-radius:var(--dh-radius);
  border:1px solid rgba(200,154,69,.45);
  background:linear-gradient(150deg, rgba(255,253,248,.92), rgba(250,244,235,.8));
}
.dh-set-price .lbl { font-family:var(--dh-sans); font-weight:700; font-size:.9rem; letter-spacing:.05em; text-transform:uppercase; }
.dh-set-price .was .woocommerce-Price-amount { font-family:var(--dh-price); color:var(--dh-taupe); text-decoration:line-through; font-size:1.05rem; }
.dh-set-price .now .woocommerce-Price-amount { font-family:var(--dh-price); font-weight:700; font-size:1.9rem; color:var(--dh-gold-deep); }
.dh-set-save { display:flex; align-items:center; gap:.5rem; margin:.9rem 0 0; font-weight:700; color:var(--dh-gold-deep); }
.dh-set-save svg { width:20px; height:20px; }
.dh-set-save .woocommerce-Price-amount { font-family:var(--dh-price); }

/* Duo / Trio switch */
.dh-set-switch {
  display:inline-flex; align-items:center; gap:.3rem; margin-top:1.2rem; padding:.3rem;
  border-radius:999px; border:1px solid rgba(200,154,69,.4); background:rgba(255,253,248,.7);
}
.dh-set-switch .on, .dh-set-switch a {
  display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1.1rem; border-radius:999px;
  font-family:var(--dh-sans); font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
}
.dh-set-switch .on { background:linear-gradient(135deg,#2a2521,#171513); color:#fff; }
.dh-set-switch a { color:var(--dh-ink-soft); }
.dh-set-switch a:hover { color:var(--dh-gold-deep); }
.dh-set-switch a b {
  font-size:.6rem; letter-spacing:.08em; padding:.15rem .45rem; border-radius:999px;
  background:linear-gradient(145deg,#e7c886,#a9741f); color:#fff;
}

/* Steps */
.dh-set-steps {
  list-style:none; margin:0 0 1.8rem; padding:1.2rem 1.4rem; display:flex; flex-wrap:wrap; gap:1.2rem;
  border-radius:var(--dh-radius-lg); border:1px solid rgba(200,154,69,.28);
  background:linear-gradient(150deg, rgba(255,253,248,.86), rgba(250,244,235,.72));
}
.dh-set-steps li { display:flex; align-items:flex-start; gap:.7rem; flex:1 1 200px; min-width:0; }
.dh-set-steps .n {
  flex:none; width:30px; height:30px; border-radius:50%; display:grid; place-items:center;
  font-family:var(--dh-sans); font-weight:700; font-size:.85rem;
  background:rgba(200,154,69,.16); color:var(--dh-gold-deep);
  border:1px solid rgba(200,154,69,.35); transition:background .2s ease, color .2s ease;
}
.dh-set-steps li.is-done .n, .dh-set-steps li.is-active .n {
  background:linear-gradient(145deg,#c89a45,#a9741f); color:#fff; border-color:transparent;
}
.dh-set-steps .t b { display:block; font-family:var(--dh-sans); font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.dh-set-steps .t span { display:block; font-size:.78rem; color:var(--dh-ink-soft); margin-top:.15rem; }

/* Two-column: picker + summary */
.dh-set-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:1.8rem; align-items:start; }
.dh-set-heading {
  font-family:var(--dh-sans); font-size:.82rem; font-weight:700; letter-spacing:.18em;
  text-transform:uppercase; text-align:center; margin:0 0 1.1rem; color:var(--dh-ink);
}
.dh-set-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:.9rem; }
.dh-set-card {
  display:flex; flex-direction:column; align-items:center; gap:.35rem;
  padding:.7rem .6rem .8rem; text-align:center; cursor:pointer; position:relative;
  border:1px solid rgba(200,154,69,.3); border-radius:var(--dh-radius);
  background:linear-gradient(160deg, rgba(255,253,248,.92), rgba(250,244,235,.82));
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, opacity .18s ease;
}
.dh-set-card:hover { transform:translateY(-3px); box-shadow:var(--dh-shadow-card); }
.dh-set-card .shot { position:relative; width:100%; border-radius:10px; overflow:hidden; aspect-ratio:4/5; }
.dh-set-card .shot img { width:100%; height:100%; object-fit:cover; display:block; }
.dh-set-card .tick {
  position:absolute; top:.45rem; right:.45rem; width:26px; height:26px; border-radius:50%;
  display:grid; place-items:center; color:#fff;
  background:linear-gradient(145deg,#c89a45,#a9741f); box-shadow:0 3px 10px rgba(110,75,25,.35);
  opacity:0; transform:scale(.6); transition:opacity .18s ease, transform .18s ease;
}
.dh-set-card .tick svg { width:14px; height:14px; }
.dh-set-card .name { font-family:var(--dh-sans); font-weight:700; font-size:.82rem; color:var(--dh-ink); line-height:1.2; margin-top:.35rem; }
.dh-set-card .cat {
  font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  color:var(--dh-gold-deep); padding:.12rem .5rem; border-radius:999px; background:rgba(200,154,69,.14);
}
.dh-set-card .notes { font-size:.72rem; color:var(--dh-ink-soft); }
.dh-set-card .price { font-family:var(--dh-price); font-weight:700; font-size:.9rem; color:var(--dh-ink); display:flex; gap:.4rem; align-items:baseline; }
.dh-set-card .price del, .dh-set-card .price del .woocommerce-Price-amount { color:var(--dh-taupe); font-size:.78rem; font-weight:400; }
.dh-set-card .pick {
  margin-top:.35rem; padding:.34rem 1.1rem; border-radius:999px;
  border:1px solid rgba(200,154,69,.5); color:var(--dh-gold-deep);
  font-size:.64rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
}
.dh-set-card.is-picked { border-color:var(--dh-gold-deep); box-shadow:0 0 0 1px var(--dh-gold-deep), 0 10px 26px rgba(150,110,40,.2); }
.dh-set-card.is-picked .tick { opacity:1; transform:scale(1); }
.dh-set-card.is-picked .pick { background:linear-gradient(145deg,#c89a45,#a9741f); border-color:transparent; color:#fff; }
.dh-set-card.is-muted { opacity:.48; }
.dh-set-card.is-muted:hover { transform:none; }

.dh-set-hint { display:flex; align-items:center; justify-content:center; gap:.5rem; margin:1.2rem 0 0; font-size:.82rem; color:var(--dh-ink-soft); }
.dh-set-hint svg { width:20px; height:20px; color:var(--dh-gold-deep); }

/* Summary panel */
.dh-set-summary {
  position:sticky; top:88px; padding:1.4rem; overflow:hidden;
  border-radius:var(--dh-radius-lg); border:1px solid rgba(200,154,69,.35);
  background:linear-gradient(160deg, rgba(255,253,248,.95), rgba(250,244,235,.88));
  box-shadow:var(--dh-shadow-soft);
}
.dh-set-summary .ribbon {
  position:absolute; top:14px; right:-34px; transform:rotate(45deg);
  background:linear-gradient(145deg,#e7c886,#a9741f); color:#fff;
  font-size:.58rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  padding:.3rem 2.6rem; box-shadow:0 3px 10px rgba(110,75,25,.3);
}
.dh-set-summary h3 { font-family:var(--dh-serif); font-size:1.35rem; text-align:center; }
.dh-set-summary .dh-flourish { margin:.4rem 0 1rem; }
.dh-set-summary .slots { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.6rem; }
.dh-set-summary .slot {
  display:grid; grid-template-columns:44px 1fr auto; gap:.7rem; align-items:center;
  padding:.6rem; border-radius:12px; border:1px dashed rgba(200,154,69,.5);
  background:rgba(255,253,248,.6);
}
.dh-set-summary .slot .thumb {
  width:44px; height:52px; border-radius:8px; background:rgba(200,154,69,.12) center/cover no-repeat;
  border:1px solid rgba(200,154,69,.25);
}
.dh-set-summary .slot .txt { min-width:0; }
.dh-set-summary .slot b { display:block; font-family:var(--dh-sans); font-size:.64rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--dh-gold-deep); }
.dh-set-summary .slot .ph { display:block; font-size:.8rem; color:var(--dh-ink-soft); line-height:1.25; }
.dh-set-summary .slot.is-filled { border-style:solid; border-color:var(--dh-gold-deep); background:rgba(255,253,248,.95); }
.dh-set-summary .slot.is-filled .ph { color:var(--dh-ink); font-weight:700; }
.dh-set-summary .slot .clear {
  border:none; background:none; color:var(--dh-taupe); font-size:1.2rem; line-height:1; padding:.2rem .3rem;
  opacity:0; pointer-events:none; transition:opacity .15s ease;
}
.dh-set-summary .slot.is-filled .clear { opacity:1; pointer-events:auto; }
.dh-set-summary .slot .clear:hover { color:#b3261e; }

.dh-set-summary .totals { text-align:center; margin:1.2rem 0 1rem; }
.dh-set-summary .totals .lbl { display:block; font-family:var(--dh-sans); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--dh-ink-soft); }
.dh-set-summary .totals .was .woocommerce-Price-amount { font-family:var(--dh-price); color:var(--dh-taupe); text-decoration:line-through; font-size:.95rem; }
.dh-set-summary .totals .now { display:block; }
.dh-set-summary .totals .now .woocommerce-Price-amount { font-family:var(--dh-price); font-weight:700; font-size:2.1rem; color:var(--dh-gold-deep); line-height:1.1; }
.dh-set-summary .totals .save { display:block; font-size:.74rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#3f7d3f; }
.dh-set-summary .totals .save .woocommerce-Price-amount { font-family:var(--dh-price); }

.dh-set-add, .dh-set-view { width:100%; justify-content:center; gap:.6rem; }
.dh-set-add svg, .dh-set-view svg { width:16px; height:16px; }
.dh-set-add[disabled] { opacity:.5; cursor:not-allowed; transform:none; }
.dh-set-view { margin-top:.6rem; }
.dh-set-msg { margin:.7rem 0 0; font-size:.8rem; text-align:center; color:var(--dh-ink-soft); }
.dh-set-msg.is-error { color:#b3261e; }
.dh-set-msg:empty { display:none; }

.dh-set-summary .unit {
  display:flex; gap:.6rem; align-items:flex-start; margin-top:1rem; padding-top:.9rem;
  border-top:1px solid rgba(200,154,69,.25); font-size:.74rem; color:var(--dh-ink-soft);
}
.dh-set-summary .unit svg { width:20px; height:20px; color:var(--dh-gold-deep); flex:none; }
.dh-set-summary .unit b { display:block; color:var(--dh-ink); font-size:.78rem; margin-bottom:.1rem; }
.dh-set-summary .unit del, .dh-set-summary .unit del .woocommerce-Price-amount { color:var(--dh-taupe); font-weight:400; }
.dh-set-summary .unit .woocommerce-Price-amount { font-family:var(--dh-price); }

/* How it works / satisfaction */
.dh-set-notes {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.6rem;
  padding:1.5rem 1.7rem; border-radius:var(--dh-radius-lg);
  border:1px solid rgba(200,154,69,.28);
  background:linear-gradient(150deg, rgba(255,253,248,.88), rgba(250,244,235,.74));
}
.dh-set-notes .n { display:flex; gap:.9rem; align-items:flex-start; }
.dh-set-notes .ico { color:var(--dh-gold-deep); line-height:0; flex:none; }
.dh-set-notes .ico svg { width:30px; height:30px; }
.dh-set-notes b { display:block; font-family:var(--dh-sans); font-size:.8rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; margin-bottom:.4rem; }
.dh-set-notes ol { margin:0; padding-left:1.1rem; color:var(--dh-ink-soft); font-size:.85rem; line-height:1.7; }
.dh-set-notes p { margin:0; color:var(--dh-ink-soft); font-size:.85rem; line-height:1.6; }

/* Black trust bar */
.dh-set-trust { background:linear-gradient(135deg,#221d18,#12100e); color:#e8dcc4; margin-top:2.2rem; }
.dh-set-trust .dh-container {
  display:flex; flex-wrap:wrap; justify-content:center; gap:1rem 2.6rem; padding:1.1rem 0;
}
.dh-set-trust span {
  display:inline-flex; align-items:center; gap:.55rem;
  font-size:.72rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
}
.dh-set-trust svg { width:19px; height:19px; color:#d9ab55; }

@media (max-width:1024px){
  .dh-set-layout { grid-template-columns:1fr; }
  /* relative, not static — the ribbon is absolutely positioned against this
     panel, and static would send it off to the page instead. */
  .dh-set-summary { position:relative; top:auto; }
}
@media (max-width:900px){
  .dh-set-hero .dh-container { grid-template-columns:1fr; gap:1.4rem; }
  .dh-set-hero .shot { order:-1; }
  .dh-set-hero p { max-width:none; }
}
@media (max-width:600px){
  .dh-set-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
  .dh-set-steps { gap:.9rem; padding:1rem; }
  .dh-set-steps li { flex:1 1 100%; }
  .dh-set-price { width:100%; justify-content:space-between; }
  .dh-set-trust .dh-container { gap:.7rem; flex-direction:column; align-items:center; }
}

/* Homepage promo — the two set tiers side by side */
.dh-duo-tiers { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.dh-duo-tiers .tier {
  position:relative; display:flex; flex-direction:column; gap:.2rem; overflow:hidden;
  padding:.9rem 1rem; border-radius:var(--dh-radius);
  border:1px solid rgba(200,154,69,.42);
  background:linear-gradient(150deg, rgba(255,253,248,.94), rgba(250,244,235,.82));
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.dh-duo-tiers .tier:hover { transform:translateY(-3px); box-shadow:var(--dh-shadow-card); border-color:var(--dh-gold-deep); }
.dh-duo-tiers .n { font-family:var(--dh-sans); font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--dh-ink-soft); }
.dh-duo-tiers .p .woocommerce-Price-amount { font-family:var(--dh-price); font-weight:700; font-size:1.5rem; color:var(--dh-gold-deep); }
.dh-duo-tiers .go { font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--dh-ink); }
.dh-duo-tiers .tier.best b {
  position:absolute; top:8px; right:-30px; transform:rotate(45deg);
  background:linear-gradient(145deg,#e7c886,#a9741f); color:#fff;
  font-size:.5rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; padding:.22rem 2.2rem;
}
@media (max-width:420px){ .dh-duo-tiers { grid-template-columns:1fr; } }

/* ================================================================== */
/* Set builder — matching the supplied page designs                    */
/* ================================================================== */
/* Hero shot sits on the page rather than in a card, as in the artwork. */
.dh-set-hero .shot {
  border-radius:0; overflow:visible; box-shadow:none; border:none;
}
.dh-set-hero .shot img {
  border-radius:var(--dh-radius-lg);
  -webkit-mask-image:radial-gradient(120% 120% at 50% 45%, #000 62%, transparent 96%);
  mask-image:radial-gradient(120% 120% at 50% 45%, #000 62%, transparent 96%);
}

/* Dotted rules link the numbered steps. */
.dh-set-steps { align-items:stretch; }
.dh-set-steps li { position:relative; align-items:center; }
.dh-set-steps li:not(:last-child)::after {
  content:""; position:absolute; right:-.6rem; top:50%; width:.6rem;
  border-top:1px dashed rgba(200,154,69,.55);
}
@media (min-width:901px){
  .dh-set-steps li:not(:last-child)::after {
    right:-1.2rem; width:1.2rem;
  }
}

/* Six across as drawn, but only where a card is wide enough to hold a price
   like "₹1,299.00 ₹1,499.00". Below that, fewer and wider columns. */
@media (min-width:1440px){
  .dh-set-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
}
@media (min-width:1200px) and (max-width:1439px){
  .dh-set-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
}
@media (min-width:901px) and (max-width:1199px){
  .dh-set-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}

/* "+" between the summary slots. */
.dh-set-summary .slots { position:relative; }
.dh-set-summary .join {
  list-style:none; display:flex; justify-content:center; margin:-.15rem 0;
}
.dh-set-summary .join span {
  width:24px; height:24px; border-radius:50%; display:grid; place-items:center;
  font-size:.85rem; font-weight:700; color:var(--dh-gold-deep);
  border:1px solid rgba(200,154,69,.5); background:rgba(255,253,248,.9);
}

/* ------------------------------------------------------------------ */
/* Glass reflection + gold ring on the builder's own buttons           */
/* ------------------------------------------------------------------ */
.dh-set-card .pick,
.dh-set-switch .on,
.dh-set-switch a,
.dh-set-view,
.dh-duo-tiers .tier {
  position:relative;
  background-image:
    radial-gradient(118% 64% at 50% -14%,
      rgba(255,255,255,.98) 0%, rgba(255,255,255,.62) 40%, rgba(255,255,255,0) 74%),
    radial-gradient(130% 58% at 50% 116%,
      rgba(255,240,208,.8) 0%, rgba(255,240,208,0) 72%),
    linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,251,243,.6) 100%) !important;
  background-color:transparent !important;
  border:1px solid rgba(212,169,92,.9) !important;
  box-shadow:
    inset 0 2px 3px rgba(255,255,255,1),
    inset 0 -4px 8px rgba(200,154,69,.3),
    0 0 0 1px rgba(255,243,214,.7),
    0 0 16px rgba(212,169,92,.34),
    0 5px 14px rgba(110,75,30,.14) !important;
  backdrop-filter:blur(10px) saturate(140%); -webkit-backdrop-filter:blur(10px) saturate(140%);
}
.dh-set-card .pick { color:var(--dh-gold-deep) !important; }
.dh-set-card:hover .pick,
.dh-set-switch a:hover,
.dh-set-view:hover {
  box-shadow:
    inset 0 2px 3px rgba(255,255,255,1),
    inset 0 -4px 8px rgba(200,154,69,.34),
    0 0 0 1px rgba(255,243,214,.9),
    0 0 26px rgba(212,169,92,.55),
    0 8px 20px rgba(110,75,30,.2) !important;
}
/* The chosen card's pill fills with gold but keeps the same ring and sheen. */
.dh-set-card.is-picked .pick {
  color:#fff !important;
  background-image:
    radial-gradient(118% 62% at 50% -14%,
      rgba(255,255,255,.55) 0%, rgba(255,255,255,.14) 45%, rgba(255,255,255,0) 76%),
    linear-gradient(145deg,#e7c886 0%,#c89a45 50%,#a9741f 100%) !important;
}
/* Selected side of the size switch stays dark for contrast. */
.dh-set-switch .on {
  color:#fff !important;
  background-image:
    radial-gradient(118% 62% at 50% -16%,
      rgba(255,255,255,.3) 0%, rgba(255,255,255,.09) 44%, rgba(255,255,255,0) 76%),
    linear-gradient(135deg,#2a2521,#171513) !important;
}
/* Add to Cart keeps its gold fill, gains the ring. */
.dh-set-add {
  border:1px solid rgba(185,130,42,.95) !important;
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.45),
    inset 0 -2px 5px rgba(120,80,20,.24),
    0 0 0 1px rgba(255,243,214,.55),
    0 0 20px rgba(212,169,92,.4),
    0 8px 22px rgba(185,130,42,.3) !important;
}

/* ================================================================== */
/* Set builder — one panel holds the steps, picker and summary         */
/* ================================================================== */
.dh-set-panel {
  padding:1.6rem; border-radius:var(--dh-radius-lg);
  border:1px solid rgba(200,154,69,.26);
  background:linear-gradient(160deg, rgba(255,253,248,.92), rgba(252,247,239,.84));
  box-shadow:var(--dh-shadow-soft);
}
/* The steps sit inside the panel, so drop their own frame. */
.dh-set-panel .dh-set-steps {
  border:none; background:none; box-shadow:none;
  padding:0 0 1.4rem; margin:0 0 1.4rem;
  border-bottom:1px solid rgba(200,154,69,.22);
}

/* Rules either side of the section heading, as drawn. */
.dh-set-heading { display:flex; align-items:center; gap:1rem; }
.dh-set-heading::before, .dh-set-heading::after {
  content:""; flex:1; height:1px;
  background:linear-gradient(90deg, transparent, rgba(200,154,69,.55), transparent);
}
.dh-set-heading span { flex:none; }

/* Both heroes use the same frame so the two pages feel like a pair. */
.dh-set-hero .shot { aspect-ratio:4/3; }
.dh-set-hero .shot img { width:100%; height:100%; object-fit:cover; }

@media (max-width:600px){
  .dh-set-panel { padding:1rem; }
  .dh-set-heading { gap:.6rem; font-size:.72rem; }
}

/* ================================================================== */
/* Set pages — soft branded backdrop behind the builder                */
/* ================================================================== */
.dh-set-page.has-bg {
  position:relative;
  background-image:var(--dh-set-bg);
  background-repeat:no-repeat;
  background-attachment:fixed;
  background-size:cover;
  background-position:center center;
}
.dh-set-page.has-bg::before {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,
    rgba(250,246,238,.34) 0%,
    rgba(250,246,238,.54) 40%,
    rgba(250,246,238,.66) 100%);
}
.dh-set-page.has-bg > * { position:relative; z-index:1; }

/* iOS ignores fixed backgrounds and `cover` would enlarge the art over a tall
   page, so lay it across the top and let the veil dissolve it. */
@media (hover:none), (max-width:900px){
  .dh-set-page.has-bg {
    background-attachment:scroll;
    background-size:100% auto;
    background-position:center top;
  }
  .dh-set-page.has-bg::before {
    background:linear-gradient(180deg,
      rgba(250,246,238,.28) 0%,
      rgba(250,246,238,.58) 32%,
      rgba(250,246,238,.9) 62%,
      rgba(250,246,238,.97) 100%);
  }
}

/* Homepage duo section gets the same wash. */
.dh-duo-promo {
  background-image:var(--dh-set-bg, none);
  background-size:cover; background-position:center; background-repeat:no-repeat;
  position:relative;
}
.dh-duo-promo::before {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(250,246,238,.5), rgba(250,246,238,.72));
}
.dh-duo-promo > * { position:relative; z-index:1; }

/* ================================================================== */
/* Set cards — keep the price inside the card                          */
/* ================================================================== */
/* Six narrow columns leave a price row of ~112px in a ~117px card, so
   "₹279.00 ₹299.00" sat hard against the border. Let it wrap and give the
   struck-through figure its own line when there isn't room. */
.dh-set-card { min-width:0; }
.dh-set-card .price {
  flex-wrap:wrap; justify-content:center; row-gap:.05rem;
  max-width:100%; min-width:0; font-size:.86rem;
}
.dh-set-card .price del,
.dh-set-card .price del .woocommerce-Price-amount { font-size:.72rem; }
.dh-set-card .name,
.dh-set-card .cat { max-width:100%; overflow-wrap:anywhere; }

/* ================================================================== */
/* "Best value" badges that can actually be read                       */
/* ================================================================== */
/* The rotated corner ribbon clipped to an unreadable sliver on the small
   homepage tiles. A pill reads at any size. */
.dh-duo-tiers .tier.best b {
  position:absolute; top:.55rem; right:.55rem; transform:none;
  padding:.2rem .55rem; border-radius:999px;
  background:linear-gradient(145deg,#e7c886,#a9741f); color:#fff;
  font-size:.52rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  box-shadow:0 3px 9px rgba(110,75,25,.3);
}
.dh-duo-tiers .tier.best { padding-top:1.6rem; }

/* Same treatment on the summary panel, so it is never half-cropped. */
.dh-set-summary .ribbon {
  position:absolute; top:.7rem; right:.7rem; transform:none;
  padding:.26rem .7rem; border-radius:999px;
  font-size:.54rem; letter-spacing:.1em; box-shadow:0 3px 9px rgba(110,75,25,.3);
}
.dh-set-summary { padding-top:2.1rem; }

/* The hero badge sits clear of the image corner. */
.dh-set-hero .shot .badge { width:auto; height:auto; border-radius:999px; padding:.4rem .9rem; font-size:.58rem; }

/* ================================================================== */
/* Compact header                                                      */
/* ================================================================== */
/* The bar was 58px tall with a 30px wordmark, and "Discovery Sets" wrapped
   onto a second line once the menu grew. Smaller type puts every link back
   on one line and gives the page more room. */
@media (min-width:901px){
  .dh-header-inner { padding:.3rem 0; gap:.9rem; }
  .dh-wordmark { font-size:1.35rem; letter-spacing:.09em; }
  .dh-nav-glass { padding:.18rem .4rem; }
  .dh-nav-glass a { padding:.42rem .78rem; font-size:.71rem; letter-spacing:.1em; }
  .dh-header-actions { gap:.35rem; }
  .dh-header-actions .dh-icon-btn { width:30px; height:30px; }
  .dh-header-actions .dh-icon-btn svg { width:18px; height:18px; }
}
/* Menu labels stay on one line at every width. */
.dh-nav-glass a, .dh-submenu a { white-space:nowrap; }

/* Phones: trim the bar without shrinking the tap targets. */
@media (max-width:900px){
  .dh-header-inner { padding:.28rem 0; }
  .dh-header .dh-burger { width:38px; height:38px; }
  .dh-header .dh-burger svg { width:19px; height:19px; }
}
@media (max-width:600px){
  .dh-wordmark { font-size:clamp(.78rem, calc((100vw - 250px) / 9), 1.05rem); }
}

/* ================================================================== */
/* Duo / trio in the slide-out cart — one purchase, not loose bottles  */
/* ================================================================== */
.dh-mini-set {
  list-style:none; margin:0 0 .9rem; padding:.85rem .9rem;
  border-radius:14px; position:relative; overflow:hidden;
  border:1px solid rgba(200,154,69,.5);
  background:linear-gradient(155deg, rgba(255,251,242,.98), rgba(250,241,226,.92));
  box-shadow:0 6px 18px rgba(150,110,40,.13);
}
/* A gold edge marks it out from an ordinary line. */
.dh-mini-set::before {
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg,#e7c886,#a9741f);
}
.dh-mini-set .head {
  display:flex; align-items:center; gap:.6rem; margin-bottom:.7rem;
}
.dh-mini-set .tag {
  font-family:var(--dh-sans); font-size:.6rem; font-weight:800;
  letter-spacing:.16em; text-transform:uppercase; color:#fff;
  padding:.24rem .6rem; border-radius:999px;
  background:linear-gradient(145deg,#c89a45,#a9741f);
}
.dh-mini-set .amt { margin-left:auto; }
.dh-mini-set .amt .woocommerce-Price-amount {
  font-family:var(--dh-price); font-weight:700; font-size:1.05rem; color:var(--dh-ink);
}
.dh-mini-set .dh-mini-remove { line-height:0; color:var(--dh-taupe); }
.dh-mini-set .dh-mini-remove svg { width:17px; height:17px; }

.dh-mini-set .parts { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.dh-mini-set .parts li { display:flex; align-items:center; gap:.6rem; }
.dh-mini-set .parts .sh img {
  width:42px !important; height:50px !important; object-fit:cover; display:block;
  border-radius:8px; border:1px solid rgba(200,154,69,.3); margin:0 !important;
}
.dh-mini-set .parts .nm {
  font-family:var(--dh-sans); font-weight:700; font-size:.84rem; color:var(--dh-ink); line-height:1.25;
}
.dh-mini-set .parts .nm b {
  display:block; font-weight:400; font-size:.74rem; color:var(--dh-ink-soft);
}
.dh-mini-set .saved {
  margin:.7rem 0 0; padding-top:.6rem; border-top:1px solid rgba(200,154,69,.28);
  font-size:.74rem; font-weight:700; color:#3f7d3f;
}
.dh-mini-set .saved .woocommerce-Price-amount { font-family:var(--dh-price); }

/* ================================================================== */
/* Duo / trio in the checkout order review                             */
/* ================================================================== */
.woocommerce-checkout-review-order-table tr.dh-order-set td { vertical-align:top; }
.dh-order-set-tag {
  display:inline-block; margin-bottom:.45rem;
  font-family:var(--dh-sans); font-size:.58rem; font-weight:800;
  letter-spacing:.16em; text-transform:uppercase; color:#fff;
  padding:.2rem .6rem; border-radius:999px;
  background:linear-gradient(145deg,#c89a45,#a9741f);
}
.dh-order-set-parts { list-style:none; margin:0; padding:0; }
.dh-order-set-parts li {
  font-family:var(--dh-sans); font-weight:700; font-size:.84rem;
  color:var(--dh-ink); line-height:1.5;
}
.dh-order-set-parts li::before { content:"— "; color:var(--dh-gold-deep); }
.dh-order-set-parts li span { font-weight:400; color:var(--dh-ink-soft); }
.dh-order-set-saved {
  display:inline-block; margin-top:.4rem;
  font-size:.72rem; font-weight:700; color:#3f7d3f;
}
.dh-order-set-saved .woocommerce-Price-amount { font-family:var(--dh-price); }
/* A hairline keeps the set visually distinct from single bottles. */
.woocommerce-checkout-review-order-table tr.dh-order-set td.product-name {
  border-left:2px solid rgba(200,154,69,.6); padding-left:.7rem;
}

/* Breathing room between order rows so the sets don't run together. */
.woocommerce-checkout-review-order-table tbody tr td { padding:.85rem 0; }
.woocommerce-checkout-review-order-table tbody tr + tr td { border-top:1px solid rgba(200,154,69,.22); }
.woocommerce-checkout-review-order-table tr.dh-order-set td.product-name { padding-left:.8rem; }
.woocommerce-checkout-review-order-table tr.dh-order-set td.product-total { vertical-align:top; }

/* ================================================================== */
/* Ordinary cart lines, matched to the set cards                       */
/* ================================================================== */
/* A set was a bordered card while a single bottle was a bare row, so the
   panel looked like two different designs. Same card, quieter edge. */
.dh-mini-item {
  padding:.85rem .9rem !important;
  margin-bottom:.9rem;
  border:1px solid rgba(200,154,69,.3) !important;
  border-bottom:1px solid rgba(200,154,69,.3) !important;
  border-radius:14px;
  background:linear-gradient(155deg, rgba(255,253,248,.95), rgba(250,245,236,.88));
  align-items:start;
}
/* The saving adds a line, so give the controls their own row underneath
   rather than letting them squeeze the details column. */
.dh-mini-item .ctrl { flex-direction:row-reverse; align-items:center; gap:.5rem; }
.dh-mini-item .saved { white-space:nowrap; }
@media (max-width:430px){
  .dh-mini-item { grid-template-columns:64px 1fr; }
  .dh-mini-item .ctrl {
    grid-column:1 / -1; justify-content:space-between; width:100%;
    margin-top:.55rem; padding-top:.55rem; border-top:1px solid rgba(200,154,69,.22);
  }
}
.dh-mini-item .price { display:flex; align-items:baseline; gap:.45rem; flex-wrap:wrap; }
.dh-mini-item .price del,
.dh-mini-item .price del .woocommerce-Price-amount {
  font-size:.8rem; font-weight:400; color:var(--dh-taupe);
}
.dh-mini-item .saved {
  display:block; margin-top:.2rem;
  font-size:.72rem; font-weight:700; color:#3f7d3f;
}
.dh-mini-item .saved .woocommerce-Price-amount { font-family:var(--dh-price); }

/* ================================================================== */
/* Even spacing between cart cards                                     */
/* ================================================================== */
/* Sets and single bottles are both cards now, so one rhythm for both —
   enough to read as separate purchases, not so much that a full cart turns
   into a long scroll. */
.dh-mini-list { display:flex; flex-direction:column; gap:.75rem; }
.dh-mini-set,
.dh-mini-item { margin-bottom:0 !important; }

/* Inside a set, the bottles are one purchase — keep them closer together
   than the cards are to each other. */
.dh-mini-set .parts { gap:.55rem; }

/* Checkout: a single bottle's saving sits under its name. */
.woocommerce-checkout-review-order-table td.product-name .dh-order-set-saved {
  display:block; margin-top:.25rem;
}

/* ================================================================== */
/* Set card padding on WooCommerce-templated pages                     */
/* ================================================================== */
/* On shop and category pages the body carries .woocommerce, and core's
   `.woocommerce ul.cart_list li { padding:4px 0 }` outranks a plain
   `.dh-mini-set`, collapsing the card's side padding to zero — which put the
   text hard against the border there but not on the duo/trio pages, where
   that body class is absent. Matched on specificity so both agree. */
.dh-cart-body ul.cart_list li.dh-mini-set,
.woocommerce .dh-cart-body ul.cart_list li.dh-mini-set {
  padding:.85rem .9rem !important;
  margin:0 !important;
  list-style:none !important;
}
/* Same for the bottles listed inside a set. */
.dh-cart-body ul.cart_list li.dh-mini-set .parts li,
.woocommerce .dh-cart-body ul.cart_list li.dh-mini-set .parts li {
  padding:0 !important;
  margin:0 !important;
  list-style:none !important;
}
/* And keep the single-bottle card's own padding beyond doubt. */
.dh-cart-body ul.cart_list li.dh-mini-item,
.woocommerce .dh-cart-body ul.cart_list li.dh-mini-item {
  padding:.85rem .9rem !important;
  margin:0 !important;
}
