/* ─── Fonts ────────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&family=Space+Mono:wght@400;700&display=swap');

/* ─── Design tokens ────────────────────────────────────────────── */
:root {
  --bg:       #F7F7F5;
  --surface:  #FFFFFF;
  --fg:       #0E0E0C;
  --muted:    #6B6B65;
  --border:   #E0E0D8;
  --accent:   #1E3A2F;
  --accent-l: #2D5443;
  --font-sans: 'DM Sans', sans-serif;
  --font-mono: 'Space Mono', monospace;
}

/* ─── Reset / base ─────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; overflow-x: hidden; }

body {
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
  overflow-x: hidden;
  max-width: 100%;
}

img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
button { font-family: inherit; }
ul, ol { list-style: none; }

:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* ─── Layout helpers ───────────────────────────────────────────── */
.bm-container {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
@media (min-width: 768px) {
  .bm-container { padding-left: 2.5rem; padding-right: 2.5rem; }
}

/* ─── Skip link ────────────────────────────────────────────────── */
.skip-link {
  position: fixed;
  left: 0.5rem;
  top: 0.5rem;
  z-index: 9999;
  padding: 0.5rem 1rem;
  font-size: 12px;
  font-family: var(--font-mono);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--accent);
  color: white;
  transform: translateY(-200%);
  transition: transform 0.2s;
}
.skip-link:focus { transform: translateY(0); }

/* ─── Navigation ───────────────────────────────────────────────── */
.bm-nav {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid var(--border);
  background: rgba(247,247,245,0.88);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.bm-nav__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1.5rem;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media (min-width: 768px) {
  .bm-nav__inner { padding: 0 2.5rem; }
}
.bm-nav__logo {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.18em;
  color: var(--fg);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex-shrink: 1;
}
@media (max-width: 767px) {
  .bm-nav__logo { font-size: 11px; letter-spacing: 0.08em; max-width: calc(100vw - 110px); }
  .bm-nav .bm-nav__wordmark { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
}
.bm-nav__links {
  display: none;
  align-items: center;
  gap: 2rem;
}
@media (min-width: 768px) { .bm-nav__links { display: flex; } }
.bm-nav__links a {
  font-size: 13px;
  color: var(--muted);
  transition: color 0.2s;
}
.bm-nav__links a:hover,
.bm-nav__links a.active { color: var(--fg); }
.bm-nav__right { display: flex; align-items: center; gap: 1rem; }
.bm-nav__cart {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
}
.bm-nav__cart-count {
  position: absolute;
  top: -4px;
  right: -4px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--accent);
  color: white;
  font-size: 9px;
  font-family: var(--font-mono);
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bm-btn {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: var(--accent);
  color: white !important;
  -webkit-appearance: none;
  appearance: none;
  padding: 0.6rem 1.25rem;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
}
.bm-btn:hover { background: var(--accent-l); color: white; }
/* ID override: beats any WordPress/WooCommerce class or type selector */
#bm-add-to-cart {
  color: #ffffff !important;
  background-color: #1E3A2F !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.bm-btn--outline {
  background: transparent;
  color: var(--fg);
  border: 1px solid var(--border);
}
.bm-btn--outline:hover { border-color: var(--accent); color: var(--accent); background: transparent; }
.bm-nav__shop { display: none; }
@media (min-width: 768px) { .bm-nav__shop { display: inline-block; } }

/* Mobile menu */
.bm-nav__hamburger {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 0.5rem;
  background: transparent;
  border: none;
  cursor: pointer;
}
@media (min-width: 768px) { .bm-nav__hamburger { display: none; } }
.bm-nav__hamburger span {
  display: block;
  height: 1px;
  background: var(--fg);
}
.bm-nav__hamburger span:nth-child(1),
.bm-nav__hamburger span:nth-child(2) { width: 20px; }
.bm-nav__hamburger span:nth-child(3) { width: 12px; }
.bm-mobile-menu {
  display: none;
  flex-direction: column;
  gap: 1rem;
  padding: 1rem 1.5rem;
  border-top: 1px solid var(--border);
  background: var(--bg);
}
.bm-mobile-menu.open { display: flex; }
@media (min-width: 768px) { .bm-mobile-menu { display: none !important; } }
.bm-mobile-menu a { font-size: 14px; color: var(--muted); }

/* ─── Hero ─────────────────────────────────────────────────────── */
.bm-hero {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
  background: var(--accent);
}
.bm-hero__inner {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 1280px;
  margin: 0 auto;
  width: 100%;
  padding: 6rem 1.5rem 3rem;
}
@media (min-width: 768px) { .bm-hero__inner { padding: 6rem 2.5rem 3rem; } }
.bm-hero__eyebrow {
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.65);
  font-family: var(--font-mono);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 2rem;
}
.bm-hero__eyebrow-line {
  display: block;
  width: 24px;
  height: 1px;
  background: rgba(255,255,255,0.3);
}
.bm-purity-display {
  font-family: var(--font-mono);
  font-weight: 700;
  line-height: 0.9;
  letter-spacing: -0.04em;
  color: white;
  font-size: clamp(80px, 13vw, 200px);
  display: block;
  margin-bottom: 1.5rem;
}
.bm-hero__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  align-items: end;
}
@media (min-width: 768px) { .bm-hero__grid { grid-template-columns: 1fr 1fr; gap: 4rem; } }
.bm-hero__heading {
  font-weight: 300;
  line-height: 1.1;
  letter-spacing: -0.025em;
  margin-bottom: 1.5rem;
  font-size: clamp(28px, 4vw, 52px);
  color: white;
}
.bm-hero__muted { color: rgba(255,255,255,0.55); }
.bm-hero__ctas { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.bm-hero__cta-primary {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 1rem 2rem;
  background: white;
  color: var(--accent);
  display: inline-block;
  transition: background 0.2s;
}
.bm-hero__cta-primary:hover { background: rgba(255,255,255,0.88); }
.bm-hero__cta-secondary {
  font-size: 13px;
  color: rgba(255,255,255,0.55);
  border-bottom: 1px solid rgba(255,255,255,0.2);
  padding-bottom: 1px;
  transition: color 0.2s, border-color 0.2s;
}
.bm-hero__cta-secondary:hover { color: white; border-color: rgba(255,255,255,0.6); }
.bm-hero__right { display: flex; flex-direction: column; gap: 0.75rem; align-self: end; }
.bm-hero__stat-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  padding: 0.75rem 0;
}
.bm-hero__stat-label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.65);
}
.bm-hero__stat-value {
  font-family: var(--font-mono);
  font-size: 13px;
  color: rgba(255,255,255,0.92);
}
.bm-hero__scroll {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 2rem;
  gap: 0.5rem;
  color: rgba(255,255,255,0.3);
}
.bm-hero__scroll-text {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.bm-scroll-arrow { animation: bounce 1.6s ease-in-out infinite; }
@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(6px); }
}

/* ─── Trust bar ────────────────────────────────────────────────── */
.bm-trustbar {
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 1.125rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}
@media (min-width: 768px) { .bm-trustbar { gap: 3rem; } }
.bm-trustbar__item {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 10px;
}
.bm-trustbar__dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--accent);
  flex-shrink: 0;
}

/* ─── Section labels / eyebrows ────────────────────────────────── */
.bm-eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.bm-eyebrow-line {
  display: block;
  width: 24px;
  height: 1px;
  background: var(--muted);
}

/* ─── Product grid ─────────────────────────────────────────────── */
.bm-products { padding: 5rem 0; }
.bm-products__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 2.5rem;
  flex-wrap: wrap;
  gap: 1rem;
}
.bm-products__label { font-size: 13px; color: var(--muted); }
.bm-products__view-all {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--fg);
  border-bottom: 1px solid var(--fg);
  padding-bottom: 1px;
  transition: color 0.2s, border-color 0.2s;
}
.bm-products__view-all:hover { color: var(--accent); border-color: var(--accent); }

