/* Shared refinements to the restored Chesterton Hills design. */
/* Clear line endings without authored breaks or shortened approved copy. */
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.cta p, .join-in > p, .media p { text-wrap: balance; }

/* Selected appearances stack on mobile; desktop.css provides four upright cards. */
.selected .app-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
.selected .app {
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.035);
  transition: border-color .25s, box-shadow .25s;
}
.selected .app::before {
  content: ''; position: absolute; top: -1px; left: 32px;
  width: 64px; height: 2px; background: var(--gold);
  transition: width .3s var(--ease); pointer-events: none;
}
.selected .app::after { display: none; }
.selected .app:hover, .selected .app:focus-within {
  transform: none; background: rgba(255,255,255,.035);
  border-color: rgba(175,154,111,.65);
  box-shadow: inset 3px 0 0 var(--gold);
}
.selected .app:hover::before, .selected .app:focus-within::before { width: 104px; }
.selected .app h3::after { display: none; }
.selected .app-venue { margin-bottom: 10px; }
.app-video-link { color: inherit; text-decoration: none; text-underline-offset: 7px; }
.app-video-link:hover, .app-video-link:focus-visible { text-decoration: underline; text-decoration-color: var(--gold-lt); }
.app-play-icon { display: inline-block; width: 32px; height: 24px; vertical-align: middle; margin-left: 14px; color: var(--gold-lt); }

/* Fine framing on photographs and a second, quiet cue on interactive panels. */
.imgband::before {
  content: ''; position: absolute; inset: 22px clamp(24px,3vw,56px);
  border-block: 1px solid rgba(255,255,255,.26); z-index: 1; pointer-events: none;
}
.sq::before {
  content: ''; position: absolute; top: -1px; left: 30px; height: 2px; width: 56px;
  background: var(--gold); transition: width .3s var(--ease); pointer-events: none;
}
.sq:hover::before, .sq:focus-visible::before { width: calc(100% - 60px); }
.sq:hover .sq-more, .sq:focus-visible .sq-more { color: var(--navy); }
.nextp-in { position: relative; padding-inline: 24px; }
.nextp-in::after {
  content: ''; position: absolute; left: 0; top: 22px; bottom: 22px; width: 2px;
  background: var(--gold); transform: scaleY(0); transform-origin: top;
  transition: transform .3s var(--ease); pointer-events: none;
}
.nextp-in:hover::after, .nextp-in:focus-visible::after { transform: scaleY(1); }
.nextp-in:hover .nextp-name, .nextp-in:focus-visible .nextp-name { text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 7px; }
.engagement-model { transition: border-color .25s, box-shadow .25s; }
.engagement-model:hover { border-color: rgba(175,154,111,.6); box-shadow: 0 12px 28px -24px rgba(15,46,77,.3); }
@media (prefers-reduced-motion: reduce) {
  .selected .app, .selected .app::before, .sq::before, .nextp-in::after, .engagement-model { transition: none; }
}
.mobile-menu-toggle { display: none; }
/* Speaking video links are genuine links; the icon is decorative. */
.rec-video-link { color: inherit; text-decoration: none; text-underline-offset: 6px; }
.rec-play-icon { display: inline-block; width: 32px; height: 24px; margin-left: 12px; vertical-align: middle; color: var(--navy); transition: color .2s; }
.rec-video-link:hover, .rec-video-link:focus-visible { text-decoration: underline; text-decoration-color: var(--gold); }
.rec-video-link:hover .rec-play-icon, .rec-video-link:focus-visible .rec-play-icon { color: var(--gold-dk); }
.nav-right { gap: clamp(14px,1.7vw,24px); }
.nav-links > a:not(.nav-cta), .nav-drop > a { white-space: nowrap; }
.foot-insights { display: block; margin-top: 26px; }
@media (min-width: 821px) and (max-width: 1120px) {
  .nav-in { padding-inline: 24px; gap: 20px; }
  .nav-brand-text { font-size: 11px; letter-spacing: .16em; }
  .nav-logo { height: 52px; }
  .nav-right { gap: 12px; }
  .nav-links > a:not(.nav-cta), .nav-drop > a { font-size: 11px; letter-spacing: .08em; }
  .nav-cta { font-size: 10px; padding-inline: 14px; letter-spacing: .08em; }
}
#nav { border-bottom: 1px solid rgba(200,180,138,.26); }
.nav-links > a:not(.nav-cta):hover,
.nav-drop:hover > a { transform: none; }
.nav-menu { border: 1px solid rgba(175,154,111,.22); border-top: 2px solid var(--gold); }
.nav-links > .nav-drop:first-of-type .nav-menu { min-width: 268px; }
.nav-menu a { font-size: 12.5px; white-space: nowrap; }
.btn, .nav-cta { transform: none !important; }
.btn, .nav-cta, .role-btn { min-height: 44px; }
a:focus-visible, button:focus-visible, [role="button"]:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 5px;
}
.sq, .role {
  border: 1px solid rgba(15,46,77,.1);
  box-shadow: 0 8px 28px rgba(15,46,77,.07);
  transition: transform .3s var(--ease), border-color .3s, box-shadow .3s;
}
.sq:hover, .role:hover {
  transform: translateY(-4px);
  border-color: rgba(175,154,111,.72);
  box-shadow: 0 18px 42px -12px rgba(15,46,77,.2);
}
.sq::after, .prac-panel::after, .role::after { background: none !important; opacity: 0 !important; }
.sq:focus-visible, .role:focus-within { border-color: var(--gold); box-shadow: 0 18px 42px -12px rgba(15,46,77,.16); }
.sq .tick::before, .sq .tick::after { transition: width .3s, height .3s; }
.sq:hover .tick::before, .sq:hover .tick::after { width: 28px; height: 28px; }
.sq-more { transition: gap .3s, color .3s, transform .3s; }
.sq:hover .sq-more { transform: translateX(3px); }
.sq-teaser { font-size: 16px; line-height: 1.8; }
.gm-body p, .gm-body li,
.lgl-body p, .lgl-body li { font-size: 16px; line-height: 1.85; }
.svc-legal, .prac-legal, .ptn-note[data-disclaimer], .faq-note {
  font-size: 15px;
  line-height: 1.85;
  color: var(--body);
  padding: 26px 30px;
  border-left: 2px solid var(--gold);
}
.faq-note p + p { margin-top: 14px; }
.foot-legal {
  display: block;
  font-size: 14.5px;
  line-height: 1.85;
  color: rgba(255,255,255,.85);
  align-items: flex-start;
}
.foot-legal-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 28px; }
.foot-legal-copy { max-width: none; width: 100%; margin-top: 20px; }
.foot-legal-head .foot-legal-links { margin-top: 0; margin-left: auto; padding-top: 0; }
.foot-legal-copy p + p { margin-top: 14px; }
.foot-legal-links { padding-top: 5px; }
.foot-legal-links button { font-size: 12.5px; color: rgba(255,255,255,.85); }
footer { border-top-color: rgba(200,180,138,.3); padding-top: calc(clamp(56px,7vw,84px) + 8px); padding-bottom: 24px; }
.foot-top { padding-bottom: clamp(28px,3.3vw,40px); margin-bottom: 0; border-bottom: 1px solid rgba(175,154,111,.25); }
.foot-top a:hover, .foot-top a:focus-visible { color: var(--gold-lt); }
.svc-hero-body p { font-size: 17px; line-height: 1.85; }
.offer-head::after {
  content: '';
  display: block;
  width: 76px;
  height: 1px;
  margin-top: 26px;
  background: var(--gold);
}
.readiness-value { border-top: 2px solid var(--gold); }
.readiness-value .svc-note-lbl { letter-spacing: .17em; margin-bottom: 24px; }
.readiness-value-copy p { font-size: 17px; line-height: 1.85; }
.readiness-value-copy p + p { margin-top: 22px; padding-top: 22px; border-top: 1px solid rgba(175,154,111,.3); }

