/*
Theme Name: Delight Theme
Author: Zisanur Haque
Version: 1.0
Text Domain: delight-hampers
*/

/* ================================
   Root
================================ */
:root {
  /* Brand Greens */
  --dh-primary: #527c61; /* Main Header & Accent Green */
  --dh-primary-dark: #3e614a; /* Darker shade for button hovers */
  --dh-secondary: #7a9c86; /* Lighter muted green */
  --dh-gold: #c5a059; /* Optional accent */

  /* Clean Neutrals (Removed the heavy green tints) */
  --dh-cream: #fafafa; /* Clean off-white */
  --dh-soft: #f4f6f8; /* Neutral light gray for backgrounds */
  --dh-dark: #22262a; /* Deep charcoal from the footer */
  --dh-text: #333333; /* Crisp dark text */
  --dh-muted: #6b7280; /* Gray for secondary text/labels */
  --dh-border: #e5e7eb; /* Neutral gray borders */
  --dh-white: #ffffff; /* Pure white */

  /* System Mappings */
  --text-main: var(--dh-dark);
  --text-muted: var(--dh-muted);
  --border-light: var(--dh-border);
  --accent: var(--dh-primary);
  --bg-sidebar: #fafafa;

  /* Typography */
  --dh-heading-font: "Playfair Display", Georgia, serif;
  --dh-body-font: "Inter", Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: var(--dh-body-font);
  color: var(--dh-text);
  background: var(--dh-white);
}

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

/* ==========================================================================
   TAB BULLET POINT DESTROYER
   ========================================================================== */

/* 1. Strip the bullet from the list itself */
.dh-single-tabs ul,
.dh-single-tabs ul.tabs,
.dh-single-tabs ul.wc-tabs {
  list-style: none !important;
  list-style-type: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

.dh-single-tabs ul li,
.dh-single-tabs ul.tabs li {
  list-style: none !important;
  list-style-type: none !important;
}

/* 2. Kill the injected dot (pseudo-element) */
.dh-single-tabs ul li::before,
.dh-single-tabs ul li::after,
.dh-single-tabs .woocommerce-Tabs-panel h2::before {
  display: none !important;
  content: "" !important;
}

/* 3. Hide the duplicate "Description" heading */
.dh-single-tabs .woocommerce-Tabs-panel h2:first-of-type {
  display: none !important;
}

/* ==========================================================================
   URGENT WOOCOMMERCE FIXES (CART LAYOUT & TAB DESIGN)
   ========================================================================== */

/* --- 1. FIX SQUASHED QUANTITY & ADD TO CART BUTTON --- */
body.woocommerce div.product form.cart,
.dh-single-product__cart form.cart {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important; /* Forces them to stay on the same line */
  align-items: stretch !important;
  gap: 15px !important;
  margin: 25px 0 !important;
}

body.woocommerce div.product form.cart div.quantity {
  margin: 0 !important;
  padding: 0 !important;
  flex-shrink: 0 !important;
}

body.woocommerce div.product form.cart button.single_add_to_cart_button {
  margin: 0 !important;
  flex-grow: 1 !important; /* Forces the button to fill the remaining space */
  width: auto !important;
}

/* --- 2. PREMIUM TAB REDESIGN (KILLS BULLETS & DOUBLE HEADING) --- */
/* Kill the bullet points and format the container */
body.woocommerce div.product .woocommerce-tabs ul.tabs {
  margin: 0 0 25px !important;
  padding: 0 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  border-bottom: 2px solid var(--dh-border) !important;
}

body.woocommerce div.product .woocommerce-tabs ul.tabs li {
  list-style: none !important;
  list-style-type: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
}

/* Nuke the physical bullet dot */
body.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
body.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
  display: none !important;
  content: none !important;
}

/* Style the actual tab links to look like premium buttons/pills */
body.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: block !important;
  padding: 12px 24px !important;
  font-weight: 800 !important;
  color: var(--dh-muted) !important;
  background: var(--dh-soft) !important;
  border-radius: 8px 8px 0 0 !important; /* Rounds only the top corners */
  text-transform: uppercase !important;
  font-size: 13px !important;
  letter-spacing: 0.05em !important;
  transition: all 0.3s ease !important;
}

/* Style the active tab */
body.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
body.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  background: var(--dh-primary) !important;
  color: #ffffff !important;
}

/* Hide the redundant "Description" H2 inside the text area */
body.woocommerce div.product .woocommerce-tabs .panel h2:first-of-type {
  display: none !important;
}

/* Add breathing room to the text inside the tab */
body.woocommerce div.product .woocommerce-tabs .panel {
  padding: 10px 0 30px !important;
}

/* ==========================================================================
   URGENT WOOCOMMERCE OVERRIDES (NUKE PURPLE & NUMBERS)
   ========================================================================== */

/* --- 1. OBLITERATE THE PURPLE BUTTON --- */
body.woocommerce #respond input#submit.alt,
body.woocommerce a.button.alt,
body.woocommerce button.button.alt,
body.woocommerce input.button.alt,
body.woocommerce #respond input#submit,
body.woocommerce a.button,
body.woocommerce button.button,
body.woocommerce input.button {
  background-color: var(--dh-primary) !important;
  color: #ffffff !important;
  border-radius: 10px !important;
  border: none !important;
  min-height: 52px !important;
  height: 52px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 30px !important;
  flex: 1 !important;
}

body.woocommerce #respond input#submit.alt:hover,
body.woocommerce a.button.alt:hover,
body.woocommerce button.button.alt:hover,
body.woocommerce input.button.alt:hover {
  background-color: var(--dh-primary-dark) !important;
}

/* --- 2. DESTROY THUMBNAIL NUMBERS (1. 2.) --- */
body.woocommerce div.product div.images ol.flex-control-nav.flex-control-thumbs,
body.woocommerce div.product div.images ul.flex-control-thumbs {
  list-style: none !important;
  list-style-type: none !important;
  margin: 15px 0 0 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
}

body.woocommerce div.product div.images .flex-control-thumbs li {
  list-style: none !important;
  list-style-type: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 80px !important;
  float: none !important;
  display: block !important;
}

body.woocommerce div.product div.images .flex-control-thumbs li::before,
body.woocommerce div.product div.images .flex-control-thumbs li::after {
  display: none !important;
  content: none !important;
}

/* --- 3. ALIGN QUANTITY AND BUTTON SIDE-BY-SIDE --- */
body.woocommerce div.product form.cart {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  gap: 15px !important;
  margin-top: 25px !important;
  margin-bottom: 25px !important;
}

body.woocommerce div.product form.cart .quantity {
  margin: 0 !important;
  padding: 0 !important;
}

body.woocommerce div.product form.cart .quantity input.qty {
  width: 80px !important;
  height: 52px !important;
  min-height: 52px !important;
  border-radius: 10px !important;
  border: 1px solid var(--dh-border) !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  font-weight: 800 !important;
  font-size: 16px !important;
  color: var(--dh-dark) !important;
  text-align: center !important;
}

a {
  color: inherit;
  text-decoration: none;
}

.container {
  width: 90% !important; /* Prevents edge-to-edge squashing */
  max-width: 1200px;
  margin: 0 auto;
}

/* ================================
   Header
================================ */
.site-header {
  background: var(--dh-white);
  position: relative;
  z-index: 50;
}

.dh-topbar {
  background: var(--dh-cream);
  border-bottom: 1px solid var(--dh-border);
  font-size: 13px;
  font-weight: 700;
  color: var(--dh-dark);
}

.dh-topbar__inner {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.dh-topbar__right {
  display: flex;
  align-items: center;
  gap: 28px;
}

.dh-topbar__right a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color 0.2s ease;
}

.dh-topbar__right a:hover {
  color: var(--dh-primary);
}

.dh-main-header {
  background: var(--dh-white);
  padding: 22px 0;
}

.dh-main-header__inner {
  display: grid;
  grid-template-columns: 240px 1fr 140px;
  align-items: center;
  gap: 30px;
}

.dh-logo a {
  display: inline-flex;
  align-items: center;
}

.dh-logo img {
  max-width: 220px;
  height: auto;
}

.dh-logo__fallback {
  display: flex;
  align-items: center;
  gap: 12px;
}

.dh-logo__icon {
  font-size: 46px;
  line-height: 1;
}

.dh-logo__fallback strong {
  display: block;
  font-family: var(--dh-heading-font);
  font-size: 34px;
  line-height: 0.95;
  color: var(--dh-primary);
}

.dh-logo__fallback small {
  display: block;
  font-size: 18px;
  color: var(--dh-dark);
  font-family: var(--dh-heading-font);
}

.dh-header-search form {
  width: 100%;
  height: 48px;
  display: grid;
  grid-template-columns: 1fr 165px 58px;
  border: 1px solid var(--dh-border);
  border-radius: 12px;
  overflow: hidden;
  background: var(--dh-cream);
}

.dh-header-search input,
.dh-header-search select {
  border: 0;
  outline: 0;
  background: transparent;
  padding: 0 20px;
  font-size: 14px;
  color: var(--dh-muted);
}

.dh-header-search select {
  border-left: 1px solid var(--dh-border);
  cursor: pointer;
}

.dh-header-search button {
  border: 0;
  background: var(--dh-primary);
  color: var(--dh-white);
  font-size: 18px;
  cursor: pointer;
  transition: background 0.2s ease;
}

.dh-header-search button:hover {
  background: var(--dh-primary-dark);
}

.dh-header-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 18px;
}

.dh-action-link,
.dh-cart-link {
  position: relative;
  font-size: 28px;
  line-height: 1;
  color: var(--dh-dark);
}

.dh-cart-count {
  position: absolute;
  top: -10px;
  right: -10px;
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  border-radius: 99px;
  background: var(--dh-primary);
  color: var(--dh-white);
  font-size: 11px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dh-mobile-toggle {
  display: none;
  width: 42px;
  height: 38px;
  border: 1px solid var(--dh-border);
  border-radius: 8px;
  background: var(--dh-white);
  cursor: pointer;
}

.dh-mobile-toggle span {
  display: block;
  width: 20px;
  height: 2px;
  margin: 5px auto;
  background: var(--dh-dark);
}

.dh-navbar {
  background: var(--dh-primary);
}

.dh-primary-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}

.dh-primary-menu li {
  margin: 0;
}

.dh-primary-menu a {
  display: block;
  padding: 15px 18px;
  color: var(--dh-white);
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  transition: background 0.2s ease;
}

.dh-primary-menu li.current-menu-item > a,
.dh-primary-menu a:hover {
  background: var(--dh-primary-dark);
}

/* ================================
   Header & Responsive Layout (FIXED)
================================ */

/* 1. Universal Logo Control */
.dh-logo img,
.custom-logo-link img {
  max-width: 200px !important;
  width: auto;
  height: auto;
  display: block;
}

/* 2. Desktop Alignment */
.dh-main-header__inner {
  display: grid;
  grid-template-columns: 220px 1fr auto;
  align-items: center;
  gap: 30px;
}

/* ================================
   Mobile & Tablet (991px and below)
================================ */
@media (max-width: 991px) {
  /* Create space for the absolute positioned navbar */
  .site-header {
    position: relative;
  }

  /* 3-Column Grid for Mobile: Logo | Actions | Toggle */
  .dh-main-header__inner {
    grid-template-columns: 1fr auto auto;
    gap: 15px;
    padding: 10px 0;
  }

  /* Ensure actions and toggle sit side-by-side without overlapping */
  .dh-header-actions {
    justify-content: flex-end;
    gap: 12px;
  }

  .dh-mobile-toggle {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4px;
    width: 40px;
    height: 40px;
    border: 1px solid var(--dh-border);
    border-radius: 8px;
    background: #fff;
    margin-left: 5px;
  }

  /* Full Width Search below the logo row */
  .dh-header-search {
    grid-column: 1 / -1;
    order: 3;
    width: 100%;
    margin-top: 10px;
  }

  .dh-header-search form {
    display: flex; /* Flex is more reliable for the rounded pill shape */
    height: 44px;
    border-radius: 50px !important;
    overflow: hidden;
    background: #fff;
  }

  .dh-header-search input {
    flex: 1;
    padding: 0 20px;
  }

  .dh-header-search select {
    display: none; /* Keep it clean on mobile */
  }

  .dh-header-search button {
    width: 50px;
    flex-shrink: 0;
  }

  /* Navigation Menu: Slide down below header */
  .dh-navbar {
    display: none !important; /* Hide it */
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.3s ease;
  }

  /* This rule MUST be strong enough to override the display: none */
  .dh-navbar.is-active {
    display: block !important; /* Show it */
    visibility: visible !important;
    opacity: 1 !important;
  }

  .dh-primary-menu {
    flex-direction: column;
    padding: 10px 0;
  }

  .dh-primary-menu a {
    padding: 15px 20px;
    text-align: left;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }
}

/* ================================
   Small Mobile (640px and below)
================================ */
@media (max-width: 640px) {
  /* Fix Topbar stacking */
  .dh-topbar__inner {
    flex-direction: column;
    padding: 8px 0;
    gap: 5px;
  }

  .dh-topbar__left {
    display: none;
  }

  .dh-topbar__right {
    gap: 15px;
    font-size: 11px;
  }

  .dh-logo img {
    max-width: 150px !important;
  }

  /* Adjust icons for very small screens */
  .dh-action-link,
  .dh-cart-link {
    font-size: 22px;
  }
}

/* ==========================================================================
   HEADER MOBILE FIX (Pixel Perfect)
   ========================================================================== */

/* 1. Universal Logo Fix */
.dh-logo img,
.custom-logo-link img {
  max-width: 180px !important; /* Slightly smaller for mobile safety */
  width: auto !important;
  height: auto !important;
  display: block;
}

/* 2. Desktop Layout (992px+) */
@media (min-width: 992px) {
  .dh-main-header__inner {
    display: grid !important;
    grid-template-columns: 220px 1fr auto !important;
    align-items: center;
    gap: 30px;
  }
}

/* 3. Mobile & Tablet Layout (991px and below) */
@media (max-width: 991px) {
  /* Change Grid to Flex to prevent overlapping columns */
  .dh-main-header__inner {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 12px 0 !important;
  }

  /* Logo stays on the far left */
  .dh-logo {
    flex: 0 1 auto !important;
    max-width: 150px !important;
    margin-right: 10px !important;
  }

  /* Group icons and toggle together on the far right */
  .dh-header-actions {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important; /* Space between Wishlist, Cart, and Toggle */
    justify-content: flex-end !important;
  }

  /* Standardize Action Icons (Wishlist/Cart) */
  .dh-action-link,
  .dh-cart-link {
    font-size: 24px !important;
    line-height: 1 !important;
    margin: 0 !important;
  }

  /* Style the Toggle Button */
  .dh-mobile-toggle {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    width: 38px !important;
    height: 38px !important;
    border: 1px solid var(--dh-border) !important;
    border-radius: 8px !important;
    background: #fff !important;
    padding: 0 !important;
    margin-left: 5px !important;
  }

  .dh-mobile-toggle span {
    width: 20px !important;
    height: 2px !important;
    background: var(--dh-dark) !important;
    margin: 2px 0 !important;
  }

  /* Push Search Bar to its own dedicated row below */
  .dh-header-search {
    flex: 0 0 100% !important; /* Force break to next line */
    order: 3 !important;
    margin-top: 15px !important;
  }

  .dh-header-search form {
    display: flex !important; /* Flex is more stable than grid for rounded pills */
    height: 46px !important;
    border-radius: 50px !important;
    width: 100% !important;
  }

  /* Position the absolute navbar dropdown */
  .dh-navbar {
    display: none !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 9999 !important;
    background: var(--dh-primary) !important;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1) !important;
  }

  .dh-navbar.is-active {
    display: block !important;
  }
}

/* 4. Small Mobile Adjustments (640px and below) */
@media (max-width: 640px) {
  .dh-logo img {
    max-width: 130px !important;
  }

  .dh-topbar__inner {
    flex-direction: column !important;
    padding: 10px 0 !important;
  }
}

/* --- Desktop Reset --- */
.dh-navbar {
  display: block;
  z-index: 100;
}

/* --- Mobile Logic (991px and below) --- */
@media (max-width: 991px) {
  .dh-navbar {
    display: none; /* Hidden by default */
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: var(--dh-primary);
    z-index: 9999 !important; /* Force to front */
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
  }

  /* THIS IS THE CRITICAL RULE */
  .dh-navbar.is-active {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .dh-primary-menu {
    flex-direction: column;
    padding: 0;
  }

  .dh-primary-menu li a {
    padding: 15px 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    display: block;
  }
}

/* --- Toggle Button Styling --- */
.dh-mobile-toggle {
  display: none; /* Hidden on desktop */
}

@media (max-width: 991px) {
  .dh-mobile-toggle {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4px;
    width: 40px;
    height: 40px;
    border: 1px solid var(--dh-border);
    border-radius: 6px;
    background: #fff;
  }

  .dh-mobile-toggle span {
    width: 22px;
    height: 2px;
    background: var(--dh-dark);
    transition: 0.3s;
  }

  /* Optional: Hamburger to X animation */
  .dh-mobile-toggle.open span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }
  .dh-mobile-toggle.open span:nth-child(2) {
    opacity: 0;
  }
  .dh-mobile-toggle.open span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }
}