.bm-product-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}
@media (min-width: 640px) { .bm-product-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .bm-product-grid { grid-template-columns: repeat(3, 1fr); } }

/* Product card — flat colour (matches original Next.js design) */
.bm-product-card-wrap { display: contents; }
@media (min-width: 640px) {
  .bm-product-card-wrap--featured { display: block; grid-column: span 2; }
}

.bm-product-card {
  border: 1px solid var(--border);
  min-height: 300px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 2.25rem;
  transition: border-color 0.25s, transform 0.25s, background 0.2s;
  background: var(--surface);
  text-decoration: none;
  color: inherit;
  height: 100%;
}
.bm-product-card:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
}

/* Featured card (Retatrutide) — dark green */
.bm-product-card--featured { background: var(--accent); border-color: var(--accent); }
.bm-product-card--featured:hover { background: var(--accent-l); border-color: var(--accent-l); transform: none; }

.bm-product-card__tag {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 3rem;
}
.bm-product-card--featured .bm-product-card__tag { color: rgba(255,255,255,0.5); }

.bm-product-card__purity {
  font-family: var(--font-mono);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--fg);
  font-size: clamp(48px, 5.5vw, 72px);
  display: block;
  margin-bottom: 0.75rem;
}
.bm-product-card--featured .bm-product-card__purity { color: var(--surface); }

.bm-product-card__name { font-size: 14px; letter-spacing: 0.01em; color: var(--muted); }
.bm-product-card--featured .bm-product-card__name { color: rgba(255,255,255,0.6); }

.bm-product-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 2.5rem;
  gap: 1rem;
}
.bm-product-card__price-plain { font-family: var(--font-mono); font-size: 13px; color: var(--fg); }
.bm-product-card--featured .bm-product-card__price-plain { color: var(--surface); }

.bm-product-card__size-badges { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.bm-product-card__size-badge {
  font-family: var(--font-mono);
  font-size: 11px;
  padding: 0.375rem 0.75rem;
  border: 1px solid rgba(255,255,255,0.25);
  color: rgba(255,255,255,0.9);
}

.bm-product-card__arrow {
  width: 32px;
  height: 32px;
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.bm-product-card__arrow svg { stroke: var(--fg); }
.bm-product-card--featured .bm-product-card__arrow { border-color: rgba(255,255,255,0.25); }
.bm-product-card--featured .bm-product-card__arrow svg { stroke: white; }

.bm-products__bac-note {
  margin-top: 1.25rem;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
}

/* ─── Stats strip ──────────────────────────────────────────────── */
.bm-stats { background: var(--accent); }
.bm-stats__grid {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 768px) { .bm-stats__grid { padding: 0 2.5rem; } }
@media (min-width: 1024px) { .bm-stats__grid { grid-template-columns: repeat(4, 1fr); } }
.bm-stats__item {
  padding: 3.5rem 2rem;
  border-right: 1px solid rgba(255,255,255,0.1);
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
@media (min-width: 1024px) { .bm-stats__item { border-bottom: none; } }
.bm-stats__item:last-child { border-right: none; }
.bm-stats__num {
  font-family: var(--font-mono);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.03em;
  color: white;
  font-size: clamp(28px, 3.5vw, 44px);
  margin-bottom: 0.5rem;
}
.bm-stats__label { font-size: 13px; color: rgba(255,255,255,0.5); }

/* ─── Process steps ────────────────────────────────────────────── */
.bm-process { border-top: 1px solid var(--border); }
.bm-process__grid {
  display: grid;
  grid-template-columns: 1fr;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 768px) { .bm-process__grid { grid-template-columns: repeat(3, 1fr); } }
.bm-process__step {
  padding: 2.5rem;
  border-bottom: 1px solid var(--border);
  border-right: none;
}
@media (min-width: 768px) {
  .bm-process__step { border-bottom: none; border-right: 1px solid var(--border); }
  .bm-process__step:last-child { border-right: none; }
}
.bm-process__num {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  color: var(--accent);
  margin-bottom: 1.5rem;
}
.bm-process__heading { font-size: 20px; font-weight: 300; letter-spacing: -0.02em; margin-bottom: 0.75rem; }
.bm-process__body { font-size: 14px; line-height: 1.75; color: var(--muted); }

/* ─── CTA banner ───────────────────────────────────────────────── */
.bm-cta {
  max-width: 1280px;
  margin: 0 auto;
  padding: 5rem 1.5rem;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2.5rem;
}
@media (min-width: 768px) {
  .bm-cta { flex-direction: row; align-items: flex-end; justify-content: space-between; padding: 5rem 2.5rem; }
}
.bm-cta__heading {
  font-weight: 300;
  line-height: 1.05;
  letter-spacing: -0.03em;
  font-size: clamp(36px, 5vw, 64px);
  max-width: 540px;
}

/* ─── Fade-in animation (JS-driven) ───────────────────────────── */
/* Content is visible by default. JS adds .bm-js to <html>, which
   enables the animation. Without JS everything stays fully visible. */
.bm-js .bm-fade {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.bm-js .bm-fade.bm-visible {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .bm-js .bm-fade,
  .bm-js .bm-fade.bm-visible { opacity: 1; transform: none; transition: none; }
}

/* ─── Page header (used on catalogue, research, about etc.) ────── */
.bm-page-header {
  max-width: 1280px;
  margin: 0 auto;
  padding: 5rem 1.5rem 4rem;
  border-bottom: 1px solid var(--border);
}
@media (min-width: 768px) { .bm-page-header { padding: 5rem 2.5rem 4rem; } }
.bm-page-header__eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.bm-page-header__eyebrow-line { display: block; width: 1.5rem; height: 1px; background: var(--muted); }
.bm-page-header__accent { color: var(--accent); font-style: normal; }
.bm-page-header__h1 {
  font-weight: 300;
  line-height: 1.05;
  letter-spacing: -0.03em;
  margin-bottom: 2rem;
  font-size: clamp(40px, 6vw, 80px);
  max-width: 760px;
}
.bm-page-header__body {
  font-size: 16px;
  line-height: 1.8;
  color: var(--muted);
  max-width: 560px;
}

/* ─── Footer ───────────────────────────────────────────────────── */
.bm-footer {
  border-top: 1px solid var(--border);
  padding: 2rem 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
@media (min-width: 768px) {
  .bm-footer { flex-direction: row; align-items: center; padding: 2rem 2.5rem; }
}
.bm-footer__logo {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.18em;
  color: var(--fg);
}
.bm-footer__links { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.bm-footer__links a { font-size: 12px; color: var(--muted); transition: color 0.2s; }
.bm-footer__links a:hover { color: var(--fg); }
.bm-footer__disclaimer {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
}

/* ─── Disclaimer bar ───────────────────────────────────────────── */
.bm-disclaimer {
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}
.bm-disclaimer__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 1rem 1.5rem;
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
@media (min-width: 768px) { .bm-disclaimer__inner { padding: 1rem 2.5rem; } }
.bm-disclaimer__label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--accent);
  flex-shrink: 0;
  margin-top: 2px;
}
.bm-disclaimer__text { font-size: 13px; line-height: 1.6; color: var(--muted); }

/* ─── WooCommerce: Shop / Catalogue ───────────────────────────── */
.bm-catalogue-body { padding-top: 2.5rem; padding-bottom: 5rem; }
.bm-catalogue-filters { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 2.5rem; }
.bm-filter-btn {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.5rem 1rem;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  transition: all 0.2s;
}
.bm-filter-btn.active, .bm-filter-btn:hover {
  background: var(--accent);
  color: white;
  border-color: var(--accent);
}
.bm-catalogue-note {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
.bm-catalogue-empty { color: var(--muted); font-size: 15px; padding: 3rem 0; }

/* ─── Catalogue product cards ──────────────────────────────────── */
.bm-cat-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}
@media (min-width: 640px)  { .bm-cat-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .bm-cat-grid { grid-template-columns: repeat(3, 1fr); } }

.bm-cat-card {
  display: flex;
  flex-direction: column;
  padding: 2.25rem;
  min-height: 280px;
  position: relative;
  overflow: hidden;
  background: var(--accent);
  border: 1px solid var(--accent);
  text-decoration: none;
  color: white;
  transition: border-color 0.2s, transform 0.2s;
}
.bm-cat-card:hover { border-color: rgba(255,255,255,0.4); transform: translateY(-2px); }
.bm-cat-card[hidden] { display: none !important; }

.bm-cat-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.bm-cat-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(30,58,47,0.55) 0%, rgba(30,58,47,0.08) 40%, rgba(30,58,47,0.78) 100%);
}
.bm-cat-card__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
}
.bm-cat-card__tag {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.65);
  margin-bottom: 2.5rem;
}
.bm-cat-card__purity {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: clamp(40px, 4vw, 60px);
  line-height: 1;
  letter-spacing: -0.04em;
  color: white;
  margin-bottom: 0.5rem;
}
.bm-cat-card__name { font-size: 14px; color: rgba(255,255,255,0.8); }
.bm-cat-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 2rem;
}
.bm-cat-card__price { font-family: var(--font-mono); font-size: 13px; color: white; }
.bm-cat-card__arrow {
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255,255,255,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* ─── WooCommerce: Single Product ─────────────────────────────── */
.bm-breadcrumb {
  border-bottom: 1px solid var(--border);
}
.bm-breadcrumb__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1.5rem;
  height: 44px;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
@media (min-width: 768px) { .bm-breadcrumb__inner { padding: 0 2.5rem; } }
.bm-breadcrumb a { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; color: var(--muted); }
.bm-breadcrumb span { font-size: 11px; color: var(--border); }
.bm-breadcrumb strong { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; color: var(--fg); font-weight: 400; }

.bm-product-hero {
  max-width: 1280px;
  margin: 0 auto;
  padding: 4rem 1.5rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 4rem;
}
@media (min-width: 768px) { .bm-product-hero { padding: 4rem 2.5rem; } }
@media (min-width: 1024px) { .bm-product-hero { grid-template-columns: 1fr 1fr; } }

.bm-product-image-panel {
  position: relative;
  border: 1px solid var(--accent);
  overflow: hidden;
  min-height: 480px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.bm-product-image-panel img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.bm-product-image-panel__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(14,14,12,0.72) 0%, rgba(14,14,12,0.15) 40%, rgba(14,14,12,0.15) 60%, rgba(14,14,12,0.82) 100%);
}
.bm-product-image-panel__content {
  position: relative;
  z-index: 1;
  padding: 3rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  min-height: 480px;
}
.bm-product-image-panel__tag {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.65);
  margin-bottom: 4rem;
}
.bm-product-image-panel__purity {
  font-family: var(--font-mono);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.04em;
  color: white;
  font-size: clamp(48px, 14vw, 120px);
  margin-bottom: 1rem;
}
.bm-product-image-panel__verified { font-size: 15px; color: rgba(255,255,255,0.75); }
.bm-product-image-panel__badges { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 2rem; }
.bm-product-image-panel__badge {
  border: 1px solid rgba(255,255,255,0.2);
  background: rgba(0,0,0,0.3);
  backdrop-filter: blur(8px);
  padding: 0.75rem 1rem;
}
.bm-product-image-panel__badge-label {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  margin-bottom: 2px;
}
.bm-product-image-panel__badge-value { font-family: var(--font-mono); font-size: 12px; color: white; }

