/* ===========================================================
   Grounded Growth — Site Styles
   Brand tokens live here. Update colors/fonts in one place.
   =========================================================== */

:root {
  /* Brand color palette (from Brand Guide, June 2026) */
  --hot-pink: #FF0090;
  --rose:     #FF80B1;
  --petal:    #FFB3CA;
  --blush:    #FFCFE7;
  --black:    #000000;
  --charcoal: #2E2E2E;
  --grey:     #7C7C7C;
  --light-grey:#A0A0A0;
  --white:    #FFFFFF;
  --cream:    #FFE4C4;

  /* Fonts */
  --font-head: 'Poppins', system-ui, sans-serif;
  --font-body: 'Poppins', system-ui, sans-serif;
  --font-editorial: 'Playfair Display', Georgia, serif;
  --font-script: 'Allura', cursive;

  --maxw: 1140px;
  --radius: 16px;
  --shadow: 0 10px 30px rgba(0,0,0,.08);
  --shadow-lg: 0 20px 50px rgba(0,0,0,.12);
}

/* ---------- Reset ---------- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  color: var(--charcoal);
  background: var(--white);
  line-height: 1.65;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

h1, h2, h3, h4 { font-family: var(--font-head); color: var(--black); line-height: 1.15; font-weight: 700; }
.editorial { font-family: var(--font-editorial); font-style: italic; }
.script { font-family: var(--font-script); color: var(--hot-pink); font-weight: 400; }

.container { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
.section { padding: 58px 0; }
.section--tight { padding: 44px 0; }
.center { text-align: center; }

.eyebrow {
  font-family: var(--font-head);
  text-transform: uppercase;
  letter-spacing: .22em;
  font-size: .72rem;
  font-weight: 600;
  color: var(--hot-pink);
  margin-bottom: 14px;
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-block;
  font-family: var(--font-head);
  font-weight: 600;
  font-size: .82rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 15px 32px;
  border-radius: 999px;
  border: 2px solid var(--hot-pink);
  transition: all .2s ease;
  cursor: pointer;
  text-align: center;
}
.btn--primary { background: var(--hot-pink); color: var(--white); }
.btn--primary:hover { background: var(--rose); border-color: var(--rose); transform: translateY(-2px); }
.btn--ghost { background: transparent; color: var(--hot-pink); }
.btn--ghost:hover { background: var(--hot-pink); color: var(--white); transform: translateY(-2px); }
.btn--light { background: var(--white); color: var(--hot-pink); border-color: var(--white); }
.btn--light:hover { background: var(--blush); border-color: var(--blush); }

/* Force Payhip buy buttons to match brand (override Payhip's default green) */
.btn.payhip-buy-button, a.payhip-buy-button {
  background: var(--hot-pink) !important;
  color: #fff !important;
  border: 2px solid var(--hot-pink) !important;
  box-shadow: none !important;
  font-family: var(--font-head) !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  border-radius: 999px !important;
  text-align: center !important;
}
.btn.payhip-buy-button:hover, a.payhip-buy-button:hover {
  background: var(--rose) !important;
  border-color: var(--rose) !important;
}

/* ---------- Header / Nav ---------- */
.topbar { background: var(--charcoal); color:#fff; padding: 16px 16px; }
.topbar__inner { display:flex; align-items:center; justify-content:center; gap:20px; flex-wrap:wrap; max-width: var(--maxw); margin:0 auto; }
.topbar__text { font-family: var(--font-head); font-weight:400; font-size:1.05rem; letter-spacing:.01em; }
.topbar__text a { color: var(--rose); font-weight:600; text-decoration:none; }
.topbar__text a:hover { text-decoration:underline; }
@media (max-width:600px){ .topbar__text { font-size:.95rem; } .topbar { padding:13px 14px; } }

.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid #f0f0f0;
}
.nav {
  display: flex; align-items: center; justify-content: space-between;
  height: 84px;
}
.nav__logo { display:flex; align-items:center; gap:9px; }
.nav__logo img { height: 46px; width: auto; }
.nav__logo .nav__leaf { height: 38px; }
.nav__wm { font-family: var(--font-head); font-weight: 700; font-size: 1.2rem; letter-spacing: .05em; text-transform: uppercase; color: var(--black); line-height: 1; white-space: nowrap; }
.nav__wm .pink { color: var(--hot-pink); }
.nav__links { display: flex; align-items: center; gap: 30px; list-style: none; }
.nav__links a {
  font-family: var(--font-head); font-weight: 500; font-size: .9rem;
  color: var(--charcoal); transition: color .15s;
}
.nav__links a:hover, .nav__links a.active { color: var(--hot-pink); }
/* Keep the pink "Shop" CTA button text white in all states (override nav link color) */
.nav__links .nav__cta a.btn--primary,
.nav__links .nav__cta a.btn--primary:hover,
.nav__links .nav__cta a.btn--primary.active { color: var(--white) !important; }
.nav__cta { margin-left: 8px; }
.nav__toggle { display: none; background: none; border: 0; cursor: pointer; }
.nav__toggle span { display:block; width: 26px; height: 2px; background: var(--charcoal); margin: 6px 0; transition: .2s; }

