/* ============================================================
   FELCHRIS NATUROPATHIC CLINIC — Master Stylesheet
   Full responsive: 320px → 1600px+
   ============================================================ */

@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:wght@300;400;500&display=swap');

/* ── Reset ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { font-size:16px; scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
img, video { max-width:100%; height:auto; display:block; }

/* ── Tokens ── */
:root {
  --cream:      #F8F6F1;
  --warm:       #F2EEE6;
  --stone:      #E8E2D8;
  --ink:        #1A1A14;
  --ink-mid:    #3D3D35;
  --ink-muted:  #7A7A6E;
  --ink-faint:  #B8B4AA;
  --white:      #FFFFFF;
  --green:      #2D6A4F;
  --green-mid:  #40916C;
  --green-light:#74C69D;
  --green-pale: #D8F3DC;
  --green-tint: #F0FAF2;
  --gold:       #B8860B;
  --gold-pale:  #FFF8E7;
  --font-serif: 'Cormorant Garamond','Georgia',serif;
  --font-sans:  'DM Sans',system-ui,sans-serif;
  --nav-h:      72px;
  --ease:       cubic-bezier(0.25,0.46,0.45,0.94);
  --px:         clamp(1rem,4vw,5rem);
}

body {
  font-family:var(--font-sans);
  background:var(--white);
  color:var(--ink);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  cursor:none;
}

/* ── Custom cursor (desktop only) ── */
.cur {
  position:fixed; width:8px; height:8px;
  background:var(--green); border-radius:50%;
  pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%);
  transition:width .2s,height .2s;
}
.cur-ring {
  position:fixed; width:32px; height:32px;
  border:1px solid rgba(45,106,79,.35); border-radius:50%;
  pointer-events:none; z-index:9998;
  transform:translate(-50%,-50%);
}
body.hovering .cur { width:14px; height:14px; }

/* ── Typography ── */
.h2 {
  font-family:var(--font-serif);
  font-size:clamp(2.4rem,5vw,6rem);
  font-weight:300; line-height:.95; letter-spacing:-.02em; color:var(--ink);
}
.h2 em { font-style:italic; color:var(--green); }
.label {
  font-size:.68rem; letter-spacing:.25em; text-transform:uppercase;
  color:var(--green); font-weight:400;
  display:flex; align-items:center; gap:.75rem;
}
.label::before { content:''; display:block; width:2.5rem; height:1px; background:var(--green); flex-shrink:0; }
.body-lg { font-size:clamp(.95rem,1.5vw,1.05rem); font-weight:300; color:var(--ink-mid); line-height:1.85; }
.body-sm { font-size:.875rem; font-weight:300; color:var(--ink-muted); line-height:1.8; }

/* ── Reveal animations ── */
.reveal { opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease),transform .7s var(--ease); }
.reveal.visible { opacity:1; transform:none; }
.reveal-d1.visible { transition-delay:.1s; }
.reveal-d2.visible { transition-delay:.2s; }
.reveal-d3.visible { transition-delay:.3s; }

/* ── Buttons ── */
.btn-primary {
  font-size:.72rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase;
  color:var(--white); background:var(--green);
  padding:.85rem clamp(1.25rem,3vw,2rem); text-decoration:none;
  border:1.5px solid var(--green); transition:all .25s; cursor:none;
  display:inline-flex; align-items:center; gap:.5rem; white-space:nowrap;
}
.btn-primary:hover { background:transparent; color:var(--green); }
.btn-outline {
  font-size:.72rem; font-weight:400; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-mid); border:1.5px solid var(--stone);
  padding:.85rem clamp(1.25rem,3vw,2rem); text-decoration:none;
  transition:all .25s; cursor:none;
  display:inline-flex; align-items:center; gap:.5rem; white-space:nowrap;
}
.btn-outline:hover { border-color:var(--green); color:var(--green); }
.btn-outline-light {
  font-size:.72rem; font-weight:400; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.85); border:1.5px solid rgba(255,255,255,.4);
  padding:.85rem clamp(1.25rem,3vw,2rem); text-decoration:none;
  transition:all .25s; cursor:none;
  display:inline-flex; align-items:center; gap:.5rem; white-space:nowrap;
}
.btn-outline-light:hover { border-color:var(--white); color:var(--white); }

/* ── Section base ── */
.section { padding:clamp(3.5rem,8vw,7rem) var(--px); }
.section-intro { margin-bottom:clamp(2rem,4vw,3rem); }

/* ══ NAV ═══════════════════════════════════════════════ */
.site-nav {
  position:fixed; top:0; left:0; right:0;
  height:var(--nav-h); z-index:500;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 clamp(1.25rem,4vw,4rem);
  background:rgba(255,255,255,.93);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid transparent;
  transition:border-color .3s;
  gap:1rem;
}
.site-nav.scrolled { border-bottom-color:var(--stone); }
.nav-logo { display:flex; align-items:center; gap:.65rem; text-decoration:none; flex-shrink:0; }
.nav-logo-img { height:36px; width:36px; object-fit:contain; }
.nav-logo-text { font-family:var(--font-serif); font-size:1.2rem; font-weight:400; color:var(--ink); line-height:1; }
.nav-logo-text em { font-style:italic; color:var(--green); }
.nav-links { display:flex; align-items:center; gap:clamp(1rem,2.5vw,2.5rem); list-style:none; }
.nav-links a {
  font-size:.68rem; font-weight:400; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-muted); text-decoration:none; transition:color .2s; position:relative; white-space:nowrap;
}
.nav-links a::after {
  content:''; position:absolute; bottom:-.25rem; left:0; right:0;
  height:1px; background:var(--green);
  transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease);
}
.nav-links a:hover, .nav-links a.active { color:var(--green); }
.nav-links a:hover::after, .nav-links a.active::after { transform:scaleX(1); }
.nav-cta {
  font-size:.7rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase;
  color:var(--white); background:var(--green);
  padding:.6rem 1.25rem; text-decoration:none; cursor:none;
  transition:background .25s; flex-shrink:0; white-space:nowrap;
}
.nav-cta:hover { background:var(--green-mid); }