.bm-product-details h1 {
  font-weight: 300;
  letter-spacing: -0.03em;
  margin-bottom: 0.75rem;
  font-size: clamp(28px, 4vw, 44px);
}
.bm-product-details__tagline { font-size: 15px; line-height: 1.75; color: var(--muted); margin-bottom: 2rem; }
.bm-product-details__desc { font-size: 15px; line-height: 1.75; margin-bottom: 2.5rem; }

.bm-size-selector { margin-bottom: 1.5rem; }
.bm-size-selector__label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.75rem;
}
.bm-size-selector__options { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.bm-size-btn {
  padding: 0.75rem 1.25rem;
  border: 1px solid var(--border);
  background: transparent;
  font-family: var(--font-mono);
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s;
}
.bm-size-btn:hover, .bm-size-btn.active {
  background: var(--accent);
  color: white;
  border-color: var(--accent);
}

.bm-product-price {
  font-family: var(--font-mono);
  font-size: 24px;
  font-weight: 300;
  letter-spacing: -0.02em;
  margin-bottom: 1.5rem;
}
.bm-product-stock {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 1.5rem;
}
.bm-add-to-cart {
  width: 100%;
  padding: 1rem;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: var(--accent);
  color: white;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
}
.bm-add-to-cart:hover { background: var(--accent-l); }
.bm-product-note {
  font-family: var(--font-mono);
  font-size: 11px;
  text-align: center;
  margin-top: 1rem;
  color: var(--muted);
}

/* Product tabs */
.bm-tabs { border-top: 1px solid var(--border); }
.bm-tabs__nav {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: flex;
  border-bottom: 1px solid var(--border);
}
@media (min-width: 768px) { .bm-tabs__nav { padding: 0 2.5rem; } }
.bm-tab-btn {
  padding: 1rem 1.5rem;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  cursor: pointer;
  color: var(--muted);
  transition: all 0.2s;
}
.bm-tab-btn.active { border-bottom-color: var(--accent); color: var(--fg); }
.bm-tab-content {
  max-width: 1280px;
  margin: 0 auto;
  padding: 2.5rem 1.5rem;
}
@media (min-width: 768px) { .bm-tab-content { padding: 2.5rem 2.5rem; } }
.bm-tab-panel { display: block; max-width: 640px; }
.bm-tab-panel[hidden] { display: none; }
.bm-tab-panel p { font-size: 15px; line-height: 1.8; }
.bm-disclaimer-box {
  margin-top: 1.5rem;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.75rem 1rem;
  border: 1px solid var(--border);
  color: var(--muted);
}

/* ─── WooCommerce default style overrides ──────────────────────── */
.woocommerce-page .woocommerce,
.woocommerce { max-width: 1280px; margin: 0 auto; padding: 0 1.5rem 5rem; }
@media (min-width: 768px) { .woocommerce-page .woocommerce, .woocommerce { padding: 0 2.5rem 5rem; } }

/* Cart table */
.woocommerce table.shop_table { border: none; border-collapse: collapse; width: 100%; }
.woocommerce table.shop_table th {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 1px solid var(--border);
  padding: 0 0 0.75rem;
  font-weight: 400;
}
.woocommerce table.shop_table td {
  border-bottom: 1px solid var(--border);
  padding: 1.25rem 0;
  font-size: 14px;
  vertical-align: middle;
}
.woocommerce table.shop_table .product-name a { color: var(--fg); font-size: 14px; font-weight: 500; }
.woocommerce .cart-collaterals { margin-top: 2rem; }
.woocommerce .cart_totals { border: 1px solid var(--border); padding: 2rem; background: var(--surface); max-width: 380px; margin-left: auto; }
.woocommerce .cart_totals h2 { font-size: 13px; color: var(--muted); font-weight: 400; margin-bottom: 1.5rem; }
.woocommerce .cart_totals table { width: 100%; }
.woocommerce .cart_totals table td, .woocommerce .cart_totals table th { padding: 0.75rem 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.woocommerce .wc-proceed-to-checkout .checkout-button {
  display: block;
  width: 100%;
  padding: 1rem;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: var(--accent);
  color: white;
  border: none;
  cursor: pointer;
  margin-top: 1.5rem;
  transition: background 0.2s;
}
.woocommerce .wc-proceed-to-checkout .checkout-button:hover { background: var(--accent-l); }

/* Checkout */
.woocommerce form .form-row label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.5rem;
  display: block;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  font-family: var(--font-sans);
  font-size: 14px;
  outline: none;
  transition: border-color 0.2s;
  border-radius: 0;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus { border-color: var(--accent); }
#place_order {
  width: 100%;
  padding: 1rem;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: var(--accent);
  color: white;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
}
#place_order:hover { background: var(--accent-l); }
.woocommerce #order_review_heading {
  font-size: 13px;
  color: var(--muted);
  font-weight: 400;
  margin-bottom: 1rem;
}