/* ---------- Hero ---------- */
.hero {
  background:
    radial-gradient(circle at 80% 20%, rgba(255,179,202,.35), transparent 55%),
    linear-gradient(180deg, var(--blush) 0%, #fff 100%);
  overflow: hidden;
}
.hero__grid {
  display: grid; grid-template-columns: 1.05fr .95fr; gap: 48px; align-items: center;
  padding: 72px 0 64px;
}
.hero h1 { font-size: clamp(2.4rem, 5vw, 3.7rem); letter-spacing: -.01em; }
.hero h1 .pink { color: var(--hot-pink); }
.hero__lead { font-size: 1.18rem; color: var(--charcoal); margin: 22px 0 14px; max-width: 33ch; }
.hero__sub { color: var(--grey); margin-bottom: 30px; max-width: 42ch; }
.hero__cta { display: flex; gap: 14px; flex-wrap: wrap; }
.hero__media { position: relative; }
.hero__media img { border-radius: var(--radius); }
.hero__tagline { font-family: var(--font-script); color: var(--hot-pink); font-size: 2rem; text-align: center; margin-top: 16px; }

/* ---------- Signature strip ---------- */
.strip { background: var(--cream); color: var(--charcoal); }
.strip__row {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 40px;
  padding: 22px 0; font-family: var(--font-head); font-weight: 500; font-size: .95rem;
  text-align: center;
}
.strip__row span { display: inline-flex; align-items: center; gap: 10px; }
.strip__row .dot { color: var(--hot-pink); }

/* ---------- Method (Ground / Align / Grow) ---------- */
.method__head { max-width: 640px; margin: 0 auto 52px; }
.method__head h2 { font-size: clamp(1.9rem, 3.4vw, 2.6rem); }
.cards3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 26px; }
.card {
  background: var(--white); border: 1px solid #f1eef0; border-radius: var(--radius);
  padding: 38px 30px; box-shadow: var(--shadow); transition: transform .2s, box-shadow .2s;
}
.card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.card__num {
  font-family: var(--font-editorial); font-style: italic; font-size: 1.05rem; color: var(--hot-pink);
}
.card h3 { font-size: 1.4rem; margin: 6px 0 12px; }
.card p { color: var(--grey); font-size: .98rem; }
.card__icon { width: 56px; height: 56px; margin-bottom: 18px; }
.value-card { position:relative; padding-right:108px; }
.value-icon { width:80px; height:80px; border-radius:50%; background:var(--blush); display:flex; align-items:center; justify-content:center; position:absolute; top:28px; right:24px; }
.value-icon svg { width:42px; height:42px; stroke:var(--hot-pink); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
@media (max-width:760px){ .value-card { padding-right:92px; } .value-icon { width:64px; height:64px; } .value-icon svg { width:34px; height:34px; } }

/* ---------- Featured resource ---------- */
.feature { background: linear-gradient(180deg, #fff7fb 0%, var(--blush) 100%); }
.feature__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 50px; align-items: center; }
.feature__media {
  background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow-lg);
  padding: 40px; text-align: center;
}
.feature__media img { margin: 0 auto; max-width: 300px; }
.feature__media img.blogcover { max-width: 100%; border-radius: 10px; }

/* Team / founder cards */
.team-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; max-width:920px; margin:0 auto; }
.team-card { background:#fff; border:1px solid #f1eef0; border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; }
.team-card img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center top; display:block; }
.team-card__body { padding:26px 26px 30px; }
.team-card__body h3 { font-size:1.4rem; }
.team-card__body p { color:var(--grey); font-size:.97rem; line-height:1.65; margin-bottom:0.9rem; }
.team-card__body p:last-child { margin-bottom:0; }
.team-card__body p.team-card__role { font-family:var(--font-head); font-weight:600; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--hot-pink); margin:4px 0 14px; }
@media (max-width:760px){ .team-grid{ grid-template-columns:1fr; } }
.feature__media .badge {
  display:inline-block; background: var(--hot-pink); color:#fff; font-family: var(--font-head);
  font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; padding:6px 14px; border-radius:999px; margin-bottom:20px;
}
.feature h2 { font-size: clamp(1.8rem, 3.2vw, 2.4rem); }
.feature .verse { font-family: var(--font-editorial); font-style: italic; color: var(--hot-pink); margin: 14px 0; font-size: 1.1rem; }
.feature ul { list-style: none; margin: 18px 0 26px; }
.feature li { padding: 7px 0 7px 30px; position: relative; color: var(--charcoal); }
.feature li::before {
  content: ""; position: absolute; left: 0; top: 12px; width: 14px; height: 14px;
  background: url('../img/leaf.png') center/contain no-repeat;
}