/* ── HAMBURGER ── */
.nav-hamburger {
  display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px;
  width:40px; height:40px;
  background:transparent; border:1.5px solid var(--stone);
  cursor:pointer; padding:8px; transition:border-color .2s; flex-shrink:0;
}
.nav-hamburger:hover { border-color:var(--green); }
.nav-hamburger span {
  display:block; width:18px; height:1.5px;
  background:var(--ink); border-radius:2px;
  transition:transform .35s var(--ease), opacity .25s, width .3s;
  transform-origin:center; pointer-events:none;
}
.nav-hamburger.open span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity:0; width:0; }
.nav-hamburger.open span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* ── MOBILE MENU ── */
.mobile-menu {
  position:fixed; inset:0; z-index:490;
  background:rgba(248,246,241,.98); backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none;
  transition:opacity .4s var(--ease);
}
.mobile-menu.open { opacity:1; pointer-events:all; }
.mobile-close {
  position:absolute; top:1.25rem; right:1.25rem;
  background:transparent; border:1px solid var(--stone);
  width:44px; height:44px; font-size:1.1rem; cursor:pointer;
  color:var(--ink-muted); transition:all .2s; display:flex; align-items:center; justify-content:center;
}
.mobile-close:hover { border-color:var(--green); color:var(--green); }
.mobile-menu-inner {
  display:flex; flex-direction:column; align-items:center;
  width:100%; padding:4rem 2rem 3rem; text-align:center; overflow-y:auto; max-height:100vh;
}
.mobile-nav-links { list-style:none; width:100%; max-width:340px; }
.mobile-nav-links li {
  border-bottom:1px solid var(--stone);
  opacity:0; transform:translateY(16px);
  transition:opacity .4s var(--ease), transform .4s var(--ease);
}
.mobile-menu.open .mobile-nav-links li { opacity:1; transform:none; }
.mobile-menu.open .mobile-nav-links li:nth-child(1) { transition-delay:.07s; }
.mobile-menu.open .mobile-nav-links li:nth-child(2) { transition-delay:.12s; }
.mobile-menu.open .mobile-nav-links li:nth-child(3) { transition-delay:.17s; }
.mobile-menu.open .mobile-nav-links li:nth-child(4) { transition-delay:.22s; }
.mobile-menu.open .mobile-nav-links li:nth-child(5) { transition-delay:.27s; }
.mobile-menu.open .mobile-nav-links li:nth-child(6) { transition-delay:.32s; }
.mobile-menu.open .mobile-nav-links li:nth-child(7) { transition-delay:.37s; }
.mobile-nav-links a {
  display:block; padding:1.1rem .5rem;
  font-family:var(--font-serif); font-size:clamp(1.6rem,5vw,2.5rem);
  font-weight:300; color:var(--ink); text-decoration:none; transition:color .2s;
}
.mobile-nav-links a:hover { color:var(--green); }
.mobile-menu-cta {
  display:inline-block; margin-top:2.25rem;
  font-size:.72rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase;
  color:var(--white); background:var(--green);
  padding:.9rem 2.25rem; text-decoration:none;
  opacity:0; transform:translateY(12px);
  transition:opacity .4s .42s var(--ease), transform .4s .42s var(--ease), background .25s;
}
.mobile-menu.open .mobile-menu-cta { opacity:1; transform:none; }
.mobile-menu-cta:hover { background:var(--green-mid); }
.mobile-menu-footer {
  margin-top:1.5rem; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-faint); line-height:2;
  opacity:0; transform:translateY(8px);
  transition:opacity .4s .52s var(--ease), transform .4s .52s var(--ease);
}
.mobile-menu.open .mobile-menu-footer { opacity:1; transform:none; }

