/* Production-readiness additions shared across the site. */
:focus-visible{
  outline:3px solid #f0b429;
  outline-offset:4px;
}
.site-header a:focus-visible,
.site-header button:focus-visible{
  outline-color:var(--blue-dark);
}
.footer-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.8rem}
.footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.65rem 1rem;margin:0}
.footer-links a{border-bottom:1px solid rgba(199,210,232,.55);padding-bottom:.12rem}
.footer-links a:hover{color:#fff;border-bottom-color:#fff}
.legal-page main{padding-top:84px;background:var(--paper)}
.legal-hero{padding:clamp(6rem,12vw,11rem) clamp(1.25rem,7vw,7rem) clamp(3rem,6vw,6rem);border-bottom:1px solid var(--blue)}
.legal-hero .eyebrow{color:var(--blue)}
.legal-hero h1{max-width:11ch;margin:0;color:var(--blue);font:400 clamp(4rem,10vw,9rem)/.86 var(--sans);letter-spacing:-.065em;text-transform:uppercase}
.legal-body{display:grid;grid-template-columns:minmax(180px,.4fr) minmax(0,1fr);gap:clamp(2rem,8vw,9rem);padding:clamp(4rem,8vw,8rem) clamp(1.25rem,7vw,7rem) 8rem}
.legal-aside{font:400 .72rem/1.7 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--blue)}
.legal-copy{max-width:780px}
.legal-copy section{padding:0 0 3rem;margin:0 0 3rem;border-bottom:1px solid rgba(8,106,168,.35)}
.legal-copy h2{margin:0 0 1.2rem;color:var(--blue);font:400 clamp(1.8rem,3vw,3rem)/1 var(--sans);letter-spacing:-.04em;text-transform:none}
.legal-copy p,.legal-copy li{font-size:1rem;line-height:1.75}
.legal-copy a{color:var(--blue);border-bottom:1px solid currentColor}
.privacy-consent{display:flex;align-items:flex-start;gap:.7rem;margin:1rem 0;color:var(--blue-dark);font-size:.82rem;line-height:1.5;text-transform:none;letter-spacing:0}
.privacy-consent input{width:auto;margin:.2rem 0 0;accent-color:var(--blue)}
.privacy-consent a{color:var(--blue);text-decoration:underline}
.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Who we advise — a people-led, staggered card sequence inspired by the
   reference site's editorial strategy cards. */
