/*
╔══════════════════════════════════════════════════════╗
║  BECOMING HER WELLNESS — Refined Feminine Aesthetic  ║
║  v2.0 | Elegant Wellness | Premium & Empowering      ║
╚══════════════════════════════════════════════════════╝
*/

/* ── GOOGLE FONTS ── */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;1,9..40,300&family=Great+Vibes&display=swap');

/* ══════════════════════════════════════════════
   DESIGN TOKENS
═══════════════════════════════════════════════ */
:root {
  /* ── Palette ── */
  --c-deep:      #1C3028;   /* Deep forest – authority */
  --c-sage:      #4E7A5E;   /* Mid sage – warmth */
  --c-fern:      #7EAA8A;   /* Light fern – freshness */
  --c-mist:      #B8D4C0;   /* Pale mist – softness */
  --c-blush:     #D4A5A5;   /* Dusty rose – femininity */
  --c-blush-lt:  #F0DADA;   /* Light blush */
  --c-gold:      #C4955A;   /* Warm gold – luxury */
  --c-gold-lt:   #E8D5B0;   /* Pale gold */
  --c-ivory:     #FAF7F2;   /* Warm ivory base */
  --c-ivory-dk:  #F0EBE3;   /* Deeper ivory */
  --c-parchment: #E8E0D5;   /* Parchment */
  --c-charcoal:  #262626;   /* Near-black */
  --c-ink:       #1A1A1A;   /* Text dark */
  --c-slate:     #52524E;   /* Text mid */
  --c-stone:     #8A8A84;   /* Text light */
  --c-white:     #FFFFFF;

  /* ── Typography ── */
  --f-display:   'Cormorant Garamond', 'Georgia', serif;
  --f-script:    'Great Vibes', cursive;
  --f-body:      'DM Sans', system-ui, sans-serif;

  /* ── Sizing ── */
  --sp:          100px;  /* section padding */
  --r-xs:        4px;
  --r-sm:        8px;
  --r-md:        16px;
  --r-lg:        28px;
  --r-xl:        48px;
  --r-pill:      100px;

  /* ── Shadows ── */
  --sh-sm:   0 2px 12px rgba(28,48,40,0.06);
  --sh-md:   0 8px 40px rgba(28,48,40,0.09);
  --sh-lg:   0 24px 80px rgba(28,48,40,0.13);
  --sh-rose: 0 8px 40px rgba(212,165,165,0.18);
  --sh-gold: 0 8px 40px rgba(196,149,90,0.15);

  /* ── Transitions ── */
  --t-fast:  0.18s ease;
  --t-mid:   0.32s ease;
  --t-slow:  0.65s ease;

  /* ── Decorative ── */
  --petal-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cellipse cx='60' cy='30' rx='18' ry='28' fill='none' stroke='rgba(212,165,165,0.2)' stroke-width='1'/%3E%3Cellipse cx='85' cy='55' rx='18' ry='28' fill='none' stroke='rgba(212,165,165,0.2)' stroke-width='1' transform='rotate(72 85 55)'/%3E%3Cellipse cx='73' cy='90' rx='18' ry='28' fill='none' stroke='rgba(212,165,165,0.2)' stroke-width='1' transform='rotate(144 73 90)'/%3E%3Cellipse cx='47' cy='90' rx='18' ry='28' fill='none' stroke='rgba(212,165,165,0.2)' stroke-width='1' transform='rotate(216 47 90)'/%3E%3Cellipse cx='35' cy='55' rx='18' ry='28' fill='none' stroke='rgba(212,165,165,0.2)' stroke-width='1' transform='rotate(288 35 55)'/%3E%3C/svg%3E");
}

/* ══════════════════════════════════════════════
   RESET & BASE
═══════════════════════════════════════════════ */
*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: var(--f-body);
  background: var(--c-ivory);
  color: var(--c-ink);
  font-weight: 300;
  line-height: 1.78;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--c-sage); text-decoration: none; transition: color var(--t-fast); }
a:hover { color: var(--c-deep); }

/* ══════════════════════════════════════════════
   TYPOGRAPHY SYSTEM
═══════════════════════════════════════════════ */
h1,h2,h3,h4 {
  font-family: var(--f-display);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -0.01em;
  color: var(--c-deep);
}
h1 { font-size: clamp(2.8rem, 6vw, 5.2rem); font-style: italic; font-weight: 300; }
h2 { font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 500; }
h3 { font-size: clamp(1.5rem, 2.5vw, 2.2rem); font-weight: 400; }
h4 { font-size: clamp(1.2rem, 2vw, 1.6rem); font-weight: 500; }

h5 {
  font-family: var(--f-body);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-sage);
}
h6 {
  font-family: var(--f-body);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-stone);
}

p { color: var(--c-slate); font-size: 0.98rem; font-weight: 300; line-height: 1.82; }
strong, b { font-weight: 500; color: var(--c-ink); }
small { font-size: 0.82em; }

/* Script accent */
.script-accent {
  font-family: var(--f-script);
  font-size: 1.5em;
  color: var(--c-blush);
  line-height: 1;
  display: block;
  margin-bottom: 4px;
}

/* Section labels */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--f-body);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-gold);
  margin-bottom: 14px;
}
.eyebrow::before, .eyebrow::after {
  content: '';
  display: block;
  width: 24px;
  height: 1px;
  background: var(--c-gold);
  opacity: 0.6;
}
.eyebrow::after { display: none; }

/* Lead paragraph */
.lead {
  font-family: var(--f-display);
  font-size: clamp(1.1rem, 1.8vw, 1.35rem);
  font-style: italic;
  font-weight: 300;
  color: var(--c-slate);
  line-height: 1.65;
}

/* ══════════════════════════════════════════════
   DECORATIVE ELEMENTS
═══════════════════════════════════════════════ */
.bhw-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 18px 0 28px;
}
.bhw-divider::before, .bhw-divider::after {
  content: '';
  flex: 1;
  max-width: 40px;
  height: 1px;
  background: linear-gradient(90deg, var(--c-gold), transparent);
}
.bhw-divider::after { background: linear-gradient(270deg, var(--c-gold), transparent); }
.bhw-divider-icon {
  font-size: 0.6rem;
  color: var(--c-gold);
  opacity: 0.7;
}
.bhw-divider-center { justify-content: center; }
.bhw-divider-center::before { background: linear-gradient(90deg, transparent, var(--c-gold)); }
.bhw-divider-center::after { background: linear-gradient(270deg, transparent, var(--c-gold)); display: flex; }

.bhw-rule {
  width: 48px;
  height: 2px;
  background: linear-gradient(90deg, var(--c-gold), var(--c-blush));
  border-radius: 2px;
  margin: 16px 0 24px;
}
.bhw-rule-center { margin: 16px auto 24px; }

/* Decorative petal bg */
.petal-bg { background-image: var(--petal-url); }

/* Leaf ornament SVG */
.leaf-ornament {
  display: inline-block;
  width: 20px;
  height: 20px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 2 C14 6 16 12 10 18 C4 12 6 6 10 2Z' fill='none' stroke='%234E7A5E' stroke-width='0.8'/%3E%3Cline x1='10' y1='4' x2='10' y2='17' stroke='%234E7A5E' stroke-width='0.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  vertical-align: middle;
}

/* ══════════════════════════════════════════════
   TOP HEADER STRIP
═══════════════════════════════════════════════ */
.site-header {
  background: var(--c-deep);
  padding: 9px 0;
  position: relative;
  overflow: hidden;
}
.site-header::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(196,149,90,0.4), transparent);
}
.site-header p, .site-header a {
  color: rgba(255,255,255,0.65);
  font-size: 0.76rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  margin: 0;
  transition: color var(--t-fast);
}
.site-header a:hover { color: var(--c-gold-lt); }
.site-header i { color: var(--c-gold); font-size: 0.85rem; }
.site-header .social-icon {
  list-style: none; padding: 0; margin: 0;
  display: flex; gap: 16px; justify-content: flex-end; align-items: center;
}
.site-header .social-icon-link {
  color: rgba(255,255,255,0.5);
  font-size: 0.92rem;
  transition: color var(--t-fast), transform var(--t-fast);
}
.site-header .social-icon-link:hover {
  color: var(--c-blush);
  transform: translateY(-2px);
}

/* ══════════════════════════════════════════════
   NAVBAR — Refined Glass Strip
═══════════════════════════════════════════════ */
.navbar {
  background: rgba(250,247,242,0.97) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 18px 0;
  border-bottom: 1px solid rgba(196,149,90,0.12);
  position: sticky;
  top: 0;
  z-index: 1000;
  transition: padding var(--t-mid), box-shadow var(--t-mid), background var(--t-mid);
}
.navbar.scrolled {
  padding: 12px 0;
  box-shadow: var(--sh-md);
  background: rgba(250,247,242,0.99) !important;
}