/* ══ HERO ═══════════════════════════════════════════════ */
.hero {
  position:relative; min-height:100svh;
  display:flex; align-items:center;
  padding-top:var(--nav-h); overflow:hidden;
  background:var(--ink);
}
.hero-video-bg {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center top;
  opacity:.5;
}
.hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(110deg, rgba(10,10,8,.88) 0%, rgba(10,10,8,.6) 50%, rgba(10,10,8,.18) 100%);
  z-index:1;
}
.hero-content {
  position:relative; z-index:2;
  padding:clamp(3rem,6vw,6rem) var(--px);
  max-width:min(720px, 60%);
}
.hero-eyebrow {
  font-size:.65rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--green-light); font-weight:400; margin-bottom:1.75rem;
  display:flex; align-items:center; gap:.75rem; flex-wrap:wrap;
}
.hero-eyebrow::before { content:''; display:block; width:2rem; height:1px; background:var(--green-light); flex-shrink:0; }
.hero-headline {
  font-family:var(--font-serif);
  font-size:clamp(3rem,7vw,7.5rem);
  font-weight:300; line-height:.92; letter-spacing:-.02em;
  color:var(--white); margin-bottom:1.75rem;
}
.hero-headline em { font-style:italic; color:var(--green-light); display:block; }
.hero-roles {
  list-style:none; margin-bottom:2rem;
}
.hero-roles li {
  font-family:var(--font-serif);
  font-size:clamp(1rem,2vw,1.6rem);
  font-weight:300; color:rgba(255,255,255,.65); line-height:1.6;
  border-bottom:1px solid rgba(255,255,255,.08); padding:.4rem 0;
  opacity:0; animation:slideUp .6s var(--ease) forwards;
}
.hero-roles li:nth-child(1) { animation-delay:.5s; }
.hero-roles li:nth-child(2) { animation-delay:.65s; }
.hero-roles li:nth-child(3) { animation-delay:.8s; }
.hero-roles li:nth-child(4) { animation-delay:.95s; }
.hero-sub {
  font-size:clamp(.85rem,1.5vw,1rem); font-weight:300; color:rgba(255,255,255,.65);
  line-height:1.85; max-width:440px; margin-bottom:2.5rem;
}
.hero-ctas { display:flex; gap:1rem; flex-wrap:wrap; }

/* Floating portrait */
.hero-portrait-wrap {
  position:absolute; right:var(--px); bottom:0; z-index:3;
  display:flex; flex-direction:column; align-items:center;
}
.hero-portrait-float {
  width:clamp(180px,20vw,300px);
  height:clamp(260px,38vh,500px);
  object-fit:cover; object-position:top center;
  border-top:3px solid var(--green);
  filter:drop-shadow(0 16px 50px rgba(0,0,0,.5));
}
.hero-stats-row { display:flex; gap:.75rem; margin-bottom:1.5rem; margin-top:.5rem; }
.hero-stat-pill {
  background:rgba(255,255,255,.08); backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.15);
  padding:.65rem 1rem; text-align:center;
}
.hero-stat-pill .stat-n {
  display:block; font-family:var(--font-serif); font-size:1.6rem;
  font-weight:300; color:var(--green-light); line-height:1;
}
.hero-stat-pill .stat-l {
  display:block; font-size:.55rem; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.45); margin-top:.15rem;
}

/* Scroll cue */
.scroll-cue {
  position:absolute; bottom:2rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.4rem; z-index:3;
}
.scroll-line {
  width:1px; height:45px;
  background:linear-gradient(to bottom, rgba(255,255,255,.4), transparent);
  animation:scrollPulse 2s ease-in-out infinite;
}
.scroll-cue span { font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.35); }
@keyframes scrollPulse { 0%,100%{opacity:.4} 50%{opacity:1} }
@keyframes slideUp { from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:none} }

/* ══ MARQUEE ════════════════════════════════════════════ */
.marquee { background:var(--ink); overflow:hidden; padding:.7rem 0; border-top:1px solid rgba(255,255,255,.05); }
.marquee-track {
  display:inline-flex; white-space:nowrap;
  animation:marqueeScroll 28s linear infinite;
}
.marquee-item {
  font-size:.62rem; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(255,255,255,.4); padding:0 2rem;
  display:inline-flex; align-items:center; gap:2rem;
}
.marquee-dot { display:inline-block; width:3px; height:3px; background:var(--green); border-radius:50%; }
@keyframes marqueeScroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ══ ABOUT ══════════════════════════════════════════════ */
.about-section { background:var(--white); }
.about-split {
  display:grid; grid-template-columns:1fr 1.35fr; gap:clamp(2rem,5vw,6rem);
  align-items:start; max-width:1200px; margin:0 auto;
}
.about-img-col { position:sticky; top:calc(var(--nav-h) + 1.5rem); }
.about-img-wrap { border-top:3px solid var(--green); overflow:hidden; }
.about-img { width:100%; height:clamp(320px,55vh,580px); object-fit:cover; object-position:top center; display:block; }
.about-quote-card {
  background:var(--cream); border-left:3px solid var(--green);
  padding:1.25rem 1.5rem; margin-top:1.25rem;
  display:flex; gap:.875rem; align-items:flex-start;
}
.about-quote-icon { font-size:1.25rem; flex-shrink:0; }
.about-quote-card blockquote { font-family:var(--font-serif); font-size:1rem; font-weight:300; font-style:italic; color:var(--ink-mid); line-height:1.6; }