.clients{
  min-height:auto!important;
  display:grid;
  grid-template-columns:minmax(0,35%) minmax(0,65%);
  align-items:start;
  padding:0!important;
  background-color:#e9e7e1!important;
  background-image:linear-gradient(90deg,transparent calc(35% - .5px),var(--blue) calc(35% - .5px),var(--blue) calc(35% + .5px),transparent calc(35% + .5px),transparent calc(70% - .5px),rgba(8,106,168,.5) calc(70% - .5px),rgba(8,106,168,.5) calc(70% + .5px),transparent calc(70% + .5px))!important;
}
.clients .section-heading{
  position:sticky!important;
  top:84px!important;
  width:100%!important;
  min-width:0;
  height:calc(100vh - 84px);
  margin:0!important;
  padding:clamp(4rem,7vw,7rem) clamp(2rem,4vw,4.5rem) clamp(2.5rem,5vw,5rem)!important;
  display:flex!important;
  flex-direction:column;
  justify-content:space-between;
  align-items:flex-start!important;
  z-index:2;
}
.clients .section-heading h2{max-width:6ch;font-size:clamp(4.5rem,8.4vw,10rem);line-height:.88;letter-spacing:-.065em}
.clients .section-heading>p.clients-intro{max-width:36ch;margin:3rem 0 0;border:0;padding:0;color:var(--blue);font:400 .88rem/1.45 var(--mono);letter-spacing:.025em;text-transform:uppercase}
.clients .client-grid{
  position:relative!important;
  top:auto!important;
  display:flex!important;
  flex-direction:column;
  gap:clamp(7rem,10vw,11rem)!important;
  width:100%!important;
  margin:0!important;
  padding:clamp(7rem,10vw,10rem) clamp(2rem,4vw,5rem) clamp(9rem,13vw,13rem)!important;
  border-left:0!important;
  transform:none!important;
  will-change:auto!important;
  z-index:1;
}
.clients .client-card{
  width:min(66%,620px);
  min-height:235px;
  padding:clamp(1.4rem,2.5vw,2.2rem);
  background:#fff;
  color:var(--blue);
  border:1px solid rgba(8,106,168,.1);
  box-shadow:0 22px 55px rgba(3,46,80,.07);
  transform:rotate(-1deg);
  transition:opacity .65s ease,transform .65s cubic-bezier(.2,.75,.2,1),box-shadow .35s ease;
}
.clients .client-card:nth-child(odd){align-self:flex-start;margin-left:12%}
.clients .client-card:nth-child(even){align-self:flex-end;transform:rotate(1.6deg)}
.clients .client-card:nth-child(3n){transform:rotate(-.45deg)}
.clients .client-card.reveal{opacity:0;transform:translateY(52px) rotate(-1deg)}
.clients .client-card.reveal:nth-child(even){transform:translateY(52px) rotate(1.6deg)}
.clients .client-card.reveal.visible{opacity:1;transform:rotate(-1deg)}
.clients .client-card.reveal.visible:nth-child(even){transform:rotate(1.6deg)}
.clients .client-card.reveal.visible:nth-child(3n){transform:rotate(-.45deg)}
.clients .client-card:hover{transform:rotate(0deg) translateY(-5px);box-shadow:0 30px 65px rgba(3,46,80,.12)}
.clients .client-card.reveal.visible:hover{transform:rotate(0deg) translateY(-5px)}
.client-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:2rem;
  padding-bottom:.75rem;
  border-bottom:1px solid var(--blue);
}
.clients .client-card h3{
  margin:0;
  max-width:18ch;
  font:400 clamp(2rem,3.7vw,3.8rem)/.95 var(--sans);
  letter-spacing:-.055em;
  text-transform:none;
}
.client-card-head span{font:400 clamp(1.6rem,2.7vw,2.8rem)/1 var(--sans);letter-spacing:-.04em}
.clients .client-card>p{
  display:block;
  width:auto!important;
  height:auto!important;
  min-height:0!important;
  max-width:44ch;
  margin:clamp(2rem,4vw,4rem) 0 0!important;
  padding:0 0 1rem!important;
  color:var(--blue)!important;
  background:transparent!important;
  border:0!important;
  border-bottom:1px solid var(--blue)!important;
  font:400 .88rem/1.45 var(--mono)!important;
  letter-spacing:.035em!important;
  text-transform:uppercase!important;
  transform:none!important;
}
@media(max-width:900px){
  .clients{display:block;background-image:none!important;padding:6rem 0 7rem!important}
  .clients .section-heading{position:relative!important;top:auto!important;height:auto;width:auto!important;margin:0 0 3.5rem!important;padding:0 1.25rem!important;display:block!important}
  .clients .section-heading h2{font-size:clamp(3.2rem,11vw,5.5rem);max-width:8ch}
  .clients .section-heading>p.clients-intro{margin-top:2.5rem;max-width:42ch}
  .clients .client-grid{gap:1.25rem!important;padding:0 1rem!important}
  .clients .client-card,.clients .client-card:nth-child(odd),.clients .client-card:nth-child(even),.clients .client-card:nth-child(3n){width:100%;min-height:165px;align-self:stretch;margin-left:0;padding:1rem;transform:none}
  .clients .client-card.reveal,.clients .client-card.reveal:nth-child(even){transform:translateY(30px)}
  .clients .client-card.reveal.visible,.clients .client-card.reveal.visible:nth-child(even),.clients .client-card.reveal.visible:nth-child(3n){transform:none}
  .clients .client-card h3{font-size:clamp(1.55rem,5.5vw,2.2rem)}
  .client-card-head span{font-size:1.55rem}
  .clients .client-card>p{margin-top:1.5rem!important;font-size:.74rem!important}
}
@media(max-width:720px){
  .legal-page main{padding-top:72px}
  .legal-body{grid-template-columns:1fr}
  .footer-meta{align-items:flex-start}
  .footer-links{justify-content:flex-start}
  .clients{padding:6rem 0 7rem!important;background-image:none!important}
  .clients .section-heading{margin-bottom:3.5rem!important}
  .clients .section-heading h2{font-size:clamp(2.9rem,13vw,4.25rem);max-width:8ch}
  .clients .client-grid{gap:1.1rem!important;padding:0 .9rem!important}
  .clients .client-card,.clients .client-card:nth-child(even),.clients .client-card:nth-child(3n){width:100%;min-height:150px;align-self:stretch;padding:1rem;transform:none}
  .clients .client-card.reveal,.clients .client-card.reveal:nth-child(even){transform:translateY(30px)}
  .clients .client-card.reveal.visible,.clients .client-card.reveal.visible:nth-child(even),.clients .client-card.reveal.visible:nth-child(3n){transform:none}
  .clients .client-card h3{font-size:clamp(1.45rem,7vw,2rem);letter-spacing:-.045em}
  .client-card-head{padding-bottom:.45rem}
  .client-card-head span{font-size:1.45rem}
  .clients .client-card>p{margin-top:1.35rem!important;padding-bottom:.75rem!important;font-size:.72rem!important;line-height:1.35!important}
}