/* ================================
   Hero Section
================================ */
.dh-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(
      circle at 20% 20%,
      rgba(255, 255, 255, 0.9),
      transparent 28%
    ),
    linear-gradient(
      90deg,
      var(--dh-secondary) 0%,
      var(--dh-primary-dark) 52%,
      var(--dh-primary) 100%
    );
  min-height: 330px;
}

.dh-hero::before,
.dh-hero::after {
  content: "✦";
  position: absolute;
  color: var(--dh-primary-dark);
  font-size: 22px;
  animation: dhFloat 4s ease-in-out infinite;
}

.dh-hero::before {
  top: 42px;
  left: 48px;
}

.dh-hero::after {
  right: 110px;
  bottom: 56px;
  animation-delay: 1.2s;
}

.dh-hero__inner {
  min-height: 330px;
  display: grid;
  grid-template-columns: 1fr 1.08fr;
  align-items: center;
  gap: 40px;
}

.dh-hero__content {
  max-width: 530px;
  padding: 54px 0;
  position: relative;
  z-index: 2;
}

.dh-hero__badge {
  display: inline-flex;
  align-items: center;
  padding: 7px 15px;
  margin-bottom: 16px;
  border-radius: 999px;
  background: var(--dh-secondary);
  color: var(--dh-white);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.dh-hero h1 {
  margin: 0;
  font-family: var(--dh-heading-font);
  color: var(--dh-primary);
  font-size: clamp(38px, 4vw, 58px);
  line-height: 1.06;
  letter-spacing: -0.03em;
}

.dh-hero p {
  max-width: 430px;
  margin: 18px 0 0;
  color: var(--dh-primary-dark);
  font-size: 16px;
  line-height: 1.65;
  font-weight: 500;
}

.dh-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 28px;
}

.dh-btn {
  min-width: 132px;
  height: 48px;
  padding: 0 26px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  transition: all 0.2s ease;
}

.dh-btn--primary {
  background: var(--dh-primary);
  color: var(--dh-white);
  box-shadow: 0 12px 28px var(--dh-primary-dark);
}

.dh-btn--primary:hover {
  background: var(--dh-primary-dark);
  transform: translateY(-2px);
}

.dh-btn--outline {
  color: var(--dh-primary);
  border: 2px solid var(--dh-primary);
  background: var(--dh-white);
}

.dh-btn--outline:hover {
  background: var(--dh-white);
  border-color: var(--dh-primary);
  transform: translateY(-2px);
}