/* Messages / notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  padding: 1rem 1.5rem;
  margin-bottom: 1.5rem;
  border-left: 3px solid var(--accent);
  background: var(--surface);
  font-size: 14px;
}
.woocommerce-error { border-left-color: #c0392b; }

/* WooCommerce button catch-all — .woocommerce-scoped variants */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce #respond input#submit {
  font-family: var(--font-mono) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  background: var(--accent) !important;
  color: white !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0.75rem 1.5rem !important;
  transition: background 0.2s !important;
  text-decoration: none;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover { background: var(--accent-l) !important; color: white !important; }

/* Add-to-cart button: unscoped so it matches regardless of ancestor wrappers.
   WooCommerce JS adds .single_add_to_cart_button to any submit in form.cart,
   but our template has no .woocommerce ancestor, so the scoped rule above never fires. */
.single_add_to_cart_button,
form.cart button[type="submit"] {
  color: #ffffff !important;
  background-color: #1E3A2F !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.single_add_to_cart_button:hover,
form.cart button[type="submit"]:hover {
  background-color: #2D5443 !important;
  color: #ffffff !important;
}

/* ─── Related products ─────────────────────────────────────────── */
.bm-related { border-top: 1px solid var(--border); }
.bm-related__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 4rem 1.5rem;
}
@media (min-width: 768px) { .bm-related__inner { padding: 4rem 2.5rem; } }
.bm-related__label { font-size: 13px; color: var(--muted); margin-bottom: 2rem; }
.bm-related__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}
@media (min-width: 640px) { .bm-related__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .bm-related__grid { grid-template-columns: repeat(3, 1fr); } }
.bm-related-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 2rem;
  border: 1px solid var(--border);
  min-height: 220px;
  background: var(--surface);
  transition: border-color 0.2s, transform 0.2s;
  text-decoration: none;
  color: inherit;
}
.bm-related-card:hover { border-color: var(--accent); transform: translateY(-2px); }
.bm-related-card__tag { font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); margin-bottom: 1.5rem; }
.bm-related-card__purity { font-family: var(--font-mono); font-weight: 700; font-size: 40px; letter-spacing: -0.03em; line-height: 1; margin-bottom: 0.5rem; color: var(--fg); }
.bm-related-card__name { font-size: 14px; color: var(--muted); }

/* ─── Cart page ────────────────────────────────────────────────── */
.bm-cart-page { min-height: 60vh; }
.bm-cart-page__inner { max-width: 1280px; margin: 0 auto; padding: 3.5rem 1.5rem 5rem; }
@media (min-width: 768px) { .bm-cart-page__inner { padding: 3.5rem 2.5rem 5rem; } }
.bm-cart-page h1 { font-weight: 300; letter-spacing: -0.03em; margin-bottom: 2.5rem; font-size: clamp(28px, 4vw, 48px); }

/* ─── Research page ────────────────────────────────────────────── */
.bm-research-note {
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}
.bm-research-note__inner {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 0;
}
.bm-research-note__label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--accent);
  flex-shrink: 0;
  margin-top: 2px;
}
.bm-research-note__text { font-size: 13px; line-height: 1.6; color: var(--muted); }
.bm-research-entries { padding-top: 3rem; padding-bottom: 3rem; }
.bm-research-entry {
  display: grid;
  grid-template-columns: 1fr;
  border-bottom: 1px solid var(--border);
  padding: 3rem 0;
  gap: 2rem;
}
@media (min-width: 1024px) { .bm-research-entry { grid-template-columns: 280px 1fr; gap: 2rem; } }
.bm-research-entry__left { padding-right: 0; }
@media (min-width: 1024px) { .bm-research-entry__left { padding-right: 2rem; } }
.bm-research-entry__tag {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.75rem;
}
.bm-research-entry__purity {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 44px;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--fg);
  margin-bottom: 0.5rem;
}
.bm-research-entry__name { font-size: 14px; color: var(--muted); margin-bottom: 1.5rem; }
.bm-research-entry__btn {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.625rem 1rem;
  background: var(--accent);
  color: white;
  display: inline-block;
  transition: background 0.2s;
}
.bm-research-entry__btn:hover { background: var(--accent-l); color: white; }
.bm-research-entry__section { margin-bottom: 1.5rem; }
.bm-research-entry__section:last-child { margin-bottom: 0; }
.bm-research-section-label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 0.75rem;
}
.bm-research-entry__mechanism { font-size: 14px; line-height: 1.8; color: var(--fg); }
.bm-research-entry__context { font-size: 14px; line-height: 1.8; color: var(--muted); }

/* ─── Partners page ────────────────────────────────────────────── */
.bm-partners-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4rem;
}
@media (min-width: 1024px) { .bm-partners-grid { grid-template-columns: 1fr 1fr; } }
.bm-partners-who {
  border: 1px solid var(--border);
  padding: 1.5rem;
  background: var(--surface);
}
.bm-partners-who__item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--border);
  font-size: 13px;
  color: var(--muted);
}
.bm-partners-who__dot { width: 4px; height: 4px; border-radius: 50%; background: var(--accent); flex-shrink: 0; }

/* Form styles */
.bm-form { display: flex; flex-direction: column; gap: 1rem; }
.bm-form label {
  display: block;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.5rem;
}
.bm-form input, .bm-form select, .bm-form textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  font-family: var(--font-sans);
  font-size: 14px;
  outline: none;
  transition: border-color 0.2s;
}
.bm-form input:focus, .bm-form select:focus, .bm-form textarea:focus { border-color: var(--accent); }
.bm-form textarea { resize: none; }
.bm-form-success {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  height: 100%;
  gap: 1rem;
  border: 1px solid var(--border);
  padding: 2.5rem;
  background: var(--surface);
}
.bm-form-success__tick {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 32px;
  color: var(--accent);
}

/* ─── Terms / Privacy pages ────────────────────────────────────── */
.bm-legal { max-width: 1280px; margin: 0 auto; padding: 4rem 1.5rem; }
@media (min-width: 768px) { .bm-legal { padding: 4rem 2.5rem; } }
.bm-legal h1 { font-weight: 300; font-size: clamp(36px, 5vw, 60px); letter-spacing: -0.03em; margin-bottom: 3rem; }
.bm-legal h2 { font-size: 20px; font-weight: 300; letter-spacing: -0.02em; margin-top: 2.5rem; margin-bottom: 0.75rem; }
.bm-legal p { font-size: 15px; line-height: 1.8; color: var(--muted); margin-bottom: 1rem; }

/* ─── 404 page ─────────────────────────────────────────────────── */
.bm-404 {
  min-height: 70vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0 1.5rem;
  text-align: center;
}
.bm-404__code { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); margin-bottom: 1.5rem; }
.bm-404__heading { font-weight: 300; letter-spacing: -0.03em; margin-bottom: 1rem; font-size: clamp(36px, 5vw, 64px); }
.bm-404__body { font-size: 15px; color: var(--muted); max-width: 400px; margin-bottom: 2.5rem; }

/* ─── Testimonials ─────────────────────────────────────────────── */
.bm-testimonials { max-width: 1280px; margin: 0 auto; padding: 5rem 1.5rem; }
@media (min-width: 768px) { .bm-testimonials { padding: 5rem 2.5rem; } }
.bm-testimonials__label { font-size: 13px; color: var(--muted); margin-bottom: 2.5rem; }
.bm-testimonials__grid { display: grid; grid-template-columns: 1fr; gap: 0.75rem; }
@media (min-width: 768px) { .bm-testimonials__grid { grid-template-columns: repeat(2, 1fr); } }
.bm-testimonial {
  border: 1px solid var(--border);
  padding: 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2.5rem;
  background: var(--surface);
}
.bm-testimonial__quote { font-size: 17px; font-weight: 300; line-height: 1.65; letter-spacing: -0.01em; }
.bm-testimonial__author { display: flex; align-items: center; gap: 1rem; }
.bm-testimonial__avatar {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--border); color: var(--muted);
  font-family: var(--font-mono); font-size: 11px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.bm-testimonial__name { font-size: 13px; font-weight: 500; }