/* ---------- Resources teaser grid ---------- */
.res-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 26px; }
.res {
  border: 1px solid #f1eef0; border-radius: var(--radius); overflow: hidden; background:#fff;
  box-shadow: var(--shadow); transition: transform .2s, box-shadow .2s; display:flex; flex-direction:column;
}
.res:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.res__top { background: linear-gradient(135deg, var(--blush), var(--petal)); aspect-ratio: 4/3; display:flex; align-items:center; justify-content:center; }
.res__top img { width: 84px; opacity: .95; }
.res__body { padding: 24px; flex:1; display:flex; flex-direction:column; }
.res__body h3 { font-size: 1.15rem; }
.res__body p { color: var(--grey); font-size: .92rem; margin: 8px 0 16px; flex:1; }
.res__price { font-family: var(--font-head); font-weight: 700; color: var(--hot-pink); margin-bottom: 14px; }

/* ---------- Testimonials ---------- */
.testi { background: linear-gradient(180deg,#fff, var(--blush)); }
.testi-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 26px; }
.quote {
  background:#fff; border-radius: var(--radius); padding: 34px 28px; box-shadow: var(--shadow);
  border-top: 4px solid var(--hot-pink);
}
.quote__mark { font-family: var(--font-editorial); font-size: 3rem; color: var(--petal); line-height: .6; }
.quote h4 { font-size: 1.15rem; color: var(--hot-pink); margin: 6px 0 12px; }
.quote p { color: var(--charcoal); font-size: .96rem; }
.quote__name { font-family: var(--font-head); font-weight: 600; margin-top: 16px; color: var(--charcoal); }

/* ---------- Email capture ---------- */
.optin { background: var(--charcoal); color: #fff; }
.optin__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.optin h2 { color: #fff; font-size: clamp(1.8rem, 3.2vw, 2.4rem); }
.optin p { color: #e9e9e9; margin: 16px auto 28px; max-width: 52ch; }
.optin .badge { color: var(--blush); font-family: var(--font-head); letter-spacing:.2em; text-transform:uppercase; font-size:.72rem; font-weight:600; }
.optin form { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.optin input[type=email] {
  padding: 15px 20px; border-radius: 999px; border: 0; min-width: 300px; font-family: var(--font-body); font-size: 1rem;
}

/* ---- Style the embedded Kit (ConvertKit) inline form to match the brand ---- */
.kit-embed { max-width: 560px; margin: 0 auto; }
.optin .formkit-form {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  max-width: 560px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: block !important;
  min-height: 0 !important;
}
/* collapse the two-column / image template into one centered column */
.optin .formkit-form .formkit-background,
.optin .formkit-form [data-element="image"],
.optin .formkit-form .formkit-image { display: none !important; }
.optin .formkit-form [data-element="column"],
.optin .formkit-form .formkit-column,
.optin .formkit-form > div { width: 100% !important; max-width: 100% !important; flex: 1 1 100% !important; }
/* hide Kit's own heading/subheading (we already have a section heading) */
.optin .formkit-form .formkit-header,
.optin .formkit-form .formkit-subheader { display: none !important; }
/* fields */
.optin .formkit-form .formkit-fields { display: flex !important; flex-direction: column; gap: 12px; align-items: center; max-width: 420px; margin: 0 auto; }
.optin .formkit-form .formkit-field,
.optin .formkit-form .formkit-submit { width: 100% !important; }
.optin .formkit-form .formkit-input {
  background: #fff !important; color: var(--charcoal) !important;
  border: 0 !important; border-radius: 999px !important; padding: 14px 22px !important;
  font-family: var(--font-body) !important; width: 100% !important;
}
.optin .formkit-form .formkit-submit {
  background: var(--hot-pink) !important; border-radius: 999px !important; border: 0 !important; padding: 14px 22px !important;
}
.optin .formkit-form .formkit-submit:hover { background: var(--rose) !important; }
.optin .formkit-form .formkit-submit span { color: #fff !important; font-family: var(--font-head) !important; font-weight: 600 !important; letter-spacing: .04em; }
.optin .formkit-form .formkit-guarantee,
.optin .formkit-form .formkit-guarantee * { color: #b9b9b9 !important; font-size: .8rem !important; }
.optin .formkit-form .formkit-powered-by-convertkit-container { margin-top: 14px; opacity: .6; }

/* ---------- Footer ---------- */
.footer { background:#1c1c1c; color:#cfcfcf; padding: 60px 0 28px; }
.footer__grid { display:grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; margin-bottom: 40px; }
.footer__brand img { width: 120px; margin-bottom: 16px; }
.footer__brand p { color:#a8a8a8; font-size:.92rem; max-width: 36ch; }
.footer h5 { color:#fff; font-family: var(--font-head); font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; margin-bottom:16px; }
.footer ul { list-style:none; }
.footer ul li { margin-bottom: 10px; }
.footer ul a { color:#bdbdbd; font-size:.93rem; }
.footer ul a:hover { color: var(--rose); }
.footer__social { display:flex; gap:14px; margin-top: 14px; }
.footer__social a {
  width:38px; height:38px; border-radius:50%; background:#2c2c2c; display:flex; align-items:center; justify-content:center;
  transition: background .2s;
}
.footer__social a:hover { background: var(--hot-pink); }
.footer__social svg { width:18px; height:18px; fill:#fff; }
.footer__bottom { border-top:1px solid #333; padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:.82rem; color:#8a8a8a; }
.footer__bottom a { color:#8a8a8a; }
.footer__bottom a:hover { color: var(--rose); }

/* ---------- Page hero (interior pages) ---------- */
.pagehero { background: linear-gradient(180deg, var(--blush), #fff); text-align:center; padding: 70px 0 56px; }
.pagehero h1 { font-size: clamp(2rem, 4vw, 3rem); }
.pagehero p { color: var(--grey); max-width: 56ch; margin: 16px auto 0; }

/* ---------- Prose (about/blog) ---------- */
.prose { max-width: 760px; margin: 0 auto; }
.prose p { margin-bottom: 18px; color: var(--charcoal); }
.prose h2 { font-size: 1.6rem; margin: 36px 0 14px; }
.prose .editorial { color: var(--hot-pink); font-size: 1.25rem; display:block; margin: 24px 0; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .hero__grid { grid-template-columns: 1fr; padding: 48px 0; }
  .hero__media { order: -1; max-width: 460px; margin: 0 auto; }
  .cards3, .res-grid, .testi-grid { grid-template-columns: 1fr; }
  .feature__grid { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1fr; }
  .nav__links {
    position: absolute; top: 84px; left: 0; right: 0; background:#fff; flex-direction: column;
    gap: 0; padding: 10px 24px 24px; box-shadow: var(--shadow); display: none;
  }
  .nav__links.open { display: flex; }
  .nav__links li { width:100%; border-bottom:1px solid #f4f4f4; }
  .nav__links a { display:block; padding: 14px 0; }
  .nav__cta { margin: 14px 0 0; }
  .nav__toggle { display: block; }
}

/* ===========================================================
   FRESH HOMEPAGE  — organic, rooted-tree, editorial style
   =========================================================== */

/* Hero */
.fhero {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, var(--blush) 0%, #fff7fb 55%, #ffffff 100%);
}
.fhero__grid {
  position: relative; z-index:2;
  display:grid; grid-template-columns: 1.02fr .98fr; gap: 56px; align-items:center;
  padding: 58px 0 60px;
}
.fhero__photo { background: transparent; padding: 0; box-shadow: none; text-align:center; }
.fhero__photo img { width: 100%; max-width: 440px; margin: 0 auto; display:block; border-radius: 50%; filter: drop-shadow(0 22px 48px rgba(255,0,144,.22)); }
.fhero h1 {
  font-size: clamp(2.6rem, 5.2vw, 4.1rem); letter-spacing: -.015em; line-height: 1.08;
}
.fhero h1 em {
  font-family: var(--font-editorial); font-style: italic; font-weight: 400; color: var(--hot-pink);
}
.fhero__script { font-family: var(--font-script); color: var(--hot-pink); font-size: clamp(2rem,4vw,2.8rem); line-height:1; margin: 6px 0 18px; }
.fhero__lead { font-size: 1.2rem; color: var(--charcoal); max-width: 40ch; margin-bottom: 12px; }
.fhero__sub  { color: var(--grey); max-width: 44ch; margin-bottom: 30px; }
.fhero__cta { display:flex; gap:14px; flex-wrap:wrap; }

.fhero__art { position: relative; display:flex; justify-content:center; }
.fhero__halo {
  position: relative; width: min(440px, 86%); aspect-ratio: 1/1; border-radius: 50%;
  background: radial-gradient(circle at 50% 45%, #fff 0%, var(--blush) 70%, var(--petal) 100%);
  box-shadow: 0 30px 70px rgba(255,0,144,.16); display:flex; align-items:center; justify-content:center;
}
.fhero__halo::after {
  content:""; position:absolute; inset:-14px; border-radius:50%; border:2px dashed var(--petal); opacity:.6;
}
.fhero__halo img { width: 78%; border-radius: 50%; }
.fhero__pill {
  position:absolute; background:#fff; box-shadow: var(--shadow); border-radius: 999px;
  padding: 10px 18px; font-family: var(--font-head); font-weight:600; font-size:.82rem; color: var(--charcoal);
  display:flex; align-items:center; gap:8px;
}
.fhero__pill .pink { color: var(--hot-pink); }
.fhero__pill--1 { top: 8%; left: -6%; }
.fhero__pill--2 { bottom: 10%; right: -4%; }

/* Wave divider */
.wave { display:block; width:100%; height: 70px; }
.wave--pink path { fill: var(--blush); }
.wave--cream path { fill: var(--cream); }
.wave--white path { fill: #fff; }

/* Scripture band */
.scripture { background: var(--blush); color: var(--charcoal); text-align:center; padding: 52px 0; }
.scripture p { font-family: var(--font-editorial); font-style: italic; font-size: clamp(1.15rem,2vw,1.5rem); max-width: 46ch; margin: 0 auto; line-height:1.5; }
.scripture span { display:block; font-family: var(--font-head); font-weight:600; letter-spacing:.18em; text-transform:uppercase; font-size:.72rem; margin-top:18px; color: var(--hot-pink); }

/* Empathy / promise */
.promise { background:#fff; }
.promise__grid { display:grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items:center; }
.promise h2 { font-size: clamp(1.9rem,3.6vw,2.7rem); }
.promise h2 em { font-family: var(--font-editorial); font-style:italic; color: var(--hot-pink); font-weight:400; }
.promise p { color: var(--grey); margin-top: 16px; }
.beforeafter { display:grid; grid-template-columns: 1fr auto 1fr; gap: 18px; align-items:center; }
.ba-card { border-radius: var(--radius); padding: 26px 22px; text-align:center; }
.ba-card h4 { font-family: var(--font-head); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; margin-bottom:10px; }
.ba-card p { margin:0; font-size:.96rem; }
.ba-card--before { background:#f5f5f5; color: var(--grey); }
.ba-card--before h4 { color: var(--light-grey); }
.ba-card--after { background: var(--blush); color: var(--charcoal); }
.ba-card--after h4 { color: var(--hot-pink); }
.ba-arrow { font-size:1.6rem; color: var(--hot-pink); }

/* Journey (Ground/Align/Grow vertical path) */
.journey { background: var(--cream); }
.journey__head { text-align:center; max-width: 620px; margin: 0 auto 56px; }
.journey__head h2 { font-size: clamp(1.9rem,3.6vw,2.7rem); }
.journey__steps { max-width: 760px; margin: 0 auto; position: relative; }
.journey__steps::before { content:""; position:absolute; left: 39px; top: 20px; bottom: 20px; width:2px; background: var(--petal); }
.jstep { display:grid; grid-template-columns: 80px 1fr; gap: 24px; align-items:flex-start; margin-bottom: 36px; position:relative; }
.jstep__badge {
  width: 80px; height: 80px; border-radius:50%; background:#fff; box-shadow: var(--shadow);
  display:flex; align-items:center; justify-content:center; position:relative; z-index:1;
}
.jstep__badge img { width: 46px; }
.jstep__body { background:#fff; border-radius: var(--radius); padding: 24px 26px; box-shadow: var(--shadow); }
.jstep__body h3 { font-size: 1.4rem; }
.jstep__body .step-label { font-family: var(--font-editorial); font-style:italic; color: var(--hot-pink); font-size:.95rem; }
.jstep__step { font-family: var(--font-editorial); font-style:italic; font-weight:400; color: var(--hot-pink); font-size:.62em; margin-right:6px; }
.jstep__body p { color: var(--grey); margin-top:6px; }

/* Meet the founders teaser */
.meet { background:#fff; }
.meet__grid { display:grid; grid-template-columns: .9fr 1.1fr; gap: 50px; align-items:center; }
.meet__img { border-radius: var(--radius); box-shadow: var(--shadow-lg); background: linear-gradient(160deg,#fff 0%, var(--blush) 100%); padding: 20px; }
.meet h2 { font-size: clamp(1.9rem,3.4vw,2.5rem); }
.meet h2 em { font-family: var(--font-editorial); font-style:italic; color: var(--hot-pink); font-weight:400; }
.meet p { color: var(--charcoal); margin-top:16px; }

/* Uniform section header */
.shead { text-align:center; max-width: 680px; margin: 0 auto 36px; }
.shead .eyebrow { display:block; }
.shead h2 { font-size: clamp(1.9rem, 3.6vw, 2.6rem); }
.shead h2 em { font-family: var(--font-editorial); font-style:italic; color: var(--hot-pink); font-weight:400; }
.shead__intro { color: var(--grey); margin-top:14px; min-height: 3.2em; }

/* Line-clamp helpers for uniform card heights */
.u-clamp2 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height: 3em; }
.u-clamp3 { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; min-height: 4.5em; }
.res__body h3 { min-height: 1.4em; }

/* Podcast / blog card meta + thumbnails */
.res__meta { font-family: var(--font-head); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color: var(--hot-pink); font-weight:600; margin-bottom:6px; }
.res__top--product { padding: 14px 0; }
.res__top--product img { width:auto; max-width: 72%; max-height: 230px; }
.res__top .play { width:66px; height:66px; border-radius:50%; background:rgba(255,255,255,.92); display:flex; align-items:center; justify-content:center; box-shadow:0 6px 16px rgba(0,0,0,.12); }
.res__top .play svg { width:26px; height:26px; fill: var(--hot-pink); margin-left:4px; }

/* FAQ */
.faq { max-width: 820px; margin: 0 auto; }
.faq__item { background:#fff; border:1px solid #f1eef0; border-radius: var(--radius); padding: 22px 26px; margin-bottom:16px; box-shadow: var(--shadow); }
.faq__item h3 { font-size:1.12rem; margin-bottom:8px; }
.faq__item p { color: var(--grey); font-size:.96rem; }

@media (max-width: 900px) {
  .fhero__grid { grid-template-columns: 1fr; padding: 56px 0 64px; text-align:center; }
  .fhero__lead, .fhero__sub { margin-left:auto; margin-right:auto; }
  .fhero__cta { justify-content:center; }
  .fhero__art { order:-1; }
  .fhero__leaf { display:none; }
  .promise__grid, .meet__grid { grid-template-columns: 1fr; }
  .meet__img { order:-1; max-width:460px; margin:0 auto; }
}

/* Product carousel */
.fcar { position: relative; }
.fcar__stage { position: relative; }
.fcar__slide { display:none; }
.fcar__slide.active { display:grid; animation: fcarFade .45s ease; }
@keyframes fcarFade { from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:none;} }
.fcar__btn {
  position:absolute; top:50%; transform:translateY(-50%); z-index:6;
  width:48px; height:48px; border-radius:50%; border:0; background:#fff; box-shadow:var(--shadow-lg);
  color:var(--hot-pink); font-size:1.7rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition: background .2s, color .2s;
}
.fcar__btn:hover { background:var(--hot-pink); color:#fff; }
.fcar__btn--prev { left:-16px; }
.fcar__btn--next { right:-16px; }
.fcar__dots { display:flex; gap:10px; justify-content:center; margin-top:34px; }
.fcar__dots button { width:11px; height:11px; border-radius:50%; border:0; background:var(--petal); cursor:pointer; padding:0; transition: all .2s; }
.fcar__dots button.active { background:var(--hot-pink); width:30px; border-radius:6px; }
@media (max-width: 900px) {
  .fcar__btn--prev { left:-6px; }
  .fcar__btn--next { right:-6px; }
}

/* Podcast platform embeds */
.podgrid { display:grid; grid-template-columns: repeat(3,1fr); gap:24px; align-items:stretch; }
.podcol { background:#fff; border:1px solid #f1eef0; border-radius:var(--radius); box-shadow:var(--shadow); padding:20px; display:flex; flex-direction:column; }
.podcol__media { flex:1; display:flex; align-items:center; justify-content:center; }
.podcol__media iframe { width:100%; }
.ytcard { width:100%; aspect-ratio:16/9; background:linear-gradient(135deg,var(--rose),var(--hot-pink)); border-radius:12px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; color:#fff; text-align:center; padding:20px; text-decoration:none; }
.ytcard svg { width:56px; height:56px; fill:#fff; }
.ytcard span { font-family:var(--font-head); font-weight:600; font-size:.95rem; }
.podcol__label { font-family:var(--font-head); font-weight:600; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--hot-pink); margin-bottom:14px; display:flex; align-items:center; gap:8px; }
.podcol__label svg { width:18px; height:18px; fill: var(--hot-pink); }
.podcol iframe { display:block; width:100%; border:0; }
.podcol__link { display:inline-block; margin-top:14px; font-family:var(--font-head); font-weight:600; font-size:.85rem; color:var(--hot-pink); }
.podcol__link:hover { text-decoration:underline; }
@media (max-width:900px){ .podgrid { grid-template-columns:1fr; } }

/* Subscribe buttons row */
.sub-row { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:26px; max-width:580px; }
@media (max-width:560px){ .sub-row { grid-template-columns:repeat(2,1fr); } }
.sub-row a { display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:11px 16px; border-radius:999px; border:2px solid var(--petal); font-family:var(--font-head); font-weight:600; font-size:.8rem; color:var(--charcoal); transition:all .2s; }
.sub-row a:hover { border-color:var(--hot-pink); color:var(--hot-pink); }
.sub-row svg { width:18px; height:18px; fill:var(--hot-pink); }

/* Episode list */
.eplist { max-width:840px; margin:0 auto; }
.eprow { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:22px 6px; border-bottom:1px solid #eee; }
.eprow:last-child { border-bottom:0; }
.eprow__main h3 { font-size:1.12rem; }
.eprow__main .epdate { color:var(--grey); font-size:.8rem; font-family:var(--font-head); letter-spacing:.06em; text-transform:uppercase; margin-bottom:4px; }
.eprow .btn { flex:0 0 auto; }

/* Blog post grid */
.post-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.post-card { background:#fff; border:1px solid #f1eef0; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column; transition:transform .2s, box-shadow .2s; }
.post-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.post-card__img { aspect-ratio:16/10; object-fit:contain; width:100%; display:block; background:#fdeef5; }
.post-card__ph { aspect-ratio:16/10; background:linear-gradient(135deg,var(--rose),var(--hot-pink)); display:flex; align-items:center; justify-content:center; }
.post-card__ph img { width:74px; }
.post-card__body { padding:24px; display:flex; flex-direction:column; flex:1; }
.post-card__date { font-family:var(--font-head); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--hot-pink); font-weight:600; margin-bottom:8px; }
.post-card__body h3 { font-size:1.14rem; line-height:1.25; min-height:2.5em; }
.post-card__body p { color:var(--grey); font-size:.92rem; margin:10px 0 18px; flex:1; }
@media (max-width:900px){ .post-grid { grid-template-columns:1fr; } .post-card__body h3 { min-height:0; } }

/* Article (single blog post) */
.article { max-width:760px; margin:0 auto; padding:0 24px; font-size:1.07rem; line-height:1.85; color:var(--charcoal); }
.article p { margin:0 0 18px; }
.article h3 { font-family:var(--font-head); font-size:1.5rem; font-weight:600; color:var(--charcoal); margin:36px 0 12px; }
.article ul { margin:0 0 20px; padding-left:1.25em; }
.article li { margin-bottom:9px; }
.article a { color:var(--hot-pink); text-decoration:underline; text-underline-offset:2px; }
.article a:hover { color:var(--rose); }
.article__cover { width:100%; border-radius:20px; display:block; margin:0 0 32px; box-shadow:0 18px 40px rgba(255,0,144,.10); }
.article .verse, .article p.verse { font-family:var(--font-editorial); font-style:italic; color:var(--hot-pink); font-size:1.28rem; line-height:1.6; border-left:4px solid var(--petal); padding:4px 0 4px 22px; margin:26px 0; }
.article .article__sign { font-family:var(--font-script); color:var(--hot-pink); font-weight:400; font-size:2.1rem; line-height:1.2; margin:30px 0 0; }

/* ===== Recipe (food-blog) layout ===== */
.recipe-jump { display:inline-flex; align-items:center; gap:8px; margin:4px 0 26px; }
.recipe-card { border:1px solid var(--petal); border-radius:22px; overflow:hidden; margin:34px 0; box-shadow:0 14px 36px rgba(255,0,144,.08); background:var(--white); }
.recipe-card__head { background:linear-gradient(135deg, var(--blush), var(--cream)); padding:28px 30px 24px; text-align:center; }
.recipe-card__eyebrow { text-transform:uppercase; letter-spacing:.18em; font-size:.78rem; font-weight:600; color:var(--hot-pink); margin:0 0 8px; }
.recipe-card__head h2 { font-family:var(--font-head); font-size:1.7rem; font-weight:700; color:var(--charcoal); margin:0 0 8px; line-height:1.2; }
.recipe-card__head p { color:var(--charcoal); max-width:54ch; margin:0 auto; font-size:1rem; line-height:1.6; }
.recipe-meta { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin:20px 0 2px; }
.recipe-meta div { background:rgba(255,255,255,.7); border:1px solid var(--petal); border-radius:12px; padding:10px 16px; min-width:96px; }
.recipe-meta span { display:block; text-transform:uppercase; letter-spacing:.12em; font-size:.66rem; font-weight:600; color:var(--hot-pink); margin-bottom:3px; }
.recipe-meta strong { font-family:var(--font-head); font-weight:600; font-size:1.02rem; color:var(--charcoal); }
.recipe-card__body { padding:28px 32px 32px; }
.recipe-cols { display:grid; grid-template-columns: 0.9fr 1.4fr; gap:34px; align-items:start; }
.recipe-cols h4 { font-family:var(--font-head); font-size:1.15rem; font-weight:600; color:var(--charcoal); margin:0 0 14px; padding-bottom:8px; border-bottom:2px solid var(--blush); }
.recipe-cols .subhead { font-weight:600; color:var(--hot-pink); margin:16px 0 8px; font-size:.95rem; }
.ingredients ul { list-style:none; margin:0; padding:0; }
.ingredients li { position:relative; padding:8px 0 8px 26px; border-bottom:1px dashed var(--petal); font-size:.99rem; line-height:1.5; margin:0; }
.ingredients li:before { content:""; position:absolute; left:2px; top:15px; width:9px; height:9px; border-radius:50%; background:var(--hot-pink); }
.instructions ol { list-style:none; counter-reset:step; margin:0; padding:0; }
.instructions li { position:relative; counter-increment:step; padding:0 0 18px 52px; margin:0; line-height:1.7; }
.instructions li:before { content:counter(step); position:absolute; left:0; top:0; width:34px; height:34px; border-radius:50%; background:var(--hot-pink); color:#fff; font-family:var(--font-head); font-weight:600; font-size:1rem; display:flex; align-items:center; justify-content:center; }
.recipe-notes { background:#FFF6FB; border:1px solid var(--blush); border-radius:16px; padding:20px 24px; margin:26px 0 0; }
.recipe-notes h4 { font-family:var(--font-head); font-size:1.1rem; font-weight:600; color:var(--charcoal); margin:0 0 10px; }
.recipe-notes ul { margin:0; padding-left:1.2em; }
.recipe-notes li { margin-bottom:8px; }
.recipe-source { font-style:italic; color:var(--grey); font-size:.95rem; margin:18px 0 0; }
@media (max-width:700px){
  .recipe-cols { grid-template-columns:1fr; gap:24px; }
  .recipe-card__body { padding:22px 20px 26px; }
  .recipe-card__head { padding:24px 20px 20px; }
}
@media print {
  .topbar, .site-header, .optin, .footer, .recipe-jump, .pagehero, .article > p, .article > h3, .article > ul, .article__cover, .article__sign, .article .verse { display:none !important; }
  .recipe-card { display:block !important; box-shadow:none; border-color:#ccc; }
}

/* ===== Mobile fixes ===== */
/* Core Values: 2-up on desktop, full-width stack on mobile */
.values-grid { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 768px) {
  .values-grid { grid-template-columns: 1fr; }
  .value-card { padding-right: 96px; }
}
/* Signature pink band: stack centered on mobile, hide separator dots */
@media (max-width: 600px) {
  .strip__row { flex-direction: column; gap: 8px; }
  .strip__row .dot { display: none; }
}
/* Header wordmark sizing safety on small screens */
@media (max-width: 600px) {
  .nav__logo .nav__leaf { height: 34px; }
}
ly:var(--font-editorial); font-style:italic; color:var(--hot-pink); font-size:1.2rem; display:block; margin:24px 0; }
.article__sign { font-family:var(--font-script); color:var(--hot-pink); font-size:1.8rem; margin-top:28px; }
@media (max-width:600px){ .eprow { flex-direction:column; align-items:flex-start; gap:12px; } }

/* ===========================================================
   Contact page
   =========================================================== */
.contact-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:start; }

/* Form card */
.cform { background:#fff; border:1px solid #f1eef0; border-radius:var(--radius); box-shadow:var(--shadow); padding:38px 34px; }
.cform h2 { font-size:1.5rem; margin-bottom:6px; }
.cform__intro { color:var(--grey); font-size:.96rem; margin-bottom:22px; }
.cfield { margin-bottom:18px; }
.cfield label { display:block; font-family:var(--font-head); font-weight:600; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--charcoal); margin-bottom:7px; }
.cfield input, .cfield select, .cfield textarea {
  width:100%; font-family:var(--font-body); font-size:1rem; font-weight:300; color:var(--charcoal);
  background:#fff; border:1.5px solid #ece6ea; border-radius:12px; padding:13px 16px; transition:border-color .15s, box-shadow .15s;
}
.cfield input:focus, .cfield select:focus, .cfield textarea:focus {
  outline:none; border-color:var(--hot-pink); box-shadow:0 0 0 3px rgba(255,0,144,.12);
}
.cfield textarea { resize:vertical; min-height:140px; }
.cform .btn { width:100%; border:none; }
.cform__note { text-align:center; color:var(--light-grey); font-size:.8rem; margin-top:14px; }
.cform__status { display:none; margin-top:18px; padding:14px 16px; border-radius:12px; font-size:.95rem; text-align:center; }
.cform__status.is-ok { display:block; background:var(--blush); color:var(--charcoal); }
.cform__status.is-err { display:block; background:#fdeaea; color:#9b2c2c; }

/* Contact info rail */
.cinfo { display:flex; flex-direction:column; gap:18px; }
.cinfo__card { display:flex; gap:16px; align-items:flex-start; background:#fff; border:1px solid #f1eef0; border-radius:var(--radius); box-shadow:var(--shadow); padding:22px 24px; transition:transform .2s, box-shadow .2s; }
a.cinfo__card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.cinfo__icon { flex:0 0 auto; width:48px; height:48px; border-radius:50%; background:var(--blush); display:flex; align-items:center; justify-content:center; }
.cinfo__icon svg { width:24px; height:24px; stroke:var(--hot-pink); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.cinfo__card h3 { font-size:1.02rem; margin-bottom:3px; }
.cinfo__card p { color:var(--grey); font-size:.92rem; }
.cinfo__card .cinfo__val { color:var(--hot-pink); font-weight:500; }
.cinfo__social { display:flex; gap:12px; margin-top:4px; }
.cinfo__social a { width:38px; height:38px; border-radius:50%; background:var(--blush); display:flex; align-items:center; justify-content:center; transition:background .15s, transform .15s; }
.cinfo__social a:hover { background:var(--hot-pink); transform:translateY(-3px); }
.cinfo__social svg { width:18px; height:18px; fill:var(--hot-pink); transition:fill .15s; }
.cinfo__social a:hover svg { fill:#fff; }

/* Two-up callout cards (podcast guest / speaking) */
.callout-2 { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.callout-card { background:#fff; border:1px solid #f1eef0; border-radius:var(--radius); box-shadow:var(--shadow); padding:34px 30px; }
.callout-card .value-icon { position:static; margin-bottom:18px; }
.callout-card h3 { font-size:1.25rem; margin-bottom:10px; }
.callout-card p { color:var(--grey); font-size:.96rem; margin-bottom:20px; }

@media (max-width:900px){
  .contact-grid { grid-template-columns:1fr; gap:32px; }
  .callout-2 { grid-template-columns:1fr; }
}