.dh-hero__image {
  position: relative;
  min-height: 330px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.dh-hero__image img {
  width: min(100%, 620px);
  height: auto;
  display: block;
  object-fit: contain;
}

.dh-hero__mockup {
  width: 100%;
  min-height: 330px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dh-box {
  position: relative;
  width: 470px;
  height: 230px;
  border-radius: 18px;
  background: linear-gradient(145deg, var(--dh-primary), var(--dh-secondary));
  box-shadow: 0 28px 70px rgba(87, 47, 35, 0.22);
  transform: rotate(-2deg);
  border: 14px solid var(--dh-primary);
}

.dh-box::before {
  content: "";
  position: absolute;
  inset: 12px;
  border-radius: 10px;
  background: var(--dh-secondary);
  box-shadow: inset 0 0 0 1px var(--dh-cream);
}

.dh-box__ribbon {
  position: absolute;
  top: -34px;
  left: 52%;
  width: 38px;
  height: 295px;
  background: linear-gradient(var(--dh-primary), var(--dh-primary));
  transform: rotate(34deg);
  z-index: 4;
  border-radius: 999px;
}

.dh-box__item,
.dh-box__jar,
.dh-box__bottle,
.dh-box__flowers {
  position: absolute;
  z-index: 5;
  box-shadow: 0 12px 26px var(--dh-dark);
}

.dh-box__item {
  top: 38px;
  width: 92px;
  height: 110px;
  border-radius: 7px;
  background: var(--dh-primary);
  color: var(--dh-cream);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: var(--dh-heading-font);
  font-size: 15px;
  line-height: 1.25;
}

.dh-box__item--one {
  left: 88px;
}

.dh-box__item--two {
  left: 198px;
  background: var(--dh-secondary);
  color: var(--dh-text);
}

.dh-box__jar {
  left: 195px;
  bottom: 32px;
  width: 80px;
  height: 64px;
  border-radius: 16px 16px 10px 10px;
  background: linear-gradient(var(--dh-white), var(--dh-secondary));
  color: var(--dh-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--dh-heading-font);
  font-weight: 700;
}

.dh-box__bottle {
  right: 66px;
  bottom: 24px;
  width: 58px;
  height: 160px;
  border-radius: 22px 22px 9px 9px;
  background: linear-gradient(
    90deg,
    var(--dh-dark),
    var(--dh-primary-dark),
    var(--dh-dark)
  );
  color: var(--dh-white);
  display: flex;
  align-items: center;
  justify-content: center;
  writing-mode: vertical-rl;
  font-family: var(--dh-heading-font);
  font-size: 16px;
}

.dh-box__flowers {
  left: 52px;
  bottom: 32px;
  background: transparent;
  font-size: 34px;
  box-shadow: none;
}

@keyframes dhFloat {
  0%,
  100% {
    transform: translateY(0) rotate(0);
  }

  50% {
    transform: translateY(-12px) rotate(12deg);
  }
}

@media (max-width: 992px) {
  .dh-hero__inner {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .dh-hero__content {
    max-width: 100%;
    padding: 44px 0 10px;
  }

  .dh-hero p {
    margin-left: auto;
    margin-right: auto;
  }

  .dh-hero__actions {
    justify-content: center;
  }

  .dh-hero__image {
    min-height: 260px;
  }

  .dh-box {
    transform: scale(0.88) rotate(-2deg);
  }
}

@media (max-width: 640px) {
  .dh-hero__inner {
    gap: 10px;
  }

  .dh-hero h1 {
    font-size: 38px;
  }

  .dh-btn {
    width: 100%;
  }

  .dh-box {
    transform: scale(0.68) rotate(-2deg);
  }

  .dh-hero__image {
    min-height: 220px;
  }
}

/* ================================
   Hero Section - Responsive Fixed
================================ */
.dh-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(
      circle at 20% 20%,
      rgba(255, 255, 255, 0.9),
      transparent 28%
    ),
    linear-gradient(90deg, #ebffee 0%, #dcffde 52%, var(--dh-secondary) 100%);
  min-height: 500px; /* Increased for better desktop presence */
  display: flex;
  align-items: center;
}

.dh-hero__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 40px;
  width: 100%;
}

.dh-hero__content {
  max-width: 550px;
  z-index: 10;
}

/* Ensure the image container scales its children */
.dh-hero__image {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

/* The Mockup Wrapper - The key to responsiveness */
.dh-hero__mockup {
  width: 100%;
  max-width: 470px;
  aspect-ratio: 470 / 230; /* Maintains box shape */
  display: flex;
  align-items: center;
  justify-content: center;
  perspective: 1000px;
}

/* Scalable CSS Box */
.dh-box {
  position: relative;
  width: 100%; /* Scales with mockup container */
  height: 100%;
  border-radius: 4vw; /* Relative radius */
  max-border-radius: 18px;
  background: linear-gradient(
    145deg,
    var(--dh-primary),
    var(--dh-primary-dark)
  );
  box-shadow: 0 28px 70px rgba(31, 83, 28, 0.15);
  transform: rotate(-2deg);
  border: 1.5vw solid var(--dh-primary-dark); /* Relative border */
  max-border-width: 14px;
}

/* ================================
   Tablet & Mobile Refinement
================================ */
@media (max-width: 992px) {
  .dh-hero {
    padding: 60px 0;
    text-align: center;
  }

  .dh-hero__inner {
    grid-template-columns: 1fr; /* Stack elements */
    gap: 50px;
  }

  .dh-hero__content {
    max-width: 100%;
    margin: 0 auto;
  }

  .dh-hero p {
    margin: 18px auto 0;
  }

  .dh-hero__actions {
    justify-content: center;
  }

  .dh-hero__mockup {
    max-width: 400px; /* Slightly smaller on tablet */
    margin: 0 auto;
  }
}

@media (max-width: 640px) {
  .dh-hero {
    min-height: auto;
    padding: 40px 0;
  }

  .dh-hero h1 {
    font-size: 32px; /* Smaller mobile title */
    line-height: 1.1;
  }

  .dh-hero__actions {
    flex-direction: column; /* Stack buttons on tiny screens */
    gap: 12px;
  }

  .dh-btn {
    width: 100%; /* Full width buttons */
  }

  .dh-hero__mockup {
    max-width: 280px; /* Scale box down for mobile */
  }

  /* Hide smaller decorative box items on mobile for clarity */
  .dh-box__item,
  .dh-box__jar,
  .dh-box__bottle {
    font-size: 11px;
  }
}

/* Ensure CSS items inside the box stay relative */
.dh-box__ribbon {
  position: absolute;
  top: -15%;
  left: 52%;
  width: 8%;
  height: 130%;
  background: linear-gradient(var(--dh-primary), var(--dh-secondary));
  transform: rotate(34deg);
  z-index: 4;
  border-radius: 999px;
}

/* ================================
   Product Section
================================ */
.dh-products-section {
  padding: 28px 0 42px;
  background: #fff;
}

.dh-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 20px;
}

.dh-section-heading span {
  display: block;
  margin-bottom: 6px;
  color: var(--dh-secondary);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.dh-section-heading h2 {
  margin: 0;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 31px;
  line-height: 1.15;
}

.dh-section-heading a {
  color: var(--dh-primary);
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  white-space: nowrap;
}

.dh-products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}

.dh-product-card {
  background: #fff;
  border-radius: 9px;
  overflow: hidden;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.dh-product-card:hover {
  transform: translateY(-5px);
}

.dh-product-card__image {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 9px;
  background: #ecffee;
  aspect-ratio: 1.35 / 1;
}

.dh-product-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.dh-product-card:hover .dh-product-card__image img {
  transform: scale(1.06);
}

.dh-product-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 3;
  border-radius: 999px;
  padding: 6px 10px;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.dh-product-badge--gold {
  background: var(--dh-gold);
}

.dh-product-badge--green {
  background: var(--dh-primary);
}

.dh-product-badge--sale {
  background: var(--dh-primary);
}

.dh-product-card__content {
  padding: 13px 0 0;
}

.dh-product-card h3 {
  margin: 0 0 9px;
  color: var(--dh-dark);
  font-size: 15px;
  font-weight: 800;
  line-height: 1.35;
}

.dh-product-card h3 a:hover {
  color: var(--dh-primary);
}

.dh-product-rating {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
  line-height: 1;
}

.dh-stars {
  color: var(--dh-gold);
  font-size: 14px;
  letter-spacing: 1px;
}

.dh-rating-count {
  color: var(--dh-muted);
  font-size: 12px;
  font-weight: 600;
}

.dh-product-price {
  margin-bottom: 13px;
  color: var(--dh-primary);
  font-size: 17px;
  font-weight: 900;
}

.dh-product-price del {
  margin-right: 6px;
  color: #9ca3af;
  font-size: 13px;
  font-weight: 600;
}

.dh-product-price ins {
  text-decoration: none;
}

.dh-add-to-cart {
  width: 100%;
  height: 42px;
  border-radius: 6px !important;
  background: var(--dh-primary) !important;
  color: #fff !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 0 18px !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  transition:
    background 0.2s ease,
    transform 0.2s ease;
}

.dh-add-to-cart:hover {
  background: var(--dh-primary-dark) !important;
  transform: translateY(-1px);
}

.dh-add-to-cart.added {
  background: var(--dh-primary) !important;
}

.dh-product-action .added_to_cart {
  display: block;
  margin-top: 8px;
  color: var(--dh-primary);
  font-size: 13px;
  font-weight: 800;
  text-align: center;
}

@media (max-width: 992px) {
  .dh-products-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .dh-section-heading {
    align-items: flex-start;
  }
}

@media (max-width: 640px) {
  .dh-products-section {
    padding: 24px 0 34px;
  }

  .dh-section-heading {
    display: block;
  }

  .dh-section-heading a {
    display: inline-block;
    margin-top: 10px;
  }

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

/* ================================
   Features / Why Choose Us
================================ */
.dh-features-section {
  background: var(--dh-soft);
  padding: 36px 0;
}

.dh-features__inner {
  display: grid;
  grid-template-columns: 260px 1fr;
  align-items: center;
  gap: 38px;
}

.dh-features__heading span {
  display: block;
  margin-bottom: 7px;
  color: var(--dh-primary);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.dh-features__heading h2 {
  margin: 0;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 27px;
  line-height: 1.15;
}

.dh-features-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}

.dh-feature-card {
  text-align: center;
  padding: 10px;
}

.dh-feature-card__icon {
  width: 46px;
  height: 46px;
  margin: 0 auto 12px;
  border-radius: 50%;
  color: var(--dh-primary);
  border: 1px solid rgba(54, 189, 47, 0.18);
  background: rgba(255, 255, 255, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 25px;
}

.dh-feature-card h3 {
  margin: 0 0 6px;
  color: var(--dh-dark);
  font-size: 14px;
  font-weight: 900;
}

.dh-feature-card p {
  max-width: 155px;
  margin: 0 auto;
  color: var(--dh-muted);
  font-size: 13px;
  line-height: 1.45;
}

@media (max-width: 992px) {
  .dh-features__inner {
    grid-template-columns: 1fr;
    text-align: center;
  }

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

@media (max-width: 640px) {
  .dh-features-grid {
    grid-template-columns: 1fr;
  }
}

/* ================================
   Gift Box CTA
================================ */
.dh-gift-box-section {
  padding: 54px 0;
  background: #fff;
}

.dh-gift-box__inner {
  display: grid;
  grid-template-columns: 0.95fr 1fr;
  align-items: center;
  gap: 54px;
  background: linear-gradient(135deg, #ecffef, #d8ffe9);
  border-radius: 24px;
  padding: 46px;
  overflow: hidden;
}

.dh-gift-box__image {
  display: flex;
  align-items: center;
  justify-content: center;
}

.dh-gift-box__mockup {
  position: relative;
  width: 310px;
  height: 260px;
}

.dh-gift-box__lid {
  position: absolute;
  top: 38px;
  left: 24px;
  width: 260px;
  height: 72px;
  border-radius: 14px;
  background: linear-gradient(
    135deg,
    var(--dh-primary-dark),
    var(--dh-primary)
  );
  transform: rotate(-7deg);
  box-shadow: 0 20px 40px var(--dh-primary-dark);
}

.dh-gift-box__body {
  position: absolute;
  bottom: 18px;
  left: 36px;
  width: 238px;
  height: 160px;
  border-radius: 18px;
  background: linear-gradient(
    145deg,
    var(--dh-secondary),
    var(--dh-primary-dark)
  );
  border: 10px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 24px 55px rgba(31, 83, 28, 0.22);
  display: flex;
  align-items: center;
  justify-content: center;
}

.dh-gift-box__body span {
  font-size: 74px;
}

.dh-gift-box__tag {
  position: absolute;
  right: 10px;
  top: 12px;
  z-index: 3;
  background: #fff;
  color: var(--dh-primary);
  border-radius: 999px;
  padding: 8px 14px;
  font-size: 12px;
  font-weight: 900;
  box-shadow: 0 12px 25px rgba(0, 0, 0, 0.08);
}

.dh-mini-title {
  display: block;
  margin-bottom: 8px;
  color: var(--dh-primary);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.dh-gift-box__content h2 {
  margin: 0;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1.08;
}

.dh-gift-box__content p {
  max-width: 480px;
  margin: 16px 0;
  color: #685b5b;
  font-size: 15px;
  line-height: 1.75;
  font-weight: 500;
}

.dh-gift-box__content ul {
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}

.dh-gift-box__content li {
  position: relative;
  margin-bottom: 10px;
  padding-left: 28px;
  color: var(--dh-dark);
  font-size: 14px;
  font-weight: 700;
}

.dh-gift-box__content li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: -1px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--dh-primary);
  color: #fff;
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ================================
   Gift Box CTA - Fully Responsive
================================ */
.dh-gift-box-section {
  padding: 80px 0; /* Standardized spacing */
  background: #fff;
}

.dh-gift-box__inner {
  display: grid;
  grid-template-columns: 0.95fr 1fr;
  align-items: center;
  gap: 60px;
  background: linear-gradient(135deg, #ecffef, #d8ffe9);
  border-radius: 30px;
  padding: 60px;
  overflow: hidden;
}

.dh-gift-box__image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

/* Scaling container for the CSS Mockup */
.dh-gift-box__mockup {
  position: relative;
  width: 310px;
  height: 260px;
  transition: transform 0.3s ease;
}

.dh-gift-box__lid {
  position: absolute;
  top: 38px;
  left: 24px;
  width: 260px;
  height: 72px;
  border-radius: 14px;
  background: linear-gradient(
    135deg,
    var(--dh-primary-dark),
    var(--dh-secondary)
  );
  transform: rotate(-7deg);
  box-shadow: 0 20px 40px rgba(47, 189, 57, 0.25);
  z-index: 2;
}

.dh-gift-box__body {
  position: absolute;
  bottom: 18px;
  left: 36px;
  width: 238px;
  height: 160px;
  border-radius: 18px;
  background: linear-gradient(
    145deg,
    var(--dh-secondary),
    var(--dh-primary-dark)
  );
  border: 10px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 24px 55px rgba(31, 83, 28, 0.22);
  display: flex;
  align-items: center;
  justify-content: center;
}

.dh-gift-box__body span {
  font-size: 74px;
}

/* --- Responsive Adjustments --- */

@media (max-width: 1024px) {
  .dh-gift-box__inner {
    gap: 40px;
    padding: 40px;
  }
}

@media (max-width: 991px) {
  .dh-gift-box__inner {
    grid-template-columns: 1fr; /* Stack mockup on top */
    text-align: center;
    padding: 50px 30px;
  }

  .dh-gift-box__image {
    order: -1; /* Ensure image stays above text on mobile */
    margin-bottom: 20px;
  }

  .dh-gift-box__content p {
    margin: 16px auto; /* Center text */
  }

  .dh-gift-box__content ul {
    display: inline-block; /* Keep list centered but aligned left internally */
    text-align: left;
  }
}

@media (max-width: 640px) {
  .dh-gift-box-section {
    padding: 40px 0;
  }

  .dh-gift-box__inner {
    padding: 40px 20px;
    border-radius: 20px;
  }

  /* Scale down the mockup for small phones */
  .dh-gift-box__mockup {
    transform: scale(0.8);
    margin-bottom: -30px; /* Adjust spacing for scale */
  }

  .dh-gift-box__content h2 {
    font-size: 28px; /* Fit headings better on small screens */
  }

  .dh-gift-box__content p {
    font-size: 14px;
  }
}

/* Tiny screen scaling */
@media (max-width: 380px) {
  .dh-gift-box__mockup {
    transform: scale(0.65);
  }
}

/* ================================
   Gift Box CTA - Specific Mobile Fix
================================ */
.dh-gift-box-section {
  padding: 60px 0;
  background: #fff;
}

.dh-gift-box__inner {
  display: flex; /* Switched from grid to flex for better mobile control */
  flex-direction: column;
  align-items: center;
  background: linear-gradient(135deg, #ecffef, #d8ffe9);
  border-radius: 24px;
  padding: 40px 20px;
  overflow: visible; /* Changed from hidden to prevent clipping */
}

/* Desktop Reversion */
@media (min-width: 992px) {
  .dh-gift-box__inner {
    display: grid;
    grid-template-columns: 0.95fr 1fr;
    flex-direction: row;
    padding: 46px;
    gap: 54px;
  }
}

/* Handling the Mockup image area */
.dh-gift-box__image {
  width: 100%;
  display: flex;
  justify-content: center;
  margin-bottom: 30px; /* Spacing between box and text */
}

.dh-gift-box__mockup {
  position: relative;
  width: 260px; /* Scaled down for mobile */
  height: 200px; /* Explicit height to prevent squashing */
}

/* Mobile scaling for the inner box parts */
@media (max-width: 991px) {
  .dh-gift-box__lid {
    width: 220px;
    height: 60px;
    top: 20px;
    left: 20px;
  }

  .dh-gift-box__body {
    width: 200px;
    height: 130px;
    bottom: 10px;
    left: 30px;
  }

  .dh-gift-box__body span {
    font-size: 50px; /* Smaller icon */
  }

  /* Fix the text spacing */
  .dh-gift-box__content {
    text-align: center;
  }

  .dh-gift-box__content h2 {
    font-size: 28px !important;
    line-height: 1.2;
  }

  .dh-gift-box__content ul {
    display: inline-block;
    text-align: left;
    margin: 20px 0;
  }

  .dh-btn {
    width: 100%; /* Make button big and clickable on mobile */
    max-width: 300px;
  }
}

/* Desktop-specific box sizes (Keep your original values for large screens) */
@media (min-width: 992px) {
  .dh-gift-box__mockup {
    width: 310px;
    height: 260px;
  }
  .dh-gift-box__image {
    margin-bottom: 0;
  }
}

/* ================================
   Reviews
================================ */
.dh-reviews-section {
  padding: 48px 0 58px;
  background: #f7fff8;
}

.dh-section-heading--center {
  justify-content: center;
  text-align: center;
}

.dh-reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 22px;
}

.dh-review-card {
  background: #fff;
  border: 1px solid var(--dh-border);
  border-radius: 16px;
  padding: 26px;
  box-shadow: 0 18px 45px rgba(50, 30, 20, 0.05);
}

.dh-review-stars {
  color: #f4b400;
  font-size: 15px;
  letter-spacing: 2px;
  margin-bottom: 14px;
}

.dh-review-card p {
  margin: 0 0 20px;
  color: #565f58;
  font-size: 14px;
  line-height: 1.75;
}

.dh-review-author {
  display: flex;
  align-items: center;
  gap: 11px;
}

.dh-review-author span {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--dh-soft);
  color: var(--dh-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
}

.dh-review-author strong {
  color: var(--dh-dark);
  font-size: 14px;
}

@media (max-width: 992px) {
  .dh-gift-box__inner {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .dh-gift-box__content p {
    margin-left: auto;
    margin-right: auto;
  }

  .dh-gift-box__content li {
    text-align: left;
  }

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

@media (max-width: 640px) {
  .dh-gift-box__inner {
    padding: 30px 20px;
  }

  .dh-gift-box__mockup {
    transform: scale(0.82);
  }
}

/* ================================
   Shop Page
================================ */
.dh-shop-hero {
  padding: 54px 0;
  text-align: center;
  background: linear-gradient(135deg, var(--dh-border), var(--dh-cream));
}

.dh-shop-hero span {
  display: block;
  margin-bottom: 8px;
  color: var(--dh-primary);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.dh-shop-hero h1 {
  margin: 0;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: clamp(38px, 5vw, 58px);
  line-height: 1.05;
}

.dh-shop-hero p,
.dh-shop-hero__desc {
  max-width: 620px;
  margin: 16px auto 0;
  color: #695b5b;
  font-size: 15px;
  line-height: 1.75;
}

.dh-shop-content {
  padding: 42px 0 60px;
  background: #fff;
}

.dh-shop-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
  margin-bottom: 28px;
  padding: 16px 18px;
  border: 1px solid var(--dh-border);
  border-radius: 14px;
  background: #fffaf7;
}

.dh-shop-result-count .woocommerce-result-count,
.dh-shop-result-count {
  margin: 0;
  color: var(--dh-muted);
  font-size: 14px;
  font-weight: 700;
}

.dh-shop-ordering .woocommerce-ordering {
  margin: 0;
}

.dh-shop-ordering select {
  min-width: 220px;
  height: 42px;
  border: 1px solid var(--dh-border);
  border-radius: 8px;
  background: #fff;
  padding: 0 12px;
  color: var(--dh-dark);
  font-size: 14px;
  font-weight: 700;
  outline: none;
}

.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px 22px;
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none !important;
}

.woocommerce ul.products li.product.dh-shop-product-card {
  width: auto !important;
  float: none !important;
  clear: none !important;
  margin: 0 !important;
  list-style: none;
  background: #fff;
  border-radius: 12px;
}

.dh-shop-product-card__image {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 12px;
  background: #fff3ec;
  aspect-ratio: 1.25 / 1;
}

.dh-shop-product-card__image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  margin: 0 !important;
  transition: transform 0.35s ease;
}

.dh-shop-product-card:hover .dh-shop-product-card__image img {
  transform: scale(1.06);
}

.dh-shop-product-card__content {
  padding-top: 14px;
}

.woocommerce ul.products li.product .dh-shop-product-card__content h2 {
  margin: 0 0 8px;
  padding: 0;
  color: var(--dh-dark);
  font-size: 15px;
  font-weight: 900;
  line-height: 1.35;
}

.dh-shop-product-card__content h2 a:hover {
  color: var(--dh-primary);
}

.woocommerce ul.products li.product .button,
.dh-shop-product-card .button {
  width: 100%;
  height: 42px;
  margin-top: 0 !important;
  border-radius: 7px !important;
  background: var(--dh-primary) !important;
  color: #fff !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 0 18px !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  text-transform: uppercase;
}

.woocommerce ul.products li.product .button:hover {
  background: var(--dh-primary-dark) !important;
}

.dh-shop-pagination {
  margin-top: 40px;
  text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
  border: 0;
  display: inline-flex;
  gap: 8px;
}

.woocommerce nav.woocommerce-pagination ul li {
  border: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  min-width: 40px;
  height: 40px;
  border-radius: 8px;
  border: 1px solid var(--dh-border);
  background: #fff;
  color: var(--dh-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
  background: var(--dh-primary);
  color: #fff;
  border-color: var(--dh-primary);
}

.dh-shop-empty {
  max-width: 520px;
  margin: 0 auto;
  text-align: center;
  padding: 60px 20px;
  background: #fffaf7;
  border-radius: 18px;
  border: 1px solid var(--dh-border);
}

.dh-shop-empty h2 {
  margin: 0 0 10px;
  font-family: var(--dh-heading-font);
  font-size: 34px;
  color: var(--dh-dark);
}

.dh-shop-empty p {
  margin: 0;
  color: var(--dh-muted);
}

@media (max-width: 992px) {
  .woocommerce ul.products {
    grid-template-columns: repeat(2, 1fr);
  }

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

@media (max-width: 640px) {
  .dh-shop-hero {
    padding: 42px 0;
  }

  .woocommerce ul.products {
    grid-template-columns: 1fr;
  }

  .dh-shop-ordering,
  .dh-shop-ordering .woocommerce-ordering,
  .dh-shop-ordering select {
    width: 100%;
  }
}

/* ================================
   Single Product Page - Clean Fixed
================================ */
.dh-single-product-page {
  background: #fff;
}

.dh-single-product {
  padding: 58px 0;
  background: linear-gradient(180deg, #fffaf7 0%, #fff 100%);
}

.dh-single-product__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 520px;
  gap: 56px;
  align-items: start;
}

.dh-single-product__gallery {
  position: sticky;
  top: 24px;
}

.woocommerce div.product div.images {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
}

.woocommerce div.product div.images img {
  border-radius: 22px;
  background: #fff3ec;
}

.woocommerce div.product div.images .flex-control-thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 14px !important;
}

.woocommerce div.product div.images .flex-control-thumbs li {
  width: auto !important;
  float: none !important;
}

.woocommerce div.product div.images .flex-control-thumbs img {
  border-radius: 12px;
  border: 2px solid transparent;
  opacity: 1;
}

.woocommerce div.product div.images .flex-control-thumbs img.flex-active {
  border-color: var(--dh-primary);
}

.dh-single-product__gallery .onsale {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 5;
  min-height: auto;
  min-width: auto;
  border-radius: 999px;
  background: var(--dh-primary);
  color: #fff;
  padding: 8px 14px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}

.dh-single-product__summary {
  padding: 34px;
  border-radius: 24px;
  background: #fff;
  border: 1px solid var(--dh-border);
  box-shadow: 0 24px 70px rgba(65, 35, 25, 0.07);
}

.dh-single-product__badge {
  display: inline-flex;
  margin-bottom: 14px;
  padding: 7px 14px;
  border-radius: 999px;
  background: var(--dh-soft);
  color: var(--dh-primary);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.dh-single-product__summary h1 {
  margin: 0;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.08;
}

.dh-single-product__rating {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
}

.dh-stars {
  color: #f4b400;
  font-size: 15px;
  letter-spacing: 1px;
}

.dh-single-product__rating a {
  color: var(--dh-muted);
  font-size: 13px;
  font-weight: 700;
}

.dh-single-product__price {
  margin: 22px 0;
  color: var(--dh-primary);
  font-size: 31px;
  font-weight: 900;
}

.dh-single-product__price del {
  color: #9ca3af;
  font-size: 18px;
  margin-right: 8px;
}

.dh-single-product__price ins {
  text-decoration: none;
}

.dh-single-product__excerpt {
  color: #625858;
  font-size: 15px;
  line-height: 1.75;
}

.dh-single-product__meta-box {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 24px 0;
}

.dh-single-product__meta-box div {
  padding: 15px;
  border-radius: 14px;
  background: #fffaf7;
  border: 1px solid var(--dh-border);
}

.dh-single-product__meta-box strong,
.dh-single-product__meta-box span {
  display: block;
}

.dh-single-product__meta-box strong {
  margin-bottom: 5px;
  color: var(--dh-dark);
  font-size: 13px;
}

.dh-single-product__meta-box span {
  color: var(--dh-primary);
  font-size: 13px;
  font-weight: 900;
}

.woocommerce div.product form.cart {
  display: flex;
  gap: 12px;
  margin: 20px 0 0 !important;
  flex-wrap: wrap;
}

.woocommerce div.product form.cart div.quantity {
  margin: 0 !important;
}

.woocommerce .quantity .qty {
  width: 86px;
  height: 52px;
  border: 1px solid var(--dh-border);
  border-radius: 10px;
  color: var(--dh-dark);
  font-size: 15px;
  font-weight: 800;
}

.woocommerce div.product form.cart .button {
  min-height: 52px;
  flex: 1;
  border-radius: 10px !important;
  background: var(--dh-primary) !important;
  color: #fff !important;
  padding: 0 28px !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  text-transform: uppercase;
}

.woocommerce div.product form.cart .button:hover {
  background: var(--dh-primary-dark) !important;
}

.dh-gift-note-box {
  display: flex;
  gap: 14px;
  margin-top: 22px;
  padding: 18px;
  border-radius: 16px;
  background: linear-gradient(135deg, #fff3ec, var(--dh-primary));
}

.dh-gift-note-box span {
  font-size: 28px;
}

.dh-gift-note-box strong {
  display: block;
  margin-bottom: 4px;
  color: var(--dh-dark);
  font-size: 14px;
}

.dh-gift-note-box p {
  margin: 0;
  color: #665b5b;
  font-size: 13px;
  line-height: 1.55;
}

.dh-single-product__trust {
  display: grid;
  gap: 9px;
  margin-top: 22px;
}

.dh-single-product__trust div {
  padding: 12px 14px;
  border-radius: 12px;
  background: #fffaf7;
  border: 1px solid var(--dh-border);
  color: var(--dh-dark);
  font-size: 13px;
  font-weight: 800;
}

.dh-single-product__meta {
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid var(--dh-border);
  color: var(--dh-muted);
  font-size: 13px;
}

.dh-single-product__meta a {
  color: var(--dh-primary);
  font-weight: 800;
}

/* Tabs */
.dh-single-tabs {
  padding: 24px 0 58px;
  background: #fff;
}

.woocommerce div.product .woocommerce-tabs {
  max-width: 1000px;
  margin: 0 auto !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
  display: flex !important;
  justify-content: center;
  gap: 12px;
  padding: 0 !important;
  margin: 0 0 28px !important;
  border: 0 !important;
  list-style: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
  display: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 13px 24px !important;
  border-radius: 999px;
  background: #fff3ec;
  border: 1px solid var(--dh-border);
  color: var(--dh-muted) !important;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  background: var(--dh-primary);
  border-color: var(--dh-primary);
  color: #fff !important;
}

.woocommerce div.product .woocommerce-tabs .panel {
  margin: 0 !important;
  padding: 34px !important;
  border-radius: 22px;
  background: linear-gradient(180deg, #fffaf7 0%, #fff 100%);
  border: 1px solid var(--dh-border);
  box-shadow: 0 22px 60px rgba(65, 35, 25, 0.06);
}

.woocommerce div.product .woocommerce-tabs .panel h2,
.woocommerce-Reviews-title {
  margin: 0 0 18px !important;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 34px;
}

.woocommerce div.product .woocommerce-tabs .panel p,
.woocommerce div.product .woocommerce-tabs .panel li {
  color: #625858;
  font-size: 15px;
  line-height: 1.8;
}

/* Reviews */
#reviews {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 34px;
  align-items: start;
}

.woocommerce #reviews #comments ol.commentlist {
  margin: 0;
  padding: 0;
}

.woocommerce #reviews #comments ol.commentlist li {
  margin-bottom: 18px;
}

.woocommerce #reviews #comments ol.commentlist li img.avatar {
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 50%;
  background: var(--dh-soft);
  padding: 0;
}

.woocommerce #reviews #comments ol.commentlist li .comment-text {
  margin-left: 68px;
  padding: 18px 20px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid var(--dh-border);
}

.woocommerce .star-rating {
  color: #f4b400;
}

.woocommerce #review_form_wrapper {
  padding: 24px;
  border-radius: 18px;
  background: #fff3ec;
  border: 1px solid var(--dh-border);
}

#review_form #reply-title {
  display: block;
  margin-bottom: 14px;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 26px;
  font-weight: 700;
}

.woocommerce #review_form #respond label {
  display: block;
  margin-bottom: 7px;
  color: var(--dh-dark);
  font-size: 13px;
  font-weight: 800;
}

.woocommerce #review_form #respond textarea,
.woocommerce #review_form #respond input[type="text"],
.woocommerce #review_form #respond input[type="email"] {
  width: 100%;
  border: 1px solid var(--dh-border);
  border-radius: 10px;
  background: #fff;
  padding: 13px 14px;
  font-size: 14px;
  outline: none;
}

.woocommerce #review_form #respond textarea {
  min-height: 130px;
}

.woocommerce #review_form #respond .form-submit input {
  width: 100%;
  height: 46px;
  border: 0;
  border-radius: 8px;
  background: var(--dh-primary);
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  cursor: pointer;
}

.woocommerce #review_form #respond .form-submit input:hover {
  background: var(--dh-primary-dark);
}