.bm-testimonial__role { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }

/* ─── Partners section (homepage) ─────────────────────────────── */
.bm-partners-section {
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.bm-partners-section__inner { max-width: 1280px; margin: 0 auto; padding: 5rem 1.5rem; }
@media (min-width: 768px) { .bm-partners-section__inner { padding: 5rem 2.5rem; } }
.bm-partners-section__grid { display: grid; grid-template-columns: 1fr; gap: 4rem; align-items: start; }
@media (min-width: 768px) { .bm-partners-section__grid { grid-template-columns: 1fr 1fr; } }
.bm-partners-section h2,
.bm-partners-section__h2 { font-weight: 300; font-size: clamp(32px,4vw,52px); line-height: 1.08; letter-spacing: -0.03em; margin-bottom: 1.5rem; color: var(--fg); }
.bm-partners-section__h2-em { font-style: normal; color: var(--accent); }
.bm-partners-section p,
.bm-partners-section__body { font-size: 15px; line-height: 1.75; color: var(--muted); max-width: 440px; }
.bm-partners-detail-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.25rem 0; border-bottom: 1px solid var(--border);
}
@media (max-width: 767px) {
  .bm-partners-detail-row { flex-direction: column; align-items: flex-start; gap: 0.25rem; }
}
.bm-partners-detail-row span:first-child { font-size: 13px; color: var(--muted); }
.bm-partners-detail-row span:last-child { font-family: var(--font-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.05em; }

/* ─── Skip link (WordPress theme) ─────────────────────────────── */
.bm-skip-link {
  position: fixed;
  left: 0.5rem;
  top: 0.5rem;
  z-index: 9999;
  padding: 0.5rem 1rem;
  font-size: 12px;
  font-family: var(--font-mono);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--accent);
  color: white;
  transform: translateY(-200%);
  transition: transform 0.2s;
}
.bm-skip-link:focus { transform: translateY(0); }

/* ─── Nav additions ────────────────────────────────────────────── */
.bm-nav__wordmark {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg);
  overflow-wrap: break-word;
  word-break: break-word;
}
.bm-nav__actions { display: flex; align-items: center; gap: 1rem; }
.bm-nav__link { font-size: 13px; color: var(--muted); transition: color 0.2s; }
.bm-nav__link:hover { color: var(--fg); }
.bm-nav__toggle {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 0.5rem;
  background: transparent;
  border: none;
  cursor: pointer;
}
@media (min-width: 768px) { .bm-nav__toggle { display: none; } }
.bm-nav__toggle span { display: block; height: 1px; background: var(--fg); }
.bm-nav__toggle span:nth-child(1),
.bm-nav__toggle span:nth-child(2) { width: 20px; }
.bm-nav__toggle span:nth-child(3) { width: 12px; }
.bm-nav__drawer {
  display: none;
  flex-direction: column;
  gap: 1rem;
  padding: 1rem 1.5rem;
  border-top: 1px solid var(--border);
  background: var(--bg);
}
.bm-nav__drawer.bm-nav-open { display: flex; }
@media (min-width: 768px) { .bm-nav__drawer { display: none !important; } }
.bm-nav__drawer nav { display: flex; flex-direction: column; }
.bm-nav__drawer a { display: block; font-size: 15px; color: var(--fg); padding: 0.875rem 0; border-bottom: 1px solid var(--border); }
.bm-nav__drawer a:last-child { border-bottom: none; }

/* ─── Footer rebuild ───────────────────────────────────────────── */
.bm-footer {
  border-top: 1px solid var(--border);
  background: var(--bg);
}
.bm-footer__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 4rem 1.5rem 3rem;
}
@media (min-width: 768px) { .bm-footer__inner { padding: 4rem 2.5rem 3rem; } }
.bm-footer__top {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid var(--border);
  margin-bottom: 2rem;
}
@media (min-width: 768px) { .bm-footer__top { grid-template-columns: 220px 1fr; } }
.bm-footer__brand {}
.bm-footer__tagline { font-size: 13px; color: var(--muted); margin-top: 0.75rem; line-height: 1.6; max-width: 200px; }
.bm-footer__cols {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
@media (min-width: 640px) { .bm-footer__cols { grid-template-columns: repeat(3, 1fr); } }
.bm-footer__col { display: flex; flex-direction: column; gap: 0.75rem; }
.bm-footer__col-heading {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--fg);
  margin-bottom: 0.25rem;
}
.bm-footer__col a { font-size: 13px; color: var(--muted); transition: color 0.2s; }
.bm-footer__col a:hover { color: var(--fg); }
.bm-footer__bottom { display: flex; flex-direction: column; gap: 0.75rem; }
@media (min-width: 768px) { .bm-footer__bottom { flex-direction: row; align-items: flex-end; justify-content: space-between; } }
.bm-footer__legal { font-size: 11px; color: var(--muted); line-height: 1.7; max-width: 600px; overflow-wrap: break-word; word-break: break-word; }
.bm-footer__copy { font-family: var(--font-mono); font-size: 11px; color: var(--muted); overflow-wrap: break-word; word-break: break-word; }

/* ─── Button variants ──────────────────────────────────────────── */
.bm-btn--ghost {
  background: transparent;
  color: var(--fg);
  border: 1px solid var(--border);
}
.bm-btn--ghost:hover { border-color: var(--accent); color: var(--accent); background: transparent; }
.bm-btn--light {
  background: white;
  color: var(--accent);
}
.bm-btn--light:hover { background: rgba(255,255,255,0.88); color: var(--accent); }
.bm-btn--full { display: block; width: 100%; text-align: center; padding: 1rem; }

/* ─── Section layout helpers ───────────────────────────────────── */
.bm-section { padding: 5rem 0; }
.bm-section__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 3rem;
  flex-wrap: wrap;
  gap: 1rem;
}
.bm-section__eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  width: 100%;
  margin-bottom: 0.5rem;
}
.bm-section__title {
  font-weight: 300;
  font-size: clamp(28px, 4vw, 44px);
  letter-spacing: -0.02em;
  line-height: 1.1;
}
.bm-section__link {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fg);
  border-bottom: 1px solid var(--fg);
  padding-bottom: 1px;
}
.bm-section__link:hover { color: var(--accent); border-color: var(--accent); }

/* ─── Products grid (WordPress / WooCommerce version) ─────────── */
.bm-products-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}
@media (min-width: 640px) { .bm-products-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .bm-products-grid { grid-template-columns: repeat(3, 1fr); } }
.bm-product-card__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}
.bm-product-card__tagline {
  font-size: 12px;
  color: rgba(255,255,255,0.6);
  line-height: 1.5;
  margin-top: 0.5rem;
}

