/* ============================================================
   PROGRAM PAGE TEMPLATE (Biograph anatomy, warm-earth palette)
   Shared by bloom / flourish / thrive / sustain.
   No pricing. Qualitative stat band. Process/access language only.
   ============================================================ */
.pp *{ box-sizing:border-box; }
.pp{ background:var(--cream); color:var(--charcoal); }
.pp .wrap{ max-width:1180px; margin:0 auto; padding:0 40px; }

/* ---- HERO ---- */
.pp-hero{ padding:calc(var(--space-2xl) + 32px) 0 var(--space-xl); background:var(--onyx); color:#fff; }
.pp-hero__grid{ display:grid; grid-template-columns:1.05fr 1fr; gap:56px; align-items:center; max-width:1180px; margin:0 auto; padding:0 40px; }
.pp-hero__eyebrow{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--amber); font-weight:600; margin:0 0 20px; }
.pp-hero__title{ font-size:clamp(38px,5.4vw,62px); line-height:1.04; letter-spacing:-.025em; font-weight:500; margin:0 0 34px; max-width:14ch; }
.pp-hero__stats{ display:flex; gap:0; margin-top:8px; }
.pp-hero__stat{ padding-right:38px; margin-right:38px; border-right:1px solid rgba(255,255,255,.16); }
.pp-hero__stat:last-child{ border-right:0; }
.pp-hero__stat strong{ display:block; font-size:15px; font-weight:500; color:#fff; margin-bottom:5px; letter-spacing:-.01em; }
.pp-hero__stat span{ font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:rgba(213,210,202,.6); }
.pp-hero__card{ position:relative; border-radius:22px; overflow:hidden; aspect-ratio:4/3.1; border:1px solid rgba(255,255,255,.1); }
.pp-hero__card img{ width:100%; height:100%; object-fit:cover; }
.pp-hero__card-scrim{ position:absolute; inset:0; background:radial-gradient(120% 90% at 70% 30%, rgba(160,123,86,.18), transparent 60%); }

/* ---- INTRO SPLIT ---- */
.pp-intro{ padding:var(--space-xl) 0; }
.pp-intro__grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:center; }
.pp-intro__card{ text-align:center; }
.pp-intro__thumb{ border-radius:18px; overflow:hidden; aspect-ratio:4/3; margin-bottom:22px; border:1px solid var(--hairline); }
.pp-intro__thumb img{ width:100%; height:100%; object-fit:cover; }
.pp-intro__tier{ font-size:1.6rem; font-weight:500; letter-spacing:-.01em; margin:0 0 6px; }
.pp-intro__sub{ font-size:.95rem; color:var(--muted); margin:0; }
.pp-intro__lede{ font-size:clamp(22px,2.6vw,30px); line-height:1.32; letter-spacing:-.015em; font-weight:500; color:var(--charcoal); margin:0 0 24px; }
.pp-intro__body{ font-size:16px; line-height:1.7; color:var(--muted); max-width:60ch; margin:0; }

