/** Shopify CDN: Minification failed

Line 38:0 All "@import" rules must come first

**/
/* ============================================================
   HOLY HOT MOM™ — Compiled Design System
   Compiled from Google AI Studio source → Shopify-ready CSS
   All Tailwind utilities extracted as plain CSS classes.
   ============================================================ */

/* ---- GLOBAL OVERFLOW GUARD ---- */
html, body { max-width: 100%; overflow-x: hidden; }

/* ---- SKIP NAVIGATION ---- */
.skip-to-content-link {
  position: absolute;
  top: -100%;
  left: 1rem;
  z-index: 9999;
  background: #fff;
  color: #190807;
  font-family: var(--font-mono);
  font-size: 0.875rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.75rem 1.25rem;
  border-radius: 0 0 0.5rem 0.5rem;
  text-decoration: none;
  transition: top 0.1s;
}
.skip-to-content-link:focus {
  top: 0;
}

/* ---- FONTS ---- */
@import url('https://fonts.googleapis.com/css2?family=Cutive+Mono&family=Allura&family=Righteous&family=Style+Script&family=Cantata+One&family=Eczar:wght@400..800&family=Elsie+Swash+Caps:wght@400;900&display=swap');

@font-face {
  font-family: 'Cooper Light';
  src: url('/cdn/shop/files/cooperl.ttf?v=1780704354') format('truetype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Cooper Light';
  src: url('/cdn/shop/files/cooperli.ttf?v=1780704345') format('truetype');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Cooper Medium';
  src: url('/cdn/shop/files/cooperm.ttf?v=1780704334') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Cooper Medium';
  src: url('/cdn/shop/files/coopermi.ttf?v=1780704326') format('truetype');
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Perfecto Calligraphy';
  src: url('/cdn/shop/files/PerfectoCalligraphy.ttf?v=1781314214') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* ---- CSS CUSTOM PROPERTIES ---- */
:root {
  /* Brand colors */
  --hhm-sacred-rose: hsl(357, 50%, 64%);
  --hhm-sacred-rose-hex: #D8737C;
  --hhm-midnight: #190807;
  --hhm-midnight-hex: #190807;
  --hhm-parchment: hsl(45, 27%, 97%);
  --hhm-parchment-hex: #FAF9F5;
  --hhm-flesh-blush: hsl(346, 70%, 88%);
  --hhm-flesh-blush-hex: #F9C8CE;
  --hhm-herbal-green: hsl(75, 60%, 40%);
  --hhm-herbal-green-hex: #8CAB24;
  --hhm-spicy-lime: hsl(72, 58%, 56%);
  --hhm-spicy-lime-hex: #CFDB42;
  --hhm-moss: #838D56;
  --hhm-moss-hex: #838D56;

  /* Accessible text variants — darkened to meet WCAG AA 4.5:1 on light backgrounds.
     Use these for any small text (< 18px / < 14px bold) on parchment or white. */
  --hhm-herbal-green-text: #3D5C00; /* 6.1:1 on white — AA pass */
  --hhm-sacred-rose-text:  #A83545; /* 6.4:1 on white — AA pass, stays in rose family */

  /* Semantic tokens */
  --hhm-bg: var(--hhm-parchment);
  --hhm-surface: var(--hhm-flesh-blush);
  --hhm-primary: var(--hhm-sacred-rose);
  --hhm-secondary: var(--hhm-herbal-green);
  --hhm-accent: var(--hhm-spicy-lime);
  --hhm-text: var(--hhm-midnight);
  --hhm-border: var(--hhm-moss);

  /* Font families */
  --font-heading: 'Bolkit Bold', Georgia, serif;
  --font-body: 'Cooper Light', Georgia, serif;
  --font-mono: 'Cutive Mono', monospace;
  --font-accent: 'Style Script', cursive;
  --font-snell: 'Snell Roundhand', cursive;
  --font-perfecto: 'Perfecto Calligraphy', cursive;
  --font-diplomata: 'Cantata One', serif;
  --font-cooper-light: 'Cooper Light', serif;
  --font-cooper-medium: 'Cooper Medium', serif;
  --font-cooper-bold: 'Cooper', serif;

  /* Spacing */
  --hhm-gutter: 24px;
  --hhm-mobile-gutter: 16px;
  --mobile-gutter: var(--hhm-mobile-gutter);

  /* Shadows */
  --shadow-ritual: 0 4px 20px rgba(0, 0, 0, 0.08);
  --shadow-ritual-lg: 0 20px 40px -10px rgba(0, 0, 0, 0.10), 0 0 0 1px rgba(0, 0, 0, 0.05);

  /* Border radius */
  --radius-ritual: 12px;
  --radius-organic: 24px;
  --image-border-radius: var(--radius-organic);

  /* Transitions */
  --transition-primary: 0.2s cubic-bezier(0.46, 0.01, 0.32, 1);
  --transition-slow: 0.4s cubic-bezier(0.46, 0.01, 0.32, 1);
}

/* ---- BASE RESET ---- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--hhm-midnight);
  background-color: var(--hhm-parchment);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, video { max-width: 100%; display: block; }

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

button { cursor: pointer; border: none; background: none; padding: 0; font: inherit; }

ul, ol { list-style: none; margin: 0; padding: 0; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-weight: 400;
  line-height: 0.84;
  letter-spacing: -0.02em;
  margin: 0;
}

p { margin: 0; }

/* ---- TYPOGRAPHY UTILITIES ---- */

.ritual-title {
  font-family: var(--font-heading);
  font-weight: 400;
  line-height: 0.84;
  letter-spacing: -0.02em;
  color: var(--hhm-midnight);
}

.technical-label {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.975rem;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 900;
  color: var(--hhm-herbal-green);
}

.founder-note {
  font-family: var(--font-accent);
  font-size: 1.25rem;
  color: var(--hhm-sacred-rose);
}

/* Font family utilities */
.font-heading   { font-family: var(--font-heading); }
.font-body      { font-family: var(--font-body); }
.font-mono      { font-family: var(--font-mono); }
.font-accent    { font-family: var(--font-accent); }
.font-snell     { font-family: var(--font-snell); }
.font-diplomata { font-family: var(--font-diplomata); }
.font-cooper-light  { font-family: var(--font-cooper-light); }
.font-cooper-medium { font-family: var(--font-cooper-medium); }
.font-cooper-bold   { font-family: var(--font-cooper-bold); }

/* Font weight utilities */
.font-light    { font-weight: 300; }
.font-normal   { font-weight: 400; }
.font-medium   { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold     { font-weight: 700; }
.font-black    { font-weight: 900; }

/* Font style */
.italic   { font-style: italic; }
.not-italic { font-style: normal; }

/* Text sizes */
.text-xs   { font-size: 0.75rem;  line-height: 1rem; }
.text-sm   { font-size: 0.875rem; line-height: 1.25rem; }
.text-base { font-size: 1rem;     line-height: 1.5rem; }
.text-lg   { font-size: 1.125rem; line-height: 1.75rem; }
.text-xl   { font-size: 1.25rem;  line-height: 1.75rem; }
.text-2xl  { font-size: 1.5rem;   line-height: 2rem; }
.text-3xl  { font-size: 1.875rem; line-height: 2.25rem; }
.text-4xl  { font-size: 2.25rem;  line-height: 2.5rem; }
.text-5xl  { font-size: 3rem;     line-height: 0.84; }
.text-6xl  { font-size: 3.75rem;  line-height: 0.84; }
.text-7xl  { font-size: 4.5rem;   line-height: 0.84; }
.text-8xl  { font-size: 6rem;     line-height: 0.84; }
.text-9xl  { font-size: 8rem;     line-height: 0.84; }

/* Custom sizes */
.text-\[9px\]   { font-size: 9px; }
.text-\[10px\]  { font-size: 10px; }
.text-\[11px\]  { font-size: 11px; }
.text-\[13px\]  { font-size: 13px; }

/* Text color utilities */
.text-hhm-sacred-rose  { color: var(--hhm-sacred-rose); }
.text-hhm-midnight     { color: var(--hhm-midnight); }
.text-hhm-parchment    { color: var(--hhm-parchment); }
.text-hhm-flesh-blush  { color: var(--hhm-flesh-blush); }
.text-hhm-herbal-green { color: var(--hhm-herbal-green); }
.text-hhm-spicy-lime   { color: var(--hhm-spicy-lime); }
.text-hhm-moss         { color: var(--hhm-moss); }
.text-white            { color: #fff; }
.text-black            { color: #000; }

/* Text opacity variants */
.text-hhm-midnight\/40 { color: rgba(25,8,7,0.4); }
.text-hhm-midnight\/50 { color: rgba(25,8,7,0.5); }
.text-hhm-midnight\/60 { color: rgba(25,8,7,0.6); }
.text-hhm-midnight\/70 { color: rgba(25,8,7,0.7); }
.text-hhm-midnight\/80 { color: rgba(25,8,7,0.8); }
.text-hhm-midnight\/90 { color: rgba(25,8,7,0.9); }
.text-white\/40  { color: rgba(255,255,255,0.4); }
.text-white\/50  { color: rgba(255,255,255,0.5); }
.text-white\/60  { color: rgba(255,255,255,0.6); }
.text-white\/70  { color: rgba(255,255,255,0.7); }
.text-white\/80  { color: rgba(255,255,255,0.8); }
.text-white\/90  { color: rgba(255,255,255,0.9); }

/* Text transform */
.uppercase    { text-transform: uppercase; }
.lowercase    { text-transform: lowercase; }
.capitalize   { text-transform: capitalize; }

/* Letter spacing */
.tracking-tight    { letter-spacing: -0.025em; }
.tracking-tighter  { letter-spacing: -0.05em; }
.tracking-wide     { letter-spacing: 0.025em; }
.tracking-wider    { letter-spacing: 0.05em; }
.tracking-widest   { letter-spacing: 0.1em; }
.tracking-\[0\.1em\]  { letter-spacing: 0.1em; }
.tracking-\[0\.2em\]  { letter-spacing: 0.2em; }
.tracking-\[0\.3em\]  { letter-spacing: 0.3em; }
.tracking-\[0\.4em\]  { letter-spacing: 0.4em; }

/* Line height */
.leading-none      { line-height: 1; }
.leading-tight     { line-height: 1.25; }
.leading-snug      { line-height: 1.375; }
.leading-normal    { line-height: 1.5; }
.leading-relaxed   { line-height: 1.625; }
.leading-loose     { line-height: 2; }

/* Text align */
.text-left   { text-align: left; }
.text-center { text-align: center; }
.text-right  { text-align: right; }

/* Text decoration */
.underline     { text-decoration: underline; }
.no-underline  { text-decoration: none; }

/* ---- BACKGROUND COLOR UTILITIES ---- */
.bg-hhm-sacred-rose  { background-color: var(--hhm-sacred-rose); }
.bg-hhm-midnight     { background-color: var(--hhm-midnight); }
.bg-hhm-parchment    { background-color: var(--hhm-parchment); }
.bg-hhm-flesh-blush  { background-color: var(--hhm-flesh-blush); }
.bg-hhm-herbal-green { background-color: var(--hhm-herbal-green); }
.bg-hhm-spicy-lime   { background-color: var(--hhm-spicy-lime); }
.bg-hhm-moss         { background-color: var(--hhm-moss); }
.bg-white            { background-color: #fff; }
.bg-black            { background-color: #000; }
.bg-transparent      { background-color: transparent; }

/* Background opacity variants */
.bg-hhm-sacred-rose\/5   { background-color: rgba(216,115,124,0.05); }
.bg-hhm-sacred-rose\/10  { background-color: rgba(216,115,124,0.10); }
.bg-hhm-sacred-rose\/15  { background-color: rgba(216,115,124,0.15); }
.bg-hhm-sacred-rose\/20  { background-color: rgba(216,115,124,0.20); }
.bg-hhm-midnight\/5      { background-color: rgba(25,8,7,0.05); }
.bg-hhm-midnight\/10     { background-color: rgba(25,8,7,0.10); }
.bg-hhm-midnight\/20     { background-color: rgba(25,8,7,0.20); }
.bg-hhm-midnight\/40     { background-color: rgba(25,8,7,0.40); }
.bg-hhm-midnight\/60     { background-color: rgba(25,8,7,0.60); }
.bg-hhm-midnight\/80     { background-color: rgba(25,8,7,0.80); }
.bg-hhm-flesh-blush\/5   { background-color: rgba(249,200,206,0.05); }
.bg-hhm-flesh-blush\/10  { background-color: rgba(249,200,206,0.10); }
.bg-hhm-flesh-blush\/20  { background-color: rgba(249,200,206,0.20); }
.bg-hhm-flesh-blush\/25  { background-color: rgba(249,200,206,0.25); }
.bg-hhm-herbal-green\/5  { background-color: rgba(140,171,36,0.05); }
.bg-hhm-herbal-green\/10 { background-color: rgba(140,171,36,0.10); }
.bg-white\/5   { background-color: rgba(255,255,255,0.05); }
.bg-white\/10  { background-color: rgba(255,255,255,0.10); }
.bg-white\/20  { background-color: rgba(255,255,255,0.20); }
.bg-white\/40  { background-color: rgba(255,255,255,0.40); }
.bg-white\/60  { background-color: rgba(255,255,255,0.60); }
.bg-bg { background-color: var(--hhm-parchment); }

/* ---- BORDER UTILITIES ---- */
.border          { border: 1px solid; }
.border-0        { border: 0; }
.border-2        { border: 2px solid; }
.border-t        { border-top: 1px solid; }
.border-t-2      { border-top: 2px solid; }
.border-b        { border-bottom: 1px solid; }
.border-b-2      { border-bottom: 2px solid; }
.border-l        { border-left: 1px solid; }
.border-l-2      { border-left: 2px solid; }
.border-l-3      { border-left: 3px solid; }
.border-r        { border-right: 1px solid; }
.border-r-2      { border-right: 2px solid; }

.border-hhm-sacred-rose  { border-color: var(--hhm-sacred-rose); }
.border-hhm-midnight     { border-color: var(--hhm-midnight); }
.border-hhm-spicy-lime   { border-color: var(--hhm-spicy-lime); }
.border-hhm-herbal-green { border-color: var(--hhm-herbal-green); }
.border-hhm-moss         { border-color: var(--hhm-moss); }
.border-white            { border-color: #fff; }
.border-transparent      { border-color: transparent; }
.border-border-ritual    { border-color: var(--hhm-moss); }
.border-border-ritual\/5   { border-color: rgba(131,141,86,0.05); }
.border-border-ritual\/10  { border-color: rgba(131,141,86,0.10); }
.border-border-ritual\/15  { border-color: rgba(131,141,86,0.15); }
.border-border-ritual\/20  { border-color: rgba(131,141,86,0.20); }
.border-border-ritual\/30  { border-color: rgba(131,141,86,0.30); }
.border-hhm-sacred-rose\/10  { border-color: rgba(216,115,124,0.10); }
.border-hhm-sacred-rose\/20  { border-color: rgba(216,115,124,0.20); }
.border-hhm-sacred-rose\/30  { border-color: rgba(216,115,124,0.30); }
.border-white\/5   { border-color: rgba(255,255,255,0.05); }
.border-white\/10  { border-color: rgba(255,255,255,0.10); }
.border-white\/15  { border-color: rgba(255,255,255,0.15); }
.border-white\/20  { border-color: rgba(255,255,255,0.20); }
.border-hhm-midnight\/5   { border-color: rgba(25,8,7,0.05); }
.border-hhm-midnight\/10  { border-color: rgba(25,8,7,0.10); }
.border-hhm-midnight\/15  { border-color: rgba(25,8,7,0.15); }
.border-hhm-midnight\/20  { border-color: rgba(25,8,7,0.20); }
.border-dashed    { border-style: dashed; }
.border-solid     { border-style: solid; }

/* ---- BORDER RADIUS ---- */
.rounded    { border-radius: 0.25rem; }
.rounded-md { border-radius: 0.375rem; }
.rounded-lg { border-radius: 0.5rem; }
.rounded-xl { border-radius: 0.75rem; }
.rounded-2xl  { border-radius: 1rem; }
.rounded-3xl  { border-radius: 1.5rem; }
.rounded-full { border-radius: 9999px; }
.rounded-none { border-radius: 0; }
.rounded-\[2rem\]   { border-radius: 2rem; }
.rounded-\[2\.5rem\] { border-radius: 2.5rem; }
.rounded-\[3rem\]   { border-radius: 3rem; }
.rounded-\[18px\]   { border-radius: 18px; }
.rounded-\[24px\]   { border-radius: 24px; }

/* ---- LAYOUT ---- */

/* Display */
.block         { display: block; }
.inline-block  { display: inline-block; }
.inline-flex   { display: inline-flex; }
.flex          { display: flex; }
.grid          { display: grid; }
.hidden        { display: none; }
.contents      { display: contents; }

/* Flexbox */
.flex-col       { flex-direction: column; }
.flex-row       { flex-direction: row; }
.flex-wrap      { flex-wrap: wrap; }
.flex-nowrap    { flex-wrap: nowrap; }
.flex-1         { flex: 1 1 0%; }
.flex-none      { flex: none; }
.flex-shrink-0  { flex-shrink: 0; }
.flex-grow      { flex-grow: 1; }

.items-start    { align-items: flex-start; }
.items-center   { align-items: center; }
.items-end      { align-items: flex-end; }
.items-baseline { align-items: baseline; }
.items-stretch  { align-items: stretch; }

.justify-start    { justify-content: flex-start; }
.justify-center   { justify-content: center; }
.justify-end      { justify-content: flex-end; }
.justify-between  { justify-content: space-between; }
.justify-around   { justify-content: space-around; }

.self-start    { align-self: flex-start; }
.self-center   { align-self: center; }
.self-end      { align-self: flex-end; }
.self-stretch  { align-self: stretch; }

/* Gap */
.gap-0   { gap: 0; }
.gap-1   { gap: 0.25rem; }
.gap-2   { gap: 0.5rem; }
.gap-3   { gap: 0.75rem; }
.gap-4   { gap: 1rem; }
.gap-5   { gap: 1.25rem; }
.gap-6   { gap: 1.5rem; }
.gap-8   { gap: 2rem; }
.gap-10  { gap: 2.5rem; }
.gap-12  { gap: 3rem; }
.gap-16  { gap: 4rem; }
.gap-x-4  { column-gap: 1rem; }
.gap-x-6  { column-gap: 1.5rem; }
.gap-x-8  { column-gap: 2rem; }
.gap-y-2  { row-gap: 0.5rem; }
.gap-y-4  { row-gap: 1rem; }
.gap-y-6  { row-gap: 1.5rem; }

/* Grid */
.grid-cols-1  { grid-template-columns: repeat(1, minmax(0,1fr)); }
.grid-cols-2  { grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid-cols-3  { grid-template-columns: repeat(3, minmax(0,1fr)); }
.grid-cols-4  { grid-template-columns: repeat(4, minmax(0,1fr)); }
.col-span-1   { grid-column: span 1 / span 1; }
.col-span-2   { grid-column: span 2 / span 2; }
.col-span-3   { grid-column: span 3 / span 3; }

/* ---- SPACING ---- */

/* Padding */
.p-0  { padding: 0; }
.p-1  { padding: 0.25rem; }
.p-2  { padding: 0.5rem; }
.p-3  { padding: 0.75rem; }
.p-4  { padding: 1rem; }
.p-5  { padding: 1.25rem; }
.p-6  { padding: 1.5rem; }
.p-8  { padding: 2rem; }
.p-10 { padding: 2.5rem; }
.p-12 { padding: 3rem; }
.p-16 { padding: 4rem; }
.px-3  { padding-left: 0.75rem; padding-right: 0.75rem; }
.px-4  { padding-left: 1rem;    padding-right: 1rem; }
.px-5  { padding-left: 1.25rem; padding-right: 1.25rem; }
.px-6  { padding-left: 1.5rem;  padding-right: 1.5rem; }
.px-8  { padding-left: 2rem;    padding-right: 2rem; }
.px-10 { padding-left: 2.5rem;  padding-right: 2.5rem; }
.px-12 { padding-left: 3rem;    padding-right: 3rem; }
.py-1  { padding-top: 0.25rem;  padding-bottom: 0.25rem; }
.py-2  { padding-top: 0.5rem;   padding-bottom: 0.5rem; }
.py-3  { padding-top: 0.75rem;  padding-bottom: 0.75rem; }
.py-4  { padding-top: 1rem;     padding-bottom: 1rem; }
.py-5  { padding-top: 1.25rem;  padding-bottom: 1.25rem; }
.py-6  { padding-top: 1.5rem;   padding-bottom: 1.5rem; }
.py-8  { padding-top: 2rem;     padding-bottom: 2rem; }
.py-10 { padding-top: 2.5rem;   padding-bottom: 2.5rem; }
.py-12 { padding-top: 3rem;     padding-bottom: 3rem; }
.py-16 { padding-top: 4rem;     padding-bottom: 4rem; }
.py-24 { padding-top: 6rem;     padding-bottom: 6rem; }
.py-32 { padding-top: 8rem;     padding-bottom: 8rem; }
.pt-2  { padding-top: 0.5rem; }
.pt-4  { padding-top: 1rem; }
.pt-6  { padding-top: 1.5rem; }
.pt-8  { padding-top: 2rem; }
.pb-2  { padding-bottom: 0.5rem; }
.pb-4  { padding-bottom: 1rem; }
.pb-6  { padding-bottom: 1.5rem; }
.pb-8  { padding-bottom: 2rem; }
.pl-4  { padding-left: 1rem; }
.pl-6  { padding-left: 1.5rem; }
.pr-4  { padding-right: 1rem; }

/* Margin */
.m-0    { margin: 0; }
.mx-auto { margin-left: auto; margin-right: auto; }
.mt-1   { margin-top: 0.25rem; }
.mt-2   { margin-top: 0.5rem; }
.mt-4   { margin-top: 1rem; }
.mt-6   { margin-top: 1.5rem; }
.mt-8   { margin-top: 2rem; }
.mt-auto { margin-top: auto; }
.mb-2   { margin-bottom: 0.5rem; }
.mb-4   { margin-bottom: 1rem; }
.mb-6   { margin-bottom: 1.5rem; }
.mb-8   { margin-bottom: 2rem; }
.ml-auto { margin-left: auto; }
.mr-2   { margin-right: 0.5rem; }
.-mx-6  { margin-left: -1.5rem; margin-right: -1.5rem; }

/* Space between children */
.space-y-1 > * + * { margin-top: 0.25rem; }
.space-y-2 > * + * { margin-top: 0.5rem; }
.space-y-3 > * + * { margin-top: 0.75rem; }
.space-y-4 > * + * { margin-top: 1rem; }
.space-y-5 > * + * { margin-top: 1.25rem; }
.space-y-6 > * + * { margin-top: 1.5rem; }
.space-y-8 > * + * { margin-top: 2rem; }
.space-y-10 > * + * { margin-top: 2.5rem; }
.space-y-12 > * + * { margin-top: 3rem; }
.space-x-2 > * + * { margin-left: 0.5rem; }
.space-x-4 > * + * { margin-left: 1rem; }

/* ---- SIZING ---- */
.w-full   { width: 100%; }
.w-auto   { width: auto; }
.w-screen { width: 100vw; }
.w-4      { width: 1rem; }
.w-5      { width: 1.25rem; }
.w-6      { width: 1.5rem; }
.w-8      { width: 2rem; }
.w-10     { width: 2.5rem; }
.w-12     { width: 3rem; }
.w-14     { width: 3.5rem; }
.w-16     { width: 4rem; }
.w-20     { width: 5rem; }
.w-24     { width: 6rem; }
.w-32     { width: 8rem; }
.w-48     { width: 12rem; }
.w-64     { width: 16rem; }
.max-w-sm   { max-width: 24rem; }
.max-w-md   { max-width: 28rem; }
.max-w-lg   { max-width: 32rem; }
.max-w-xl   { max-width: 36rem; }
.max-w-2xl  { max-width: 42rem; }
.max-w-3xl  { max-width: 48rem; }
.max-w-4xl  { max-width: 56rem; }
.max-w-5xl  { max-width: 64rem; }
.max-w-6xl  { max-width: 72rem; }
.max-w-7xl  { max-width: 80rem; }
.max-w-none { max-width: none; }
.max-w-full { max-width: 100%; }
.max-w-\[1440px\] { max-width: 1440px; }
.h-full    { height: 100%; }
.h-screen  { height: 100vh; }
.h-auto    { height: auto; }
.h-4       { height: 1rem; }
.h-5       { height: 1.25rem; }
.h-6       { height: 1.5rem; }
.h-8       { height: 2rem; }
.h-10      { height: 2.5rem; }
.h-11      { height: 2.75rem; }
.h-12      { height: 3rem; }
.h-14      { height: 3.5rem; }
.h-16      { height: 4rem; }
.h-20      { height: 5rem; }
.min-h-screen { min-height: 100vh; }
.min-h-0    { min-height: 0; }
.min-w-0    { min-width: 0; }

/* Aspect ratio */
.aspect-square { aspect-ratio: 1 / 1; }
.aspect-video  { aspect-ratio: 16 / 9; }
.aspect-\[4\/5\] { aspect-ratio: 4 / 5; }
.aspect-\[3\/4\] { aspect-ratio: 3 / 4; }
.aspect-\[4\/3\] { aspect-ratio: 4 / 3; }

/* ---- POSITION ---- */
.static   { position: static; }
.relative { position: relative; }
.absolute { position: absolute; }
.fixed    { position: fixed; }
.sticky   { position: sticky; }

.inset-0    { top: 0; right: 0; bottom: 0; left: 0; }
.inset-x-0  { left: 0; right: 0; }
.top-0      { top: 0; }
.right-0    { right: 0; }
.bottom-0   { bottom: 0; }
.left-0     { left: 0; }
.top-4      { top: 1rem; }
.right-4    { right: 1rem; }
.bottom-4   { bottom: 1rem; }
.left-4     { left: 1rem; }
.top-6      { top: 1.5rem; }
.right-6    { right: 1.5rem; }
.-translate-x-1\/2 { transform: translateX(-50%); }
.-translate-y-1\/2 { transform: translateY(-50%); }

/* Z-index */
.z-0   { z-index: 0; }
.z-10  { z-index: 10; }
.z-20  { z-index: 20; }
.z-30  { z-index: 30; }
.z-40  { z-index: 40; }
.z-50  { z-index: 50; }
.z-100 { z-index: 100; }

/* ---- OVERFLOW ---- */
.overflow-hidden  { overflow: hidden; }
.overflow-auto    { overflow: auto; }
.overflow-x-auto  { overflow-x: auto; }
.overflow-y-auto  { overflow-y: auto; }
.overflow-clip    { overflow: clip; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---- VISIBILITY ---- */
.visible   { visibility: visible; }
.invisible { visibility: hidden; }
.opacity-0  { opacity: 0; }
.opacity-40 { opacity: 0.4; }
.opacity-50 { opacity: 0.5; }
.opacity-60 { opacity: 0.6; }
.opacity-70 { opacity: 0.7; }
.opacity-75 { opacity: 0.75; }
.opacity-80 { opacity: 0.8; }
.opacity-90 { opacity: 0.9; }
.opacity-100 { opacity: 1; }

/* ---- OBJECT FIT ---- */
.object-cover   { object-fit: cover; }
.object-contain { object-fit: contain; }
.object-center  { object-position: center; }

/* ---- CURSOR ---- */
.cursor-pointer  { cursor: pointer; }
.cursor-default  { cursor: default; }
.select-none     { user-select: none; }

/* ---- SHADOW ---- */
.shadow-sm      { box-shadow: 0 1px 2px rgba(0,0,0,0.05); }
.shadow         { box-shadow: 0 1px 3px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.06); }
.shadow-md      { box-shadow: 0 4px 6px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.06); }
.shadow-lg      { box-shadow: 0 10px 15px rgba(0,0,0,0.1), 0 4px 6px rgba(0,0,0,0.05); }
.shadow-xl      { box-shadow: 0 20px 25px rgba(0,0,0,0.1), 0 10px 10px rgba(0,0,0,0.04); }
.shadow-2xl     { box-shadow: 0 25px 50px rgba(0,0,0,0.25); }
.shadow-ritual  { box-shadow: var(--shadow-ritual); }
.shadow-ritual-lg { box-shadow: var(--shadow-ritual-lg); }
.shadow-none    { box-shadow: none; }

/* ---- TRANSITIONS & TRANSFORMS ---- */
.transition      { transition: all var(--transition-primary); }
.transition-all  { transition: all var(--transition-primary); }
.transition-colors { transition: color var(--transition-primary), background-color var(--transition-primary), border-color var(--transition-primary); }
.transition-transform { transition: transform var(--transition-primary); }
.transition-opacity { transition: opacity var(--transition-primary); }
.duration-300   { transition-duration: 300ms; }
.duration-500   { transition-duration: 500ms; }
.duration-700   { transition-duration: 700ms; }

.scale-100 { transform: scale(1); }
.scale-105 { transform: scale(1.05); }
.scale-110 { transform: scale(1.10); }
.translate-x-1 { transform: translateX(0.25rem); }
.translate-x-2 { transform: translateX(0.5rem); }
.rotate-180    { transform: rotate(180deg); }
.rotate-90     { transform: rotate(90deg); }

/* Hover transforms */
.hover\:scale-\[1\.03\]:hover { transform: scale(1.03); }
.hover\:-translate-y-1:hover  { transform: translateY(-0.25rem); }
.hover\:translate-x-1:hover   { transform: translateX(0.25rem); }
.hover\:translate-x-2:hover   { transform: translateX(0.5rem); }

/* Group hover transforms */
.group:hover .group-hover\:translate-x-1 { transform: translateX(0.25rem); }
.group:hover .group-hover\:translate-x-2 { transform: translateX(0.5rem); }
.group:hover .group-hover\:scale-105     { transform: scale(1.05); }
.group:hover .group-hover\:scale-110     { transform: scale(1.10); }

/* ---- HOVER STATE UTILITIES ---- */
.hover\:bg-hhm-sacred-rose:hover  { background-color: var(--hhm-sacred-rose); }
.hover\:bg-hhm-midnight:hover     { background-color: var(--hhm-midnight); }
.hover\:bg-white:hover            { background-color: #fff; }
.hover\:text-hhm-sacred-rose:hover { color: var(--hhm-sacred-rose); }
.hover\:text-hhm-midnight:hover    { color: var(--hhm-midnight); }
.hover\:text-white:hover           { color: #fff; }
.hover\:border-hhm-sacred-rose:hover { border-color: var(--hhm-sacred-rose); }
.hover\:underline:hover { text-decoration: underline; }
.hover\:shadow-xl:hover { box-shadow: 0 20px 25px rgba(0,0,0,0.1), 0 10px 10px rgba(0,0,0,0.04); }
.hover\:brightness-110:hover { filter: brightness(1.10); }
.hover\:opacity-70:hover { opacity: 0.7; }

/* Active states */
.active\:scale-\[0\.98\]:active { transform: scale(0.98); }
.active\:scale-\[0\.97\]:active { transform: scale(0.97); }

/* Focus */
.focus-visible\:outline-none:focus-visible { outline: none; }
.focus-visible\:ring-2:focus-visible { box-shadow: 0 0 0 2px var(--hhm-sacred-rose); }

/* ---- BACKDROP ---- */
.backdrop-blur-sm  { backdrop-filter: blur(4px); }
.backdrop-blur-md  { backdrop-filter: blur(12px); }
.backdrop-blur-lg  { backdrop-filter: blur(16px); }
.backdrop-blur-xl  { backdrop-filter: blur(24px); }

/* ---- GRADIENTS ---- */
.bg-gradient-to-b  { background-image: linear-gradient(to bottom, var(--tw-gradient-stops)); }
.bg-gradient-to-t  { background-image: linear-gradient(to top, var(--tw-gradient-stops)); }
.bg-gradient-to-r  { background-image: linear-gradient(to right, var(--tw-gradient-stops)); }
.bg-gradient-to-br { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); }

/* ============================================================
   BENTO GRID SYSTEM
   ============================================================ */
.bento-border {
  border: 2px solid var(--hhm-moss);
}

.bento-grid {
  display: grid;
  border-top: 2px solid var(--hhm-moss);
}

.bento-card {
  padding: 2rem;
  border-right: 2px solid var(--hhm-moss);
}
.bento-card:last-child { border-right: 0; }

/* ============================================================
   URGENCY TICKER
   ============================================================ */
.urgency-ticker {
  background-color: var(--hhm-spicy-lime);
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 900;
  padding: 0.625rem 0;
  text-align: center;
  border-bottom: 2px solid var(--hhm-moss);
  overflow: hidden;
  white-space: nowrap;
}

@keyframes scroll-ticker {
  0%   { transform: translate3d(0, 0, 0); }
  100% { transform: translate3d(-50%, 0, 0); }
}
.animate-scroll-ticker {
  display: inline-flex;
  gap: 3rem;
  white-space: nowrap;
  animation: scroll-ticker 52.5s linear infinite;
  width: max-content;
}

/* ============================================================
   CONTAINER
   ============================================================ */
.hhm-container {
  width: 100%;
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

@media (min-width: 768px) {
  .hhm-container { padding-left: 3rem; padding-right: 3rem; }
}

/* ============================================================
   BUTTONS
   ============================================================ */
.hhm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  font-family: var(--font-heading);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height: 1;
  white-space: nowrap;
  transition: background-color var(--transition-primary), color var(--transition-primary), transform var(--transition-primary);
  cursor: pointer;
  border: none;
}
.hhm-btn:active { transform: scale(0.98); }

.hhm-btn--primary {
  background-color: var(--hhm-sacred-rose);
  color: #fff;
  padding: 1.25rem 2rem;
  border-radius: 9999px;
}
.hhm-btn--primary:hover { background-color: var(--hhm-midnight); }

.hhm-btn--dark {
  background-color: var(--hhm-midnight);
  color: #fff;
  padding: 1.25rem 2rem;
  border-radius: 9999px;
}
.hhm-btn--dark:hover { background-color: var(--hhm-sacred-rose); }

.hhm-btn--outline {
  background-color: transparent;
  color: var(--hhm-midnight);
  border: 2px solid var(--hhm-midnight);
  padding: 1.125rem 2rem;
  border-radius: 9999px;
}
.hhm-btn--outline:hover {
  background-color: var(--hhm-midnight);
  color: #fff;
}

/* Add to cart split button */
.hhm-btn--atc {
  width: 100%;
  background-color: var(--hhm-spicy-lime);
  color: var(--hhm-midnight);
  height: 3.85rem;
  padding: 0 2.1rem;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--font-cooper-medium);
  font-weight: 500;
  font-size: 1.125rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  transition: filter var(--transition-primary);
  cursor: pointer;
  border: none;
}
.hhm-btn--atc:hover { filter: brightness(1.05); }
.hhm-btn--atc:active { transform: scale(0.98); }
.hhm-btn--atc__divider {
  width: 1px;
  height: 1.25rem;
  background-color: rgba(25,8,7,0.2);
}
.hhm-btn--atc__price {
  font-family: var(--font-diplomata);
  font-size: 1.125rem;
  letter-spacing: -0.01em;
}

/* ============================================================
   PRODUCT HERO SECTION
   ============================================================ */
.hhm-product-hero {
  display: grid;
  border-bottom: 2px solid var(--hhm-moss);
}

@media (min-width: 1024px) {
  .hhm-product-hero {
    grid-template-columns: 1.2fr 1fr;
  }
}

.hhm-product-hero__left {
  position: relative;
  padding: 1.5rem;
  background-color: #fff;
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}

@media (min-width: 768px) {
  .hhm-product-hero__left {
    padding: 2.5rem;
    border-right: 2px solid var(--hhm-moss);
  }
}

.hhm-product-hero__right {
  position: relative;
  overflow: hidden;
  background: linear-gradient(to bottom right, var(--hhm-flesh-blush), var(--hhm-parchment));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 2rem;
  min-width: 0;
}

@media (min-width: 768px) {
  .hhm-product-hero__right { padding: 3rem; padding-top: 1rem; }
}

/* Badges */
.hhm-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1.125rem;
  border: 1px solid transparent;
  border-radius: 9999px;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  line-height: 1;
}
.hhm-badge--dark     { background-color: var(--hhm-midnight); border-color: var(--hhm-midnight); color: #fff; }
.hhm-badge--outline  { border-color: var(--hhm-herbal-green); color: var(--hhm-herbal-green); }
.hhm-badge--rose     { background-color: var(--hhm-sacred-rose); border-color: var(--hhm-sacred-rose); color: #fff; }

/* Variant selector */
.hhm-variant-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
}

.hhm-variant-btn {
  padding: 1rem;
  border: 2px solid rgba(131,141,86,0.1);
  background-color: #fff;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  border-radius: 0.5rem;
  cursor: pointer;
  transition: border-color var(--transition-primary), background-color var(--transition-primary);
  position: relative;
  overflow: hidden;
}

.hhm-variant-btn--reserve {
  padding-top: 1.5rem;
}

.hhm-variant-btn.is-selected {
  border-color: var(--hhm-sacred-rose);
  background-color: var(--hhm-parchment);
  box-shadow: 0 0 0 1px var(--hhm-sacred-rose);
}

.hhm-variant-btn.is-soldout {
  opacity: 0.45;
  cursor: default;
  transition: opacity var(--transition-primary), border-color var(--transition-primary), background-color var(--transition-primary);
}
.hhm-variant-btn.is-soldout:hover {
  opacity: 1;
}
.hhm-variant-btn.is-soldout::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top right,
    transparent calc(50% - 0.5px),
    rgba(25,8,7,0.18) calc(50%),
    transparent calc(50% + 0.5px)
  );
  pointer-events: none;
}

.hhm-variant-btn__reserve-banner {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background-color: var(--hhm-sacred-rose);
  color: #fff;
  font-family: var(--font-mono);
  font-size: 7px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  padding: 0.125rem 0;
  text-align: center;
}

.hhm-variant-btn__size {
  font-family: var(--font-diplomata);
  font-size: 1.5rem;
  text-transform: uppercase;
  line-height: 1;
}

.hhm-variant-btn__nickname {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 0.875rem;
  color: rgba(25,8,7,0.5);
  line-height: 1.3;
  margin-top: 0.125rem;
}

.hhm-variant-btn__name {
  font-family: var(--font-mono);
  font-size: 0.5625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--hhm-midnight);
}

.hhm-variant-btn__price {
  font-family: var(--font-diplomata);
  font-size: 1rem;
  margin-top: 0.5rem;
}

/* Quantity stepper */
.hhm-qty {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: #fff;
  border: 1px solid rgba(131,141,86,0.1);
  border-radius: 0.5rem;
  padding: 0.25rem;
  box-shadow: var(--shadow-ritual);
  min-width: 8rem;
}

.hhm-qty__btn {
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.375rem;
  background: none;
  border: none;
  cursor: pointer;
  color: rgba(25,8,7,0.8);
  font-size: 1.25rem;
  line-height: 1;
  transition: background-color var(--transition-primary), color var(--transition-primary);
}
.hhm-qty__btn:hover { background-color: var(--hhm-sacred-rose); color: #fff; }

.hhm-qty__count {
  font-family: var(--font-diplomata);
  font-size: 1.125rem;
  color: var(--hhm-midnight);
  flex: 1;
  text-align: center;
}

/* Trust icons strip */
.hhm-trust-icons {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  max-width: 26rem;
}

.hhm-trust-icon {
  flex: 0 0 50%;
  width: 50%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.75rem;
  padding: 1.75rem 1.25rem;
}

/* table-grid dividers */
.hhm-trust-icon:nth-child(1),
.hhm-trust-icon:nth-child(2) { border-bottom: 1px solid rgba(25,8,7,0.08); }
.hhm-trust-icon:nth-child(odd) { border-right: 1px solid rgba(25,8,7,0.08); }

.hhm-trust-icon img {
  width: 5.2rem;
  height: 5.2rem;
  object-fit: contain;
}

.hhm-trust-icon__label {
  font-family: var(--font-cooper-light);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 300;
  color: rgba(25,8,7,0.55);
  line-height: 1;
}

@media (max-width: 767px) {
  .hhm-trust-icons { max-width: none !important; }
}

@media (max-width: 767px) {
  .hhm-benefit-tags {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
  }
  .hhm-benefit-tag {
    justify-content: center !important;
  }
}

/* ============================================================
   STICKY ADD TO CART
   ============================================================ */
.hhm-sticky-atc {
  position: fixed;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%) translateY(calc(100% + 2rem));
  z-index: 60;
  width: 92%;
  max-width: 42.5rem;
  background-color: #000;
  color: #fff;
  padding: 0.375rem;
  border-radius: 1.25rem;
  box-shadow: 0 25px 50px rgba(0,0,0,0.25);
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1px solid rgba(255,255,255,0.1);
  transition: transform var(--transition-slow);
}

.hhm-sticky-atc.is-visible {
  transform: translateX(-50%) translateY(0);
}

.hhm-sticky-atc__info {
  flex: 1;
  min-width: 0;
  padding-left: 1.25rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.25rem;
}

.hhm-sticky-atc__product-name {
  font-family: var(--font-mono);
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-weight: 900;
  color: rgba(255,255,255,0.45);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 0;
}

.hhm-sticky-atc__product-name--solo {
  font-family: var(--font-body);
  font-size: 0.825rem;
  text-transform: none;
  letter-spacing: normal;
  font-weight: 500;
  color: #fff;
}

.hhm-sticky-atc__meta {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.825rem;
  font-family: var(--font-body);
  color: #fff;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
}

.hhm-sticky-atc__sep {
  color: var(--hhm-sacred-rose);
  opacity: 0.7;
  font-style: normal;
}

.hhm-sticky-atc__size-badge {
  font-family: var(--font-mono);
  font-size: 0.675rem;
  color: rgba(255,255,255,0.8);
  background: rgba(255,255,255,0.14);
  padding: 0.125rem 0.4rem;
  border-radius: 0.25rem;
  letter-spacing: 0.05em;
  flex-shrink: 0;
}

.hhm-sticky-atc__qty-badge {
  font-family: var(--font-mono);
  font-size: 0.675rem;
  color: var(--hhm-sacred-rose);
  font-weight: 700;
  background: rgba(216,115,124,0.15);
  border: 1px solid rgba(216,115,124,0.25);
  padding: 0.125rem 0.4rem;
  border-radius: 0.25rem;
  flex-shrink: 0;
}

.hhm-sticky-atc__paren-qty {
  font-family: var(--font-mono);
  font-size: 0.825rem;
  color: #fff;
  flex-shrink: 0;
}

/* Prevent full-width expansion inside sticky bar */
.hhm-sticky-atc .hhm-btn--atc {
  width: auto;
  flex-shrink: 0;
  gap: 1.25rem;
  padding: 0 1.75rem;
}

@media (max-width: 767px) {
  .hhm-sticky-atc__info {
    padding-left: 0.625rem;
  }
  .hhm-sticky-atc .hhm-btn--atc {
    width: 3.5rem;
    height: 3.5rem;
    padding: 0;
    border-radius: 0.875rem;
    justify-content: center;
    gap: 0;
  }
  .hhm-sticky-atc .hhm-btn--atc span,
  .hhm-sticky-atc .hhm-btn--atc__divider {
    display: none;
  }
  .hhm-sticky-atc .hhm-btn--atc::after {
    content: '+';
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-size: 1.75rem;
    line-height: 1;
    color: #fff;
  }
}

/* ============================================================
   CART DRAWER
   ============================================================ */
.hhm-cart-overlay {
  position: fixed;
  inset: 0;
  background-color: rgba(25,8,7,0.6);
  backdrop-filter: blur(4px);
  z-index: 110;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--transition-slow), visibility var(--transition-slow);
}

.hhm-cart-overlay.is-open {
  opacity: 1;
  visibility: visible;
}

.hhm-cart-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: 28rem;
  background-color: #fff;
  z-index: 111;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform var(--transition-slow);
  box-shadow: -20px 0 40px rgba(0,0,0,0.1);
}

.hhm-cart-drawer.is-open {
  transform: translateX(0);
}

.hhm-cart-drawer__header {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2rem;
  background-color: #fff;
  border-bottom: 1px solid rgba(131,141,86,0.1);
  flex-shrink: 0;
}

.hhm-cart-drawer__title {
  font-family: var(--font-heading);
  font-size: 1.875rem;
  color: var(--hhm-midnight);
  line-height: 1;
}

.hhm-cart-drawer__close {
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background-color: rgba(0,0,0,0.08);
  border: none;
  cursor: pointer;
  font-size: 1.25rem;
  line-height: 1;
  transition: background-color var(--transition-primary);
}
.hhm-cart-drawer__close:hover { background-color: rgba(0,0,0,0.18); }

.hhm-cart-drawer__body {
  flex: 1;
  padding: 2rem;
}

.hhm-cart-drawer__footer {
  padding: 1.5rem 2rem;
  border-top: 1px solid rgba(131,141,86,0.1);
  flex-shrink: 0;
}

/* Cart note (special instructions) */
.hhm-cart-note {
  margin-bottom: 1rem;
  border-top: 1px solid rgba(131,141,86,0.12);
  padding-top: 1rem;
}
.hhm-cart-note__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  list-style: none;
  padding: 0;
  gap: 0.75rem;
}
.hhm-cart-note__toggle::-webkit-details-marker { display: none; }
.hhm-cart-note__label {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 900;
  color: var(--hhm-midnight);
  line-height: 1.2;
}
.hhm-cart-note__chevron {
  font-family: var(--font-mono);
  font-size: 1.25rem;
  font-weight: 900;
  color: rgba(25,8,7,0.35);
  flex-shrink: 0;
  line-height: 1;
  user-select: none;
}
.hhm-cart-note__body { padding-top: 0.75rem; }
.hhm-cart-note__input {
  width: 100%;
  min-height: 5rem;
  border: 1.5px solid rgba(131,141,86,0.25);
  border-radius: 0.75rem;
  padding: 0.875rem 1rem;
  font-family: var(--font-body);
  font-size: 0.9375rem;
  color: var(--hhm-midnight);
  background: var(--hhm-parchment);
  resize: vertical;
  box-sizing: border-box;
}
.hhm-cart-note__input::placeholder { color: rgba(25,8,7,0.3); }
.hhm-cart-note__input:focus {
  outline: 2px solid var(--hhm-moss);
  outline-offset: 2px;
  border-color: rgba(131,141,86,0.5);
}

/* Ship to multiple addresses button */
.hhm-cart-multi-ship {
  display: block;
  width: 100%;
  padding: 1rem 1.5rem;
  background: none;
  border: 2px solid var(--hhm-midnight);
  border-radius: 0.875rem;
  color: var(--hhm-midnight);
  font-family: var(--font-cooper-medium);
  font-size: 0.875rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  box-sizing: border-box;
  transition: background 0.15s ease, color 0.15s ease;
}
.hhm-cart-multi-ship:hover { background: var(--hhm-midnight); color: #fff; }

.hhm-cart-drawer__subtotal-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 1rem;
}

.hhm-cart-drawer__subtotal-label {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 900;
  opacity: 0.4;
}

.hhm-cart-drawer__subtotal-price {
  font-family: var(--font-diplomata);
  font-size: 1.125rem;
  color: var(--hhm-midnight);
}

/* Cart item */
.hhm-cart-item {
  display: flex;
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.hhm-cart-item__image {
  width: 3.9rem;
  height: 3.9rem;
  border-radius: 0.75rem;
  overflow: hidden;
  background-color: var(--hhm-parchment);
  flex-shrink: 0;
}
.hhm-cart-item__image img { width: 100%; height: 100%; object-fit: contain; }

.hhm-cart-item__name {
  font-family: var(--font-cooper-medium);
  font-size: 0.84375rem;
  color: var(--hhm-midnight);
  line-height: 1.3;
}

.hhm-cart-item__size {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 900;
  color: rgba(25,8,7,0.4);
  margin-top: 0.25rem;
}

.hhm-cart-item__price {
  font-family: var(--font-diplomata);
  font-size: 0.875rem;
  color: var(--hhm-midnight);
}

.hhm-cart-item__remove {
  font-family: var(--font-mono);
  font-size: 0.5625rem;
  text-transform: uppercase;
  font-weight: 900;
  letter-spacing: 0.1em;
  color: rgba(25,8,7,0.75);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.375rem 0.5rem;
  transition: color var(--transition-primary);
}
.hhm-cart-item__remove:hover { color: var(--hhm-sacred-rose); }

/* Quantity stepper, 30% smaller in the cart drawer */
.hhm-cart-item .hhm-qty {
  min-width: 4.9rem !important;
  padding: 0.175rem !important;
}
.hhm-cart-item .hhm-qty__btn {
  width: 1.75rem !important;
  height: 1.75rem !important;
  border-radius: 0.2625rem !important;
  font-size: 0.875rem !important;
}
.hhm-cart-item .hhm-qty__count {
  font-size: 0.7875rem !important;
}

/* ============================================================
   HEADER
   ============================================================ */
.hhm-header {
  position: sticky;
  top: 0;
  width: 100%;
  z-index: 100;
  background-color: rgba(250,249,245,0.95);
  backdrop-filter: blur(12px);
  box-shadow: inset 0 -2px 0 0 rgba(131,141,86,0.1);
}

body.hhm-nav-open .hhm-header {
  background-color: var(--hhm-parchment);
  backdrop-filter: none;
}

body.hhm-nav-open .hhm-header__cart-btn {
  display: none;
}

.hhm-header__inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  height: 5.625rem;
  padding: 0 3rem;
  max-width: 1440px;
  margin: 0 auto;
}

@media (max-width: 767px) {
  .hhm-header__inner {
    grid-template-columns: auto 1fr auto;
    padding: 0 1.5rem;
    height: 4rem;
  }
  .hhm-header__logo img { height: 1.8rem !important; }
}

.hhm-header__logo {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 3rem;
}
.hhm-header__logo img { height: 2.625rem; width: auto; object-fit: contain; }

.hhm-header__nav {
  display: flex;
  gap: 3rem;
  align-items: center;
}

.hhm-header__nav-link {
  color: rgba(25,8,7,0.8);
  text-decoration: none;
  transition: color var(--transition-primary);
  padding: 0.25rem 0.25rem;
}
.hhm-header__nav-link:hover,
.hhm-header__nav-link.is-active { color: var(--hhm-sacred-rose); }

.hhm-header__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.5rem;
}

.hhm-header__cart-btn {
  display: flex;
  align-items: center;
  position: relative;
  color: rgba(25,8,7,0.8);
  background: none;
  border: none;
  cursor: pointer;
  transition: color var(--transition-primary);
  padding: 0.375rem 0;
  border-left: 1px solid rgba(25,8,7,0.1);
  padding-left: 1.5rem;
}
.hhm-header__cart-btn:hover { color: var(--hhm-sacred-rose); }

.hhm-header__cart-count {
  display: none;
  position: absolute;
  top: -0.375rem;
  right: -0.5rem;
  min-width: 1.125rem;
  height: 1.125rem;
  padding: 0 0.3125rem;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background: var(--hhm-sacred-rose);
  color: #fff;
  font-family: var(--font-mono);
  font-size: 0.625rem;
  font-weight: 900;
  line-height: 1;
  transition: transform var(--transition-primary);
}
.hhm-header__cart-count.has-items { display: flex; }

/* Mobile menu button */
.hhm-header__menu-btn {
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--hhm-midnight);
}
@media (min-width: 768px) { .hhm-header__menu-btn { display: none; } }