/* ─── Stats (front-page) ───────────────────────────────────────── */
.bm-stat {
  padding: 3.5rem 2rem;
  border-right: 1px solid rgba(255,255,255,0.1);
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
@media (min-width: 1024px) { .bm-stat { border-bottom: none; } }
.bm-stat:last-child { border-right: none; }
.bm-stat__value {
  font-family: var(--font-mono);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.03em;
  color: white;
  font-size: clamp(28px, 3.5vw, 44px);
  margin-bottom: 0.5rem;
}
.bm-stat__label { font-size: 13px; color: rgba(255,255,255,0.5); }

/* ─── Process (front-page) ─────────────────────────────────────── */
.bm-process__title { font-size: 20px; font-weight: 300; letter-spacing: -0.02em; margin-bottom: 0.75rem; }

/* ─── CTA banner ───────────────────────────────────────────────── */
.bm-cta-banner {
  background: var(--accent);
  border-top: 1px solid rgba(255,255,255,0.1);
}
.bm-cta-banner__inner {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding-top: 4rem;
  padding-bottom: 4rem;
}
@media (min-width: 768px) {
  .bm-cta-banner__inner { flex-direction: row; align-items: flex-end; justify-content: space-between; }
}
.bm-cta-banner__title {
  font-weight: 300;
  font-size: clamp(28px, 4vw, 48px);
  letter-spacing: -0.03em;
  color: white;
  margin-bottom: 0.75rem;
}
.bm-cta-banner__sub { font-size: 15px; color: rgba(255,255,255,0.6); }

/* ─── Page content (page.php) ──────────────────────────────────── */
.bm-page-content { padding: 4rem 0; }
.bm-page-content__title {
  font-weight: 300;
  font-size: clamp(32px, 5vw, 56px);
  letter-spacing: -0.03em;
  margin-bottom: 2.5rem;
  line-height: 1.1;
}
.bm-page-content__body { max-width: 680px; }
.bm-page-content__body p { font-size: 15px; line-height: 1.8; color: var(--muted); margin-bottom: 1.25rem; }
.bm-page-content__body h2 { font-size: 22px; font-weight: 300; letter-spacing: -0.02em; margin: 2rem 0 0.75rem; }
.bm-page-content__body h3 { font-size: 18px; font-weight: 400; margin: 1.5rem 0 0.5rem; }
.bm-page-content__body a { color: var(--accent); text-decoration: underline; }
.bm-page-content__body ul { list-style: disc; padding-left: 1.25rem; margin-bottom: 1rem; }
.bm-page-content__body li { font-size: 15px; line-height: 1.8; color: var(--muted); margin-bottom: 0.25rem; }

/* ─── Blog / index.php ─────────────────────────────────────────── */
.bm-posts-grid { display: flex; flex-direction: column; gap: 2rem; max-width: 720px; }
.bm-post-card { border-bottom: 1px solid var(--border); padding-bottom: 2rem; }
.bm-post-card__date {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.75rem;
}
.bm-post-card__title { font-size: 22px; font-weight: 300; letter-spacing: -0.02em; margin-bottom: 0.75rem; }
.bm-post-card__title a { color: var(--fg); }
.bm-post-card__title a:hover { color: var(--accent); }
.bm-post-card__excerpt { font-size: 14px; line-height: 1.75; color: var(--muted); }
.bm-pagination { margin-top: 3rem; }
.bm-pagination .page-numbers { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.1em; color: var(--muted); padding: 0.25rem 0.5rem; transition: color 0.2s; }
.bm-pagination .current { color: var(--fg); }

/* ─── Single product hero (WooCommerce) ────────────────────────── */
.bm-product-hero { padding: 4rem 0; }
.bm-product-hero__image-wrap {
  position: relative;
  border: 1px solid var(--accent);
  overflow: hidden;
  min-height: 480px;
}
.bm-product-hero__image {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 480px;
}
.bm-product-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(14,14,12,0.72) 0%, rgba(14,14,12,0.15) 40%, rgba(14,14,12,0.15) 60%, rgba(14,14,12,0.82) 100%);
  z-index: 1;
}
.bm-product-hero__overlay-content {
  position: absolute;
  inset: 0;
  z-index: 2;
  padding: 3rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.bm-product-hero__tag {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.65);
  margin-bottom: 4rem;
}
.bm-product-hero__purity {
  font-family: var(--font-mono);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.04em;
  color: white;
  font-size: clamp(48px, 14vw, 120px);
  margin-bottom: 1rem;
}
.bm-product-hero__purity-label { font-size: 15px; color: rgba(255,255,255,0.75); }
.bm-product-hero__badges { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 2rem; }
.bm-product-hero__badge {
  border: 1px solid rgba(255,255,255,0.2);
  background: rgba(0,0,0,0.3);
  backdrop-filter: blur(8px);
  padding: 0.75rem 1rem;
}
.bm-product-hero__badge-label {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  margin-bottom: 2px;
}
.bm-product-hero__badge-value { font-family: var(--font-mono); font-size: 12px; color: white; }
.bm-product-hero__details { display: flex; flex-direction: column; justify-content: center; }
.bm-product-hero__name {
  font-weight: 300;
  letter-spacing: -0.03em;
  margin-bottom: 0.75rem;
  font-size: clamp(28px, 4vw, 44px);
}
.bm-product-hero__tagline { font-size: 15px; line-height: 1.75; color: var(--muted); margin-bottom: 2rem; }
.bm-product-hero__desc { font-size: 15px; line-height: 1.75; margin-bottom: 2.5rem; }
.bm-product-hero__sizes { margin-bottom: 1.5rem; }
.bm-product-hero__sizes-label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.75rem;
}
.bm-product-hero__sizes-btns { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.bm-product-hero__price {
  font-family: var(--font-mono);
  font-size: 24px;
  font-weight: 300;
  letter-spacing: -0.02em;
  margin-bottom: 0.75rem;
}
.bm-product-hero__stock { font-family: var(--font-mono); font-size: 12px; color: var(--muted); margin-bottom: 1.5rem; }
.bm-product-hero__footnote { font-family: var(--font-mono); font-size: 11px; text-align: center; margin-top: 1rem; color: var(--muted); }
.cart { margin: 0; }

/* ─── Product info tabs ────────────────────────────────────────── */
.bm-tabs-section { border-top: 1px solid var(--border); }
.bm-tabs__bar {
  display: flex;
  border-bottom: 1px solid var(--border);
  padding: 0;
}
.bm-tab {
  padding: 1rem 1.5rem;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  cursor: pointer;
  color: var(--muted);
  transition: all 0.2s;
}
.bm-tab--active,
.bm-tab[aria-selected="true"] {
  border-bottom-color: var(--accent);
  color: var(--fg);
}
.bm-tab-panel {
  padding: 2.5rem 0;
  max-width: 640px;
}
.bm-tab-panel[hidden] { display: none; padding: 0; }
.bm-tab-panel p { font-size: 15px; line-height: 1.8; }
@media (max-width: 767px) {
  .bm-tabs__bar { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .bm-tabs__bar::-webkit-scrollbar { display: none; }
  .bm-tab-panel { padding-left: 1.25rem; padding-right: 1.25rem; max-width: 100%; }
}
.bm-disclaimer {
  margin-top: 1.5rem;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.75rem 1rem;
  border: 1px solid var(--border);
  color: var(--muted);
}

/* ─── Related products (single product page) ───────────────────── */
.bm-related { border-top: 1px solid var(--border); padding: 4rem 0; }
.bm-related__heading { font-size: 13px; color: var(--muted); margin-bottom: 2rem; }

/* ─── Hero layout variant (front-page light version) ───────────── */
.bm-hero--light {
  background: var(--bg);
  color: var(--fg);
  min-height: auto;
}
.bm-hero__text {}
.bm-hero__headline {
  font-weight: 300;
  line-height: 1.1;
  letter-spacing: -0.025em;
  margin-bottom: 1.5rem;
  font-size: clamp(36px, 5vw, 64px);
}
.bm-hero__sub {
  font-size: 16px;
  line-height: 1.75;
  color: var(--muted);
  margin-bottom: 2.5rem;
  max-width: 500px;
}
.bm-hero__image { display: flex; align-items: center; justify-content: center; }
.bm-hero__image img { width: 100%; height: auto; }
@media (min-width: 1024px) {
  .bm-hero__inner { flex-direction: row; align-items: center; gap: 6rem; }
}

/* Fade-in delay support */
[style*="--delay"] { transition-delay: var(--delay, 0s); }

/* ─── About page ─────────────────────────────────────────────────────────── */
.bm-about-hero { border-bottom: 1px solid var(--border); padding: 5rem 0 4rem; }
.bm-about-hero__eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.bm-about-hero__eyebrow-line { display: block; width: 1.5rem; height: 1px; background: var(--muted); }
.bm-about-hero__heading {
  font-size: clamp(40px, 6vw, 80px);
  font-weight: 300;
  line-height: 1.05;
  letter-spacing: -0.03em;
  margin-bottom: 2rem;
  max-width: 780px;
}
.bm-about-hero__accent { color: var(--accent); font-style: normal; }
.bm-about-hero__intro { font-size: 16px; line-height: 1.8; color: var(--muted); max-width: 560px; }

.bm-about-lab-wrap { border-bottom: 1px solid var(--border); }
.bm-about-lab-img { width: 100%; height: clamp(240px, 40vw, 520px); object-fit: cover; object-position: center; display: block; }

.bm-about-story { border-bottom: 1px solid var(--border); padding: 4rem 0; }
.bm-about-story__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4rem;
  align-items: stretch;
}
@media (min-width: 1024px) { .bm-about-story__grid { grid-template-columns: 1fr 1fr; } }
.bm-about-story__grid > div { display: flex; flex-direction: column; }
.bm-about-story__heading { font-size: 28px; font-weight: 300; letter-spacing: -0.02em; margin-bottom: 1.5rem; }
.bm-about-story__body { font-size: 15px; line-height: 1.8; color: var(--muted); margin-bottom: 1.25rem; }

.bm-about-numbers { background: var(--accent); padding: 2.5rem; flex: 1; display: flex; flex-direction: column; box-sizing: border-box; }
.bm-about-numbers__label { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.45); margin-bottom: 2rem; }
.bm-about-numbers__row { padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,0.12); }
.bm-about-numbers__num { font-family: var(--font-mono); font-size: 26px; font-weight: 700; letter-spacing: -0.02em; color: white; display: block; margin-bottom: 0.25rem; }
.bm-about-numbers__desc { font-size: 13px; color: rgba(255,255,255,0.5); }