/* Specialty badges */
.specialty-badges { display:flex; flex-direction:column; gap:.6rem; margin-top:1.25rem; }
.spec-badge {
  display:flex; align-items:center; gap:.75rem;
  padding:.75rem 1rem; background:var(--green-tint);
  border:1px solid var(--green-pale); border-left:3px solid var(--green);
}
.spec-badge--award { background:var(--gold-pale); border-color:#eedda0; border-left-color:var(--gold); }
.spec-icon { font-size:1.2rem; flex-shrink:0; }
.spec-title { font-size:.78rem; font-weight:500; color:var(--ink); }
.spec-sub { font-size:.68rem; color:var(--ink-muted); margin-top:.1rem; }

/* Credentials */
.about-content { }
.pillars-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; margin-top:2.25rem; }
.pillar { padding:1.25rem; background:var(--cream); border-top:2px solid var(--stone); }
.pillar-n { display:block; font-family:var(--font-serif); font-size:2.25rem; font-weight:300; color:rgba(45,106,79,.18); line-height:1; margin-bottom:.2rem; }
.pillar-title { font-size:.82rem; font-weight:500; color:var(--ink); margin-bottom:.35rem; }
.pillar-body { font-size:.78rem; font-weight:300; color:var(--ink-muted); line-height:1.75; }
.cred-block { margin-top:2.25rem; }
.cred-block-title { font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:1rem; padding-bottom:.5rem; border-bottom:1px solid var(--stone); }
.cred-list { list-style:none; display:flex; flex-direction:column; gap:.875rem; }
.cred-list li { display:flex; align-items:flex-start; gap:.875rem; }
.cred-flag { font-size:1.1rem; flex-shrink:0; margin-top:.1rem; }
.cred-text { display:flex; flex-direction:column; gap:.1rem; }
.cred-title { font-size:.8rem; font-weight:500; color:var(--ink); line-height:1.3; }
.cred-inst { font-size:.72rem; font-weight:300; color:var(--ink-muted); }

/* ══ STATS BAND ═════════════════════════════════════════ */
.stats-band { display:grid; grid-template-columns:repeat(4,1fr); background:var(--ink); }
.stat-band-item { padding:clamp(2rem,4vw,3.5rem) 1.5rem; text-align:center; border-right:1px solid rgba(255,255,255,.06); }
.stat-band-item:last-child { border-right:none; }
.stat-band-n { display:block; font-family:var(--font-serif); font-size:clamp(2.5rem,4vw,3.5rem); font-weight:300; color:var(--green-light); line-height:1; }
.stat-band-l { font-size:.6rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(255,255,255,.28); margin-top:.4rem; display:block; }

/* ══ SERVICES ═══════════════════════════════════════════ */
.services-section { background:var(--white); }
.receipt { border:1px solid var(--stone); background:var(--white); font-family:'Courier New',monospace; max-width:960px; margin:0 auto; overflow:hidden; }
.receipt-head { padding:clamp(1.5rem,3vw,2.5rem) clamp(1.25rem,3vw,3rem); text-align:center; border-bottom:1px dashed var(--stone); }
.receipt-deco { font-size:.55rem; letter-spacing:.28em; color:var(--ink-faint); margin-bottom:.6rem; }
.receipt-store { font-family:var(--font-serif); font-size:clamp(1.3rem,3vw,1.8rem); font-weight:300; letter-spacing:.04em; color:var(--ink); margin-bottom:.5rem; }
.receipt-store em { font-style:italic; color:var(--green); }
.receipt-meta { font-size:clamp(.65rem,1.5vw,.72rem); color:var(--ink-muted); line-height:1.8; }
.receipt-body { padding:0 clamp(1rem,3vw,3rem); overflow-x:auto; }
.receipt-table { width:100%; border-collapse:collapse; font-size:clamp(.7rem,1.5vw,.78rem); }
.receipt-table th { font-size:.56rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); padding:.7rem .4rem; border-bottom:1px solid var(--stone); text-align:left; font-weight:400; }
.receipt-table td { padding:.85rem .4rem; border-bottom:1px dashed var(--stone); vertical-align:top; }
.svc-name { font-weight:500; color:var(--ink); font-size:.82rem; font-family:var(--font-sans); }
.svc-desc { font-size:.7rem; color:var(--ink-muted); margin-top:.15rem; line-height:1.5; }
.svc-badge { display:inline-block; font-size:.52rem; letter-spacing:.1em; text-transform:uppercase; background:var(--green-pale); color:var(--green); padding:.18rem .55rem; margin-top:.3rem; }
.svc-dur, .svc-bar { font-size:.7rem; color:var(--ink-faint); white-space:nowrap; }
.svc-price { font-family:var(--font-serif); font-size:1.05rem; font-weight:400; color:var(--ink); white-space:nowrap; }
.add-svc { font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; border:1px solid var(--stone); color:var(--ink-muted); background:transparent; padding:.4rem .875rem; cursor:pointer; font-family:var(--font-sans); transition:all .2s; white-space:nowrap; }
.add-svc:hover, .add-svc.added { border-color:var(--green); color:var(--green); background:var(--green-tint); }
.hide-xs { }
.receipt-foot { padding:clamp(1.25rem,3vw,2rem) clamp(1rem,3vw,3rem); border-top:1px dashed var(--stone); display:flex; justify-content:space-between; align-items:flex-start; gap:1.5rem; flex-wrap:wrap; }
.receipt-total-label { font-size:.62rem; letter-spacing:.15em; text-transform:uppercase; color:var(--ink-faint); }
.receipt-total-val { font-family:var(--font-serif); font-size:clamp(2rem,4vw,2.5rem); font-weight:300; color:var(--ink); line-height:1.1; }
.receipt-note-small { font-size:.68rem; color:var(--ink-faint); margin-top:.4rem; }
.receipt-cta-col { text-align:right; display:flex; flex-direction:column; align-items:flex-end; }
.receipt-call-label { font-size:.6rem; letter-spacing:.15em; text-transform:uppercase; color:var(--ink-faint); }
.receipt-phone { display:block; font-family:var(--font-serif); font-size:clamp(1.3rem,2.5vw,1.6rem); font-weight:300; color:var(--green); text-decoration:none; margin:.2rem 0; }
.receipt-barcode { text-align:center; padding:.875rem; border-top:1px solid var(--stone); font-size:.5rem; letter-spacing:.06em; color:var(--ink-faint); overflow:hidden; }

