/* Site foundations: the only owner of fonts, page bounds and title scale.
   Component styles may arrange their contents, but must not redefine these. */
:root {
 --ink:#17231d; --muted:#637168; --brand:#1f6b4f; --brand-hover:#18543e;
 --paper:#f5f7f4; --line:#d5ded8; --mint:#c9f1e2;
 --page-ink:#193c2a; --page-muted:#617969; --hero-accent:#91dfb7; --hero-eyebrow:#91b29b;
 --display:"Space Grotesk",sans-serif; --body:"Inter",sans-serif;
 --ease:cubic-bezier(0.22,1,0.36,1);
 --content-width:1320px; --page-gutter:56px; --reading-width:860px;
 --nav-font-size:15px;
 --title-size:clamp(38px,4.1vw,61px); --title-weight:500; --title-leading:1.08; --title-tracking:-2.5px;
 --section-title-size:clamp(29px,3vw,43px); --section-title-leading:1.15; --section-title-tracking:-1.2px;
}
body { font-family:var(--body); }
.container,.header .nav-shell { width:calc(100% - var(--page-gutter) * 2); max-width:var(--content-width); margin-inline:auto; }
h1,h2,h3 { font-family:var(--display); font-weight:500; line-height:1.12; }
body main h1,body main h1.h1 { font-family:var(--display); font-size:var(--title-size); font-weight:var(--title-weight); line-height:var(--title-leading); letter-spacing:var(--title-tracking); }
.page-section h2,.record-section h2 { font-family:var(--display); font-size:var(--section-title-size); font-weight:500; line-height:var(--section-title-leading); letter-spacing:var(--section-title-tracking); }
.header { font-family:var(--body); }
/* Legal reading columns are intentionally narrower, within the same outer grid. */
body .wrap { width:calc(100% - var(--page-gutter) * 2); max-width:var(--content-width); padding-inline:0; margin-inline:auto; }
body .wrap-narrow { width:calc(100% - var(--page-gutter) * 2); max-width:var(--reading-width); padding-inline:0; margin-inline:auto; }
@media(max-width:1190px) { :root { --page-gutter:36px; } }
@media(max-width:640px) { :root { --page-gutter:20px; --title-size:37px; --title-tracking:-1.4px; } }

.page-hero h1 em,.live-heading h1 em { color:var(--hero-accent); font-style:normal; }
.page-hero .eyebrow,.live-heading .eyebrow,.campaign-hero .eyebrow { font-size:12px; letter-spacing:1.4px; color:var(--hero-eyebrow); }

/* Shared editorial heading layout: supporting copy follows the headline. */
body main :is(.page-section-head,.section-heading,.integration-intro,.live-heading) {
 display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:18px;
}
body main :is(.page-section-head,.section-heading,.integration-intro,.live-heading)>p {
 max-width:680px; margin:0; padding:0;
}

/* Marketing hero headings share a stable top edge, independent of the visual. */
body main .hero-grid { align-items:start; padding-top:80px; }
body main .live-architecture { padding-top:80px; }
@media(max-width:900px) { body main .hero-grid,body main .live-architecture { padding-top:55px; } }