/* Content-led homepage rhythm: keep the editorial structure without forcing
   sections to occupy multiple viewport heights. */
.home-page .hero{min-height:100svh}
.home-page .section{padding-block:clamp(5rem,7vw,7.5rem)}
.home-page .intro{
  min-height:0;
  display:block;
  align-content:normal;
}
.home-page .intro-grid{align-items:center}
.home-page .intro .section-number{margin-bottom:clamp(2.5rem,4vw,4rem)}
.home-page .intro h2{font-size:clamp(3.4rem,5.6vw,6rem);line-height:.9}
.home-page .intro .prose{align-self:center}

.home-page .expertise{min-height:0}
.home-page .expertise .section-heading{
  position:relative;
  top:auto;
  height:auto;
  min-height:720px;
  align-self:stretch;
  padding-block:clamp(5rem,7vw,7rem);
}
.home-page .expertise .section-heading:before,
.home-page .expertise .section-heading:after{display:none}
.home-page .expertise .section-heading>p{margin-top:0}
.home-page .expertise .section-heading h2{overflow-wrap:anywhere}
.home-page .expertise-visual{
  position:relative;
  width:min(100%,560px);
  aspect-ratio:16/8.5;
  margin:auto 0 0;
  overflow:hidden;
  background:var(--paper);
}
.home-page .expertise-visual:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:var(--blue);
  mix-blend-mode:color;
  opacity:.14;
  pointer-events:none;
}
.home-page .expertise-visual:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  display:none;
  pointer-events:none;
}
.home-page .expertise-visual img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:grayscale(1) contrast(1.2);
  opacity:0;
  transition:opacity .35s ease,transform .55s cubic-bezier(.2,.75,.2,1);
}
.home-page .expertise-visual canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;background:var(--paper);transition:opacity .35s ease}
.home-page .expertise-visual:hover img,.home-page .expertise-visual:focus-visible img{opacity:1}
.home-page .expertise-visual:hover canvas,.home-page .expertise-visual:focus-visible canvas{opacity:0}
.home-page .expertise-visual img.is-changing{opacity:.15;transform:scale(1.025)}
.home-page .expertise-list{padding-block:clamp(5rem,7vw,7rem)}

.home-page .profile{min-height:0;align-items:stretch}
.home-page .profile-image{
  position:relative;
  top:auto;
  height:auto;
  min-height:clamp(520px,52vw,680px);
  clip-path:none;
}
.home-page .profile-copy{padding-block:clamp(5rem,7vw,7rem)}
.home-page .profile-copy h2{margin-left:0;font-size:clamp(3.7rem,6vw,6.5rem)}
.home-page .profile-copy>p{margin-top:clamp(2rem,4vw,3rem)}
.home-page h1,.home-page h2,.home-page h3{max-width:100%;overflow-wrap:anywhere}