/* ══ REMEDIES ═══════════════════════════════════════════ */
.filter-bar { display:flex; gap:.4rem; flex-wrap:wrap; }
.f-btn { font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; border:1px solid var(--stone); color:var(--ink-muted); background:transparent; padding:.42rem 1rem; cursor:pointer; font-family:var(--font-sans); transition:all .2s; }
.f-btn:hover, .f-btn.on { border-color:var(--green); color:var(--green); }
.conditions-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1px; background:var(--stone); }
.cond-card { background:var(--white); padding:1.75rem 1.5rem; position:relative; transition:background .25s,transform .3s; }
.cond-card:hover { background:var(--green-tint); transform:translateY(-3px); box-shadow:0 8px 28px rgba(0,0,0,.07); }
.cond-icon { font-size:1.4rem; display:block; margin-bottom:.65rem; }
.cond-tag { position:absolute; top:1rem; right:1rem; font-size:.52rem; letter-spacing:.12em; text-transform:uppercase; background:var(--green-pale); color:var(--green); padding:.18rem .55rem; }
.cond-name { font-family:var(--font-serif); font-size:1.05rem; font-weight:400; color:var(--ink); margin-bottom:.35rem; }
.cond-desc { font-size:.76rem; font-weight:300; color:var(--ink-muted); line-height:1.7; }

/* ══ GALLERY ════════════════════════════════════════════ */
.gallery-section { }
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.g-item { position:relative; overflow:hidden; }
.g-item img { width:100%; height:clamp(200px,28vw,360px); object-fit:cover; transition:transform .6s var(--ease); display:block; }
.g-item:hover img { transform:scale(1.05); }
.g-label { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(to top,rgba(10,10,8,.8),transparent); color:rgba(255,255,255,.85); font-size:.58rem; letter-spacing:.15em; text-transform:uppercase; padding:1.25rem .75rem .65rem; opacity:0; transition:opacity .3s; }
.g-item:hover .g-label { opacity:1; }

/* ══ AWARDS ════════════════════════════════════════════ */
.awards-section { background:var(--cream); }
.awards-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2.5vw,2rem); }
.award-card { background:var(--white); border:1px solid var(--stone); overflow:hidden; transition:box-shadow .3s,transform .3s; }
.award-card:hover { box-shadow:0 12px 48px rgba(0,0,0,.1); transform:translateY(-5px); }
.award-img-wrap { height:auto; overflow:hidden; position:relative; }
.award-img-wrap img { width:100%; height:auto; object-fit:contain; object-position:center top; transition:transform .6s var(--ease); display:block; }
.award-card:hover .award-img-wrap img { transform:scale(1.04); }
.award-body { padding:clamp(1.25rem,2.5vw,2rem); }
.award-year { font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:.6rem; }
.award-trophy { font-size:1.8rem; display:block; margin-bottom:.5rem; }
.award-title { font-family:var(--font-serif); font-size:clamp(1.2rem,2.5vw,1.6rem); font-weight:400; color:var(--ink); margin-bottom:.75rem; line-height:1.1; }
.award-sub { font-size:.78rem; font-weight:300; color:var(--ink-muted); line-height:1.75; }

/* Expert band */
.expert-band {
  display:flex; align-items:stretch; flex-wrap:wrap;
  background:var(--ink); margin-top:clamp(2rem,4vw,3.5rem);
  border:1px solid rgba(255,255,255,.05);
}
.expert-item { flex:1; min-width:150px; padding:clamp(1.5rem,3vw,2.5rem) 1.5rem; text-align:center; }
.expert-divider { width:1px; background:rgba(255,255,255,.06); flex-shrink:0; }
.expert-icon { font-size:1.8rem; display:block; margin-bottom:.6rem; }
.expert-label { font-family:var(--font-serif); font-size:clamp(.95rem,2vw,1.1rem); font-weight:400; color:var(--white); margin-bottom:.25rem; }
.expert-sub { font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.3); }

/* ══ PROCESS ════════════════════════════════════════════ */
.process-section { background:var(--white); }
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.5rem,3vw,2.5rem); margin-top:3rem; }
.proc-step { border-top:2px solid var(--stone); padding-top:1.5rem; }
.proc-num { display:block; font-family:var(--font-serif); font-size:2.75rem; font-weight:300; color:rgba(45,106,79,.15); line-height:1; margin-bottom:.4rem; }
.proc-title { font-size:.88rem; font-weight:500; color:var(--ink); margin-bottom:.55rem; }
.proc-body { font-size:.8rem; font-weight:300; color:var(--ink-muted); line-height:1.8; }

/* ══ TESTIMONIALS ═══════════════════════════════════════ */
.testi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.testi-card { background:var(--white); padding:clamp(1.5rem,3vw,2.5rem); border:1px solid var(--stone); }
.testi-q { font-family:var(--font-serif); font-size:4.5rem; font-weight:300; color:var(--green-pale); line-height:1; display:block; margin-bottom:-.4rem; }
.testi-text { font-size:.86rem; font-weight:300; color:var(--ink-mid); line-height:1.85; margin-bottom:1.25rem; }
.testi-name { font-size:.8rem; font-weight:500; color:var(--ink); }
.testi-cond { font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--green); margin-top:.2rem; }