.bm-about-values { border-bottom: 1px solid var(--border); }
.bm-about-values__header { padding: 1.5rem 0; border-bottom: 1px solid var(--border); }
.bm-about-values__header-text { font-size: 13px; color: var(--muted); }
.bm-about-values__grid { display: grid; grid-template-columns: 1fr; }
@media (min-width: 768px) { .bm-about-values__grid { grid-template-columns: repeat(3, 1fr); } }
.bm-about-values__item { padding: 3rem 2.5rem; border-top: 1px solid var(--border); border-right: 1px solid var(--border); }
@media (min-width: 768px) { .bm-about-values__item:last-child { border-right: none; } }
@media (max-width: 767px) { .bm-about-values__item { border-right: none; } }
.bm-about-values__num { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.15em; color: var(--accent); margin-bottom: 1.25rem; }
.bm-about-values__heading { font-size: 19px; font-weight: 300; letter-spacing: -0.02em; margin-bottom: 0.75rem; }
.bm-about-values__body { font-size: 14px; line-height: 1.75; color: var(--muted); }

.bm-about-cta { padding: 4rem 0; display: flex; flex-direction: column; gap: 1.5rem; align-items: flex-start; }
@media (min-width: 640px) { .bm-about-cta { flex-direction: row; align-items: center; justify-content: space-between; } }
.bm-about-cta__heading { font-size: clamp(24px, 3vw, 36px); font-weight: 300; letter-spacing: -0.02em; }
.bm-about-cta__btn {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 1rem 2rem;
  background: var(--accent);
  color: white;
  display: inline-block;
  transition: background 0.2s;
  white-space: nowrap;
}
.bm-about-cta__btn:hover { background: var(--accent-l); color: white; }

/* ─── Partners page ──────────────────────────────────────────────────────── */
.bm-partners-hero { border-bottom: 1px solid var(--border); padding: 5rem 0 4rem; }
.bm-partners-hero__eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.bm-partners-hero__eyebrow-line { display: block; width: 1.5rem; height: 1px; background: var(--muted); }
.bm-partners-hero__heading {
  font-size: clamp(40px, 6vw, 80px);
  font-weight: 300;
  line-height: 1.05;
  letter-spacing: -0.03em;
  margin-bottom: 2rem;
  max-width: 760px;
}
.bm-partners-hero__accent { color: var(--accent); font-style: normal; }
.bm-partners-hero__intro { font-size: 16px; line-height: 1.8; color: var(--muted); max-width: 520px; }

.bm-partners-steps { border-bottom: 1px solid var(--border); }
.bm-partners-steps__grid { display: grid; grid-template-columns: 1fr; }
@media (min-width: 768px) { .bm-partners-steps__grid { grid-template-columns: repeat(3, 1fr); } }
.bm-partners-steps__item {
  padding: 3.5rem 2.5rem;
  border-top: 1px solid var(--border);
  border-right: 1px solid var(--border);
}
@media (min-width: 768px) { .bm-partners-steps__item:last-child { border-right: none; } }
@media (max-width: 767px) { .bm-partners-steps__item { border-right: none; } }
.bm-partners-steps__num { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.15em; color: var(--accent); margin-bottom: 1.25rem; }
.bm-partners-steps__heading { font-size: 20px; font-weight: 300; letter-spacing: -0.02em; margin-bottom: 0.75rem; }
.bm-partners-steps__body { font-size: 14px; line-height: 1.75; color: var(--muted); }

.bm-partners-details { border-bottom: 1px solid var(--border); padding: 4rem 0; }
.bm-partners-details__label { font-size: 13px; color: var(--muted); margin-bottom: 2rem; }
.bm-partners-details__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}
@media (min-width: 640px) { .bm-partners-details__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .bm-partners-details__grid { grid-template-columns: repeat(4, 1fr); } }
.bm-partners-details__box {
  border: 1px solid var(--border);
  padding: 1.5rem;
  background: var(--surface);
}
.bm-partners-details__box-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.5rem;
}
.bm-partners-details__box-value { font-size: 16px; font-weight: 300; letter-spacing: -0.01em; color: var(--fg); }

.bm-partners-apply { padding: 4rem 0; }
.bm-partners-apply__grid { display: grid; grid-template-columns: 1fr; gap: 4rem; }
@media (min-width: 1024px) { .bm-partners-apply__grid { grid-template-columns: 1fr 1fr; } }
.bm-partners-apply__heading { font-size: 28px; font-weight: 300; letter-spacing: -0.02em; margin-bottom: 1rem; }
.bm-partners-apply__intro { font-size: 15px; line-height: 1.75; color: var(--muted); margin-bottom: 2rem; }

.bm-partners-who { border: 1px solid var(--border); padding: 1.5rem; background: var(--surface); }
.bm-partners-who__label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 0.5rem;
}
.bm-partners-who__row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--border);
}
.bm-partners-who__dot { width: 4px; height: 4px; border-radius: 50%; background: var(--accent); flex-shrink: 0; }
.bm-partners-who__text { font-size: 13px; color: var(--muted); }

.bm-partners-form { display: flex; flex-direction: column; gap: 1rem; }
.bm-partners-form__field { display: flex; flex-direction: column; gap: 0.5rem; }
.bm-partners-form__label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
.bm-partners-form__input {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  font-size: 14px;
  font-family: var(--font-sans);
  outline: none;
  transition: border-color 0.2s;
  box-sizing: border-box;
}
.bm-partners-form__input:focus { border-color: var(--accent); }
.bm-partners-form__textarea { resize: none; }
.bm-partners-form__submit {
  width: 100%;
  padding: 1rem;
  background: var(--accent);
  color: white;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
  margin-top: 0.5rem;
}
.bm-partners-form__submit:hover { background: var(--accent-l); }

