/* STICKY FIX (2026-08-07): the global `html,body{overflow-x:hidden}` computes
   overflow-y to `auto`, making body a scroll container and breaking
   position:sticky for the Deal Facts rail. `overflow-x:clip` prevents the same
   horizontal scroll WITHOUT creating a scroll container, so sticky works. This
   sheet only loads on single case studies, so this override is page-scoped. */
html, body { overflow-x: clip !important; }

/* =========================================================================
   Norwest Case Study  -  Modernized Single Template (dev1 only)
   Sibling to the single-blog design; shaped to the investment-story model.
   Scoped to .nw-cs so the real site header/footer are never touched.
   Palette matches the blog: bg #E6E6DB ecru, teal #07485B, deepteal #055C5F,
   coral #FE4F44, green #009579, body #24333A, card #F5F5EE, hairline #C9C9BB.
   ========================================================================= */

.nw-cs {
  --nw-bg:#E6E6DB; --nw-teal:#07485B; --nw-deepteal:#055C5F; --nw-coral:#FE4F44;
  --nw-green:#009579; --nw-dark:#0D1214; --nw-muted:#5C6B66; --nw-body:#24333A;
  --nw-card:#F5F5EE; --nw-quote:#E7E7D9; --nw-quoteb:#CFCFBE; --nw-hair:#C9C9BB;
  --nw-cream:#E6E6DB;
  --nw-serif:'DM Serif Display',Georgia,serif;
  --nw-sans:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--nw-bg);
  font-family:var(--nw-sans);
  color:#1C2B33;
  -webkit-font-smoothing:antialiased;
}
.nw-cs *, .nw-cs *::before, .nw-cs *::after { box-sizing:border-box; }
.nw-cs a { color:var(--nw-deepteal); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.nw-cs a:hover { color:var(--nw-coral); }
.nw-cs ::selection { background:#07485B; color:var(--nw-cream); }

@keyframes nwcsRise { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }

.nwcs-main { padding-bottom:120px; }

/* ---------------- HERO ---------------- */
.nwcs-hero { max-width:1200px; margin:0 auto; padding:72px 32px 0; }
.nwcs-eyebrow { display:flex; align-items:center; gap:12px; color:var(--nw-muted); font-size:11px; font-weight:600; letter-spacing:.18em; flex-wrap:wrap; }
.nwcs-eyebrow__kind { color:var(--nw-coral); font-weight:700; }
.nwcs-eyebrow__date { font-weight:500; }
.nwcs-dot { width:3px; height:3px; border-radius:50%; background:#9AA39B; flex:none; }
.nwcs-title { font-family:var(--nw-serif); font-weight:400; font-size:clamp(38px,5.2vw,72px); line-height:1.05; color:var(--nw-teal); margin:26px 0 0; max-width:1050px; text-wrap:balance; }
.nwcs-dek { font-size:19px; line-height:1.6; color:#3C4B49; max-width:760px; margin:24px 0 0; }

.nwcs-herometa { display:flex; align-items:center; gap:26px; margin:34px 0 0; flex-wrap:wrap; }
.nwcs-herometa__partner { display:flex; align-items:center; gap:12px; }
.nwcs-herometa__av { width:48px; height:48px; border-radius:50%; object-fit:cover; border:3px solid var(--nw-bg); box-shadow:0 0 0 1px var(--nw-hair); }
.nwcs-herometa__ptxt { display:flex; flex-direction:column; line-height:1.25; }
.nwcs-herometa__plabel { font-size:10px; font-weight:600; letter-spacing:.16em; color:var(--nw-muted); }
.nwcs-herometa__pname { font-size:15px; font-weight:600; color:var(--nw-teal); }
.nwcs-herometa__exit { display:flex; align-items:center; gap:8px; font-size:11px; font-weight:600; letter-spacing:.12em; color:var(--nw-green); }
.nwcs-herometa__sq { width:8px; height:8px; background:var(--nw-green); display:inline-block; }
.nwcs-hero__img { width:100%; height:min(520px,52vw); object-fit:cover; margin-top:44px; display:block; }

/* ---------------- BODY: narrative + sticky facts ---------------- */
.nwcs-body { max-width:1200px; margin:0 auto; padding:64px 32px 0; display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:56px; align-items:start; }
.nwcs-article { min-width:0; }
.nwcs-prose > p { font-size:17px; line-height:1.8; color:var(--nw-body); margin:0 0 24px; }
.nwcs-prose > p:first-child { margin-top:0; }
.nwcs-prose strong { color:var(--nw-teal); }
.nwcs-prose em { color:var(--nw-muted); }
.nwcs-prose a { color:var(--nw-deepteal); }
.nwcs-prose h2 { font-family:var(--nw-serif); font-weight:400; font-size:32px; line-height:1.15; color:var(--nw-teal); margin:52px 0 18px; }
.nwcs-prose h3 { font-family:var(--nw-serif); font-weight:400; font-size:23px; line-height:1.2; color:var(--nw-teal); margin:36px 0 14px; }
.nwcs-prose ul, .nwcs-prose ol { font-size:17px; line-height:1.8; color:var(--nw-body); margin:0 0 24px; padding-left:22px; }
.nwcs-prose img { max-width:100%; height:auto; }

/* Pull quote */
/* Pull quote. The FRAME lives on the .nwcs-quote <figure> wrapper; the inner
   .nwcs-quote__text is a real <blockquote>, so it inherits the site-wide
   Customizer "Additional CSS" leak (see DEFENSIVE RESET below). Keep the
   wrapper styled and the inner blockquote flush. */
.nwcs-quote { margin:44px 0; padding:34px 40px; background:var(--nw-quote); border-left:4px solid var(--nw-coral); position:relative; overflow:hidden; }
.nwcs-quote__cite { margin:18px 0 0; font-size:13px; font-weight:600; letter-spacing:.03em; color:var(--nw-muted); }
.nwcs-quote__cite::before { content:"\2014 \00a0"; color:var(--nw-coral); }

/* =========================================================================
   DEFENSIVE RESET  -  neutralize the GLOBAL Customizer "Additional CSS"
   (id=wp-custom-css) that styles BARE `blockquote`, `blockquote::after`, and
   `blockquote *`. That legacy sheet is the OLD Elementor pull-quote design:
   margin:25px -50px, padding:100px 25px, position:relative/z-index:5,
   margin-top/bottom:100px !important, a `::after` painting a 100vw gradient
   band, and `blockquote * {italic DM Serif 26/44}`. It lands on our
   .nwcs-quote__text because that IS a <blockquote>. We render our own framed
   quote, so kill all of it  -  SCOPED to .nw-cs so nothing else is touched.
   Same fix the single-blog template uses. Reversible: delete this block.
   ========================================================================= */
.nw-cs .nwcs-quote__text::after,
.nw-cs .nwcs-quote__text::before { content:none !important; display:none !important; background:none !important; }
.nw-cs .nwcs-quote__text {
  margin:0 !important; padding:0 !important; position:static !important;
  z-index:auto !important; width:auto !important; max-width:none !important;
  background:none !important; border:none !important;
}
.nw-cs .nwcs-quote__text,
.nw-cs .nwcs-quote__text * {
  font-style:normal !important;
  font-family:var(--nw-serif) !important;
  font-size:26px; line-height:1.32; color:var(--nw-teal); font-weight:400;
}
.nw-cs .nwcs-quote__text a { color:var(--nw-teal) !important; }

/* Customer / CEO attribution */
.nwcs-attrib { margin:44px 0 0; padding:26px 28px; background:var(--nw-card); border:1px solid var(--nw-hair); }
.nwcs-attrib__header { font-size:11px; font-weight:600; letter-spacing:.14em; color:var(--nw-muted); margin:0 0 16px; text-transform:uppercase; }
.nwcs-attrib__item { display:flex; align-items:center; gap:14px; }
.nwcs-attrib__av { width:56px; height:56px; border-radius:50%; object-fit:cover; }
.nwcs-attrib__name { font-size:15px; font-weight:600; color:var(--nw-teal); }
.nwcs-attrib__link { font-size:12px; font-weight:500; }

/* Sticky deal facts */
/* align-self:stretch makes this grid column fill the full article-row height
   (the .nwcs-body grid uses align-items:start, which otherwise collapses this
   column to its content height and leaves the sticky inner no travel room, so
   the panel scrolls away instead of floating). height:100% establishes a
   full-height containing block for the sticky child. */
.nwcs-facts { position:relative; align-self:stretch; height:100%; }
.nwcs-facts__inner { position:sticky; top:149px; display:flex; flex-direction:column; gap:18px; }
.nwcs-facts__card { background:var(--nw-card); border:1px solid var(--nw-hair); padding:24px 26px; }
.nwcs-facts__eyebrow { font-size:10px; font-weight:700; letter-spacing:.16em; color:var(--nw-coral); margin:0 0 16px; }
.nwcs-facts__dl { margin:0; }
.nwcs-facts__row { display:flex; flex-direction:column; gap:2px; padding:11px 0; border-bottom:1px solid var(--nw-hair); }
.nwcs-facts__row:last-child { border-bottom:0; padding-bottom:0; }
.nwcs-facts__row:first-child { padding-top:0; }
.nwcs-facts__row dt { font-size:10.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--nw-muted); margin:0; }
.nwcs-facts__row dd { font-size:15px; font-weight:500; color:var(--nw-teal); margin:0; line-height:1.35; }
.nwcs-partner { display:flex; align-items:center; gap:12px; padding:6px 0; }
.nwcs-partner__av { width:44px; height:44px; border-radius:50%; object-fit:cover; box-shadow:0 0 0 1px var(--nw-hair); }
.nwcs-partner__name { font-size:15px; font-weight:600; color:var(--nw-teal); }

/* ---------------- INVESTMENT SNAPSHOT band ---------------- */
.nwcs-snap { margin:88px 0 0; background:var(--nw-teal); color:var(--nw-cream); }
.nwcs-snap__inner { max-width:1200px; margin:0 auto; padding:72px 32px 78px; }
.nwcs-snap__head { margin:0 0 44px; }
.nwcs-snap__eyebrow { display:inline-flex; align-items:center; gap:9px; font-size:11px; font-weight:600; letter-spacing:.18em; color:#BFD9D6; }
.nwcs-snap__sq { width:8px; height:8px; background:var(--nw-coral); display:inline-block; }
.nwcs-snap__h { font-family:var(--nw-serif); font-weight:400; font-size:clamp(30px,3.6vw,46px); line-height:1.08; color:#fff; margin:14px 0 0; }
/* Grid: flexbox so cells GROW to fill each row -- with 5 items this yields a
   balanced 3 + 2 (the two on the last row stretch to fill), never an orphaned
   cell beside a big empty lit block. Separators are per-cell borders, so any
   partial row is just plain teal, not a filled gap. */
.nwcs-snap__grid { display:flex; flex-wrap:wrap; border-top:1px solid rgba(255,255,255,.16); border-left:1px solid rgba(255,255,255,.16); }
.nwcs-snap__cell { flex:1 1 300px; min-width:0; background:var(--nw-teal); padding:28px 30px 32px; border-right:1px solid rgba(255,255,255,.16); border-bottom:1px solid rgba(255,255,255,.16); }
.nwcs-snap__num { font-family:var(--nw-serif); font-size:30px; color:var(--nw-coral); line-height:1; margin:0 0 12px; }
.nwcs-snap__ctitle { font-size:13px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:#fff; margin:0 0 14px; }
.nwcs-snap__items { list-style:none; margin:0; padding:0; }
.nwcs-snap__items li { position:relative; font-size:14.5px; line-height:1.55; color:#DCE7E5; padding:0 0 10px 18px; }
.nwcs-snap__items li:last-child { padding-bottom:0; }
.nwcs-snap__items li::before { content:""; position:absolute; left:0; top:8px; width:6px; height:6px; background:var(--nw-coral); }

/* ---------------- CTA ---------------- */
.nwcs-cta { max-width:1200px; margin:80px auto 0; padding:0 32px; }
.nwcs-cta__inner { background:var(--nw-card); border:1px solid var(--nw-hair); padding:44px 48px; display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; }
.nwcs-cta__eyebrow { font-size:11px; font-weight:700; letter-spacing:.16em; color:var(--nw-coral); margin:0 0 10px; }
.nwcs-cta__h { font-family:var(--nw-serif); font-weight:400; font-size:clamp(22px,2.6vw,32px); line-height:1.18; color:var(--nw-teal); max-width:620px; }
.nwcs-cta__btn { flex:none; background:var(--nw-teal); color:#fff !important; text-decoration:none !important; font-size:12px; font-weight:600; letter-spacing:.1em; padding:16px 30px; transition:background-color .18s ease; }
.nwcs-cta__btn:hover { background:var(--nw-coral); }

/* ---------------- MORE CASE STUDIES ---------------- */
.nwcs-related { max-width:1200px; margin:80px auto 0; padding:0 32px; }
.nwcs-related__head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin:0 0 28px; border-top:1px solid var(--nw-hair); padding-top:34px; }
.nwcs-related__h { font-family:var(--nw-serif); font-weight:400; font-size:32px; color:var(--nw-teal); margin:0; }
.nwcs-related__all { font-size:11px; font-weight:600; letter-spacing:.12em; color:var(--nw-coral); text-decoration:none; white-space:nowrap; }
.nwcs-related__all:hover { color:var(--nw-teal); }
.nwcs-related__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.nwcs-rcard { text-decoration:none; color:inherit; display:block; }
/* Kill every underline in the More Case Studies rail — the base `.nw-cs a`
   underline (0,1,1) was beating the section links' own text-decoration:none
   (0,1,0). This scoped rule (0,2,1) wins. */
.nw-cs .nwcs-related a { text-decoration:none; }
.nwcs-rcard__img { width:100%; height:200px; object-fit:cover; display:block; margin:0 0 14px; transition:opacity .18s ease; }
.nwcs-rcard:hover .nwcs-rcard__img { opacity:.9; }
.nwcs-rcard__label { font-size:10.5px; font-weight:600; letter-spacing:.14em; color:var(--nw-coral); margin:0 0 8px; }
.nwcs-rcard__title { font-family:var(--nw-serif); font-weight:400; font-size:20px; line-height:1.22; color:var(--nw-teal); }
.nwcs-rcard:hover .nwcs-rcard__title { color:var(--nw-deepteal); }

/* ---------------- RESPONSIVE ---------------- */
@media (max-width:980px) {
  .nwcs-body { grid-template-columns:1fr; gap:40px; }
  .nwcs-facts__inner { position:static; }
  .nwcs-related__grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:640px) {
  .nwcs-hero { padding:52px 20px 0; }
  .nwcs-body { padding:44px 20px 0; }
  .nwcs-snap__inner { padding:52px 20px 56px; }
  .nwcs-cta, .nwcs-related { padding:0 20px; }
  .nwcs-cta__inner { padding:32px 26px; }
  .nwcs-related__grid { grid-template-columns:1fr; }
  .nwcs-title { font-size:clamp(32px,8vw,44px); }
}

/* ---------------- SCROLL REVEAL (enhancement only) ----------------
   Content is fully visible by DEFAULT. The hidden start-state below applies
   ONLY when JS has added .nwcs-anim to the root, which it does exclusively
   after wiring a live IntersectionObserver. So with JS off / broken, the
   Investment Snapshot cells and related cards are never hidden. Respecting
   prefers-reduced-motion, we also skip the motion entirely. */
.nw-cs.nwcs-anim .nwcs-snap__cell,
.nw-cs.nwcs-anim .nwcs-rcard {
  opacity:0; transform:translateY(14px);
  transition:opacity .5s ease, transform .5s ease;
}
.nw-cs.nwcs-anim .nwcs-snap__cell.nwcs-in,
.nw-cs.nwcs-anim .nwcs-rcard.nwcs-in {
  opacity:1; transform:translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .nw-cs.nwcs-anim .nwcs-snap__cell,
  .nw-cs.nwcs-anim .nwcs-rcard {
    opacity:1 !important; transform:none !important; transition:none !important;
  }
}

/* =========================================================================
   BLOG CONTENT SHORTCODES  -  same nw_* blocks the single-blog template uses
   (nw_dropcap, nw_section, nw_checklist/nw_check, nw_cards/nw_card,
   nw_steps/nw_step, nw_stats/nw_stat, nw_quote, nw_figure, nw_cta). The
   shortcodes are registered globally; the CSS lives in the blog stylesheet
   scoped to .nw-blog-modern, so we re-scope the block rules to
   .nw-cs .nwcs-prose here (our vars are identical). Editors can now drop these
   blocks into a case study's text blocks. Kept in sync with blog-single CSS.
   ========================================================================= */

/* Flow spacing for blocks inside the prose column. */
.nw-cs .nwcs-prose > .nw-b-cards,
.nw-cs .nwcs-prose > .nw-b-steps,
.nw-cs .nwcs-prose > .nw-b-checklist,
.nw-cs .nwcs-prose > .nw-b-figure,
.nw-cs .nwcs-prose > .nw-b-cta { margin-top:28px; margin-bottom:28px; }

/* ---- Dropcap paragraph ---- */
.nw-cs .nwcs-prose .nw-b-dropcap { --nw-dc:#FE4F44; font-size:17px; line-height:1.8; color:var(--nw-body); margin:0 0 24px; }
.nw-cs .nwcs-prose .nw-b-dropcap::first-letter { font-family:var(--nw-serif); font-size:64px; line-height:.8; float:left; color:var(--nw-dc); padding:8px 12px 0 0; }

/* ---- Section heading (coral rule + serif H2) ---- */
.nw-cs .nwcs-prose .nw-b-section { margin:52px 0 0; }
.nw-cs .nwcs-prose .nw-b-section__rule { display:block; width:56px; height:4px; background:var(--nw-coral); margin-bottom:22px; }
.nw-cs .nwcs-prose .nw-b-section__h { font-family:var(--nw-serif); font-weight:400; font-size:32px; line-height:1.15; color:var(--nw-teal); margin:0; }
.nw-cs .nwcs-prose .nw-b-section + p { margin-top:24px; }

/* ---- Checklist ---- */
.nw-cs .nwcs-prose .nw-b-checklist { display:grid; gap:12px; margin:20px 0 28px; }
.nw-cs .nwcs-prose .nw-b-check { display:flex; gap:14px; align-items:baseline; }
.nw-cs .nwcs-prose .nw-b-check__dot { width:9px; height:9px; flex:none; transform:translateY(-1px); background:var(--nw-coral); }
.nw-cs .nwcs-prose .nw-b-check__t { font-size:17px; line-height:1.7; color:var(--nw-body); }
.nw-cs .nwcs-prose .nw-b-check__t strong { color:var(--nw-teal); }

/* ---- Feature cards ---- */
.nw-cs .nwcs-prose .nw-b-cards { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--nw-hair); border:1px solid var(--nw-hair); }
.nw-cs .nwcs-prose .nw-b-card { background:var(--nw-card); padding:22px; }
.nw-cs .nwcs-prose .nw-b-card__t { font-family:var(--nw-serif); font-size:19px; color:var(--nw-teal); }
.nw-cs .nwcs-prose .nw-b-card__d { font-size:13px; line-height:1.6; color:var(--nw-muted); margin-top:6px; }

/* ---- Lettered steps ---- */
.nw-cs .nwcs-prose .nw-b-steps { display:grid; gap:0; border-top:1px solid var(--nw-hair); margin:20px 0 28px; }
.nw-cs .nwcs-prose .nw-b-step { display:flex; gap:20px; padding:20px 0; border-bottom:1px solid var(--nw-hair); }
.nw-cs .nwcs-prose .nw-b-step__l { font-family:var(--nw-serif); font-size:18px; color:var(--nw-coral); flex:none; }
.nw-cs .nwcs-prose .nw-b-step__b { font-size:16px; line-height:1.7; color:var(--nw-body); }
.nw-cs .nwcs-prose .nw-b-step__lead { color:var(--nw-teal); }

/* ---- Stat band ---- */
.nw-cs .nwcs-prose .nw-b-stats { display:grid; grid-template-columns:repeat(3,1fr); background:var(--nw-teal); margin:44px 0; }
.nw-cs .nwcs-prose .nw-b-stat { padding:32px 24px; display:flex; flex-direction:column; justify-content:center; }
.nw-cs .nwcs-prose .nw-b-stat + .nw-b-stat { border-left:1px solid rgba(230,230,219,.16); }
.nw-cs .nwcs-prose .nw-b-stat__v { font-family:var(--nw-serif); font-size:46px; color:var(--nw-cream); line-height:1.02; }
.nw-cs .nwcs-prose .nw-b-stat__l { font-size:12px; line-height:1.55; color:rgba(230,230,219,.7); margin-top:10px; }

/* ---- Pull quote (block shortcode variant; distinct from the ACF quote_block) ---- */
.nw-cs .nwcs-prose .nw-b-quote { margin:56px 0; padding:44px 44px 36px; background:var(--nw-quote); border:1px solid var(--nw-quoteb); position:relative; }
.nw-cs .nwcs-prose .nw-b-quote__mark { position:absolute; top:-26px; left:36px; font-family:var(--nw-serif); font-size:88px; line-height:1; }
.nw-cs .nwcs-prose .nw-b-quote__q { margin:0 !important; padding:0 !important; font-family:var(--nw-serif) !important; font-style:normal !important; font-size:26px; line-height:1.38; color:var(--nw-teal); position:static !important; background:none !important; border:none !important; width:auto !important; max-width:none !important; }
.nw-cs .nwcs-prose .nw-b-quote__q::after,
.nw-cs .nwcs-prose .nw-b-quote__q::before { content:none !important; display:none !important; }
.nw-cs .nwcs-prose .nw-b-quote__q a { color:var(--nw-teal) !important; }
.nw-cs .nwcs-prose .nw-b-quote__c { margin-top:22px; padding-top:18px; border-top:1px solid var(--nw-quoteb); font-size:11px; font-weight:700; letter-spacing:.18em; color:var(--nw-muted); }

/* ---- Figure ---- */
.nw-cs .nwcs-prose .nw-b-figure { margin:36px 0; }
.nw-cs .nwcs-prose .nw-b-figure img { width:100%; display:block; border:1px solid var(--nw-hair); }
.nw-cs .nwcs-prose .nw-b-figure__c { font-size:11px; font-weight:600; letter-spacing:.14em; color:var(--nw-muted); margin-top:12px; }

/* ---- CTA block (base + common variants) ---- */
.nw-cs .nwcs-prose .nw-b-cta { display:flex; align-items:center; gap:32px; flex-wrap:wrap; margin:36px 0; }
.nw-cs .nwcs-prose .nw-b-cta__main { flex:1; min-width:260px; }
.nw-cs .nwcs-prose .nw-b-cta__eyebrow { font-size:10px; font-weight:700; letter-spacing:.22em; }
.nw-cs .nwcs-prose .nw-b-cta__title { font-family:var(--nw-serif); font-size:26px; line-height:1.22; margin-top:12px; }
.nw-cs .nwcs-prose .nw-b-cta__body { font-size:13px; line-height:1.6; margin-top:10px; }
.nw-cs .nwcs-prose .nw-b-cta__btn { display:inline-block; text-decoration:none; font-size:12px; font-weight:700; letter-spacing:.14em; padding:16px 28px; white-space:nowrap; background:var(--nw-coral); color:var(--nw-dark); }
.nw-cs .nwcs-prose .nw-b-cta__btn:hover { background:var(--nw-cream); color:var(--nw-dark); }
.nw-cs .nwcs-prose .nw-b-cta__textlink { align-self:flex-start; text-decoration:none; font-size:12px; font-weight:700; letter-spacing:.14em; border-bottom:2px solid currentColor; padding-bottom:4px; }
.nw-cs .nwcs-prose .nw-b-cta--framework { border:2px solid var(--nw-green); padding:36px 40px; background:var(--nw-card); }
.nw-cs .nwcs-prose .nw-b-cta--framework .nw-b-cta__eyebrow { color:var(--nw-green); }
.nw-cs .nwcs-prose .nw-b-cta--framework .nw-b-cta__title { color:var(--nw-teal); font-size:26px; line-height:1.25; }
.nw-cs .nwcs-prose .nw-b-cta--framework .nw-b-cta__btn { background:none; border:2px solid var(--nw-teal); color:var(--nw-teal); padding:14px 26px; }
.nw-cs .nwcs-prose .nw-b-cta--framework .nw-b-cta__btn:hover { background:var(--nw-teal); color:var(--nw-cream); }
.nw-cs .nwcs-prose .nw-b-cta--casestudy { background:var(--nw-card); border:1px solid var(--nw-hair); padding:36px; flex-direction:column; align-items:stretch; gap:18px; }
.nw-cs .nwcs-prose .nw-b-cta--casestudy .nw-b-cta__eyebrow { color:#006E96; }
.nw-cs .nwcs-prose .nw-b-cta--casestudy .nw-b-cta__title { color:var(--nw-teal); font-size:24px; line-height:1.25; }
.nw-cs .nwcs-prose .nw-b-cta--casestudy .nw-b-cta__textlink { color:#006E96; }

/* Blocks responsive */
@media (max-width:900px) {
  .nw-cs .nwcs-prose .nw-b-cards { grid-template-columns:1fr; }
  .nw-cs .nwcs-prose .nw-b-stats { grid-template-columns:1fr; }
  .nw-cs .nwcs-prose .nw-b-stat + .nw-b-stat { border-left:none; border-top:1px solid rgba(230,230,219,.16); }
  .nw-cs .nwcs-prose .nw-b-cta { gap:24px; }
}

/* =========================================================================
   Pull quote (ACF quote_block) -- upgraded to the polished blog design.
   The quote_block now renders .nw-b-quote at ARTICLE level (.nwcs-pullquote),
   outside .nwcs-prose, so mirror the framed serif treatment here: full
   border, oversized quotation mark, and a left-anchored uppercase attribution
   rule (no floated cite, no dead gap).
   ========================================================================= */
.nw-cs .nwcs-article .nwcs-pullquote.nw-b-quote { margin:52px 0; padding:44px 46px 36px; background:var(--nw-quote, #EFEFE6); border:1px solid var(--nw-quoteb, #D8D8CB); position:relative; overflow:visible; border-left:4px solid var(--nw-coral); }
.nw-cs .nwcs-article .nwcs-pullquote .nw-b-quote__mark { position:absolute; top:-20px; left:34px; font-family:var(--nw-serif); font-size:88px; line-height:1; }
.nw-cs .nwcs-article .nwcs-pullquote .nw-b-quote__q { margin:0 !important; padding:0 !important; font-family:var(--nw-serif) !important; font-style:normal !important; font-size:26px; line-height:1.4; color:var(--nw-teal); position:static !important; background:none !important; border:none !important; width:auto !important; max-width:none !important; }
.nw-cs .nwcs-article .nwcs-pullquote .nw-b-quote__q::after,
.nw-cs .nwcs-article .nwcs-pullquote .nw-b-quote__q::before { content:none !important; display:none !important; background:none !important; }
.nw-cs .nwcs-article .nwcs-pullquote .nw-b-quote__q a { color:var(--nw-teal) !important; }
.nw-cs .nwcs-article .nwcs-pullquote .nw-b-quote__c { display:block; margin:24px 0 0; padding:16px 0 0; border-top:1px solid var(--nw-quoteb, #D8D8CB); font-family:var(--nw-sans, inherit); font-size:11px; font-weight:700; font-style:normal; letter-spacing:.16em; text-transform:uppercase; color:var(--nw-muted); text-align:left; }

/* =========================================================================
   Profile / headshot component.
   Two paths feed this:
     (a) authored [nw_profile] shortcode -> .nw-b-profile (a clean card that
         pairs a portrait with name + role, floated in the prose).
     (b) legacy inline WordPress captions the editors already embedded in a
         text_block (figure.wp-caption / .alignleft with an <img> + caption).
         We re-skin those in place so they read as a designed profile card
         without touching the stored content.
   ========================================================================= */

/* (a) authored shortcode profile card */
.nw-cs .nwcs-prose .nw-b-profile { float:left; width:260px; max-width:42%; margin:8px 34px 24px 0; background:var(--nw-card); border:1px solid var(--nw-hair); box-shadow:0 1px 0 rgba(7,72,91,.04); }
.nw-cs .nwcs-prose .nw-b-profile__img { display:block; width:100%; height:auto; }
.nw-cs .nwcs-prose .nw-b-profile__body { padding:16px 18px 18px; }
.nw-cs .nwcs-prose .nw-b-profile__name { font-family:var(--nw-serif); font-size:19px; line-height:1.2; color:var(--nw-teal); margin:0; }
.nw-cs .nwcs-prose .nw-b-profile__role { display:block; margin-top:6px; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--nw-muted); }
.nw-cs .nwcs-prose .nw-b-profile__role::before { content:""; display:block; width:26px; height:3px; background:var(--nw-coral); margin:0 0 10px; }

/* (b) legacy inline WordPress caption -> profile card, re-skinned in place */
.nw-cs .nwcs-prose figure.wp-caption { float:left; width:260px !important; max-width:42%; margin:8px 34px 24px 0; padding:0; background:var(--nw-card); border:1px solid var(--nw-hair); box-shadow:0 1px 0 rgba(7,72,91,.04); text-align:left; }
.nw-cs .nwcs-prose figure.wp-caption.alignright { float:right; margin:8px 0 24px 34px; }
.nw-cs .nwcs-prose figure.wp-caption img { display:block; width:100% !important; height:auto !important; margin:0; border:0; }
.nw-cs .nwcs-prose figure.wp-caption .wp-caption-text { margin:0; padding:16px 18px 18px; font-family:var(--nw-sans, inherit); font-style:normal; font-size:11px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; line-height:1.4; text-align:left; color:var(--nw-muted); }
.nw-cs .nwcs-prose figure.wp-caption .wp-caption-text::before { content:""; display:block; width:26px; height:3px; background:var(--nw-coral); margin:0 0 10px; }

/* Profile + pull quote responsive */
@media (max-width:640px) {
  .nw-cs .nwcs-prose .nw-b-profile,
  .nw-cs .nwcs-prose figure.wp-caption { float:none; width:100% !important; max-width:none; margin:24px 0; }
  .nw-cs .nwcs-article .nwcs-pullquote.nw-b-quote { padding:36px 24px 28px; }
  .nw-cs .nwcs-article .nwcs-pullquote .nw-b-quote__mark { left:20px; font-size:70px; }
  .nw-cs .nwcs-article .nwcs-pullquote .nw-b-quote__q { font-size:21px; }
}

/* nw_profile float variants */
.nw-cs .nwcs-prose .nw-b-profile--right { float:right; margin:8px 0 24px 34px; }

/* Social share block (added per Norwest 2026-07-31 web check-in — parity with
   the blog single share buttons). Coral-on-cream, matches .nwcs-facts__card. */
.nwcs-share__btns { display:flex; gap:18px; align-items:center; }
/* Bare icons: no border, no button padding, no box. Scoped under .nw-cs so the
   selector (0,2,0) outranks Elementor's global kit button rule
   `.elementor-kit-5 button` (0,1,1) which was forcing 15px 35px padding, a 1px
   border and square corners onto these real <button> elements. */
.nw-cs .nwcs-share__btn {
  width:auto; height:auto; min-width:0; min-height:0;
  padding:0; margin:0;
  border:0; border-radius:0;
  background:transparent; background-color:transparent;
  color:var(--nw-teal);
  font-family:var(--nw-sans); font-size:18px; font-weight:700; line-height:1;
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer; transition:color .15s ease;
  -webkit-appearance:none; appearance:none; box-shadow:none;
}
.nw-cs .nwcs-share__btn:hover { color:var(--nw-coral); background:transparent; border:0; }
.nw-cs .nwcs-share__btn:focus-visible { outline:2px solid var(--nw-deepteal); outline-offset:2px; }

/* Investor title (added per Norwest 2026-08-03: always show the person's real
   title from their team profile, under the name — hero + sidebar). */
.nwcs-herometa__ptitle { font-size:12px; font-weight:500; color:var(--nw-muted); }
.nwcs-partner__meta { display:flex; flex-direction:column; line-height:1.25; }
.nwcs-partner__title { font-size:12px; font-weight:500; color:var(--nw-muted); }

/* Company leader (ACF additional_attributions, e.g. "The Learning Experience
   CEO") moved into the INVESTOR sidebar card, just under the Norwest team
   member (per Norwest 2026-08-05). A hairline divider separates it from the
   Norwest partner above so the two roles stay distinct in one box. */
.nwcs-partner--leader { margin-top:14px; padding-top:16px; border-top:1px solid var(--nw-hair); }
.nwcs-partner__link { display:inline-block; margin-top:3px; font-size:12px; font-weight:500; }

/* FontAwesome share icons (sidebar) — inherit button color, fixed size. */
.nw-cs .nwcs-share__btn i { font-size:15px; line-height:1; }