/* ══ MIRACLE BABIES ════════════════════════════════════ */
.babies-section { display:grid; grid-template-columns:1fr 1fr; }
.babies-img { position:relative; overflow:hidden; min-height:400px; }
.babies-img img { width:100%; height:100%; object-fit:cover; display:block; }
.babies-content { background:var(--cream); padding:clamp(3rem,7vw,7rem) var(--px); display:flex; flex-direction:column; justify-content:center; }
.babies-stats { display:flex; gap:clamp(1.5rem,4vw,3rem); margin-top:2rem; flex-wrap:wrap; }
.baby-stat-n { display:block; font-family:var(--font-serif); font-size:clamp(2rem,3.5vw,2.8rem); font-weight:300; color:var(--green); line-height:1; }
.baby-stat-l { font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-muted); margin-top:.2rem; }

/* ══ CTA ════════════════════════════════════════════════ */
.cta-section { background:var(--ink); padding:clamp(4rem,8vw,7rem) var(--px); text-align:center; }
.cta-section .label::before { background:var(--green-light); }
.cta-section .label { color:var(--green-light); justify-content:center; }
.cta-section .h2 { color:var(--white); }
.cta-section .h2 em { color:var(--green-light); }
.cta-section .body-lg { color:rgba(255,255,255,.62); }
.cta-contact-row { display:flex; flex-wrap:wrap; gap:2rem 3.5rem; justify-content:center; margin-top:3.5rem; padding-top:2.5rem; border-top:1px solid rgba(255,255,255,.07); }
.cta-item-label { font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.28); margin-bottom:.3rem; }
.cta-item-val { font-size:.88rem; font-weight:300; color:rgba(255,255,255,.72); line-height:1.65; }
.cta-item-val a { color:var(--green-light); text-decoration:none; transition:color .2s; }
.cta-item-val a:hover { color:var(--white); }

/* ══ FOOTER ════════════════════════════════════════════ */
.site-footer {
  background:var(--ink); padding:2rem clamp(1.25rem,4vw,4rem);
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1.25rem;
  border-top:1px solid rgba(255,255,255,.05);
}
.footer-brand { font-family:var(--font-serif); font-size:1.05rem; font-weight:300; color:rgba(255,255,255,.45); }
.footer-brand em { font-style:italic; color:var(--green-light); }
.footer-nav { display:flex; gap:1.5rem; flex-wrap:wrap; }
.footer-nav a { font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.28); text-decoration:none; transition:color .2s; }
.footer-nav a:hover { color:var(--green-light); }
.footer-copy { font-size:.65rem; color:rgba(255,255,255,.18); text-align:right; line-height:1.8; }
.footer-built a { color:rgba(255,255,255,.35); text-decoration:none; transition:color .2s; }
.footer-built a:hover { color:var(--green-light); }

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

/* ── 1280px: large tablet / small desktop ── */
@media (max-width:1280px) {
  .nav-links { gap:1.5rem; }
  .about-split { grid-template-columns:1fr 1.2fr; }
  .gallery-grid { grid-template-columns:repeat(3,1fr); }
}

/* ── 1024px: tablet landscape ── */
@media (max-width:1024px) {
  /* Nav */
  .nav-hamburger { display:flex; }
  .nav-links { display:none !important; }
  .nav-cta { display:none; }
  body { cursor:auto; }
  .cur,.cur-ring { display:none; }

  /* Hero */
  .hero-content { max-width:100%; padding:clamp(2.5rem,5vw,5rem) var(--px) clamp(2rem,4vw,3rem); }
  .hero-portrait-wrap { display:none; }
  .hero-overlay { background:linear-gradient(180deg,rgba(10,10,8,.85) 0%,rgba(10,10,8,.6) 60%,rgba(10,10,8,.3) 100%); }

  /* About */
  .about-split { grid-template-columns:1fr; }
  .about-img-col { position:static; }
  .about-img { height:clamp(260px,50vw,420px); }

  /* Stats */
  .stats-band { grid-template-columns:1fr 1fr; }

  /* Gallery */
  .gallery-grid { grid-template-columns:1fr 1fr; }

  /* Awards */
  .awards-grid { grid-template-columns:1fr 1fr; }
  .expert-band { }
  .expert-item { min-width:130px; }

  /* Process */
  .process-grid { grid-template-columns:1fr 1fr; }

  /* Testimonials */
  .testi-grid { grid-template-columns:1fr; }

  /* Babies */
  .babies-section { grid-template-columns:1fr; }
  .babies-img { height:clamp(260px,55vw,400px); }

  /* Footer */
  .site-footer { flex-direction:column; align-items:center; text-align:center; }
  .footer-nav { justify-content:center; }
  .footer-copy { text-align:center; }
}

/* ── 768px: tablet portrait ── */
@media (max-width:768px) {
  :root { --nav-h:60px; }
  .awards-grid { grid-template-columns:1fr; max-width:460px; margin:0 auto; }
  .award-img-wrap { height:clamp(220px,55vw,320px); }
  .expert-band { flex-direction:column; }
  .expert-divider { width:100%; height:1px; }
  .stats-band { grid-template-columns:1fr 1fr; }
  .pillars-grid { grid-template-columns:1fr; }
  .gallery-grid { grid-template-columns:1fr 1fr; }
  .receipt-table .hide-xs { display:none; }
  .receipt-foot { flex-direction:column; gap:1.5rem; }
  .receipt-cta-col { align-items:flex-start; text-align:left; }
  .babies-stats { gap:1.25rem; }
}