.bm-partners-form__errors {
  border: 1px solid #c0392b;
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
  list-style: none;
}
.bm-partners-form__errors li { font-size: 13px; color: #c0392b; margin-bottom: 0.25rem; }
.bm-partners-form__errors li:last-child { margin-bottom: 0; }

.bm-partners-success {
  border: 1px solid var(--border);
  padding: 2.5rem;
  background: var(--surface);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.bm-partners-success__tick { font-family: var(--font-mono); font-size: 32px; font-weight: 700; color: var(--accent); }
.bm-partners-success__heading { font-size: 22px; font-weight: 300; letter-spacing: -0.02em; }
.bm-partners-success__body { font-size: 14px; line-height: 1.75; color: var(--muted); }

/* ─── Contact page ─────────────────────────────────────────────── */
.bm-contact-wrap { padding: 3rem 0 6rem; }
.bm-contact-cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
@media (min-width: 768px) { .bm-contact-cols { grid-template-columns: 280px 1fr; gap: 4rem; } }
.bm-contact-info__label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 0.35rem;
}
.bm-contact-info__value { font-size: 14px; color: var(--muted); line-height: 1.7; }
.bm-contact-info__value a { color: var(--fg); text-decoration: underline; }
.bm-contact-success {
  padding: 2.5rem;
  border: 1px solid var(--accent);
  background: var(--surface);
}
.bm-contact-success__heading { font-size: 20px; font-weight: 300; letter-spacing: -0.02em; margin-bottom: 0.5rem; }
.bm-contact-success__body { font-size: 14px; color: var(--muted); }
.bm-form-error { font-size: 13px; color: #c0392b; margin-bottom: 1rem; padding: 0.75rem 1rem; border: 1px solid #c0392b; }

/* ─── FAQ page ─────────────────────────────────────────────────── */
.bm-faq-wrap { padding: 3rem 0 6rem; }
.bm-faq-list { max-width: 800px; }
.bm-faq-item {
  border-bottom: 1px solid var(--border);
}
.bm-faq-item:first-child { border-top: 1px solid var(--border); }
.bm-faq-question {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.25rem 0;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: -0.01em;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.bm-faq-question::-webkit-details-marker { display: none; }
.bm-faq-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  position: relative;
}
.bm-faq-icon::before,
.bm-faq-icon::after {
  content: '';
  position: absolute;
  background: var(--fg);
  transition: opacity 0.2s, transform 0.2s;
}
.bm-faq-icon::before { width: 12px; height: 1px; top: 50%; left: 3px; transform: translateY(-50%); }
.bm-faq-icon::after  { width: 1px; height: 12px; top: 3px; left: 50%; transform: translateX(-50%); }
details[open] .bm-faq-icon::after { opacity: 0; transform: translateX(-50%) rotate(90deg); }
.bm-faq-answer { padding: 0 0 1.5rem; }
.bm-faq-answer p { font-size: 14px; line-height: 1.8; color: var(--muted); }
.bm-faq-footer { max-width: 800px; margin-top: 3rem; font-size: 14px; color: var(--muted); }
.bm-faq-footer a { color: var(--fg); text-decoration: underline; }

/* ─── Legal pages (Terms, Privacy) ────────────────────────────── */
.bm-legal-wrap { padding: 3rem 0 6rem; }
.bm-legal-content { max-width: 800px; }
.bm-legal-updated { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-bottom: 2.5rem; }
.bm-legal-content h2 { font-size: 16px; font-weight: 600; letter-spacing: -0.01em; margin: 2rem 0 0.75rem; color: var(--fg); }
.bm-legal-content p { font-size: 14px; line-height: 1.85; color: var(--muted); margin-bottom: 1rem; }
.bm-legal-content ul { padding-left: 1.25rem; margin-bottom: 1rem; }
.bm-legal-content li { font-size: 14px; line-height: 1.85; color: var(--muted); margin-bottom: 0.35rem; }
.bm-legal-content a { color: var(--fg); text-decoration: underline; }

/* ─── Shipping page ─────────────────────────────────────────────── */
.bm-shipping-wrap { padding: 3rem 0 6rem; }
.bm-shipping-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  margin-bottom: 4rem;
}
@media (min-width: 768px) { .bm-shipping-grid { grid-template-columns: repeat(4, 1fr); } }
.bm-shipping-stat {
  background: var(--surface);
  padding: 2rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.bm-shipping-stat__value { font-family: var(--font-mono); font-size: 28px; font-weight: 700; letter-spacing: -0.04em; color: var(--fg); }
.bm-shipping-stat__label { font-size: 12px; line-height: 1.5; color: var(--muted); }

/* ─── Mobile overflow hardening ─────────────────────────────────── */

/* Cart/checkout table: scroll horizontally rather than overflow body */
@media (max-width: 767px) {
  .woocommerce-cart-form { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .woocommerce table.shop_table { min-width: 480px; }

  /* Nav actions must never wrap or shrink */
  .bm-nav__actions { flex-shrink: 0; gap: 0.5rem; }

  /* Trustbar items may wrap tightly */
  .bm-trustbar { gap: 0.75rem; padding: 0.875rem 1.25rem; }

  /* Hero purity counter: cap so it doesn't bust the grid on 320px */
  .bm-purity-display { font-size: clamp(64px, 20vw, 200px); }

  /* Ensure no section pads push content past 100vw */
  .bm-page-header { padding-left: 1.25rem; padding-right: 1.25rem; }
  .bm-hero__inner { padding-left: 1.25rem; padding-right: 1.25rem; }
  .bm-product-image-panel__content { padding: 1.75rem; }
}

/* Global image / embed guard */
img, video, iframe, embed, object { max-width: 100%; }

/* Prevent long unbroken strings (e.g. URLs, order numbers) from overflowing */
.bm-legal-content p,
.bm-legal-content li,
.woocommerce-page p { overflow-wrap: break-word; word-break: break-word; }

/* ─── WooCommerce default product image consistency ────────────── */
/* Applies to cross-sells, up-sells, related products, empty-cart
   suggestions — any WooCommerce-rendered product grid we haven't
   replaced with a custom template. Forces uniform 1:1 images. */
.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img {
  aspect-ratio: 1 / 1;
  object-fit: contain;
  object-position: center;
  width: 100%;
  display: block;
}

/* 2-column grid on mobile for any WooCommerce product list */
@media (max-width: 639px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 0.75rem;
  }
  .woocommerce ul.products li.product,
  .woocommerce-page ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    float: none !important;
  }
}

/* ─── Button text colour — DevTools-confirmed WooCommerce Block classes ─────
   These are appended last so no subsequent rule in this file can conflict.    */

/* "Proceed to Checkout" — WooCommerce Blocks cart */
.wc-block-cart__submit-button {
  color: #ffffff !important;
  background-color: #1E3A2F !important;
  padding: 14px 24px !important;
}
.wc-block-cart__submit-button .wc-block-components-button__text {
  color: #ffffff !important;
}
/* Text span inside all WC Blocks buttons */
.wc-block-components-button__text {
  color: #ffffff !important;
}
/* Loop / archive "Add to cart" (empty-cart suggestions, cross-sells, etc.) */
.add_to_cart_button {
  color: #ffffff !important;
  background-color: #1E3A2F !important;
  -webkit-appearance: none;
}
.add_to_cart_button:hover {
  background-color: #2D5443 !important;
  color: #ffffff !important;
}

/* ─── Mobile page padding & cart spacing (375–414px) ────────────────────────
   WooCommerce Blocks render their own container divs inside the_content() and
   don't inherit .bm-container's padding. Target them directly on mobile.      */
@media (max-width: 767px) {
  /* Cart & Checkout Blocks wrappers */
  .wp-block-woocommerce-cart,
  .wc-block-cart,
  .wp-block-woocommerce-checkout,
  .wc-block-checkout {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    box-sizing: border-box;
  }

  /* Empty-cart "New in store" product suggestions section */
  .wc-block-cart__empty-cart__title,
  .wp-block-woocommerce-empty-cart-block {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    box-sizing: border-box;
  }

  /* Vertical breathing room between cart line items */
  .wc-block-cart-items__row {
    padding-top: 1.25rem !important;
    padding-bottom: 1.25rem !important;
    border-bottom: 1px solid var(--border);
  }
  .wc-block-cart-items__row:first-child {
    padding-top: 0 !important;
  }
}