/* Brand */
.navbar-brand {
  display: flex; align-items: center; gap: 13px; text-decoration: none;
}
.navbar-brand .logo { height: 42px; width: auto; }
.navbar-brand .brand-text {
  display: flex; flex-direction: column; line-height: 1.1;
}
.navbar-brand .brand-name {
  font-family: var(--f-display);
  font-size: 1.22rem;
  font-weight: 600;
  color: var(--c-deep);
  letter-spacing: -0.01em;
}
.navbar-brand .brand-sub {
  font-family: var(--f-body);
  font-size: 0.66rem;
  font-weight: 400;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--c-gold);
  margin-top: 1px;
}

/* Nav links */
.navbar-nav .nav-link {
  font-family: var(--f-body);
  font-size: 0.76rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-slate) !important;
  padding: 8px 13px !important;
  position: relative;
  transition: color var(--t-fast);
}
.navbar-nav .nav-link::after {
  content: '';
  position: absolute;
  bottom: 2px; left: 50%;
  transform: translateX(-50%) scaleX(0);
  width: 18px; height: 1px;
  background: var(--c-blush);
  transition: transform var(--t-mid);
}
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active {
  color: var(--c-deep) !important;
}
.navbar-nav .nav-link:hover::after,
.navbar-nav .nav-link.active::after {
  transform: translateX(-50%) scaleX(1);
}

/* CTA nav button */
.nav-cta-btn {
  background: var(--c-deep) !important;
  color: var(--c-ivory) !important;
  border-radius: var(--r-pill) !important;
  padding: 10px 24px !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  transition: background var(--t-fast), transform var(--t-fast) !important;
  border: 1.5px solid var(--c-deep) !important;
}
.nav-cta-btn::after { display: none !important; }
.nav-cta-btn:hover {
  background: var(--c-gold) !important;
  border-color: var(--c-gold) !important;
  color: var(--c-white) !important;
  transform: translateY(-1px);
}

/* Dropdown */
.dropdown-menu {
  border: 1px solid rgba(196,149,90,0.15);
  border-radius: var(--r-md);
  box-shadow: var(--sh-md);
  padding: 8px;
  background: var(--c-ivory);
}
.dropdown-item {
  font-size: 0.78rem; font-weight: 400; letter-spacing: 0.06em;
  color: var(--c-slate); border-radius: var(--r-sm); padding: 9px 14px;
  transition: background var(--t-fast), color var(--t-fast);
}
.dropdown-item:hover { background: var(--c-ivory-dk); color: var(--c-deep); }

/* Toggler */
.navbar-toggler { border: 1px solid rgba(196,149,90,0.2); border-radius: var(--r-sm); padding: 6px 10px; }
.navbar-toggler:focus { box-shadow: none; }

/* ══════════════════════════════════════════════
   UTILITY CLASSES
═══════════════════════════════════════════════ */
.sp     { padding: var(--sp) 0; }
.sp-sm  { padding: 60px 0; }
.sp-xs  { padding: 40px 0; }

.bg-ivory      { background: var(--c-ivory); }
.bg-ivory-dk   { background: var(--c-ivory-dk); }
.bg-deep       { background: var(--c-deep); }
.bg-sage       { background: var(--c-sage); }
.bg-blush-lt   { background: var(--c-blush-lt); }
.bg-parchment  { background: var(--c-parchment); }

.text-deep   { color: var(--c-deep) !important; }
.text-sage   { color: var(--c-sage) !important; }
.text-gold   { color: var(--c-gold) !important; }
.text-blush  { color: var(--c-blush) !important; }
.text-stone  { color: var(--c-stone) !important; }

/* ══════════════════════════════════════════════
   BUTTONS — Elegant & Layered
═══════════════════════════════════════════════ */
.btn-primary {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--c-deep);
  color: var(--c-ivory);
  border: 1.5px solid var(--c-deep);
  border-radius: var(--r-pill);
  padding: 14px 34px;
  font-family: var(--f-body);
  font-size: 0.76rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase;
  cursor: pointer; white-space: nowrap;
  transition: all var(--t-fast);
  box-shadow: none;
}
.btn-primary:hover {
  background: var(--c-sage);
  border-color: var(--c-sage);
  color: var(--c-white);
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(78,122,94,0.28);
}

.btn-outline {
  display: inline-flex; align-items: center; gap: 8px;
  background: transparent;
  color: var(--c-deep);
  border: 1.5px solid var(--c-deep);
  border-radius: var(--r-pill);
  padding: 13px 32px;
  font-family: var(--f-body);
  font-size: 0.76rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase;
  cursor: pointer; white-space: nowrap;
  transition: all var(--t-fast);
}
.btn-outline:hover {
  background: var(--c-deep);
  color: var(--c-ivory);
  transform: translateY(-2px);
}

.btn-gold {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--c-gold);
  color: var(--c-white);
  border: 1.5px solid var(--c-gold);
  border-radius: var(--r-pill);
  padding: 14px 34px;
  font-family: var(--f-body);
  font-size: 0.76rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase;
  cursor: pointer; white-space: nowrap;
  transition: all var(--t-fast);
}
.btn-gold:hover {
  background: #b8864a;
  border-color: #b8864a;
  color: var(--c-white);
  transform: translateY(-2px);
  box-shadow: var(--sh-gold);
}

.btn-blush {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--c-blush-lt);
  color: var(--c-deep);
  border: 1.5px solid var(--c-blush);
  border-radius: var(--r-pill);
  padding: 13px 32px;
  font-family: var(--f-body);
  font-size: 0.76rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase;
  cursor: pointer; white-space: nowrap;
  transition: all var(--t-fast);
}
.btn-blush:hover {
  background: var(--c-blush);
  border-color: var(--c-blush);
  color: var(--c-white);
  transform: translateY(-2px);
  box-shadow: var(--sh-rose);
}

.btn-ivory {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--c-ivory);
  color: var(--c-deep);
  border: 1.5px solid rgba(250,247,242,0.4);
  border-radius: var(--r-pill);
  padding: 13px 32px;
  font-family: var(--f-body);
  font-size: 0.76rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase;
  cursor: pointer; white-space: nowrap;
  transition: all var(--t-fast);
}
.btn-ivory:hover {
  background: var(--c-white);
  border-color: var(--c-white);
  transform: translateY(-2px);
}

.btn-ghost-white {
  display: inline-flex; align-items: center; gap: 8px;
  background: transparent;
  color: rgba(255,255,255,0.85);
  border: 1px solid rgba(255,255,255,0.35);
  border-radius: var(--r-pill);
  padding: 13px 32px;
  font-family: var(--f-body);
  font-size: 0.76rem; font-weight: 400; letter-spacing: 0.14em; text-transform: uppercase;
  cursor: pointer; white-space: nowrap;
  transition: all var(--t-fast);
}
.btn-ghost-white:hover {
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.6);
  color: var(--c-white);
}

/* Small button variant */
.btn-sm { padding: 9px 22px; font-size: 0.7rem; }

/* ══════════════════════════════════════════════
   CHECKLIST
═══════════════════════════════════════════════ */
.check-list { list-style: none; padding: 0; margin: 20px 0 28px; }
.check-list li {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 6px 0;
  font-size: 0.92rem;
  color: var(--c-slate);
}
.check-list li::before {
  content: '';
  display: inline-block;
  width: 18px; height: 18px; min-width: 18px;
  border-radius: 50%;
  background: var(--c-blush-lt);
  border: 1.5px solid var(--c-blush);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 10 8'%3E%3Cpath d='M1 4l2.5 2.5L9 1' stroke='%23C4955A' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  margin-top: 3px;
  flex-shrink: 0;
}

/* ══════════════════════════════════════════════
   STAT BLOCK
═══════════════════════════════════════════════ */
.stats-row {
  display: flex; gap: 36px; flex-wrap: wrap;
  margin-top: 36px; padding-top: 32px;
  border-top: 1px solid var(--c-parchment);
}
.stat-item .stat-num {
  display: block;
  font-family: var(--f-display);
  font-size: 2.6rem; font-weight: 500;
  color: var(--c-deep); line-height: 1;
}
.stat-item .stat-lbl {
  display: block; font-size: 0.68rem; font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--c-stone); margin-top: 5px;
}

/* Counter */
.bhw-count { display: inline; }