/* ── 640px: large phone ── */
@media (max-width:640px) {
  .hero-headline { font-size:clamp(2.6rem,10vw,3.5rem); }
  .hero-roles li { font-size:1rem; }
  .stats-band { grid-template-columns:1fr 1fr; }
  .process-grid { grid-template-columns:1fr; }
  .conditions-grid { grid-template-columns:1fr; }
  .gallery-grid { grid-template-columns:1fr; }
  .testi-grid { grid-template-columns:1fr; }
  .cta-contact-row { gap:1.5rem 2.5rem; }
  .specialty-badges { }
  .spec-badge { }
  .about-quote-card { flex-direction:column; gap:.5rem; }
  .hero-ctas { flex-direction:column; align-items:flex-start; }
  .hero-ctas .btn-primary, .hero-ctas .btn-outline-light { width:100%; justify-content:center; }
}

/* ── 400px: small phone ── */
@media (max-width:400px) {
  :root { --nav-h:56px; }
  .hero-headline { font-size:2.4rem; }
  .hero-sub { font-size:.82rem; }
  .stats-band { grid-template-columns:1fr 1fr; }
  .babies-stats { flex-direction:column; gap:1rem; }
  .cta-contact-row { flex-direction:column; align-items:center; text-align:center; }
  .receipt { font-size:.7rem; }
}

/* ── Hover: only on pointer devices ── */
@media (hover:none) {
  .cond-card:hover, .award-card:hover, .g-item:hover img { transform:none; box-shadow:none; }
  .g-label { opacity:1; }
}

/* ══ AWARDS GRID — 4 COLUMN ════════════════════════════ */
.awards-grid--4 { grid-template-columns: repeat(4,1fr); }
@media (max-width:1024px) { .awards-grid--4 { grid-template-columns: 1fr 1fr; } }
@media (max-width:600px)  { .awards-grid--4 { grid-template-columns: 1fr; max-width:420px; margin:0 auto; } }

/* ══ EVIDENCE / BEFORE-AFTER SECTION ══════════════════ */
.evidence-section { background:var(--warm); }

/* Tab nav */
.ev-tabs {
  display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:2.5rem;
}
.ev-tab {
  font-size:.62rem; letter-spacing:.1em; text-transform:uppercase;
  border:1.5px solid var(--stone); color:var(--ink-muted);
  background:transparent; padding:.5rem 1.1rem;
  cursor:pointer; font-family:var(--font-sans); transition:all .2s;
  border-radius:2px;
}
.ev-tab:hover { border-color:var(--green); color:var(--green); }
.ev-tab.on { border-color:var(--green); color:var(--white); background:var(--green); }

/* Panels */
.ev-panels { position:relative; }
.ev-panel { display:none; }
.ev-panel.on { display:block; }

.ev-header {
  display:flex; align-items:flex-start; gap:1.25rem;
  background:var(--white); border:1px solid var(--stone);
  border-left:4px solid var(--green);
  padding:1.5rem 2rem; margin-bottom:1.5rem;
}
.ev-icon { font-size:2rem; flex-shrink:0; }
.ev-condition { font-size:.72rem; letter-spacing:.15em; text-transform:uppercase; color:var(--ink-muted); margin-bottom:.35rem; }
.ev-result { font-size:1rem; font-weight:400; color:var(--ink); font-family:var(--font-serif); line-height:1.5; }
.ev-green { color:var(--green); }

/* Before/After pair */
.ev-before-after {
  display:grid; grid-template-columns:1fr auto 1fr; gap:1rem; align-items:start;
}
.ev-arrow-col {
  display:flex; align-items:center; justify-content:center;
  padding-top:clamp(120px,15vw,180px);
}
.ev-arrow {
  font-size:2.5rem; color:var(--green); font-weight:300;
  display:block; line-height:1;
}

/* Document card */
.ev-doc {
  background:var(--white); border:1px solid var(--stone);
  overflow:hidden;
}
.ev-doc img {
  width:100%; height:auto;
  object-fit:contain; object-position:top center; display:block;
  background:var(--white);
}
.ev-doc-label {
  font-size:.6rem; letter-spacing:.2em; text-transform:uppercase;
  font-weight:600; padding:.5rem 1rem; text-align:center;
}
.ev-doc-label--before { background:#FEE2E2; color:#B91C1C; }
.ev-doc-label--after  { background:var(--green-pale); color:var(--green); }
.ev-doc-note {
  padding:.6rem 1rem .75rem; font-size:.72rem; color:var(--ink-muted);
  line-height:1.5; border-top:1px solid var(--stone);
}

/* Pregnancy grid (4-up) */
.ev-pregnancy-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:1rem;
}
.ev-doc--sm img { height:auto; object-fit:contain; }

/* Disclaimer */
.ev-disclaimer {
  margin-top:2rem; padding:1rem 1.5rem;
  background:var(--cream); border:1px solid var(--stone);
  font-size:.7rem; color:var(--ink-faint); line-height:1.7;
  text-align:center; letter-spacing:.04em;
}

/* ══ MIRACLE BABIES — NEW FULL SECTION ════════════════ */
.babies-section-full { background:var(--ink); overflow:hidden; }