.hhm-header__menu-btn svg line {
  transform-box: fill-box;
  transform-origin: center;
  transition: transform var(--transition-primary), opacity var(--transition-primary);
}
.hhm-header__menu-btn[aria-expanded="true"] svg line:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.hhm-header__menu-btn[aria-expanded="true"] svg line:nth-child(2) { opacity: 0; }
.hhm-header__menu-btn[aria-expanded="true"] svg line:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* Mobile nav overlay */
.hhm-mobile-nav {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 4px;
  right: 4px;
  max-width: 1440px;
  margin: 0 auto;
  z-index: 90;
  background-color: var(--hhm-parchment);
  padding-top: 5.625rem;
  border-left: 2px solid var(--hhm-moss);
  border-right: 2px solid var(--hhm-moss);
  transform: translateY(-100%);
  transition: transform var(--transition-slow);
  display: flex;
  flex-direction: column;
}
.hhm-mobile-nav.is-open { transform: translateY(0); }

@media (max-width: 767px) {
  /* Keep the ticker bar above the mobile nav so it masks the panel
     instead of the panel showing through where the ticker used to be. */
  .urgency-ticker {
    position: relative;
    z-index: 91;
  }
}

.hhm-mobile-nav__body {
  padding: 2rem;
  flex: 1;
  overflow-y: auto;
}

