:root {
  --ink:#10243e;
  --muted:#66758a;
  --line:#dce3eb;
  --paper:#f7f9fc;
  --white:#ffffff;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font-family:Inter,Arial,sans-serif; color:var(--ink); background:var(--white); line-height:1.65; }
a { color:inherit; text-decoration:none; }
.site-header { height:78px; display:flex; align-items:center; justify-content:space-between; padding:0 5vw; border-bottom:1px solid var(--line); background:rgba(255,255,255,.96); position:sticky; top:0; z-index:10; }
.brand { font-size:17px; letter-spacing:.13em; font-weight:700; }
.brand span { font-weight:400; }
nav { display:flex; gap:25px; font-size:13px; }
nav a { color:var(--muted); }
nav a.active, nav a:hover { color:var(--ink); }
.menu-toggle { display:none; border:0; background:none; font-size:22px; }
main { min-height:75vh; }
.hero, .page-hero { padding:10vw 8vw 8vw; max-width:1250px; }
.hero { min-height:70vh; display:flex; flex-direction:column; justify-content:center; }
.eyebrow { font-size:11px; letter-spacing:.18em; font-weight:700; color:var(--muted); margin:0 0 20px; }
h1 { font-size:clamp(48px,7vw,92px); line-height:1.02; letter-spacing:-.045em; max-width:1000px; margin:0 0 30px; }
.hero h1 span { font-weight:400; }
.page-hero h1 { font-size:clamp(46px,6vw,76px); }
.intro { font-size:20px; line-height:1.55; max-width:720px; color:#405168; }
.button { display:inline-block; margin-top:25px; padding:13px 22px; background:var(--ink); color:white; font-size:13px; letter-spacing:.05em; width:max-content; }
.section { padding:8vw; border-top:1px solid var(--line); }
.section h2 { font-size:clamp(34px,4vw,56px); line-height:1.1; letter-spacing:-.03em; max-width:800px; margin:0 0 20px; }
.section p { max-width:760px; color:#526176; }
.grid { padding:0 8vw 8vw; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); }
.grid article { background:var(--white); padding:40px; min-height:220px; }
.grid h3 { font-size:22px; margin-top:0; }
.grid p { color:var(--muted); }
.site-footer { border-top:1px solid var(--line); padding:35px 8vw; display:flex; justify-content:space-between; gap:30px; color:var(--muted); font-size:12px; }
@media(max-width:900px) {
  nav { display:none; position:absolute; top:78px; left:0; right:0; background:white; flex-direction:column; padding:25px 8vw; border-bottom:1px solid var(--line); }
  nav.open { display:flex; }
  .menu-toggle { display:block; }
  .grid { grid-template-columns:1fr; }
  .site-footer { flex-direction:column; }
}
