/*
Theme Name:   Michelle Lippert Child
Theme URI:    https://michellelippert.co.uk
Description:  Child theme for michellelippert.co.uk — Built by Soul Purpose Web Design
Author:       Soul Purpose Web Design
Author URI:   https://soulpurposewebdesign.co.uk
Template:     Divi
Version:      1.0.0
Text Domain:  michelle-lippert-child
*/


/* ═══════════════════════════════════════════════════════════════════
   CUSTOM FONT — MISTRULLY BRUSH
   Place font files in /michelle-lippert-child/fonts/
   Rename the extracted .ttf / .woff / .woff2 to match below
═══════════════════════════════════════════════════════════════════ */

@font-face {
  font-family: 'Mistrully Brush';
  src: url('fonts/MistrallyBrush.woff2') format('woff2'),
       url('fonts/MistrallyBrush.woff')  format('woff'),
       url('fonts/MistrallyBrush.ttf')   format('truetype');
  font-weight: normal;
  font-style:  normal;
  font-display: swap;
}


/* ═══════════════════════════════════════════════════════════════════
   DESIGN TOKENS
   Register these same hex values in Divi > Theme Options > Colours
═══════════════════════════════════════════════════════════════════ */

:root {
  /* Colour palette */
  --ml-dark:        #0e0b06;   /* Deepest bg */
  --ml-dark-2:      #1a1208;   /* Main dark section bg */
  --ml-dark-3:      #2e1f0e;   /* Mid-dark / featured section bg */
  --ml-gold:        #c9a84c;   /* Primary accent */
  --ml-gold-light:  #e8d5a3;   /* Light gold / headings on dark */
  --ml-gold-dim:    rgba(201,168,76,0.22);
  --ml-cream:       #f5f0e8;   /* Light section bg */
  --ml-linen:       #ede5d4;   /* Alternate light section bg */
  --ml-text-dark:   #2a1f0e;   /* Body text on light */
  --ml-text-light:  #f0ebe0;   /* Body text on dark */

  /* Font stacks */
  --ml-script: 'Mistrully Brush', 'Great Vibes', cursive;
  --ml-serif:  'Cormorant Garamond', Georgia, serif;
  --ml-sans:   'Jost', 'Helvetica Neue', Arial, sans-serif;
}


/* ═══════════════════════════════════════════════════════════════════
   GLOBAL TYPOGRAPHY
═══════════════════════════════════════════════════════════════════ */

body,
.et_pb_text,
.et_pb_column p {
  font-family: var(--ml-sans);
  font-weight: 300;
  color: var(--ml-text-dark);
}

h1, h2, h3, h4, h5, h6,
.et_pb_module h1,
.et_pb_module h2,
.et_pb_module h3,
.et_pb_module h4,
.et_pb_text h1,
.et_pb_text h2,
.et_pb_text h3,
.et_pb_text h4 {
  font-family: var(--ml-serif);
  font-weight: 400;
  line-height: 1.2;
}

p {
  font-family: var(--ml-sans);
  font-weight: 300;
  line-height: 1.75;
}

/* Divi resets */
.et_pb_column .et_pb_text_inner p {
  font-family: var(--ml-sans);
  font-weight: 300;
}

/* Script usage: add class .ml-script to a Divi text/heading module */
.ml-script,
.ml-script h1,
.ml-script h2,
.ml-script h3 {
  font-family: var(--ml-script) !important;
}


/* ═══════════════════════════════════════════════════════════════════
   SECTION BACKGROUND CLASSES
   Apply via: Section > Design > CSS Class
   e.g. class = "ml-dark"
═══════════════════════════════════════════════════════════════════ */

.ml-dark,
.et_pb_section.ml-dark  { background-color: var(--ml-dark-2) !important; }

.ml-deep,
.et_pb_section.ml-deep  { background-color: var(--ml-dark) !important; }

.ml-mid,
.et_pb_section.ml-mid   { background-color: var(--ml-dark-3) !important; }

.ml-cream,
.et_pb_section.ml-cream { background-color: var(--ml-cream) !important; }

.ml-linen,
.et_pb_section.ml-linen { background-color: var(--ml-linen) !important; }

/* Text colour on dark sections */
.ml-dark  h1, .ml-dark  h2, .ml-dark  h3, .ml-dark  h4, .ml-dark  p, .ml-dark  li,
.ml-deep  h1, .ml-deep  h2, .ml-deep  h3, .ml-deep  h4, .ml-deep  p, .ml-deep  li,
.ml-mid   h1, .ml-mid   h2, .ml-mid   h3, .ml-mid   h4, .ml-mid   p, .ml-mid   li {
  color: var(--ml-text-light);
}


/* ═══════════════════════════════════════════════════════════════════
   UTILITY CLASSES
═══════════════════════════════════════════════════════════════════ */

.ml-text-gold   { color: var(--ml-gold) !important; }
.ml-text-cream  { color: var(--ml-cream) !important; }
.ml-text-light  { color: var(--ml-text-light) !important; }
.ml-text-dark   { color: var(--ml-text-dark) !important; }
.ml-text-center { text-align: center !important; }

/* Pre-title label — "Wellness Menu", "About Michelle" etc.
   Use a Divi Text module, add class ml-pre-title */
.ml-pre-title,
.ml-pre-title p {
  font-family: var(--ml-sans) !important;
  font-size: 13px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--ml-gold) !important;
  font-weight: 400 !important;
  margin-bottom: 10px !important;
  line-height: 1.4 !important;
}

/* Gold rule — use a Divider module with class ml-rule */
.ml-rule .et_pb_divider_internal,
.ml-rule hr {
  border-color: var(--ml-gold) !important;
  border-style: solid !important;
  border-width: 1px !important;
  width: 56px !important;
  opacity: 0.6;
  display: block !important;
  margin: 0 auto !important;
}
.ml-rule-left .et_pb_divider_internal,
.ml-rule-left hr { margin-left: 0 !important; }

/* Tag / pill — inline span inside text module */
.ml-tag {
  display: inline-block;
  font-family: var(--ml-sans);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ml-gold);
  border: 1px solid var(--ml-gold-dim);
  padding: 5px 14px;
  margin: 3px 3px 3px 0;
}


/* ═══════════════════════════════════════════════════════════════════
   BUTTONS
   Add class to a Divi Button module
═══════════════════════════════════════════════════════════════════ */