.hhm-mobile-nav__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--font-cooper-medium);
  font-size: 1.875rem;
  color: rgba(25,8,7,0.9);
  text-decoration: none;
  padding: 1rem 0.25rem;
  border-bottom: 2px solid rgba(131,141,86,0.1);
  transition: color var(--transition-primary);
}
.hhm-mobile-nav__link:hover { color: var(--hhm-sacred-rose); }

/* ============================================================
   FOOTER
   ============================================================ */
.hhm-footer {
  display: grid;
  border-top: 2px solid var(--hhm-moss);
  background-color: var(--hhm-midnight);
  color: #fff;
}

@media (min-width: 768px) {
  .hhm-footer { grid-template-columns: 1fr 1fr; }
}

.hhm-footer__left {
  padding: 3rem;
  border-bottom: 2px solid rgba(255,255,255,0.1);
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .hhm-footer__left {
    border-bottom: 0;
    border-right: 2px solid rgba(255,255,255,0.1);
  }
}

.hhm-footer__logo img {
  height: 2rem;
  width: auto;
  object-fit: contain;
  filter: invert(1) brightness(2);
}

.hhm-footer__tagline {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  opacity: 0.6;
  line-height: 2;
  max-width: 22rem;
}

.hhm-footer__right {
  padding: 3rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.hhm-footer__links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  font-family: var(--font-mono);
  font-size: 0.625rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
}