/* Related */
.dh-related-products {
  padding: 54px 0 70px;
  background: linear-gradient(180deg, #fffaf7 0%, #fff3ec 100%);
}

.dh-related-products .related > h2 {
  margin: 0 0 30px !important;
  text-align: center;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 38px;
}

/* Responsive */
@media (max-width: 992px) {
  .dh-single-product__inner {
    grid-template-columns: 1fr;
  }

  .dh-single-product__gallery {
    position: static;
  }

  #reviews {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .dh-single-product {
    padding: 36px 0;
  }

  .dh-single-product__summary {
    padding: 24px;
  }

  .dh-single-product__meta-box {
    grid-template-columns: 1fr;
  }

  .woocommerce div.product form.cart {
    display: block;
  }

  .woocommerce div.product form.cart div.quantity {
    margin-bottom: 12px !important;
  }

  .woocommerce div.product form.cart .button {
    width: 100%;
  }

  .woocommerce div.product .woocommerce-tabs ul.tabs {
    display: grid !important;
    grid-template-columns: 1fr;
  }

  .woocommerce div.product .woocommerce-tabs ul.tabs li a {
    text-align: center;
  }

  .woocommerce div.product .woocommerce-tabs .panel {
    padding: 22px !important;
  }

  .woocommerce #reviews #comments ol.commentlist li .comment-text {
    margin-left: 0;
    margin-top: 14px;
  }

  .woocommerce #reviews #comments ol.commentlist li img.avatar {
    position: static;
  }
}

/* ================================
   Cart Page
================================ */
.dh-cart-hero {
  padding: 50px 0;
  text-align: center;
  background: linear-gradient(135deg, var(--dh-border), var(--dh-cream));
}

.dh-cart-hero span {
  color: var(--dh-primary);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.dh-cart-hero h1 {
  margin: 8px 0 10px;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: clamp(38px, 5vw, 58px);
}

.dh-cart-hero p {
  margin: 0;
  color: var(--dh-muted);
  font-weight: 600;
}

.dh-cart-content {
  padding: 46px 0 70px;
  background: #fff;
}

.dh-cart-layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 34px;
  align-items: start;
}

.dh-cart-items {
  display: grid;
  gap: 18px;
}

.dh-cart-item {
  display: grid;
  grid-template-columns: 110px 1fr 105px 110px 34px;
  gap: 18px;
  align-items: center;
  padding: 18px;
  border: 1px solid var(--dh-border);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 50px rgba(65, 35, 25, 0.04);
}

.dh-cart-item__image img {
  width: 110px;
  height: 95px;
  object-fit: cover;
  border-radius: 12px;
  background: #fff3ec;
}

.dh-cart-item__info h3 {
  margin: 0 0 8px;
  color: var(--dh-dark);
  font-size: 16px;
  font-weight: 900;
}

.dh-cart-item__info h3 a:hover {
  color: var(--dh-primary);
}

.dh-cart-item__meta {
  color: var(--dh-muted);
  font-size: 13px;
}

.dh-cart-item__price {
  margin-top: 8px;
  color: var(--dh-primary);
  font-weight: 900;
}

.dh-cart-item__qty .quantity {
  margin: 0;
}

.dh-cart-item__qty .qty {
  width: 82px;
  height: 42px;
  border: 1px solid var(--dh-border);
  border-radius: 8px;
  text-align: center;
  font-weight: 800;
}

.dh-cart-item__total {
  color: var(--dh-dark);
  font-size: 16px;
  font-weight: 900;
  text-align: right;
}

.dh-cart-item__remove .remove {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #fff3ec;
  color: var(--dh-primary) !important;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
}

.dh-cart-item__remove .remove:hover {
  background: var(--dh-primary);
  color: #fff !important;
}

.dh-cart-actions {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--dh-border);
  border-radius: 18px;
  background: #fffaf7;
}

.dh-cart-coupon {
  display: flex;
  gap: 10px;
  flex: 1;
}

.dh-cart-coupon input {
  max-width: 260px;
  width: 100%;
  height: 44px;
  border: 1px solid var(--dh-border);
  border-radius: 8px;
  padding: 0 14px;
}

.dh-cart-coupon button,
.dh-update-cart {
  height: 44px;
  border: 0;
  border-radius: 8px;
  padding: 0 18px;
  background: var(--dh-primary);
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  cursor: pointer;
}

.dh-update-cart {
  background: var(--dh-dark);
}

.dh-cart-summary {
  position: sticky;
  top: 30px;
}

.dh-cart-summary__box {
  padding: 24px;
  border-radius: 22px;
  background: #fffaf7;
  border: 1px solid var(--dh-border);
  box-shadow: 0 22px 60px rgba(65, 35, 25, 0.06);
}

.dh-cart-summary__box h2 {
  margin: 0 0 20px;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 30px;
}

.dh-cart-summary .cart_totals {
  float: none !important;
  width: 100% !important;
}

.dh-cart-summary .cart_totals > h2 {
  display: none;
}

.dh-cart-summary table {
  width: 100%;
  border: 0 !important;
}

.dh-cart-summary table th,
.dh-cart-summary table td {
  padding: 14px 0 !important;
  border-bottom: 1px solid var(--dh-border) !important;
  background: transparent !important;
}

.dh-cart-summary table th {
  color: var(--dh-dark);
  font-weight: 900;
}

.dh-cart-summary table td {
  text-align: right;
  color: var(--dh-muted);
  font-weight: 700;
}

.dh-cart-summary .order-total th,
.dh-cart-summary .order-total td {
  font-size: 18px;
  color: var(--dh-primary);
  border-bottom: 0 !important;
}

.dh-cart-summary .wc-proceed-to-checkout {
  padding: 20px 0 0;
}

.dh-cart-summary .checkout-button {
  width: 100%;
  height: 52px;
  border-radius: 9px !important;
  background: var(--dh-primary) !important;
  color: #fff !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  font-size: 14px !important;
  font-weight: 900 !important;
  text-transform: uppercase;
}

.dh-cart-trust {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--dh-border);
}

.dh-cart-trust p {
  margin: 0 0 10px;
  color: var(--dh-dark);
  font-size: 13px;
  font-weight: 700;
}

@media (max-width: 992px) {
  .dh-cart-layout {
    grid-template-columns: 1fr;
  }

  .dh-cart-summary {
    position: static;
  }
}

@media (max-width: 700px) {
  .dh-cart-item {
    grid-template-columns: 90px 1fr 30px;
  }

  .dh-cart-item__image img {
    width: 90px;
    height: 80px;
  }

  .dh-cart-item__qty,
  .dh-cart-item__total {
    grid-column: 2 / -1;
    text-align: left;
  }

  .dh-cart-actions {
    flex-direction: column;
  }

  .dh-cart-coupon {
    flex-direction: column;
  }

  .dh-cart-coupon input,
  .dh-cart-coupon button,
  .dh-update-cart {
    max-width: 100%;
    width: 100%;
  }
}

/* ================================
   Checkout Page
================================ */
.dh-checkout-hero {
  padding: 48px 0;
  text-align: center;
  background: linear-gradient(135deg, var(--dh-border), var(--dh-cream));
}

.dh-checkout-hero span {
  color: var(--dh-primary);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.dh-checkout-hero h1 {
  margin: 8px 0 10px;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: clamp(36px, 5vw, 56px);
}

.dh-checkout-hero p {
  margin: 0;
  color: var(--dh-muted);
  font-weight: 600;
}

.dh-checkout-form {
  padding: 46px 0 70px;
  background: #fff;
}

.dh-checkout-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  gap: 36px;
  align-items: start;
}

.dh-checkout-card,
.dh-checkout-summary {
  border: 1px solid var(--dh-border);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 22px 60px rgba(65, 35, 25, 0.06);
}

.dh-checkout-card {
  padding: 32px;
}

.dh-checkout-summary {
  position: sticky;
  top: 28px;
  padding: 26px;
  background: #fffaf7;
}

.dh-checkout-summary h2 {
  margin: 0 0 20px;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 31px;
}

.dh-checkout-summary #order_review_heading {
  margin: 0 0 14px;
  color: var(--dh-primary);
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Checkout headings */
.woocommerce-checkout h3,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3 {
  margin: 0 0 22px;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 30px;
  line-height: 1.2;
}

/* Login / coupon notices */
.woocommerce-form-coupon-toggle,
.woocommerce-form-login-toggle {
  width: min(1180px, calc(100% - 32px));
  margin: 24px auto 0;
}

.woocommerce-info {
  border-top-color: var(--dh-primary);
  border-radius: 12px;
  background: #fffaf7;
  color: var(--dh-dark);
}

.woocommerce-info::before {
  color: var(--dh-primary);
}

.checkout_coupon,
.woocommerce-form-login {
  width: min(1180px, calc(100% - 32px));
  margin: 18px auto;
  padding: 24px !important;
  border: 1px solid var(--dh-border) !important;
  border-radius: 18px !important;
  background: #fffaf7;
}

/* Form layout */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.woocommerce-checkout .form-row {
  margin: 0 0 18px !important;
  padding: 0 !important;
}

.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
  width: 100% !important;
  float: none !important;
}

#billing_company_field,
#billing_country_field,
#billing_address_1_field,
#billing_address_2_field,
#billing_city_field,
#billing_state_field,
#billing_postcode_field,
#billing_phone_field,
#billing_email_field,
#shipping_company_field,
#shipping_country_field,
#shipping_address_1_field,
#shipping_address_2_field,
#shipping_city_field,
#shipping_state_field,
#shipping_postcode_field,
#order_comments_field {
  grid-column: span 2;
}

.woocommerce-checkout .form-row label {
  display: block;
  margin-bottom: 7px;
  color: var(--dh-dark);
  font-size: 13px;
  font-weight: 800;
}

.woocommerce-checkout .required {
  color: var(--dh-primary);
}

.woocommerce-checkout input.input-text,
.woocommerce-checkout select,
.woocommerce-checkout textarea,
.select2-container--default .select2-selection--single {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--dh-border) !important;
  border-radius: 10px !important;
  background: #fff !important;
  padding: 0 14px !important;
  color: var(--dh-dark);
  font-size: 14px;
  box-shadow: none !important;
  outline: none;
}

.woocommerce-checkout textarea {
  min-height: 120px;
  padding-top: 14px !important;
}

.select2-container--default
  .select2-selection--single
  .select2-selection__rendered {
  line-height: 48px;
  padding-left: 0;
  color: var(--dh-dark);
}

.select2-container--default
  .select2-selection--single
  .select2-selection__arrow {
  height: 48px;
}

/* Gift toggle */
#ship-to-different-address {
  margin: 26px 0 !important;
  padding: 18px;
  border: 1px solid var(--dh-border);
  border-radius: 14px;
  background: linear-gradient(135deg, #fff3ec, var(--dh-primary));
}

#ship-to-different-address label {
  color: var(--dh-primary);
  font-size: 16px;
  font-weight: 900;
  cursor: pointer;
}

#ship-to-different-address input {
  margin-right: 8px;
}

/* Order review table */
.dh-checkout-summary table.shop_table {
  border: 0 !important;
  margin: 0 !important;
  border-collapse: collapse;
}

.dh-checkout-summary table.shop_table th,
.dh-checkout-summary table.shop_table td {
  border: 0 !important;
  border-bottom: 1px solid var(--dh-border) !important;
  padding: 14px 0 !important;
  background: transparent !important;
}

.dh-checkout-summary table.shop_table th {
  color: var(--dh-dark);
  font-weight: 900;
}

.dh-checkout-summary table.shop_table td {
  color: var(--dh-muted);
  font-weight: 700;
}

.dh-checkout-summary .product-name {
  color: var(--dh-dark);
}

.dh-checkout-summary .product-total,
.dh-checkout-summary tfoot td {
  text-align: right;
}

.dh-checkout-summary .order-total th,
.dh-checkout-summary .order-total td {
  color: var(--dh-primary);
  font-size: 18px;
  border-bottom: 0 !important;
}

/* Payment box */
.woocommerce-checkout-payment {
  margin-top: 18px;
  border-radius: 16px !important;
  background: #fff !important;
  border: 1px solid var(--dh-border);
  overflow: hidden;
}

.woocommerce-checkout-payment ul.payment_methods {
  border-bottom: 1px solid var(--dh-border) !important;
  padding: 18px !important;
}

.woocommerce-checkout-payment div.payment_box {
  background: #fff3ec !important;
  border-radius: 12px;
  color: var(--dh-dark);
}

.woocommerce-checkout-payment div.payment_box::before {
  border-bottom-color: #fff3ec !important;
}

.woocommerce-privacy-policy-text {
  padding: 18px;
  color: var(--dh-muted);
  font-size: 13px;
  line-height: 1.6;
}

#place_order {
  width: calc(100% - 36px) !important;
  height: 52px;
  margin: 0 18px 18px !important;
  border: 0 !important;
  border-radius: 9px !important;
  background: var(--dh-primary) !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

#place_order:hover {
  background: var(--dh-primary-dark) !important;
}

.dh-checkout-trust {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--dh-border);
}

.dh-checkout-trust p {
  margin: 0 0 10px;
  color: var(--dh-dark);
  font-size: 13px;
  font-weight: 700;
}

/* Validation */
.woocommerce-invalid input.input-text,
.woocommerce-invalid select,
.woocommerce-invalid .select2-selection {
  border-color: var(--dh-primary) !important;
}

.woocommerce-error {
  width: min(1180px, calc(100% - 32px));
  margin: 24px auto;
  border-top-color: var(--dh-primary);
  border-radius: 12px;
  background: #fff3ec;
}

/* Responsive */
@media (max-width: 992px) {
  .dh-checkout-layout {
    grid-template-columns: 1fr;
  }

  .dh-checkout-summary {
    position: static;
  }
}

@media (max-width: 640px) {
  .dh-checkout-form {
    padding: 34px 0 50px;
  }

  .dh-checkout-card,
  .dh-checkout-summary {
    padding: 22px;
    border-radius: 18px;
  }

  .woocommerce-billing-fields__field-wrapper,
  .woocommerce-shipping-fields__field-wrapper {
    grid-template-columns: 1fr;
  }

  #billing_company_field,
  #billing_country_field,
  #billing_address_1_field,
  #billing_address_2_field,
  #billing_city_field,
  #billing_state_field,
  #billing_postcode_field,
  #billing_phone_field,
  #billing_email_field,
  #shipping_company_field,
  #shipping_country_field,
  #shipping_address_1_field,
  #shipping_address_2_field,
  #shipping_city_field,
  #shipping_state_field,
  #shipping_postcode_field,
  #order_comments_field {
    grid-column: span 1;
  }
}

/* ================================
   Checkout Final Fix
================================ */
body.woocommerce-checkout .entry-title {
  display: none !important;
}

body.woocommerce-checkout .entry-content {
  padding: 0 !important;
}

.dh-checkout-page {
  background: #fff;
}

.dh-checkout-layout {
  align-items: flex-start !important;
}

.dh-checkout-right {
  min-width: 0;
}

.dh-checkout-summary #order_review_heading,
.dh-checkout-summary #order_review {
  display: block !important;
  width: 100% !important;
}

.dh-checkout-summary .woocommerce-checkout-review-order {
  width: 100% !important;
}

.dh-checkout-summary .woocommerce-checkout-payment {
  width: 100% !important;
}