/* Gold filled */
.et_pb_button.ml-btn-gold,
a.ml-btn-gold {
  font-family: var(--ml-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  padding: 14px 32px !important;
  border-radius: 0 !important;
  border: 1px solid var(--ml-gold) !important;
  background-color: var(--ml-gold) !important;
  color: var(--ml-dark) !important;
  text-decoration: none !important;
  transition: all 0.22s !important;
}
.et_pb_button.ml-btn-gold:hover,
a.ml-btn-gold:hover {
  background-color: var(--ml-gold-light) !important;
  border-color: var(--ml-gold-light) !important;
}

/* Outline on dark bg — also targets Divi Engine view post button */
.et_pb_button.ml-btn-outline-lt,
a.ml-btn-outline-lt,
a.dmach_view_btn {
  font-family: var(--ml-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  padding: 14px 32px !important;
  border-radius: 0 !important;
  border: 1px solid rgba(240,235,224,0.4) !important;
  background-color: transparent !important;
  color: var(--ml-text-light) !important;
  text-decoration: none !important;
  transition: all 0.22s !important;
}
.et_pb_button.ml-btn-outline-lt:hover,
a.ml-btn-outline-lt:hover,
a.dmach_view_btn:hover {
  border-color: var(--ml-gold) !important;
  color: var(--ml-gold) !important;
}

/* Outline on light bg */
.et_pb_button.ml-btn-outline-dk,
a.ml-btn-outline-dk {
  font-family: var(--ml-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  padding: 14px 32px !important;
  border-radius: 0 !important;
  border: 1px solid rgba(42,31,14,0.35) !important;
  background-color: transparent !important;
  color: var(--ml-text-dark) !important;
  text-decoration: none !important;
  transition: all 0.22s !important;
}
.et_pb_button.ml-btn-outline-dk:hover,
a.ml-btn-outline-dk:hover {
  border-color: var(--ml-text-dark) !important;
}

/* Dark filled */
.et_pb_button.ml-btn-dark,
a.ml-btn-dark {
  font-family: var(--ml-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  padding: 14px 32px !important;
  border-radius: 0 !important;
  border: 1px solid var(--ml-dark-2) !important;
  background-color: var(--ml-dark-2) !important;
  color: var(--ml-cream) !important;
  text-decoration: none !important;
  transition: background 0.22s !important;
}
.et_pb_button.ml-btn-dark:hover,
a.ml-btn-dark:hover {
  background-color: var(--ml-dark-3) !important;
}

/* Remove Divi's default button arrow */
.et_pb_button.ml-btn-gold::after,
.et_pb_button.ml-btn-outline-lt::after,
.et_pb_button.ml-btn-outline-dk::after,
.et_pb_button.ml-btn-dark::after {
  display: none !important;
}


/* ═══════════════════════════════════════════════════════════════════
   HERO SECTION
   Section CSS class: ml-hero
═══════════════════════════════════════════════════════════════════ */

.ml-hero.et_pb_section {
  background: radial-gradient(ellipse at 30% 60%, rgba(70,35,5,0.85) 0%, rgba(25,12,3,0.96) 50%, #080504 100%) !important;
  position: relative;
  overflow: hidden;
}
.ml-hero.et_pb_section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 35%, rgba(201,168,76,0.07) 0%, transparent 55%);
  pointer-events: none;
  z-index: 0;
}
.ml-hero .et_pb_row { position: relative; z-index: 1; }

/* Site wordmark — Divi Text or Heading module, class: ml-hero-name */
.ml-hero-name h1,
.ml-hero-name h2,
.ml-hero-name .et_pb_text_inner {
  font-family: var(--ml-script) !important;
  font-size: clamp(64px, 8vw, 96px) !important;
  color: var(--ml-gold-light) !important;
  line-height: 1 !important;
  text-shadow: 0 0 80px rgba(201,168,76,0.25);
  font-weight: normal !important;
}

/* "Holistic Wellness" — Divi Text module, class: ml-hero-subtitle */
.ml-hero-subtitle,
.ml-hero-subtitle p {
  font-family: var(--ml-serif) !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  letter-spacing: 0.35em !important;
  text-transform: uppercase !important;
  color: rgba(240,235,224,0.7) !important;
  margin-bottom: 10px !important;
}

/* "Treatments · Workshops · Apothecary" — class: ml-hero-tagline */
.ml-hero-tagline,
.ml-hero-tagline p {
  font-size: 13px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: rgba(240,235,224,0.45) !important;
  margin-bottom: 48px !important;
}


/* ═══════════════════════════════════════════════════════════════════
   INTERIOR PAGE HERO — reusable classes for non-homepage hero sections
   Apply ml-hero to the section, then use these on individual modules
═══════════════════════════════════════════════════════════════════ */

/* Large page title — Cormorant Garamond, gold-light
   Use on a Heading or Text module inside ml-hero section */
.ml-page-title h1,
.ml-page-title h2,
.ml-page-title h3,
.ml-page-title .et_pb_text_inner {
  font-family: var(--ml-serif) !important;
  font-size: clamp(52px, 7vw, 84px) !important;
  font-weight: 300 !important;
  color: var(--ml-gold-light) !important;
  line-height: 1.1 !important;
  text-align: center !important;
  letter-spacing: 0.01em !important;
}

/* Intro / subtitle paragraph below the page title */
.ml-page-intro,
.ml-page-intro p {
  font-family: var(--ml-sans) !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  color: rgba(240,235,224,0.72) !important;
  line-height: 1.75 !important;
  text-align: center !important;
  max-width: 600px;
  margin-left: auto !important;
  margin-right: auto !important;
}


/* ═══════════════════════════════════════════════════════════════════
   TAGLINE STRIP
   Section class: ml-tagline-strip
═══════════════════════════════════════════════════════════════════ */

.ml-tagline-strip.et_pb_section {
  /* Mid-dark (#2e1f0e) creates clear visual break from the very-dark hero and Wellness Menu section */
  background-color: var(--ml-dark-3) !important;
  border-top: 1px solid rgba(201,168,76,0.22);
  border-bottom: 1px solid rgba(201,168,76,0.22);
}
.ml-tagline-strip .et_pb_text_inner p,
.ml-tagline-strip p {
  font-family: var(--ml-serif) !important;
  font-size: 20px !important;
  font-style: italic !important;
  font-weight: 300 !important;
  color: rgba(240,235,224,0.78) !important;
  text-align: center;
  max-width: 700px;
  margin: 0 auto;
  line-height: 1.6 !important;
}


/* ═══════════════════════════════════════════════════════════════════
   TREATMENT IMAGE CARDS (overlay style)
   Each card = Divi Code module with class ml-treatment-card, OR
   use Divi Blurb with custom CSS overrides below
═══════════════════════════════════════════════════════════════════ */

.ml-treatment-card {
  position: relative;
  overflow: hidden;
  cursor: pointer;
}
.ml-treatment-card img {
  width: 100%;
  display: block;
  filter: brightness(0.55) sepia(0.25);
  transition: filter 0.35s ease, transform 0.45s ease;
}
.ml-treatment-card:hover img {
  filter: brightness(0.65) sepia(0.1);
  transform: scale(1.04);
}
.ml-card-overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 32px 24px;
  background: linear-gradient(to top, rgba(10,7,3,0.97) 0%, rgba(10,7,3,0.55) 55%, transparent 100%);
}
.ml-card-pill {
  font-family: var(--ml-sans);
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ml-gold);
  display: block;
  margin-bottom: 8px;
  font-weight: 400;
}
.ml-card-title {
  font-family: var(--ml-serif);
  font-size: 24px;
  color: var(--ml-cream);
  margin-bottom: 6px;
  line-height: 1.2;
  display: block;
}
.ml-card-desc {
  font-size: 14px;
  color: rgba(240,235,224,0.82);
  margin-bottom: 14px;
  line-height: 1.55;
  display: block;
}
.ml-card-link {
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ml-gold);
  text-decoration: none;
  border-bottom: 1px solid rgba(201,168,76,0.35);
  padding-bottom: 2px;
}
.ml-card-link:hover { border-color: var(--ml-gold); }


/* ═══════════════════════════════════════════════════════════════════
   WORKSHOP CARDS
   Each card in a Divi column, column class: ml-workshop-card
═══════════════════════════════════════════════════════════════════ */

.ml-workshop-card {
  border: 1px solid rgba(201,168,76,0.18);
  overflow: hidden;
  transition: border-color 0.25s;
}
.ml-workshop-card:hover { border-color: rgba(201,168,76,0.4); }

.ml-workshop-card .et_pb_image img,
.ml-workshop-card img {
  width: 100%;
  height: 230px;
  object-fit: cover;
  display: block;
  filter: brightness(0.65) sepia(0.2);
}
.ml-workshop-date {
  font-family: var(--ml-sans);
  font-size: 13px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ml-gold);
  display: block;
  margin-bottom: 10px;
  font-weight: 400;
}
.ml-workshop-card h3,
.ml-workshop-card .et_pb_text h3 {
  font-family: var(--ml-serif) !important;
  font-size: 26px !important;
  color: var(--ml-cream) !important;
  line-height: 1.2 !important;
  margin-bottom: 10px !important;
}
.ml-workshop-card p,
.ml-workshop-card .et_pb_text p {
  font-size: 15px !important;
  color: rgba(240,235,224,0.82) !important;
  line-height: 1.78 !important;
}
.ml-workshop-price {
  font-family: var(--ml-serif);
  font-size: 28px;
  color: var(--ml-gold-light);
  display: inline-block;
}
.ml-workshop-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 18px;
  border-top: 1px solid rgba(201,168,76,0.14);
  margin-top: 8px;
}


/* ═══════════════════════════════════════════════════════════════════
   SPLIT / TWO-COLUMN SECTIONS
   2-col row — left = image column, right = content
   Row class: ml-split | ml-split-reverse
═══════════════════════════════════════════════════════════════════ */

.ml-split .et_pb_column_1_2:first-child .et_pb_image,
.ml-split .et_pb_column_1_2:first-child img {
  height: 100%;
  min-height: 480px;
  object-fit: cover;
  margin: 0 !important;
}

.ml-split-content {
  display: flex;
  align-items: center;
  padding: 60px 48px !important;
}
.ml-split-content .et_pb_column_inner { max-width: 460px; }

.ml-split-content h2,
.ml-split-content .et_pb_text h2 {
  font-size: 38px !important;
  line-height: 1.15 !important;
  margin-bottom: 18px !important;
}
.ml-split-content p,
.ml-split-content .et_pb_text p {
  font-size: 16px !important;
  line-height: 1.85 !important;
  opacity: 0.85;
}


/* ═══════════════════════════════════════════════════════════════════
   TESTIMONIALS
   Section class: ml-testimonials
   Quote text module class: ml-testimonial-quote
═══════════════════════════════════════════════════════════════════ */

.ml-testimonials.et_pb_section {
  background-color: var(--ml-dark-3) !important;
}
.ml-testimonial-quote,
.ml-testimonial-quote .et_pb_text_inner p,
.ml-testimonial-quote p {
  font-family: var(--ml-serif) !important;
  font-size: 26px !important;
  font-style: italic !important;
  font-weight: 300 !important;
  color: var(--ml-cream) !important;
  line-height: 1.65 !important;
  text-align: center;
}
.ml-testimonial-attr,
.ml-testimonial-attr p {
  font-family: var(--ml-sans) !important;
  font-size: 13px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--ml-gold) !important;
  text-align: center;
  font-weight: 400 !important;
}


/* ═══════════════════════════════════════════════════════════════════
   WOOCOMMERCE — GLOBAL OVERRIDES
═══════════════════════════════════════════════════════════════════ */

/* Product archive */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--ml-serif);
  font-size: 20px;
  font-weight: 400;
  color: var(--ml-text-dark);
  padding: 0 0 6px 0;
}
.woocommerce ul.products li.product .price {
  font-size: 16px;
  color: var(--ml-text-dark);
  font-family: var(--ml-sans);
}
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product .add_to_cart_button {
  font-family: var(--ml-sans);
  font-size: 11px !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: var(--ml-dark-2) !important;
  color: var(--ml-cream) !important;
  border-radius: 0 !important;
  padding: 12px 20px !important;
  border: none !important;
  width: 100%;
  text-align: center;
  font-weight: 400;
  transition: background 0.2s;
}
.woocommerce ul.products li.product a.button:hover {
  background: var(--ml-dark-3) !important;
  color: var(--ml-cream) !important;
}

/* Product loop image */
.woocommerce ul.products li.product a img {
  margin-bottom: 0;
}

/* Remove star ratings on loop if desired */
/* .woocommerce ul.products li.product .star-rating { display: none; } */

/* ─── Single Product ─── */
.woocommerce div.product .product_title {
  font-family: var(--ml-serif) !important;
  font-size: clamp(28px, 4vw, 40px) !important;
  font-weight: 400 !important;
  color: var(--ml-text-dark) !important;
  line-height: 1.1 !important;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--ml-serif) !important;
  font-size: 34px !important;
  color: var(--ml-text-dark) !important;
}
.woocommerce div.product .woocommerce-product-details__short-description p {
  font-family: var(--ml-sans);
  font-size: 15px;
  line-height: 1.85;
  color: rgba(42,31,14,0.78);
}
/* Tabs */
.woocommerce .woocommerce-tabs ul.tabs li a {
  font-family: var(--ml-sans) !important;
  font-size: 12px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
}
.woocommerce .woocommerce-tabs ul.tabs li.active a {
  color: var(--ml-text-dark) !important;
}
.woocommerce .woocommerce-tabs ul.tabs li.active::before,
.woocommerce .woocommerce-tabs ul.tabs li.active::after {
  box-shadow: none;
}

/* Add to cart */
.woocommerce div.product form.cart .button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  font-family: var(--ml-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  background: var(--ml-dark-2) !important;
  color: var(--ml-cream) !important;
  border-radius: 0 !important;
  padding: 15px 32px !important;
  font-weight: 400 !important;
  transition: background 0.2s !important;
}
.woocommerce div.product form.cart .button:hover,
.woocommerce button.button:hover {
  background: var(--ml-dark-3) !important;
  color: var(--ml-cream) !important;
}