.hhm-footer__link-group { display: flex; flex-direction: column; gap: 0.5rem; }

.hhm-footer__link-heading {
  opacity: 0.7;
  font-weight: 900;
  margin-bottom: 0.5rem;
}

.hhm-footer__link {
  color: #fff;
  text-decoration: none;
  opacity: 0.8;
  transition: color var(--transition-primary);
}
.hhm-footer__link:hover { color: var(--hhm-sacred-rose); opacity: 1; }

.hhm-footer__copy {
  font-family: var(--font-mono);
  font-size: 0.5625rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  opacity: 0.6;
  margin-top: 3rem;
}

/* ============================================================
   TESTIMONIAL CARDS
   ============================================================ */
.hhm-testimonial-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .hhm-testimonial-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
  .hhm-testimonial-grid { grid-template-columns: repeat(3, 1fr); }
}

.hhm-testimonial-card {
  background-color: #fff;
  padding: 2.5rem;
  border-radius: 2rem;
  border: 2px solid rgba(131,141,86,0.1);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: var(--shadow-ritual);
  transition: box-shadow var(--transition-primary), border-color var(--transition-primary);
  min-height: 21rem;
}
.hhm-testimonial-card:hover {
  box-shadow: 0 20px 25px rgba(0,0,0,0.1);
  border-color: rgba(216,115,124,0.2);
}