/* Plain engagement terms, with all three options visible. */
.engagement-models {
  background: var(--white);
  border-top: 1px solid rgba(15,46,77,.16);
  padding: clamp(62px,7vw,96px) 0;
}
.engagement-head { margin-bottom: 38px; }
.engagement-head h2 {
  font-family: var(--serif);
  font-size: clamp(36px,4vw,54px);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -.014em;
  color: var(--navy);
  margin-bottom: 22px;
}
.engagement-head p { font-size: 18px; line-height: 1.85; color: var(--body); max-width: 75ch; }
.engagement-head .capital-engagement-summary { max-width: none; }
.capital-engagement-options { white-space: nowrap; }
.engagement-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 26px; }
.engagement-model {
  display: flex;
  flex-direction: column;
  padding: clamp(28px,3vw,40px);
  background: var(--white);
  border: 1px solid rgba(15,46,77,.13);
  border-top: 2px solid var(--navy);
  box-shadow: none;
}
.engagement-model h3 { font-family: var(--serif); font-weight: 500; font-size: clamp(28px,2.4vw,34px); line-height: 1.15; color: var(--navy); margin-bottom: 24px; }
.engagement-model h3::after { content: ''; display: block; height: 1px; width: 36px; background: var(--gold); margin-top: 20px; }
.engagement-model p, .engagement-model li { font-size: 16.5px; line-height: 1.85; color: var(--body); }
.engagement-model p + p { margin-top: 18px; }
.engagement-model ul { padding-left: 19px; margin: 20px 0; }
.engagement-model li + li { margin-top: 10px; }
.engagement-model [data-service-boundary] { padding-top: 20px; border-top: 1px solid rgba(175,154,111,.3); }
.engagement-boundary { margin-top: 30px; padding: 24px 28px; background: var(--white); border: 1px solid rgba(15,46,77,.13); border-left: 2px solid var(--gold); }
.engagement-boundary p { color: var(--body); font-size: 15px; line-height: 1.85; }

