/* ============================================================
   Podcast Knowledge Hub — project styles.
   Loads AFTER leanscale.css; reuses its tokens/shell/cards.
   ============================================================ */

/* ---------- leanscale.team palette match ----------
   The shared design standard accents in lime (#E8FFCF). Audited
   www.leanscale.team on 2026-08-06: lime appears nowhere on it. The live
   accent is orchid #DB84C9 (the hero highlight word) over the same plum
   #301934 / purple #642585 / grey #E9E9E7 the standard already uses.
   This hub is the property headed for leanscale.team, so it matches the
   website rather than the other microsites: the lime tokens are retargeted
   to the orchid family here, which carries every downstream use of them
   in both stylesheets without forking the shared file. */
:root{
  --ls-orchid:#DB84C9;          /* live-site hero accent */
  --ls-orchid-soft:#F6DDEF;     /* soft wash — was --ls-lime */
  --ls-lime:#F6DDEF;
  --ls-lime-deep:#EDB4DC;
}
/* Live site sets the hero highlight as orchid TEXT, not an underline. */
.hl{color:var(--ls-orchid);white-space:normal}
.hl:after{display:none}

/* ---------- inline entity cross-links (autolinked prose) ---------- */
.xref{color:var(--ls-strong-purple);font-weight:600;
  border-bottom:1.5px solid var(--ls-orchid-soft);transition:border-color .15s,background .15s}