/* ══════════════════════════════════════════════
   HERO — Cinematic Full-screen
═══════════════════════════════════════════════ */
.hero {
  position: relative;
  height: 95vh; min-height: 600px; max-height: 960px;
  overflow: hidden;
  background: var(--c-deep);
}
.hero-slides { position: absolute; inset: 0; }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.4s ease; }
.hero-slide.active { opacity: 1; }
.hero-slide img {
  width: 100%; height: 100%; object-fit: cover;
  filter: brightness(0.40) saturate(0.7);
  transform: scale(1.03);
  transition: transform 8s ease;
}
.hero-slide.active img { transform: scale(1.0); }

/* Multi-layer overlay */
.hero-overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(28,48,40,0.2) 0%, rgba(28,48,40,0.0) 40%),
    linear-gradient(0deg, rgba(28,48,40,0.75) 0%, rgba(28,48,40,0.0) 55%),
    linear-gradient(100deg, rgba(28,48,40,0.45) 0%, transparent 60%);
  z-index: 1;
}

/* Decorative blush orb */
.hero-overlay::after {
  content: '';
  position: absolute;
  top: 15%; right: 8%;
  width: 360px; height: 360px;
  background: radial-gradient(circle, rgba(212,165,165,0.12) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

.hero-content {
  position: absolute; inset: 0; z-index: 2;
  display: flex; flex-direction: column;
  justify-content: center; align-items: flex-start;
  padding: 0 clamp(28px, 8vw, 120px);
  max-width: min(840px, 80vw);
}

.hero-eyebrow {
  display: flex; align-items: center; gap: 10px;
  font-family: var(--f-body);
  font-size: 0.7rem; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--c-gold-lt);
  margin-bottom: 20px;
  opacity: 0; transform: translateY(14px);
  animation: fadeUp 0.8s ease 0.4s forwards;
}
.hero-eyebrow::before {
  content: '';
  display: block; width: 28px; height: 1px;
  background: var(--c-gold); opacity: 0.7;
}

.hero-title {
  font-family: var(--f-display);
  font-size: clamp(3rem, 7vw, 6rem);
  font-weight: 300; font-style: italic;
  color: var(--c-white); line-height: 1.04;
  margin: 0 0 22px;
  opacity: 0; transform: translateY(22px);
  animation: fadeUp 1s ease 0.6s forwards;
}

.hero-sub {
  font-family: var(--f-body);
  font-size: clamp(0.9rem, 1.5vw, 1.05rem);
  font-weight: 300; line-height: 1.75;
  color: rgba(255,255,255,0.78);
  max-width: 480px; margin-bottom: 42px;
  opacity: 0; transform: translateY(20px);
  animation: fadeUp 0.9s ease 0.8s forwards;
}

.hero-actions {
  display: flex; gap: 14px; flex-wrap: wrap;
  opacity: 0; transform: translateY(18px);
  animation: fadeUp 0.9s ease 1s forwards;
}

/* Dots */
.hero-dots {
  position: absolute; bottom: 44px; left: clamp(28px, 8vw, 120px);
  z-index: 3; display: flex; gap: 8px;
}
.hero-dot {
  width: 5px; height: 5px; border-radius: 50%;
  background: rgba(255,255,255,0.3);
  border: none; cursor: pointer;
  transition: background var(--t-fast), transform var(--t-fast), width var(--t-mid);
}
.hero-dot.active { background: var(--c-blush); width: 20px; border-radius: 3px; }

/* Scroll hint */
.hero-scroll {
  position: absolute; bottom: 40px; right: clamp(28px, 5vw, 80px);
  z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 8px;
  font-size: 0.62rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(255,255,255,0.4);
}
.hero-scroll-line {
  width: 1px; height: 50px;
  background: linear-gradient(180deg, transparent, rgba(255,255,255,0.3), transparent);
  animation: scrollPulse 2.2s ease infinite;
}

/* ══════════════════════════════════════════════
   PAGE HERO BANNER
═══════════════════════════════════════════════ */
.page-hero {
  background: var(--c-deep);
  padding: clamp(80px, 12vw, 130px) 0 clamp(70px, 10vw, 110px);
  position: relative;
  overflow: hidden;
}
/* Botanical blush circle */
.page-hero::before {
  content: '';
  position: absolute;
  top: -80px; right: -80px;
  width: 480px; height: 480px;
  background: radial-gradient(circle, rgba(212,165,165,0.07) 0%, transparent 68%);
  border-radius: 50%;
  pointer-events: none;
}
/* Gold accent line */
.page-hero::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(196,149,90,0.4) 50%, transparent 100%);
}
.page-hero .eyebrow { color: var(--c-gold-lt); }
.page-hero .eyebrow::before { background: var(--c-gold-lt); }
.page-hero h1 { color: var(--c-white); margin-bottom: 14px; }
.page-hero p { color: rgba(255,255,255,0.62); max-width: 520px; font-size: 1rem; }

/* Breadcrumb */
.breadcrumb-strip {
  display: flex; align-items: center; gap: 8px; margin-top: 28px;
}
.breadcrumb-strip a, .breadcrumb-strip span {
  font-size: 0.72rem; font-weight: 400; letter-spacing: 0.1em;
  color: rgba(255,255,255,0.4); text-transform: uppercase;
  transition: color var(--t-fast);
}
.breadcrumb-strip a:hover { color: var(--c-gold-lt); }
.breadcrumb-strip .sep { color: rgba(255,255,255,0.2); }
.breadcrumb-strip .active { color: var(--c-gold); }

/* ══════════════════════════════════════════════
   FEATURE ICONS ROW
═══════════════════════════════════════════════ */
.feature-row {
  padding: 70px 0;
  background: var(--c-white);
  border-bottom: 1px solid var(--c-parchment);
  position: relative;
}
.feature-card {
  text-align: center;
  padding: 36px 24px;
  border: 1px solid var(--c-parchment);
  border-radius: var(--r-lg);
  background: var(--c-white);
  position: relative;
  overflow: hidden;
  transition: border-color var(--t-mid), box-shadow var(--t-mid), transform var(--t-mid);
  cursor: pointer;
}
.feature-card::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, var(--c-ivory) 0%, var(--c-blush-lt) 100%);
  opacity: 0;
  transition: opacity var(--t-mid);
}
.feature-card:hover {
  border-color: rgba(212,165,165,0.5);
  box-shadow: var(--sh-rose);
  transform: translateY(-6px);
}
.feature-card:hover::before { opacity: 1; }
.feature-card > * { position: relative; z-index: 1; }
.feature-icon {
  width: 60px; height: 60px;
  object-fit: contain;
  margin: 0 auto 18px;
  display: block;
  opacity: 0.8;
  filter: sepia(0.2) saturate(0.8);
  transition: opacity var(--t-mid), transform var(--t-mid), filter var(--t-mid);
}
.feature-card:hover .feature-icon {
  opacity: 1;
  transform: scale(1.1);
  filter: sepia(0) saturate(1);
}
.feature-label {
  font-family: var(--f-body);
  font-size: 0.72rem; font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--c-deep); margin-top: 8px;
  transition: color var(--t-fast);
}
.feature-card:hover .feature-label { color: var(--c-sage); }

/* ══════════════════════════════════════════════
   ABOUT / STORY SECTION
═══════════════════════════════════════════════ */
.about-image-wrap { position: relative; }
.about-image {
  width: 100%; height: 520px;
  object-fit: cover;
  border-radius: var(--r-lg);
  box-shadow: var(--sh-lg);
}
/* Floating badge */
.about-badge {
  position: absolute;
  bottom: -28px; right: -28px;
  background: var(--c-deep);
  border-radius: var(--r-md);
  padding: 24px 28px;
  text-align: center;
  min-width: 148px;
  box-shadow: var(--sh-md);
  border: 1px solid rgba(196,149,90,0.2);
}
.about-badge .num {
  display: block;
  font-family: var(--f-display);
  font-size: 3rem; font-weight: 600;
  color: var(--c-gold-lt); line-height: 1;
}
.about-badge .lbl {
  display: block; margin-top: 5px;
  font-size: 0.66rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}
/* Decorative rose circle behind image */
.about-image-wrap::before {
  content: '';
  position: absolute;
  top: -20px; left: -20px;
  width: 160px; height: 160px;
  border-radius: 50%;
  background: var(--c-blush-lt);
  opacity: 0.5;
  z-index: -1;
}