/* One consistent narrative for the firm's core growth work. */
.growth-intro { max-width: 92ch; padding-top: 34px; margin-top: 32px; border-top: 1px solid rgba(15,46,77,.15); }
.growth-intro p, .growth-intro p:first-child { font-size: 18px; line-height: 1.85; color: var(--body); }
.growth-intro p + p { margin-top: 20px; }
.nextp-stack { display: grid; gap: 44px; }
.nextp-stack .nextp-in { padding-block: 38px; }
.nextp-stack .nextp-grid > div:first-child { transform: none; }
.nextp-in { transition: border-color .3s; }
.nextp-in:hover { border-color: var(--gold); }

/* Homepage: welcome, introduction, experience, and paths into the firm. */
.home-welcome .hero {
  min-height: clamp(620px,84svh,880px);
  padding: 160px 0 clamp(54px,7vh,88px);
}
.home-welcome .hero-in { padding-inline: clamp(24px,5vw,64px); }
.home-welcome .hero-eyeline { margin-bottom: 26px; letter-spacing: .24em; }
.home-welcome .hero-h1 {
  font-size: clamp(46px,5.8vw,88px);
  max-width: 24ch;
  margin-bottom: 26px;
}
.home-welcome .hero-welcome {
  max-width: 61ch;
  font-size: clamp(18px,1.4vw,21px);
  line-height: 1.75;
  color: rgba(255,255,255,.94);
}
.home-welcome .hero-actions {
  display: flex;
  align-items: center;
  gap: 32px;
  flex-wrap: wrap;
  margin-top: 32px;
}
.home-welcome .hero-actions .btn {
  color: var(--navy);
  background: var(--white);
  padding: 17px 26px;
  font-size: 12px;
  letter-spacing: .12em;
}
.home-welcome .hero-actions .btn:hover { background: var(--cream); }
.home-welcome .hero-link {
  color: var(--white);
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  padding-block: 10px;
  border-bottom: 1px solid var(--gold-lt);
  transition: border-color .25s;
}
.home-welcome .hero-link:hover { border-bottom-color: var(--white); }
.home-welcome .model { padding: clamp(54px,6vw,82px) 0; }
.home-welcome .model-in {
  display: block;
  text-align: center;
  border-top: 0;
  padding-block: 30px 8px;
}
.home-welcome .model h2 { max-width: none; margin: 0 auto 26px; font-size: clamp(36px,4vw,54px); line-height: 1.08; }
.home-welcome .welcome-narrative { position: relative; max-width: 92ch; margin-inline: auto; }
.home-welcome .welcome-narrative p { font-size: 18px; line-height: 1.85; color: var(--body); }
.home-welcome .welcome-narrative p + p { margin-top: 20px; }
.home-welcome .model-mark { opacity: .035; }
.home-welcome .firm-link, .home-welcome .path-link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 24px;
  color: var(--navy);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
  text-decoration: none;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--gold);
}
.home-welcome .firm-link::after, .home-welcome .path-link::after {
  content: '\2192';
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
  transition: transform .25s;
}
.home-welcome .firm-link:hover::after,
.home-welcome .path-link:hover::after { transform: translateX(4px); }
.home-welcome .proof-head, .home-welcome .proof-in {
  padding-inline: clamp(24px,5vw,64px);
}
.home-welcome .proof-head h2 {
  white-space: normal;
  font-size: clamp(28px,2.5vw,36px);
  max-width: none;
}
.keep-together { white-space: nowrap; }
.home-welcome .proof-in { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 32px; }
.home-welcome .proof-num { font-size: clamp(34px,3.7vw,52px); }
.home-welcome .proof-lbl { font-size: 12px; letter-spacing: .09em; }
.home-welcome .practice { padding: clamp(60px,6.5vw,92px) 0; }
.home-welcome .firm-work {
  padding-block: 16px 0;
  text-align: center;
}
.home-welcome .firm-work-head {
  display: block;
}
.home-welcome .firm-work-copy { margin-top: 24px; }
.home-welcome .firm-work .kicker { margin-bottom: 22px; }
.home-welcome .firm-work h2 {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(36px,4vw,54px);
  line-height: 1.08;
  letter-spacing: -.014em;
  color: var(--navy);
}
.home-welcome .firm-work p { font-size: 18px; color: var(--body); line-height: 1.85; max-width: 82ch; margin-inline: auto; }
.home-welcome .firm-work p + p { margin-top: 18px; }
.home-welcome .service-invitations { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; margin-top: 36px; border-top: 1px solid rgba(175,154,111,.5); }
.home-welcome .service-invitations a {
  position: relative;
  display: flex;
  align-items: center;
  gap: 20px;
  justify-content: space-between;
  min-height: 48px;
  padding: 22px 26px;
  border-bottom: 1px solid rgba(15,46,77,.25);
  font-family: var(--serif);
  font-size: clamp(23px,2.3vw,30px);
  font-weight: 500;
  text-decoration: none;
  color: var(--navy);
  transition: border-color .3s;
}
.home-welcome .service-invitations a::before { content: ''; position: absolute; bottom: -1px; left: 0; right: 0; height: 2px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.home-welcome .service-invitations a:hover::before, .home-welcome .service-invitations a:focus-visible::before { transform: scaleX(1); }
.home-welcome .service-invitations a span { font-family: var(--sans); font-size: 24px; font-weight: 400; color: var(--gold-dk); transition: transform .3s; }
.home-welcome .service-invitations a:hover span { transform: translateX(5px); }
.home-welcome .prac-legal {
  margin-top: 30px;
  padding: 24px 28px;
  color: var(--body);
  background: rgba(175,154,111,.09);
  border-left: 2px solid var(--gold);
}
.home-welcome .cta p { font-size: 18px; max-width: 62ch; }

/* Finishing details: measured rules and clear, steady interactive feedback. */
.nav-monogram { display: grid; flex: none; }
.nav-monogram .nav-logo, .nav-monogram .nav-logo-fb { grid-area: 1 / 1; }
.nav-brand .nav-logo { transition: opacity .3s; }
.nav-brand:hover .nav-logo { transform: none; }
.nav-brand-text, .nav-logo-fb { transition: color .3s; }
.nav-brand:hover .nav-brand-text, .nav-brand:focus-visible .nav-brand-text,
.nav-brand:hover .nav-logo-fb, .nav-brand:focus-visible .nav-logo-fb { color: var(--gold); }
@supports (mask-image: url('./logo-white.webp')) {
  .nav-monogram::after {
    content: '';
    grid-area: 1 / 1;
    width: 100%;
    height: 100%;
    background: var(--gold);
    mask: url('./logo-white.webp') center / 100% 100% no-repeat;
    opacity: 0;
    transition: opacity .3s;
    pointer-events: none;
  }
  .nav-brand:hover .nav-monogram::after,
  .nav-brand:focus-visible .nav-monogram::after { opacity: 1; }
  .nav-brand:hover .nav-logo, .nav-brand:focus-visible .nav-logo { opacity: 0; }
}
.partner-intro { max-width: none; }
.partner-intro p { max-width: 88ch; font-size: 18px; color: var(--body); }
.partner-section {
  position: relative;
  display: block;
  padding-block: clamp(38px,4.5vw,64px);
  border-top: 1px solid rgba(15,46,77,.18);
}
.partner-section::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: 56px;
  height: 1px;
  background: var(--gold);
  pointer-events: none;
}
.partner-heading h3 {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(30px,2.8vw,40px);
  line-height: 1.15;
  letter-spacing: -.012em;
  color: var(--navy);
}
.partner-heading .partner-deck { font-size: 18px; line-height: 1.6; color: var(--body); margin-top: 12px; max-width: none; }
.partner-copy { min-width: 0; margin-top: 28px; }
.partner-prose { column-count: 2; column-gap: clamp(36px,5vw,72px); }
.partner-prose > p { font-size: 17px; line-height: 1.85; color: var(--body); margin: 0; break-inside: avoid; }
.partner-prose > p + p { margin-top: 20px; }
.partner-copy .ptn-note { background: transparent; font-size: 15px; line-height: 1.85; color: var(--body); margin-top: 26px; padding: 8px 0 8px 24px; border-left: 2px solid var(--gold); }
.partner-copy .ptn-btn { min-height: 44px; margin-top: 30px; transform: none !important; }
.ptn-btn::after { flex-shrink: 0; }
.ptn-btn { transition: background .25s, box-shadow .25s; }
.ptn-btn:hover, .ptn-btn:focus-visible { box-shadow: inset 0 0 0 1px var(--gold); }
.home-welcome .model-l > .kicker,
.svc-hero > .wrap > .kicker {
  display: flex;
  align-items: center;
  gap: 14px;
}
.home-welcome .model-l > .kicker::before,
.svc-hero > .wrap > .kicker::before {
  content: '';
  width: 28px;
  height: 1px;
  flex: none;
  background: var(--gold);
  pointer-events: none;
}
.home-welcome .model-in::before,
.nextp-in::before {
  background: linear-gradient(to right, var(--gold) 0 64px, rgba(175,154,111,.28) 64px 100%);
}
.home-welcome .model-in::before { width: 64px; left: 50%; transform: translateX(-50%); background: var(--gold); }