.dh-checkout-summary table.shop_table {
  width: 100% !important;
}

.dh-checkout-summary .woocommerce-privacy-policy-text {
  padding: 16px 0 !important;
}

.dh-checkout-summary #place_order {
  width: 100% !important;
  margin: 16px 0 0 !important;
}

/* Hide checkout footer policy links showing above review */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  font-size: 13px;
}

/* If old checkout layout classes exist, disable them */
.checkout-container,
.checkout-left,
.checkout-right {
  display: initial;
  padding: initial;
  min-height: initial;
  background: initial;
  border: initial;
}

/* ================================
   Order Received / Thank You Page
================================ */
.dh-thankyou-hero {
  padding: 58px 0;
  text-align: center;
  background: linear-gradient(135deg, var(--dh-white), var(--dh-cream));
}

.dh-thankyou-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 38px;
  box-shadow: 0 18px 45px rgba(65, 35, 25, 0.08);
}

.dh-thankyou-hero h1 {
  margin: 0 0 10px;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: clamp(38px, 5vw, 58px);
}

.dh-thankyou-hero p {
  margin: 0;
  color: var(--dh-muted);
  font-size: 16px;
  font-weight: 600;
}

.dh-thankyou-content {
  padding: 48px 0 70px;
  background: #fff;
}

.dh-thankyou-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 370px;
  gap: 34px;
  align-items: start;
}

.dh-thankyou-main {
  display: grid;
  gap: 24px;
}

.dh-thankyou-sidebar {
  display: grid;
  gap: 24px;
  position: sticky;
  top: 30px;
}

.dh-thankyou-card {
  padding: 28px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid var(--dh-border);
  box-shadow: 0 22px 60px rgba(65, 35, 25, 0.06);
}

.dh-thankyou-card--failed {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  background: #fff3ec;
}

.dh-thankyou-card h2 {
  margin: 0 0 20px;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 31px;
  line-height: 1.15;
}