.home-page .insights{min-height:0}
.home-page .editorial-insights>.section-heading{margin-bottom:clamp(3rem,5vw,5rem)}
.home-page .home-insights-layout,
.home-page .home-insight-visual{min-height:clamp(520px,44vw,650px)}
.home-page footer{min-height:420px;padding-top:clamp(4rem,6vw,6rem)}
.home-page footer:after{
  left:.02em;
  bottom:.08em;
  font-size:clamp(9rem,18vw,20rem);
  line-height:.78;
}

@media(min-width:901px){
  .home-page .clients .section-heading{
    position:relative!important;
    top:auto!important;
    height:auto;
    min-height:720px;
    justify-content:flex-start;
    gap:clamp(3rem,7vw,7rem);
  }
  .home-page .clients .client-grid{
    gap:clamp(2.25rem,3.5vw,3.75rem)!important;
    padding-block:clamp(5rem,7vw,7rem)!important;
  }
  .home-page .clients .client-card{min-height:205px}
  .home-page .clients .client-card>p{margin-top:clamp(1.5rem,2.5vw,2.5rem)!important}
}

@media(max-width:1100px){
  .home-page .expertise .section-heading{min-height:720px}
  .home-page .section h2{font-size:clamp(3rem,7vw,5.8rem);line-height:.92}
}
@media(max-width:900px){
  .home-page .section{padding-block:clamp(4.5rem,9vw,6rem)}
  .home-page .intro h2{font-size:clamp(3.2rem,8vw,5rem)}
  .home-page .expertise .section-heading{min-height:680px}
  .home-page .expertise-visual{margin-top:3rem}
  .home-page .profile-image{min-height:clamp(500px,78vw,640px)}
  .home-page .section h2{font-size:clamp(2.8rem,8vw,5rem);letter-spacing:-.055em}
}
@media(max-width:720px){
  .home-page .hero{min-height:780px}
  .home-page .section{padding-block:4.5rem}
  .home-page .intro h2{font-size:clamp(2.8rem,12vw,3.8rem)}
  .home-page .section h2{font-size:clamp(2.55rem,10.5vw,3.5rem);line-height:.94;letter-spacing:-.05em}
  .home-page .expertise .section-heading{min-height:620px;padding-block:4.5rem 3rem}
  .home-page .expertise .section-heading h2{font-size:clamp(2.7rem,11vw,3.5rem);max-width:10ch}
  .home-page .expertise .section-heading h2 .word{display:inline!important}
  .home-page .expertise-visual{width:100%;margin-top:2.5rem}
  .home-page .expertise-list{padding-block:3.5rem 4.5rem}
  .home-page .profile-image{min-height:520px;height:clamp(520px,135vw,620px)}
  .home-page .profile-copy{padding-block:4.5rem}
  .home-page .profile-copy h2{font-size:clamp(2.8rem,13vw,4rem)}
  .home-page .home-insights-layout,
  .home-page .home-insight-visual{min-height:480px}
  .home-page footer{min-height:360px}
  .home-page footer:after{bottom:.12em;font-size:clamp(7rem,30vw,11rem)}
}

/* Keep the footer fully readable on phones and compact tablets. */
@media(max-width:900px){
  footer{
    min-height:0!important;
    height:auto;
    grid-template-columns:1fr!important;
    gap:1.5rem!important;
    padding:4rem clamp(1.25rem,5vw,3rem) 3rem!important;
    align-items:flex-start!important;
  }
  footer>p{max-width:32ch;margin:0}
  .footer-meta{align-items:flex-start!important;gap:1rem}
  .legal{text-align:left!important;margin:0}
  .footer-links{justify-content:flex-start!important;gap:.65rem 1.25rem;margin:0}
  .footer-brand img{width:clamp(150px,32vw,190px)!important;height:auto!important}
}
@media(max-width:720px){
  footer{padding:3.5rem 1.25rem 2.5rem!important;gap:1.25rem!important}
  footer:after{display:none!important}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
