/* ALABASTER · EMERALD — palette + type + inner-page components. Loaded after base.css. */
:root{
  --bg:#ffffff; --bg-alt:#f5f7f6; --bg-deep:#0e1512;
  --ink:#141a17; --ink-soft:#48524d; --muted:#8a938d;
  --muted:#6b746e; /* darkened for WCAG AA on white (~4.6:1) */
  --rule:rgba(15,22,18,.12); --rule-soft:rgba(15,22,18,.055); --rule-inv:rgba(255,255,255,.14);
  --accent:#059669; --accent-text:#047857; /* accent-text is contrast-safe (5.5:1) for small type */
  --accent-2:#34d399; --ivory:#eef2f0; --glow:rgba(5,150,105,.2);
  --serif:"Schibsted Grotesk","Helvetica Neue",sans-serif;
  --sans:"Hanken Grotesk","Helvetica Neue",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;
}
.h1,.h2{ font-weight:600; letter-spacing:-3px; }
.h3{ font-weight:600; letter-spacing:-0.8px; } /* was -3px: collided at 26px sizes */
.h1{ letter-spacing:-3.4px; } i.accent{ font-style:normal; font-weight:inherit; }
.navlinks a.here{ color:var(--ink); } .navlinks a.here::after{ right:0; }
html{ overflow-x:clip; } /* safety against any wide fixed element */
.spot{ display:none; } /* Alabaster is a light theme; no cursor spotlight */
/* small-type emerald uses the contrast-safe token */
.company .tag, .office .tz, .member .role, .service .sn{ color:var(--accent-text); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{ outline:2px solid var(--accent-text); outline-offset:3px; border-radius:2px; }
.skiplink{ position:absolute; left:-9999px; top:0; z-index:300; background:var(--ink); color:#fff; padding:12px 18px; font-family:var(--sans); font-size:14px; }
.skiplink:focus{ left:12px; top:12px; }

/* page hero (inner pages) */
.phero{ padding:170px 64px 70px; }
.phero-grid{ display:grid; grid-template-columns:120px 1fr; gap:64px; align-items:start; }
.phero h1{ font-size:104px; line-height:.98; }
.phero .lede{ font-family:var(--sans); font-weight:400; font-size:22px; line-height:1.55; color:var(--ink-soft); max-width:760px; margin-top:48px; }

/* generic section head */
.blk{ padding:70px 64px; } .blk.alt{ background:var(--bg-alt); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.blk-grid{ display:grid; grid-template-columns:120px 1fr; gap:64px; }

/* steps arc (approach) */
.step{ display:grid; grid-template-columns:130px 1.1fr 1.4fr 150px; gap:48px; padding:52px 0; border-bottom:1px solid var(--rule); align-items:baseline; transition:background .4s var(--ease); }
.step:last-child{ border-bottom:none; }
.step:hover{ background:linear-gradient(90deg, var(--glow), transparent 40%); }
.step .sn{ font-family:var(--serif); font-weight:600; font-size:60px; letter-spacing:-3px; color:var(--accent); line-height:1; }
.step h3{ font-size:34px; letter-spacing:-1px; }
.step p{ font-family:var(--sans); font-size:17px; line-height:1.6; color:var(--ink-soft); }
.step .sd{ text-align:right; }

/* pull quote with image */
.pull{ display:grid; grid-template-columns:1fr 1fr; gap:96px; align-items:center; }
.pull blockquote{ font-family:var(--serif); font-weight:400; font-size:34px; line-height:1.32; letter-spacing:-.8px; color:var(--ink); margin:22px 0 0; }
.pull .by{ margin-top:26px; }

/* portfolio companies */
.companies{ display:grid; grid-template-columns:1fr 1fr; gap:72px 80px; }
.company .shot{ height:400px; }
.company .row{ display:flex; justify-content:space-between; align-items:baseline; margin-top:26px; }
.company h3{ font-size:32px; letter-spacing:-1.2px; }
.company .tag{ font-family:var(--mono); font-size:11px; letter-spacing:1.4px; text-transform:uppercase; color:var(--accent); margin-top:8px; }
.company p{ font-family:var(--sans); font-size:16px; line-height:1.6; color:var(--ink-soft); margin-top:16px; max-width:520px; }

/* pace stats */
.pace{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:64px; }
.pace .v{ font-family:var(--serif); font-weight:600; font-size:92px; letter-spacing:-4px; line-height:1; color:var(--ink); }
.pace .l{ margin-top:16px; }

/* advisory services 2x2 */
.services{ display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--rule); border-left:1px solid var(--rule); }
.service{ padding:52px 48px; border-right:1px solid var(--rule); border-bottom:1px solid var(--rule); position:relative; transition:background .4s var(--ease); }
.service::before{ content:""; position:absolute; top:-1px; left:0; width:100%; height:2px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease); }
.service:hover{ background:var(--bg-alt); } .service:hover::before{ transform:scaleX(1); }
.service .sn{ font-family:var(--mono); font-size:11px; letter-spacing:1.4px; color:var(--accent); }
.service h3{ font-size:34px; letter-spacing:-1px; margin-top:24px; }
.service p{ font-family:var(--sans); font-size:17px; line-height:1.6; color:var(--ink-soft); margin-top:18px; max-width:520px; }

/* team */
.team{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:56px; border-top:1px solid var(--rule); padding-top:52px; }
.member .mono-tile{ aspect-ratio:4/5; background:var(--bg-alt); border:1px solid var(--rule); display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; }
.member .mono-tile .mg{ font-family:var(--serif); font-weight:600; font-size:88px; letter-spacing:-4px; color:var(--accent); }
.member .mono-tile .cap{ position:absolute; bottom:12px; left:14px; font-family:var(--mono); font-size:10px; letter-spacing:.6px; text-transform:uppercase; color:var(--muted); }
.member h3{ font-size:26px; letter-spacing:-.8px; margin-top:24px; }
.member .role{ font-family:var(--mono); font-size:11px; letter-spacing:1.4px; text-transform:uppercase; color:var(--accent); margin-top:8px; }
.member p{ font-family:var(--sans); font-size:15px; line-height:1.6; color:var(--ink-soft); margin-top:14px; }

/* contact */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:96px; align-items:start; }
.field{ margin-bottom:32px; }
.field label{ display:block; font-family:var(--mono); font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--muted); margin-bottom:12px; }
.field input, .field textarea{ width:100%; padding:12px 0; border:none; border-bottom:1px solid var(--rule); font-family:var(--serif); font-weight:600; font-size:22px; letter-spacing:-1px; color:var(--ink); background:transparent; outline:none; transition:border-color .3s; }
.field input:focus, .field textarea:focus{ border-color:var(--accent); }
.field textarea{ resize:vertical; }
.office{ padding-bottom:36px; margin-bottom:36px; border-bottom:1px solid var(--rule); }
.office:last-child{ border-bottom:none; }
.office h3{ font-size:44px; letter-spacing:-2px; } .office .tz{ font-family:var(--mono); font-size:11px; letter-spacing:1.4px; text-transform:uppercase; color:var(--accent); margin-top:6px; }
.office .addr{ font-family:var(--sans); font-size:16px; color:var(--ink-soft); margin-top:18px; line-height:1.6; }
.office a{ display:block; margin-top:6px; }

/* wide image band */
.imgband{ padding:0 64px; } .imgband .plate{ height:460px; }