/* ---- SHARED PANEL CARD ---- */
.pp-panel{ background:#fff; border:1px solid var(--hairline); border-radius:20px; padding:44px 46px; margin-bottom:24px; }
.pp-panel__title{ font-size:clamp(22px,2.6vw,28px); font-weight:500; letter-spacing:-.015em; margin:0 0 30px; }

/* ---- RECOMMENDED FOR ---- */
.pp-rec__row{ display:flex; align-items:flex-start; gap:16px; padding:18px 0; border-top:1px solid var(--hairline); }
.pp-rec__row:first-of-type{ border-top:0; padding-top:0; }
.pp-rec__icon{ flex:0 0 auto; width:26px; height:26px; color:var(--terracotta); }
.pp-rec__icon svg{ width:100%; height:100%; }
.pp-rec__text{ font-size:16px; line-height:1.5; color:var(--charcoal); padding-top:2px; }

/* ---- WHAT'S INCLUDED ---- */
.pp-inc__carry{ font-size:14px; font-weight:600; color:var(--olive); margin:0 0 20px; }
.pp-inc__group{ display:flex; align-items:flex-start; gap:16px; padding:20px 0; border-top:1px solid var(--hairline); }
.pp-inc__group:first-of-type{ border-top:0; }
.pp-inc__thumb{ flex:0 0 auto; width:46px; height:46px; border-radius:10px; overflow:hidden; border:1px solid var(--hairline); }
.pp-inc__thumb img{ width:100%; height:100%; object-fit:cover; }
.pp-inc__main{ flex:1; }
.pp-inc__name{ font-size:15.5px; font-weight:600; color:var(--charcoal); margin:0 0 4px; }
.pp-inc__note{ font-size:13.5px; color:var(--muted); margin:0; line-height:1.5; }
.pp-inc__sublist{ list-style:none; margin:14px 0 0; padding:0; }
.pp-inc__sublist li{ display:flex; align-items:center; gap:11px; font-size:14.5px; color:var(--muted); padding:9px 0; border-top:1px dotted var(--hairline); }
.pp-inc__sublist li:first-child{ border-top:0; }
.pp-inc__sublist svg{ width:15px; height:15px; color:var(--amber); flex:0 0 auto; }

/* ---- JOURNEY TIMELINE ---- */
.pp-journey{ position:relative; padding-left:26px; }
.pp-journey::before{ content:""; position:absolute; left:5px; top:8px; bottom:8px; width:1px; background:var(--hairline); }
.pp-step{ position:relative; display:grid; grid-template-columns:150px 1fr; gap:26px; align-items:start; padding:18px 0 32px; }
.pp-step::before{ content:""; position:absolute; left:-24px; top:24px; width:11px; height:11px; border-radius:50%; background:var(--terracotta); box-shadow:0 0 0 4px var(--cream); }
.pp-step__marker{ display:inline-block; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); background:var(--bone); border-radius:999px; padding:5px 12px; margin-bottom:0; }
.pp-step__media{ border-radius:14px; overflow:hidden; aspect-ratio:4/3; border:1px solid var(--hairline); margin-top:8px; }
.pp-step__media img{ width:100%; height:100%; object-fit:cover; }
.pp-step__title{ font-size:17px; font-weight:600; letter-spacing:-.01em; margin:0 0 8px; color:var(--charcoal); }
.pp-step__body{ font-size:15px; line-height:1.6; color:var(--muted); margin:0; max-width:52ch; }
.pp-step__col2{ display:grid; grid-template-columns:180px 1fr; gap:22px; align-items:start; }

/* ---- CLOSE CTA BAND ---- */
.pp-close{ background:var(--onyx); color:#fff; padding:var(--space-2xl) 0; text-align:center; }
.pp-close h2{ font-size:clamp(30px,4vw,44px); font-weight:500; letter-spacing:-.02em; margin:0 auto 20px; max-width:20ch; color:#fff; }
.pp-close p{ font-size:16.5px; line-height:1.6; color:rgba(213,210,202,.82); max-width:56ch; margin:0 auto 32px; }
.pp-close .btn-primary{ background:var(--terracotta); color:#fff; }
.pp-close__disc{ font-size:12.5px; line-height:1.6; color:rgba(213,210,202,.5); max-width:64ch; margin:26px auto 0; }

/* ---- DRAFT flag ---- */
.pp-draft{ max-width:1180px; margin:0 auto 0; padding:0 40px; }
.pp-draft__note{ background:rgba(144,75,63,.06); border:1px dashed rgba(144,75,63,.4); border-radius:10px; padding:12px 18px; font-size:12.5px; line-height:1.5; color:var(--terracotta); text-align:center; margin-top:22px; }

/* ---- dark (sustain uses light like others; kept for parity) ---- */

@media (max-width:900px){
  .pp-hero__grid{ grid-template-columns:1fr; gap:36px; }
  .pp-intro__grid{ grid-template-columns:1fr; gap:32px; }
  .pp-intro__card{ max-width:360px; }
  .pp-step{ grid-template-columns:1fr; gap:10px; }
  .pp-step__col2{ grid-template-columns:1fr; }
  .pp-panel{ padding:32px 24px; }
  .pp .wrap, .pp-hero__grid, .pp-draft{ padding-left:22px; padding-right:22px; }
}

/* light ghost button for the dark close band */
.pp-close .btn-ghost--light{
  background:transparent; color:#fff; border:1px solid rgba(255,255,255,.35);
}
.pp-close .btn-ghost--light:hover{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.55); }

/* labs panel */
.pp-labs__lead{ font-size:15.5px; line-height:1.65; color:var(--muted); margin:0 0 18px; max-width:62ch; }
.pp-labs__note{
  padding:14px 16px; background:rgba(144,75,63,.05);
  border-left:3px solid var(--terracotta); border-radius:0 8px 8px 0;
  font-size:14px; line-height:1.6; color:var(--muted); margin:0;
}
.pp-labs__note strong{ color:var(--terracotta); font-weight:600; }