/* ══════════════════════════════════════════════
   SERVICE CARDS
═══════════════════════════════════════════════ */
.service-card {
  background: var(--c-white);
  border: 1px solid var(--c-parchment);
  border-radius: var(--r-lg);
  overflow: hidden;
  transition: box-shadow var(--t-mid), transform var(--t-mid), border-color var(--t-mid);
  height: 100%;
  display: flex; flex-direction: column;
}
.service-card:hover {
  box-shadow: var(--sh-lg);
  transform: translateY(-7px);
  border-color: rgba(212,165,165,0.3);
}
.service-img { height: 230px; overflow: hidden; }
/* JS wraps the <img> in a .bhw-img-reveal span for the scroll-swipe effect —
   give that wrapper the parent's full box so the img's percentage sizing
   below resolves correctly (a block child has no implicit height otherwise,
   which was letting the image render at its natural aspect ratio and get
   crop from the top instead of a proper centered cover-fill). */
.service-img .bhw-img-reveal { display: block; width: 100%; height: 100%; }
.service-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform var(--t-slow);
}
.service-card:hover .service-img img { transform: scale(1.06); }
.service-body { padding: 28px; flex: 1; display: flex; flex-direction: column; }
.service-tag {
  display: inline-block;
  background: var(--c-ivory-dk);
  color: var(--c-gold);
  font-size: 0.65rem; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase;
  padding: 4px 12px; border-radius: var(--r-pill);
  border: 1px solid rgba(196,149,90,0.2);
  margin-bottom: 14px;
}
.service-body h4 { font-size: 1.25rem; margin-bottom: 10px; color: var(--c-deep); }
.service-body p { font-size: 0.88rem; line-height: 1.72; margin-bottom: 20px; flex: 1; }
.service-footer {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 28px;
  background: var(--c-ivory);
  border-top: 1px solid var(--c-parchment);
}
.service-price {
  font-family: var(--f-display);
  font-size: 1.6rem; font-weight: 600; color: var(--c-deep);
}
.service-price small { font-family: var(--f-body); font-size: 0.72rem; color: var(--c-stone); font-weight: 300; }

/* Service list item (services page) */
.service-list-item {
  display: flex; gap: 28px; align-items: flex-start;
  padding: 32px;
  background: var(--c-white);
  border: 1px solid var(--c-parchment);
  border-radius: var(--r-lg);
  margin-bottom: 20px;
  transition: box-shadow var(--t-mid), border-color var(--t-mid);
}
.service-list-item:hover {
  box-shadow: var(--sh-md);
  border-color: rgba(212,165,165,0.3);
}
.service-list-icon {
  width: 54px; height: 54px; min-width: 54px;
  background: linear-gradient(135deg, var(--c-ivory-dk), var(--c-blush-lt));
  border-radius: var(--r-md);
  border: 1px solid rgba(212,165,165,0.2);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem; color: var(--c-sage);
}

/* ══════════════════════════════════════════════
   CTA BANNER
═══════════════════════════════════════════════ */
.cta-banner {
  background: var(--c-deep);
  padding: 88px 0;
  position: relative;
  overflow: hidden;
}
.cta-banner::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background:
    radial-gradient(ellipse at 20% 50%, rgba(78,122,94,0.18) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 20%, rgba(212,165,165,0.1) 0%, transparent 50%);
  pointer-events: none;
}
/* Petal texture */
.cta-banner::after {
  content: '';
  position: absolute; top: 0; right: 5%; width: 400px; height: 400px;
  background-image: var(--petal-url);
  background-repeat: no-repeat;
  background-size: 300px;
  opacity: 0.3;
  pointer-events: none;
}
.cta-banner h2 { color: var(--c-white); }
.cta-banner .lead, .cta-banner p { color: rgba(255,255,255,0.65); }

/* Coaching interest — Google Form CTA card */
.form-cta-card {
  position: relative;
  background: linear-gradient(160deg, var(--c-ivory) 0%, var(--c-blush-lt) 145%);
  border: 1px solid rgba(212,165,165,.28);
  border-radius: var(--r-xl);
  padding: 64px 48px;
  text-align: center;
  box-shadow: var(--sh-rose);
  overflow: hidden;
}
.form-cta-card::before {
  content: '';
  position: absolute; top: -24px; right: -24px; width: 220px; height: 220px;
  background-image: var(--petal-url);
  background-repeat: no-repeat; background-size: 220px;
  opacity: .55; pointer-events: none;
}
.form-cta-card::after {
  content: '';
  position: absolute; bottom: -34px; left: -34px; width: 190px; height: 190px;
  background-image: var(--petal-url);
  background-repeat: no-repeat; background-size: 190px;
  opacity: .35; pointer-events: none; transform: rotate(35deg);
}
.form-cta-icon {
  position: relative; z-index: 1;
  width: 72px; height: 72px; margin: 0 auto 20px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--c-white), var(--c-blush-lt));
  border: 1px solid rgba(212,165,165,.35);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.7rem; color: var(--c-blush);
  box-shadow: 0 8px 24px rgba(212,165,165,.28);
}
.form-cta-card .eyebrow { position: relative; z-index: 1; justify-content: center; }
.form-cta-card h2, .form-cta-card p, .form-cta-card .btn-gold { position: relative; z-index: 1; }
.form-cta-card p { max-width: 520px; margin: 16px auto 34px; color: var(--c-stone); }
@media (max-width: 575px) {
  .form-cta-card { padding: 44px 24px; border-radius: var(--r-lg); }
  .form-cta-card .btn-gold { width: 100%; text-align: center; }
}

/* ══════════════════════════════════════════════
   EVENTS CARDS
═══════════════════════════════════════════════ */
.event-card {
  background: var(--c-white);
  border: 1px solid var(--c-parchment);
  border-radius: var(--r-lg);
  overflow: hidden;
  transition: box-shadow var(--t-mid), transform var(--t-mid);
  height: 100%;
}
.event-card:hover { box-shadow: var(--sh-lg); transform: translateY(-5px); }
.event-img { height: 210px; overflow: hidden; position: relative; }
.event-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform var(--t-slow);
}
.event-card:hover .event-img img { transform: scale(1.05); }
.event-date-badge {
  position: absolute; top: 16px; left: 16px;
  background: var(--c-deep);
  border: 1px solid rgba(196,149,90,0.25);
  border-radius: var(--r-sm);
  padding: 8px 12px;
  text-align: center; min-width: 54px;
}
.event-date-badge .day {
  display: block;
  font-family: var(--f-display);
  font-size: 1.7rem; font-weight: 600; line-height: 1;
  color: var(--c-gold-lt);
}
.event-date-badge .mo {
  display: block; font-size: 0.62rem; font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(255,255,255,0.6); margin-top: 2px;
}
.event-body { padding: 26px; }
.event-body h4 { font-size: 1.1rem; margin-bottom: 10px; }
.event-body p { font-size: 0.86rem; margin-bottom: 16px; }
.event-meta {
  display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 20px;
}
.event-meta span {
  display: flex; align-items: center; gap: 5px;
  font-size: 0.75rem; font-weight: 400; color: var(--c-stone);
}
.event-meta i { color: var(--c-sage); font-size: 0.82rem; }

/* Availability */
.avail-wrap { margin: 14px 0; }
.avail-labels {
  display: flex; justify-content: space-between;
  font-size: 0.72rem; font-weight: 400; color: var(--c-stone); margin-bottom: 5px;
}
.avail-track {
  height: 3px; background: var(--c-parchment); border-radius: 3px; overflow: hidden;
}
.avail-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--c-sage), var(--c-blush));
  border-radius: 3px;
  transition: width 1.2s ease;
}

/* ══════════════════════════════════════════════
   TESTIMONIALS
═══════════════════════════════════════════════ */
.testimonial-section { background: var(--c-ivory-dk); }
.testimonial-card {
  background: var(--c-white);
  border: 1px solid var(--c-parchment);
  border-radius: var(--r-lg);
  padding: 36px;
  height: 100%;
  position: relative;
  transition: box-shadow var(--t-mid), transform var(--t-mid);
}
.testimonial-card::before {
  content: '\201C';
  position: absolute; top: 20px; right: 28px;
  font-family: var(--f-display);
  font-size: 5rem; line-height: 1;
  color: var(--c-blush-lt);
  pointer-events: none;
}
.testimonial-card:hover {
  box-shadow: var(--sh-rose);
  transform: translateY(-4px);
}
.testimonial-quote {
  font-family: var(--f-display);
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  font-style: italic; font-weight: 300;
  color: var(--c-deep);
  line-height: 1.68; margin-bottom: 24px;
  position: relative; z-index: 1;
}
.stars { display: flex; gap: 3px; margin-bottom: 16px; }
.stars i { color: var(--c-gold); font-size: 0.8rem; }
.testimonial-author { display: flex; align-items: center; gap: 14px; }
.testimonial-author img {
  width: 48px; height: 48px;
  border-radius: 50%; object-fit: cover;
  border: 2px solid var(--c-parchment);
}
.testimonial-name {
  display: block; font-family: var(--f-body);
  font-size: 0.88rem; font-weight: 500; color: var(--c-deep);
}
.testimonial-loc {
  display: block; font-size: 0.76rem; color: var(--c-stone);
}