.babies-content-top {
  display:grid; grid-template-columns:1fr 1fr; min-height:500px;
}
.babies-content-inner {
  padding:clamp(3rem,7vw,7rem) var(--px);
  display:flex; flex-direction:column; justify-content:center;
}
.babies-content-inner .label::before,
.babies-content-inner .label { color:var(--green-light); }
.babies-content-inner .label::before { background:var(--green-light); }
.babies-content-inner .h2 { color:var(--white); }
.babies-content-inner .h2 em { color:var(--green-light); }
.babies-content-inner .body-lg { color:rgba(255,255,255,.65); }
.babies-stats { display:flex; gap:clamp(1.5rem,4vw,3rem); margin-top:2rem; flex-wrap:wrap; }
.baby-stat-n { display:block; font-family:var(--font-serif); font-size:clamp(2rem,3.5vw,2.8rem); font-weight:300; color:var(--green-light); line-height:1; }
.baby-stat-l { font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.35); margin-top:.25rem; }

.babies-img-side { position:relative; overflow:hidden; }
.babies-img-side img { width:100%; height:100%; object-fit:cover; display:block; }

/* Baby photos mosaic */
.babies-photos-grid {
  display:grid; grid-template-columns:repeat(6,1fr); gap:2px; background:var(--ink);
}
.baby-photo-item { overflow:hidden; aspect-ratio:1/1; }
.baby-photo-item img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); display:block; }
.baby-photo-item:hover img { transform:scale(1.06); }

/* ══ RESPONSIVE — EVIDENCE & BABIES ══════════════════ */
@media (max-width:1200px) {
  .ev-pregnancy-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:1024px) {
  .ev-before-after { grid-template-columns:1fr; gap:.75rem; }
  .ev-arrow-col { padding-top:0; }
  .ev-arrow { transform:rotate(90deg); }
  .ev-pregnancy-grid { grid-template-columns:1fr 1fr; }
  .babies-content-top { grid-template-columns:1fr; }
  .babies-img-side { height:clamp(260px,50vw,400px); }
  .babies-photos-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:640px) {
  .ev-tabs { gap:.3rem; }
  .ev-tab { font-size:.58rem; padding:.4rem .7rem; }
  .ev-pregnancy-grid { grid-template-columns:1fr; }
  .ev-header { flex-direction:column; gap:.75rem; }
  .babies-photos-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:400px) {
  .babies-photos-grid { grid-template-columns:repeat(2,1fr); }
}

/* ══ GALLSTONE TESTIMONY ══════════════════════════════ */
.gallstone-intro {
  background:var(--white); border:1px solid var(--stone);
  padding:1.25rem 1.75rem; margin-bottom:1.5rem;
  font-size:.88rem; color:var(--ink-mid); line-height:1.8; font-weight:300;
  border-left:4px solid var(--green);
}
.gallstone-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--stone);
}
.gallstone-grid .ev-doc img {
  height:auto; object-fit:contain; object-position:center center;
}
.gallstone-cta {
  margin-top:1.5rem; display:flex; align-items:center;
  gap:2rem; flex-wrap:wrap; background:var(--white);
  border:1px solid var(--stone); padding:1.5rem 2rem;
}
.gallstone-note {
  flex:1; font-size:.75rem; color:var(--ink-muted); line-height:1.75;
  font-weight:300; min-width:200px;
}

@media (max-width:1024px) { .gallstone-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:640px)  {
  .gallstone-grid { grid-template-columns:1fr 1fr; }
  .gallstone-cta { flex-direction:column; align-items:flex-start; }
}

/* ══ KIDNEY STONES PANEL ════════════════════════════════ */
.kidneystone-photos-label {
  font-size:.68rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink-faint); text-align:center;
  padding:1.5rem 0 .75rem; border-top:1px solid var(--stone); margin-top:1.5rem;
}
.kidneystone-photos-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--stone);
}
.kidneystone-photos-grid .ev-doc img {
  height:auto; object-fit:contain; object-position:center center;
}
@media (max-width:768px) { .kidneystone-photos-grid { grid-template-columns:1fr; } }

/* ══ GOOGLE REVIEWS STYLING ═══════════════════════════ */
.testi-stars { font-size:1rem; margin-bottom:.4rem; letter-spacing:.1em; }
.testi-source {
  display:flex; align-items:center; gap:.5rem;
  font-size:.65rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-faint); margin-bottom:.5rem;
}
.testi-google {
  display:inline-flex; align-items:center; justify-content:center;
  width:18px; height:18px; border-radius:50%;
  background:#4285F4; color:#fff;
  font-size:.65rem; font-weight:700; flex-shrink:0;
}

/* Google badge */
.google-badge {
  margin-top:3rem; border-top:1px solid var(--stone); padding-top:2rem;
}
.google-badge-inner {
  display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap;
  background:var(--white); border:1px solid var(--stone);
  padding:1.25rem 2rem;
}
.google-g {
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:50%;
  background:#4285F4; color:#fff;
  font-size:1.25rem; font-weight:700; flex-shrink:0;
}
.google-badge-title { font-size:.85rem; font-weight:500; color:var(--ink); }
.google-badge-stars { font-size:.78rem; color:var(--ink-muted); margin-top:.2rem; }
.google-badge-stars span { margin-left:.4rem; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }

@media (max-width:640px) {
  .google-badge-inner { flex-direction:column; align-items:flex-start; }
}