.hhm-testimonial-card__stars {
  display: flex;
  gap: 0.25rem;
  color: rgba(216,115,124,0.4);
  font-size: 0.875rem;
  margin-bottom: 1.5rem;
}

.hhm-testimonial-card__quote {
  font-family: var(--font-body);
  font-style: italic;
  line-height: 1.625;
  color: rgba(25,8,7,0.8);
  flex: 1;
}

.hhm-testimonial-card__footer {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-top: 2rem;
}

.hhm-testimonial-card__divider {
  width: 2rem;
  height: 2px;
  background-color: rgba(216,115,124,0.2);
  transition: width var(--transition-primary);
}
.hhm-testimonial-card:hover .hhm-testimonial-card__divider { width: 3rem; }

.hhm-testimonial-card__author {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 900;
  color: rgba(25,8,7,0.5);
}

/* ============================================================
   FAQ ACCORDION
   ============================================================ */
.hhm-faq-item {
  background-color: #fff;
  border-radius: 2rem;
  box-shadow: var(--shadow-ritual);
  overflow: hidden;
  border: 1px solid rgba(25,8,7,0.05);
  margin-bottom: 1rem;
}

.hhm-faq-item__btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2rem 2.5rem;
  text-align: left;
  background: none;
  border: none;
  cursor: pointer;
  gap: 1rem;
}