.xref:hover{border-bottom-color:var(--ls-orchid);background:var(--ls-orchid-soft)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:800;padding:11px 18px;border-radius:100px;
  border:1.5px solid var(--ls-light-gray);background:#fff;color:var(--ls-dark-purple);cursor:pointer;transition:all .15s;white-space:nowrap}
.btn:hover{border-color:var(--ls-medium-purple);color:var(--ls-strong-purple);transform:translateY(-1px)}
.btn--primary{background:var(--ls-strong-purple);color:#fff;border-color:var(--ls-strong-purple)}
.btn--primary:hover{background:#51206c;color:#fff}
.btn--share{font-family:inherit}
.btn--tiny{font-size:12px;padding:7px 13px}
.btn--md{border-style:dashed;color:var(--ls-strong-purple);border-color:var(--ls-medium-purple)}
.btn--md:hover{background:var(--ls-orchid-soft)}

/* ---------- episode-index search ---------- */
.hubsearch--index{margin-top:30px;max-width:640px}
.epx-grid [data-ep][hidden]{display:none}
.epx-empty{margin-top:8px;font-size:15px;color:var(--ls-dark-gray);font-weight:600;
  display:flex;align-items:center;gap:12px}
.ep-hero__upd{color:var(--ls-strong-purple);font-weight:600}

/* ---------- episode hero ---------- */
.ep-hero{padding-top:52px}
.ep-hero__grid{display:grid;grid-template-columns:1fr 300px;gap:40px;align-items:start}
.ep-hero h1{font-size:clamp(2.1rem,4.6vw,3.5rem);max-width:20ch;color:var(--ls-dark-purple)}
.ep-hero .sub{margin-top:16px;font-size:clamp(1.05rem,2vw,1.3rem);color:var(--ls-dark-gray);max-width:52ch}
.ep-hero__by{margin-top:22px;font-size:15px;color:var(--ls-ink);font-weight:500;line-height:1.7}
.ep-hero__by strong{color:var(--ls-dark-purple);font-weight:800}
.ep-hero__by a{color:var(--ls-strong-purple);font-weight:700}
.ep-hero__hostline{display:block;font-size:13.5px;color:var(--ls-dark-gray)}
.ep-hero__meta{margin-top:16px;display:flex;flex-wrap:wrap;gap:9px;align-items:center;font-size:13px;color:var(--ls-dark-gray);font-weight:600}
.ep-hero__meta span[aria-hidden]{color:var(--ls-medium-purple)}
.ep-hero__pills{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px}
.ep-hero__cta{margin-top:26px;display:flex;flex-wrap:wrap;gap:10px}

.ep-hero__aside{position:sticky;top:80px}
.guestcard{background:#fff;border:1px solid var(--ls-light-gray);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:26px 22px;text-align:center}
.guestcard__av{width:150px;height:150px;border-radius:50%;object-fit:cover;object-position:top center;
  border:4px solid var(--ls-lime);box-shadow:var(--shadow);margin:0 auto 16px;display:block}
/* initials-monogram fallback (guests without a headshot) */
.mono-av,.guestcard__av--mono,.feat__img--mono,.guest-hero__img--mono{
  display:flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:-.02em;color:#fff;
  background:linear-gradient(135deg,var(--ls-dark-purple),var(--ls-strong-purple));text-transform:uppercase}
.guestcard__av--mono{font-size:3.2rem}
.feat__img--mono{font-size:4rem;border-radius:18px!important}
.guest-hero__img--mono{font-size:3.4rem}
.guestcard__name{font-size:1.2rem;font-weight:800;color:var(--ls-dark-purple);letter-spacing:-.02em}
.guestcard__title{font-size:13px;color:var(--ls-dark-gray);font-weight:600;margin-top:3px;line-height:1.4}
.guestcard__co{font-size:13px;color:var(--ls-strong-purple);font-weight:800;margin-top:6px}
.guestcard__link{display:inline-block;margin-top:16px;font-size:13px;font-weight:800;color:var(--ls-strong-purple)}

/* ---------- site search ---------- */
.hubsearch{margin-top:40px;position:relative}
.hubsearch input{width:100%;font-family:inherit;font-size:16px;padding:16px 20px;border-radius:14px;
  border:1.5px solid var(--ls-light-gray);background:#fff;color:var(--ls-ink);box-shadow:var(--shadow);transition:border-color .15s}
.hubsearch input:focus{outline:none;border-color:var(--ls-strong-purple)}
.hubsearch__count{margin-top:8px;font-size:13px;color:var(--ls-dark-gray);font-weight:600;min-height:18px}
mark{background:var(--ls-lime-deep);color:var(--ls-dark-purple);border-radius:3px;padding:0 2px}

/* ---------- jump nav ---------- */
.jump{position:sticky;top:53px;z-index:40;background:rgba(255,251,255,.9);backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--ls-light-gray);margin-top:34px}
.jump__row{padding:12px 0;display:flex;gap:20px;font-size:13px;font-weight:700;color:var(--ls-dark-gray);overflow-x:auto}
.jump__row a{white-space:nowrap;padding:3px 0}
.jump__row a:hover,.jump__row a.on{color:var(--ls-strong-purple)}
@media(max-width:640px){.jump{top:0}}

/* ---------- prose ---------- */
.prose--wide{max-width:74ch}
.prose--wide p{font-size:1.08rem;line-height:1.72;color:var(--ls-dark-gray);margin:0 0 18px}
#executive-summary .prose--wide p:first-child{font-size:1.18rem;color:var(--ls-ink)}

/* ---------- key takeaways ---------- */
.tk-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.tk{padding:26px 26px 22px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}
.tk:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:var(--ls-medium-purple)}
.tk__n{font-size:12px;font-weight:800;color:var(--ls-medium-purple);letter-spacing:.1em}
.tk__title{font-size:1.2rem;font-weight:800;color:var(--ls-dark-purple);letter-spacing:-.02em;line-height:1.2;margin:8px 0 12px}
.tk__b{font-size:.97rem;line-height:1.6;color:var(--ls-dark-gray);margin:0 0 14px}
.tk__imp{font-size:.92rem;line-height:1.55;color:var(--ls-ink);background:var(--ls-purple-soft);border-radius:12px;padding:12px 15px;margin:0 0 14px}
.tk__imp strong{color:var(--ls-strong-purple)}
.tk__aud{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}

/* ---------- frameworks ---------- */
.fw-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.fw{padding:26px}
.fw__top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px}
.fw__name{font-size:1.15rem;font-weight:800;color:var(--ls-dark-purple);letter-spacing:-.02em;line-height:1.2}
.fw__ts{font-size:12px;font-weight:800;color:var(--ls-strong-purple);background:var(--ls-purple-soft);padding:4px 10px;border-radius:100px;white-space:nowrap}
.fw__def{font-size:.98rem;line-height:1.58;color:var(--ls-ink);margin:0 0 10px;font-weight:500}
.fw__exp{font-size:.92rem;line-height:1.55;color:var(--ls-dark-gray);margin:0}

/* ---------- quotes ---------- */
.q-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.q{padding:26px}
.q blockquote{font-size:1.1rem;line-height:1.45;font-weight:600;color:var(--ls-dark-purple);letter-spacing:-.01em;margin:0 0 16px}
.q figcaption{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid var(--ls-light-gray);padding-top:13px}
.q__who{font-size:13px;font-weight:800;color:var(--ls-strong-purple)}
.q__ts{font-size:12px;color:var(--ls-dark-gray);font-weight:700}
.q__actions{margin-left:auto;display:flex;gap:6px}
.q__btn{font-family:inherit;font-size:11.5px;font-weight:800;color:var(--ls-dark-gray);background:var(--ls-light-gray);
  border:none;border-radius:100px;padding:5px 12px;cursor:pointer;transition:all .15s}
.q__btn:hover{background:var(--ls-strong-purple);color:#fff}

/* ---------- advice ---------- */
.adv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.adv{padding:24px}
.adv__role{font-size:1.05rem;font-weight:800;color:var(--ls-strong-purple);margin:0 0 14px;padding-bottom:12px;border-bottom:2px solid var(--ls-lime)}
.adv__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.adv__list li{font-size:.93rem;line-height:1.55;color:var(--ls-dark-gray);padding-left:18px;position:relative}
.adv__list li:before{content:"→";position:absolute;left:0;color:var(--ls-strong-purple);font-weight:800}

/* ---------- AI section ---------- */
.ai-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}
.ai{padding:22px 24px}
.ai h4{font-size:1rem;font-weight:800;color:var(--ls-dark-purple);margin:0 0 8px;letter-spacing:-.01em}
.ai p{font-size:.92rem;line-height:1.55;color:var(--ls-dark-gray);margin:0}
.ai-ideas{margin-top:22px;background:var(--ls-lime);border-radius:var(--radius);padding:24px 28px}
.ai-ideas h4{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--ls-strong-purple);font-weight:800;margin:0 0 12px}
.ai-ideas ul{margin:0;padding-left:20px}
.ai-ideas li{font-size:.98rem;line-height:1.55;color:var(--ls-dark-purple);font-weight:600;margin-bottom:8px}

/* ---------- ops takeaways ---------- */
.ops-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ops{padding:24px}
.ops__h{font-size:1rem;font-weight:800;color:var(--ls-strong-purple);margin:0 0 14px}
.ops__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.ops__list li{font-size:.9rem;line-height:1.5;color:var(--ls-dark-gray)}
.ops__list li b{color:var(--ls-dark-purple);font-weight:800}

/* ---------- metrics ---------- */
.mx-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mx{padding:22px 24px}
.mx__v{font-size:1.55rem;font-weight:800;color:var(--ls-strong-purple);letter-spacing:-.03em;line-height:1.1}
.mx__k{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ls-dark-gray);margin:8px 0 8px}
.mx__c{font-size:.9rem;line-height:1.5;color:var(--ls-dark-gray);margin:0}

/* ---------- entities ---------- */
.sub-h{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ls-dark-gray);margin:28px 0 14px}
.sub-h:first-child{margin-top:0}
.ent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ent-grid--pills{display:flex;flex-wrap:wrap;gap:8px}
.ent{padding:20px 22px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}
a.ent:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift);border-color:var(--ls-medium-purple)}
.ent__top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px}
.ent__name{font-size:1.02rem;font-weight:800;color:var(--ls-dark-purple)}
.ent__cat{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ls-medium-purple);white-space:nowrap}
.ent__d{font-size:.88rem;line-height:1.5;color:var(--ls-dark-gray);margin:0 0 14px;flex:1}
.ent__foot{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11.5px}
.ent__ts{color:var(--ls-dark-gray);font-weight:700}
.ent__go{color:var(--ls-strong-purple);font-weight:800}
.metho{margin-top:24px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.metho__lbl{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ls-dark-gray);margin-right:4px}

