:root { --paper:#fff; --ink:#18394b; --muted:#566670; --line:#d3dce0; --wash:#edf3f5; --gutter:clamp(24px,6vw,96px); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:32px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; font-size:18px; line-height:1.5; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration-thickness:1px; text-underline-offset:5px; }
a:hover { text-decoration-thickness:2px; }
a:focus-visible { outline:3px solid var(--ink); outline-offset:6px; }
::selection { background:#cfdee6; color:var(--ink); }
.wrap { max-width:1600px; margin-inline:auto; padding-inline:var(--gutter); }
.skip-link { position:fixed; top:12px; left:12px; padding:12px 20px; background:var(--ink); color:white; z-index:10; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.header { display:flex; align-items:center; justify-content:space-between; gap:24px; height:108px; }
.wordmark { font-family:Georgia,'Times New Roman',serif; font-weight:700; font-size:35px; letter-spacing:-2px; line-height:1; text-decoration:none; }
.brand-dot { display:none; }
.header nav { display:flex; gap:36px; margin-left:auto; margin-right:48px; font-size:15px; }
.header nav a { text-decoration:none; }
.header nav a:hover { text-decoration:underline; }
.header-contact { font-size:15px; }
.hero { padding-top:80px; padding-bottom:100px; }
.eyebrow { font-size:15px; margin:0 0 32px; }
h1,h2,h3,p { margin-top:0; }
h1,.contact h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.065em; }
h1 { font-size:clamp(62px,8vw,124px); line-height:1.04; margin-bottom:60px; }
.hero-bottom { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:end; }
.hero-note { font-size:15px; color:var(--muted); margin-bottom:0; }
.intro { font-size:23px; line-height:1.45; max-width:510px; margin-bottom:28px; }
.button { display:inline-block; font-size:16px; padding-block:8px; }
.services { display:grid; grid-template-columns:.85fr 2fr; gap:64px; padding-block:64px 80px; border-top:1px solid var(--line); }
.section-heading h2,.approach>.eyebrow { font-family:Arial,Helvetica,sans-serif; font-size:16px; font-weight:400; letter-spacing:0; line-height:1.5; margin:0; }
.service-list { display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.service h3 { font-size:26px; line-height:1.2; font-weight:400; letter-spacing:-.025em; margin-bottom:18px; }
.service p { color:var(--muted); font-size:17px; margin-bottom:18px; }
.service p.service-detail { font-size:15px; margin-bottom:0; }
.approach { display:grid; grid-template-columns:.85fr 2fr; gap:64px; padding-block:64px 80px; border-top:1px solid var(--line); }
.approach h2 { font-size:clamp(30px,3vw,44px); font-weight:400; letter-spacing:-.035em; line-height:1.2; margin-bottom:24px; }
.approach p:not(.eyebrow) { color:var(--muted); max-width:590px; margin:0; }
.contact { margin-inline:var(--gutter); background:var(--wash); }
.contact-inner { padding-top:66px; padding-bottom:72px; padding-inline:clamp(24px,5vw,80px); }
.contact .eyebrow { margin-bottom:16px; }
.contact h2 { font-size:clamp(46px,5vw,76px); line-height:1.1; margin-bottom:24px; }
.email { font-size:clamp(23px,3vw,38px); letter-spacing:-.035em; overflow-wrap:anywhere; }
.contact-inner>p:last-child { font-size:16px; color:var(--muted); margin-top:26px; margin-bottom:0; }
.footer { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:40px; }
.footer .wordmark { font-size:27px; }
.footer p { font-size:14px; color:var(--muted); margin:0; }
@media(max-width:1000px) {
 .header nav { margin-right:24px; gap:24px; }
 .hero { padding-top:52px; padding-bottom:72px; }
 .hero-bottom,.services,.approach { gap:36px; }
 .intro { font-size:20px; }
 .services,.approach { grid-template-columns:.7fr 2fr; }
 .service-list { gap:28px; }
 .service h3 { font-size:24px; }
}
@media(max-width:700px) {
 .header { height:86px; gap:12px; }
 .wordmark { font-size:32px; }
 .header nav { display:none; }
 .hero { padding-top:42px; padding-bottom:56px; }
 .eyebrow { font-size:14px; margin-bottom:24px; }
 h1 { font-size:clamp(44px,9vw,66px); letter-spacing:-.06em; line-height:1.06; margin-bottom:36px; }
 .hero-bottom { grid-template-columns:1fr; gap:24px; }
 .hero-note { display:none; }
 .intro { font-size:20px; max-width:400px; margin-bottom:18px; }
 .services,.approach { grid-template-columns:1fr; gap:30px; padding-block:40px 48px; }
 .service-list { grid-template-columns:1fr; gap:32px; }
 .service h3 { font-size:26px; margin-bottom:14px; }
 .service p { margin-bottom:12px; }
 .approach h2 { font-size:34px; }
 .approach p:not(.eyebrow) { font-size:17px; }
 .contact { margin-inline:12px; }
 .contact-inner { padding:40px 24px 44px; }
 .contact h2 { font-size:44px; }
 .email { font-size:clamp(22px,5.6vw,34px); }
 .contact-inner>p:last-child br { display:none; }
 .footer { flex-wrap:wrap; gap:18px; padding-block:32px; }
 .footer .wordmark { width:100%; }
 .footer p { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