.hhm-faq-item__question {
  font-family: var(--font-cooper-medium);
  font-size: 1.25rem;
  color: var(--hhm-midnight);
  line-height: 1.3;
  transition: color var(--transition-primary);
}
.hhm-faq-item__btn:hover .hhm-faq-item__question { color: var(--hhm-sacred-rose); }

.hhm-faq-item__chevron {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 9999px;
  background-color: rgba(250,249,245,0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(25,8,7,0.3);
  flex-shrink: 0;
  transition: transform var(--transition-primary), background-color var(--transition-primary), color var(--transition-primary);
}
.hhm-faq-item[open] .hhm-faq-item__chevron {
  transform: rotate(180deg);
  background-color: rgba(216,115,124,0.1);
  color: var(--hhm-sacred-rose);
}

.hhm-faq-item__answer {
  padding: 0 2.5rem 2rem;
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.8;
  color: rgba(25,8,7,0.7);
  display: none;
}
.hhm-faq-item[open] .hhm-faq-item__answer { display: block; }

/* ── Rich text inside FAQ answers ── */
.hhm-faq-item__answer p { margin: 0 0 1.25rem; }
.hhm-faq-item__answer p:last-child { margin-bottom: 0; }
.hhm-faq-item__answer strong,
.hhm-faq-item__answer b { font-weight: 700; color: rgba(25,8,7,0.9); }
.hhm-faq-item__answer em,
.hhm-faq-item__answer i { font-style: italic; }
.hhm-faq-item__answer h1,
.hhm-faq-item__answer h2,
.hhm-faq-item__answer h3 {
  font-family: var(--font-heading);
  font-weight: 400;
  color: var(--hhm-midnight);
  line-height: 1.1;
  letter-spacing: -0.025em;
  margin: 1.5rem 0 0.5rem;
}
.hhm-faq-item__answer h1:first-child,
.hhm-faq-item__answer h2:first-child,
.hhm-faq-item__answer h3:first-child { margin-top: 0; }
.hhm-faq-item__answer h1 { font-size: clamp(1.75rem, 3.5vw, 2.5rem); }
.hhm-faq-item__answer h2 { font-size: clamp(1.25rem, 2.5vw, 1.75rem); }
.hhm-faq-item__answer h3 { font-size: clamp(1rem, 1.75vw, 1.3125rem); }
.hhm-faq-item__answer h4 {
  font-family: var(--font-cooper-light);
  font-size: 0.875rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--hhm-sacred-rose);
  margin: 1.5rem 0 0.375rem;
  line-height: 1.4;
}
.hhm-faq-item__answer h5 {
  font-family: var(--font-cooper-light);
  font-size: 0.875rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: rgba(25,8,7,0.45);
  margin: 1.25rem 0 0.375rem;
  line-height: 1.4;
}
.hhm-faq-item__answer ul,
.hhm-faq-item__answer ol {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.8;
  color: rgba(25,8,7,0.7);
  padding-left: 1.5rem;
  margin: 0 0 1.25rem;
}
.hhm-faq-item__answer li { margin-bottom: 0.375rem; }
.hhm-faq-item__answer a {
  color: var(--hhm-sacred-rose);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.hhm-faq-item__answer hr {
  border: none;
  border-top: 1px solid rgba(216,115,124,0.2);
  margin: 1.75rem 0;
}

/* ============================================================
   INGREDIENTS SECTION
   ============================================================ */
.hhm-ingredients-category {
  border-bottom: 2px solid rgba(131,141,86,0.1);
}

.hhm-ingredients-category__header {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem;
  background: none;
  border: none;
  cursor: pointer;
  transition: background-color var(--transition-primary);
}
.hhm-ingredients-category__header:hover { background-color: rgba(250,249,245,0.1); }

.hhm-ingredients-category__body {
  display: none;
}
.hhm-ingredients-category.is-open .hhm-ingredients-category__body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2px;
  background-color: rgba(131,141,86,0.08);
  border-top: 2px solid rgba(131,141,86,0.1);
}

@media (min-width: 640px) {
  .hhm-ingredients-category.is-open .hhm-ingredients-category__body {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .hhm-ingredients-category.is-open .hhm-ingredients-category__body {
    grid-template-columns: repeat(3, 1fr);
  }
}

.hhm-ingredient-item {
  padding: 2rem;
  background-color: #fff;
  transition: background-color var(--transition-primary);
}
.hhm-ingredient-item:hover { background-color: rgba(200,240,156,0.1); }

/* ============================================================
   SECTION — BODY ILLUSTRATIONS
   ============================================================ */
.hhm-body-section {
  padding: 6rem 1.5rem;
  background-color: #fff;
  border-bottom: 2px solid var(--hhm-moss);
}

.hhm-body-grid {
  display: grid;
  gap: 4rem;
  align-items: center;
  max-width: 1440px;
  margin: 0 auto;
}

@media (min-width: 1024px) {
  .hhm-body-grid { grid-template-columns: 1fr 1.2fr; }
  .hhm-body-grid--reversed { grid-template-columns: 1.2fr 1fr; }
}

.hhm-body-illustration {
  aspect-ratio: 4/5;
  max-height: 600px;
}
.hhm-body-illustration img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 1s cubic-bezier(0.46, 0.01, 0.32, 1);
}
.hhm-body-grid:hover .hhm-body-illustration img { transform: scale(1.05); }

/* ============================================================
   ECOSYSTEM / CIRCUS SECTION
   ============================================================ */
.hhm-ecosystem {
  background-color: var(--hhm-midnight);
  color: #fff;
  padding: 8rem 1.5rem;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  position: relative;
  overflow: hidden;
}

.hhm-ecosystem__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hhm-ecosystem__bg img { width: 100%; height: 100%; object-fit: cover; opacity: 1; }
.hhm-ecosystem__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, var(--hhm-midnight), rgba(25,8,7,0.4), rgba(25,8,7,0.8));
}

.hhm-ecosystem__inner {
  position: relative;
  z-index: 1;
  max-width: 64rem;
  margin: 0 auto;
  display: grid;
  gap: 4rem;
  align-items: center;
}

@media (min-width: 1024px) {
  .hhm-ecosystem__inner { grid-template-columns: 1fr 1.5fr; }
}

/* ============================================================
   RITUAL DIVIDER
   ============================================================ */
.hhm-ritual-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem 0;
}
.hhm-ritual-divider img { height: 3.25rem; width: auto; }

/* ============================================================
   SECTION HEADER
   ============================================================ */
.hhm-section-header {
  text-align: center;
  margin-bottom: 1.5rem;
}

.hhm-section-eyebrow {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  font-weight: 900;
  color: var(--hhm-sacred-rose);
  margin-bottom: 1rem;
}

/* ============================================================
   ANIMATIONS
   ============================================================ */
@keyframes viscous {
  0%   { transform: translateY(20px); opacity: 0; }
  100% { transform: translateY(0); opacity: 1; }
}