/* Shorter globe bands preserve the original square canvas and centered layout. */
.network { padding: clamp(62px,7vw,98px) 0; }
#globe { width: min(95%,912px); }
.network::after { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 72px; height: 1px; background: var(--gold); pointer-events: none; }
.stmt-quote {
  border-top: 2px solid var(--gold);
  box-shadow: 0 18px 46px -30px rgba(15,46,77,.24);
}
.stmt-quote .stmt-glyph { color: var(--gold-dk); opacity: .55; }
.foot-brand-text::after {
  content: '';
  display: block;
  width: 40px;
  height: 1px;
  margin-top: 18px;
  background: var(--gold);
  pointer-events: none;
}
.cta .btn, .nav-cta {
  transition: background .25s, box-shadow .25s;
}
.cta .btn:hover, .cta .btn:focus-visible,
.nav-cta:hover, .nav-cta:focus-visible {
  box-shadow: inset 0 0 0 1px var(--gold);
}
.nav-menu a { position: relative; color: var(--navy); transition: color .25s; }
.nav-menu a:hover, .nav-menu a:focus-visible { background: transparent; padding-left: 26px; }
.nav-menu a::before {
  content: '';
  position: absolute;
  left: 12px;
  top: 50%;
  width: 2px;
  height: 18px;
  background: var(--gold);
  transform: translateY(-50%) scaleY(0);
  transition: transform .25s var(--ease);
  pointer-events: none;
}
.nav-menu a:hover::before, .nav-menu a:focus-visible::before,
.nav-menu a.on::before { transform: translateY(-50%) scaleY(1); }