/* ---------- services ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.svc{padding:26px 24px;transition:transform .2s,box-shadow .2s,border-color .2s}
.svc:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:var(--ls-medium-purple)}
.svc__h{font-size:1.1rem;font-weight:800;color:var(--ls-strong-purple);margin:0 0 8px}
.svc__b{font-size:.92rem;line-height:1.5;color:var(--ls-ink);margin:0 0 12px}
.svc__why{font-size:.85rem;line-height:1.5;color:var(--ls-dark-gray);margin:0;font-style:italic;border-top:1px solid var(--ls-light-gray);padding-top:12px}

/* ---------- related episodes ---------- */
.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.rel{padding:24px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}
a.rel:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:var(--ls-medium-purple)}
.rel--archive{opacity:.86}
.rel__n{font-size:11px;font-weight:800;color:var(--ls-medium-purple);letter-spacing:.08em}
.rel__h{font-size:1.05rem;font-weight:800;color:var(--ls-dark-purple);line-height:1.2;margin:8px 0 6px;letter-spacing:-.01em}
.rel__g{font-size:12.5px;color:var(--ls-strong-purple);font-weight:700;margin-bottom:10px}
.rel__why{font-size:.88rem;line-height:1.5;color:var(--ls-dark-gray);margin:0 0 14px;flex:1}
.rel__tag{font-size:11px;font-weight:800;color:var(--ls-dark-gray);text-transform:uppercase;letter-spacing:.05em}
a.rel .rel__tag{color:var(--ls-strong-purple)}

/* ---------- FAQ ---------- */
.faq{display:flex;flex-direction:column;gap:12px;max-width:78ch}
.faq__item{background:#fff;border:1px solid var(--ls-light-gray);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.faq__q{font-size:1.05rem;font-weight:800;color:var(--ls-dark-purple);padding:18px 22px;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:14px}
.faq__q::-webkit-details-marker{display:none}
.faq__q:after{content:"+";font-size:1.4rem;color:var(--ls-strong-purple);font-weight:400;flex:0 0 auto}
.faq__item[open] .faq__q:after{content:"–"}
.faq__a{padding:0 22px 20px}
.faq__a p{font-size:.98rem;line-height:1.62;color:var(--ls-dark-gray);margin:0}

/* ---------- timeline ---------- */
.tl{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 24px;max-width:900px}
.tl__row{display:flex;gap:14px;align-items:baseline;padding:10px 12px;border-radius:10px;transition:background .12s}
.tl__row:hover{background:var(--ls-purple-soft)}
.tl__t{font-size:13px;font-weight:800;color:var(--ls-strong-purple);font-variant-numeric:tabular-nums;flex:0 0 58px}
.tl__title{font-size:14px;color:var(--ls-ink);font-weight:500}

/* ---------- transcript ---------- */
.ts-tools{display:flex;gap:8px;margin-bottom:16px}
.ts{display:flex;flex-direction:column;gap:10px}
.tsec{background:#fff;border:1px solid var(--ls-light-gray);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.tsec__sum{padding:16px 20px;cursor:pointer;list-style:none;display:flex;align-items:center;gap:16px}
.tsec__sum::-webkit-details-marker{display:none}
.tsec__sum:hover{background:var(--ls-purple-soft)}
.tsec__t{font-size:13px;font-weight:800;color:var(--ls-strong-purple);font-variant-numeric:tabular-nums;flex:0 0 auto}
.tsec__title{font-size:15px;font-weight:700;color:var(--ls-dark-purple)}
.tsec[open] .tsec__sum{border-bottom:1px solid var(--ls-light-gray)}
.tsec__body{padding:12px 22px 20px}
.tseg{font-size:.96rem;line-height:1.68;color:var(--ls-ink);margin:0 0 12px}
.tseg__t{font-size:11px;font-weight:800;color:var(--ls-medium-purple);font-variant-numeric:tabular-nums;margin-right:8px;
  background:var(--ls-purple-soft);padding:2px 7px;border-radius:100px;vertical-align:1px}
.tseg.hide{display:none}

/* ---------- home / index ---------- */
.feat{display:grid;grid-template-columns:220px 1fr;gap:30px;align-items:center;padding:30px;transition:transform .2s,box-shadow .2s,border-color .2s}
.feat:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:var(--ls-medium-purple)}
.feat__img{width:200px;height:200px;border-radius:18px;object-fit:cover;object-position:top center;border:4px solid var(--ls-lime)}
.feat__n{font-size:12px;font-weight:800;color:var(--ls-medium-purple);letter-spacing:.08em}
.feat__h{font-size:1.7rem;font-weight:800;color:var(--ls-dark-purple);letter-spacing:-.02em;line-height:1.1;margin:8px 0 8px}
.feat__sub{font-size:1rem;color:var(--ls-dark-gray);margin:0 0 12px}
.feat__by{font-size:14px;color:var(--ls-ink)}.feat__by strong{color:var(--ls-dark-purple)}
.feat__go{display:inline-block;margin-top:14px;font-size:14px;font-weight:800;color:var(--ls-strong-purple)}

.topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.topicx{padding:24px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;flex-direction:column}
.topicx:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:var(--ls-medium-purple)}
.topicx h3{font-size:1.15rem;font-weight:800;color:var(--ls-dark-purple);letter-spacing:-.02em;margin:0 0 8px}
.topicx p{font-size:.9rem;line-height:1.5;color:var(--ls-dark-gray);margin:0 0 14px;flex:1}
.topicx__n{font-size:12px;font-weight:800;color:var(--ls-strong-purple)}

.epx-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.epx{padding:24px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}
.epx:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:var(--ls-medium-purple)}
.epx__n{font-size:11px;font-weight:800;color:var(--ls-medium-purple);letter-spacing:.08em}
.epx__h{font-size:1.12rem;font-weight:800;color:var(--ls-dark-purple);line-height:1.2;margin:8px 0 8px;letter-spacing:-.01em}
.epx__sub{font-size:.9rem;line-height:1.5;color:var(--ls-dark-gray);margin:0 0 14px;flex:1}
.epx__meta{font-size:12px;color:var(--ls-dark-gray);font-weight:600}