.animate-viscous {
  animation: viscous 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes spin-slow {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
.animate-spin-slow { animation: spin-slow 12s linear infinite; }

/* ============================================================
   SCROLLBAR HIDE
   ============================================================ */
.scrollbar-none::-webkit-scrollbar { display: none; }
.scrollbar-none { -ms-overflow-style: none; scrollbar-width: none; }

/* ============================================================
   SNAP SCROLL
   ============================================================ */
.snap-x          { scroll-snap-type: x mandatory; }
.snap-center     { scroll-snap-align: center; }
.snap-start      { scroll-snap-align: start; }
.scroll-smooth   { scroll-behavior: smooth; }

/* ============================================================
   SELECTION COLOR
   ============================================================ */
::selection {
  background-color: var(--hhm-sacred-rose);
  color: #fff;
}

/* ============================================================
   RESPONSIVE UTILITIES
   ============================================================ */
@media (max-width: 767px) {
  .md\:hidden--mobile          { display: none; }
  .hhm-header__nav             { display: none; }
  .hhm-header__desktop-only   { display: none; }
  .hhm-header__dropdown-wrap  { display: none !important; }
  .hhm-faq-item__question { font-size: 1rem; }
}

@media (min-width: 768px) {
  .md\:grid          { display: grid; }
  .md\:flex          { display: flex; }
  .md\:hidden        { display: none; }
  .md\:block         { display: block; }
  .md\:grid-cols-2   { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .md\:grid-cols-3   { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .md\:col-span-2    { grid-column: span 2 / span 2; }
  .md\:text-left     { text-align: left; }
  .md\:text-right    { text-align: right; }
  .md\:flex-row      { flex-direction: row; }
  .md\:items-center  { align-items: center; }
  .md\:gap-12        { gap: 3rem; }
  .md\:p-12          { padding: 3rem; }
  .md\:px-12         { padding-left: 3rem; padding-right: 3rem; }
  .md\:py-32         { padding-top: 8rem; padding-bottom: 8rem; }
  .hhm-header__menu-btn { display: none; }
}

@media (min-width: 1024px) {
  .lg\:grid          { display: grid; }
  .lg\:flex          { display: flex; }
  .lg\:hidden        { display: none; }
  .lg\:block         { display: block; }
  .lg\:grid-cols-2   { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .lg\:grid-cols-3   { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .lg\:col-span-2    { grid-column: span 2 / span 2; }
  .lg\:text-left     { text-align: left; }
  .lg\:flex-row      { flex-direction: row; }
  .lg\:items-center  { align-items: center; }
  .lg\:gap-16        { gap: 4rem; }
  .lg\:p-16          { padding: 4rem; }
  .lg\:px-16         { padding-left: 4rem; padding-right: 4rem; }
}

/* ============================================================
   SITE FRAME — GLOBAL CONTAINER
   ============================================================ */
/* Sitewide outer frame: border-x visible from browser edge, applied to header, main content, footer, and announcement bar */
body {
  padding: 0 4px;
}
.urgency-ticker,
.hhm-header,
#MainContent,
footer {
  max-width: 1440px;
  margin: 0 auto;
  border-left: 2px solid var(--hhm-moss);
  border-right: 2px solid var(--hhm-moss);
}

.box-hero {
  display: grid;
  grid-template-columns: 1fr;
  background: #fff;
  border-bottom: 2px solid var(--hhm-moss);
}

/* Pricing row bleeds full width inside the left column */
.box-pricing-row {
  margin-left: -1.5rem;
  margin-right: -1.5rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
@media (min-width: 1024px) {
  .box-pricing-row {
    margin-left: -3rem;
    margin-right: -3rem;
    padding-left: 3rem;
    padding-right: 3rem;
  }
}
.box-hero__left {
  padding: 3rem 1.5rem 2.5rem;
  border-bottom: 2px solid var(--hhm-moss);
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.box-hero__right {
  padding: 3rem 1.5rem 2.5rem;
  background: var(--hhm-parchment);
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
}
@media (min-width: 1024px) {
  .box-hero {
    grid-template-columns: 1.15fr 1fr;
  }
  .box-hero__left {
    border-bottom: none;
    border-right: 2px solid var(--hhm-moss);
    padding: 4rem 3rem 3rem;
  }
  .box-hero__right {
    padding: 4rem 3rem 3rem;
  }
}

/* ═══════════════════════════════════════════
   CART PAGE
═══════════════════════════════════════════ */
.hhm-cart-page {
  background: var(--hhm-parchment);
  min-height: 60vh;
  padding: 4rem 1.5rem 6rem;
}
.hhm-cart-page__empty {
  max-width: 32rem;
  margin: 0 auto;
  text-align: center;
  padding: 6rem 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}
.hhm-cart-page__inner {
  max-width: 80rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: start;
}
@media (min-width: 1024px) {
  .hhm-cart-page__inner {
    grid-template-columns: 1fr 22rem;
    gap: 4rem;
  }
}
.hhm-cart-page__top-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}
.hhm-cart-page__heading {
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  line-height: 0.9;
}
.hhm-cart-page__continue {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 900;
  color: rgba(25,8,7,0.45);
  text-decoration: none;
  border-bottom: 1px solid rgba(25,8,7,0.2);
  padding-bottom: 1px;
  white-space: nowrap;
}
.hhm-cart-col-heads {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 1rem;
  padding-bottom: 1rem;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 900;
  color: rgba(25,8,7,0.4);
}
.hhm-cart-divider {
  height: 1px;
  background: rgba(131,141,86,0.15);
  border: none;
  margin: 0;
}
.hhm-cart-row {
  display: grid;
  grid-template-columns: 5rem 1fr auto auto;
  gap: 1.5rem;
  align-items: center;
  padding: 2rem 0;
}
.hhm-cart-row__img {
  width: 5rem;
  height: 5rem;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(131,141,86,0.12);
  background: var(--hhm-parchment);
  flex-shrink: 0;
}
.hhm-cart-row__name {
  font-family: var(--font-cooper-medium);
  font-size: 1.0625rem;
  color: var(--hhm-midnight);
  line-height: 1.3;
  margin-bottom: 0.25rem;
}
.hhm-cart-row__variant {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 900;
  color: rgba(25,8,7,0.4);
  margin-bottom: 0.375rem;
}
.hhm-cart-row__remove {
  display: block;
  margin-top: 0.625rem;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 900;
  color: rgba(25,8,7,0.32);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  border-bottom: 1px solid transparent;
  transition: color 0.15s, border-color 0.15s;
}
.hhm-cart-row__remove:hover { color: var(--hhm-sacred-rose); border-color: rgba(216,115,124,0.4); }
.hhm-cart-row__qty {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2rem;
}

/* Quantity stepper, same size as the cart drawer */
.hhm-cart-row .hhm-qty {
  min-width: 4.9rem !important;
  padding: 0.175rem !important;
}
.hhm-cart-row .hhm-qty__btn {
  width: 1.75rem !important;
  height: 1.75rem !important;
  border-radius: 0.2625rem !important;
  font-size: 0.875rem !important;
}
.hhm-cart-row .hhm-qty__count {
  font-size: 0.7875rem !important;
}
.hhm-cart-row__price {
  font-family: var(--font-diplomata);
  font-size: 1.375rem;
  color: var(--hhm-midnight);
  width: 6.5rem;
  text-align: right;
}

@media (max-width: 767px) {
  .hhm-cart-col-heads {
    display: none;
  }
  .hhm-cart-row {
    grid-template-columns: 5rem 1fr auto;
    grid-template-areas:
      "img info price"
      "qty qty qty";
    row-gap: 1rem;
  }
  .hhm-cart-row__img   { grid-area: img; }
  .hhm-cart-row__info  { grid-area: info; min-width: 0; }
  .hhm-cart-row__price { grid-area: price; width: auto; }
  .hhm-cart-row__qty   { grid-area: qty; justify-content: flex-start; }
}

/* Summary sidebar */
.hhm-cart-page__summary {
  background: #fff;
  border: 1px solid rgba(131,141,86,0.15);
  border-radius: 1.5rem;
  padding: 2rem;
  box-shadow: 0 4px 24px rgba(25,8,7,0.04);
  position: sticky;
  top: 1.5rem;
}
.hhm-cart-page__subtotal-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: 0.5rem;
}
.hhm-cart-page__checkout-btn {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 1.25rem 2rem;
  border-radius: 0.875rem;
  text-decoration: none;
  background-color: var(--hhm-spicy-lime);
  color: var(--hhm-midnight);
  font-family: var(--font-cooper-medium);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.hhm-cart-page__checkout-btn:hover { background-color: var(--hhm-spicy-lime); }

/* ═══════════════════════════════════════════
   MULTI-SHIP PANEL
═══════════════════════════════════════════ */
.hhm-multiship {
  position: fixed;
  inset: 0;
  z-index: 900;
  pointer-events: none;
  visibility: hidden;
}
.hhm-multiship.is-open {
  pointer-events: auto;
  visibility: visible;
}
.hhm-multiship__overlay {
  position: absolute;
  inset: 0;
  background: rgba(25,8,7,0.55);
  opacity: 0;
  transition: opacity 0.35s ease;
  backdrop-filter: blur(2px);
}
.hhm-multiship.is-open .hhm-multiship__overlay { opacity: 1; }
.hhm-multiship__panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(100vw, 32rem);
  background: var(--hhm-parchment);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: -8px 0 40px rgba(25,8,7,0.12);
}
.hhm-multiship.is-open .hhm-multiship__panel { transform: translateX(0); }
.hhm-multiship__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 2rem 2rem 1.25rem;
  border-bottom: 1px solid rgba(131,141,86,0.15);
  flex-shrink: 0;
}
.hhm-multiship__close {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 9999px;
  border: 1px solid rgba(131,141,86,0.2);
  background: rgba(255,255,255,0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s;
}
.hhm-multiship__close:hover { background: rgba(255,255,255,0.9); }
.hhm-multiship__body {
  flex: 1;
  overflow-y: auto;
  padding: 1.25rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.hhm-multiship__footer {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  justify-content: flex-end;
  padding: 1.25rem 2rem;
  border-top: 1px solid rgba(131,141,86,0.15);
  flex-shrink: 0;
}
.hhm-multiship__cancel {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 900;
  color: rgba(25,8,7,0.45);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.875rem 0;
  border-bottom: 1px solid rgba(25,8,7,0.2);
}

/* Multi-ship item cards */
.hhm-ms-item {
  background: #fff;
  border: 1px solid rgba(131,141,86,0.15);
  border-radius: 1rem;
  overflow: hidden;
}
.hhm-ms-item__row {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
}
.hhm-ms-item__img {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 0.625rem;
  overflow: hidden;
  border: 1px solid rgba(131,141,86,0.1);
  background: var(--hhm-parchment);
  flex-shrink: 0;
}
.hhm-ms-item__img img { width: 100%; height: 100%; object-fit: contain; }
.hhm-ms-item__name {
  font-family: var(--font-cooper-medium);
  font-size: 0.9375rem;
  color: var(--hhm-midnight);
  line-height: 1.3;
}
.hhm-ms-item__variant {
  font-family: var(--font-mono);
  font-size: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 900;
  color: rgba(25,8,7,0.4);
  margin-top: 0.125rem;
}
.hhm-ms-item__qty-info {
  font-family: var(--font-mono);
  font-size: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 900;
  color: rgba(25,8,7,0.35);
  margin-top: 0.25rem;
}

/* Address slots */
.hhm-ms-slot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.625rem 1rem;
  background: rgba(140,171,36,0.06);
  border-top: 1px solid rgba(131,141,86,0.12);
}
.hhm-ms-slot__address {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1;
  min-width: 0;
  font-family: var(--font-body);
  font-size: 0.8125rem;
  color: rgba(25,8,7,0.75);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hhm-ms-slot__actions {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  flex-shrink: 0;
}
.hhm-ms-add-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-top: 1px solid rgba(131,141,86,0.1);
}
.hhm-ms-remaining {
  font-family: var(--font-mono);
  font-size: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 900;
  color: rgba(25,8,7,0.35);
}

/* Multi-ship buttons */
.hhm-ms-btn {
  font-family: var(--font-mono);
  font-size: 0.5625rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  border: none;
  cursor: pointer;
  border-radius: 0.375rem;
  padding: 0.375rem 0.625rem;
  transition: background 0.15s, color 0.15s;
}
.hhm-ms-btn--add {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  background: var(--hhm-midnight);
  color: #fff;
  padding: 0.5rem 0.875rem;
  margin-left: auto;
}
.hhm-ms-btn--add:hover { opacity: 0.85; }
.hhm-ms-btn--ghost {
  background: rgba(131,141,86,0.1);
  color: rgba(25,8,7,0.6);
}
.hhm-ms-btn--ghost:hover { background: rgba(131,141,86,0.2); }
.hhm-ms-btn--remove {
  background: rgba(216,115,124,0.1);
  color: var(--hhm-sacred-rose);
  font-size: 0.6875rem;
}
.hhm-ms-btn--remove:hover { background: rgba(216,115,124,0.2); }

/* ═══════════════════════════════════════════
   ADDRESS FORM PANEL
═══════════════════════════════════════════ */
.hhm-address-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(100vw, 32rem);
  background: #fff;
  z-index: 950;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: -8px 0 40px rgba(25,8,7,0.15);
}
.hhm-address-panel.is-open { transform: translateX(0); }
.hhm-address-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.75rem 2rem;
  border-bottom: 1px solid rgba(131,141,86,0.15);
  flex-shrink: 0;
}
.hhm-address-panel__form {
  flex: 1;
  overflow-y: auto;
  padding: 1.75rem 2rem;
}
.hhm-address-panel__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1.75rem;
}
.hhm-address-panel__full { grid-column: 1 / -1; }
.hhm-address-panel__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(131,141,86,0.12);
}
.hhm-address-label {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 900;
  color: rgba(25,8,7,0.45);
  margin-bottom: 0.5rem;
}
.hhm-address-input {
  width: 100%;
  border: 1.5px solid rgba(131,141,86,0.2);
  border-radius: 0.625rem;
  padding: 0.75rem 0.875rem;
  font-family: var(--font-body);
  font-size: 0.9375rem;
  color: var(--hhm-midnight);
  background: var(--hhm-parchment);
  box-sizing: border-box;
  transition: border-color 0.15s;
}
.hhm-address-input:focus {
  outline: 2px solid var(--hhm-moss);
  outline-offset: 2px;
  border-color: rgba(131,141,86,0.5);
  background: #fff;
}

/* ═══════════════════════════════════════════
   MULTI-SHIP — MOBILE FIXES
═══════════════════════════════════════════ */
@media (max-width: 640px) {
  /* Reduce side padding so items have more room */
  .hhm-multiship__body {
    padding: 1rem 1rem;
    gap: 0.625rem;
  }

  /* Footer: respect iOS safe area so buttons aren't behind the browser bar */
  .hhm-multiship__footer {
    padding: 1rem 1rem;
    padding-bottom: max(1rem, env(safe-area-inset-bottom));
    gap: 0.5rem;
    flex-wrap: wrap;
  }

  /* "Add Shipping Address" button: full width, big tap target */
  .hhm-ms-add-row {
    padding: 0.75rem 0.875rem;
  }

  .hhm-ms-btn--add {
    margin-left: 0;
    width: 100%;
    justify-content: center;
    padding: 0.75rem 1rem;
    font-size: 0.625rem;
  }

  /* Address slot: ensure text truncates cleanly */
  .hhm-ms-slot__address span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 12rem;
  }

  /* Address panel also needs safe area */
  .hhm-address-panel__actions {
    padding-bottom: max(1.25rem, env(safe-area-inset-bottom));
  }
}

/* ── Rich text field hierarchy (.pcrt) ── */
.pcrt h1 {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 0.92;
  color: inherit;
  margin: 0 0 1rem;
}
.pcrt h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.375rem, 2.5vw, 1.875rem);
  line-height: 1.05;
  color: inherit;
  margin: 2rem 0 0.75rem;
}
.pcrt h3 {
  font-family: var(--font-cooper-medium);
  font-size: 1.0625rem;
  line-height: 1.3;
  font-weight: 700;
  color: inherit;
  margin: 1.5rem 0 0.5rem;
}
.pcrt h4 {
  font-family: var(--font-cooper-light);
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 900;
  color: inherit;
  margin: 1.25rem 0 0.375rem;
}
.pcrt h1:first-child,
.pcrt h2:first-child,
.pcrt h3:first-child,
.pcrt h4:first-child { margin-top: 0; }
.pcrt ul,
.pcrt ol {
  padding-left: 1.25rem;
  margin: 0.75rem 0;
}
.pcrt li {
  margin-bottom: 0.375rem;
  line-height: 1.6;
}