.dh-order-overview {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.dh-order-overview li {
  padding: 16px;
  border-radius: 14px;
  background: #fffaf7;
  border: 1px solid var(--dh-border);
}

.dh-order-overview strong {
  display: block;
  margin-bottom: 6px;
  color: var(--dh-muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.dh-order-overview span {
  color: var(--dh-primary);
  font-size: 16px;
  font-weight: 900;
}

.dh-thankyou-items {
  display: grid;
  gap: 14px;
}

.dh-thankyou-item {
  display: grid;
  grid-template-columns: 82px 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 14px;
  border-radius: 16px;
  background: #fffaf7;
  border: 1px solid var(--dh-border);
}

.dh-thankyou-item__image img {
  width: 82px;
  height: 72px;
  object-fit: cover;
  border-radius: 12px;
  background: #fff3ec;
}

.dh-thankyou-item h3 {
  margin: 0 0 5px;
  color: var(--dh-dark);
  font-size: 15px;
  font-weight: 900;
}

.dh-thankyou-item p {
  margin: 0;
  color: var(--dh-muted);
  font-size: 13px;
  font-weight: 700;
}

.dh-thankyou-item strong {
  color: var(--dh-primary);
  font-size: 15px;
  font-weight: 900;
}

.dh-order-steps {
  display: grid;
  gap: 14px;
}

.dh-order-steps div {
  display: flex;
  gap: 13px;
  align-items: center;
}

.dh-order-steps span {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--dh-primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  flex-shrink: 0;
}

.dh-order-steps p {
  margin: 0;
  color: var(--dh-dark);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
}

.dh-address-box {
  padding: 16px;
  border-radius: 14px;
  background: #fffaf7;
  border: 1px solid var(--dh-border);
  color: var(--dh-dark);
  font-size: 14px;
  line-height: 1.7;
}

.dh-thankyou-actions {
  display: grid;
  gap: 12px;
}

.dh-thankyou-actions .dh-btn {
  width: 100%;
}

.dh-thankyou-page .woocommerce-order-details,
.dh-thankyou-page .woocommerce-customer-details {
  margin-top: 24px;
}

.dh-thankyou-page .woocommerce-order-details h2,
.dh-thankyou-page .woocommerce-customer-details h2 {
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
}

.dh-thankyou-page table.shop_table {
  border: 1px solid var(--dh-border) !important;
  border-radius: 16px;
  overflow: hidden;
}

.dh-thankyou-page table.shop_table th,
.dh-thankyou-page table.shop_table td {
  padding: 14px !important;
  border-color: var(--dh-border) !important;
}

@media (max-width: 992px) {
  .dh-thankyou-grid {
    grid-template-columns: 1fr;
  }

  .dh-thankyou-sidebar {
    position: static;
  }
}

@media (max-width: 640px) {
  .dh-thankyou-content {
    padding: 34px 0 50px;
  }

  .dh-thankyou-card {
    padding: 22px;
    border-radius: 18px;
  }

  .dh-order-overview {
    grid-template-columns: 1fr;
  }

  .dh-thankyou-item {
    grid-template-columns: 70px 1fr;
  }

  .dh-thankyou-item strong {
    grid-column: 2 / -1;
  }

  .dh-thankyou-item__image img {
    width: 70px;
    height: 64px;
  }
}

/* ================================
   View Order Page
================================ */

.dh-view-order {
  padding: 40px 0;
}

.dh-view-order__header {
  margin-bottom: 30px;
}

.dh-view-order__header h1 {
  margin: 0 0 6px;
  font-family: var(--dh-heading-font);
  font-size: 34px;
  color: var(--dh-dark);
}

.dh-view-order__header p {
  margin: 0;
  color: var(--dh-muted);
  font-weight: 600;
}

.dh-view-order__grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 30px;
}

.dh-card {
  background: #fff;
  border: 1px solid var(--dh-border);
  border-radius: 18px;
  padding: 22px;
  margin-bottom: 20px;
}

.dh-card h2 {
  margin: 0 0 16px;
  font-size: 20px;
  font-weight: 900;
  color: var(--dh-dark);
}

.dh-order-items {
  display: grid;
  gap: 12px;
}

.dh-order-item {
  display: grid;
  grid-template-columns: 70px 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border-radius: 12px;
  background: #fffaf7;
}

.dh-order-item__image img {
  width: 70px;
  height: 60px;
  object-fit: cover;
  border-radius: 8px;
}

.dh-order-item__info h3 {
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 800;
}

.dh-order-item__info p {
  margin: 0;
  font-size: 12px;
  color: var(--dh-muted);
}

.dh-order-item strong {
  font-size: 14px;
  color: var(--dh-primary);
}

.dh-view-order__sidebar {
  position: sticky;
  top: 20px;
}

.dh-order-status {
  display: inline-block;
  padding: 8px 14px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 12px;
  text-transform: uppercase;
}

/* Status colors */
.dh-status-processing {
  background: #fff3cd;
  color: #856404;
}
.dh-status-completed {
  background: #d4edda;
  color: #155724;
}
.dh-status-on-hold {
  background: #ffeeba;
  color: #856404;
}
.dh-status-cancelled {
  background: #f8d7da;
  color: #721c24;
}

/* Mobile */
@media (max-width: 768px) {
  .dh-view-order__grid {
    grid-template-columns: 1fr;
  }
}

/* ================================
   My Account Orders Page
================================ */
.dh-account-orders {
  padding: 36px 0;
}

.dh-account-orders__header {
  margin-bottom: 26px;
}

.dh-account-orders__header h1 {
  margin: 0 0 8px;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 38px;
}

.dh-account-orders__header p {
  margin: 0;
  color: var(--dh-muted);
  font-weight: 600;
}

.dh-orders-list {
  display: grid;
  gap: 20px;
}

.dh-order-card {
  padding: 24px;
  border: 1px solid var(--dh-border);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 22px 60px rgba(65, 35, 25, 0.06);
}

.dh-order-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
}

.dh-order-label {
  display: block;
  margin-bottom: 4px;
  color: var(--dh-muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.dh-order-card h2 {
  margin: 0;
  color: var(--dh-dark);
  font-size: 24px;
  font-weight: 900;
}

.dh-order-card__meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 18px;
}

.dh-order-card__meta div {
  padding: 14px;
  border-radius: 14px;
  background: #fffaf7;
  border: 1px solid var(--dh-border);
}

.dh-order-card__meta strong {
  display: block;
  margin-bottom: 5px;
  color: var(--dh-muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.dh-order-card__meta span {
  color: var(--dh-dark);
  font-size: 14px;
  font-weight: 800;
}

.dh-order-card__items {
  display: grid;
  gap: 10px;
  margin-bottom: 20px;
}

.dh-order-mini-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px;
  border-radius: 12px;
  background: #fff3ec;
}

.dh-order-mini-item img {
  width: 54px;
  height: 48px;
  object-fit: cover;
  border-radius: 8px;
}

.dh-order-mini-item span {
  color: var(--dh-dark);
  font-size: 14px;
  font-weight: 800;
}

.dh-order-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.dh-order-action {
  min-height: 42px;
  padding: 0 18px;
  border-radius: 8px;
  background: var(--dh-primary);
  color: #fff !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
}

.dh-order-action:hover {
  background: var(--dh-primary-dark);
}

.dh-order-action--cancel {
  background: var(--dh-dark);
}

.dh-order-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 7px 14px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  white-space: nowrap;
}

.dh-status-processing {
  background: #fff3cd;
  color: #856404;
}

.dh-status-completed {
  background: #d4edda;
  color: #155724;
}

.dh-status-on-hold {
  background: #ffeeba;
  color: #856404;
}

.dh-status-cancelled,
.dh-status-failed {
  background: #f8d7da;
  color: #721c24;
}

.dh-status-pending {
  background: #e2e3e5;
  color: #383d41;
}

.dh-status-refunded {
  background: #d1ecf1;
  color: #0c5460;
}

.dh-orders-pagination {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 28px;
}

.dh-orders-empty {
  max-width: 620px;
  margin: 20px auto;
  padding: 42px 28px;
  text-align: center;
  border-radius: 24px;
  background: #fffaf7;
  border: 1px solid var(--dh-border);
}

.dh-orders-empty__icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 38px;
  box-shadow: 0 18px 45px rgba(65, 35, 25, 0.08);
}

.dh-orders-empty h2 {
  margin: 0 0 10px;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 34px;
}

.dh-orders-empty p {
  margin: 0 0 24px;
  color: var(--dh-muted);
  font-weight: 600;
}

@media (max-width: 768px) {
  .dh-order-card__top {
    display: grid;
  }

  .dh-order-card__meta {
    grid-template-columns: 1fr;
  }

  .dh-order-card__actions,
  .dh-orders-pagination {
    display: grid;
  }

  .dh-order-action,
  .dh-orders-pagination .dh-btn {
    width: 100%;
  }
}

/* ================================
   My Account Clean Layout
================================ */
body.woocommerce-account .entry-title,
body.woocommerce-account .page-title,
body.woocommerce-account .entry-header {
  display: none !important;
}

body.woocommerce-account .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

.dh-myaccount-page {
  background: #fff;
}

.dh-myaccount-hero {
  padding: 54px 0;
  text-align: center;
  background: linear-gradient(135deg, var(--dh-secondary), var(--dh-primary));
}

.dh-myaccount-hero-inner,
.dh-myaccount-layout {
  width: min(1180px, calc(100% - 32px)) !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.dh-myaccount-hero span {
  color: var(--dh-primary);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.dh-myaccount-hero h1 {
  margin: 8px 0 10px;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: clamp(38px, 5vw, 58px);
}

.dh-myaccount-hero p {
  margin: 0;
  color: var(--dh-muted);
  font-weight: 600;
}

.dh-myaccount-content {
  padding: 50px 0 90px !important;
  background: #fff;
}

.dh-myaccount-layout {
  display: grid !important;
  grid-template-columns: 280px minmax(0, 1fr) !important;
  gap: 34px !important;
  align-items: flex-start !important;
}

.dh-myaccount-sidebar,
.dh-myaccount-main {
  min-width: 0 !important;
}

.dh-myaccount-main {
  width: 100% !important;
  max-width: none !important;
}

.woocommerce-MyAccount-navigation {
  float: none !important;
  width: 100% !important;
  padding: 18px !important;
  border-radius: 22px;
  background: #f7fff7;
  border: 1px solid var(--dh-border);
  box-shadow: 0 22px 60px rgba(65, 35, 25, 0.06);
}

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

.woocommerce-MyAccount-navigation li {
  margin: 0 0 8px !important;
}

.woocommerce-MyAccount-navigation a {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 0 14px;
  border-radius: 12px;
  color: var(--dh-dark);
  font-size: 14px;
  font-weight: 800;
}

.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation a:hover {
  background: var(--dh-primary);
  color: #fff;
}

.dh-account-nav__icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #ecfff0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  flex-shrink: 0;
}

.woocommerce-MyAccount-navigation li.is-active .dh-account-nav__icon,
.woocommerce-MyAccount-navigation a:hover .dh-account-nav__icon {
  background: rgba(255, 255, 255, 0.22);
}

.woocommerce-MyAccount-content {
  float: none !important;
  width: 100% !important;
}

.dh-account-dashboard,
.dh-account-orders,
.dh-view-order {
  padding-top: 0 !important;
}

.dh-account-welcome {
  width: 100%;
  padding: 34px;
  margin-bottom: 24px;
  border-radius: 24px;
  background: linear-gradient(135deg, #eaffed, #d5ffdb);
  border: 1px solid var(--dh-border);
}

.dh-account-welcome span {
  color: var(--dh-primary);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.dh-account-welcome h1 {
  margin: 8px 0 10px;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 42px;
  line-height: 1.1;
}

.dh-account-welcome p {
  margin: 0;
  color: #5b685b;
  font-size: 15px;
  line-height: 1.7;
  font-weight: 600;
}

.dh-account-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 20px;
}

.dh-account-tile {
  padding: 26px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid var(--dh-border);
  box-shadow: 0 22px 60px rgba(28, 65, 25, 0.05);
}

.dh-account-tile span {
  width: 50px;
  height: 50px;
  margin-bottom: 16px;
  border-radius: 50%;
  background: #ecfff0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
}

.dh-account-tile h3 {
  margin: 0 0 8px;
  color: var(--dh-dark);
  font-size: 18px;
  font-weight: 900;
}

.dh-account-tile p {
  margin: 0;
  color: var(--dh-muted);
  font-size: 14px;
  line-height: 1.6;
  font-weight: 600;
}

@media (max-width: 900px) {
  .dh-myaccount-layout {
    grid-template-columns: 1fr !important;
  }

  .woocommerce-MyAccount-navigation ul {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }

  .woocommerce-MyAccount-navigation li {
    margin: 0 !important;
  }
}

@media (max-width: 640px) {
  .woocommerce-MyAccount-navigation ul,
  .dh-account-dashboard-grid {
    grid-template-columns: 1fr !important;
  }

  .dh-account-welcome h1 {
    font-size: 34px;
  }
}

/* ================================
   Edit Account Page
================================ */
.dh-edit-account {
  width: 100%;
}

.dh-account-section-header {
  margin-bottom: 24px;
}

.dh-account-section-header span {
  display: block;
  margin-bottom: 7px;
  color: var(--dh-primary);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.dh-account-section-header h1 {
  margin: 0 0 8px;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 42px;
  line-height: 1.1;
}

.dh-account-section-header p {
  margin: 0;
  color: var(--dh-muted);
  font-size: 15px;
  font-weight: 600;
}

.dh-edit-account-form {
  display: grid;
  gap: 22px;
}

.dh-account-form-card {
  padding: 28px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid var(--dh-border);
  box-shadow: 0 22px 60px rgba(25, 65, 38, 0.06);
}

.dh-account-form-card h2 {
  margin: 0 0 18px;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 30px;
}

.dh-form-note {
  margin: -8px 0 20px;
  color: var(--dh-muted);
  font-size: 14px;
  font-weight: 600;
}

.dh-account-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.dh-edit-account .form-row {
  margin: 0 !important;
  padding: 0 !important;
}

.dh-edit-account .form-row-wide {
  grid-column: span 2;
}

.dh-edit-account label {
  display: block;
  margin-bottom: 7px;
  color: var(--dh-dark);
  font-size: 13px;
  font-weight: 900;
}

.dh-edit-account .required {
  color: var(--dh-primary);
}

.dh-edit-account input.input-text,
.dh-edit-account .woocommerce-Input {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--dh-border);
  border-radius: 10px;
  background: #fff;
  padding: 0 14px;
  color: var(--dh-dark);
  font-size: 14px;
  outline: none;
  box-shadow: none;
}

.dh-edit-account input.input-text:focus,
.dh-edit-account .woocommerce-Input:focus {
  border-color: rgba(47, 189, 47, 0.55);
}

.dh-edit-account em {
  display: block;
  margin-top: 7px;
  color: var(--dh-muted);
  font-size: 12px;
  line-height: 1.5;
}

.dh-account-form-actions {
  display: flex;
  justify-content: flex-end;
}

.dh-account-save-btn {
  min-height: 48px;
  border: 0 !important;
  border-radius: 9px !important;
  background: var(--dh-primary) !important;
  color: #fff !important;
  padding: 0 28px !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.dh-account-save-btn:hover {
  background: var(--dh-primary-dark) !important;
}

@media (max-width: 640px) {
  .dh-account-form-grid {
    grid-template-columns: 1fr;
  }

  .dh-edit-account .form-row-wide {
    grid-column: span 1;
  }

  .dh-account-form-card {
    padding: 22px;
  }

  .dh-account-form-actions {
    display: block;
  }

  .dh-account-save-btn {
    width: 100%;
  }
}

/* ================================
   Footer
================================ */
.dh-footer {
  background: var(--dh-dark);
  color: #d6dde0;
}

.dh-newsletter {
  background: var(--dh-primary);
  color: #fff;
  padding: 18px 0;
}

.dh-newsletter__inner {
  display: grid;
  grid-template-columns: 1fr 420px;
  align-items: center;
  gap: 30px;
}

.dh-newsletter__text {
  display: flex;
  align-items: center;
  gap: 16px;
}

.dh-newsletter__icon {
  font-size: 38px;
  line-height: 1;
}

.dh-newsletter h3 {
  margin: 0 0 4px;
  font-size: 18px;
  font-weight: 800;
}

.dh-newsletter p {
  margin: 0;
  font-size: 13px;
  opacity: 0.9;
}

.dh-newsletter__form {
  display: grid;
  grid-template-columns: 1fr 135px;
  gap: 10px;
}

.dh-newsletter__form input {
  height: 44px;
  border: 0;
  border-radius: 6px;
  padding: 0 16px;
  outline: none;
}

.dh-newsletter__form button {
  height: 44px;
  border: 0;
  border-radius: 6px;
  background: var(--dh-primary-dark);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  cursor: pointer;
}

.dh-footer-main {
  padding: 42px 0 34px;
}

.dh-footer-grid {
  display: grid;
  grid-template-columns: 1.35fr 1fr 1.15fr 1.15fr;
  gap: 42px;
}

.dh-footer-widget h4 {
  margin: 0 0 18px;
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.dh-footer-brand p {
  max-width: 250px;
  margin: 18px 0;
  color: #b9c1c4;
  font-size: 14px;
  line-height: 1.65;
}

.dh-footer-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.dh-footer-logo img {
  max-width: 160px;
  height: auto;
}

.dh-footer-logo__icon {
  font-size: 34px;
}

.dh-footer-logo strong {
  display: block;
  font-family: var(--dh-heading-font);
  color: var(--dh-primary);
  font-size: 25px;
  line-height: 1;
}

.dh-footer-logo small {
  display: block;
  color: #fff;
  font-family: var(--dh-heading-font);
  font-size: 14px;
}

.dh-socials {
  display: flex;
  gap: 10px;
}

.dh-socials a {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 800;
  transition: background 0.2s ease;
}

.dh-socials a:hover {
  background: var(--dh-primary);
}

.dh-footer-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.dh-footer-menu li {
  margin-bottom: 10px;
}

.dh-footer-menu a {
  color: #c8d0d3;
  font-size: 14px;
  transition: color 0.2s ease;
}

.dh-footer-menu a:hover {
  color: #fff;
}

.dh-store-hours p {
  margin: 0 0 16px;
}

.dh-store-hours strong {
  display: block;
  color: #fff;
  font-size: 14px;
  margin-bottom: 4px;
}

.dh-store-hours span {
  color: #c8d0d3;
  font-size: 14px;
}

.dh-payment-title {
  margin-top: 24px !important;
}

.dh-payments {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dh-payments span {
  background: #fff;
  color: var(--dh-dark);
  border-radius: 5px;
  padding: 6px 9px;
  font-size: 12px;
  font-weight: 800;
}

.dh-footer-bottom {
  background: #121a1e;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding: 14px 0;
}

.dh-footer-bottom__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}

.dh-footer-bottom p {
  margin: 0;
  color: #aeb6b9;
  font-size: 13px;
}

.dh-footer-bottom__links {
  display: flex;
  gap: 22px;
  color: #aeb6b9;
  font-size: 13px;
}

.dh-footer-bottom__links a:hover {
  color: #fff;
}

@media (max-width: 992px) {
  .dh-newsletter__inner {
    grid-template-columns: 1fr;
  }

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

@media (max-width: 640px) {
  .dh-newsletter__text {
    align-items: flex-start;
  }

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

  .dh-footer-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .dh-footer-bottom__inner {
    flex-direction: column;
    text-align: center;
  }
}

.dh-myaccount-hero-inner,
.dh-myaccount-layout {
  width: min(980px, calc(100% - 32px));
  margin-left: auto;
  margin-right: auto;
}

.dh-myaccount-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 34px;
  align-items: start;
}

.dh-myaccount-main {
  min-width: 0;
}

@media (max-width: 900px) {
  .dh-myaccount-layout {
    grid-template-columns: 1fr;
  }
}

/* ================================
   Edit Account Input Polish Fix
================================ */
.dh-edit-account input[type="text"],
.dh-edit-account input[type="email"],
.dh-edit-account input[type="password"],
.dh-edit-account input.input-text,
.dh-edit-account .woocommerce-Input {
  width: 100% !important;
  height: 52px !important;
  min-height: 52px !important;
  border: 1px solid var(--dh-border) !important;
  border-radius: 12px !important;
  background: #f7fff9 !important;
  padding: 0 16px !important;
  color: var(--dh-dark) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 52px !important;
  outline: none !important;
  box-shadow: none !important;
  appearance: none !important;
}

.dh-edit-account input[type="text"]:focus,
.dh-edit-account input[type="email"]:focus,
.dh-edit-account input[type="password"]:focus,
.dh-edit-account input.input-text:focus,
.dh-edit-account .woocommerce-Input:focus {
  border-color: var(--dh-primary) !important;
  background: #fff !important;
  box-shadow: 0 0 0 4px rgba(189, 47, 72, 0.08) !important;
}

.dh-edit-account .password-input {
  display: block !important;
  width: 100% !important;
}

.dh-edit-account .password-input input {
  padding-right: 48px !important;
}

.dh-edit-account .show-password-input {
  top: 50% !important;
  right: 14px !important;
  transform: translateY(-50%) !important;
}

.dh-account-form-grid {
  align-items: start;
}

.dh-edit-account .form-row-first,
.dh-edit-account .form-row-last,
.dh-edit-account .form-row-wide {
  width: 100% !important;
  float: none !important;
}

.dh-edit-account label {
  margin-bottom: 9px !important;
}

.dh-account-form-card {
  background: #fff !important;
}

.dh-account-save-btn {
  height: 52px !important;
}

/* ================================
   My Account Addresses
================================ */
.dh-addresses-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.dh-address-card {
  padding: 26px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid var(--dh-border);
  box-shadow: 0 22px 60px rgba(65, 35, 25, 0.06);
}

.dh-address-card__top {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  margin-bottom: 20px;
}

.dh-address-card__icon {
  width: 48px;
  height: 48px;
  margin-bottom: 14px;
  border-radius: 50%;
  background: #ecffec;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
}

.dh-address-card h2 {
  margin: 0;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 28px;
  line-height: 1.1;
}

.dh-address-card__top a {
  min-height: 38px;
  padding: 0 16px;
  border-radius: 8px;
  background: var(--dh-primary);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.dh-address-card__body {
  padding: 18px;
  border-radius: 16px;
  background: #f7fffa;
  border: 1px solid var(--dh-border);
  min-height: 150px;
}

.dh-address-card address {
  margin: 0;
  color: var(--dh-dark);
  font-size: 14px;
  line-height: 1.8;
  font-style: normal;
  font-weight: 600;
}

.dh-address-card p {
  margin: 0;
  color: var(--dh-muted);
  font-size: 14px;
  line-height: 1.7;
  font-weight: 600;
}

/* Edit Address Form */
.dh-edit-address-form {
  display: grid;
  gap: 22px;
}

.dh-edit-address-page .form-row {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  float: none !important;
}

.dh-edit-address-page .form-row-wide,
.dh-edit-address-page #billing_company_field,
.dh-edit-address-page #billing_country_field,
.dh-edit-address-page #billing_address_1_field,
.dh-edit-address-page #billing_address_2_field,
.dh-edit-address-page #billing_city_field,
.dh-edit-address-page #billing_state_field,
.dh-edit-address-page #billing_postcode_field,
.dh-edit-address-page #billing_phone_field,
.dh-edit-address-page #billing_email_field,
.dh-edit-address-page #shipping_company_field,
.dh-edit-address-page #shipping_country_field,
.dh-edit-address-page #shipping_address_1_field,
.dh-edit-address-page #shipping_address_2_field,
.dh-edit-address-page #shipping_city_field,
.dh-edit-address-page #shipping_state_field,
.dh-edit-address-page #shipping_postcode_field {
  grid-column: span 2;
}

.dh-edit-address-page label {
  display: block;
  margin-bottom: 9px;
  color: var(--dh-dark);
  font-size: 13px;
  font-weight: 900;
}

.dh-edit-address-page .required {
  color: var(--dh-primary);
}

.dh-edit-address-page input.input-text,
.dh-edit-address-page select,
.dh-edit-address-page textarea,
.dh-edit-address-page .select2-container--default .select2-selection--single {
  width: 100% !important;
  height: 52px !important;
  min-height: 52px !important;
  border: 1px solid var(--dh-border) !important;
  border-radius: 12px !important;
  background: #fffaf7 !important;
  padding: 0 16px !important;
  color: var(--dh-dark) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  outline: none !important;
  box-shadow: none !important;
}

.dh-edit-address-page input.input-text:focus,
.dh-edit-address-page select:focus,
.dh-edit-address-page textarea:focus,
.dh-edit-address-page
  .select2-container--default.select2-container--open
  .select2-selection--single {
  border-color: var(--dh-primary) !important;
  background: #fff !important;
  box-shadow: 0 0 0 4px rgba(189, 47, 72, 0.08) !important;
}

.dh-edit-address-page .select2-container {
  width: 100% !important;
}

.dh-edit-address-page
  .select2-container--default
  .select2-selection--single
  .select2-selection__rendered {
  line-height: 52px !important;
  padding-left: 0 !important;
  color: var(--dh-dark) !important;
}

.dh-edit-address-page
  .select2-container--default
  .select2-selection--single
  .select2-selection__arrow {
  height: 52px !important;
}

@media (max-width: 640px) {
  .dh-addresses-grid,
  .dh-account-form-grid {
    grid-template-columns: 1fr;
  }

  .dh-edit-address-page .form-row-wide,
  .dh-edit-address-page #billing_company_field,
  .dh-edit-address-page #billing_country_field,
  .dh-edit-address-page #billing_address_1_field,
  .dh-edit-address-page #billing_address_2_field,
  .dh-edit-address-page #billing_city_field,
  .dh-edit-address-page #billing_state_field,
  .dh-edit-address-page #billing_postcode_field,
  .dh-edit-address-page #billing_phone_field,
  .dh-edit-address-page #billing_email_field,
  .dh-edit-address-page #shipping_company_field,
  .dh-edit-address-page #shipping_country_field,
  .dh-edit-address-page #shipping_address_1_field,
  .dh-edit-address-page #shipping_address_2_field,
  .dh-edit-address-page #shipping_city_field,
  .dh-edit-address-page #shipping_state_field,
  .dh-edit-address-page #shipping_postcode_field {
    grid-column: span 1;
  }
}

/* ================================
   404 Error Page
================================ */
.dh-error-page {
  background: #fff;
}

.dh-error-hero {
  padding: 80px 0 95px;
  background: linear-gradient(135deg, #eaffec, #d5ffe2);
  overflow: hidden;
}

.dh-error-inner {
  display: grid;
  grid-template-columns: 1fr 0.9fr;
  align-items: center;
  gap: 50px;
}

.dh-error-badge {
  display: inline-flex;
  margin-bottom: 14px;
  padding: 7px 15px;
  border-radius: 999px;
  background: #fff;
  color: var(--dh-primary);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.dh-error-content h1 {
  max-width: 560px;
  margin: 0;
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: clamp(46px, 6vw, 76px);
  line-height: 1.02;
}

.dh-error-content p {
  max-width: 520px;
  margin: 20px 0 0;
  color: #5d685b;
  font-size: 16px;
  line-height: 1.75;
  font-weight: 600;
}

.dh-error-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 30px;
}

.dh-error-visual {
  position: relative;
  min-height: 330px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dh-error-code {
  position: absolute;
  color: rgba(189, 47, 72, 0.08);
  font-size: 190px;
  font-weight: 900;
  line-height: 1;
}

.dh-error-box {
  position: relative;
  width: 230px;
  height: 190px;
  border-radius: 28px;
  background: #fff;
  border: 1px solid var(--dh-border);
  box-shadow: 0 30px 80px rgba(65, 35, 25, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: dhErrorFloat 3.5s ease-in-out infinite;
}

.dh-error-box::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -22px;
  right: -22px;
  height: 34px;
  transform: translateY(-50%);
  background: var(--dh-primary);
  border-radius: 999px;
}

.dh-error-box::after {
  content: "";
  position: absolute;
  top: -18px;
  bottom: -18px;
  left: 50%;
  width: 34px;
  transform: translateX(-50%);
  background: var(--dh-primary);
  border-radius: 999px;
}

.dh-error-box span {
  position: relative;
  z-index: 2;
  font-size: 74px;
}

@keyframes dhErrorFloat {
  0%,
  100% {
    transform: translateY(0) rotate(-2deg);
  }

  50% {
    transform: translateY(-14px) rotate(2deg);
  }
}

@media (max-width: 900px) {
  .dh-error-inner {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .dh-error-content h1,
  .dh-error-content p {
    margin-left: auto;
    margin-right: auto;
  }

  .dh-error-actions {
    justify-content: center;
  }
}

@media (max-width: 640px) {
  .dh-error-hero {
    padding: 58px 0 70px;
  }

  .dh-error-actions .dh-btn {
    width: 100%;
  }

  .dh-error-code {
    font-size: 130px;
  }

  .dh-error-box {
    width: 190px;
    height: 160px;
  }
}

/* --- 1. Clean Up Payment Box Container --- */
#payment {
  background: #ffffff !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 8px !important;
  padding: 20px !important;
  margin-top: 20px;
}

/* --- 2. Style the Radio Selection List --- */
.wc_payment_methods {
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

.wc_payment_method {
  margin-bottom: 15px !important;
  border: 1px solid #f3f4f6;
  border-radius: 6px;
  padding: 10px;
  transition: all 0.2s ease;
}

.wc_payment_method:hover {
  border-color: #d1d5db;
  background: #f9fafb;
}

/* --- 3. Style the Radio Buttons --- */
.wc_payment_method input[type="radio"] {
  margin-right: 10px !important;
  accent-color: #c026d3; /* Matches your brand red/pinkish tone */
}

.wc_payment_method label {
  font-weight: 600 !important;
  color: #1f2937 !important;
  cursor: pointer;
}

/* ==========================================================================
   STRIPE & PAYMENT BOX (ULTIMATE OVERRIDE)
   ========================================================================== */

/* Force the WooCommerce Payment Box to clean white */
#payment div.payment_box,
.woocommerce-checkout-payment div.payment_box {
  background: transparent !important;
  border: none !important;
  border-radius: 0px !important;
  padding: 0px !important;
  box-shadow: none !important;
  margin-top: 15px !important;
}

/* Force the "Test Mode" Notice to match the Green theme */
#payment div.payment_box .woocommerce-info,
#payment div.payment_box p.woocommerce-notice {
  background: var(--dh-soft) !important;
  border: none !important;
  color: var(--dh-primary-dark) !important;
  border-radius: 8px !important;
  padding: 12px 15px !important;
  margin-bottom: 20px !important;
}

/* Strip any leftover backgrounds from internal Stripe wrappers */
#stripe-payment-data,
.wc-stripe-elements-field {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
}

/* ================================
   Lock Shipping / Receiver Fields Open
================================ */

/* Hide the physical checkbox */
#ship-to-different-address-checkbox {
  display: none !important;
}

.woocommerce-billing-fields {
  margin: 40px 0 20px !important;
  border-top: 1px solid rgb(215, 255, 219) !important;
}

.woocommerce-billing-fields h3 {
  margin-top: 20px !important;
}

/* Remove the background box and padding you previously had on the toggle */
#ship-to-different-address {
  margin: 0px 0 20px !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
}

/* Make the label look like your other H3 headings and disable clicking */
#ship-to-different-address label {
  font-family: var(--dh-heading-font, -apple-system, sans-serif) !important;
  font-size: 30px !important;
  font-weight: 600 !important;
  color: var(--dh-dark, #333) !important;
  line-height: 1.2 !important;
  pointer-events: none !important; /* Prevents the user from clicking and closing it */
  cursor: default !important;
}

/* Ensure WooCommerce's slide-toggle JavaScript cannot hide the form */
.shipping_address {
  display: block !important;
}

/* ================================
   Inline Basket Coupon Fix
================================ */

/* 1. Completely hide the default top toggle and form */
.woocommerce-form-coupon-toggle,
.checkout_coupon {
  display: none !important;
}

/* 2. Format the new table row to match the Order Summary */
.dh-inline-coupon-row td {
  padding: 16px 0 !important;
  border-bottom: 1px solid var(--dh-border) !important;
  background: transparent !important;
}

/* 3. Style the input and button */
.dh-inline-coupon {
  display: flex;
  gap: 10px;
  width: 100%;
}

.dh-inline-coupon input {
  flex: 1;
  min-height: 46px !important;
  border: 1px dashed var(--dh-primary) !important;
  border-radius: 8px !important;
  padding: 0 14px !important;
  font-size: 13px !important;
  color: var(--dh-dark) !important;
  background: #f3fff4 !important; /* Gentle green tint to stand out */
  outline: none;
  box-shadow: none !important;
}

.dh-inline-coupon input:focus {
  border-style: solid !important;
  background: #fff !important;
}

.dh-inline-coupon button {
  height: 46px;
  padding: 0 24px !important;
  background: var(--dh-dark) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s ease;
}

.dh-inline-coupon button:hover {
  background: var(--dh-primary) !important;
}

/* ================================
   Checkout Form: 2-Column Layout 
================================ */

/* Force City, State, Postcode, and Phone to sit side-by-side (50% width) */
#billing_city_field,
#billing_state_field,
#shipping_city_field,
#shipping_state_field,
#billing_postcode_field,
#shipping_postcode_field,
#billing_phone_field,
#shipping_phone_field {
  grid-column: span 1 !important;
}

/* Ensure Email stays full width at the bottom of the form */
#billing_email_field,
#shipping_email_field {
  grid-column: span 2 !important;
}

/* On mobile screens, stack everything back to full width for readability */
@media (max-width: 640px) {
  #billing_city_field,
  #billing_state_field,
  #shipping_city_field,
  #shipping_state_field,
  #billing_postcode_field,
  #shipping_postcode_field,
  #billing_phone_field,
  #shipping_phone_field {
    grid-column: span 2 !important;
  }
}

/* ================================
   Tighten Checkout Vertical Gaps
================================ */

/* Set vertical gap to 14px, horizontal to 18px */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper {
  gap: 14px 18px !important;
}

/* Remove the margin because the CSS grid 'gap' handles the spacing now */
.woocommerce-checkout .form-row {
  margin: 0 !important;
}

/* Bring the label slightly closer to the input field */
.woocommerce-checkout label {
  margin-bottom: 5px !important;
}

/* Optional: Slightly reduce input height from 48px to 44px to make it even sleeker */
.woocommerce-checkout input.input-text,
.woocommerce-checkout select,
.select2-container--default .select2-selection--single {
  min-height: 44px !important;
}

.select2-container--default
  .select2-selection--single
  .select2-selection__rendered,
.select2-container--default
  .select2-selection--single
  .select2-selection__arrow {
  height: 44px !important;
  line-height: 44px !important;
}

/* ================================
   Final Pixel-Perfect Polish
================================ */

/* 1. Hide the redundant Country fields (if you only sell to 1 country) */
#billing_country_field,
#shipping_country_field {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 2. Add breathing room above the Additional Information section */
.woocommerce-additional-fields {
  margin-top: 36px !important;
  padding-top: 10px !important;
}

/* 3. Pixel-Perfect Dropdown (Select2) Styling */
.select2-container .select2-selection--single {
  height: 48px !important; /* Matches your standard input height */
  min-height: 48px !important;
  border: 1px solid var(--dh-border) !important;
  border-radius: 10px !important;
  background-color: #fff !important;
  display: flex !important;
  align-items: center !important;
  padding: 0 14px !important;
  box-shadow: none !important;
}

.select2-container--default
  .select2-selection--single
  .select2-selection__rendered {
  color: var(--dh-dark) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  padding: 0 !important;
  line-height: normal !important;
}

.select2-container--default
  .select2-selection--single
  .select2-selection__arrow {
  height: 100% !important;
  top: 0 !important;
  right: 14px !important;
  display: flex !important;
  align-items: center !important;
}

/* ================================
   1. Fix the Squashed Stripe Payment Element
================================ */

/* Remove the strict 48px height constraints from the main Stripe wrappers */
#stripe-payment-element,
.wc-stripe-elements-field,
.StripeElement,
.wc-stripe-payment-request-wrapper {
  min-height: auto !important;
  height: auto !important;
  max-height: none !important;
  border: none !important; /* Let Stripe handle its own inner borders */
  background: transparent !important;
  padding: 0 !important;
  display: block !important;
}

/* Ensure the iframe itself is allowed to expand naturally */
#stripe-payment-element iframe,
.wc-stripe-elements-field iframe,
.StripeElement iframe {
  height: 100% !important;
  min-height: 250px !important; /* Gives the unified element room to breathe */
  position: relative !important;
}

/* Fix the "Test Mode" notification box so it doesn't overlap */
.woocommerce-checkout-payment p.woocommerce-notice {
  margin-bottom: 20px !important;
  display: block !important;
}

/* ================================
   2. Remove Huge Gap Above Gift Message
================================ */

/* Strip the top margin and padding completely */
.woocommerce-additional-fields {
  margin-top: 10px !important;
  padding-top: 0 !important;
}

/* Ensure the hidden "Additional Information" heading isn't taking up invisible space */
.woocommerce-additional-fields > h3 {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
}

/* Give the Gift Message text area a clean border to match the rest of the form */
#order_comments_field {
  margin-top: 0 !important;
}

