@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&display=swap');

/* Forge Brand V3, public-site foundation. Page layouts remain autonomous; this file owns the
   shared visual language so every marketing, legal, editorial and developer page stays aligned. */
:root {
  color-scheme: light;
  --forge-ink:#0B0F1A;
  --forge-canvas:#F4F6FA;
  --forge-surface:#FFFFFF;
  --forge-surface-soft:#F7F8F9;
  --forge-blue:#2E7CF6;
  --forge-cyan:#2BD0C5;
  --forge-gradient:linear-gradient(135deg,#2E7CF6 0%,#2BD0C5 100%);
  --forge-body:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  --forge-heading:'Space Grotesk','Manrope',system-ui,sans-serif;
}

html,body { font-family:var(--forge-body) !important; }
body { background-color:var(--forge-canvas); color:var(--forge-ink); }
h1,h2,h3,h4,h5,h6,.display,.headline,.title { font-family:var(--forge-heading) !important; }
button,input,select,textarea { font-family:var(--forge-body) !important; }
:focus-visible { outline:3px solid rgba(46,124,246,.38); outline-offset:3px; }
::selection { background:rgba(43,208,197,.28); color:var(--forge-ink); }

.btn-primary,.primary,.cta-primary,[class*="btn-primary"] {
  background-image:var(--forge-gradient) !important;
  border-color:transparent !important;
}

/* Shared chrome mirrors the home-page visual system on every public route. */
#main-nav.fc-nav,nav.fc-nav {
  background:rgba(255,255,255,.92) !important;
  border-bottom-color:rgba(11,15,26,.09) !important;
  box-shadow:0 8px 30px rgba(11,15,26,.05);
}
.fc-nav-links a,.fc-btn-ghost { color:#354055 !important; }
.fc-btn-ghost { border-color:rgba(11,15,26,.16) !important; }
.fc-nav-hamburger span { background:var(--forge-ink) !important; }
.fc-nav-mobile { background:rgba(244,246,250,.98) !important; }
.fc-nav-mobile a,.fc-nav-mobile-close { color:var(--forge-ink) !important; }
footer.fc-footer { background:var(--forge-ink) !important; }

/* Legacy editorial pages were originally authored on a dark canvas. Brand V3 moved the
   canvas to light, so their component-level translucent-white copy must move with it.
   Keep these rules here, after the page styles, so one shared contract covers mission and
   every case-study detail route instead of relying on page-by-page patches. */
.m-hero .lede,
.m-body p,
.m-card p,
.m-place,
.cs-hero .lede,
.cs-metric .lbl,
article.cs-body p,
article.cs-body li,
.cs-step .d,
.cs-note,
.cs-cta p { color:#4A5468 !important; }
.m-card,
.cs-metric {
  background:var(--forge-surface) !important;
  border-color:rgba(11,15,26,.10) !important;
  box-shadow:0 1px 2px rgba(11,15,26,.04),0 12px 32px rgba(11,15,26,.05);
}
.m-body h2,
.m-card h3,
.cs-hero h1,
article.cs-body h2,
article.cs-body h3,
.cs-step .t,
.cs-cta h2 { color:var(--forge-ink) !important; }
.cs-step { border-top-color:rgba(11,15,26,.09) !important; }
.cs-callout {
  color:#243047 !important;
  background:linear-gradient(180deg,rgba(46,124,246,.08),rgba(43,208,197,.04)) !important;
  border-color:rgba(46,124,246,.20) !important;
}
.cs-note { border-top-color:rgba(11,15,26,.09) !important; }
.cs-step .n,
.cs-cta a,
.m-cta a { color:#fff !important; }

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