/* ── Mobile: CTA buttons full-width ── */
@media (max-width: 767px) {
  .pc-cta {
    width: 100% !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }
}

/* ── Klaviyo embedded forms: center on page ── */
[class*="klaviyo-form"] {
  margin-left: auto !important;
  margin-right: auto !important;
}
.shopify-section:has([class*="klaviyo-form"]) {
  display: flex;
  justify-content: center;
  padding: 5rem 1.5rem;
  background: var(--hhm-parchment);
}

/* ════════════════════════════════════════════════════
   Rich-text typography — .hhm-page-rte
   Used on: contact/page template, box-hero description,
   and any section that outputs Shopify richtext fields.
   ════════════════════════════════════════════════════ */
.hhm-page-rte { overflow: visible; }
.hhm-page-rte .metafield-rich-text-field { display: contents; }
.hhm-page-rte p {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  font-weight: 300;
  line-height: 1.7;
  color: #3F3F3F;
  margin: 0 0 1.5rem;
}
.hhm-page-rte strong, .hhm-page-rte b { font-weight: 700; color: #2A2A2A; }
.hhm-page-rte em, .hhm-page-rte i { font-style: italic; }

/* Drop cap — first paragraph after any H1 */
.hhm-page-rte h1 + p::first-letter {
  font-family: var(--font-snell);
  font-size: 5rem;
  font-weight: 400;
  float: left;
  line-height: 0.7;
  margin-right: 0.625rem;
  margin-top: calc(0.5rem - 10px);
  color: var(--hhm-sacred-rose-text);
}

/* H1 — Bolkit display */
.hhm-page-rte h1 {
  font-family: var(--font-heading);
  font-weight: 400;
  color: #2A3F00;
  line-height: 1.05;
  letter-spacing: -0.025em;
  font-size: clamp(2.25rem, 5vw, 3.5rem);
  margin: 3.5rem 0 1.25rem;
}
.hhm-page-rte h1:first-child { margin-top: 0; }

/* H2 — Cooper Light section heading */
.hhm-page-rte h2 {
  font-family: var(--font-cooper-light);
  font-weight: 300;
  color: #2A3F00;
  line-height: 1.15;
  letter-spacing: -0.01em;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  margin: 3rem 0 0.875rem;
}
.hhm-page-rte h2:first-child { margin-top: 0; }

/* H3 — sub-section, Cooper Medium */
.hhm-page-rte h3 {
  font-family: var(--font-cooper-medium);
  font-size: clamp(1.125rem, 2vw, 1.5rem);
  line-height: 1.2;
  margin: 2.5rem 0 0.75rem;
  color: var(--hhm-sacred-rose-text);
  letter-spacing: -0.01em;
}

/* H4 — Cooper Medium, smaller */
.hhm-page-rte h4 {
  font-family: var(--font-cooper-medium);
  font-size: clamp(1rem, 1.5vw, 1.25rem);
  font-weight: 400;
  letter-spacing: -0.01em;
  color: var(--hhm-sacred-rose-text);
  margin: 2rem 0 1rem;
  line-height: 1.2;
}

/* H5 — uppercase accent label */
.hhm-page-rte h5 {
  font-family: var(--font-cooper-medium);
  font-size: 0.875rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--hhm-sacred-rose-text);
  margin: 1.75rem 0 0.5rem;
  line-height: 1.4;
}

/* H6 — eyebrow, sits tight above H1 */
.hhm-page-rte h6 {
  font-family: var(--font-cooper-light);
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.25em;
  color: var(--hhm-sacred-rose-text);
  margin: 2.5rem 0 0.375rem;
  line-height: 1.4;
}
.hhm-page-rte h6 + h1 { margin-top: 0.5rem; }

/* Lists */
.hhm-page-rte ul,
.hhm-page-rte ol {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.85;
  color: #3F3F3F;
  margin: 0 0 1.5rem;
}
.hhm-page-rte ul { list-style: none; padding-left: 0.5rem; }
.hhm-page-rte ul li { display: flex; align-items: flex-start; gap: 0.75rem; padding-left: 0; }
.hhm-page-rte ul li::before { content: "◆"; flex-shrink: 0; font-size: 1rem; color: var(--hhm-sacred-rose-text); line-height: 1.75; margin-top: 0.05em; }
.hhm-page-rte ul li br,
.hhm-page-rte ol li br { display: none; }
.hhm-page-rte ul li:empty,
.hhm-page-rte ol li:empty,
.hhm-page-rte ul li:has(> br:only-child),
.hhm-page-rte ol li:has(> br:only-child),
.hhm-page-rte ul li:has(> p:empty),
.hhm-page-rte ol li:has(> p:empty),
.hhm-page-rte ul li:has(> p > br:only-child),
.hhm-page-rte ol li:has(> p > br:only-child) { display: none; }

.hhm-page-rte ol {
  list-style: none;
  padding-left: 0 !important;
  margin-left: 0 !important;
  counter-reset: hhm-ol;
}
.hhm-page-rte ol > li {
  display: flex;
  align-items: flex-start;
  gap: 1.4rem;
  padding-left: 0 !important;
  margin-left: 0 !important;
  counter-increment: hhm-ol;
  margin-bottom: 3rem;
}
.hhm-page-rte ol > li > *,
.hhm-page-rte ol > li > p { flex: 1; min-width: 0; }
.hhm-page-rte ol > li::before {
  content: counter(hhm-ol);
  font-family: var(--font-snell);
  font-size: clamp(2.25rem, 5vw, 3.5rem);
  font-style: italic;
  font-weight: 700;
  color: var(--hhm-sacred-rose-text);
  line-height: 1;
  flex-shrink: 0;
  width: 3.5rem;
  text-align: left;
  margin-top: -0.2em;
}
.hhm-page-rte ol > li > ul { list-style: none; padding-left: 0 !important; margin: 0.75rem 0 0 !important; }
.hhm-page-rte ol > li > ul > li { display: flex; align-items: flex-start; gap: 0.75rem; padding-left: 0 !important; margin-left: 0 !important; margin-bottom: 0.75rem; counter-increment: none; }
.hhm-page-rte ol > li > ul > li::before { content: "◇"; flex-shrink: 0; font-size: 0.9rem; color: var(--hhm-sacred-rose-text); line-height: 1.75; margin-top: 0.05em; width: auto; font-family: inherit; font-weight: normal; font-style: normal; }
.hhm-page-rte ol > ul { list-style: none; padding-left: calc(3.5rem + 1.4rem) !important; margin: 0.5rem 0 1.75rem !important; }
.hhm-page-rte ol > li + ul { margin-top: -2rem !important; }
.hhm-page-rte ol > ul > li { display: flex; align-items: flex-start; gap: 0.75rem; padding-left: 0 !important; margin-left: 0 !important; margin-bottom: 0.75rem; counter-increment: none; }
.hhm-page-rte ol > ul > li::before { content: "◇"; flex-shrink: 0; font-size: 0.9rem; color: var(--hhm-sacred-rose-text); line-height: 1.75; margin-top: 0.05em; font-family: inherit; font-weight: normal; font-style: normal; }

.hhm-page-rte li { margin-bottom: 0.5rem; line-height: 1.75; }
.hhm-page-rte li p,
.hhm-page-rte li > p { margin: 0 !important; padding: 0 !important; line-height: inherit !important; display: block; }

/* Inline */
.hhm-page-rte a { color: var(--hhm-sacred-rose-text); text-decoration: underline; text-underline-offset: 3px; }
.hhm-page-rte hr { border: none; border-top: 1px solid rgba(25,8,7,0.25); margin: 3rem 0; }

/* Blockquote */
.hhm-page-rte blockquote {
  border-left: none !important;
  text-align: center !important;
  padding: 5rem 1.5rem 0 !important;
  margin: 2.5rem 0 0 !important;
  font-family: var(--font-heading) !important;
  font-style: italic !important;
  font-size: clamp(1.875rem, 4vw, 3.0625rem) !important;
  color: #3D5C00 !important;
  line-height: 1.3 !important;
  font-weight: 400 !important;
  letter-spacing: -0.02em !important;
}
.hhm-page-rte blockquote p { margin: 0 !important; font-size: inherit !important; font-family: inherit !important; font-weight: inherit !important; font-style: inherit !important; color: inherit !important; line-height: inherit !important; }

/* Images */
.hhm-page-rte img { max-width: 100%; border-radius: 1rem; margin: 0.5rem 0 1.5rem; display: block; }
.hhm-page-rte img[style*="float: left"],
.hhm-page-rte img[style*="float:left"]  { margin: 0.25rem 2.5rem 1.5rem 0; }
.hhm-page-rte img[style*="float: right"],
.hhm-page-rte img[style*="float:right"] { margin: 0.25rem 0 1.5rem 2.5rem; }
.hhm-page-rte::after { content: ''; display: table; clear: both; }

/* RTE alignment passthrough */
.hhm-page-rte [style*="text-align: center"],
.hhm-page-rte [style*="text-align:center"] { text-align: center !important; }
.hhm-page-rte [style*="text-align: left"],
.hhm-page-rte [style*="text-align:left"]   { text-align: left !important; }
.hhm-page-rte [style*="text-align: right"],
.hhm-page-rte [style*="text-align:right"]  { text-align: right !important; }

/* Mobile */
@media (max-width: 639px) {
  .hhm-page-rte p,
  .hhm-page-rte ul,
  .hhm-page-rte ol { font-size: 1rem !important; }
  .hhm-page-rte h1 { margin-top: 2.5rem !important; }
  .hhm-page-rte h2 { margin-top: 2rem !important; }
  .hhm-page-rte h3 { margin-top: 1.5rem !important; }
}

/* 2026-09-29: product card titles are links (collection, grouped collection,
   recommendations, best sellers, related resources). Underline on hover so they
   read as clickable. Class added in the five card sections. */
.hhm-card-title-link:hover,
.hhm-card-title-link:focus-visible {
  text-decoration: underline !important;
  text-underline-offset: 3px;
}