/* ══════════════════════════════════════════════
   GALLERY
═══════════════════════════════════════════════ */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.gallery-item {
  position: relative; overflow: hidden;
  border-radius: var(--r-md);
  cursor: pointer; aspect-ratio: 1;
}
.gallery-item:nth-child(4), .gallery-item:nth-child(7) {
  grid-column: span 2; aspect-ratio: 2/1;
}
.gallery-item img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform var(--t-slow);
}
.gallery-item:hover img { transform: scale(1.06); }
.gallery-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(28,48,40,0.5), rgba(212,165,165,0.4));
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity var(--t-mid);
}
.gallery-overlay i { font-size: 1.6rem; color: var(--c-white); }
.gallery-item:hover .gallery-overlay { opacity: 1; }

/* Lightbox */
.bhw-lightbox {
  position: fixed; inset: 0;
  background: rgba(15,12,10,0.94);
  z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  padding: 32px;
  opacity: 0; visibility: hidden;
  transition: opacity var(--t-mid), visibility var(--t-mid);
}
.bhw-lightbox.open { opacity: 1; visibility: visible; }
.bhw-lightbox img { max-width: 88vw; max-height: 84vh; object-fit: contain; border-radius: var(--r-sm); }
.bhw-lightbox-close {
  position: absolute; top: 20px; right: 28px;
  font-size: 2rem; color: rgba(255,255,255,0.6);
  background: none; border: none; cursor: pointer;
  transition: color var(--t-fast);
}
.bhw-lightbox-close:hover { color: var(--c-blush); }
.lb-nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.15);
  color: var(--c-white);
  width: 46px; height: 46px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; font-size: 1rem;
  transition: background var(--t-fast), color var(--t-fast);
}
.lb-nav:hover { background: rgba(212,165,165,0.2); color: var(--c-blush); }
.lb-prev { left: 18px; }
.lb-next { right: 18px; }

/* ══════════════════════════════════════════════
   FORMS — Elegant Input Styling
═══════════════════════════════════════════════ */
.form-wrap {
  background: var(--c-white);
  border: 1px solid var(--c-parchment);
  border-radius: var(--r-lg);
  padding: 44px;
  box-shadow: var(--sh-sm);
}
.form-wrap h3 { color: var(--c-deep); margin-bottom: 6px; }
.form-sub { font-size: 0.86rem; color: var(--c-stone); margin-bottom: 30px; display: block; }

.form-group { margin-bottom: 22px; }
.form-group label {
  display: block;
  font-size: 0.7rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--c-deep); margin-bottom: 8px;
}
.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 13px 18px;
  border: 1.5px solid var(--c-parchment);
  border-radius: var(--r-sm);
  font-family: var(--f-body);
  font-size: 0.92rem; font-weight: 300;
  color: var(--c-ink);
  background: var(--c-ivory);
  outline: none;
  transition: border-color var(--t-fast), box-shadow var(--t-fast), background var(--t-fast);
  -webkit-appearance: none;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--c-blush);
  background: var(--c-white);
  box-shadow: 0 0 0 3px rgba(212,165,165,0.12);
}
.form-group input::placeholder,
.form-group textarea::placeholder { color: var(--c-stone); opacity: 1; }
.form-group textarea { resize: vertical; min-height: 110px; }

/* Form status messages */
.form-msg {
  padding: 14px 20px;
  border-radius: var(--r-sm);
  font-size: 0.88rem;
  margin-bottom: 16px;
  display: none;
}
.form-msg.success {
  background: rgba(78,122,94,0.08);
  border: 1px solid rgba(78,122,94,0.25);
  color: var(--c-sage);
  display: block;
}
.form-msg.error {
  background: rgba(212,100,100,0.07);
  border: 1px solid rgba(212,100,100,0.2);
  color: #b05050;
  display: block;
}

/* ══════════════════════════════════════════════
   CONTACT INFO CARD
═══════════════════════════════════════════════ */
.contact-card {
  background: var(--c-deep);
  border-radius: var(--r-lg);
  padding: 44px;
  height: 100%;
  position: relative;
  overflow: hidden;
}
.contact-card::before {
  content: '';
  position: absolute; top: -40px; right: -40px;
  width: 240px; height: 240px;
  background: radial-gradient(circle, rgba(212,165,165,0.08) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.contact-card h3 { color: var(--c-white); margin-bottom: 34px; }
.contact-detail { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 24px; }
.contact-icon {
  width: 42px; height: 42px; min-width: 42px;
  background: rgba(196,149,90,0.12);
  border: 1px solid rgba(196,149,90,0.2);
  border-radius: var(--r-sm);
  display: flex; align-items: center; justify-content: center;
  color: var(--c-gold-lt); font-size: 1rem;
}
.contact-lbl { font-size: 0.66rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.38); display: block; margin-bottom: 2px; }
.contact-val, .contact-val a { color: rgba(255,255,255,0.8); font-size: 0.92rem; margin: 0; }
.contact-val a:hover { color: var(--c-gold-lt); }

.social-strip { display: flex; gap: 10px; margin-top: 34px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,0.08); }
.social-btn {
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,0.6); font-size: 0.9rem;
  transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast), transform var(--t-fast);
  cursor: pointer;
}
.social-btn:hover {
  background: var(--c-blush);
  border-color: var(--c-blush);
  color: var(--c-white);
  transform: translateY(-2px);
}

/* ══════════════════════════════════════════════
   SPONSORS
═══════════════════════════════════════════════ */
.sponsor-logo {
  display: flex; align-items: center; justify-content: center;
  padding: 28px 20px;
  border: 1px solid var(--c-parchment);
  border-radius: var(--r-md);
  background: var(--c-white);
  transition: box-shadow var(--t-mid), border-color var(--t-mid), transform var(--t-mid);
  cursor: pointer;
}
.sponsor-logo:hover {
  box-shadow: var(--sh-rose);
  border-color: rgba(212,165,165,0.4);
  transform: translateY(-3px);
}
.sponsor-logo img {
  max-height: 52px; max-width: 130px; object-fit: contain;
  filter: grayscale(1) opacity(0.45);
  transition: filter var(--t-mid);
}
.sponsor-logo:hover img { filter: grayscale(0) opacity(1); }