#order_comments {
  border-radius: 10px !important;
  border: 1px solid var(--dh-border) !important;
}

/* ==========================================================================
   FINAL CHECKOUT POLISH & STRIPE UPE FIX
   ========================================================================== */

/* --------------------------------------------------
   1. Fix the Huge "OR" Separator Gap
-------------------------------------------------- */
#wc-stripe-express-checkout-button-container {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

#wc-stripe-express-checkout-separator {
  margin: 10px 0 20px !important; /* Reduces the massive default WooCommerce margin */
  padding: 0 !important;
}

/* --------------------------------------------------
   2. Fix the "Additional Information" Top Gap
-------------------------------------------------- */
.woocommerce-additional-fields,
.woocommerce-additional-fields__field-wrapper,
#order_comments_field {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Ensure the hidden heading leaves exactly 0px of invisible space */
.woocommerce-additional-fields h3 {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* --------------------------------------------------
   3. The Ultimate Stripe "Payment Options" Fix
-------------------------------------------------- */
/* Clean the master payment wrapper */
#payment.woocommerce-checkout-payment {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}

/* Turn the Stripe List Item into the actual white card */
.woocommerce-checkout-payment ul.wc_payment_methods {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin-bottom: 18px !important;
}

li.wc_payment_method.payment_method_stripe {
  background: #fff !important;
  border: 1px solid var(--dh-border) !important;
  border-radius: 12px !important;
  padding: 24px !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02) !important;
}

/* Style the "Payment options" label */
.wc_payment_method label[for="payment_method_stripe"] {
  font-family: var(--dh-heading-font) !important;
  font-size: 20px !important;
  color: var(--dh-dark) !important;
  font-weight: 700 !important;
  margin-bottom: 16px !important;
  border-bottom: 1px solid #f3f4f6 !important;
  padding-bottom: 12px !important;
  display: block !important;
}

/* Prevent the inner box from having a double-background */
.woocommerce-checkout-payment div.payment_box {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
}

/* --------------------------------------------------
   4. Un-Squash the Stripe Iframe (Dynamic Height)
-------------------------------------------------- */
fieldset#wc-stripe-upe-form,
.wc-stripe-upe-element,
.__PrivateStripeElement {
  display: block !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important; /* Prevents cutting off the expanded menu */
}

/* CRITICAL: We MUST let Stripe control the iframe height dynamically.
   Do NOT use height: 100% !important here! */
.__PrivateStripeElement iframe {
  position: relative !important;
  height: auto; /* Lets Stripe's inline JS control the exact pixels */
  overflow: visible !important;
}

/* --------------------------------------------------
   5. Style the "Save Payment" Checkbox
-------------------------------------------------- */
p.woocommerce-SavedPaymentMethods-saveNew {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin-top: 18px !important;
  padding-top: 18px !important;
  border-top: 1px solid #f3f4f6 !important;
}

p.woocommerce-SavedPaymentMethods-saveNew input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  accent-color: var(--dh-primary) !important;
  cursor: pointer;
}

p.woocommerce-SavedPaymentMethods-saveNew label {
  font-size: 13px !important;
  color: var(--dh-dark) !important;
  margin: 0 !important;
  font-weight: 600 !important;
  cursor: pointer;
}

/* ==========================================================================
   THE FINAL 1% POLISH FIXES
   ========================================================================== */

/* --------------------------------------------------
   1. Fix the Huge "OR" Separator Gap
-------------------------------------------------- */
/* Target the hidden clear divs Stripe injects that cause the massive gap */
#wc-stripe-express-checkout-button-container {
  margin-bottom: 0 !important;
}

#wc-stripe-express-checkout-button-container + div.clear,
.wc-stripe-express-checkout-container + div {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
}

#wc-stripe-express-checkout-separator {
  margin-top: 15px !important;
  margin-bottom: 25px !important;
}

/* --------------------------------------------------
   2. Restore the Gap Above Gift Message
-------------------------------------------------- */
/* Give the Additional Information section its breathing room back */
.woocommerce-additional-fields {
  margin-top: 24px !important;
}

/* --------------------------------------------------
   3. Fix the Payment Box Overlap & Double Lines
-------------------------------------------------- */
/* Push the Stripe box down so it doesn't overlap the "Test mode" text */
.wc-stripe-payment-method-instruction {
  margin-bottom: 18px !important;
  display: block !important;
  line-height: 1.5 !important;
}

/* Strip any leftover WooCommerce fieldset borders so only Stripe's clean box shows */
fieldset#wc-stripe-upe-form {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Ensure the iframe container isn't forced to clip its bottom edge */
.wc-stripe-upe-element {
  margin-bottom: 10px !important;
}

/* ==========================================================================
   THE ABSOLUTE FINAL CHECKOUT POLISH 
   ========================================================================== */

/* --------------------------------------------------
   1. Fix the "OR" Separator Spacing
-------------------------------------------------- */
/* Force override Stripe's inline styles */
p#wc-stripe-express-checkout-button-separator {
  margin: 20px 0 30px !important; /* 20px above, 30px below */
  display: block !important;
  font-weight: 800 !important;
  color: var(--dh-muted) !important;
}

/* --------------------------------------------------
   2. Nuke the Payment Box "Triangle Arrow"
-------------------------------------------------- */
.woocommerce-checkout-payment div.payment_box::before {
  display: none !important;
  content: none !important;
}

/* --------------------------------------------------
   3. Destroy the Empty Gray Fieldset Box
-------------------------------------------------- */
/* Browsers add borders to fieldsets by default. This strips it. */
.woocommerce-checkout-payment fieldset {
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  min-width: 0 !important;
}

/* Make sure the "Save Payment" text actually shows up nicely */
p.woocommerce-SavedPaymentMethods-saveNew {
  margin-top: 16px !important;
  padding-top: 16px !important;
  border-top: 1px solid var(--dh-border) !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

p.woocommerce-SavedPaymentMethods-saveNew label {
  font-size: 14px !important;
  color: var(--dh-dark) !important;
  font-weight: 600 !important;
  margin: 0 !important;
}

/* --------------------------------------------------
   4. Clean up "Test Mode" Spacing
-------------------------------------------------- */
.wc-stripe-payment-method-instruction {
  margin: 0 0 20px 0 !important;
  padding: 0 !important;
  font-size: 14px !important;
  color: var(--dh-muted) !important;
}

/* --------------------------------------------------
   5. Perfect the Gift Message Gap
-------------------------------------------------- */
.woocommerce-additional-fields {
  margin-top: 24px !important;
}

/* ==========================================================================
   EXPRESS CHECKOUT GAP FIX
   ========================================================================== */

/* Remove the massive min-height from the Express Checkout buttons ONLY */
#wc-stripe-express-checkout-element .__PrivateStripeElement,
#wc-stripe-express-checkout-element .__PrivateStripeElement iframe {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Ensure the wrapper container isn't adding extra space */
#wc-stripe-express-checkout-element {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Snap the "OR" separator right up against the buttons */
p#wc-stripe-express-checkout-button-separator {
  margin-top: 0px !important;
  margin-bottom: 24px !important;
  display: block !important;
}

/* ==========================================================================
   MOVED EXPRESS CHECKOUT STYLING
   ========================================================================== */

/* Space the buttons out from the credit card box above them */
#wc-stripe-express-checkout-element {
  margin-top: 15px !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

/* Style the "OR" separator to look clean above the Place Order button */
p#wc-stripe-express-checkout-button-separator {
  margin: 15px 0 15px !important;
  color: var(--dh-muted) !important;
  font-weight: 800 !important;
  text-align: center !important;
}

/* Ensure the Express Checkout buttons fill the width of the basket smoothly */
#wc-stripe-express-checkout-element .__PrivateStripeElement {
  min-height: 48px !important;
  width: 100% !important;
}

/* ==========================================================================
   MOVED EXPRESS CHECKOUT STYLING
   ========================================================================== */

/* Remove any leftover margins from their old position */
#wc-stripe-express-checkout-element {
  margin-top: 15px !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

/* Ensure the Express Checkout buttons stretch cleanly */
#wc-stripe-express-checkout-element .__PrivateStripeElement {
  min-height: 48px !important;
  height: 48px !important;
  width: 100% !important;
}

/* Style the "OR" separator above the Place Order button */
p#wc-stripe-express-checkout-button-separator {
  margin: 15px 0 20px !important;
  padding: 0 !important;
  color: var(--dh-muted) !important;
  font-weight: 800 !important;
  text-align: center !important;
  display: block !important;
}

/* ==========================================================================
   CHECKOUT MOBILE SQUASH FIX
   ========================================================================== */
@media (max-width: 768px) {
  /* Turn off the 2-column grid for the field wrappers */
  .woocommerce-billing-fields__field-wrapper,
  .woocommerce-shipping-fields__field-wrapper,
  .woocommerce-additional-fields__field-wrapper {
    display: block !important;
  }

  /* Force every single form row to be full width */
  .woocommerce-checkout .form-row,
  .woocommerce-checkout .form-row-first,
  .woocommerce-checkout .form-row-last,
  .woocommerce-checkout .form-row-wide {
    width: 100% !important;
    float: none !important;
    display: block !important;
    margin-bottom: 15px !important;
    padding: 0 !important;
  }

  /* Ensure labels take full width and sit above the inputs */
  .woocommerce-checkout .form-row label {
    display: block !important;
    width: 100% !important;
    margin-bottom: 8px !important;
  }

  /* Ensure inputs cannot extend past the screen */
  .woocommerce-checkout input.input-text,
  .woocommerce-checkout select,
  .woocommerce-checkout textarea {
    width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* ==========================================================================
   WOOCOMMERCE LOGIN / REGISTER PAGE
   ========================================================================== */

/* 1. Page Title & Container Alignment */
body.woocommerce-account:not(.logged-in) .entry-title,
body.woocommerce-account:not(.logged-in) .page-title {
  display: block !important;
  text-align: center;
  margin-bottom: 30px;
  font-family: var(--dh-heading-font);
  font-size: clamp(34px, 4vw, 42px);
  color: var(--dh-dark);
}

.woocommerce-account .u-columns.col2-set,
.woocommerce-account #customer_login {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 40px;
  max-width: 1000px;
  margin: 40px auto 80px;
}

/* Center the login form if Registration is disabled */
.woocommerce-account #customer_login:has(.col-1):not(:has(.col-2)) {
  display: block;
  max-width: 600px;
}

/* 2. The Form Card Wrapper */
.woocommerce-form-login,
.woocommerce-form-register {
  background: var(
    --dh-cream,
    #fafafa
  ); /* The soft off-white from your screenshot */
  border: 1px solid var(--dh-border);
  border-radius: 20px;
  padding: 40px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
}

/* Remove internal heading if the page already has one */
.woocommerce-account h2 {
  font-family: var(--dh-heading-font);
  color: var(--dh-dark);
  font-size: 28px;
  margin-top: 0;
  margin-bottom: 25px;
}

