/* Explicit uploaded Avenir Next faces for all three intended weights. */
@font-face {
  font-family: "Avenir Next";
  src: url("fonts/avenir-next-regular.otf") format("opentype"),
       local("AvenirNextW1G-Regular"), local("AvenirNext-Regular"), local("Avenir Next Regular");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Avenir Next";
  src: url("fonts/avenir-next-medium.otf") format("opentype"),
       local("AvenirNextW1G-Medium"), local("AvenirNext-Medium"), local("Avenir Next Medium");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "Avenir Next";
  src: url("fonts/avenir-next-demi.otf") format("opentype"),
       local("AvenirNextW1G-Demi"), local("AvenirNext-DemiBold"), local("Avenir Next Demi Bold");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
/* Final GIP brief: explicit refinements of the approved layout. */
:root {
  --navy: #07112A;
  --deep: #07112A;
  --gold: #C99731;
  --gold-muted: #E6D9A8;
  --paper: #EEE1CC;
  --pale: #EEE1CC;
  --red: #C8102E;
  --font-sans: "Avenir Next", Avenir, Arial, sans-serif;
  --cta-background: var(--navy);
  --cta-border: var(--navy);
}
* { font-family: var(--font-sans); }
html { scroll-padding-top: 0; }
body { font-size: 1rem; line-height: 1.6; }
h1 { font-size: 3rem; font-weight: 500; line-height: 1.15; }
h2 { font-size: 2rem; font-weight: 500; line-height: 1.2; }
h3 { font-size: 1.375rem; font-weight: 500; line-height: 1.3; }
.eyebrow { font-size: .75rem; font-weight: 500; letter-spacing: .08em; }
.risk, .micro, .evidence-note, .course-footer p, .client-disclaimer { font-size: .875rem; line-height: 1.55; }
:is(header, .hero, .introduction, .membership, .curriculum, .company-clients, .closing) {
  --cta-background: transparent;
  --cta-border: var(--paper);
}
:where(a:not(.brand):not(.media-proof-link):not(.video-card):not(.skip), button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 44px;
  padding: .7rem 1.15rem;
  border: 1px solid var(--cta-border);
  border-radius: 999px;
  background: var(--cta-background);
  color: var(--paper);
  font-size: .875rem;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  box-shadow: none;
  transform: none;
  cursor: pointer;
  transition: color 200ms ease, border-color 200ms ease;
}
:where(a:not(.brand):not(.media-proof-link):not(.video-card):not(.skip), button):is(:hover, :focus, :active, [aria-current="page"], [aria-pressed="true"], .is-selected) {
  background: var(--cta-background);
  color: var(--gold);
  border-color: var(--gold);
  box-shadow: none;
  transform: none;
}
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
[hidden] { display: none; }
header { background: var(--navy); gap: 22px; flex-wrap: nowrap; }
header .brand { display: flex; flex-direction: column; gap: 8px; width: 230px; line-height: 1; letter-spacing: 0; }
.header-brand-art {
  display: block;
  width: 100%;
  aspect-ratio: 2048 / 840;
  background: var(--gold);
  mask: url("gip-logo-gold-url.png") top center / 100% auto no-repeat;
  -webkit-mask: url("gip-logo-gold-url.png") top center / 100% auto no-repeat;
}
.header-founder { color: var(--paper); font-size: .8125rem; font-weight: 500; letter-spacing: .08em; line-height: 1.3; }
header nav { gap: 8px; padding: 0; width: auto; order: initial; flex-wrap: nowrap; }
header nav a { width: 90px; min-height: 44px; padding: .65rem .6rem; font-size: .875rem; border-color: transparent; }
.header-actions { gap: 8px; }
.header-actions a { min-width: 90px; min-height: 44px; padding: .65rem .6rem; font-size: .875rem; }
.menu-toggle { display: none; }
.hero .actions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; align-items: stretch; }
.hero-action { width: 100%; min-width: 0; min-height: 48px; padding: .7rem .4rem; }
.hero h1 { font-size: 3rem; }
.introduction { align-items: end; }
.intro-books, .intro-player { width: 100%; max-width: none; }
.custom-video { border: 0; }
.video-card { display: block; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 0; background: var(--navy); box-shadow: none; transform: none; }
.video-card:is(:hover,:focus,:active) { background: var(--navy); box-shadow: none; transform: none; }
.video-card:focus-visible { outline: 2px solid var(--gold); outline-offset: -3px; }
.video-card img { display: block; width: 100%; height: 100%; object-fit: contain; }
.card-play { position: absolute; right: 14px; bottom: 14px; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold); background: var(--navy); font-size: 24px; }
.gip-signature .signature-heading, .gip-signature .signature-name { font-family: var(--font-sans); }
.gip-signature .signature-heading { font-size: clamp(1.3rem, 2.5vw, 2rem); line-height: 1.2; }
.gip-signature .signature-name { font-size: clamp(1rem, 1.5vw, 1.375rem); line-height: 1.3; margin-top: 10px; }
.course-list summary { background: var(--paper); }
.curriculum { scroll-margin-top: 0; }
.course-list li a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  gap: 24px;
  min-height: 52px;
  padding: 16px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--paper);
  text-align: left;
  font-weight: 400;
}
.course-list li a:is(:hover, :focus, :active) { background: transparent; color: var(--gold); }
.course-list li a>span { min-width: 0; overflow-wrap: anywhere; }
.course-list small { min-width: 118px; flex-shrink: 0; color: var(--paper); font-size: .75rem; font-weight: 500; line-height: 1.55; }
.course-list a:is(:hover, :focus, :active) small { color: var(--gold); }
table a { display: inline; min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; text-decoration: underline; }
table a:is(:hover, :focus, :active) { background: transparent; color: var(--gold); }
.mentor-rail { min-width: 0; gap: 30px; }
.mentor-photo { width: 100%; border: 0; box-shadow: none; }
.mentor-photo::after { content: none; }
.mentor-photo img { object-position: center 35%; }
.watch-card { border: 0; padding: 0; background: transparent; }
.watch-card h3 { font-size: 1.375rem; }
.client-logo-crop::after {
  inset: 28.5% 4%;
  background:
    linear-gradient(90deg, transparent calc(25% - .5px), var(--gold) calc(25% - .5px), var(--gold) calc(25% + .5px), transparent calc(25% + .5px)),
    linear-gradient(90deg, transparent calc(50% - .5px), var(--gold) calc(50% - .5px), var(--gold) calc(50% + .5px), transparent calc(50% + .5px)),
    linear-gradient(90deg, transparent calc(75% - .5px), var(--gold) calc(75% - .5px), var(--gold) calc(75% + .5px), transparent calc(75% + .5px));
}
.social-presence { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 28px 60px; }
.social-presence>div { grid-column: 1; grid-row: 1 / 3; }
.social-photo { grid-column: 2; grid-row: 1; width: 100%; max-width: none; aspect-ratio: 4 / 3; margin: 0; border: 0; box-shadow: none; }
.social-photo::after { content: none; }
.social-photo img { object-position: center 32%; }
.social-links { grid-column: 2; grid-row: 2; width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.social-links a.social-channel { min-width: 0; min-height: 106px; width: 100%; padding: 10px 14px; background: transparent; color: var(--navy); border: 0; border-radius: 0; align-items: center; text-align: center; }
.social-links a.social-channel+a.social-channel { border-left: 2px solid rgba(200,16,46,.72); }
.social-links a.social-channel:is(:hover, :focus, :active) { background: transparent; color: var(--gold); }
.social-links a:is(:hover, :focus, :active) .social-description { color: var(--gold); border-bottom-color: var(--gold); }
.social-brand { gap: 7px; justify-content: center; }
.social-brand strong { font-size: 1rem; }
.social-brand img { height: 26px; }
.social-description { font-size: .875rem; }
.footer-campaign { width: min(100%, 350px); display: flex; flex-direction: column; align-items: center; gap: 22px; }
.campaign-brand { width: 100%; }
.campaign-brand img { width: 100%; height: auto; display: block; }
.campaign-button, .campaign-button:is(:hover, :focus, :active) { width: 100%; padding: 14px 20px; background: var(--gold); color: #000000; border: 1px solid var(--gold); box-shadow: none; transform: none; display: flex; flex-direction: column; gap: 0; }
.campaign-button span { font-size: 1rem; line-height: 1.5; }
.skip { display: inline-flex; min-height: 44px; align-items: center; color: var(--navy); }
@media(max-width: 1200px) {
  header { padding-left: 5%; padding-right: 5%; gap: 16px; }
  header .brand { width: 200px; }
  header nav a, .header-actions a { min-width: 0; width: 80px; }
  .social-presence { gap: 26px 36px; }
}
@media(max-width: 1050px) {
  header { flex-wrap: wrap; }
  .menu-toggle:not([hidden]) { display: inline-flex; margin-left: auto; min-width: 80px; }
  header nav, .header-actions { width: 100%; margin: 0; }
  header nav { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; }
  header nav a { width: 100%; }
  .header-actions { justify-content: flex-end; }
  .header-actions a { width: 100px; }
  header.menu-ready:not(.menu-open) nav, header.menu-ready:not(.menu-open) .header-actions { display: none; }
  .hero .actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width: 700px) {
  header { padding: 16px 6%; gap: 16px; }
  header .brand { width: 188px; }
  .header-founder { font-size: .75rem; }
  header nav { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .header-actions { justify-content: flex-start; }
  .hero h1 { font-size: 2.2rem; line-height: 1.15; }
  .section h2 { font-size: 2rem; }
  .hero-copy { padding-top: 32px; }
  .hero .actions { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .hero-action { font-size: .875rem; }
  .course-list { gap: 26px; }
  .course-list li a { display: grid; grid-template-columns: minmax(0,1fr) 104px; gap: 14px; padding: 18px 0; }
  .course-list small { min-width: 0; font-size: .75rem; }
  .mentor-photo { aspect-ratio: 9 / 16; }
  .mentor-photo img { object-position: center; }
  .social-presence { grid-template-columns: minmax(0,1fr); gap: 26px; }
  .social-presence>div, .social-photo, .social-links { grid-column: 1; grid-row: auto; }
  .social-photo { aspect-ratio: 3 / 4; width: 100%; justify-self: center; }
  .social-links a.social-channel { padding: 10px 8px; }
  .social-brand { flex-direction: column; gap: 8px; }
  .social-brand strong { font-size: .875rem; }
  .social-description { font-size: .75rem; }
  .footer-top { align-items: center; }
  .footer-campaign { width: min(100%,350px); }
}
@media(prefers-reduced-motion: reduce) { a, button { transition: none; } }

/* Site-wide weight hierarchy: regular prose, medium controls/headings,
   with demibold confined to small labels and semantic emphasis. */
*, *::before, *::after { font-synthesis: none; }
body, p, address, li, blockquote { font-weight: 400; }
h1, h2, h3, h4, h5, h6,
nav, button, input, select, textarea, summary, caption,
.gip-signature .signature-heading, .gip-signature .signature-name,
.written-reviews .review-person, .social-brand strong { font-weight: 500; }
.written-reviews blockquote, .endorsement-quotes blockquote>p { font-weight: 400; }
strong, b { font-weight: 500; }
.onboarding-steps strong { font-weight: 600; }
.eyebrow, .header-founder, .tag, .review-type, .course-list small { font-weight: 600; }
/* The nested semantic <strong> in social controls remains medium. */
.social-brand strong { font-weight: 500; }

/* One 2px size step for the copy covered by the September heading brief. */
/* The selected text now uses the supplied Demi face, the heaviest available
   Avenir Next file. Retain the original scope marker and avoid synthetic bold. */
.section-heading-regular, .hero p.intro {
  font-family: var(--font-sans);
  font-weight: 600;
}
.hero h1.section-heading-regular { font-size: 3.125rem; }
h2.section-heading-regular { font-size: 2.125rem; }
.hero p.intro { font-size: 1.125rem; }
@media (max-width: 700px) {
  .hero h1.section-heading-regular { font-size: clamp(2rem, 8.2vw, 2.325rem); }
}

/* September hero CTA brief. The new gold is confined to these two controls. */
.hero-copy > .eyebrow { text-transform: uppercase; }
.hero .actions { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; margin-bottom: 20px; }
:is(header, .hero) .book-call {
  width: auto;
  min-height: 48px;
  padding: .7rem 1.15rem;
  background: #D5B064;
  border-color: #D5B064;
  color: var(--navy);
  justify-content: center;
  font-size: .875rem;
  white-space: nowrap;
}
:is(header, .hero) .book-call:is(:hover, :focus, :active) {
  background: var(--paper);
  border-color: var(--paper);
  color: var(--navy);
}
.hero .hero-tour {
  width: auto;
  min-height: 44px;
  padding: .7rem 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--paper);
}
.hero-tour svg { flex: 0 0 auto; }
.hero-tour span { text-decoration: underline; text-underline-offset: 4px; }
.hero .hero-tour:is(:hover, :focus, :active) { background: transparent; color: var(--gold); }
.hero .reassurance { font-size: .75rem; line-height: 1.55; margin: 0 0 12px; }
.contact-panel .contact-email { margin: 0; font-size: .875rem; user-select: text; overflow-wrap: anywhere; }
@media (max-width: 700px) {
  .hero .actions { align-items: stretch; flex-direction: column; }
  .hero .book-call { width: 100%; }
  .hero .hero-tour { align-self: flex-start; }
}

/* Phase 2: audience proof. Preserve the original palette elsewhere. */
.hero-copy > .eyebrow { margin-bottom: 8px; }
.hero .hero-rating {
  display: flex;
  width: fit-content;
  max-width: 100%;
  min-height: 32px;
  gap: 8px;
  margin: 0 0 16px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #F7F4ED;
  font-size: .75rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .08em;
  text-align: left;
  text-transform: uppercase;
}
.hero-rating img { display: block; width: 16px; height: 16px; flex: 0 0 16px; }
.hero-rating span { text-decoration: underline; text-underline-offset: 3px; }
.hero .hero-rating:is(:hover, :focus, :active) { background: transparent; color: #D5B064; }
.numbers-band { background: #07112A; color: #F7F4ED; padding: 32px max(5%,calc((100vw - 1180px)/2)); }
.numbers-band-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); margin: 0; border-top: 1px solid rgba(247,244,237,.16); border-bottom: 1px solid rgba(247,244,237,.16); }
.numbers-band-grid > div { display: flex; flex-direction: column; min-width: 0; padding: 24px 20px; }
.numbers-band-grid > div:first-child { padding-left: 0; }
.numbers-band-grid > div + div { border-left: 1px solid rgba(247,244,237,.16); }
.numbers-band-grid dt { font-size: .75rem; font-weight: 600; line-height: 1.6; letter-spacing: .06em; text-transform: uppercase; }
.numbers-band .no-wrap { white-space: nowrap; }
.numbers-band-grid dd { order: -1; margin: 0 0 8px; color: #D5B064; font-size: 1.75rem; font-weight: 600; line-height: 1.2; }
.social-links.follower-tiles { gap: 12px; }
.follower-tiles a.social-channel { padding: 20px 12px; gap: 8px; background: #07112A; color: #F7F4ED; border: 1px solid #07112A; border-radius: 0; justify-content: flex-start; }
.follower-tiles .social-brand { flex-direction: row; }
.follower-tiles .social-brand strong { color: #F7F4ED; font-weight: 600; }
.follower-tiles .social-brand img { width: 32px; height: 32px; padding: 4px; background: #F7F4ED; border-radius: 4px; }
.follower-tiles .social-handle { font-size: .75rem; line-height: 1.5; overflow-wrap: anywhere; }
.follower-tiles .follower-count { color: #D5B064; font-size: 1.75rem; font-weight: 600; line-height: 1.2; margin: 8px 0; }
.follower-count small { display: block; margin-top: 5px; color: #F7F4ED; font-size: .75rem; font-weight: 400; }
.follower-tiles .social-description { color: #F7F4ED; border: 0; font-size: .875rem; line-height: 1.5; padding: 0; }
.follower-tiles a.social-channel:is(:hover, :focus, :active) { background: #07112A; color: #F7F4ED; outline: 2px solid #D5B064; outline-offset: 3px; }
.follower-tiles a.social-channel:is(:hover, :focus, :active) .social-description { color: #F7F4ED; }
@media (max-width: 900px) {
  .numbers-band-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .numbers-band-grid > div:nth-child(odd) { border-left: 0; padding-left: 0; }
  .numbers-band-grid > div:nth-child(n+3) { border-top: 1px solid rgba(247,244,237,.16); }
  .numbers-band-grid > div:last-child { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .numbers-band { padding: 24px 6%; }
  .numbers-band-grid > div { padding: 20px 16px; }
  .numbers-band-grid dd { font-size: 1.5rem; }
  .social-links.follower-tiles { grid-template-columns: 1fr; }
  .follower-tiles a.social-channel { padding: 24px; }
  .follower-tiles a.social-channel + a.social-channel { border-left: 1px solid #07112A; border-top: 2px solid #C8102E; }
}

/* Approved member quote strip, following the credential and numbers bands. */
.member-proof { padding: 28px max(5%,calc((100vw - 1180px)/2)) 34px; background: #07112A; color: #EEE1CC; }
.member-proof .proof-eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 13px; color: #D5B064; font-size: .75rem; line-height: 1.5; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.proof-eyebrow::before { content: ""; width: 3px; height: 17px; background: #C8102E; transform: skew(-18deg); flex: 0 0 3px; }
.member-proof .proof-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 28px; }
.member-proof h2 { margin: 0; font-size: 2rem; font-weight: 500; line-height: 1.2; letter-spacing: -.025em; }
.member-proof .proof-excerpt-note { margin: 0; max-width: 240px; color: #C1C0BE; font-size: .8125rem; line-height: 1.55; }
.member-proof .proof-quotes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 32px 0 30px; }
.member-proof .proof-quote { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 0 34px; margin: 0; }
.member-proof .proof-quote:first-child { padding-left: 0; }
.member-proof .proof-quote:last-child { padding-right: 0; }
.proof-quote + .proof-quote::before { content: ""; position: absolute; top: 19px; left: 0; width: 1px; height: 136px; background: #C8102E; }
.member-proof .proof-theme { margin: 0 0 16px; color: #D5B064; font-size: .75rem; font-weight: 600; line-height: 1.5; letter-spacing: .13em; text-transform: uppercase; }
.member-proof blockquote { flex: 1; margin: 0; min-height: 110px; max-width: 335px; font-size: 1.5625rem; line-height: 1.35; letter-spacing: -.015em; font-weight: 500; }
.member-proof blockquote::before { content: "“"; color: #D5B064; }
.member-proof blockquote::after { content: "”"; color: #D5B064; }
.member-proof blockquote em { color: #D5B064; font-style: normal; font-weight: inherit; }
.member-proof figcaption { display: flex; align-items: center; gap: 12px; margin-top: 24px; }
.proof-author-rule { width: 22px; height: 1px; flex: 0 0 22px; background: #D5B064; opacity: .7; }
.proof-author { display: block; font-size: .875rem; font-weight: 600; line-height: 1.6; }
.proof-member { display: block; margin-top: 3px; color: #B7BBC5; font-size: .75rem; line-height: 1.6; }
.member-proof .proof-bottom { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; padding-top: 24px; border-top: 1px solid #344056; }
.member-proof .proof-disclaimer { margin: 0; max-width: 700px; color: #B7BBC5; font-size: .75rem; line-height: 1.65; }
.proof-sources { text-align: right; }
.member-proof a.proof-source-link { display: inline-flex; width: auto; min-height: 44px; padding: 11px 22px; border: 1px solid #D5B064; border-radius: 999px; background: #07112A; color: #EEE1CC; font-size: .875rem; font-weight: 500; line-height: 1.5; text-decoration: none; }
.member-proof a.proof-source-link:is(:hover, :focus-visible) { background: #D5B064; color: #07112A; }
.member-proof a.proof-source-url { display: block; width: fit-content; min-height: 0; margin: 8px 0 0 auto; padding: 0; border: 0; border-radius: 0; background: transparent; color: #B7BBC5; font-size: .75rem; font-weight: 400; line-height: 1.6; letter-spacing: .01em; text-decoration: underline; text-underline-offset: 3px; }
.member-proof a.proof-source-url:is(:hover, :focus-visible) { background: transparent; color: #D5B064; }
.member-proof a:focus-visible { outline: 2px solid #EEE1CC; outline-offset: 5px; }
@media (max-width: 720px) {
  .member-proof { padding: 28px 6% 30px; }
  .member-proof .proof-heading { display: block; }
  .member-proof h2 { max-width: 290px; font-size: 1.75rem; }
  .member-proof .proof-excerpt-note { margin-top: 12px; max-width: none; }
  .member-proof .proof-quotes { grid-template-columns: 1fr; margin: 28px 0 24px; gap: 25px; }
  .member-proof .proof-quote, .member-proof .proof-quote:first-child, .member-proof .proof-quote:last-child { padding: 0 0 0 18px; }
  .proof-quote::before, .proof-quote + .proof-quote::before { content: ""; position: absolute; left: 0; top: 4px; width: 1px; height: 90px; background: #C8102E; }
  .member-proof .proof-theme { margin-bottom: 9px; }
  .member-proof blockquote { min-height: 0; max-width: 330px; font-size: 1.5rem; }
  .member-proof figcaption { margin-top: 14px; }
  .proof-member { display: none; }
  .member-proof .proof-bottom { grid-template-columns: 1fr; gap: 21px; padding-top: 22px; }
  .proof-sources { grid-row: 1; text-align: left; }
  .member-proof a.proof-source-link { padding: 12px 24px; }
  .member-proof a.proof-source-url { margin-left: 0; }
}

/* Approved eighth credential: original Bar Council seal and wordmark. */
.credential-bar-lockup { display: flex; align-items: center; gap: 8px; width: 100%; max-width: 190px; height: 46px; mix-blend-mode: multiply; filter: grayscale(1) contrast(2) url(#bar-council-navy); }
.bar-seal, .bar-wordmark { display: block; background-image: url("credential-bar-council.webp"); background-repeat: no-repeat; flex-shrink: 0; }
.bar-seal { width: 42px; height: 42px; background-size: 55.1012px 55.1012px; background-position: -6.653px -3.8395px; }
.bar-wordmark { width: 140px; height: 15.4844px; background-size: 200.7628px 200.7628px; background-position: -30.5416px -172.7841px; }
@media (max-width: 1200px) {
  .credential-bar-lockup { gap: 6px; }
  .bar-wordmark { transform-origin: left center; transform: scale(.9); margin-right: -14px; }
}

/* Programme process: research evidence, educational support and cost context. */
.membership .membership-evidence { margin-top: 0; }
.programme-journey-heading { display: flex; align-items: end; justify-content: space-between; gap: 52px; margin: 40px 0 34px; }
.programme-journey-heading h2 { max-width: 740px; margin: 0; }
.programme-journey-heading > p { max-width: 360px; margin: 0; color: rgba(238,225,204,.78); font-size: .9375rem; line-height: 1.6; }
.programme-visual-process { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.programme-visual-process > article { display: flex; min-width: 0; flex-direction: column; padding: 0 30px; }
.programme-visual-process > article:first-child { padding-left: 0; }
.programme-visual-process > article:last-child { padding-right: 0; }
.programme-visual-process > article + article { border-left: 1px solid var(--line-on-blue); }
.programme-step-label { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; color: var(--gold); font-size: .75rem; font-weight: 500; letter-spacing: .08em; line-height: 1.35; }
.programme-step-label::after { content: ""; height: 1px; flex: 1; margin-left: 4px; background: var(--line-on-blue); }
.programme-step-label .number { font-size: 1.35rem; line-height: 1; }
.programme-visual-process h3 { margin: 0 0 17px; color: var(--paper); font-size: 1.35rem; }
.membership a.programme-report-card { display: block; width: 100%; max-width: none; overflow: hidden; padding: 0; border: 1px solid rgba(238,225,204,.28); border-radius: 4px; background: #fff; color: var(--navy); box-shadow: none; text-align: left; transition: border-color .18s, transform .18s; }
.membership a.programme-report-card:is(:hover,:focus-visible) { border-color: var(--gold); background: #fff; color: var(--navy); box-shadow: none; transform: translateY(-3px); }
.programme-report-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 39px; padding: 9px 12px; border-bottom: 1px solid #dedad2; background: #f7f4ed; color: var(--navy); font-size: .6875rem; font-weight: 600; line-height: 1.35; }
.programme-report-bar span:first-child { display: flex; align-items: center; gap: 7px; }
.programme-report-bar span:first-child::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); }
.programme-report-bar span:last-child { font-size: .9375rem; }
.programme-report-frame { display: flex; align-items: center; justify-content: center; height: 236px; overflow: hidden; background: #fff; }
.programme-report-frame > img { display: block; width: 100%; height: 100%; object-fit: contain; }
.programme-report-sheet .programme-report-frame { align-items: stretch; justify-content: flex-start; }
.programme-report-sheet .programme-report-frame > img { width: auto; max-width: none; height: 100%; object-fit: initial; }
.programme-report-scale { display: flex; flex: 1; min-width: 0; flex-direction: column; justify-content: center; padding: 16px 15px; background: linear-gradient(90deg,#fff 0%,#f7f4ed 100%); color: var(--navy); }
.programme-report-scale strong { color: var(--gold); font-size: 2rem; font-weight: 600; line-height: 1; }
.programme-report-scale span { max-width: 108px; margin-top: 5px; font-size: .6875rem; line-height: 1.35; }
.programme-report-scale small { margin-top: 12px; color: #4b5261; font-size: .5625rem; letter-spacing: .04em; line-height: 1.45; text-transform: uppercase; }
.programme-report-caption { display: flex; justify-content: space-between; gap: 8px; margin: 8px 0 11px; color: rgba(238,225,204,.66); font-size: .625rem; line-height: 1.35; }
.programme-report-caption span:last-child { color: var(--gold); white-space: nowrap; }
.programme-coverage { display: flex; flex-wrap: wrap; gap: 5px; margin: 0 0 10px; }
.programme-coverage span { padding: 3px 7px; border: 1px solid rgba(238,225,204,.25); border-radius: 999px; color: var(--paper); font-size: .5625rem; letter-spacing: .06em; line-height: 1.15; text-transform: uppercase; }
.programme-visual-process > article > p { min-height: 79px; margin: 0 0 16px; color: rgba(238,225,204,.78); font-size: .9375rem; line-height: 1.6; }
.programme-visual-process .tag { margin-top: auto; color: var(--paper); font-size: .625rem; }
.programme-support { margin-top: 36px; padding-top: 29px; border-top: 1px solid var(--line-on-blue); }
.programme-support-head { display: flex; align-items: end; justify-content: space-between; gap: 48px; margin-bottom: 24px; }
.programme-support-head h2 { margin: 0; font-size: 1.7rem; }
.programme-support-head > p { max-width: 445px; margin: 0; color: rgba(238,225,204,.72); font-size: .9375rem; line-height: 1.55; }
.programme-benefits { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--line-on-blue); border-bottom: 1px solid var(--line-on-blue); }
.programme-benefits article { display: grid; grid-template-columns: 21px minmax(0,1fr); gap: 0 10px; min-width: 0; padding: 17px 21px; }
.programme-benefits article:nth-child(3n+1) { padding-left: 0; }
.programme-benefits article + article { border-left: 1px solid var(--line-on-blue); }
.programme-benefits article:nth-child(3n+1) { border-left: 0; }
.programme-benefits article:nth-child(n+4) { border-top: 1px solid var(--line-on-blue); }
.programme-benefits article > span { display: block; grid-row: 1 / span 2; width: 17px; height: 17px; margin-top: 2px; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold); font-size: .6875rem; line-height: 15px; text-align: center; }
.programme-benefits h3 { margin: 0 0 4px; color: var(--paper); font-size: .875rem; line-height: 1.35; }
.programme-benefits p { margin: 0; color: rgba(238,225,204,.68); font-size: .75rem; line-height: 1.45; }
.programme-support-note { margin: 12px 0 0; color: rgba(238,225,204,.62); font-size: .6875rem; line-height: 1.5; }
.programme-calculator { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(220px,.75fr); align-items: center; gap: 35px; margin-top: 25px; padding: 24px 27px; border: 1px solid rgba(213,176,100,.46); border-radius: 5px; background: linear-gradient(110deg,rgba(213,176,100,.12),rgba(213,176,100,.025)); }
.programme-calculator .eyebrow { margin-bottom: 8px; }
.programme-calculator h2 { margin: 0 0 8px; font-size: 1.55rem; }
.programme-calculator p:not(.eyebrow) { max-width: 630px; margin: 0; color: rgba(238,225,204,.76); font-size: .875rem; line-height: 1.55; }
.programme-calculator small { display: block; margin-top: 9px; color: rgba(238,225,204,.62); font-size: .625rem; line-height: 1.45; }
.programme-calculator-action { display: flex; align-items: flex-end; flex-direction: column; gap: 12px; }
.programme-calculator-action > strong { color: var(--paper); font-size: .875rem; font-weight: 500; }
.membership a.programme-calculator-link { display: inline-flex; width: auto; min-height: 43px; padding: 10px 17px; border: 1px solid #D5B064; border-radius: 999px; background: #D5B064; color: var(--navy); box-shadow: none; font-size: .8125rem; font-weight: 600; line-height: 1.35; text-align: center; }
.membership a.programme-calculator-link:is(:hover,:focus-visible) { border-color: var(--paper); background: var(--paper); color: var(--navy); box-shadow: none; }
.programme-objections { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line-on-blue); }
.programme-objections-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 10px; }
.programme-objections-heading .eyebrow { margin: 0 0 7px; }
.programme-objections-heading h2 { margin: 0; color: var(--paper); font-size: 1.25rem; }
.programme-objections-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--line-on-blue); border-bottom: 1px solid var(--line-on-blue); }
.programme-objections-list details { min-width: 0; padding: 15px 19px; border-left: 1px solid var(--line-on-blue); }
.programme-objections-list details:first-child { padding-left: 0; border-left: 0; }
.programme-objections-list summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; cursor: pointer; color: var(--paper); font-size: .875rem; font-weight: 600; line-height: 1.35; list-style: none; }
.programme-objections-list summary::-webkit-details-marker { display: none; }
.programme-objections-list summary::after { content: '+'; flex: 0 0 auto; color: var(--gold); font-size: 1.25rem; font-weight: 400; line-height: 1; }
.programme-objections-list details[open] summary::after { content: '−'; }
.programme-objections-list p { margin: 12px 0 0; color: rgba(238,225,204,.72); font-size: .75rem; line-height: 1.55; }
.programme-insights { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-top: 24px; padding: 22px 0 0; border-top: 1px solid var(--line-on-blue); }
.programme-insights .eyebrow { margin: 0 0 7px; }
.programme-insights h2 { margin: 0 0 8px; color: var(--paper); font-size: 1.25rem; }
.programme-insights p:not(.eyebrow) { max-width: 620px; margin: 0; color: rgba(238,225,204,.72); font-size: .8125rem; line-height: 1.55; }
.membership .programme-insights > a { flex: 0 0 auto; min-height: 43px; padding: 10px 17px; border: 1px solid var(--gold); border-radius: 999px; color: var(--paper); font-size: .8125rem; font-weight: 600; line-height: 1.35; }
.membership .programme-insights > a:is(:hover,:focus-visible) { border-color: var(--paper); background: var(--paper); color: var(--navy); }
@media (max-width: 1000px) {
  .programme-journey-heading,.programme-support-head { display: block; }
  .programme-journey-heading > p,.programme-support-head > p { margin-top: 13px; max-width: 620px; }
  .programme-visual-process > article { padding: 0 18px; }
  .programme-report-frame { height: 184px; }
  .programme-report-scale { padding: 12px 10px; }
  .programme-report-scale strong { font-size: 1.6rem; }
  .programme-report-scale span { font-size: .625rem; }
  .programme-report-scale small { margin-top: 8px; font-size: .5rem; }
  .programme-visual-process > article > p { min-height: 112px; font-size: .8125rem; }
  .programme-benefits { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .programme-benefits article:nth-child(2n+1) { padding-left: 0; border-left: 0; }
  .programme-benefits article:nth-child(3) { border-top: 1px solid var(--line-on-blue); }
  .programme-calculator { grid-template-columns: 1fr; gap: 18px; }
  .programme-calculator-action { align-items: flex-start; }
  .programme-objections-list { grid-template-columns: 1fr; }
  .programme-objections-list details,.programme-objections-list details:first-child { padding: 15px 0; border-left: 0; }
  .programme-objections-list details + details { border-top: 1px solid var(--line-on-blue); }
  .programme-insights { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 700px) {
  .programme-journey-heading { margin: 30px 0 28px; }
  .programme-journey-heading h2 { font-size: 1.875rem; }
  .programme-visual-process { grid-template-columns: 1fr; }
  .programme-visual-process > article,.programme-visual-process > article:first-child,.programme-visual-process > article:last-child { padding: 0; }
  .programme-visual-process > article + article { margin-top: 27px; padding-top: 26px; border-top: 1px solid var(--line-on-blue); border-left: 0; }
  .programme-visual-process h3 { font-size: 1.35rem; }
  .programme-report-frame { height: 205px; }
  .programme-report-caption { margin-bottom: 12px; font-size: .625rem; }
  .programme-visual-process > article > p { min-height: 0; margin-bottom: 14px; font-size: .9375rem; }
  .programme-support { margin-top: 30px; padding-top: 26px; }
  .programme-support-head h2 { font-size: 1.5rem; }
  .programme-benefits { grid-template-columns: 1fr; }
  .programme-benefits article,.programme-benefits article:nth-child(3n+1),.programme-benefits article:nth-child(2n+1) { padding: 15px 0; border-left: 0; }
  .programme-benefits article + article { border-top: 1px solid var(--line-on-blue); }
  .programme-benefits h3 { font-size: .875rem; }
  .programme-calculator { margin-top: 23px; padding: 21px 18px; }
  .programme-calculator h2 { font-size: 1.45rem; }
  .programme-calculator-action { width: 100%; }
  .membership a.programme-calculator-link { width: 100%; }
  .membership .programme-insights > a { width: 100%; text-align: center; }
}