@media (max-width: 1020px) {
  .home-welcome .proof-in { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 38px; }
  .home-welcome .service-invitations a { padding-inline: 18px; gap: 16px; }
  .engagement-grid { grid-template-columns: 1fr; }
  .engagement-model { padding: 32px; }
  .engagement-model p { max-width: 75ch; }
}
@media (max-width: 900px) {
  .partner-prose { column-count: 1; }
  .partner-heading .partner-deck { max-width: 65ch; }
  .home-welcome .service-invitations { grid-template-columns: 1fr; text-align: left; }
  .home-welcome .service-invitations a { padding: 20px 2px; }
  .foot-legal { display: block; }
  .foot-legal-links { margin-top: 20px; }
}
@media (max-width: 600px) {
  .capital-engagement-options { white-space: normal; }
  .partner-copy .ptn-btn { max-width: 100%; font-size: 12px; letter-spacing: .08em; padding: 15px 20px; }
  .nav-in { padding-inline: 18px; gap: 12px; }
  .nav-brand { gap: 10px; }
  .nav-logo { height: 56px; }
  .nav-brand-text { font-size: 10.5px; letter-spacing: .13em; max-width: 84px; }
  .nav-cta { padding: 12px 11px; font-size: 10px; letter-spacing: .08em; line-height: 1.5; max-width: 105px; }
  .home-welcome .hero { min-height: 0; padding: 152px 0 64px; }
  .home-welcome .hero-eyeline { font-size: 10px; gap: 12px; letter-spacing: .18em; }
  .home-welcome .hero-eyeline::before { width: 30px; flex-shrink: 0; }
  .home-welcome .hero-h1 { font-size: clamp(42px,10vw,56px); max-width: 20ch; }
  .home-welcome .hero-welcome { font-size: 18px; line-height: 1.8; }
  .home-welcome .hero-actions { gap: 18px; align-items: flex-start; flex-direction: column; }
  .home-welcome .hero-actions .btn { padding: 17px 22px; }
  .home-welcome .welcome-narrative p, .home-welcome .firm-work p { font-size: 17px; }
  .home-welcome .proof-in { gap: 34px 20px; }
  .home-welcome .proof-num { font-size: clamp(29px,7.8vw,40px); }
  .home-welcome .proof-lbl { font-size: 11px; letter-spacing: .04em; }
  .home-welcome .service-invitations { margin-top: 28px; }
  .home-welcome .service-invitations a { justify-content: space-between; }
  .home-welcome .prac-legal { padding: 22px; }
  .svc-legal, .ptn-note[data-disclaimer], .faq-note { padding: 22px; }
  .engagement-model { padding: 28px; }
  .engagement-boundary { padding: 22px; }
  .engagement-head p, .growth-intro p, .growth-intro p:first-child { font-size: 17px; }
  .nextp-stack { gap: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .nav-brand .nav-logo, .nav-monogram::after, .nav-brand-text, .nav-logo-fb, .ptn-btn { transition: none; }
  .nav-menu a::before, .cta .btn, .nav-cta { transition: none; }
  .home-welcome .firm-link::after, .home-welcome .path-link::after,
  .sq, .role, .sq-more, .home-welcome .service-invitations a::before, .home-welcome .service-invitations a span { transition: none; }
  .sq:hover, .role:hover, .sq:hover .sq-more, .home-welcome .service-invitations a:hover span { transform: none; }
}

/* Keep globe bands in separate, bounded columns. Long headings must wrap
   inside the copy column rather than painting over the interactive canvas. */
.network-grid {
  grid-template-columns: minmax(0,1.2fr) minmax(0,1fr);
  gap: clamp(48px,6vw,80px);
}
.network-copy, .globe-stage { min-width: 0; }
.network-copy h2 {
  max-width: 100%;
  text-wrap: wrap;
  white-space: normal;
}
.network-copy h2 .keep-together { white-space: normal; }
.globe-stage { margin-right: 0; justify-content: flex-end; }
.network #globe { width: min(95%,912px); max-width: 100%; flex-shrink: 0; }
.globe-hint { left: 52.5%; }

/* Five complete partner boxes, stacked vertically with all copy visible. */
.partner-intro p { max-width: none; }
.partner-sections { display: grid; grid-template-columns: minmax(0,1fr); gap: 28px; }
.partner-section {
  padding: clamp(28px,3.5vw,46px);
  border: 1px solid rgba(15,46,77,.16);
  border-top: 2px solid var(--gold);
  background: var(--white);
  box-shadow: 0 8px 28px rgba(15,46,77,.05);
}
.partner-section::before { content: none; }
.partner-copy { margin-top: 22px; }
.partner-prose { column-count: 1; }
.partner-prose > p { max-width: none; }
.partner-prose > p + p { margin-top: 16px; }
.partner-copy .ptn-btn { margin-top: 26px; }

@media (max-width: 900px) {
  .network-grid { grid-template-columns: minmax(0,1fr); gap: clamp(30px,6vw,48px); }
  .globe-stage { justify-content: center; }
  .globe-hint { left: 50%; }
}

/* Trim the header action while keeping its label on one line. */
.nav-cta { padding: 9px 16px; min-height: 40px; line-height: 1.5; white-space: nowrap; max-width: none; flex-shrink: 0; }
@media (min-width: 821px) and (max-width: 1120px) { .nav-cta { padding: 9px 12px; } }
@media (min-width: 821px) and (max-width: 900px) {
  .nav-in { gap: 12px; }
  .nav-right { gap: 8px; }
  .nav-cta { padding-inline: 10px; letter-spacing: .06em; }
}
@media (max-width: 600px) {
  .nav-cta { padding: 9px 10px; font-size: 9.5px; letter-spacing: .055em; }
}
@media (max-width: 360px) {
  .nav-in { padding-inline: 16px; gap: 8px; }
  .nav-brand { gap: 8px; }
  .nav-logo { height: 44px; }
  .nav-brand-text { font-size: 8.8px; letter-spacing: .1em; max-width: 60px; }
  .nav-cta { padding-inline: 8px; font-size: 9px; letter-spacing: .03em; }
}

/* Keep the disclaimer above the final copyright and policy row. */
.foot-legal-copy { margin-top: 0; padding-top: 20px; }
.foot-legal-head { margin-top: 20px; padding-top: 18px; border-top: 1px solid rgba(175,154,111,.25); }
/* Keep the dialog close control above its sticky heading. */
.lgl-close { z-index: 3; }

/* Page introductions use a direct heading without a repeated gold page name. */
.careers-intro { text-align: center; }
.careers-intro h1 { max-width: none; white-space: nowrap; font-size: clamp(30px,4.2vw,58px); line-height: 1.15; }
.careers-intro p { max-width: none; margin-inline: auto; }
.faq-intro { padding-top: clamp(140px,18vh,180px); padding-bottom: 42px; }
.faq-intro h1 { max-width: none; font-size: clamp(34px,4vw,50px); line-height: 1.15; }
.faq-sec-head h2 { font-size: clamp(34px,3.8vw,52px); }
.investor-intro h1 { max-width: none; font-size: clamp(34px,4vw,56px); line-height: 1.15; }
.investor-intro .svc-hero-body { display: block; margin-top: 28px; padding-top: 0; border: 0; }
.investor-intro .svc-hero-body p { max-width: none; }
.nav-cta { padding-block: 7px; min-height: 36px; }
.nav-cta {
  display: inline-flex; align-items: center; justify-content: center;
  height: 32px; min-height: 32px; padding-block: 0; line-height: 1.2;
}
.nav-drop:has(.nav-menu a.on) > .nav-svc { color: var(--white); border-bottom-color: var(--gold-lt); }

/* Related services share the same card treatment on all three practice pages. */
.service-related .nextp-stack { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; }
.service-related .nextp-in { padding: 28px; border: 1px solid rgba(15,46,77,.17); border-top: 2px solid var(--navy); background: var(--white); }
.service-related .nextp-in::before { content: none; }
.service-related .nextp-grid { display: flex; flex-direction: column; gap: 20px; height: 100%; }
.service-related .nextp-grid > div:first-child { transform: none; }
.service-related .nextp-name { margin: 0; font-size: 32px; line-height: 1.2; }
.service-related .nextp-body { display: flex; flex: 1; flex-direction: column; }
.service-related .nextp-body p { max-width: none; font-size: 18px; line-height: 1.75; }
.service-related .nextp-go { margin-top: auto; padding-top: 22px; }
.service-related .nextp-in:hover, .service-related .nextp-in:focus-visible { border-color: var(--gold); box-shadow: inset 0 -2px 0 var(--gold); }
.service-related .nextp-in:focus-visible { outline: 2px solid var(--navy); outline-offset: 4px; }
body:has(.partner-sections) .join-in > p { max-width: none; text-wrap: pretty; }
@media (max-width: 820px) {
  .service-related .nextp-in { padding: 26px; }
  .service-related .nextp-name { font-size: 29px; }
  .service-related .nextp-body p { font-size: 17px; }
  .capital-intro .svc-hero-body { display: block; }
}

/* Legal controls share one type style, including the link to the AI Policy. */
.foot-legal-links { min-width: 0; max-width: 100%; }
.foot-legal-links a, .foot-legal-links button { white-space: nowrap; }
.foot-legal-links a {
  position: relative; font-family: var(--sans); font-size: 12.5px; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; text-decoration: none;
  color: rgba(255,255,255,.85); transition: color .25s;
}
.foot-legal-links a::after {
  content: ''; position: absolute; left: 0; bottom: -5px; width: 100%; height: 1px;
  background: var(--gold); transform: scaleX(0); transform-origin: right;
  transition: transform .3s var(--ease);
}
.foot-legal-links a:hover, .foot-legal-links a:focus-visible { color: var(--white); }
.foot-legal-links a:hover::after, .foot-legal-links a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.foot-legal-links a:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
@media (max-width: 820px) {
  .foot-legal-head .foot-legal-links { width: 100%; margin-left: 0; gap: 12px 18px; }
  .foot-legal-sep { display: none; }
  .media .btn { max-width: 100%; padding-inline: 18px; font-size: 12px; letter-spacing: .08em; }
}

/* A typographic dash follows the text baseline instead of a fixed drawn line. */
.lgl-body li::before {
  content: '-'; top: 4px; width: auto; height: auto; background: none;
  font: inherit; line-height: inherit; color: var(--body); transform: none;
}
.lgl-body .lgl-caps {
  padding: 0; border: 0; background: none; color: var(--body);
  font-size: 16px; font-weight: 400; line-height: 1.85;
  letter-spacing: normal; text-transform: none;
}
.service-related .nextp-name { width: 100%; text-align: left; }

/* The globe retains its canvas and layout; these actions sit below the home copy. */
.network-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.network-link {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 44px; padding: 10px 17px; border: 1px solid rgba(255,255,255,.45);
  color: var(--white); font: 600 14px/1.5 var(--sans); text-decoration: none;
  white-space: nowrap; transition: color .25s, border-color .25s, background .25s;
}
.network-link span { color: var(--gold-lt); transition: transform .25s; }
.network-link-join { border-color: var(--gold); }
.network-link:hover, .network-link:focus-visible { border-color: var(--gold-lt); color: var(--gold-lt); }
.network-link:hover span, .network-link:focus-visible span { transform: translateX(3px); }
.network-link-join:hover, .network-link-join:focus-visible { background: var(--gold-lt); color: var(--navy); }
.network-link-join:hover span, .network-link-join:focus-visible span { color: var(--navy); }
.network-link:focus-visible { outline: 2px solid var(--white); outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) {
  .foot-legal-links a::after, .network-link, .network-link span { transition: none; }
}

/* Give each globe more room toward the right, inside the page boundary. */
@media (min-width: 901px) {
  .network > .wrap { padding-right: clamp(18px,2vw,28px); }
  .network #globe { width: 100%; }
  .globe-hint { left: 50%; }
}
@media (max-width: 600px) {
  .careers-intro h1 { font-size: clamp(26px,7.5vw,34px); }
}

/* Engagement questions are available beside each service's options. */
.engagement-title-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.engagement-faq {
  display: inline-flex; align-items: center; justify-content: center; gap: 14px;
  flex: none; min-height: 44px; padding: 10px 20px;
  border: 1px solid rgba(15,46,77,.4); color: var(--navy); background: var(--white);
  font: 600 13px/1.3 var(--sans); letter-spacing: .06em; text-decoration: none;
  transition: color .2s, border-color .2s, box-shadow .2s;
}
.engagement-faq::after { content: '→'; font-size: 19px; color: var(--gold-dk); }
.engagement-faq:hover, .engagement-faq:focus-visible { border-color: var(--gold); box-shadow: inset 0 -2px 0 var(--gold); }
#how-we-work { scroll-margin-top: 118px; }
#how-we-work .faq-sec { opacity: 1; transform: none; }
.faq-item.open .faq-panel { max-height: none; }
@media (max-width: 600px) {
  .engagement-title-row { gap: 16px; align-items: flex-start; }
  .engagement-title-row h2 { flex: 1; }
  .engagement-faq { padding-inline: 12px; gap: 8px; }
}
@media (prefers-reduced-motion: reduce) { .engagement-faq { transition: none; } }

/* Gold network invitations have the same appearance before and after focus. */
.network-link, .network-link-join {
  background: var(--gold-lt); border-color: var(--gold-lt); color: var(--navy);
}
.network-link span, .network-link-join span { color: var(--navy); }
.network-link:hover, .network-link:focus-visible,
.network-link-join:hover, .network-link-join:focus-visible {
  background: var(--gold-lt); color: var(--navy); border-color: var(--white);
  box-shadow: 0 0 0 2px var(--white);
}
.network-link:hover span, .network-link:focus-visible span { color: var(--navy); }

/* Uniform fine framing replaces the uneven side stripe on appearances. */
.selected .app::before { content: none; }
.selected .app:hover, .selected .app:focus-within {
  border-color: var(--gold); box-shadow: none; background: rgba(255,255,255,.035);
}

.imgband-line, .imgband-line em { font-style: normal; }
.imgband .wrap, .imgband-lbl, .imgband-line { text-align: center; }
.imgband-line { margin-inline: auto; }
.related-heading { margin-bottom: 30px; }
.related-heading h2 { font-family: var(--serif); font-weight: 400; font-size: clamp(32px,2.8vw,42px); line-height: 1.2; color: var(--navy); }
.service-related { background: #f4f6f8; border-top: 1px solid rgba(15,46,77,.1); }
.engagement-faq { min-height: 48px; padding: 10px 22px; gap: 15px; font-size: 14px; }
.engagement-faq::after { font-size: 21px; }
.btn, .nav-cta { transition: background-color .25s, color .25s, border-color .25s, box-shadow .25s; }
.btn:hover, .btn:focus-visible, .nav-cta:hover, .nav-cta:focus-visible { box-shadow: 0 4px 12px rgba(15,46,77,.15); }
.nextp-go::after { display: inline-block; transition: transform .25s var(--ease); }
.nextp-in:hover .nextp-go::after, .nextp-in:focus-visible .nextp-go::after { transform: translateX(4px); }
.engagement-faq::after { display: inline-block; transition: transform .25s var(--ease); }
.engagement-faq:hover::after, .engagement-faq:focus-visible::after { transform: translateX(3px); }
@media (prefers-reduced-motion: reduce) {
  .btn, .nav-cta, .nextp-go::after, .engagement-faq::after { transition: none; }
  .nextp-in:hover .nextp-go::after, .nextp-in:focus-visible .nextp-go::after,
  .engagement-faq:hover::after, .engagement-faq:focus-visible::after { transform: none; }
}

/* Visible frames stay inside their cards, so hovering never moves the layout. */
.collage .ctile:hover::before, .collage .ctile:focus-within::before, .ctile.ctile:hover::before { border-width: 3px; }
.selected .app:hover, .selected .app:focus-within { box-shadow: inset 0 0 0 2px var(--gold); }
.imgband::before { transition: border-color .25s, box-shadow .25s; }
.imgband:hover::before { border-color: var(--gold-lt); box-shadow: inset 0 0 0 2px var(--gold-lt); }
.network-link:hover, .network-link:focus-visible { border-color: var(--white); box-shadow: 0 0 0 2px var(--white); }
.network-actions { margin-top: 4px; }
@media (prefers-reduced-motion: reduce) { .imgband::before { transition: none; } }

/* A slimmer masthead changes its surface on scroll, without fading its content. */
#nav { height: 84px; background: var(--navy); transition: background-color .35s, box-shadow .35s; }
#nav.scrolled { background: rgba(15,46,77,.86); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: 0 4px 20px rgba(3,10,18,.16); }
#nav[data-mobile-open="true"] { background: var(--navy); }
html { scroll-padding-top: 100px; }
.engagement-faq { min-height: 54px; padding: 12px 26px; gap: 17px; font-size: 16px; }
.engagement-faq::after { font-size: 24px; }
.engagement-faq:focus-visible { outline: 2px solid var(--navy); outline-offset: 4px; }
.careers-intro > .wrap::before { content: none; display: none; }
.hire .hire-intro { max-width: 960px; margin-inline: auto; text-align: center; }
.hire .hire-intro h2 { max-width: none; margin-inline: auto; }
.hire .hire-intro p { max-width: 70ch; margin-inline: auto; text-align: center; }
.roles .role { display: flex; flex-direction: column; }
.roles .role p { font-size: 17px; line-height: 1.75; }
.roles .role p + p { margin-top: 0; }
.roles .role:focus-within { border-color: var(--gold); }
.faq-note p { text-wrap: pretty; }
.close-band .close-grid { display: block; max-width: 900px; margin-inline: auto; text-align: center; }
.close-band .close-grid h2 { max-width: none; margin: 0 0 24px; text-wrap: balance; }
.close-band .close-right p { max-width: 62ch; margin-inline: auto; font-size: 19px; line-height: 1.7; }
.close-band { padding-block: 72px; }
.close-band .close-rule { max-width: 900px; margin-inline: auto; margin-bottom: 32px; }
@media (max-width: 820px) {
  #nav[data-mobile-open="true"] .nav-right { max-height: calc(100dvh - 84px); }
  .roles .role p, .close-band .close-right p { font-size: 17px; }
  .close-band { padding-block: 48px; }
}
@media (prefers-reduced-motion: reduce) { #nav { transition: none; } }
