/* GCDTR section pages (page.php, docs/page-builder/PLAN.md): the sections of
   the Funding & Enrichment v2 designs (Figma KD3BmlqjRa3T9fZ6bUWWuF) on top of
   page-system-2026.css (tokens, hero, cards, pager). Measurements are the
   Figma ones at 1512 wide; phones follow the 390-wide frames. Prefixed gp-. */

.gp-page { background: #fff; padding-bottom: 96px; } /* white, like the rest of the site (Jeff, 2026-10-04) */
/* The page's tint runs into the footer (the site footer keeps a top margin on phones). */
main:has(> .gp-page) + .site-footer { margin-top: 0; }
.gp-sec { padding: 80px 0 0; }
.gp-sec--intro { padding-top: 56px; }
.gp-sec--overview { padding-top: 72px; }
.gp-hero + .gp-sec--overview, .gp-hero + .gp-sec { padding-top: 64px; }

/* Numbered kicker: 01 —— LABEL */
.gp-kick { display: flex; align-items: center; gap: 14px; margin: 0; }
.gp-kick__num { font: italic 400 28px/28px var(--gp-serif); color: var(--gp-purple); }
.gp-kick__rule { width: 36px; height: 2px; background: var(--gp-purple); flex: none; }
.gp-kick__label { font: 800 12px/16px var(--gp-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--gp-magenta); }
.gp-kick--dark .gp-kick__num, .gp-kick--dark .gp-kick__label { color: #f2ce5b; }
.gp-kick--dark .gp-kick__rule { background: #f2ce5b; }

.gp-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; margin-bottom: 32px; }
.gp-head__titles { display: flex; flex-direction: column; gap: 20px; max-width: 980px; }
.gp-h2 { margin: 0; font: 400 38px/48px var(--gp-serif); color: var(--gp-slate); }
.gp-h2--light { color: #fff; }
.gp-lead { margin: 0; font: 400 16px/26px var(--gp-sans); color: var(--gp-gray); }
.gp-intro { max-width: 900px; margin: 0; font: 400 22px/34px var(--gp-sans); color: var(--gp-slate); }

/* Buttons */
.gp-btns { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0 0; }
.gp-btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 24px; border-radius: 999px; font: 700 15px/20px var(--gp-sans); white-space: nowrap; text-decoration: none; transition: background .15s ease, color .15s ease; }
.gp-btn--gold { background: #f2ce5b; color: var(--gp-navy); }
.gp-btn--gold:hover { background: #e9bf3d; }
.gp-btn--dark { border: 1.5px solid var(--gp-navy); color: var(--gp-navy); }
.gp-btn--dark:hover { background: var(--gp-navy); color: #fff; }
.gp-btn--light { border: 1.5px solid rgba(255, 255, 255, .85); color: #fff; }
.gp-btn--light:hover { background: rgba(255, 255, 255, .12); }
.gp-btn:focus-visible { outline: 3px solid var(--gp-gold-deep); outline-offset: 3px; }

/* ── Heroes ─────────────────────────────────────────────────────────────── */
/* Title only, the hand beside it (program pages). */
/* Title only: the copy centred in the panel; the hand as on every panel (page-system). */
.gp-panel--title { display: flex; flex-direction: column; justify-content: center; }
.gp-panel--title .gp-panel__copy { max-width: 800px; }
.gp-title--long { font-size: 64px; line-height: 72px; }
.gp-title--light { color: #fff; }
.gp-panel--title .gp-btns { margin-top: 28px; }

/* Photo panel (section landings): the photo, a navy shade from the left, the words over it. */
.gp-photo-hero { position: relative; overflow: hidden; display: flex; align-items: center; min-height: 640px; background: var(--gp-navy); }
.gp-photo-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gp-photo-hero__shade, .gp-collage__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(16, 42, 68, .92) 0%, rgba(16, 42, 68, .7) 55%, rgba(16, 42, 68, .25) 100%); }
.gp-photo-hero__copy { position: relative; z-index: 1; box-sizing: content-box; max-width: 640px; padding: 64px 80px; }
.gp-photo-hero .gp-deck, .gp-collage .gp-deck { color: rgba(255, 255, 255, .9); }
.gp-photo-hero .gp-btns, .gp-collage .gp-btns { margin-top: 30px; }

/* Collage (people and event pages): every square a photo. */
.gp-collage { position: relative; overflow: hidden; display: flex; align-items: flex-end; min-height: 520px; background: var(--gp-navy); }
.gp-collage__grid { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: minmax(0, 1fr); }
.gp-collage__grid--1, .gp-collage__grid--2 { grid-template-columns: repeat(2, 1fr); }
.gp-collage__grid--3 { grid-template-columns: repeat(3, 1fr); }
/* Stretch, not height: 100%: Safari resolves a percentage height here against the whole collage, not the row (WebKit bug 306258), so every portrait rendered 2x zoomed. */
.gp-collage__photo { width: 100%; height: auto; min-height: 0; align-self: stretch; object-fit: cover; }
/* 9-16 photos (a leadership team): two rows of portrait tiles, faces kept in frame. */
.gp-collage__grid--9, .gp-collage__grid--10 { grid-template-columns: repeat(5, 1fr); }
.gp-collage__grid--11, .gp-collage__grid--12 { grid-template-columns: repeat(6, 1fr); }
.gp-collage__grid--13, .gp-collage__grid--14 { grid-template-columns: repeat(7, 1fr); }
.gp-collage__grid--15, .gp-collage__grid--16 { grid-template-columns: repeat(8, 1fr); }
:is(.gp-collage__grid--9, .gp-collage__grid--10, .gp-collage__grid--11, .gp-collage__grid--12, .gp-collage__grid--13, .gp-collage__grid--14, .gp-collage__grid--15, .gp-collage__grid--16) .gp-collage__photo { object-position: 50% 22%; }
.gp-collage__copy { position: relative; z-index: 1; box-sizing: content-box; max-width: 700px; padding: 0 80px 64px; }

/* List pages: the hand at the top right, search (and years) in the panel. */
.gp-panel--list .gp-panel__copy { max-width: 900px; }
.gp-tools__go { padding: 14px 22px; }

/* ── Overview: the about card, and who to contact beside it ──────────────── */
.gp-overview { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.gp-overview--with-contacts { grid-template-columns: minmax(0, 1fr) 520px; align-items: start; }
/* People: the site's leader card (page-system-2026.css .lead-card). */
.gp-about { display: flex; flex-direction: column; gap: 18px; padding: 36px 40px; background: #fff; border-left: 6px solid var(--gp-magenta); border-radius: 22px; }
.gp-about__heading { margin: 0; max-width: 880px; font: 400 32px/40px var(--gp-serif); color: var(--gp-slate); }
.gp-about__body { margin: 0; max-width: 880px; font: 400 16px/26px var(--gp-sans); color: var(--gp-gray); }
.gp-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 4px 0 0; padding: 0; list-style: none; }
.gp-chip { position: relative; display: flex; flex-direction: column; gap: 2px; padding: 10px 14px 10px 32px; background: var(--gp-lilac); border: 1px solid var(--gp-line); border-radius: 12px; }
.gp-chip::before { content: ''; position: absolute; left: 14px; top: 50%; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%; background: var(--gp-purple); }
.gp-chip__label { font: 800 10px/16px var(--gp-sans); letter-spacing: .14em; text-transform: uppercase; color: #3b2745; }
.gp-chip__sub { font: 500 12px/18px var(--gp-sans); color: var(--gp-muted); }
.gp-contacts { display: flex; flex-direction: column; gap: 16px; padding: 32px; background: var(--gp-navy); border-radius: 22px; }
.gp-contacts__heading { margin: 0; font: 600 22px/28px var(--gp-serif); color: #fff; }

/* A person */

/* ── Cards (offerings): a coloured number panel and the text ─────────────── */
.gp-offers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.gp-offer { display: flex; overflow: hidden; background: #fff; border: 1px solid var(--gp-line); border-radius: 18px; }
.gp-offer__edge { flex: none; width: 10px; background: var(--accent, var(--gp-purple)); }
.gp-offer__body { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 26px; }
.gp-offer__title { margin: 0; font: 600 22px/28px var(--gp-serif); color: var(--gp-slate); }
.gp-offer__title a { color: inherit; }
.gp-offer__title a:hover { text-decoration: underline; }
.gp-offer__text, .gp-offer__list { margin: 0; font: 400 14px/22px var(--gp-sans); color: var(--gp-gray); }
.gp-offer__list { padding-left: 1.1em; list-style: disc; }
.gp-offer__list li + li { margin-top: 2px; }

/* ── Navy panels: tiles (focus areas) and steps (process) ────────────────── */
.gp-navy { position: relative; overflow: hidden; background: var(--gp-navy); border-radius: 24px; }
.gp-navy > * { position: relative; z-index: 1; }
.gp-navy .gp-head { margin-bottom: 0; }
.gp-navy__orb { position: absolute; z-index: 0; top: -170px; right: -100px; width: 420px; height: 420px; border-radius: 50%; background: var(--gp-purple); opacity: .55; }
.gp-navy__ring { position: absolute; z-index: 0; right: -110px; bottom: -110px; width: 220px; height: 220px; border: 14px solid #f2ce5b; border-radius: 50%; opacity: .9; }
.gp-navy--tiles { display: flex; flex-direction: column; gap: 18px; padding: 40px 44px; }
.gp-navy--tiles .gp-h2 { font-size: 32px; line-height: 40px; }
.gp-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.gp-tile { display: flex; flex-direction: column; gap: 14px; min-height: 0; padding: 18px; background: #173a5c; border: 1px solid rgba(255, 255, 255, .7); border-radius: 14px; }
.gp-tile__label { font: 600 14px/22px var(--gp-sans); color: #fff; }
.gp-tiles:has(.gp-tile--text) { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.gp-tile--text .gp-tile__label { font: 600 20px/28px var(--gp-serif); }
.gp-tile__text { font: 400 15px/24px var(--gp-sans); color: #d5dee8; }
/* Logo tiles (sponsors): the white plate is the tile; linked to the sponsor. */
.gp-tile--logo { min-height: 0; padding: 0; background: none; border: 0; }
.gp-tile__link { display: block; border-radius: 12px; transition: transform .15s ease, box-shadow .15s ease; }
.gp-tile__link:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0, 0, 0, .28); }
.gp-tile__link:focus-visible { outline: 3px solid #f2ce5b; outline-offset: 4px; }
.gp-tile__plate { display: flex; align-items: center; justify-content: center; height: 112px; padding: 16px 22px; background: #fff; border-radius: 12px; }
.gp-tile__logo { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.gp-badge { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--gp-magenta); font: 800 11px/18px var(--gp-sans); color: #fff; }
.gp-badge--lg { width: 40px; height: 40px; font-size: 12px; }
.gp-navy--steps { display: grid; grid-template-columns: 440px minmax(0, 1fr); gap: 48px; padding: 48px; }
.gp-steps__copy { display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }
.gp-steps__body { margin: 0; font: 400 16px/26px var(--gp-sans); color: var(--gp-mist); }
.gp-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-content: start; margin: 0; padding: 0; list-style: none; }
.gp-step { display: flex; flex-direction: column; gap: 10px; padding: 22px; background: #173a5c; border: 1px solid rgba(255, 255, 255, .7); border-radius: 16px; }
.gp-step__title { margin: 0; font: 600 18px/24px var(--gp-serif); color: #fff; }
.gp-step__text { margin: 0; font: 400 14px/22px var(--gp-sans); color: var(--gp-mist); }

/* ── Examples ────────────────────────────────────────────────────────────── */
.gp-examples { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 35px; }
.gp-example { display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--gp-line); border-radius: 18px; color: inherit; }
a.gp-example:hover { box-shadow: 0 14px 34px rgba(16, 42, 68, .12); }
a.gp-example:hover .gp-example__title { text-decoration: underline; text-underline-offset: 4px; }
.gp-example__media { margin: 0; aspect-ratio: 16 / 9; overflow: hidden; }
.gp-example__media img { width: 100%; height: 100%; object-fit: cover; }
.gp-example__body { display: flex; flex-direction: column; gap: 8px; padding: 18px 22px 22px; }
.gp-example__meta { margin: 0; font: 800 10px/16px var(--gp-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--gp-magenta); }
.gp-example__title { margin: 0; font: 600 18px/24px var(--gp-serif); color: var(--gp-slate); }
.gp-example__link { font: 600 12px/18px var(--gp-sans); color: var(--gp-blue-deep); }

/* ── Text, photos, numbers, charts, video ────────────────────────────────── */
.gp-text { max-width: 900px; padding: 36px 40px; background: #fff; border-radius: 22px; }
.gp-text .gp-head { margin-bottom: 18px; }
.gp-prose { font: 400 17px/28px var(--gp-sans); color: var(--gp-gray); }
.gp-prose > * + * { margin-top: 14px; }
.gp-prose p, .gp-prose ul, .gp-prose ol { margin-bottom: 0; }
.gp-prose h3 { margin: 26px 0 0; font: 600 24px/32px var(--gp-serif); color: var(--gp-slate); }
.gp-prose h4 { margin: 20px 0 0; font: 700 16px/24px var(--gp-sans); color: var(--gp-slate); }
.gp-prose a { color: var(--gp-purple); text-decoration: underline; text-underline-offset: 3px; }
.gp-prose ul, .gp-prose ol { padding-left: 1.3em; }
.gp-prose strong { color: var(--gp-slate); }

.gp-gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.gp-shot { margin: 0; overflow: hidden; background: #fff; border: 1px solid var(--gp-line); border-radius: 16px; }
.gp-shot img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .25s ease; }
.gp-shot a:hover img { transform: scale(1.03); }
.gp-shot figcaption { padding: 12px 16px 14px; font: 500 13px/20px var(--gp-sans); color: var(--gp-muted); }

.gp-stats { display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: 20px; margin: 0; }
.gp-stats--2 { --cols: 2; } .gp-stats--3 { --cols: 3; } .gp-stats--4 { --cols: 4; }
.gp-stat { display: flex; flex-direction: column-reverse; gap: 6px; padding: 28px 30px; background: #fff; border: 1px solid var(--gp-line); border-top: 6px solid var(--gp-gold-deep); border-radius: 18px; }
.gp-stat__value { margin: 0; font: 400 56px/60px var(--gp-serif); color: var(--gp-navy); }
.gp-stat__label { font: 500 14px/22px var(--gp-sans); color: var(--gp-gray); }

.gp-chart { margin: 0; padding: 32px 36px; background: #fff; border: 1px solid var(--gp-line); border-radius: 22px; }
.gp-chart__plot { display: flex; flex-wrap: wrap; align-items: center; gap: 24px 40px; }
.gp-chart__svg { display: block; width: 100%; max-width: 900px; height: auto; font-family: var(--gp-sans); }
.gp-chart__svg--donut { width: 260px; flex: none; }
.gp-chart__label, .gp-chart__tick { font-size: 14px; fill: var(--gp-gray); }
.gp-chart__value { font-size: 14px; font-weight: 700; fill: var(--gp-slate); }
.gp-chart__grid { stroke: var(--gp-line); stroke-width: 1; }
.gp-chart__line { fill: none; stroke: var(--gp-purple); stroke-width: 3; stroke-linejoin: round; }
.gp-chart__dot { fill: #fff; stroke: var(--gp-purple); stroke-width: 3; }
.gp-chart__legend { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; font: 500 15px/22px var(--gp-sans); color: var(--gp-gray); }
.gp-chart__legend li { display: flex; align-items: center; gap: 10px; }
.gp-chart__legend span { width: 14px; height: 14px; border-radius: 4px; flex: none; }
.gp-chart__legend strong { color: var(--gp-slate); }
.gp-chart__note { margin-top: 16px; font: 400 13px/20px var(--gp-sans); color: var(--gp-muted); }

.gp-video { margin: 0; max-width: 1000px; }
.gp-video__frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--gp-navy); border-radius: 18px; }
.gp-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.gp-video figcaption { margin-top: 12px; font: 400 14px/22px var(--gp-sans); color: var(--gp-muted); }

/* Custom HTML (the site owner's own markup): only spacing from the page. */
.gp-custom { min-width: 0; }
.gp-custom > :first-child { margin-top: 0; }

/* Lists: links for page numbers (the page works without scripts). */
.gp-sec--feed .gp-head { align-items: flex-end; }
.gp-pager a, .gp-pager span { display: inline-grid; place-items: center; min-width: 40px; height: 40px; padding: 0 10px; border-radius: 20px; font: 700 15px/20px var(--gp-sans); color: var(--gp-navy); }
.gp-pager a:hover { background: var(--gp-panel); }
.gp-pager [aria-current="page"] { background: var(--gp-navy); color: #fff; }
.gp-pager [aria-disabled="true"] { color: var(--gp-muted); opacity: .45; }
.gp-empty a { font-weight: 600; color: var(--gp-purple); text-decoration: underline; }
/* Recordings: their thumbnails are 16:9 slides, shown whole. */
.gp-cards--webinars .gp-card__media { height: auto; aspect-ratio: 16 / 9; }

/* ── Smaller screens ─────────────────────────────────────────────────────── */
@media (max-width: 1200px) {
  .gp-overview--with-contacts { grid-template-columns: minmax(0, 1fr) 460px; }
  .gp-navy--steps { grid-template-columns: 1fr; }
  .gp-examples { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1000px) {
  .gp-overview--with-contacts { grid-template-columns: 1fr; }
  .gp-offers { grid-template-columns: 1fr; }
  .gp-title--long { font-size: 52px; line-height: 60px; }
  .gp-photo-hero { min-height: 520px; }
  .gp-photo-hero__copy { padding: 48px; }
  .gp-collage__copy { padding: 0 48px 48px; }
  .gp-stats--4 { --cols: 2; }
}
@media (max-width: 700px) {
  .gp-page { padding-bottom: 56px; }
  .gp-sec { padding-top: 56px; }
  .gp-sec--intro { padding-top: 32px; }
  .gp-sec--overview, .gp-hero + .gp-sec, .gp-hero + .gp-sec--overview { padding-top: 48px; }
  .gp-h2 { font-size: 28px; line-height: 36px; }
  .gp-head { margin-bottom: 20px; }
  .gp-head__titles { gap: 16px; }
  .gp-intro { font-size: 19px; line-height: 30px; }
  .gp-panel--title .gp-title, .gp-title--long { font-size: 40px; line-height: 46px; }
  /* List pages: the title stays clear of the hand in the corner. */
  .gp-panel--list .gp-panel__copy { padding-right: 72px; }
  .gp-panel--list .gp-title { font-size: 40px; line-height: 46px; }
  .gp-photo-hero, .gp-collage { min-height: 0; }
  .gp-photo-hero__copy { padding: 40px 24px; }
  .gp-photo-hero .gp-title, .gp-collage .gp-title { font-size: 40px; line-height: 46px; }
  .gp-collage { min-height: 440px; }
  .gp-collage__grid { grid-template-columns: repeat(2, 1fr); }
  .gp-collage__grid .gp-collage__photo:nth-child(n+5) { display: none; }
  :is(.gp-collage__grid--9, .gp-collage__grid--10, .gp-collage__grid--11, .gp-collage__grid--12, .gp-collage__grid--13, .gp-collage__grid--14, .gp-collage__grid--15, .gp-collage__grid--16) { grid-template-columns: repeat(5, 1fr); }
  :is(.gp-collage__grid--9, .gp-collage__grid--10, .gp-collage__grid--11, .gp-collage__grid--12, .gp-collage__grid--13, .gp-collage__grid--14, .gp-collage__grid--15, .gp-collage__grid--16) .gp-collage__photo:nth-child(n+5) { display: block; }
  .gp-collage__copy { padding: 0 24px 28px; }
  .gp-btns { flex-direction: column; align-items: stretch; }
  .gp-btn { justify-content: center; }
  .gp-about { padding: 26px 22px; border-radius: 18px; gap: 14px; }
  .gp-about__heading { font-size: 28px; line-height: 36px; }
  .gp-contacts { padding: 24px 18px; border-radius: 18px; }
  .gp-contacts__heading { font-size: 20px; }
  .gp-offer__edge { width: 8px; }
  .gp-offer__body { padding: 20px; }
  .gp-navy { border-radius: 18px; }
  .gp-navy--tiles { padding: 28px 18px; }
  .gp-navy--tiles .gp-h2 { font-size: 28px; line-height: 36px; }
  .gp-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .gp-tile { min-height: 0; padding: 16px; }
  .gp-tiles:has(.gp-tile--logo) { grid-template-columns: 1fr; } /* logos need the width */
  .gp-tiles:has(.gp-tile--text) { grid-template-columns: 1fr; } /* so do sentences */
  .gp-tile__plate { height: 84px; padding: 12px 14px; }
  .gp-navy--steps { padding: 28px 18px; gap: 24px; }
  .gp-steps { grid-template-columns: 1fr; gap: 12px; }
  .gp-navy__orb { width: 260px; height: 260px; top: -120px; right: -120px; }
  .gp-navy__ring { width: 140px; height: 140px; right: -80px; bottom: -80px; border-width: 10px; }
  .gp-examples, .gp-gallery-grid { grid-template-columns: 1fr; gap: 16px; }
  .gp-text { padding: 26px 22px; }
  .gp-stats, .gp-stats--4 { --cols: 1; }
  .gp-stat__value { font-size: 44px; line-height: 48px; }
  .gp-chart { padding: 22px 18px; }
}
@media (prefers-reduced-motion: reduce) { .gp-shot img, .gp-btn { transition: none; } .gp-shot a:hover img { transform: none; } }

/* Heroes on hand-built pages (scripts/site/swap_heroes.php, docs/page-builder/heroes.json).
   Those pages' own stylesheets reset margins and box sizing on every element
   (core pages) or colour every h1 (About, Leadership); these keep the hero as
   designed there. Section pages do not carry gp-hero--page. */
.gp-hero--page .gp-title { margin: 0; font-family: var(--gp-serif); font-weight: 400; color: var(--gp-navy); }
.gp-hero--page .gp-title--light { color: #fff; }
.gp-hero--page .gp-deck { margin: 16px 0 0; }
.gp-hero--page .gp-photo-hero__copy, .gp-hero--page .gp-collage__copy { box-sizing: content-box; }
.gp-hero--page .gp-panel { box-sizing: border-box; }
/* A title hero's lead paragraph (on white, like the hero); the page's own first
   section then starts at one fixed distance below it. */
.gp-sec--hero-intro { background: #fff; padding-bottom: 0; }
.gp-sec--hero-intro + section:not(.gp-sec), .gp-sec--hero-intro + main > section:first-child { padding-top: 56px; }
@media (max-width: 700px) {
  .gp-sec--hero-intro + section:not(.gp-sec), .gp-sec--hero-intro + main > section:first-child { padding-top: 40px; }
}
@media (max-width: 700px) {
  .gp-hero--page .gp-deck { margin-top: 12px; }
}

/* Webinar video library (pb_render_video_library; assets/js/page-sections-2026.js):
   a carousel of cards per year; the chosen recording plays right under its carousel. */
.gp-reel { margin-top: 48px; }
.gp-sec--videos .gp-reel:first-of-type { margin-top: 8px; }
.gp-reel__head { display: flex; align-items: baseline; gap: 14px; margin-bottom: 16px; }
.gp-reel__title { margin: 0; font: 400 32px/40px var(--gp-serif); color: var(--gp-slate); }
.gp-reel__count { margin: 0; font: 600 13px/18px var(--gp-sans); color: var(--gp-muted); }
.gp-reel__nav { display: flex; gap: 10px; margin-left: auto; }
.gp-reel__arrow { width: 44px; height: 44px; border: 1px solid var(--gp-line); border-radius: 50%; background: #fff; color: var(--gp-navy); font: 600 18px/1 var(--gp-sans); cursor: pointer; }
.gp-reel__arrow:hover:not(:disabled) { background: var(--gp-navy); border-color: var(--gp-navy); color: #fff; }
.gp-reel__arrow:disabled { opacity: .35; cursor: default; }
.gp-reel.is-static .gp-reel__nav { visibility: hidden; }
.gp-reel__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3 * 20px) / 3.6); gap: 20px; margin: 0; padding: 0 0 8px; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.gp-reel__track::-webkit-scrollbar { display: none; }
.gp-reel__item { scroll-snap-align: start; }
.gp-reel__card { display: flex; flex-direction: column; gap: 8px; color: var(--gp-slate); text-decoration: none; }
.gp-reel__media { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 9; border-radius: 12px; background: #0b1d30; }
.gp-reel__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.gp-reel__play { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 54px; height: 54px; margin: -27px 0 0 -27px; border-radius: 50%; background: rgba(255, 255, 255, .94); color: var(--gp-navy); box-shadow: 0 8px 20px rgba(0, 0, 0, .25); }
.gp-reel__play svg { width: 22px; height: 22px; margin-left: 3px; }
.gp-reel__now { position: absolute; left: 10px; bottom: 10px; display: none; padding: 4px 10px; border-radius: 999px; background: #e2b230; color: var(--gp-navy); font: 800 11px/16px var(--gp-sans); letter-spacing: .08em; text-transform: uppercase; }
.gp-reel__card[aria-current] .gp-reel__media { outline: 3px solid #e2b230; outline-offset: -3px; }
.gp-reel__card[aria-current] .gp-reel__now { display: block; }
.gp-reel__card[aria-current] .gp-reel__play { display: none; }
.gp-reel__card:hover .gp-reel__media img { transform: scale(1.04); }
.gp-reel__card:focus-visible { outline: 3px solid var(--gp-purple); outline-offset: 4px; border-radius: 12px; }
.gp-reel__name { font: 600 16px/22px var(--gp-serif); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.gp-reel__card:hover .gp-reel__name { text-decoration: underline; }
.gp-reel__date { font: 400 13px/18px var(--gp-sans); color: var(--gp-muted); }
.gp-reel__dots { display: flex; justify-content: center; gap: 8px; margin-top: 14px; }
.gp-reel__dot { min-width: 30px; height: 30px; padding: 0 8px; border: 1px solid var(--gp-line); border-radius: 15px; background: #fff; color: var(--gp-muted); font: 600 12px/1 var(--gp-sans); cursor: pointer; }
.gp-reel__dot.is-active { background: var(--gp-navy); border-color: var(--gp-navy); color: #fff; }
/* The player, under the chosen card's carousel */
.gp-player { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); margin-top: 20px; overflow: hidden; border-radius: 18px; background: var(--gp-navy); color: #fff; scroll-margin: calc(var(--header-h, 130px) + 16px) 0 24px; }
.gp-player[hidden] { display: none; }
.gp-player__screen { position: relative; aspect-ratio: 16 / 9; background: #000; }
.gp-player__screen iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.gp-player__copy { display: flex; flex-direction: column; justify-content: center; gap: 12px; padding: 36px 40px; }
.gp-player__meta { margin: 0; font: 800 12px/16px var(--gp-sans); letter-spacing: .12em; text-transform: uppercase; color: #f2ce5b; }
.gp-player__title { margin: 0; font: 400 28px/36px var(--gp-serif); color: #fff; outline: none; }
.gp-player__why { margin: 0; font: 400 16px/26px var(--gp-sans); color: var(--gp-mist); }
.gp-player__links { display: flex; flex-wrap: wrap; gap: 18px; margin: 4px 0 0; font: 700 14px/20px var(--gp-sans); }
.gp-player__links a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.gp-player__links a:hover { color: #f2ce5b; }
.gp-player__actions { display: flex; gap: 10px; margin-top: 8px; }
.gp-player__actions button { padding: 10px 18px; border: 1px solid rgba(255, 255, 255, .5); border-radius: 999px; background: transparent; color: #fff; font: 700 13px/18px var(--gp-sans); cursor: pointer; }
.gp-player__actions button:hover, .gp-player__actions button:focus-visible { background: #fff; color: var(--gp-navy); }
/* Expanded: the video across the full page width, the details beneath it. */
.gp-player.is-wide { grid-template-columns: 1fr; }
.gp-player.is-wide .gp-player__screen { justify-self: center; width: min(100%, calc((100vh - 220px) * 16 / 9)); } /* fits the screen's height */
.gp-player.is-wide .gp-player__copy { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; column-gap: 32px; padding: 28px 36px 32px; }
.gp-player.is-wide .gp-player__copy > :not(.gp-player__actions) { grid-column: 1; }
.gp-player.is-wide .gp-player__actions { grid-column: 2; grid-row: 1 / span 4; align-self: center; margin: 0; }
@media (max-width: 1000px) {
  .gp-player { grid-template-columns: 1fr; }
  .gp-player__copy { padding: 26px 28px 30px; }
  .gp-player__actions .gp-player__expand { display: none; } /* already the full width */
  .gp-player.is-wide .gp-player__copy { display: flex; }
  .gp-reel__track { grid-auto-columns: calc((100% - 20px) / 2.3); }
}
@media (max-width: 700px) {
  .gp-reel { margin-top: 36px; }
  .gp-reel__title { font-size: 24px; line-height: 30px; }
  .gp-reel__nav, .gp-reel__dots { display: none; } /* phones swipe */
  .gp-reel__track { grid-auto-columns: 62%; gap: 14px; }
  .gp-player { margin-top: 14px; border-radius: 14px; }
  .gp-player__copy { padding: 20px 20px 24px; }
  .gp-player__title { font-size: 21px; line-height: 28px; }
}
@media (prefers-reduced-motion: reduce) { .gp-reel__media img { transition: none; } }

/* Document with tabs (pb_render_tabbed_document; assets/js/page-sections-2026.js): titles on
   the left, each part laid out like the Word file on a white page (Candler's degree
   requirements, Jeff 2026-10-05). Without the script every part shows, in order. */
.gp-notice { margin: 0 0 20px; padding: 14px 18px; border-left: 4px solid var(--gp-gold-deep); border-radius: 0 10px 10px 0; background: #fbf6e6; font: 600 16px/24px var(--gp-sans); color: var(--gp-navy); }
.gp-doc-tools { margin: 0 0 28px; }
.gp-doc-print { background: #fff; cursor: pointer; }
.gp-doc-print[hidden] { display: none; } /* shown by the script, which makes it work */
/* The site's overflow-x: hidden on html and body stops anything staying pinned while the
   page scrolls; clip keeps the page from scrolling sideways without that side effect.
   Only on pages with a document, so no other page changes. */
html:has(.gp-rfp), html:has(.gp-rfp) body { overflow-x: clip; }
.gp-rfp { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px; align-items: start; padding: 40px; border-radius: 24px; background: var(--gp-navy); }
.gp-rfp__toc { position: sticky; top: calc(var(--header-h, 130px) - 40px); }
.gp-rfp__toc ol, .gp-rfp__tabs { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255, 255, 255, .55); }
.gp-rfp__toc a, .gp-rfp__tab { display: block; width: 100%; padding: 14px 0; border: 0; border-bottom: 1px solid rgba(255, 255, 255, .55); background: none; color: #fff; font: 400 25px/32px var(--gp-serif); text-align: left; text-decoration: none; cursor: pointer; }
.gp-rfp__toc a:hover, .gp-rfp__tab:hover, .gp-rfp__tab[aria-selected="true"] { color: #f2ce5b; }
.gp-rfp__toc a:focus-visible, .gp-rfp__tab:focus-visible, .gp-rfp__acc:focus-visible { outline: 3px solid #f2ce5b; outline-offset: 4px; }
.gp-rfp__acc { display: none; }
.gp-rfp__pages { display: grid; gap: 24px; min-width: 0; }
.gp-rfp__part { padding: 48px 56px 40px; border-radius: 6px; background: #fff; box-shadow: 0 18px 40px rgba(0, 0, 0, .18); color: var(--gp-ink); font: 400 16px/26px var(--gp-sans); scroll-margin-top: calc(var(--header-h, 130px) + 16px); }
.gp-rfp__part[hidden] { display: none; }
.gp-rfp__part:focus { outline: none; }
.gp-rfp__kicker { margin: 0 0 6px; font: 800 12px/16px var(--gp-sans); letter-spacing: .14em; text-transform: uppercase; color: #8a6400; }
.gp-rfp__title { margin: 0; font: 400 32px/40px var(--gp-serif); color: var(--gp-navy); }
.gp-rfp__note { margin: 6px 0 0; color: var(--gp-gray); }
.gp-rfp__rule { display: block; width: 56px; height: 3px; margin: 16px 0 24px; background: var(--gp-gold-deep); }
.gp-rfp__body > :last-child { margin-bottom: 0; }
.gp-rfp__body p { margin: 0 0 14px; }
.gp-rfp__body h4 { margin: 28px 0 10px; font: 600 20px/28px var(--gp-serif); color: var(--gp-navy); }
.gp-rfp__body h5 { margin: 16px 0 6px; font: 700 15px/22px var(--gp-sans); color: var(--gp-navy); text-decoration: underline; text-underline-offset: 3px; }
.gp-rfp__body strong { color: var(--gp-navy); }
.gp-rfp__body u { text-underline-offset: 3px; }
.gp-rfp__body a { color: var(--gp-purple); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.gp-rfp__body ol, .gp-rfp__body ul { margin: 0 0 16px; padding-left: 26px; }
.gp-rfp__body li { margin: 0 0 10px; padding-left: 4px; }
.gp-rfp__body li > ol, .gp-rfp__body li > ul, .gp-rfp__body li > p { margin-top: 10px; }
.gp-rfp__body ol:not([type]) { list-style-type: decimal; }
.gp-rfp__body ol ol:not([type]) { list-style-type: lower-alpha; }
.gp-rfp__body ol ol ol:not([type]) { list-style-type: lower-roman; }
.gp-rfp__body ol[type="1"] { list-style-type: decimal; }
.gp-rfp__body ol[type="a"] { list-style-type: lower-alpha; }
.gp-rfp__body ol[type="i"] { list-style-type: lower-roman; }
.gp-rfp__body ul { list-style-type: disc; }
.gp-rfp__body ul ul { list-style-type: circle; }
.gp-rfp__body li::marker { color: var(--gp-navy); font-weight: 700; }
.gp-rfp__body mark { display: inline-block; margin-top: 6px; padding: 2px 10px; border-radius: 6px; background: #fbf3dc; color: #6b4e00; font-weight: 700; }
.gp-rfp__body blockquote { margin: 16px 0; padding: 14px 18px; border-left: 4px solid var(--gp-gold-deep); background: #f5f7f9; font-size: 15px; }
.gp-rfp__body blockquote > :last-child { margin-bottom: 0; }
.gp-rfp__body table { width: 100%; margin: 6px 0 18px; border-collapse: collapse; font-size: 15px; }
.gp-rfp__body th { padding: 8px 12px 8px 0; border-bottom: 2px solid var(--gp-navy); font: 800 12px/16px var(--gp-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--gp-navy); text-align: left; vertical-align: bottom; }
.gp-rfp__body td { padding: 10px 12px 10px 0; border-bottom: 1px solid #dde3ea; vertical-align: top; }
.gp-rfp__body td p, .gp-rfp__body th p { margin: 0; }
.gp-rfp__foot { display: flex; justify-content: space-between; gap: 16px; margin-top: 32px; padding-top: 18px; border-top: 1px solid #dde3ea; font: 700 14px/20px var(--gp-sans); }
.gp-rfp__foot a { color: var(--gp-navy); text-decoration: none; }
.gp-rfp__foot a:hover { text-decoration: underline; }
.gp-rfp__foot span { color: var(--gp-gray); font-weight: 400; }
/* Desktop and tablet (Jeff 2026-10-05, like Candler): each part is one screen tall and
   scrolls inside itself, so a long part never makes the page long. A fade says there is more. */
.gp-sec--document { scroll-margin-top: 40px; }
@media (min-width: 761px) {
  .gp-rfp.is-tabs .gp-rfp__pages { position: relative; }
  .gp-rfp.is-tabs .gp-rfp__part { height: clamp(460px, calc(100vh - 200px), 780px); overflow-y: auto; scrollbar-width: thin; scrollbar-color: #b5c4d2 transparent; }
  .gp-rfp.is-tabs .gp-rfp__part:focus-visible { outline: 2px solid rgba(226, 178, 48, .55); outline-offset: -8px; }
  .gp-rfp.is-tabs .gp-rfp__pages.has-more::after { content: "Scroll for more \2193"; position: absolute; left: 0; right: 10px; bottom: 0; display: flex; align-items: flex-end; justify-content: center;
    height: 84px; padding-bottom: 14px; border-radius: 0 0 6px 6px; background: linear-gradient(rgba(255, 255, 255, 0), #fff 72%); font: 700 13px/18px var(--gp-sans); color: var(--gp-gray); pointer-events: none; }
}
@media (max-width: 1000px) {
  .gp-rfp { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 28px; padding: 28px; }
  .gp-rfp__toc a, .gp-rfp__tab { font-size: 20px; line-height: 26px; padding: 12px 0; }
  .gp-rfp__part { padding: 36px 32px 32px; }
}
/* Phones: the titles become an accordion, each part under its title. */
@media (max-width: 760px) {
  .gp-rfp { display: block; padding: 6px 12px 12px; border-radius: 18px; }
  .gp-rfp.is-tabs .gp-rfp__toc { display: none; }
  .gp-rfp__toc { position: static; margin-bottom: 12px; }
  .gp-rfp__toc a { font-size: 20px; }
  .gp-rfp.is-tabs .gp-rfp__pages { display: block; }
  .gp-rfp__acc { display: block; position: relative; width: 100%; padding: 16px 34px 16px 4px; border: 0; border-bottom: 1px solid rgba(255, 255, 255, .55); background: none; color: #fff; font: 400 21px/28px var(--gp-serif); text-align: left; cursor: pointer; }
  .gp-rfp__acc::after { content: "+"; position: absolute; right: 6px; top: 13px; font: 400 26px/1 var(--gp-sans); }
  .gp-rfp__acc[aria-expanded="true"] { color: #f2ce5b; border-bottom-color: transparent; }
  .gp-rfp__acc[aria-expanded="true"]::after { content: "\2013"; }
  .gp-rfp__acc:last-of-type:not([aria-expanded="true"]) { border-bottom: 0; }
  .gp-rfp__part { margin: 0 0 12px; padding: 24px 18px 20px; }
  .gp-rfp__title { font-size: 26px; line-height: 32px; }
  .gp-rfp__body ol, .gp-rfp__body ul { padding-left: 20px; }
  .gp-rfp__body td { padding-right: 8px; }
  .gp-rfp__foot { flex-direction: column; }
}
/* Printing (or Save as PDF): the whole document, in order, without the site around it. */
@media print {
  .gp-rfp { display: block; padding: 0; background: none; border-radius: 0; }
  .gp-rfp__toc, .gp-rfp__acc, .gp-rfp__foot, .gp-doc-tools { display: none !important; }
  .gp-rfp__part, .gp-rfp__part[hidden] { display: block !important; height: auto !important; overflow: visible !important; padding: 0 0 24px; box-shadow: none; break-inside: auto; }
  .gp-rfp__pages::after { display: none !important; }
  .gp-rfp__body mark { background: none; padding: 0; }
  html.gp-print-doc .site-header, html.gp-print-doc .site-footer, html.gp-print-doc .gp-hero, html.gp-print-doc .gp-sec--hero-intro,
  html.gp-print-doc .gp-page > .gp-sec:not(.gp-sec--document), html.gp-print-doc .back-to-top, html.gp-print-doc #backToTop { display: none !important; }
}

/* Program numbers, live (pb_render_outcomes; Jeff 2026-10-05): four figures and how
   investment and follow-on funding added up, year by year. Plain numbers, no counting up. */
.gp-outcomes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0; }
.gp-outcome { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 26px 26px 24px; background: #fff; border: 1px solid var(--gp-line); border-top: 6px solid var(--gp-gold-deep); border-radius: 18px; }
.gp-outcome:nth-child(3), .gp-outcome:nth-child(4) { border-top-color: var(--gp-purple); }
.gp-outcome__value { order: -1; margin: 0; font: 400 52px/58px var(--gp-serif); color: var(--gp-navy); }
.gp-outcome__label { font: 600 15px/22px var(--gp-sans); color: var(--gp-slate); }
.gp-outcome__sub { margin: 0; font: 400 14px/20px var(--gp-sans); color: var(--gp-gray); }
.gp-outcomes__chart { margin: 24px 0 0; padding: 28px 32px 18px; background: #fff; border: 1px solid var(--gp-line); border-radius: 22px; }
.gp-outcomes__caption { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px 24px; margin-bottom: 12px; }
.gp-outcomes__title { font: 600 20px/28px var(--gp-serif); color: var(--gp-navy); }
.gp-outcomes__legend { display: flex; flex-wrap: wrap; gap: 8px 20px; font: 500 14px/20px var(--gp-sans); color: var(--gp-gray); }
.gp-outcomes__key::before { content: ""; display: inline-block; width: 22px; height: 4px; margin: 0 8px 4px 0; border-radius: 2px; vertical-align: middle; background: var(--gp-purple); }
.gp-outcomes__key--invested::before { background: var(--gp-gold-deep); }
.gp-outcomes__svg { display: block; width: 100%; height: auto; font-family: var(--gp-sans); overflow: hidden; }
.gp-outcomes__svg--narrow { display: none; }
.gp-outcomes__grid { stroke: var(--gp-line); stroke-width: 1; }
.gp-outcomes__tick, .gp-outcomes__axis { font-size: 14px; fill: var(--gp-gray); }
.gp-outcomes__area { fill: rgba(107, 47, 138, .08); }
.gp-outcomes__line { fill: none; stroke-width: 4; stroke-linejoin: round; stroke-linecap: round; }
.gp-outcomes__line--follow { stroke: var(--gp-purple); }
.gp-outcomes__line--invested { stroke: var(--gp-gold-deep); }
.gp-outcomes__dot { stroke-width: 3; fill: #fff; }
.gp-outcomes__dot--follow { stroke: var(--gp-purple); }
.gp-outcomes__dot--invested { stroke: var(--gp-gold-deep); }
.gp-outcomes__hit { fill: transparent; }
.gp-outcomes__guide { stroke: var(--gp-navy); stroke-width: 1; stroke-dasharray: 3 4; opacity: 0; }
.gp-outcomes__tip { opacity: 0; pointer-events: none; transition: opacity .12s ease; }
.gp-outcomes__tip rect { fill: var(--gp-navy); }
.gp-outcomes__tip text { font-size: 14px; fill: #fff; }
.gp-outcomes__tip .gp-outcomes__tip-title { font-weight: 700; fill: #f2ce5b; }
.gp-outcomes__year { outline: none; cursor: default; }
.gp-outcomes__year:hover .gp-outcomes__tip, .gp-outcomes__year:focus-visible .gp-outcomes__tip, .gp-outcomes__year:hover .gp-outcomes__guide, .gp-outcomes__year:focus-visible .gp-outcomes__guide { opacity: 1; }
.gp-outcomes__year:hover .gp-outcomes__dot, .gp-outcomes__year:focus-visible .gp-outcomes__dot { r: 7; }
.gp-outcomes__year:focus-visible .gp-outcomes__axis { font-weight: 700; fill: var(--gp-navy); }
.gp-outcomes__note { margin: 14px 0 0; font: 400 14px/22px var(--gp-sans); color: var(--gp-gray); }
@media (max-width: 1100px) { .gp-outcomes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) {
  .gp-outcomes { gap: 12px; }
  .gp-outcome { padding: 18px 16px 16px; border-radius: 14px; }
  .gp-outcome__value { font-size: 36px; line-height: 42px; }
  .gp-outcome__label { font-size: 14px; line-height: 20px; }
  .gp-outcomes__chart { padding: 18px 12px 10px; border-radius: 16px; }
  .gp-outcomes__svg--wide { display: none; }
  .gp-outcomes__svg--narrow { display: block; }
  .gp-outcomes__tick, .gp-outcomes__axis { font-size: 13px; }
  .gp-outcomes__tip text { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) { .gp-outcomes__tip { transition: none; } }