.guest-hero{display:flex;gap:28px;align-items:center}
.guest-hero__img{width:160px;height:160px;border-radius:50%;object-fit:cover;object-position:top center;border:5px solid var(--ls-lime);box-shadow:var(--shadow)}
.answer{padding:30px 34px;background:linear-gradient(135deg,var(--ls-purple-soft),#fff)}
.answer .kick{margin-bottom:10px}
.answer__a{font-size:1.15rem;line-height:1.6;color:var(--ls-dark-purple);font-weight:500;margin:0}

/* ---------- responsive ---------- */
@media(max-width:960px){
  .ep-hero__grid{grid-template-columns:1fr}
  .ep-hero__aside{position:static;max-width:320px}
  .tk-grid,.fw-grid,.q-grid,.rel-grid,.svc-grid,.topic-grid,.epx-grid,.ai-grid,.ops-grid{grid-template-columns:1fr}
  .adv-grid,.mx-grid,.ent-grid{grid-template-columns:repeat(2,1fr)}
  .tl{grid-template-columns:1fr}
  .feat{grid-template-columns:1fr;text-align:center}
  .feat__img{margin:0 auto}
  .guest-hero{flex-direction:column;text-align:center}
}
@media(max-width:600px){
  .adv-grid,.mx-grid,.ent-grid{grid-template-columns:1fr}
  .ep-hero__cta{flex-direction:column;align-items:stretch}
  .btn{justify-content:center}
}

/* =================================================================
   CONTENT TYPES — playbooks (/playbooks/), field studies (/research/),
   customer case studies (/customers/).
   Added 2026-08 when the hub stopped being podcast-only.

   The evidence-type colour is the one piece of visual language doing real
   work: it is the same signal in the card, the badge and the lane, so a
   reader learns "purple = measured, lime = prescribed" once and it holds
   across every page. Colours come from the existing brand tokens — no new
   hues were introduced for this.
   ================================================================= */

.cx-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.cx{padding:24px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}
.cx:hover{transform:translateY(-3px);border-color:var(--ls-medium-purple);box-shadow:0 12px 32px rgba(48,25,52,.09)}
.cx__top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:11px}
.cx__h{font-size:1.12rem;font-weight:800;color:var(--ls-dark-purple);line-height:1.2;margin:0 0 8px;letter-spacing:-.01em}
.cx__sub{font-size:.9rem;line-height:1.5;color:var(--ls-dark-gray);margin:0 0 14px;flex:1}
.cx__meta{font-size:12px;color:var(--ls-dark-gray);font-weight:600}
.cx__cat{font-size:11px;font-weight:700;color:var(--ls-dark-gray)}
.cx__int{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8a5a00;
  background:#FFF4D6;border:1px solid #F0DCA0;padding:3px 8px;border-radius:100px}
.cx-grid [data-cx][hidden]{display:none}

/* evidence-type token — one definition, used by cards, badges and lanes */
.cx__ev{font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  padding:4px 9px;border-radius:100px;border:1px solid transparent;white-space:nowrap}
.cx__ev--measurement{color:#fff;background:var(--ls-strong-purple)}
.cx__ev--method{color:var(--ls-dark-purple);background:var(--ls-lime-deep)}
.cx__ev--proof{color:var(--ls-dark-purple);background:var(--ls-medium-purple)}
.cx__ev--opinion{color:var(--ls-dark-gray);background:var(--ls-light-gray)}

/* home page: the four lanes */
.lane-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.lane{padding:26px 24px;display:flex;flex-direction:column;gap:12px;border-top:3px solid var(--ls-light-gray)}
.lane:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(48,25,52,.09)}
.lane--measurement{border-top-color:var(--ls-strong-purple)}
.lane--method{border-top-color:var(--ls-lime-deep)}
.lane--proof{border-top-color:var(--ls-medium-purple)}
.lane--opinion{border-top-color:var(--ls-light-gray)}
.lane .cx__ev{align-self:flex-start}
.lane__h{font-size:1.16rem;font-weight:800;color:var(--ls-dark-purple);margin:0;letter-spacing:-.02em}
.lane__d{font-size:.9rem;line-height:1.5;color:var(--ls-dark-gray);margin:0;flex:1}
.lane__foot{display:flex;align-items:baseline;gap:6px;font-size:12px;color:var(--ls-dark-gray);font-weight:600}
.lane__foot b{font-size:1.4rem;font-weight:800;color:var(--ls-strong-purple);letter-spacing:-.03em}
.lane__foot .ent__go{margin-left:auto}
.morelink{margin-top:26px;text-align:center}

/* detail page */
.hero--content h1{max-width:22ch}
.evbadge{display:flex;align-items:baseline;gap:12px;margin-top:26px;padding:14px 18px;border-radius:12px;
  background:#fff;border:1px solid var(--ls-light-gray);max-width:64ch;flex-wrap:wrap}
.evbadge b{font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--ls-strong-purple)}
.evbadge span{font-size:.92rem;color:var(--ls-dark-gray)}
.evbadge--measurement{border-left:4px solid var(--ls-strong-purple)}
.evbadge--method{border-left:4px solid var(--ls-lime-deep)}
.evbadge--proof{border-left:4px solid var(--ls-medium-purple)}
.cactions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}

.mstat{display:flex;gap:28px;margin-top:20px;flex-wrap:wrap}
.mstat div{display:flex;flex-direction:column;gap:2px}
.mstat b{font-size:1.15rem;font-weight:800;color:var(--ls-strong-purple);letter-spacing:-.02em}
.mstat span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ls-dark-gray)}

.cjump{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:18px 20px;margin-bottom:34px;
  background:var(--ls-purple-soft);border-radius:14px}
.cjump__l{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--ls-strong-purple);margin-right:4px}
.cjump a{font-size:13px;font-weight:600;color:var(--ls-dark-purple);background:#fff;padding:6px 12px;border-radius:100px;
  border:1px solid var(--ls-light-gray)}
.cjump a:hover{border-color:var(--ls-medium-purple);color:var(--ls-strong-purple)}

.cbody{max-width:74ch}
.csec{scroll-margin-top:90px}
.csec--h2{margin-top:44px;padding-top:8px}
.csec--h3{margin-top:30px}
.csec--h4{margin-top:22px}
.csec__h{position:relative;letter-spacing:-.02em;color:var(--ls-dark-purple);line-height:1.18;margin:0 0 12px}
.csec--h2 .csec__h{font-size:1.65rem;font-weight:800}
.csec--h3 .csec__h{font-size:1.2rem;font-weight:800}
.csec--h4 .csec__h{font-size:1.02rem;font-weight:700}
.csec__anchor{position:absolute;left:-22px;color:var(--ls-medium-purple);opacity:0;font-weight:600;
  transition:opacity .15s;text-decoration:none}