/* Tier badges */
.tier-badge {
  display: inline-block; padding: 4px 14px;
  border-radius: var(--r-pill); font-size: 0.66rem;
  font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase;
  margin-bottom: 16px;
}
.tier-gold    { background: #FDF6EC; color: #9A7040; border: 1px solid #E8D4B0; }
.tier-silver  { background: #F5F5F7; color: #6A6A78; border: 1px solid #D8D8E4; }
.tier-community { background: var(--c-ivory-dk); color: var(--c-sage); border: 1px solid rgba(78,122,94,0.2); }

/* ══════════════════════════════════════════════
   NEWSLETTER STRIP
═══════════════════════════════════════════════ */
.newsletter-strip {
  background: linear-gradient(120deg, var(--c-deep) 0%, #2A4A38 100%);
  padding: 70px 0;
  position: relative;
  overflow: hidden;
}
.newsletter-strip::before {
  content: '';
  position: absolute; top: -50%; left: -5%;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(212,165,165,0.07) 0%, transparent 65%);
  border-radius: 50%;
}
.newsletter-strip h3 {
  font-family: var(--f-display);
  color: var(--c-white); font-style: italic; margin-bottom: 8px;
}
.newsletter-strip p { color: rgba(255,255,255,0.6); }
.newsletter-form {
  display: flex; border: 1.5px solid rgba(196,149,90,0.35);
  border-radius: var(--r-pill); overflow: hidden;
  background: rgba(255,255,255,0.05);
  max-width: 460px; backdrop-filter: blur(4px);
}
.newsletter-form input {
  flex: 1; padding: 14px 22px;
  background: transparent; border: none; outline: none;
  font-family: var(--f-body); font-size: 0.9rem; color: var(--c-white);
}
.newsletter-form input::placeholder { color: rgba(255,255,255,0.4); }
.newsletter-form button {
  padding: 13px 26px;
  background: var(--c-gold); color: var(--c-white);
  border: none; cursor: pointer;
  font-family: var(--f-body); font-size: 0.72rem;
  font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase;
  transition: background var(--t-fast);
}
.newsletter-form button:hover { background: #b8864a; }

/* ══════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════ */
.site-footer {
  background: var(--c-charcoal);
  padding: 80px 0 0;
  position: relative;
}
.site-footer::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(196,149,90,0.3), transparent);
}
.footer-logo { height: 42px; width: auto; margin-bottom: 18px; }
.footer-tagline { font-size: 0.86rem; color: rgba(255,255,255,0.38); line-height: 1.72; max-width: 250px; }
.footer-title { font-family: var(--f-body); font-size: 0.68rem; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.35); margin-bottom: 20px; }
.footer-links { list-style: none; padding: 0; margin: 0; }
.footer-links li { margin-bottom: 10px; }
.footer-links a { font-size: 0.88rem; font-weight: 300; color: rgba(255,255,255,0.55); transition: color var(--t-fast); }
.footer-links a:hover { color: var(--c-gold-lt); }
.footer-contact p { font-size: 0.88rem; color: rgba(255,255,255,0.55); display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; }
.footer-contact a { color: rgba(255,255,255,0.55); transition: color var(--t-fast); }
.footer-contact a:hover { color: var(--c-gold-lt); }
.footer-contact i { color: var(--c-gold); margin-top: 2px; flex-shrink: 0; }

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.05);
  margin-top: 60px; padding: 20px 0;
  background: rgba(0,0,0,0.2);
}
.footer-copy { font-size: 0.78rem; color: rgba(255,255,255,0.3); margin: 0; }
.footer-copy a { color: var(--c-gold); }
.footer-socials { display: flex; gap: 10px; justify-content: flex-end; }
.footer-social-btn {
  width: 34px; height: 34px; border-radius: 50%;
  background: rgba(255,255,255,0.06);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,0.45); font-size: 0.82rem;
  transition: background var(--t-fast), color var(--t-fast);
}
.footer-social-btn:hover { background: var(--c-blush); color: var(--c-white); }

/* ══════════════════════════════════════════════
   VALUE CARDS (About page)
═══════════════════════════════════════════════ */
.value-card {
  background: var(--c-white);
  border-radius: var(--r-md);
  padding: 24px;
  border-left: 3px solid var(--c-blush);
  border-top: 1px solid var(--c-parchment);
  border-right: 1px solid var(--c-parchment);
  border-bottom: 1px solid var(--c-parchment);
  transition: box-shadow var(--t-mid);
}
.value-card:hover { box-shadow: var(--sh-rose); }
.value-card h5 { font-family: var(--f-body); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-deep); margin-bottom: 8px; }
.value-card p { font-size: 0.86rem; margin: 0; }
.values-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 30px; }

/* Timeline */
.timeline { position: relative; padding-left: 28px; border-left: 1.5px solid var(--c-parchment); }
.timeline-item { position: relative; margin-bottom: 36px; }
.timeline-item::before {
  content: '';
  position: absolute; left: -34px; top: 6px;
  width: 13px; height: 13px; border-radius: 50%;
  background: var(--c-blush);
  border: 2.5px solid var(--c-white);
  box-shadow: 0 0 0 1.5px var(--c-blush);
}
.timeline-item .yr {
  font-size: 0.68rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--c-gold); margin-bottom: 5px; display: block;
}
.timeline-item h5 {
  font-family: var(--f-display); font-size: 1.2rem; font-weight: 500;
  text-transform: none; letter-spacing: 0; color: var(--c-deep);
  margin-bottom: 6px;
}

/* Founder image (about page) */
.founder-img {
  width: 100%; height: 580px;
  object-fit: cover;
  border-radius: var(--r-lg);
  box-shadow: var(--sh-lg);
}

/* ══════════════════════════════════════════════
   BOOKING MODAL
═══════════════════════════════════════════════ */
#bookingModal {
  position: fixed; inset: 0;
  background: rgba(15,12,10,0.8);
  backdrop-filter: blur(6px);
  z-index: 9999;
  display: none;
  align-items: center; justify-content: center;
  padding: 20px;
}
#bookingModal .modal-inner {
  background: var(--c-white);
  border-radius: var(--r-lg);
  padding: 44px;
  max-width: 540px; width: 100%;
  max-height: 90vh; overflow-y: auto;
  position: relative;
  box-shadow: var(--sh-lg);
}
.modal-close {
  position: absolute; top: 18px; right: 22px;
  background: none; border: none;
  font-size: 1.4rem; color: var(--c-stone);
  cursor: pointer; transition: color var(--t-fast);
}
.modal-close:hover { color: var(--c-deep); }

/* ══════════════════════════════════════════════
   SCROLL REVEAL
═══════════════════════════════════════════════ */
.reveal {
  opacity: 0; transform: translateY(28px);
  transition: opacity 0.9s ease, transform 0.9s ease;
}
.reveal.visible { opacity: 1; transform: translateY(0); }
.delay-1 { transition-delay: 0.1s; }
.delay-2 { transition-delay: 0.2s; }
.delay-3 { transition-delay: 0.3s; }
.delay-4 { transition-delay: 0.4s; }

/* ══════════════════════════════════════════════
   ANIMATIONS
═══════════════════════════════════════════════ */
@keyframes fadeUp {
  to { opacity: 1; transform: translateY(0); }
}
@keyframes scrollPulse {
  0%, 100% { opacity: 0.3; transform: scaleY(0.6); }
  50% { opacity: 0.8; transform: scaleY(1); }
}
@keyframes shimmer {
  0% { background-position: -200% center; }
  100% { background-position: 200% center; }
}
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

/* ══════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════ */
@media (max-width: 991px) {
  :root { --sp: 72px; }
  .hero { height: 78vh; }
  .hero-content { padding: 0 5vw; max-width: 100%; }
  .about-badge { right: 0; bottom: -16px; }
  .values-grid { grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: repeat(2,1fr); }
  .gallery-item:nth-child(4), .gallery-item:nth-child(7) { grid-column: span 1; aspect-ratio: 1; }
  .stats-row { flex-wrap: wrap; gap: 22px; }
  .newsletter-form { max-width: 100%; }
}
@media (max-width: 767px) {
  :root { --sp: 60px; }
  .hero { height: 88vh; }
  .hero-title { font-size: clamp(2.4rem,8vw,3.2rem); }
  .hero-actions { flex-direction: column; align-items: flex-start; }
  .hero-scroll { display: none; }
  .about-image { height: 340px; }
  .founder-img { height: 360px; }
  .form-wrap { padding: 28px 20px; }
  .contact-card { padding: 32px 24px; }
  .footer-socials { justify-content: flex-start; margin-top: 10px; }
  .gallery-grid { gap: 8px; }
}
@media (max-width: 575px) {
  .gallery-grid { grid-template-columns: 1fr 1fr; gap: 6px; }
  .about-image-wrap::before { display: none; }
  .newsletter-form { flex-direction: column; border-radius: var(--r-lg); }
  .newsletter-form input { border-radius: var(--r-lg) var(--r-lg) 0 0; padding: 14px 20px; }
  .newsletter-form button { border-radius: 0 0 var(--r-lg) var(--r-lg); padding: 13px 20px; }
}

/* ══════════════════════════════════════════════
   WELLNESS COACHING & PRODUCTS — EXTENSION
   Added for /wellness-coaching and /wellness-products
   Built on existing tokens & components above — no
   new colours, fonts, radii, or shadows introduced.
═══════════════════════════════════════════════ */

/* Icon cards (reuses value-card look in a 4-up grid) */
.icon-card-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.icon-card {
  background: var(--c-white);
  border: 1px solid var(--c-parchment);
  border-radius: var(--r-lg);
  padding: 32px 22px;
  text-align: center;
  transition: box-shadow var(--t-mid), transform var(--t-mid), border-color var(--t-mid);
}
.icon-card:hover { box-shadow: var(--sh-rose); transform: translateY(-5px); border-color: rgba(212,165,165,.35); }
.icon-card .icon-card-icon {
  width: 58px; height: 58px; margin: 0 auto 16px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--c-ivory-dk), var(--c-blush-lt));
  border: 1px solid rgba(212,165,165,.3);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.35rem; color: var(--c-sage);
  transition: all var(--t-mid);
}
.icon-card:hover .icon-card-icon { background: linear-gradient(135deg, var(--c-blush-lt), rgba(212,165,165,.35)); color: var(--c-deep); transform: scale(1.06); }
.icon-card h5 { font-family: var(--f-body); font-size: 0.78rem; font-weight: 600; letter-spacing: .08em; text-transform: none; color: var(--c-deep); margin-bottom: 6px; }
.icon-card p { font-size: 0.82rem; margin: 0; }