/* Qty input */
.woocommerce div.product form.cart .qty {
  font-family: var(--ml-sans);
  font-size: 16px;
  border: 1px solid rgba(42,31,14,0.25);
  border-radius: 0;
  padding: 12px 14px;
  height: auto;
}

/* Related products heading */
.woocommerce .up-sells h2,
.woocommerce .related h2 {
  font-family: var(--ml-serif) !important;
  font-size: 34px !important;
  font-weight: 400 !important;
  color: var(--ml-text-dark) !important;
}

/* Breadcrumb */
.woocommerce .woocommerce-breadcrumb {
  font-family: var(--ml-sans);
  font-size: 13px;
  color: rgba(42,31,14,0.5);
}
.woocommerce .woocommerce-breadcrumb a { color: rgba(42,31,14,0.5); }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--ml-gold); }

/* Sale badge */
.woocommerce span.onsale {
  background: var(--ml-gold);
  color: var(--ml-dark);
  font-family: var(--ml-sans);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 0;
  min-height: auto;
  min-width: auto;
  padding: 5px 10px;
  line-height: 1.4;
}

/* Checkout & Cart */
.woocommerce-checkout .et_pb_post_content h3,
.woocommerce-cart .et_pb_post_content h3 {
  font-family: var(--ml-serif) !important;
  font-size: 26px !important;
  font-weight: 400 !important;
}


/* ═══════════════════════════════════════════════════════════════════
   TREATMENT ARCHIVE (CPT loop via Divi Engine / Divi Machine)
   These classes apply to the archive template layout
═══════════════════════════════════════════════════════════════════ */

/* Treatment archive — styling only (layout is handled by Divi Machine 2-col row)
   In Divi Machine loop template: left col = image, right col = content modules
   Add ml-treatment-item to the ROW, ml-treatment-item-img to the image column */

.ml-treatment-item.et_pb_row {
  border: 1px solid rgba(201,168,76,0.1) !important;
  overflow: hidden !important;
  margin-bottom: 2px !important;
  max-width: 100% !important;
  padding: 0 !important;
  transition: border-color 0.25s;
}
.ml-treatment-item.et_pb_row:hover { border-color: rgba(201,168,76,0.25) !important; }

/* Image column — fixed height so all cards match regardless of image orientation */
.ml-treatment-item .ml-treatment-item-img {
  padding: 0 !important;
  height: 340px !important;
  overflow: hidden !important;
}
.ml-treatment-item .ml-treatment-item-img .et_pb_image_wrap {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}
.ml-treatment-item .ml-treatment-item-img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  filter: brightness(0.6) sepia(0.2);
  transition: filter 0.3s;
  margin: 0 !important;
}
.ml-treatment-item:hover .ml-treatment-item-img img { filter: brightness(0.7) sepia(0.1); }

/* Content column padding */
.ml-treatment-item .ml-treatment-item-content { padding: 40px 48px !important; }

/* Button spacing inside treatment cards */
.ml-treatment-item .et_pb_button_module_wrapper {
  margin-bottom: 10px !important;
}
.ml-treatment-item .et_pb_button_module_wrapper:first-of-type {
  margin-top: 24px !important;
}

/* Typography */
.ml-treatment-item .ml-treatment-item-label,
.ml-treatment-item .ml-treatment-item-label p,
.ml-treatment-item .ml-treatment-item-label .de-post-meta-container {
  font-size: 12px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--ml-gold) !important;
  font-weight: 400 !important;
  margin-bottom: 10px !important;
}
.ml-treatment-item .ml-treatment-item-name h2,
.ml-treatment-item .ml-treatment-item-name h3,
.ml-treatment-item .ml-treatment-item-name a {
  font-family: var(--ml-serif) !important;
  font-size: 34px !important;
  color: var(--ml-cream) !important;
  line-height: 1.15 !important;
  text-decoration: none !important;
  margin-bottom: 8px !important;
}
.ml-treatment-item .ml-treatment-item-meta,
.ml-treatment-item .ml-treatment-item-meta p,
.ml-treatment-item .ml-treatment-item-meta .et_pb_module_inner {
  font-size: 14px !important;
  color: rgba(240,235,224,0.72) !important;
  margin-bottom: 16px !important;
}
.ml-treatment-item .ml-treatment-item-desc,
.ml-treatment-item .ml-treatment-item-desc p {
  font-size: 15px !important;
  line-height: 1.85 !important;
  color: rgba(240,235,224,0.78) !important;
  margin-bottom: 24px !important;
  max-width: 540px;
}


/* ═══════════════════════════════════════════════════════════════════
   WORKSHOP ARCHIVE
═══════════════════════════════════════════════════════════════════ */

.ml-workshop-archive-card {
  background: var(--ml-cream);
  border: 1px solid rgba(42,31,14,0.08);
  overflow: hidden;
  transition: border-color 0.22s;
}
.ml-workshop-archive-card:hover { border-color: rgba(201,168,76,0.4); }

.ml-workshop-archive-card img {
  width: 100%;
  height: 210px;
  object-fit: cover;
  filter: sepia(0.1) brightness(0.85);
  display: block;
}
/* Workshop — coming soon / tickets not yet available label */
.ml-coming-soon {
  display: inline-block;
  font-family: var(--ml-sans);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(42,31,14,0.45);
  border: 1px solid rgba(42,31,14,0.18);
  padding: 13px 24px;
  font-weight: 400;
}

.ml-workshop-archive-card h3 {
  font-family: var(--ml-serif) !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  color: var(--ml-text-dark) !important;
  line-height: 1.2 !important;
}
.ml-workshop-archive-card p {
  font-size: 14px !important;
  color: rgba(42,31,14,0.72) !important;
  line-height: 1.75 !important;
}
.ml-wk-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 16px;
  border-top: 1px solid rgba(42,31,14,0.08);
  margin-top: 12px;
}
.ml-wk-archive-price {
  font-family: var(--ml-serif);
  font-size: 26px;
  color: var(--ml-text-dark);
}


/* ═══════════════════════════════════════════════════════════════════
   DIVI 5 — GLOBAL MODULE DEFAULTS
   These ensure Divi 5's new defaults don't override the design
═══════════════════════════════════════════════════════════════════ */

/* Remove Divi 5 default button styles from interfering */
.et_pb_button_module_wrapper .et_pb_button {
  text-decoration: none;
}

/* Ensure Divi images in columns don't add unwanted margin */
.et_pb_column .et_pb_image_wrap {
  display: block;
}

/* Divi 5 sometimes wraps headings in spans — normalise */
.et_pb_text h1 span,
.et_pb_text h2 span,
.et_pb_text h3 span {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
}

/* Fix Divi 5 default section padding conflicts */
.ml-no-pad.et_pb_section,
.ml-no-pad.et_pb_row {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.ml-no-pad-top.et_pb_section,
.ml-no-pad-top.et_pb_row { padding-top: 0 !important; }
.ml-no-pad-bottom.et_pb_section,
.ml-no-pad-bottom.et_pb_row { padding-bottom: 0 !important; }


/* ═══════════════════════════════════════════════════════════════════
   GIFTING / INFO STRIP
   Section class: ml-gifting-strip
═══════════════════════════════════════════════════════════════════ */

.ml-gifting-strip.et_pb_section {
  background-color: var(--ml-dark-3) !important;
  border-top: 1px solid rgba(201,168,76,0.12);
  border-bottom: 1px solid rgba(201,168,76,0.12);
}
.ml-gifting-strip p {
  font-family: var(--ml-serif) !important;
  font-size: 20px !important;
  font-style: italic !important;
  color: rgba(240,235,224,0.78) !important;
  text-align: center !important;
}
.ml-gifting-strip a {
  color: var(--ml-gold);
  font-style: normal;
  font-family: var(--ml-sans);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(201,168,76,0.4);
  padding-bottom: 2px;
  text-decoration: none;
}


/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════════════════ */

@media (max-width: 980px) {
  .ml-hero-name h1,
  .ml-hero-name h2,
  .ml-hero-name .et_pb_text_inner { font-size: 64px !important; }

  .ml-treatment-item { grid-template-columns: 1fr; }
  .ml-treatment-item-img { min-height: 220px; }

  .ml-split-content { padding: 40px 32px !important; }
}

@media (max-width: 767px) {
  .ml-hero-name h1,
  .ml-hero-name h2,
  .ml-hero-name .et_pb_text_inner { font-size: 52px !important; }

  .ml-testimonial-quote,
  .ml-testimonial-quote p { font-size: 20px !important; }

  .ml-tagline-strip p { font-size: 17px !important; }

  /* ── Signature treatment card — homepage ── */

  /* Stack image column and body column vertically */
  .ml-treatment-row.et_pb_row {
    display: flex !important;
    flex-direction: column !important;
  }
  .ml-treatment-row .et_pb_column:first-child {
    min-height: 260px !important;
    width: 100% !important;
  }
  .ml-treatment-row .et_pb_column:first-child img {
    min-height: 260px !important;
  }

  /* Body column — single column grid, tighter padding */
  .ml-treatment-body-col {
    grid-template-columns: 1fr !important;
    padding: 28px 20px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* All items span full width */
  .ml-treatment-body-col > * {
    grid-column: 1 / -1 !important;
  }

  /* Meta items — stack vertically, remove right border dividers */
  .ml-treatment-body-col .ml-treatment-meta {
    border-right: none !important;
    border-bottom: 1px solid rgba(201,168,76,0.18) !important;
    padding: 8px 0 !important;
  }
  .ml-treatment-body-col > *:nth-child(5).ml-treatment-meta {
    border-bottom: none !important;
  }

  /* Buttons — side by side, wrap if needed */
  .ml-treatment-body-col > *:nth-child(6),
  .ml-treatment-body-col > *:nth-child(7) {
    margin-top: 8px !important;
    width: auto !important;
  }
}


/* ── SIDE-BY-SIDE BUTTON ROW ──────────────────────────────────────────────────
   Add ml-btn-row to the ROW module containing two (or more) Button modules.
   They will sit side by side, centred, wrapping on mobile.
─────────────────────────────────────────────────────────────────────────────── */

.ml-btn-row .et_pb_column {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
  justify-content: center !important;
  align-items: center !important;
}

.ml-btn-row .et_pb_button_module_wrapper {
  margin: 0 !important;
}

@media (max-width: 480px) {
  .ml-btn-row .et_pb_column {
    flex-direction: column !important;
    align-items: center !important;
  }
}


/* ── CONTACT PAGE ──────────────────────────────────────────────────────────── */

.ml-contact-card {
  border-top: 1px solid rgba(201,168,76,0.25);
  padding-top: 20px;
}

.ml-contact-icon {
  font-size: 20px;
  color: var(--ml-gold);
  margin-bottom: 12px;
  display: block;
}

.ml-contact-label {
  font-family: var(--ml-sans);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ml-gold);
  margin-bottom: 8px;
}

.ml-contact-value {
  display: block;
  font-family: var(--ml-sans);
  font-size: 14px;
  font-weight: 300;
  color: var(--ml-cream);
  text-decoration: none;
  line-height: 1.5;
  margin-bottom: 4px;
}

.ml-contact-value:hover { color: var(--ml-gold-light); }

.ml-contact-note {
  font-family: var(--ml-sans);
  font-size: 11px;
  color: rgba(240,235,224,0.4);
  margin: 0;
}


/* ── CONTACT FORM ──────────────────────────────────────────────────────────── */

/* Field wrappers */
.et_pb_contact_form_container .et_pb_contact_field {
  margin-bottom: 12px !important;
}

/* Inputs and textarea — light section (ml-linen / ml-cream) */
.et_pb_contact_form_container input[type="text"],
.et_pb_contact_form_container input[type="email"],
.et_pb_contact_form_container textarea {
  font-family: var(--ml-sans) !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  color: var(--ml-dark-1) !important;
  background: rgba(255,255,255,0.75) !important;
  border: 1px solid rgba(42,31,14,0.2) !important;
  border-radius: 0 !important;
  padding: 14px 18px !important;
  width: 100% !important;
  transition: border-color 0.2s !important;
}

.et_pb_contact_form_container input[type="text"]:focus,
.et_pb_contact_form_container input[type="email"]:focus,
.et_pb_contact_form_container textarea:focus {
  border-color: var(--ml-gold) !important;
  outline: none !important;
  background: #fff !important;
}

/* Placeholder colour */
.et_pb_contact_form_container input::placeholder,
.et_pb_contact_form_container textarea::placeholder {
  color: rgba(42,31,14,0.35) !important;
}

/* Labels */
.et_pb_contact_form_container label {
  font-family: var(--ml-sans) !important;
  font-size: 12px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--ml-dark-1) !important;
  font-weight: 500 !important;
  margin-bottom: 6px !important;
  display: block !important;
}

