/* FP Academy geometry and type scale. Existing brand colours remain inherited. */
body { font-size:16px; line-height:1.65; }

/* Header: lightly rounded rectangles and the Academy navigation scale. */
.site-header .nav { min-height:88px; gap:30px; }
.legal-header .legal-nav { min-height:88px; }
.site-header .nav-links { gap:22px; font-size:13px; font-weight:400; }
.site-header .nav-links > a { padding:12px 0; white-space:nowrap; }
.site-header .nav-links .nav-cta {
  border-radius:7px; padding:10px 16px; min-height:44px;
  font-size:13px; font-weight:400; line-height:1.65;
}
.site-header .menu-toggle {
  width:44px; height:44px; flex:0 0 44px; border-radius:7px;
}
.site-header .menu-toggle span:not(.sr-only) { left:11px; width:20px; height:2px; }
.site-header .menu-toggle span:first-child { top:16px; }
.site-header .menu-toggle span:nth-child(2) { top:24px; }
.site-header .menu-toggle[aria-expanded="true"] span:first-child,
.site-header .menu-toggle[aria-expanded="true"] span:nth-child(2) { top:20px; }

/* Flat flags with the same dimensions and active-language underline. */
.site-header .language-switch,.site-header .mobile-language-switch,
.legal-header .legal-language-switch {
  grid-template-columns:none!important; gap:5px; font-size:12px; font-weight:400;
  letter-spacing:0; line-height:1.65;
}
.site-header .language-switch a,.site-header .mobile-language-switch a,
.legal-header .legal-language-switch a {
  width:28px!important; min-width:28px!important;
  height:44px!important; min-height:44px;
  border-bottom:2px solid transparent!important;
}
.site-header .language-switch a[aria-current="true"],
.site-header .mobile-language-switch a[aria-current="true"],
.legal-header .legal-language-switch a[aria-current="true"] {
  border-bottom-color:var(--mint)!important;
}
.site-header .language-switch span,.site-header .mobile-language-switch span,
.legal-header .legal-language-switch span { font-size:12px; font-weight:400; }
@media(min-width:1101px) {
  .site-header .language-switch { display:flex!important; }
  .site-header .mobile-language-switch { display:none!important; }
}
.legal-header .legal-language-switch { display:flex!important; }

/* Reusable controls and panels follow the Academy corner system. */
.button,.fp-intro-button,.back-link {
  border-radius:7px; min-height:48px; padding:12px 22px;
  font-size:14px; font-weight:650; line-height:1.65;
}
.button { gap:15px; }
.focus-item,.route-card,.service-card,.challenge-card,.core-card,
.question,.case-card,.vision-card,.insight-item,.home-service-card,
.home-example-link,.examples-index-grid a,.model-jump a,.model-controls,
.model-report,.forecast-card,.business-card,.example-preview { border-radius:10px; }
.signal,.signal::after,.founder-panel { border-radius:16px; }
.contact-form,.legal-article { border-radius:12px; }
.field input,.field textarea,.field select {
  border-radius:6px; min-height:46px; padding:11px 12px; font-size:14px;
}
.field label { font-size:12px; }

/* Existing heading sizes already match Academy; align weight and tracking. */
.hero .display-title { font-weight:550; letter-spacing:-.048em; }
.page-hero h1,.contact-copy h1,.legal-article h1 {
  font-weight:500; letter-spacing:-.04em;
}
main .section-title,.home-services-head .section-title,.intro-copy .section-title,
.cta-row h2,.examples-strip h2,.example-story h2,.example-copy h2,
.examples-resources h2,.model-heading h2,.model-foot h2,.fp-academy-intro h2 {
  font-weight:500; letter-spacing:-.035em;
}
.home-service-card h3,.service-card h2,.core-card h2,.case-card h2,
.case-card.featured h2,.route-card h3,.challenge-card h3,.vision-card h3 {
  font-size:23px; font-weight:500; line-height:1.2; letter-spacing:-.025em;
}
.hero-copy .lead { font-size:17px; line-height:1.8; }
.page-hero .lead { font-size:16px; line-height:1.8; }
.section-lead { font-size:15px; }
.eyebrow,.section-kicker { font-size:11px; font-weight:650; }

@media(max-width:1150px) and (min-width:1101px) {
  .site-header .nav { gap:18px; }
  .site-header .nav-links { gap:14px; font-size:12px; }
  .site-header .nav-links .nav-cta { padding:10px; font-size:12px; }
}
/* Keep the established breakpoint so the longer Consultancy menu fits. */
@media(max-width:1100px) {
  .site-header .nav { min-height:78px; gap:15px; }
  .legal-header .legal-nav { min-height:78px; }
  .site-header .mobile-language-switch { display:flex!important; margin-right:0; }
  .site-header .nav-links {
    top:126px; padding:25px 32px; gap:0; font-size:19px;
  }
  .site-header .nav-links > a:not(.nav-cta) {
    padding:17px 0; font-size:19px; font-weight:400; white-space:normal;
  }
  .site-header .nav-links .nav-cta {
    margin-top:25px; padding:15px; font-size:16px; min-height:48px;
    white-space:normal;
  }
  .site-header .nav-links .language-switch { display:none!important; }
}
@media(max-width:760px) {
  .site-header .menu-toggle { width:42px; height:42px; flex-basis:42px; }
  .site-header .menu-toggle[aria-expanded="true"] span:first-child,
  .site-header .menu-toggle[aria-expanded="true"] span:nth-child(2) { top:19px; }
  .site-header .mobile-language-switch { gap:2px; column-gap:2px!important; }
  .site-header .mobile-language-switch a,
  .legal-header .legal-language-switch a { width:25px!important; min-width:25px!important; }
  .button,.fp-intro-button,.back-link { font-size:12px; padding:12px 13px; }
  .button { gap:8px; }
  .field input,.field textarea,.field select { font-size:16px; }
  .home-service-card h3,.service-card h2,.core-card h2,.case-card h2,
  .case-card.featured h2,.route-card h3,.challenge-card h3,.vision-card h3 { font-size:25px; }
  .hero-copy .lead { font-size:15px; }
  .page-hero .lead { font-size:14px; }
  .eyebrow,.section-kicker { font-size:9px; }
}
@media(max-width:370px) {
  .site-header .nav { gap:9px; }
  .site-header .mobile-language-switch a { width:23px!important; min-width:23px!important; }
}