/* 3. Input Fields (Matching your 10px Checkout theme) */
.woocommerce-form-login input.woocommerce-Input,
.woocommerce-form-register input.woocommerce-Input {
  width: 100% !important;
  min-height: 50px !important;
  border: 1px solid var(--dh-border) !important;
  border-radius: 10px !important;
  padding: 0 15px !important;
  outline: none !important;
  background: #fff !important;
  color: var(--dh-dark) !important;
  font-size: 14px !important;
  box-shadow: none !important;
  margin-top: 6px !important;
  margin-bottom: 15px !important;
}

.woocommerce-form-login input.woocommerce-Input:focus,
.woocommerce-form-register input.woocommerce-Input:focus {
  border-color: var(--dh-primary) !important;
  box-shadow: 0 0 0 3px rgba(82, 124, 97, 0.1) !important;
}

/* 4. Labels */
.woocommerce-form-login label,
.woocommerce-form-register label {
  display: block;
  font-weight: 700;
  font-size: 13px;
  color: var(--dh-dark);
}

.woocommerce-form-login .required,
.woocommerce-form-register .required {
  color: var(--dh-primary);
}

/* 5. Button and "Remember Me" Row */
.woocommerce-form-login p.form-row:has(button[name="login"]) {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 20px;
  margin-bottom: 0;
}

/* The Login Button */
.woocommerce-form-login button[name="login"],
.woocommerce-form-register button[name="register"] {
  background: var(--dh-primary);
  color: #fff;
  border: none;
  border-radius: 8px;
  min-height: 48px;
  padding: 0 30px;
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.3s ease;
}

.woocommerce-form-login button[name="login"]:hover,
.woocommerce-form-register button[name="register"]:hover {
  background: var(--dh-primary-dark);
}

/* Remember Me Checkbox */
.woocommerce-form-login label.woocommerce-form__label-for-checkbox {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  font-weight: 500;
  margin: 0 !important;
  cursor: pointer;
}

.woocommerce-form-login label.woocommerce-form__label-for-checkbox input {
  margin: 0 !important;
  width: 16px;
  height: 16px;
  accent-color: var(--dh-primary);
  cursor: pointer;
}

/* 6. Lost Password Link */
.woocommerce-LostPassword {
  margin-top: 25px;
  display: block;
}

.woocommerce-LostPassword a {
  color: var(--dh-muted);
  font-size: 14px;
  font-weight: 600;
  transition: color 0.2s ease;
}

.woocommerce-LostPassword a:hover {
  color: var(--dh-primary);
}

/* 7. Mobile View */
@media (max-width: 640px) {
  .woocommerce-form-login,
  .woocommerce-form-register {
    padding: 25px;
  }

  .woocommerce-form-login p.form-row:has(button[name="login"]) {
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
  }

  .woocommerce-form-login button[name="login"] {
    width: 100%;
  }
}

/* ==========================================================================
   LOGIN PAGE ALIGNMENT FIX
   ========================================================================== */

/* 1. Force the login row to be a flex container */
.woocommerce-form-login .form-row:has(button[name="login"]) {
  display: flex !important;
  flex-direction: row-reverse !important; /* Puts button on right, checkbox on left */
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 20px !important;
  margin-top: 25px !important;
}

/* 2. Fix the checkbox label styling */
.woocommerce-form-login .woocommerce-form__label-for-checkbox {
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 !important;
  cursor: pointer;
  font-weight: 500 !important;
}

.woocommerce-form-login .woocommerce-form__label-for-checkbox input {
  margin: 0 8px 0 0 !important;
  width: 18px !important;
  height: 18px !important;
}

/* 3. Ensure the button doesn't have extra margins */
.woocommerce-form-login button[name="login"] {
  margin: 0 !important;
  padding: 0 40px !important;
  height: 50px !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
}

/* 4. Center the entire login box on the page */
.woocommerce-account #customer_login {
  display: flex !important;
  justify-content: center !important;
  margin-top: 50px !important;
}

.woocommerce-form-login {
  width: 100% !important;
  max-width: 600px !important;
}

/* ==========================================================================
   CHECKOUT PAGE: PREMIUM CARD LAYOUT
   ========================================================================== */

/* 1. Universal Form Card Style (Matches Order Summary & Login) */
.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields {
  background: #ffffff !important;
  border: 1px solid var(--dh-border, #e5e7eb) !important;
  border-radius: 20px !important; /* Premium rounded corners */
  padding: 40px !important; /* Generous internal breathing room */
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04) !important; /* Soft shadow */
  margin-bottom: 30px !important;
}

/* 2. Heading Adjustments inside Cards */
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3,
#ship-to-different-address label {
  font-family: var(--dh-heading-font) !important;
  font-size: 28px !important;
  color: var(--dh-dark) !important;
  margin-top: 0 !important;
  margin-bottom: 25px !important;
  border: none !important;
  padding: 0 !important;
}

/* 3. Receiver Section Header Fix */
#ship-to-different-address {
  border: none !important;
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
  margin-bottom: 20px !important;
}

/* 4. Fix the spacing between fields inside the cards */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 20px !important;
}

/* Ensure full-width fields stay full width within the new grid */
#billing_address_1_field,
#billing_city_field,
#billing_postcode_field,
#billing_phone_field,
#billing_email_field,
#shipping_address_1_field,
#shipping_city_field,
#shipping_postcode_field,
#shipping_phone_field,
#shipping_email_field {
  grid-column: span 2 !important;
}

/* 5. Mobile Adjustments for the Cards */
@media (max-width: 768px) {
  .woocommerce-billing-fields,
  .woocommerce-shipping-fields {
    padding: 25px 20px !important; /* Smaller padding on mobile */
  }

  .woocommerce-billing-fields__field-wrapper,
  .woocommerce-shipping-fields__field-wrapper {
    display: block !important; /* Stack fields vertically */
  }
}

/* --- Login Page specific styles --- */
.dh-login-container {
  padding: 60px 0;
  display: flex;
  justify-content: center;
}

.dh-login-card {
  background: #ffffff;
  border: 1px solid var(--dh-border);
  border-radius: 20px;
  padding: 50px;
  width: 100%;
  max-width: 600px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.04);
}

.dh-login-title {
  font-family: var(--dh-heading-font);
  font-size: 32px;
  margin-bottom: 30px;
  color: var(--dh-dark);
}

.dh-login-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 25px;
  gap: 20px;
}

/* Ensure mobile responsiveness for the actions */
@media (max-width: 480px) {
  .dh-login-card {
    padding: 30px 20px;
  }
  .dh-login-actions {
    flex-direction: column-reverse;
    align-items: flex-start;
  }
  .dh-login-actions button {
    width: 100%;
  }
}

/* ==========================================================================
   URGENT WOOCOMMERCE LIST & GRID RESETS (FIXES BULLETS, NUMBERS, & SQUISH)
   ========================================================================== */

/* --------------------------------------------------
   1. Fix Gallery Thumbnails (Remove Numbers & Stack)
-------------------------------------------------- */
.woocommerce div.product div.images ol.flex-control-thumbs,
.woocommerce div.product div.images ul.flex-control-thumbs {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  margin: 15px 0 0 0 !important;
  padding: 0 !important;
  list-style: none !important; /* Kills the 1. 2. numbers */
  list-style-type: none !important;
}

.woocommerce div.product div.images .flex-control-thumbs li {
  list-style: none !important;
  list-style-type: none !important;
  width: 80px !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}

.woocommerce div.product div.images .flex-control-thumbs li::before {
  display: none !important; /* Kills invisible list markers */
}

/* --------------------------------------------------
   2. Fix Description Tabs (Remove Bullets & Double Heading)
-------------------------------------------------- */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  list-style: none !important;
  list-style-type: none !important;
  padding: 0 !important;
  margin: 0 0 20px 0 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  border-bottom: 2px solid var(--dh-border) !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  list-style: none !important;
  margin: 0 10px 0 0 !important;
  padding: 0 !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before {
  display: none !important;
}

/* Hide the redundant "Description" H2 inside the text area */
.woocommerce div.product .woocommerce-tabs .panel h2:first-of-type {
  display: none !important;
}

/* --------------------------------------------------
   3. Fix Squished Related Products Grid
-------------------------------------------------- */
.woocommerce .related.products ul.products,
.woocommerce .upsells.products ul.products,
.dh-related-products ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 25px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  width: 100% !important;
}

.woocommerce .related.products ul.products li.product,
.woocommerce .upsells.products ul.products li.product,
.dh-related-products ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  list-style: none !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Force related product images to expand normally */
.woocommerce ul.products li.product a img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  margin-bottom: 15px !important;
}

/* Un-squish the Add to Cart button */
.woocommerce ul.products li.product .button {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  margin-top: auto !important; /* Pushes button to bottom of card */
}

/* Responsive Related Products */
@media (max-width: 991px) {
  .woocommerce .related.products ul.products,
  .dh-related-products ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 640px) {
  .woocommerce .related.products ul.products,
  .dh-related-products ul.products {
    grid-template-columns: 1fr !important;
  }
}

/* ==========================================================================
   URGENT OVERRIDES (NUKE PURPLE BUTTON & THUMBNAIL NUMBERS)
   ========================================================================== */

/* --- 1. Destroy the Default Purple Button --- */
#primary form.cart button.single_add_to_cart_button,
.woocommerce form.cart button.button.alt,
.woocommerce-page form.cart button.button.alt {
  background: var(--dh-primary) !important;
  background-color: var(--dh-primary) !important;
  color: #ffffff !important;
  border-radius: 10px !important;
  min-height: 52px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  border: none !important;
}

#primary form.cart button.single_add_to_cart_button:hover,
.woocommerce form.cart button.button.alt:hover,
.woocommerce-page form.cart button.button.alt:hover {
  background-color: var(--dh-primary-dark) !important;
}

/* --- 2. Obliterate Thumbnail Numbers --- */
.flex-control-nav.flex-control-thumbs,
.woocommerce-product-gallery .flex-control-thumbs,
.dh-single-product__gallery ol {
  list-style: none !important;
  list-style-type: none !important;
  margin: 15px 0 0 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
}

.flex-control-nav.flex-control-thumbs li,
.woocommerce-product-gallery .flex-control-thumbs li {
  list-style: none !important;
  list-style-type: none !important;
  background: transparent !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 80px !important;
}

/* This kills pseudo-elements if your browser is generating the numbers that way */
.flex-control-nav.flex-control-thumbs li::before,
.woocommerce-product-gallery .flex-control-thumbs li::before {
  display: none !important;
  content: none !important;
}

/* --- 3. Align Quantity Input & Button Perfectly --- */
.woocommerce div.product form.cart {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 15px !important;
  align-items: stretch !important;
}

.woocommerce div.product form.cart div.quantity {
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce div.product form.cart .quantity input.qty {
  width: 80px !important;
  height: 52px !important;
  min-height: 52px !important;
  border-radius: 10px !important;
  border: 1px solid var(--dh-border) !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  font-weight: 800 !important;
  font-size: 16px !important;
  color: var(--dh-dark) !important;
}

/* Ensure SVGs scale perfectly in the feature circles */
.dh-feature-card__icon svg {
  width: 24px;
  height: 24px;
  stroke: var(--dh-primary);
  stroke-width: 2px;
}

/* ==========================================================================
   PRODUCT TRUST BADGES (SVG ALIGNMENT)
   ========================================================================== */
.dh-single-product__trust div {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

.dh-single-product__trust div svg {
  color: var(--dh-primary) !important;
  flex-shrink: 0 !important;
}

/* ==========================================================================
   TOPBAR SVG ALIGNMENT
   ========================================================================== */
.dh-topbar__right a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}

.dh-topbar__right a svg {
  color: var(--dh-primary) !important; /* Forces icons to be your brand green */
  flex-shrink: 0 !important;
  transform: translateY(
    -1px
  ); /* Nudges the icon up slightly to perfectly align with text baseline */
}

/* Optional: Make them pop on hover */
.dh-topbar__right a:hover svg {
  color: var(--dh-primary-dark) !important;
}

/* ==========================================================================
   HEADER ICONS (SVG FIX)
   ========================================================================== */
.dh-header-search button svg {
  display: block;
  margin: 0 auto;
}

.dh-action-link,
.dh-cart-link {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  color: var(--dh-dark);
  transition: color 0.2s ease;
}

.dh-action-link:hover,
.dh-cart-link:hover {
  color: var(--dh-primary);
}

.dh-cart-icon {
  display: inline-flex;
  align-items: center;
}

.dh-cart-icon svg {
  display: block;
}

/* ==========================================================================
   UPDATE CART BUTTON STYLING (ACTIVE & DISABLED STATES)
   ========================================================================== */

/* 1. How it looks when ACTIVE (User has changed a quantity) */
button.dh-update-cart {
  background-color: var(--dh-dark) !important;
  color: #ffffff !important;
  opacity: 1 !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
}

button.dh-update-cart:hover:not(:disabled) {
  background-color: var(--dh-primary) !important;
  transform: translateY(-1px);
}

/* 2. How it looks when DISABLED (No changes made yet) */
button.dh-update-cart:disabled,
button.dh-update-cart[disabled] {
  background-color: #f3f4f6 !important; /* Soft light gray */
  color: #9ca3af !important; /* Muted text */
  cursor: not-allowed !important;
  box-shadow: none !important;
  transform: none !important;
  border: 1px solid #e5e7eb !important;
}

/* ==========================================================================
   THE BULLETPROOF CHECKOUT LAYOUT (FLEXBOX ORDER TRICK)
   ========================================================================== */

/* 1. Force the wrappers to become Flexbox containers */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: space-between !important;
}

/* Prevent WooCommerce's default floating classes from breaking the grid */
.woocommerce-checkout .form-row {
  float: none !important;
  margin-bottom: 0px !important;
  padding: 0 !important;
  display: block !important;
}

/* =========================================
   2. SET THE EXACT VISUAL ORDER & WIDTHS 
   ========================================= */

/* ROW 1: Names (Side by Side) */
#billing_first_name_field,
#shipping_first_name_field {
  order: 1;
  width: 48% !important;
}
#billing_last_name_field,
#shipping_last_name_field {
  order: 2;
  width: 48% !important;
}

/* ROW 2: Company (If active, Full Width) */
#billing_company_field,
#shipping_company_field {
  order: 3;
  width: 100% !important;
}

/* ROW 3: Street Address (Full Width) */
#billing_address_1_field,
#shipping_address_1_field {
  order: 4;
  width: 100% !important;
}
#billing_address_2_field,
#shipping_address_2_field {
  order: 5;
  width: 100% !important;
}

/* ROW 4: Town/City & Postcode (Side by Side) */
#billing_city_field,
#shipping_city_field {
  order: 6;
  width: 48% !important;
}
#billing_postcode_field,
#shipping_postcode_field {
  order: 7;
  width: 48% !important;
}

/* ROW 5 & 6: Country & County (Full Width) */
#billing_country_field,
#shipping_country_field {
  order: 8;
  width: 100% !important;
}
#billing_state_field,
#shipping_state_field {
  order: 9;
  width: 100% !important;
}

/* ROW 7: Phone & Email (Side by Side) */
#billing_phone_field,
#shipping_phone_field {
  order: 10;
  width: 48% !important;
}
#billing_email_field,
#shipping_email_field {
  order: 11;
  width: 48% !important;
}

/* Catch-all to push any unknown/injected plugins to the very bottom */
.woocommerce-checkout .form-row:not([id]) {
  order: 99;
  width: 100% !important;
}

/* =========================================
   3. MOBILE VIEW (Stack Everything)
   ========================================= */
@media (max-width: 640px) {
  .woocommerce-checkout .form-row {
    width: 100% !important; /* Forces all fields to take up the whole row on phones */
  }
}

/* ==========================================================================
   CHECKOUT INPUT HEIGHT OVERRIDE FIX
   ========================================================================== */
.woocommerce-checkout .dh-checkout-form input[type="text"],
.woocommerce-checkout .dh-checkout-form input[type="email"],
.woocommerce-checkout .dh-checkout-form input[type="tel"],
.woocommerce-checkout .dh-checkout-form input[type="password"],
.woocommerce-checkout .dh-checkout-form textarea,
.woocommerce-checkout .dh-checkout-form select {
  height: auto !important;
  min-height: 50px !important;
  box-sizing: border-box !important;
}

/* Ensure Stripe container is allowed to expand naturally */
.woocommerce-checkout #wc-stripe-upe-form .wc-stripe-upe-element {
  height: auto !important;
  min-height: 50px !important;
  overflow: visible !important;
}

/* ==========================================================================
   STRIPE IFRAME HEIGHT MISCALCULATION FIX
   ========================================================================== */
/* Target the specific Stripe Elements iframe */
.woocommerce-checkout #wc-stripe-upe-form .wc-stripe-upe-element iframe {
  min-height: 380px !important;
}

/* Ensure the direct Stripe wrapper allows the new height */
.woocommerce-checkout #wc-stripe-upe-form .__PrivateStripeElement {
  height: auto !important;
  min-height: 380px !important;
}