/* Submit button */
.et_pb_contact_form_container .et_pb_contact_submit,
.et_pb_contact_form_container input[type="submit"] {
  font-family: var(--ml-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  background-color: var(--ml-gold) !important;
  color: var(--ml-dark-1) !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 14px 32px !important;
  cursor: pointer !important;
  transition: background-color 0.22s !important;
  margin-top: 8px !important;
}

.et_pb_contact_form_container .et_pb_contact_submit:hover,
.et_pb_contact_form_container input[type="submit"]:hover {
  background-color: var(--ml-gold-light) !important;
}

/* Success / error messages */
.et_pb_contact_form_container .et-pb-contact-message {
  font-family: var(--ml-sans) !important;
  font-size: 13px !important;
  padding: 14px 18px !important;
  border-radius: 0 !important;
  margin-top: 12px !important;
}
.et_pb_contact_form_container .et-pb-contact-message p { margin: 0 !important; }


/* ── TREATMENT SINGLE PAGE ─────────────────────────────────────────────────── */

.ml-single-content { padding: 48px 56px 48px 0 !important; }

.ml-single-content p {
  font-family: var(--ml-sans) !important;
  font-size: 15px !important;
  line-height: 1.85 !important;
  color: rgba(240,235,224,0.78) !important;
  margin-bottom: 18px !important;
}

.ml-single-sidebar { padding: 48px 0 48px 40px !important; }

.ml-sidebar-card {
  border: 1px solid rgba(201,168,76,0.18);
  padding: 24px;
  margin-bottom: 16px;
}

.ml-sidebar-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 12px 0;
  border-bottom: 1px solid rgba(201,168,76,0.1);
}

.ml-sidebar-row:last-child { border-bottom: none; }

.ml-sidebar-label {
  font-family: var(--ml-sans);
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ml-gold);
}

.ml-sidebar-val {
  font-family: var(--ml-sans);
  font-size: 14px;
  font-weight: 300;
  color: var(--ml-cream);
}

/* Sidebar buttons — full width stacked */
.ml-single-sidebar .et_pb_button_module_wrapper {
  width: 100% !important;
  margin-bottom: 8px !important;
}

.ml-single-sidebar .et_pb_button {
  width: 100% !important;
  text-align: center !important;
  display: block !important;
}

@media (max-width: 980px) {
  .ml-single-content { padding: 32px 0 !important; }
  .ml-single-sidebar { padding: 0 0 32px !important; }
}


/* ══════════════════════════════════════════════════════════════════
   WOOCOMMERCE — SINGLE PRODUCT PAGE
   Matches the product page proof (cream/linen bg, gallery left,
   info right, tabbed content below, related products)
══════════════════════════════════════════════════════════════════ */

/* ── Woo content wrapper — keep site's dark theme, just add breathing room ── */
.single-product .woocommerce {
  padding: 40px 0 !important;
}

/* ── Breadcrumb ── */
.single-product .woocommerce-breadcrumb {
  font-family: var(--ml-sans) !important;
  font-size: 12px !important;
  color: rgba(42,31,14,0.5) !important;
  background: var(--ml-linen) !important;
  padding: 14px 0 !important;
  border-bottom: 1px solid rgba(42,31,14,0.1) !important;
  margin: 0 0 32px !important;
  display: block !important;
}
.single-product .woocommerce-breadcrumb a {
  color: rgba(42,31,14,0.5) !important;
  text-decoration: none !important;
}
.single-product .woocommerce-breadcrumb a:hover { color: var(--ml-gold) !important; }

/* ── Product layout — let WooCommerce handle the 2-col, just set widths ── */
.single-product div.product {
  position: relative !important;
}
.single-product div.product::after {
  content: '' !important;
  display: table !important;
  clear: both !important;
}

