:root{--ink:#11110f;--paper:#f6f5f0;--red:#c9362b;--muted:#686861;--line:#d7d5cd;--max:1240px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.55}a{color:inherit}.shell{width:min(calc(100% - 48px),var(--max));margin:auto}.top{position:sticky;top:0;z-index:20;background:rgba(246,245,240,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.nav{height:84px;display:flex;align-items:center;justify-content:space-between}.brand{text-decoration:none;font-weight:800;letter-spacing:.06em;font-size:1.1rem}.brand span{color:var(--red)}.navlinks{display:flex;gap:30px;align-items:center}.navlinks a{text-decoration:none;font-size:.89rem}.navlinks a:hover,.navlinks a[aria-current=page]{color:var(--red)}.menu{display:none;border:0;background:none;font:inherit;font-weight:700}.hero{min-height:calc(100vh - 84px);display:grid;grid-template-columns:1.45fr .55fr;gap:40px;align-items:end;padding:80px 0 64px}.eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.18em;color:var(--red);font-weight:700}.hero h1,.page-hero h1{font-size:clamp(3.4rem,8.4vw,8rem);line-height:.88;letter-spacing:-.075em;margin:25px 0 35px;max-width:1050px}.hero h1 em{font-style:normal;color:var(--red)}.hero-aside{border-left:1px solid var(--line);padding-left:28px;padding-bottom:10px}.hero-aside p{font-size:1.08rem}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.button{display:inline-block;padding:13px 18px;border:1px solid var(--ink);text-decoration:none;font-weight:700;font-size:.88rem}.button.primary{background:var(--ink);color:var(--paper)}.button:hover{background:var(--red);border-color:var(--red);color:white}.statline{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stat{padding:28px 0}.stat+.stat{border-left:1px solid var(--line);padding-left:28px}.stat strong{display:block;font-size:1.6rem}.stat span{color:var(--muted);font-size:.9rem}.section{padding:110px 0}.section-head{display:grid;grid-template-columns:1fr 2fr;gap:40px;margin-bottom:55px}.section h2{font-size:clamp(2.3rem,5vw,4.5rem);line-height:.95;letter-spacing:-.055em;margin:0}.lead{font-size:1.35rem;max-width:720px;margin:0}.services{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink)}.service{padding:35px 45px 55px 0}.service+.service{border-left:1px solid var(--ink);padding-left:45px}.number{color:var(--red);font-size:.8rem;font-weight:700}.service h3{font-size:2rem;line-height:1.05;margin:20px 0}.text-link{display:inline-block;margin-top:22px;font-weight:700;text-decoration:none;border-bottom:1px solid}.dark{background:var(--ink);color:var(--paper)}.process{display:grid;grid-template-columns:repeat(4,1fr);margin-top:60px;border-top:1px solid #3e3e39}.step{padding:24px 28px 20px 0}.step+.step{border-left:1px solid #3e3e39;padding-left:28px}.step b{color:#e45a4e}.step h3{font-size:1.15rem}.step p{color:#b9b8b0;font-size:.92rem}.split{display:grid;grid-template-columns:1fr 1fr;gap:70px}.quote{font-size:clamp(2rem,4vw,3.6rem);line-height:1.04;letter-spacing:-.045em;margin:0}.footer{padding:60px 0 35px;border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.footer a{text-decoration:none}.fine{margin-top:55px;color:var(--muted);font-size:.78rem;display:flex;justify-content:space-between}.page-hero{padding:105px 0 80px}.page-hero h1{font-size:clamp(3.5rem,8vw,7rem);max-width:1000px}.page-hero .lead{margin-left:34%;}.detail-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.detail-grid h2{font-size:2.8rem}.list{border-top:1px solid var(--line)}.list article{display:grid;grid-template-columns:70px 1fr;padding:25px 0;border-bottom:1px solid var(--line)}.list b{color:var(--red)}.list h3{margin:0 0 8px;font-size:1.25rem}.list p{margin:0;color:var(--muted)}.statement{padding:90px 0;border-top:1px solid var(--line);font-size:clamp(2.2rem,5vw,4.8rem);line-height:.98;letter-spacing:-.055em}.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px}.contact-card{border-top:1px solid var(--ink);padding-top:24px}.contact-card a{font-size:clamp(1.7rem,4vw,3.4rem);letter-spacing:-.04em;text-decoration:none}.contact-card p{color:var(--muted)}.red{color:var(--red)}
@media(max-width:800px){.shell{width:min(calc(100% - 30px),var(--max))}.nav{height:70px}.menu{display:block}.navlinks{display:none;position:absolute;top:70px;left:0;right:0;background:var(--paper);padding:24px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.navlinks.open{display:flex}.hero{min-height:auto;grid-template-columns:1fr;padding:70px 0 45px}.hero h1,.page-hero h1{font-size:clamp(3.2rem,17vw,5rem)}.hero-aside{border-left:0;border-top:1px solid var(--line);padding:24px 0}.statline{grid-template-columns:1fr}.stat+.stat{border-left:0;border-top:1px solid var(--line);padding-left:0}.section{padding:75px 0}.section-head,.split,.detail-grid,.contact-grid{grid-template-columns:1fr;gap:30px}.services,.process{grid-template-columns:1fr}.service+.service,.step+.step{border-left:0;border-top:1px solid var(--ink);padding-left:0}.page-hero .lead{margin-left:0}.footer-grid{grid-template-columns:1fr}.fine{display:block}.lead{font-size:1.16rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.brand{display:inline-flex;flex-direction:column;align-items:flex-start;font-family:"Avenir Next",Avenir,"Century Gothic",Futura,sans-serif;font-size:2rem;font-weight:300;letter-spacing:-.055em;line-height:.82;text-transform:capitalize}.brand span{margin-top:8px;font-family:Arial,Helvetica,sans-serif;font-size:.56rem;font-weight:700;letter-spacing:.22em;line-height:1;text-transform:uppercase}.brand span::before{content:"Since "}
.brand{position:relative;display:block;width:176px;height:54px;background:url('/lancelot-wordmark.svg') top left/176px auto no-repeat;font-size:0;overflow:hidden}.brand span{display:none}.brand::after{content:"SINCE 2004";position:absolute;left:4px;top:42px;font-family:Arial,Helvetica,sans-serif;font-size:.52rem;font-weight:700;line-height:1;letter-spacing:.24em;color:var(--red)}
.brand::before{content:"";position:absolute;left:0;right:0;top:39px;bottom:0;background:var(--paper)}.brand::after{z-index:1}
.hero{min-height:auto;align-items:center;padding:105px 0 80px}.contract-page .split p{max-width:none;margin:0;font-size:1.2rem;line-height:1.55}
@media(max-width:800px){.hero{padding:70px 0 45px}}