/* Product cards (extends .service-card pattern) */
.product-card {
  background: var(--c-white);
  border: 1px solid var(--c-parchment);
  border-radius: var(--r-lg);
  overflow: hidden;
  height: 100%;
  display: flex; flex-direction: column;
  transition: box-shadow var(--t-mid), transform var(--t-mid), border-color var(--t-mid);
}
.product-card:hover { box-shadow: var(--sh-lg); transform: translateY(-7px); border-color: rgba(212,165,165,.3); }
.product-img {
  height: 320px;
  overflow: hidden;
  background: linear-gradient(160deg, var(--c-ivory-dk) 0%, var(--c-parchment) 100%);
  box-sizing: border-box;
  padding: 22px;
}
/* JS wraps the <img> in a .bhw-img-reveal span for the scroll-swipe effect —
   give that wrapper the parent's full box so the img's percentage sizing
   below resolves correctly (a block child has no implicit height otherwise). */
.product-img .bhw-img-reveal { display: flex !important; width: 100%; height: 100%; align-items: center; justify-content: center; }
.product-img img { width: 100%; height: 100%; object-fit: contain; object-position: center; transition: transform var(--t-slow); }
.product-card:hover .product-img img { transform: scale(1.045); }
@media (max-width: 575px) {
  .product-img { height: 260px; padding: 16px; }
}
.product-body { padding: 26px 26px 22px; flex: 1; display: flex; flex-direction: column; }
.product-body h4 { font-size: 1.2rem; margin-bottom: 8px; }
.product-tagline { font-family: var(--f-display); font-style: italic; font-size: 1rem; color: var(--c-sage); margin-bottom: 10px; display: block; }
.product-body p.product-desc { font-size: 0.86rem; margin-bottom: 16px; flex: none; }
.product-benefits { list-style: none; padding: 0; margin: 0 0 20px; }
.product-benefits li { position: relative; padding-left: 22px; font-size: 0.82rem; color: var(--c-slate); margin-bottom: 7px; }
.product-benefits li::before {
  content: ''; position: absolute; left: 0; top: 7px; width: 8px; height: 8px;
  border-radius: 50%; background: var(--c-blush);
}
.product-meta-row { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--c-parchment); }
.product-price { font-family: var(--f-display); font-size: 1.4rem; font-weight: 600; color: var(--c-deep); }
.product-price small { font-family: var(--f-body); font-size: 0.68rem; color: var(--c-stone); font-weight: 300; }
.product-actions { display: flex; gap: 10px; padding: 0 26px 26px; }
.product-actions .btn-buy-wa, .product-actions .btn-enquire-wa { flex: 1; justify-content: center; padding: 12px 16px; font-size: 0.7rem; }

/* WhatsApp action buttons (brand-coloured, not generic WA green) */
.btn-buy-wa {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--c-deep); color: var(--c-ivory);
  border: 1.5px solid var(--c-deep); border-radius: var(--r-pill);
  font-family: var(--f-body); font-weight: 500; letter-spacing: .1em; text-transform: uppercase;
  text-decoration: none; cursor: pointer; transition: all var(--t-fast); white-space: nowrap;
}
.btn-buy-wa:hover { background: var(--c-sage); border-color: var(--c-sage); color: var(--c-white); transform: translateY(-2px); }
.btn-enquire-wa {
  display: inline-flex; align-items: center; gap: 7px;
  background: transparent; color: var(--c-deep);
  border: 1.5px solid var(--c-deep); border-radius: var(--r-pill);
  font-family: var(--f-body); font-weight: 500; letter-spacing: .1em; text-transform: uppercase;
  text-decoration: none; cursor: pointer; transition: all var(--t-fast); white-space: nowrap;
}
.btn-enquire-wa:hover { background: var(--c-gold); border-color: var(--c-gold); color: var(--c-white); transform: translateY(-2px); }

/* Product filter pills */
.product-filters { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 36px; }
.product-filter-btn {
  background: var(--c-white); color: var(--c-slate);
  border: 1.5px solid var(--c-parchment); border-radius: var(--r-pill);
  padding: 10px 22px; font-family: var(--f-body); font-size: 0.72rem; font-weight: 500;
  letter-spacing: .1em; text-transform: uppercase; cursor: pointer; transition: all var(--t-fast);
}
.product-filter-btn:hover { border-color: var(--c-blush); color: var(--c-deep); }
.product-filter-btn.active { background: var(--c-deep); border-color: var(--c-deep); color: var(--c-ivory); }

/* FAQ accordion (brand-styled, uses Bootstrap collapse JS already loaded) */
.faq-item { border: 1px solid var(--c-parchment); border-radius: var(--r-md); margin-bottom: 14px; overflow: hidden; background: var(--c-white); transition: border-color var(--t-mid); }
.faq-item:has(.faq-question[aria-expanded="true"]) { border-color: rgba(212,165,165,.4); }
.faq-question {
  width: 100%; text-align: left; background: none; border: none; cursor: pointer;
  padding: 20px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  font-family: var(--f-body); font-size: 0.92rem; font-weight: 500; color: var(--c-deep);
}
.faq-question .faq-icon { flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--c-gold); color: var(--c-gold); display: flex; align-items: center; justify-content: center; font-size: .7rem; transition: all var(--t-mid); }
.faq-question[aria-expanded="true"] .faq-icon { background: var(--c-gold); color: var(--c-white); transform: rotate(45deg); }
.faq-answer-body { padding: 0 24px 22px; font-size: 0.88rem; color: var(--c-slate); line-height: 1.78; }

/* Coaching journey — reuse .timeline with a horizontal variant on desktop */
.journey-steps { display: flex; flex-wrap: wrap; gap: 0; counter-reset: journey; }
.journey-step { flex: 1 1 180px; text-align: center; padding: 0 14px; position: relative; }
.journey-step:not(:last-child)::after {
  content: '›'; position: absolute; top: 24px; right: -6px; font-size: 1.4rem; color: var(--c-blush); font-family: var(--f-display);
}
.journey-step-num {
  width: 50px; height: 50px; margin: 0 auto 14px; border-radius: 50%;
  background: var(--c-deep); color: var(--c-gold-lt);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-display); font-size: 1.3rem; font-weight: 600;
}
.journey-step h5 { font-size: 0.92rem; margin-bottom: 6px; color: var(--c-deep); text-transform: none; letter-spacing: 0; font-family: var(--f-body); font-weight: 600; }
.journey-step p { font-size: 0.8rem; margin: 0; }
@media (max-width: 767px) {
  .journey-steps { flex-direction: column; gap: 28px; }
  .journey-step:not(:last-child)::after { content: '↓'; top: auto; bottom: -24px; left: 50%; right: auto; transform: translateX(-50%); }
  .icon-card-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575px) {
  .icon-card-grid { grid-template-columns: 1fr; }
  .product-actions { flex-direction: column; }
}

/* Floating WhatsApp Business button (site-wide) */
.wa-float-btn {
  position: fixed; right: 22px; bottom: 22px; z-index: 1050;
  width: 58px; height: 58px; border-radius: 50%;
  background: var(--c-deep); color: var(--c-gold-lt);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem; box-shadow: var(--sh-lg);
  border: 1.5px solid rgba(196,149,90,.3);
  text-decoration: none; transition: all var(--t-mid);
  animation: float 3.2s ease-in-out infinite;
}
.wa-float-btn:hover { background: var(--c-sage); color: var(--c-white); transform: scale(1.08); }
.wa-float-btn:focus-visible { outline: 2px solid var(--c-gold); outline-offset: 3px; }
@media (max-width: 575px) {
  .wa-float-btn { right: 14px; bottom: 14px; width: 52px; height: 52px; font-size: 1.3rem; }
}

/* ══════════════════════════════════════════════
   THE MAGIC LAYER — Premium polish, site-wide
   Pure visual enhancement. No content, structure,
   colours, or fonts changed — only elevated.
═══════════════════════════════════════════════ */

/* Shimmering gold rule */
.bhw-rule {
  background: linear-gradient(90deg, var(--c-gold), var(--c-blush), var(--c-gold));
  background-size: 200% auto;
  animation: shimmer 3.5s linear infinite;
}

/* Soft glow on hero + page-hero titles */
.hero-title, .page-hero h1 {
  text-shadow: 0 0 40px rgba(232,213,176,0.35), 0 2px 24px rgba(0,0,0,0.25);
}