.csec__h:hover .csec__anchor{opacity:1}
.csec__body p{margin:0 0 14px;line-height:1.65;color:var(--ls-ink)}
.csec__list{margin:0 0 16px;padding-left:20px}
.csec__list li{margin-bottom:7px;line-height:1.6;color:var(--ls-ink)}

.entrow{display:flex;gap:16px;padding:14px 0;border-bottom:1px solid var(--ls-light-gray);flex-wrap:wrap}
.entrow:last-child{border-bottom:0}
.entrow__l{flex:0 0 96px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ls-dark-gray);padding-top:5px}
.entrow__v{flex:1;display:flex;flex-wrap:wrap;gap:7px;min-width:240px}

.stagebar{background:#8a5a00;color:#fff;font-size:12.5px;font-weight:600;text-align:center;padding:8px 16px}
.stagebar code{background:rgba(255,255,255,.18);padding:1px 6px;border-radius:4px;font-size:11.5px}

@media(max-width:980px){
  .lane-grid{grid-template-columns:repeat(2,1fr)}
  .cx-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
  .lane-grid,.cx-grid{grid-template-columns:1fr}
  .csec__anchor{display:none}
  .entrow__l{flex-basis:100%}
}

/* anonymization notice on case-study pages */
.caseanon{margin-top:16px;max-width:60ch;font-size:12.5px;color:var(--ls-dark-gray);
  border-left:3px solid var(--ls-medium-purple);padding-left:12px}


/* =================================================================
   MAIN-SITE PORT (style/main-site-alignment, 2026-08 — second pass)
   The hub's chrome and component styling are now a direct port of the
   live leanscale.team Framer site, built from the extracted design kit
   (main-site-kit/: computed styles + SSR CSS captured 2026-08-10).
   Everything below loads last, so it wins over leanscale.css and the
   hub rules above without forking the shared stylesheet.

   Ported verbatim: nav bar/pill/CTA geometry, footer band, button
   system, type scale, card language, container + section rhythm.
   ================================================================= */

/* ---------- 1. tokens ---------- */
:root{
  --ls-heading:#311A36;        /* heading ink — deliberately ≠ brand surface #301934 */
  --ls-hairline:#E9E9E7;
  --ls-hairline-2:#EFEDEF;
  --ls-surface:#FAFAFA;
  --ls-surface-light:#F5F5F5;
  --ls-nav-pill:#F4F4F4;
  --ls-btn-border:#EAEAEA;
  --ls-on-dark:#E9E9E7;
  --ls-on-dark-muted:rgba(255,255,255,.66);
  --ls-ink:#311A36;
  --radius:2px;                /* cards go near-square */
  --shadow:none;               /* hairlines, not shadows */
  --shadow-lift:none;
}
body{color:var(--ls-dark-gray)}
::selection{background:var(--ls-orchid-soft);color:var(--ls-heading)}

/* ---------- 2. container + section rhythm (sections.css port) ----------
   Main-site container: max 1440px, side padding 70/40/30/20 at the
   1500/1440/810/mobile breakpoints. Section content frames pad 90px. */
.wrap{max-width:1440px;padding:0 70px}
@media(min-width:1440px) and (max-width:1499.98px){.wrap{padding:0 40px}}
@media(min-width:810px) and (max-width:1439.98px){.wrap{padding:0 30px}}
@media(max-width:809.98px){.wrap{padding:0 20px}}
section{padding:90px 0}
.hero+section,section:first-of-type{padding-top:72px}
section{border-top:1px solid var(--ls-hairline-2)}
section:first-of-type{border-top:none}
.sec-head{border-bottom:1px solid var(--ls-hairline-2);padding-bottom:22px}
[id]{scroll-margin-top:110px}

/* ---------- 3. NAV — fixed white blurred bar + pill menu (nav.css port) ---------- */
body{padding-top:81px}
@media(max-width:1439px){body{padding-top:93px}}
@media(max-width:809px){body{padding-top:58px}}
body.has-stage{padding-top:114px}
@media(max-width:1439px){body.has-stage{padding-top:126px}}
@media(max-width:809px){body.has-stage{padding-top:91px}}

.stagebar{position:fixed;top:0;left:0;right:0;z-index:110}

.nav-shell{position:fixed;top:0;left:50%;transform:translateX(-50%);width:1360px;max-width:100%;
  z-index:100;transition:transform .3s ease,opacity .3s ease}
.nav-shell.nav-hidden{transform:translateX(-50%) translateY(-70px);opacity:0;pointer-events:none}
body.has-stage .nav-shell{top:33px}
.nav-bar{display:flex;flex-direction:row;justify-content:space-between;align-items:center;
  width:100%;height:81px;padding:16px 80px;box-sizing:border-box;
  background-color:#fff;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
.nav-logo{display:flex;align-items:flex-start;flex:1 0 0;text-decoration:none}
.nav-logo img{display:block;width:148px;height:auto;aspect-ratio:6.38298/1}

.nav-menu{display:flex;flex-direction:row;justify-content:center;align-items:center;gap:8px;
  height:48px;padding:4px;margin:0;list-style:none;background-color:var(--ls-nav-pill);border-radius:7px;position:relative}
.nav-menu li{height:100%;display:flex;align-items:center}
.nav-link{display:flex;flex-direction:column;justify-content:center;height:40px;padding:6px 12px 8px;box-sizing:border-box;
  border-radius:8px;background-color:rgba(255,255,255,0);
  font-size:16px;font-weight:500;line-height:19.2px;letter-spacing:-.16px;color:var(--ls-dark-gray);
  text-transform:capitalize;text-decoration:none;white-space:pre;
  transition:background-color .2s ease,box-shadow .2s ease,color .2s ease}
.nav-link:hover,.nav-link.active{background-color:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.25);color:var(--ls-heading)}

.nav-right{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;gap:16px;flex:1 0 0}

/* Primary CTA — the exact main-site pill: #301934, r46, inset shadow,
   1px white-85% ring, 38px white arrow chip. Hover inverts to white. */
.btn-primary{display:inline-flex;flex-direction:row;justify-content:center;align-items:center;gap:16px;
  height:49px;padding:5px 5px 6px 20px;box-sizing:border-box;background-color:var(--ls-dark-purple);
  border:none;border-radius:46px;box-shadow:inset 0 1px 4px 0 rgba(0,0,0,.25);
  text-decoration:none;position:relative;cursor:pointer;transition:all .3s ease}
.btn-primary:after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.85);
  border-radius:inherit;pointer-events:none;box-sizing:border-box}