/* ── Gallery ── */
.single-product .woocommerce-product-gallery {
  width: 50% !important;
  float: left !important;
  padding-right: 48px !important;
  position: sticky !important;
  top: 110px !important;
}
.single-product .woocommerce-product-gallery__wrapper {
  margin-bottom: 12px !important;
}
.single-product .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: auto !important;
  object-fit: cover !important;
  display: block !important;
}
/* Thumbnails */
.single-product .flex-control-thumbs {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 8px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.single-product .flex-control-thumbs li img {
  width: 100% !important;
  aspect-ratio: 1 !important;
  object-fit: cover !important;
  cursor: pointer !important;
  opacity: 0.6 !important;
  border: 1px solid transparent !important;
  transition: opacity 0.2s !important;
}
.single-product .flex-control-thumbs li img.flex-active,
.single-product .flex-control-thumbs li img:hover {
  opacity: 1 !important;
  border-color: var(--ml-gold) !important;
}

/* ── Summary (right column) ── */
.single-product .summary {
  width: 50% !important;
  float: right !important;
}

/* Category */
.single-product .posted_in,
.single-product .posted_in a {
  font-family: var(--ml-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--ml-gold) !important;
  text-decoration: none !important;
  display: block !important;
  margin-bottom: 12px !important;
}

/* Title */
.single-product .product_title {
  font-family: var(--ml-serif) !important;
  font-size: 40px !important;
  font-weight: 400 !important;
  color: var(--ml-text-dark) !important;
  line-height: 1.1 !important;
  margin-bottom: 8px !important;
}

/* Star rating */
.single-product .woocommerce-product-rating {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 22px !important;
}
.single-product .star-rating {
  color: var(--ml-gold) !important;
  font-size: 14px !important;
}
.single-product .woocommerce-review-link {
  font-size: 12px !important;
  color: rgba(42,31,14,0.5) !important;
  text-decoration: none !important;
}

/* Price */
.single-product .summary .price {
  font-family: var(--ml-serif) !important;
  font-size: 36px !important;
  font-weight: 400 !important;
  color: var(--ml-text-dark) !important;
  margin-bottom: 24px !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
  display: block !important;
}
.single-product .summary .price del { opacity: 0.4 !important; }

/* Short description */
.single-product .woocommerce-product-details__short-description p {
  font-family: var(--ml-sans) !important;
  font-size: 15px !important;
  line-height: 1.85 !important;
  color: rgba(42,31,14,0.75) !important;
  margin-bottom: 28px !important;
}

/* Quantity + Add to Cart form */
.single-product form.cart {
  display: flex !important;
  gap: 12px !important;
  align-items: stretch !important;
  margin-bottom: 18px !important;
}
.single-product .quantity {
  display: flex !important;
  align-items: center !important;
  border: 1px solid rgba(42,31,14,0.25) !important;
  background: #fff !important;
  flex-shrink: 0 !important;
}
.single-product .quantity .qty {
  width: 52px !important;
  height: 52px !important;
  text-align: center !important;
  border: none !important;
  background: none !important;
  font-family: var(--ml-sans) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  color: var(--ml-text-dark) !important;
  outline: none !important;
  box-shadow: none !important;
}
.single-product .single_add_to_cart_button {
  flex: 1 !important;
  font-family: var(--ml-sans) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  background: var(--ml-gold) !important;
  color: var(--ml-dark-1, #0e0b06) !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 28px !important;
  height: 52px !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
}
.single-product .single_add_to_cart_button:hover {
  background: var(--ml-gold-light) !important;
}
.single-product .single_add_to_cart_button::after { display: none !important; }

/* Product meta (SKU, categories, tags) */
.single-product .product_meta {
  padding-top: 22px !important;
  border-top: none !important;
  font-family: var(--ml-sans) !important;
  font-size: 13px !important;
  color: rgba(42,31,14,0.5) !important;
  line-height: 2 !important;
}
.single-product .product_meta span.sku,
.single-product .product_meta a { color: var(--ml-text-dark) !important; }

/* ── Tabs ── */
.single-product .woocommerce-tabs {
  background: var(--ml-linen) !important;
  border-top: 1px solid rgba(42,31,14,0.1) !important;
  grid-column: 1 / -1 !important;
  padding: 64px 48px !important;
  max-width: 100% !important;
  margin: 0 !important;
  clear: both !important;
}
.single-product .woocommerce-tabs ul.tabs {
  display: flex !important;
  border-bottom: 1px solid rgba(42,31,14,0.15) !important;
  margin-bottom: 40px !important;
  padding: 0 !important;
  list-style: none !important;
}
.single-product .woocommerce-tabs ul.tabs li {
  margin: 0 !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
}
.single-product .woocommerce-tabs ul.tabs li a {
  font-family: var(--ml-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: rgba(42,31,14,0.5) !important;
  padding: 14px 32px !important;
  display: block !important;
  border-bottom: 2px solid transparent !important;
  margin-bottom: -1px !important;
  text-decoration: none !important;
  transition: all 0.2s !important;
}
.single-product .woocommerce-tabs ul.tabs li.active a {
  color: var(--ml-text-dark) !important;
  border-bottom-color: var(--ml-gold) !important;
}
.single-product .woocommerce-tabs .panel p {
  font-size: 15px !important;
  line-height: 1.9 !important;
  color: rgba(42,31,14,0.75) !important;
  margin-bottom: 18px !important;
  max-width: 680px !important;
}
.single-product .woocommerce-tabs .panel h2 {
  font-family: var(--ml-serif) !important;
  font-size: 22px !important;
  font-weight: 400 !important;
  color: var(--ml-text-dark) !important;
  margin: 28px 0 10px !important;
}

/* ── Force full-width layout — hide sidebar column and expand main content ── */
/* Divi adds et_right_sidebar body class; this neutralises it on product pages */
.single-product #sidebar,
.single-product.et_right_sidebar #sidebar {
  display: none !important;
  width: 0 !important;
}
.single-product #left-area,
.single-product.et_right_sidebar #left-area {
  width: 100% !important;
  float: none !important;
  padding-right: 0 !important;
}

/* ── WooCommerce notices (info/success/error) ── */
.woocommerce-info,
.single-product .woocommerce-info {
  background: var(--ml-dark-3) !important;
  border-color: var(--ml-gold) !important;
  color: var(--ml-cream) !important;
  font-family: var(--ml-sans) !important;
  font-size: 13px !important;
}
.woocommerce-info::before {
  color: var(--ml-gold) !important;
}
.woocommerce-message {
  background: var(--ml-dark-3) !important;
  border-color: var(--ml-gold) !important;
  color: var(--ml-cream) !important;
  font-family: var(--ml-sans) !important;
  font-size: 13px !important;
}
.woocommerce-message a.button,
.woocommerce-info a.button {
  background: var(--ml-gold) !important;
  color: var(--ml-dark-2) !important;
}

/* ── Remove WP sidebar widgets from product pages ── */
.single-product .widget_recent_entries,
.single-product .widget_recent_comments,
.single-product .widget_recent_posts,
.single-product .widget_categories,
.single-product .widget_archive,
.single-product .widget_tag_cloud,
.single-product .widget_meta,
.single-product #sidebar,
.single-product .et_pb_widget { display: none !important; }

/* ── Related Products ── */
.single-product section.related {
  background: var(--ml-dark-2) !important;
  padding: 64px 48px !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.single-product section.related > h2 {
  font-family: var(--ml-serif) !important;
  font-size: 34px !important;
  font-weight: 400 !important;
  color: var(--ml-cream) !important;
  margin-bottom: 36px !important;
}
.single-product section.related ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.single-product section.related ul.products li.product {
  background: var(--ml-dark-3) !important;
  border: 1px solid rgba(201,168,76,0.12) !important;
  overflow: hidden !important;
  width: auto !important;
  float: none !important;
}
.single-product section.related ul.products li .woocommerce-loop-product__title {
  font-family: var(--ml-serif) !important;
  font-size: 17px !important;
  font-weight: 400 !important;
  color: var(--ml-cream) !important;
  padding: 12px 18px 4px !important;
}
.single-product section.related ul.products li .price {
  font-size: 14px !important;
  color: var(--ml-gold) !important;
  padding: 0 18px 12px !important;
}
.single-product section.related ul.products li img {
  width: 100% !important;
  height: 200px !important;
  object-fit: cover !important;
  display: block !important;
}
.single-product section.related ul.products li .button {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  padding: 12px !important;
  background: var(--ml-gold) !important;
  color: var(--ml-dark-1, #0e0b06) !important;
  font-family: var(--ml-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border: none !important;
  border-radius: 0 !important;
  transition: background 0.2s !important;
}
.single-product section.related ul.products li .button:hover {
  background: var(--ml-gold-light) !important;
}
.single-product section.related ul.products li .button::after { display: none !important; }


/* ══════════════════════════════════════════════════════════════════
   WOOCOMMERCE — PRODUCT ARCHIVE (Workshops & Apothecary)
   Targets Divi Engine product loop (daf-product-template)
══════════════════════════════════════════════════════════════════ */

/* Card container */
.daf-product-template .grid-item-cont {
  background: var(--ml-dark-2) !important;
  border: 1px solid rgba(201,168,76,0.1) !important;
  overflow: hidden !important;
  transition: border-color 0.25s !important;
}
.daf-product-template:hover .grid-item-cont {
  border-color: rgba(201,168,76,0.28) !important;
}

/* Image — fixed height, cover crop */
.daf-product-template .de_db_product_image { overflow: hidden !important; }
.daf-product-template .de_db_product_image img,
.daf-product-template .et_shop_image img {
  width: 100% !important;
  height: 300px !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  transition: transform 0.4s ease !important;
  margin: 0 !important;
}
.daf-product-template:hover .de_db_product_image img { transform: scale(1.04) !important; }

/* WooCommerce overlay — hide Divi's default hover effect */
.daf-product-template .et_overlay { display: none !important; }

/* Content area */
.daf-product-template .post-content_cont {
  padding: 24px 28px 28px !important;
}

/* Product title */
.daf-product-template .woocommerce-loop-product__title {
  font-family: var(--ml-serif) !important;
  font-size: 22px !important;
  font-weight: 300 !important;
  color: var(--ml-cream) !important;
  line-height: 1.2 !important;
  margin-bottom: 8px !important;
  text-decoration: none !important;
}

/* Price */
.daf-product-template .price,
.daf-product-template .price .woocommerce-Price-amount {
  font-family: var(--ml-sans) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  color: var(--ml-gold) !important;
  margin-bottom: 16px !important;
}
.daf-product-template .price del { opacity: 0.45 !important; }

/* Hide category count link */
.daf-product-template .woocommerce-loop-category__title { display: none !important; }

/* Add to Cart — solid gold (simple products) */
.daf-product-template .button {
  font-family: var(--ml-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  background-color: var(--ml-gold) !important;
  color: var(--ml-dark-1) !important;
  border: 1px solid var(--ml-gold) !important;
  border-radius: 0 !important;
  padding: 13px 24px !important;
  width: 100% !important;
  text-align: center !important;
  display: block !important;
  text-decoration: none !important;
  transition: all 0.22s !important;
}
.daf-product-template .button:hover {
  background-color: var(--ml-gold-light) !important;
  border-color: var(--ml-gold-light) !important;
}
/* Remove Divi button arrow */
.daf-product-template .button::after { display: none !important; }

/* Select Options — outline (variable products with size/format choice) */
.daf-product-template .button.product_type_variable {
  background-color: transparent !important;
  color: var(--ml-cream) !important;
  border-color: rgba(240,235,224,0.3) !important;
}
.daf-product-template .button.product_type_variable:hover {
  border-color: var(--ml-gold) !important;
  color: var(--ml-gold) !important;
}


/* ══════════════════════════════════════════════════════════════════
   NAV CART ICON
   Hidden until items are in the cart (ml-cart-has-items class)
══════════════════════════════════════════════════════════════════ */

/* Always show bag icon — drawer opens even when cart is empty */
.ml-nav-cart { display: list-item !important; }
.ml-nav-cart.ml-cart-has-items { display: list-item !important; }
/* Hide count badge when cart is empty */
.ml-nav-cart:not(.ml-cart-has-items) .ml-cart-count { display: none !important; }

.ml-nav-cart > a {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  position: relative !important;
}

.ml-nav-cart > a i {
  font-size: 16px !important;
}

.ml-cart-count {
  background: var(--ml-gold) !important;
  color: var(--ml-dark-1) !important;
  font-family: var(--ml-sans) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  min-width: 18px !important;
  height: 18px !important;
  border-radius: 50% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 4px !important;
  line-height: 1 !important;
}


/* ═══════════════════════════════════════════════════════════════════
   FOOTER — MENU FIXES
   Both footer menus sit inside .et_pb_section_0_tb_footer
═══════════════════════════════════════════════════════════════════ */

/* 1. Hide cart icon in footer menus (keep it in the header) */
.et_pb_section_0_tb_footer .ml-nav-cart {
  display: none !important;
}

/* 2. Vertical menu items — override Divi's flex-row */
.et_pb_section_0_tb_footer .et-menu-nav > ul,
.et_pb_section_0_tb_footer ul.et-menu {
  flex-direction: column !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 0 !important;
}

/* 3. Always show desktop nav list — hide hamburger at every breakpoint */
.et_pb_section_0_tb_footer .et_pb_menu__menu,
.et_pb_section_0_tb_footer .et-menu-nav {
  display: block !important;
}
.et_pb_section_0_tb_footer .et_mobile_nav_menu,
.et_pb_section_0_tb_footer .mobile_menu_bar,
.et_pb_section_0_tb_footer .et_pb_menu__icon {
  display: none !important;
}

/* 4. Clean up individual footer nav links */
.et_pb_section_0_tb_footer .et-menu > li {
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}
.et_pb_section_0_tb_footer .et-menu > li > a {
  display: block !important;
  padding: 5px 0 !important;
  font-family: var(--ml-sans) !important;
  font-size: 13px !important;
  letter-spacing: 0.06em !important;
  color: rgba(240,235,224,0.6) !important;
  text-decoration: none !important;
}
.et_pb_section_0_tb_footer .et-menu > li > a:hover {
  color: var(--ml-gold) !important;
}

/* ═══════════════════════════════════════════════════════════════════
   HOMEPAGE — SECTION BACKGROUND ALIASES
   The build doc uses ml-section-* names; these alias the existing
   ml-dark / ml-deep / ml-cream / ml-linen tokens.
   Apply to Section > CSS Class in Divi.
═══════════════════════════════════════════════════════════════════ */

/* Hero section */
.ml-hero-section.et_pb_section {
  /* Larger ellipse spreads the warm glow across more of the viewport */
  background: radial-gradient(ellipse 120% 90% at 50% 65%, rgba(90,45,5,0.92) 0%, rgba(25,12,3,0.97) 55%, #080504 100%) !important;
  position: relative !important;
  overflow: hidden !important;
  min-height: 100vh !important;
  /* Remove any Divi default top padding */
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  /* Vertically centre all row content */
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: stretch !important;
}
.ml-hero-section.et_pb_section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 30%, rgba(201,168,76,0.09) 0%, transparent 55%);
  pointer-events: none;
  z-index: 0;
}
.ml-hero-section .et_pb_row { position: relative !important; z-index: 1 !important; }

/* ── Hero content row — centred block layout ── */
.ml-hero-section .et_pb_row:first-child .et_pb_column {
  display: block !important;
  text-align: center !important;
}

/* ── Hero button row — side-by-side, centred ── */
/* Target the row containing buttons (last row in hero) */
.ml-hero-section .et_pb_row:last-child {
  text-align: center !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.ml-hero-section .et_pb_row:last-child .et_pb_column {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
}
.ml-hero-section .et_pb_row:last-child .et_pb_button_module_wrapper {
  display: inline-flex !important;
  width: auto !important;
}

/* Section background aliases */
.ml-section-deep,
.et_pb_section.ml-section-deep { background-color: var(--ml-dark) !important; }

.ml-section-dark,
.et_pb_section.ml-section-dark { background-color: var(--ml-dark-2) !important; }

.ml-section-cream,
.et_pb_section.ml-section-cream { background-color: var(--ml-cream) !important; }

.ml-section-linen,
.et_pb_section.ml-section-linen { background-color: var(--ml-linen) !important; }

/* Text colour on dark alias sections */
.ml-section-deep h1, .ml-section-deep h2, .ml-section-deep h3, .ml-section-deep h4,
.ml-section-deep p, .ml-section-deep li,
.ml-section-dark h1, .ml-section-dark h2, .ml-section-dark h3, .ml-section-dark h4,
.ml-section-dark p, .ml-section-dark li { color: var(--ml-text-light); }

/* Testimonials alias */
.ml-testimonials-section.et_pb_section { background-color: var(--ml-dark-3) !important; }


/* ═══════════════════════════════════════════════════════════════════
   HOMEPAGE — HERO IMAGE + DIVIDER TEXT
═══════════════════════════════════════════════════════════════════ */

/* Hero PNG — Image module class: ml-hero-logo */
.ml-hero-logo .et_pb_image_wrap,
.ml-hero-logo img {
  max-width: 520px !important;
  margin: 0 auto 32px !important;
  filter: drop-shadow(0 0 60px rgba(201,168,76,0.18)) !important;
  display: block !important;
}

/* "Treatments · Workshops · Apothecary" — Text module class: ml-hero-div */
.ml-hero-div,
.ml-hero-div p {
  font-family: var(--ml-sans) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  color: rgba(240,235,224,0.75) !important;
  text-align: center !important;
  margin-bottom: 40px !important;
}
.ml-hero-div span { color: var(--ml-gold); margin: 0 14px; }


/* ═══════════════════════════════════════════════════════════════════
   HOMEPAGE — SECTION INTRO PARAGRAPH
   Text module class: ml-section-intro
═══════════════════════════════════════════════════════════════════ */

.ml-section-intro,
.ml-section-intro p {
  font-family: var(--ml-sans) !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  line-height: 1.78 !important;
  text-align: center !important;
  max-width: 580px !important;
  margin: 0 auto !important;
  opacity: 0.82 !important;
}


/* ═══════════════════════════════════════════════════════════════════
   HOMEPAGE — FEATURED TREATMENT CARD (DIVI LIBRARY SECTION)
   Row class:     ml-treatment-row
   Right column:  ml-treatment-body-col
   Left column has no custom class — targeted via :first-child
   Badge (Code module) has no custom class — targeted via .et_pb_code
   Post title uses .de_ajax_filter_post_title
   Description uses .de_machine_acf_item (without ml-treatment-meta)
═══════════════════════════════════════════════════════════════════ */

.ml-treatment-row.et_pb_row {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ── Left column (image) — no custom class, target via :first-child ── */
.ml-treatment-row .et_pb_column:first-child {
  overflow: hidden !important;
  position: relative !important;
  min-height: 420px !important;
  padding: 0 !important;
}
.ml-treatment-row .et_pb_column:first-child .et_pb_image,
.ml-treatment-row .et_pb_column:first-child .et_pb_image_wrap {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
.ml-treatment-row .et_pb_column:first-child img {
  width: 100% !important;
  height: 100% !important;
  min-height: 500px !important;
  object-fit: cover !important;
  object-position: center !important;
  filter: brightness(0.65) sepia(0.15) !important;
  transition: filter 0.35s, transform 0.45s !important;
  display: block !important;
  margin: 0 !important;
}
.ml-treatment-row:hover .et_pb_column:first-child img {
  filter: brightness(0.78) sepia(0.08) !important;
  transform: scale(1.03) !important;
}

/* ── Badge — Code module in left column (no custom class) ── */
.ml-treatment-row .et_pb_column:first-child .et_pb_code {
  position: absolute !important;
  top: 20px !important;
  left: 20px !important;
  z-index: 2 !important;
  background: var(--ml-gold) !important;
  color: var(--ml-dark) !important;
  font-family: var(--ml-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 5px 14px !important;
  font-weight: 400 !important;
}

/* ── Row: full bleed so image reaches the page edge ── */
.ml-treatment-row.et_pb_row {
  max-width: 100% !important;
  margin: 0 !important;
}

/* ── Right column: CSS Grid for meta + button row layout ── */
.ml-treatment-body-col {
  background: var(--ml-dark-2) !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  column-gap: 20px !important;
  padding: 40px 48px !important;
  align-items: start !important;
  align-content: start !important;
}

/* Title + description span all 3 grid columns */
.ml-treatment-body-col > *:nth-child(1),
.ml-treatment-body-col > *:nth-child(2) {
  grid-column: 1 / -1 !important;
}

/* Buttons (children 6 + 7) span 1 col each, left-aligned */
.ml-treatment-body-col > *:nth-child(6),
.ml-treatment-body-col > *:nth-child(7) {
  justify-self: start !important;
  margin-top: 12px !important;
}

/* ── Post title — "The Rebalance Treatment" ── */
.ml-treatment-body-col .de_ajax_filter_post_title,
.ml-treatment-body-col .de_ajax_filter_post_title * {
  font-family: var(--ml-serif) !important;
  font-size: clamp(24px, 2.8vw, 38px) !important;
  font-weight: 300 !important;
  color: var(--ml-text-light) !important;
  line-height: 1.15 !important;
  margin-bottom: 16px !important;
}

/* ── Description text (ACF item without ml-treatment-meta) ── */
.ml-treatment-body-col .de_machine_acf_item:not(.ml-treatment-meta),
.ml-treatment-body-col .de_machine_acf_item:not(.ml-treatment-meta) * {
  font-family: var(--ml-sans) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  line-height: 1.78 !important;
  color: rgba(240,235,224,0.78) !important;
  margin-bottom: 4px !important;
}

/* ── Meta items — single row, separated by right border ── */
.ml-treatment-meta,
.ml-treatment-meta * {
  font-family: var(--ml-sans) !important;
  font-size: 13px !important;
  color: rgba(240,235,224,0.6) !important;
}
.ml-treatment-body-col .ml-treatment-meta {
  border-bottom: none !important;
  border-right: 1px solid rgba(201,168,76,0.18) !important;
  padding: 0 16px 0 0 !important;
  margin: 0 0 8px 0 !important;
}
/* Last meta item — no right border */
.ml-treatment-body-col > *:nth-child(5).ml-treatment-meta {
  border-right: none !important;
  padding-right: 0 !important;
}
/* Label part (Divi Machine "before" text) */
.ml-treatment-body-col .ml-treatment-meta .dmach-text-before {
  color: var(--ml-gold-light) !important;
  font-weight: 400 !important;
  margin-right: 6px !important;
}


/* ═══════════════════════════════════════════════════════════════════
   HOMEPAGE — GIFTING STRIP TEXT
   Section class: ml-gifting-strip (existing)
   Text module class: ml-gift-text
═══════════════════════════════════════════════════════════════════ */

.ml-gift-text,
.ml-gift-text p {
  font-family: var(--ml-serif) !important;
  font-size: 18px !important;
  font-style: italic !important;
  color: rgba(240,235,224,0.72) !important;
  text-align: center !important;
}
.ml-gift-text a {
  color: var(--ml-gold) !important;
  border-bottom: 1px solid rgba(201,168,76,0.35);
  padding-bottom: 1px;
  text-decoration: none !important;
  margin-left: 4px;
}


/* ═══════════════════════════════════════════════════════════════════
   HOMEPAGE — WORKSHOP CARDS
   Row class:    ml-wk-row
   Column class: ml-wk-card
═══════════════════════════════════════════════════════════════════ */

.ml-wk-card {
  background: var(--ml-dark-3) !important;
  border: 1px solid rgba(201,168,76,0.15) !important;
  overflow: hidden !important;
  transition: border-color 0.25s !important;
}
.ml-wk-card:hover { border-color: rgba(201,168,76,0.45) !important; }

/* Image — 220px fixed height, cover crop */
.ml-wk-img img {
  width: 100% !important;
  height: 220px !important;
  object-fit: cover !important;
  display: block !important;
  filter: brightness(0.6) sepia(0.2);
  transition: filter 0.35s;
  margin: 0 !important;
}
.ml-wk-card:hover .ml-wk-img img { filter: brightness(0.72) sepia(0.1); }

/* Status badges */
.ml-wk-status-available,
.ml-wk-status-available p {
  display: inline-block !important;
  font-family: var(--ml-sans) !important;
  font-size: 9px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 4px 10px !important;
  background: rgba(201,168,76,0.15) !important;
  color: var(--ml-gold-light) !important;
}
.ml-wk-status-coming,
.ml-wk-status-coming p {
  display: inline-block !important;
  font-family: var(--ml-sans) !important;
  font-size: 9px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 4px 10px !important;
  background: rgba(201,168,76,0.08) !important;
  color: rgba(201,168,76,0.6) !important;
}

/* Date, time, price */
.ml-wk-date,
.ml-wk-date p {
  font-family: var(--ml-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--ml-gold) !important;
  font-weight: 400 !important;
}
.ml-wk-time,
.ml-wk-time p {
  font-family: var(--ml-sans) !important;
  font-size: 13px !important;
  color: rgba(240,235,224,0.45) !important;
}
.ml-wk-price,
.ml-wk-price p {
  font-family: var(--ml-serif) !important;
  font-size: 30px !important;
  color: var(--ml-gold-light) !important;
  font-weight: 400 !important;
}


/* ═══════════════════════════════════════════════════════════════════
   WORKSHOP SINGLE PRODUCT — ACF META + REGISTER INTEREST
═══════════════════════════════════════════════════════════════════ */

.ml-workshop-meta {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 24px 0 28px;
  border-top: 1px solid rgba(201,168,76,0.15);
  border-bottom: 1px solid rgba(201,168,76,0.15);
  padding: 16px 0;
}

.ml-wk-meta-item {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 7px 0;
  border-bottom: 1px solid rgba(201,168,76,0.08);
}
.ml-wk-meta-item:last-child { border-bottom: none; }

.ml-wk-meta-label {
  font-family: var(--ml-sans);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ml-gold);
  font-weight: 400;
  min-width: 72px;
  flex-shrink: 0;
}

.ml-wk-meta-val {
  font-family: var(--ml-sans);
  font-size: 14px;
  font-weight: 300;
  color: rgba(240,235,224,0.85);
}

/* Register Interest button */
a.ml-btn-register-interest {
  display: inline-block !important;
  background: var(--ml-gold) !important;
  color: var(--ml-dark) !important;
  font-family: var(--ml-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  padding: 14px 32px !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  border: none !important;
  margin-top: 8px !important;
}
a.ml-btn-register-interest:hover {
  background: var(--ml-gold-light) !important;
  color: var(--ml-dark) !important;
}


/* ═══════════════════════════════════════════════════════════════════
   HOMEPAGE — ABOUT SPLIT SECTION
   Section class:    ml-section-split
   Left column:      ml-split-text-col  (linen bg)
   Right column:     ml-split-img-col   (full-height photo)
═══════════════════════════════════════════════════════════════════ */

.ml-section-split.et_pb_section { padding: 0 !important; }
.ml-section-split .et_pb_row {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
.ml-section-split .et_pb_column { padding: 0 !important; }

/* Text column */
.et_pb_column.ml-split-text-col,
.ml-split-text-col {
  background: var(--ml-linen) !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  min-height: 580px !important;
  /* Padding set here AND via Divi column spacing in case one wins */
  padding: 64px 72px !important;
  box-sizing: border-box !important;
}
/* Headings + body text must be dark on linen */
.ml-split-text-col h1, .ml-split-text-col h2, .ml-split-text-col h3,
.ml-split-text-col h4, .ml-split-text-col p, .ml-split-text-col li,
.et_pb_column.ml-split-text-col h1, .et_pb_column.ml-split-text-col h2,
.et_pb_column.ml-split-text-col h3, .et_pb_column.ml-split-text-col p {
  color: var(--ml-text-dark) !important;
}
/* Left-align the gold rule divider to match text alignment */
.ml-split-text-col .et_pb_divider_container,
.ml-split-text-col .et_pb_divider_internal {
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  justify-content: flex-start !important;
}

/* Photo column — stretch the image to fill the full column area */
.et_pb_column.ml-split-img-col,
.ml-split-img-col {
  overflow: hidden !important;
  min-height: 580px !important;
  padding: 0 !important;
}
/* Force the Divi image module and its wrapper to fill the column */
.ml-split-img-col .et_pb_image,
.ml-split-img-col .et_pb_image_wrap {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
.ml-split-img-col img {
  width: 100% !important;
  height: 100% !important;
  min-height: 580px !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  margin: 0 !important;
}

/* Dark text on linen (Text module class: ml-body-dk) */
.ml-body-dk,
.ml-body-dk p { color: rgba(42,31,14,0.82) !important; }


/* ═══════════════════════════════════════════════════════════════════
   HOMEPAGE — PRODUCT GRID
   Row class:    ml-prod-row
   Column class: ml-prod-card
═══════════════════════════════════════════════════════════════════ */

.ml-prod-card {
  background: #ffffff !important;
  overflow: hidden !important;
}

/* Image — square, cover crop */
.ml-prod-img img {
  width: 100% !important;
  aspect-ratio: 1 !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.4s !important;
  margin: 0 !important;
}
.ml-prod-card:hover .ml-prod-img img { transform: scale(1.04); }

/* Category label */
.ml-prod-cat,
.ml-prod-cat p {
  font-family: var(--ml-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: rgba(42,31,14,0.45) !important;
}

/* Price */
.ml-prod-price,
.ml-prod-price p {
  font-family: var(--ml-sans) !important;
  font-size: 16px !important;
  color: var(--ml-text-dark) !important;
  font-weight: 300 !important;
}


/* ═══════════════════════════════════════════════════════════════════
   MINI CART DRAWER
   Slide-in panel from right. Triggered by .ml-nav-cart bag icon.
   Contents auto-update via WooCommerce cart fragments.
═══════════════════════════════════════════════════════════════════ */

#ml-cart-drawer {
  position: fixed;
  inset: 0;
  z-index: 999999;
  pointer-events: none;
}
#ml-cart-drawer.is-open {
  pointer-events: auto;
}

/* Backdrop */
.ml-drawer-overlay {
  position: absolute;
  inset: 0;
  background: rgba(14, 11, 6, 0.72);
  opacity: 0;
  transition: opacity 0.3s ease;
}
#ml-cart-drawer.is-open .ml-drawer-overlay {
  opacity: 1;
}

/* Panel */
.ml-drawer-panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 380px;
  max-width: 95vw;
  background: var(--ml-dark-2);
  border-left: 1px solid rgba(201, 168, 76, 0.15);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
#ml-cart-drawer.is-open .ml-drawer-panel {
  transform: translateX(0);
}

/* Header */
.ml-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 28px;
  border-bottom: 1px solid rgba(201, 168, 76, 0.15);
  flex-shrink: 0;
}
.ml-drawer-title {
  font-family: var(--ml-serif);
  font-size: 22px;
  font-weight: 400;
  color: var(--ml-cream);
  letter-spacing: 0.04em;
}
.ml-drawer-close {
  background: none;
  border: none;
  color: rgba(240, 235, 224, 0.55);
  font-size: 18px;
  cursor: pointer;
  padding: 6px;
  line-height: 1;
  transition: color 0.2s;
}
.ml-drawer-close:hover { color: var(--ml-cream); }

/* Scrollable body */
.ml-drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 0;
  -webkit-overflow-scrolling: touch;
}
.ml-drawer-body::-webkit-scrollbar { width: 3px; }
.ml-drawer-body::-webkit-scrollbar-track { background: transparent; }
.ml-drawer-body::-webkit-scrollbar-thumb { background: rgba(201, 168, 76, 0.25); border-radius: 2px; }

/* ── Mini cart items ── */
.ml-drawer-body .woocommerce-mini-cart {
  list-style: none;
  padding: 0 28px;
  margin: 0;
}
.ml-drawer-body .woocommerce-mini-cart__empty-message {
  font-family: var(--ml-sans);
  font-size: 14px;
  color: rgba(240, 235, 224, 0.45);
  text-align: center;
  padding: 48px 28px;
  margin: 0;
}
.ml-drawer-body .woocommerce-mini-cart-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(201, 168, 76, 0.1);
  position: relative;
}
.ml-drawer-body .woocommerce-mini-cart-item img {
  width: 68px;
  height: 68px;
  object-fit: cover;
  flex-shrink: 0;
}
.ml-drawer-body .woocommerce-mini-cart-item .remove_from_cart_button {
  position: absolute;
  top: 20px;
  right: 0;
  color: rgba(240, 235, 224, 0.3) !important;
  font-size: 20px;
  text-decoration: none;
  line-height: 1;
  transition: color 0.2s;
}
.ml-drawer-body .woocommerce-mini-cart-item .remove_from_cart_button:hover {
  color: var(--ml-gold) !important;
}
.ml-drawer-body .woocommerce-mini-cart-item > a:not(.remove_from_cart_button) {
  font-family: var(--ml-serif);
  font-size: 16px;
  font-weight: 400;
  color: var(--ml-cream) !important;
  text-decoration: none;
  display: block;
  margin-bottom: 6px;
  padding-right: 24px;
}
.ml-drawer-body .woocommerce-mini-cart-item .quantity {
  font-family: var(--ml-sans);
  font-size: 12px;
  color: rgba(240, 235, 224, 0.5);
}
.ml-drawer-body .woocommerce-mini-cart-item .quantity .amount {
  color: var(--ml-gold);
}

/* ── Subtotal ── */
.ml-drawer-body .woocommerce-mini-cart__total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 20px 28px 4px;
  border-top: 1px solid rgba(201, 168, 76, 0.15);
  margin-top: 4px;
}
.ml-drawer-body .woocommerce-mini-cart__total strong {
  font-family: var(--ml-sans);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(240, 235, 224, 0.55);
  font-weight: 400;
}
.ml-drawer-body .woocommerce-mini-cart__total .amount {
  font-family: var(--ml-serif);
  font-size: 26px;
  font-weight: 400;
  color: var(--ml-cream);
}

/* ── Buttons (View Cart + Checkout) ── */
.ml-drawer-body .woocommerce-mini-cart__buttons {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 28px 28px;
}
.ml-drawer-body .woocommerce-mini-cart__buttons a,
.ml-drawer-body .woocommerce-mini-cart__buttons .button {
  display: block !important;
  text-align: center !important;
  padding: 14px 20px !important;
  font-family: var(--ml-sans) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border-radius: 0 !important;
  transition: background 0.2s, color 0.2s, border-color 0.2s !important;
}
/* "View cart" — outline style */
.ml-drawer-body .woocommerce-mini-cart__buttons .button.wc-forward:not(.checkout) {
  background: transparent !important;
  border: 1px solid rgba(240, 235, 224, 0.3) !important;
  color: var(--ml-cream) !important;
}
.ml-drawer-body .woocommerce-mini-cart__buttons .button.wc-forward:not(.checkout):hover {
  border-color: var(--ml-gold) !important;
  color: var(--ml-gold) !important;
}
/* "Checkout" — gold filled */
.ml-drawer-body .woocommerce-mini-cart__buttons .checkout {
  background: var(--ml-gold) !important;
  border: 1px solid var(--ml-gold) !important;
  color: var(--ml-dark-2) !important;
}
.ml-drawer-body .woocommerce-mini-cart__buttons .checkout:hover {
  background: var(--ml-gold-light) !important;
  border-color: var(--ml-gold-light) !important;
}
/* Remove Divi arrow from buttons */
.ml-drawer-body .woocommerce-mini-cart__buttons .button::after { display: none !important; }


/* ═══════════════════════════════════════════════════════════════════
   WOOCOMMERCE SINGLE PRODUCT — CONTENT COLOURS (white bg retained)
═══════════════════════════════════════════════════════════════════ */

/* Product title */
body.single-product h1.product_title.entry-title {
  font-family: var(--ml-serif) !important;
  font-weight: 300 !important;
  color: var(--ml-dark) !important;
  text-align: left !important;
  letter-spacing: 0.02em !important;
}

/* Price */
body.single-product p.price,
body.single-product span.price {
  color: var(--ml-dark) !important;
  font-family: var(--ml-serif) !important;
  text-align: left !important;
}
body.single-product .price .woocommerce-Price-amount {
  color: var(--ml-dark-3) !important;
  font-size: 26px !important;
  font-weight: 400 !important;
}

/* Short description */
body.single-product .woocommerce-product-details__short-description {
  text-align: left !important;
  color: var(--ml-text-dark) !important;
  font-family: var(--ml-sans) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
}
body.single-product .woocommerce-product-details__short-description * {
  color: var(--ml-text-dark) !important;
}

/* Left-align the whole summary column */
body.single-product div.product .summary {
  text-align: left !important;
}

/* Workshop meta — override cream values for white background */
body.single-product .ml-workshop-meta {
  border-top-color: rgba(201,168,76,0.35) !important;
  border-bottom-color: rgba(201,168,76,0.35) !important;
}
body.single-product .ml-wk-meta-item {
  border-bottom-color: rgba(0,0,0,0.07) !important;
}
body.single-product .ml-wk-meta-val {
  color: var(--ml-text-dark) !important;
}

/* Stock status, meta (SKU, category) */
body.single-product .stock,
body.single-product .posted_in,
body.single-product .posted_in a,
body.single-product .tagged_as,
body.single-product .woocommerce-product-attributes-item__value {
  color: rgba(42,31,14,0.7) !important;
  font-family: var(--ml-sans) !important;
  font-size: 13px !important;
}

/* Tabs — match site sans */
body.single-product .woocommerce-tabs .wc-tab h2,
body.single-product .woocommerce-tabs .panel * {
  color: var(--ml-text-dark) !important;
  font-family: var(--ml-sans) !important;
}
body.single-product .woocommerce-tabs ul.tabs li a {
  color: var(--ml-dark-3) !important;
  font-family: var(--ml-sans) !important;
  font-size: 12px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
}
body.single-product .woocommerce-tabs ul.tabs li.active a {
  color: var(--ml-gold) !important;
}

/* Cart form — stack qty, button, and Square wallet vertically */
body.single-product form.cart {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0 !important;
  flex-wrap: nowrap !important;
}
body.single-product form.cart .quantity {
  margin-bottom: 12px !important;
}

/* Square digital wallet — separator + full width below button */
body.single-product #wc-square-digital-wallet {
  width: 100% !important;
  margin-top: 20px !important;
  padding-top: 20px !important;
  border-top: 1px solid rgba(42,31,14,0.12) !important;
}

/* Add to cart button */
body.single-product .single_add_to_cart_button.button {
  background: var(--ml-dark) !important;
  color: var(--ml-text-light) !important;
  font-family: var(--ml-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  padding: 16px 40px !important;
  border: none !important;
}
body.single-product .single_add_to_cart_button.button:hover {
  background: var(--ml-dark-3) !important;
}

/* Quantity input */
body.single-product .quantity .qty {
  border: 1px solid rgba(42,31,14,0.2) !important;
  font-family: var(--ml-sans) !important;
  color: var(--ml-text-dark) !important;
}


/* ═══════════════════════════════════════════════════════════════════
   TREATMENT LIST — [ml_treatments] SHORTCODE
   Used to split human / animal treatments into separate sections
═══════════════════════════════════════════════════════════════════ */

.ml-treatment-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
}

/* Each treatment row: image left, body right */
.ml-tc-row {
  display: grid;
  grid-template-columns: 38% 62%;
  height: 460px;
  overflow: hidden;
}

/* Image column */
.ml-tc-img-col {
  position: relative;
  overflow: hidden;
  height: 100%;
}
.ml-tc-img-col img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: brightness(0.7) sepia(0.12);
  transition: transform 0.5s ease;
}
.ml-tc-row:hover .ml-tc-img-col img {
  transform: scale(1.03);
}

/* Body column */
.ml-tc-body-col {
  background: var(--ml-dark-2);
  padding: 44px 52px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
}

.ml-tc-title {
  font-family: var(--ml-serif) !important;
  font-size: clamp(22px, 2.4vw, 34px) !important;
  font-weight: 300 !important;
  color: var(--ml-text-light) !important;
  margin: 0 0 16px !important;
  letter-spacing: 0.02em !important;
}

.ml-tc-excerpt {
  font-family: var(--ml-sans);
  font-size: 14px;
  font-weight: 300;
  color: rgba(240,235,224,0.72);
  line-height: 1.75;
  margin: 0 0 20px;
}

/* Price + Duration in one row */
.ml-tc-meta {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(201,168,76,0.15);
}
.ml-tc-price {
  font-family: var(--ml-serif);
  font-size: 22px;
  font-weight: 400;
  color: var(--ml-gold-light);
}
.ml-tc-duration {
  font-family: var(--ml-sans);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(240,235,224,0.5);
}
.ml-tc-duration::before {
  content: '·';
  margin-right: 14px;
  color: var(--ml-gold);
  opacity: 0.4;
}

/* CTA button */
a.ml-tc-btn {
  display: inline-block;
  align-self: flex-start;
  border: 1px solid var(--ml-gold);
  color: var(--ml-gold) !important;
  font-family: var(--ml-sans);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 12px 28px;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}
a.ml-tc-btn:hover {
  background: var(--ml-gold);
  color: var(--ml-dark) !important;
}

/* Alternate rows: flip image to right */
.ml-tc-row:nth-child(even) {
  grid-template-columns: 62% 38%;
}
.ml-tc-row:nth-child(even) .ml-tc-img-col {
  order: 2;
}
.ml-tc-row:nth-child(even) .ml-tc-body-col {
  order: 1;
  background: var(--ml-dark-3);
}

/* Mobile */
@media (max-width: 767px) {
  .ml-tc-row,
  .ml-tc-row:nth-child(even) {
    grid-template-columns: 1fr;
    grid-template-rows: 280px auto;
    height: auto !important;
  }
  .ml-tc-img-col {
    height: 280px !important;
  }
  .ml-tc-img-col img {
    height: 280px !important;
  }
  .ml-tc-body-col {
    height: auto !important;
    padding: 32px 24px;
  }
  .ml-tc-row:nth-child(even) .ml-tc-img-col,
  .ml-tc-row:nth-child(even) .ml-tc-body-col { order: unset; }

  /* ── Hero logo: constrain to viewport on mobile ── */
  .ml-hero-logo .et_pb_image_wrap,
  .ml-hero-logo img {
    max-width: 75vw !important;
    margin: 0 auto 20px !important;
  }

  /* ── Hero section: reduce height on mobile ── */
  .ml-hero-section.et_pb_section {
    min-height: unset !important;
  }

  /* ── Hero name: slightly smaller on small screens ── */
  .ml-hero-section .ml-hero-name h1,
  .ml-hero-section .ml-hero-name h2,
  .ml-hero-section .ml-hero-name .et_pb_text_inner {
    font-size: 44px !important;
  }

  /* ── Hero buttons: stack on very small screens ── */
  .ml-hero-section .et_pb_row:last-child .et_pb_column {
    flex-direction: column !important;
    align-items: center !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════
   SHOP LOOP — VIEW PRODUCT BUTTON
═══════════════════════════════════════════════════════════════════ */

a.button.ml-btn-view-product {
  display: inline-block !important;
  background: transparent !important;
  border: 1px solid var(--ml-gold) !important;
  color: var(--ml-gold) !important;
  font-family: var(--ml-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 11px 24px !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  transition: background 0.2s, color 0.2s !important;
}
a.button.ml-btn-view-product:hover {
  background: var(--ml-gold) !important;
  color: var(--ml-dark) !important;
}
/* Remove Divi arrow if inherited */
a.button.ml-btn-view-product::after { display: none !important; }


/* ═══════════════════════════════════════════════════════════════════
   WORKSHOP ARCHIVE META (shop loop card)
═══════════════════════════════════════════════════════════════════ */

.ml-wk-archive-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 6px 0 10px;
}
.ml-wk-archive-date {
  font-family: var(--ml-sans);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ml-gold);
}
.ml-wk-archive-time {
  font-family: var(--ml-sans);
  font-size: 12px;
  font-weight: 300;
  color: rgba(240,235,224,0.65);
}
.ml-wk-archive-time::before {
  content: '·';
  margin-right: 10px;
  color: rgba(201,168,76,0.4);
}