/* Animate the existing decorative orbs (previously static) */
.page-hero::before {
  animation: floatOrb 9s ease-in-out infinite;
}
.cta-banner::after {
  animation: floatOrb 11s ease-in-out infinite reverse;
}
.find-events-card::before {
  animation: floatOrb 8s ease-in-out infinite;
}
@keyframes floatOrb {
  0%, 100% { transform: translate(0,0) scale(1); }
  50% { transform: translate(-16px, 18px) scale(1.06); }
}

/* Drifting sparkle particles — injected by JS into .hero / .page-hero / .cta-banner */
.bhw-sparkle {
  position: absolute;
  width: 4px; height: 4px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--c-gold-lt) 0%, transparent 70%);
  pointer-events: none;
  opacity: 0;
  animation: sparkleDrift linear infinite;
  z-index: 1;
}
@keyframes sparkleDrift {
  0%   { opacity: 0; transform: translateY(0) scale(0.6); }
  10%  { opacity: 0.9; }
  90%  { opacity: 0.6; }
  100% { opacity: 0; transform: translateY(-140px) scale(1.3); }
}

/* Cursor-following glow spotlight (desktop only, JS sets --mx/--my) */
@media (hover: hover) and (pointer: fine) {
  .hero, .page-hero, .cta-banner { position: relative; }
  .hero::after, .page-hero::before ~ .bhw-glow, .cta-banner .bhw-glow {}
  .bhw-glow {
    position: absolute; inset: 0; pointer-events: none; z-index: 1;
    background: radial-gradient(320px circle at var(--mx,50%) var(--my,50%), rgba(232,213,176,0.14), transparent 70%);
    opacity: 0; transition: opacity 0.4s ease;
  }
  .bhw-glow.active { opacity: 1; }
}

/* Shine sweep across cards on hover */
.service-card, .product-card, .feature-card, .icon-card, .testimonial-card, .event-card, .value-card {
  position: relative;
  overflow: hidden;
}
.service-card::after, .product-card::after, .feature-card::after, .icon-card::after,
.testimonial-card::after, .event-card::after, .value-card::after {
  content: '';
  position: absolute; top: 0; left: -60%;
  width: 40%; height: 100%;
  background: linear-gradient(115deg, transparent, rgba(255,255,255,0.35), transparent);
  transform: skewX(-18deg);
  transition: left 0.85s ease;
  pointer-events: none;
  z-index: 2;
}
.service-card:hover::after, .product-card:hover::after, .feature-card:hover::after, .icon-card:hover::after,
.testimonial-card:hover::after, .event-card:hover::after, .value-card:hover::after {
  left: 130%;
}

/* Magnetic glow-pulse pill buttons */
.btn-primary, .btn-gold, .btn-outline, .btn-buy-wa, .btn-enquire-wa, .btn-ivory, .btn-ghost-white {
  position: relative;
  will-change: transform;
}
.btn-primary:hover, .btn-gold:hover, .btn-buy-wa:hover {
  box-shadow: 0 10px 34px rgba(196,149,90,0.35), 0 0 0 4px rgba(212,165,165,0.12);
}
.btn-outline:hover, .btn-enquire-wa:hover {
  box-shadow: 0 8px 26px rgba(196,149,90,0.22);
}

/* Elevated section reveal — soft blur-in instead of flat fade */
.reveal { filter: blur(4px); }
.reveal.visible { filter: blur(0); }

/* Scroll progress indicator */
.bhw-scroll-progress {
  position: fixed; top: 0; left: 0; height: 3px; width: 0%;
  background: linear-gradient(90deg, var(--c-gold), var(--c-blush));
  z-index: 2000;
  transition: width 0.1s ease-out;
  box-shadow: 0 0 12px rgba(196,149,90,0.5);
}

/* Logo & feature icon gentle glow pulse on hover (kept subtle) */
.feature-icon-wrap, .icon-card-icon, .service-list-icon {
  transition: all var(--t-mid), box-shadow var(--t-mid);
}
.feature-card:hover .feature-icon-wrap,
.icon-card:hover .icon-card-icon {
  box-shadow: 0 0 0 6px rgba(212,165,165,0.14);
}

/* Testimonial quote mark glow */
.testimonial-card::before { text-shadow: 0 0 24px rgba(212,165,165,0.35); }

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
  .bhw-rule, .page-hero::before, .cta-banner::after, .find-events-card::before,
  .bhw-sparkle, .reveal { animation: none !important; }
  .reveal { filter: none; }
}

/* ══════════════════════════════════════════════
   SITE-WIDE BEAUTY LAYER 2 — Navbar, dividers,
   back-to-top, image reveals, page transitions.
   Pure visual, zero content change.
═══════════════════════════════════════════════ */

/* Smooth page-load fade */
body { animation: pageFadeIn 0.6s ease both; }
@keyframes pageFadeIn { from { opacity: 0; } to { opacity: 1; } }

/* Navbar: shrinks + gains soft shadow once scrolled */
.navbar { transition: box-shadow .35s ease, padding .35s ease, background-color .35s ease; }
.navbar.scrolled .logo { transform: scale(0.92); }
.navbar .logo { transition: transform .35s ease; }

/* Nav-link underline grow */
.navbar-nav .nav-link { position: relative; }
.navbar-nav .nav-link::after {
  content: ''; position: absolute; left: 50%; bottom: 2px; width: 0; height: 2px;
  background: linear-gradient(90deg, var(--c-gold), var(--c-blush));
  transition: all .3s ease; transform: translateX(-50%);
}
.navbar-nav .nav-link:hover::after, .navbar-nav .nav-link.active::after { width: 60%; }

/* Decorative wave divider between alternating sections */
.bhw-divider { position: relative; height: 64px; margin-top: -1px; overflow: hidden; }
.bhw-divider svg { width: 100%; height: 100%; display: block; }

/* Corner flourish ornaments on page-hero */
.page-hero { position: relative; }
.bhw-corner-ornament { position: absolute; width: 64px; height: 64px; opacity: 0.35; pointer-events: none; }
.bhw-corner-ornament.tl { top: 24px; left: 24px; }
.bhw-corner-ornament.br { bottom: 24px; right: 24px; transform: rotate(180deg); }

/* Image reveal-on-scroll: soft mask-swipe */
.bhw-img-reveal { position: relative; overflow: hidden; }
.bhw-img-reveal::before {
  content: ''; position: absolute; inset: 0; background: var(--c-ivory);
  transform-origin: right; z-index: 3; transition: transform 1s cubic-bezier(.65,0,.35,1);
}
.bhw-img-reveal.revealed::before { transform: scaleX(0); }

/* Stat counter gentle glow-pulse once visible */
.stat-num.bhw-count { transition: text-shadow .6s ease; }
.stat-item.in-view .stat-num.bhw-count { text-shadow: 0 0 22px rgba(196,149,90,0.35); }

/* Back-to-top button with progress ring */
.bhw-top-btn {
  position: fixed; right: 22px; bottom: 92px; z-index: 1049;
  width: 46px; height: 46px; border-radius: 50%;
  background: var(--c-white); color: var(--c-deep);
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--sh-md); border: 1px solid var(--c-parchment);
  cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity .3s ease, transform .3s ease, visibility .3s ease;
}
.bhw-top-btn.visible { opacity: 1; visibility: visible; transform: translateY(0); }
.bhw-top-btn:hover { color: var(--c-gold); }
.bhw-top-btn svg { position: absolute; inset: 0; transform: rotate(-90deg); }
.bhw-top-btn svg circle { fill: none; stroke: var(--c-parchment); stroke-width: 2; }
.bhw-top-btn svg circle.bhw-top-progress { stroke: var(--c-gold); stroke-linecap: round; transition: stroke-dashoffset .1s linear; }
@media (max-width: 575px) { .bhw-top-btn { right: 14px; bottom: 78px; width: 40px; height: 40px; } }

/* Founder / about image soft frame glow */
.founder-img, .about-image {
  transition: box-shadow .4s ease;
}
.founder-img:hover, .about-image:hover { box-shadow: 0 0 0 10px rgba(212,165,165,0.10), var(--sh-lg); }

/* Footer top petal silhouette */
.site-footer { position: relative; }
.bhw-footer-crest { position: absolute; top: -1px; left: 50%; transform: translateX(-50%); width: 120px; height: 40px; opacity: 0.5; pointer-events: none; }

/* Gallery lightbox polish (existing overlay gets a soft scale-in) */
.bhw-gallery-item .gallery-overlay { backdrop-filter: blur(1px); }

@media (prefers-reduced-motion: reduce) {
  body { animation: none; }
  .bhw-img-reveal::before { transition: none; }
}