.btn-primary .btn-label{font-size:16px;font-weight:400;line-height:16px;letter-spacing:-.02em;
  color:#fff;text-transform:capitalize;white-space:pre}
.btn-primary .btn-icon{display:flex;justify-content:center;align-items:center;width:38px;height:38px;flex:none;
  background-color:#fff;border-radius:43px;overflow:hidden}
.btn-primary .btn-icon svg{width:14px;height:14px;display:block}
.btn-primary:hover{background-color:#fff}
.btn-primary:hover .btn-label{color:var(--ls-dark-purple)}
.btn-primary:hover .btn-icon{background-color:var(--ls-dark-purple)}
.btn-primary:hover .btn-icon svg path{stroke:#fff}

.nav-burger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;
  width:28px;height:26px;padding:0;border:0;background:none;cursor:pointer}
.nav-burger span{display:block;width:28px;height:3px;background-color:var(--ls-dark-purple);flex:none;
  transition:transform .2s ease}

/* Tablet: 810–1439px */
@media(max-width:1439px){
  .nav-shell{width:810px}
  .nav-bar{padding:22px 60px;height:auto;min-height:93px}
  .nav-menu,.nav-cta{display:none}
  .nav-burger{display:flex}
}
/* Mobile: ≤809px */
@media(max-width:809px){
  .nav-shell{width:390px}
  .nav-bar{height:58px;min-height:58px;padding:16px 30px}
}
/* Mobile menu OPEN (toggled in hub.js) */
@media(max-width:1439px){
  .nav-shell.nav-open .nav-bar{flex-wrap:wrap;height:auto;padding-bottom:24px}
  .nav-shell.nav-open .nav-logo{flex:1 0 auto;order:1}
  .nav-shell.nav-open .nav-burger{order:2}
  .nav-shell.nav-open .nav-menu{order:3;display:flex;flex-direction:column;align-items:stretch;
    width:100%;height:auto;margin-top:20px;padding:8px;gap:4px}
  .nav-shell.nav-open .nav-menu li{height:auto}
  .nav-shell.nav-open .nav-link{width:100%}
  .nav-shell.nav-open .nav-right{order:4;display:flex;flex:none;width:100%;justify-content:flex-start;margin-top:16px}
  .nav-shell.nav-open .nav-cta{display:inline-flex}
  .nav-shell.nav-open .nav-burger span:first-child{transform:translateY(5.5px) rotate(45deg)}
  .nav-shell.nav-open .nav-burger span:last-child{transform:translateY(-5.5px) rotate(-45deg)}
}

/* The episode jump-nav is sticky below the fixed chrome. */
.jump{top:0;z-index:40;margin-top:44px}
@media(max-width:640px){.jump{top:0}}

/* ---------- 4. typography — main-site scale (typography.css port) ---------- */
.hero h1,.display{
  font-size:clamp(2.4rem,4.8vw,3.5rem);   /* 56px desktop */
  line-height:1.143;                       /* 56/64 */
  font-weight:400;                         /* main-site H1 is regular, never bold */
  letter-spacing:-.02em;
  color:var(--ls-heading);
  text-wrap:balance}
.ep-hero h1{font-weight:400;letter-spacing:-.02em;color:var(--ls-heading);text-wrap:balance}
.hero .sub,.lede{font-size:18px;line-height:1.5;letter-spacing:-.18px;color:#656565;font-weight:400}
.sec-head h2,.h-section{
  font-size:clamp(1.9rem,3.4vw,3rem);      /* 48px desktop */
  line-height:1.167;                       /* 48/56 */
  font-weight:500;
  letter-spacing:-.02em;
  color:var(--ls-heading);
  text-wrap:balance}
.sec-head p{font-size:18px;line-height:1.5;letter-spacing:-.18px;color:var(--ls-dark-gray)}

/* card titles & labels: weight 500, heading ink / muted gray */
.tk__title,.fw__name,.q blockquote,.adv__role,.ai h4,.ops__h,.mx__v,.ent__name,.svc__h,
.rel__h,.epx__h,.cx__h,.feat__h,.topicx h3,.lane__h,.guestcard__name,.figure__h,.find__h,
.acard__h,.kpi__v,.catcard__name,.catcard__cov,.mstat b,.lane__foot b{
  font-weight:500;color:var(--ls-heading);letter-spacing:-.02em}
.epx__n,.feat__n,.tk__n,.rel__n,.ent__cat,.mx__k,.kpi__k,.sub-h,.metho__lbl,
.cx__cat,.mstat span,.figure__sub{
  font-weight:500;color:var(--ls-dark-gray)}
.svc__h,.adv__role,.ops__h,.fw__ts,.guestcard__co,.guestcard__link,.ent__go,.feat__go,
.topicx__n,.q__who,.mx__v,.mstat b,.lane__foot b,.find__n,.segpanel__h,
.catcard__cov,.ep-hero__upd{
  color:var(--ls-strong-purple)}
strong,b{font-weight:600}
.prose--wide p,.csec__body p,.split .prose p{color:var(--ls-dark-gray)}
#executive-summary .prose--wide p:first-child{color:var(--ls-ink)}
.csec--h2 .csec__h{font-weight:500}
.csec--h3 .csec__h{font-weight:500}

/* eyebrow: plain uppercase 12px/16.8 w300 label with an orchid pip */
.eyebrow{background:transparent;padding:0 0 0 2px;border-radius:0;font-weight:300;
  font-size:12px;line-height:16.8px;letter-spacing:-.14px;text-transform:uppercase;
  color:var(--ls-dark-purple)}
.eyebrow .pip{background:var(--ls-orchid)}
.kick,.tag,.sec-head .kick{font-weight:300;font-size:12px;letter-spacing:-.14px;color:var(--ls-dark-purple)}

/* ---------- 5. hero + stat blocks (no card chrome on stats) ---------- */
.hero{padding:64px 0 40px}
.stats{display:flex;flex-wrap:wrap;gap:40px;margin-top:34px}
.stats .chip{background:transparent;border:none;box-shadow:none;border-radius:0;padding:0;
  display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.stats .chip b{font-size:32px;font-weight:500;line-height:44px;letter-spacing:-.64px;color:var(--ls-heading)}
.stats .chip span{font-size:12px;font-weight:400;line-height:16.8px;letter-spacing:0;
  text-transform:none;color:#898989}

/* ---------- 6. cards & containers: hairline + 2px radius, no shadows ---------- */
.card,.figure,.kpi,.catcard,.find,.acard,.segpanel,.heatwrap,.tablewrap,.chip,.rec{
  border-radius:2px;box-shadow:none;border-color:var(--ls-hairline)}
.guestcard,.faq__item,.tsec,.evbadge,.cjump,.tk__imp,.ai-ideas,.insight,.hubsearch input{
  border-radius:2px;box-shadow:none}
.lane,.cx{border-radius:2px}
/* hover: a gentle hairline swap, never a lift */
.tk:hover,.ent:hover,.svc:hover,.rel:hover,.topicx:hover,.epx:hover,.cx:hover,.lane:hover,
.feat:hover,.catcard:hover,.find:hover,.acard:hover{
  transform:none;box-shadow:none;border-color:var(--ls-medium-purple)}
.guestcard__av,.guest-hero__img{box-shadow:none;border-color:var(--ls-orchid-soft)}
.feat__img{border-radius:2px;border:1px solid var(--ls-hairline)}
.feat__img--mono{border-radius:2px!important}
.feat--content{grid-template-columns:1fr}   /* featured doc cards carry no avatar */

/* chips & evidence badges: the main site's 6px-radius chip language */
.chip.tagchip,.acard__stack .chip,.tagchip,.metho .chip{
  border-radius:6px;font-weight:500;background:#fff;border:1px solid rgba(0,0,0,.06);
  color:var(--ls-dark-purple)}
.cx__ev{border-radius:6px}

/* ---------- 7. buttons — the 46px pill system (buttons.css port) ---------- */
.btn{border-radius:46px;font-weight:400;font-size:16px;line-height:16px;letter-spacing:-.32px;
  padding:16px 24px;border:1px solid var(--ls-btn-border);background:#fff;color:var(--ls-dark-purple);
  box-shadow:none;transition:all .3s ease}
.btn:hover{transform:translateY(-1px);border-color:var(--ls-btn-border);color:var(--ls-dark-purple)}
.btn--primary{background:var(--ls-dark-purple);color:#fff;
  border:1px solid rgba(255,255,255,.85);box-shadow:inset 0 1px 4px 0 rgba(0,0,0,.25)}
.btn--primary:hover{background:#fff;color:var(--ls-dark-purple);transform:none}
.btn--tiny{font-size:13px;padding:9px 16px;letter-spacing:-.02em}
.btn--md{border-style:solid;border-color:var(--ls-medium-purple);color:var(--ls-strong-purple)}
.btn--md:hover{background:var(--ls-orchid-soft);color:var(--ls-strong-purple);transform:none}
.q__btn{border-radius:46px;font-weight:500}
.q__btn:hover{background:var(--ls-dark-purple)}
.fchip{border-radius:46px;font-weight:500;border-width:1px}
.fchip.on{background:var(--ls-dark-purple);border-color:var(--ls-dark-purple)}
.cjump a{border-radius:46px}
.cjump{border-radius:2px;background:var(--ls-surface-light)}

/* search wells */
.hubsearch input{border-radius:4px;border:1px solid var(--ls-btn-border);box-shadow:none;
  font-size:16px;padding:16px 20px}
.hubsearch input:focus{border-color:var(--ls-strong-purple)}
mark{background:var(--ls-orchid-soft);color:var(--ls-heading)}

/* ---------- 8. dark bands: flat #301934 like the main site's dark sections ---------- */
.band{background:var(--ls-dark-purple);border-radius:2px}
.band:before{display:none}
.band .lbl{color:var(--ls-orchid)}
.band p em{color:var(--ls-orchid)}
.band p{font-weight:400}
.rec--3{background:var(--ls-dark-purple);border-radius:2px}
.rec--3 .rec__tier,.rec--3 .rec__list li span{color:var(--ls-orchid)}
.ai-ideas{background:var(--ls-orchid-soft)}
.insight{background:var(--ls-orchid-soft)}

/* ---------- 9. FOOTER — dark #301934 band (footer.css port) ---------- */
.site-footer{display:flex;flex-direction:column;align-items:center;gap:70px;
  width:1440px;max-width:100%;margin:90px auto 0;padding:64px;box-sizing:border-box;
  background-color:var(--ls-dark-purple);overflow:hidden}
.footer-top{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start;width:100%}
.footer-brand{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;
  align-self:stretch;flex:1 0 0}
.footer-brand-head{display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.footer-logo img{display:block;width:220px;height:auto;aspect-ratio:6.47059/1}
.footer-tagline{margin:0;font-size:18px;font-weight:500;line-height:21.6px;letter-spacing:-.56px;color:var(--ls-on-dark)}
.footer-chips{display:flex;flex-direction:row;gap:16px;margin:0;padding:0;list-style:none}
.footer-chips .chip{display:flex;flex-direction:row;justify-content:center;align-items:center;gap:7px;
  height:28px;padding:4px 14px 6px 8px;box-sizing:border-box;background-color:rgba(255,255,255,.09);
  border:none;border-radius:24px;box-shadow:none;font-size:12px;font-weight:500;line-height:1;color:#fff;white-space:nowrap}
.footer-chips .chip-icon{flex:none;display:block}
.footer-right{display:flex;flex-direction:column;align-items:flex-end;gap:64px}
.footer-cols{display:flex;flex-direction:row;align-items:flex-start;gap:64px}
.footer-col{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.footer-col-title{margin:0;font-size:16px;font-weight:500;line-height:22.4px;letter-spacing:-.12px;
  color:var(--ls-on-dark);white-space:nowrap}
.footer-list{display:flex;flex-direction:column;align-items:flex-start;gap:3.2px;margin:0;padding:0;list-style:none}
.footer-list li{list-style:none}
.footer-list a{display:block;font-size:16px;font-weight:500;line-height:22.4px;letter-spacing:-.12px;
  color:var(--ls-on-dark);opacity:.6;text-decoration:none;white-space:nowrap}
.footer-list a:hover{opacity:1}
.footer-socials{gap:16px}
.social-row{display:flex;flex-direction:row;align-items:center;gap:8px}
.social-icon{display:block;width:40px;height:40px;flex:none;text-decoration:none}
.social-icon img{display:block;width:40px;height:40px}
.footer-ai{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.ai-row{display:flex;flex-direction:row;align-items:center;gap:8px;height:44px;overflow:hidden}
.ai-chip{display:flex;flex-direction:column;justify-content:center;align-items:center;width:42px;height:42px;
  padding:8px 11.5px;box-sizing:border-box;flex:none;background-color:rgba(255,255,255,.11);
  border-radius:6px;color:#fff;font-size:12px;font-weight:500;text-decoration:none}
.ai-chip-wide{width:47px}
.ai-chip img{display:block;object-fit:contain}
.ai-google{filter:brightness(1.75) saturate(0);-webkit-filter:brightness(1.75) saturate(0)}
.ai-claude{filter:brightness(2) saturate(0);-webkit-filter:brightness(2) saturate(0)}
.footer-bottom{display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:100%}
.footer-legal-left{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.footer-copy{margin:0;font-size:13px;font-weight:400;color:#F2F2F2}
.footer-legal{display:flex;flex-direction:row;align-items:center;gap:10px;margin:0;padding:0;list-style:none}
.footer-legal li{list-style:none}
.footer-legal a{font-size:10px;font-weight:400;color:#F2F2F2;text-decoration:none;white-space:nowrap}
@media(max-width:1439px){
  .site-footer{width:810px}
  .footer-top{flex-direction:column;justify-content:center;gap:92px}
  .footer-brand{flex:none;align-self:unset;gap:64px;width:100%}
  .footer-right{align-items:flex-start;width:100%}
  .footer-cols{justify-content:space-between;gap:32px;width:100%;flex-wrap:wrap}
  .footer-ai{width:100%}
}
@media(max-width:809px){
  .site-footer{width:390px;padding:30px;gap:64px;margin-top:64px}
  .footer-top{flex-direction:column;gap:92px}
  .footer-brand{flex:none;align-self:unset;gap:40px;width:100%}
  .footer-tagline{width:100%;white-space:normal}
  .footer-right{align-items:flex-start;gap:40px;width:100%}
  .footer-cols{display:grid;grid-template-columns:repeat(2,minmax(50px,1fr));grid-template-rows:repeat(2,minmax(0,1fr));width:100%}
  .footer-col{width:100%}
  .footer-bottom{flex-direction:column;justify-content:center;gap:10px}
  .footer-legal-left{align-items:center}
}

/* ---- reconstructed structure inside content sections --------------------
   Extraction flattens the source microsites to text, so prose() rebuilds the
   two shapes that actually occur — numbered phase cards and stat pairs. These
   mirror the .pnode "spine" the original playbook sites draw, so a playbook on
   the hub reads like the playbook it came from rather than a bullet dump. */
.steps{list-style:none;margin:18px 0 6px;padding:0;display:flex;flex-direction:column;gap:2px}
.step{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:18px 20px 18px 0;position:relative}
.step+.step{border-top:1px solid var(--ls-line,#EDE7F0)}
.step__n{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;
  background:var(--ls-soft-purple,#F4EEF7);color:var(--ls-strong-purple,#642585);
  font-size:14px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.step__c{min-width:0}
.step__h{margin:5px 0 6px;font-size:1.02rem;font-weight:650;letter-spacing:-.01em;color:var(--ls-ink,#311A36)}
.step__b{margin:0 0 6px;font-size:.94rem;line-height:1.62;color:var(--ls-dark-gray,#5B5560)}
.step__o{margin:8px 0 0;font-size:.85rem;color:var(--ls-dark-gray,#5B5560);display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.step__o span{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ls-strong-purple,#642585);background:var(--ls-soft-purple,#F4EEF7);
  padding:3px 8px;border-radius:20px;white-space:nowrap}

.pairs{list-style:none;margin:16px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;
  background:var(--ls-line,#EDE7F0);border:1px solid var(--ls-line,#EDE7F0);border-radius:10px;overflow:hidden}
.pairs li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:12px 14px;background:#fff}
.pairs__k{font-size:.86rem;color:var(--ls-dark-gray,#5B5560)}
.pairs__v{font-size:1.05rem;font-weight:700;color:var(--ls-strong-purple,#642585);font-variant-numeric:tabular-nums}

/* A lone short line is a lead-in to what follows, not a bullet. */
.csec__lead{margin:14px 0 4px;font-weight:600;color:var(--ls-ink,#311A36)}

@media(max-width:600px){
  .step{grid-template-columns:30px 1fr;gap:12px}
  .step__n{width:26px;height:26px;font-size:12px}
}

/* Stage/funnel rails, mirroring .funnel > .rail > .stage on the source sites. */
.funnel{margin:18px 0;border:1px solid var(--ls-line,#EDE7F0);border-radius:12px;padding:14px 16px;background:#FCFAFD}
.funnel__top{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.funnel__name{font-weight:650;font-size:.98rem;color:var(--ls-ink,#311A36)}
.funnel__obj{font-size:.78rem;color:var(--ls-dark-gray,#5B5560)}
.rail{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.rail .stage{display:inline-block;padding:5px 11px;border-radius:20px;background:#fff;
  border:1px solid var(--ls-line,#EDE7F0);font-size:.83rem;line-height:1.35;color:var(--ls-ink,#311A36)}
.rail .arw{color:var(--ls-strong-purple,#642585);font-size:.85rem;opacity:.65}

/* Slim action bar shown instead of the hub hero on ported pages, where the
   source supplies its own hero and a second title would collide. */
.portbar{display:flex;justify-content:flex-end;gap:8px;padding:18px 0 0}
