:root { --ink:#151614; --paper:#f2f0e9; --lime:#d6ff3f; --line:#cac8bf; --muted:#62645f; --dark:#171a16; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial, Helvetica, sans-serif; }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }
.shell { width:min(1220px, calc(100% - 64px)); margin-inline:auto; }
.site-header { height:108px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); position:relative; z-index:10; }
.brand { display:inline-flex; align-items:center; }
.brand img { display:block; width:132px; height:auto; }
.site-header nav { display:flex; align-items:center; gap:34px; font-size:14px; font-weight:700; }
.site-header nav a { transition:opacity .2s; }
.site-header nav a:hover { opacity:.55; }
.nav-cta { border:1px solid var(--ink); padding:13px 18px; border-radius:100px; }
.hero { min-height:720px; padding-top:88px; position:relative; overflow:hidden; }
.hero-kicker,.eyebrow { text-transform:uppercase; letter-spacing:.13em; font-size:12px; font-weight:800; }
.hero-kicker { display:flex; align-items:center; gap:10px; }
.hero-kicker span { width:8px; height:8px; background:#7fa000; border-radius:50%; }
.hero h1 { font-size:clamp(58px,8.2vw,118px); line-height:.88; letter-spacing:-.07em; max-width:1050px; margin:50px 0 58px; font-weight:700; position:relative; z-index:2; }
.hero-bottom { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:end; position:relative; z-index:2; }
.hero-bottom>p { max-width:580px; margin:0; font-size:20px; line-height:1.55; color:#3f413d; }
.hero-actions { display:flex; gap:12px; justify-content:flex-end; }
.button { min-height:54px; padding:0 23px; border-radius:100px; display:inline-flex; align-items:center; justify-content:center; gap:28px; font-size:14px; font-weight:800; border:0; cursor:pointer; }
.button-primary { background:var(--ink); color:white; }
.button-secondary { border:1px solid var(--line); background:rgba(255,255,255,.25); }
.button-light { background:var(--lime); color:var(--ink); }
.hero-orbit { position:absolute; width:360px; height:360px; right:5%; top:120px; opacity:.7; }
.orbit { position:absolute; inset:0; border:1px solid #a7a79e; border-radius:50%; }
.orbit-one { transform:rotate(55deg) scaleY(.35); }
.orbit-two { transform:rotate(-55deg) scaleY(.35); }
.orbit-core { position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%); width:86px; height:86px; border-radius:50%; background:var(--lime); display:grid; place-items:center; font-size:37px; font-weight:800; }
.services-section,.clients,.contact { padding-block:130px; }
.section-label { padding-bottom:22px; border-bottom:1px solid var(--line); font-size:11px; text-transform:uppercase; letter-spacing:.16em; font-weight:800; color:var(--muted); }
.section-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:90px; padding-top:70px; }
.section-grid h2,.clients h2,.contact h2 { font-size:clamp(42px,5vw,68px); line-height:1; letter-spacing:-.05em; margin:0; }
.section-intro { max-width:360px; margin-top:34px; font-size:16px; line-height:1.65; color:var(--muted); }
.accordion { border-top:1px solid var(--ink); }
.accordion-item { border-bottom:1px solid var(--line); }
.accordion-trigger { width:100%; background:none; border:0; padding:27px 0; text-align:left; display:grid; grid-template-columns:52px 1fr 34px; gap:12px; align-items:center; cursor:pointer; color:var(--ink); }
.service-number { font:12px var(--font-geist-mono),monospace; color:#81837c; }
.service-title { font-size:clamp(20px,2.2vw,29px); font-weight:700; letter-spacing:-.025em; }
.service-toggle { width:32px; height:32px; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; font-size:20px; transition:.2s; }
.is-open .service-toggle { background:var(--lime); border-color:var(--lime); }
.accordion-panel { display:grid; grid-template-rows:0fr; transition:grid-template-rows .38s ease; }
.accordion-panel-inner { overflow:hidden; padding-left:64px; }
.is-open .accordion-panel { grid-template-rows:1fr; }
.is-open .accordion-panel-inner { padding-bottom:30px; }
.accordion-panel p { max-width:570px; margin:0 0 18px; font-size:16px; line-height:1.6; color:var(--muted); }
.text-link { display:inline-flex; gap:24px; align-items:center; font-weight:800; font-size:13px; border-bottom:1px solid currentColor; padding-bottom:6px; }
.approach { background:var(--dark); color:#f2f0e9; }
.approach-inner { padding-block:120px 135px; }
.section-label.light { border-color:#44473f; color:#a8aaa3; }
.approach-copy { width:min(790px,80%); margin:75px 0 0 auto; }
.approach-copy h2 { font-size:clamp(48px,6vw,82px); line-height:.98; letter-spacing:-.055em; margin:25px 0 48px; }
.approach-copy>p:not(.eyebrow) { max-width:650px; font-size:19px; line-height:1.65; color:#b9bbb4; }
.approach-copy .approach-emphasis { color:white !important; font-weight:700; }
.light-link { margin-top:25px; color:var(--lime); }
.clients-row { display:grid; grid-template-columns:1fr 1fr; gap:80px; padding-top:72px; align-items:start; }
.client-list { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }
.client-list span { padding:24px 0; border-bottom:1px solid var(--line); font-size:18px; font-weight:700; }
.contact { border-top:1px solid var(--line); }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; padding-top:70px; }
.contact-grid>div>p { max-width:470px; color:var(--muted); font-size:17px; line-height:1.6; margin:30px 0; }
.contact-email { font-size:17px; font-weight:800; border-bottom:1px solid; }
.contact-form { display:grid; gap:26px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.contact-form label { display:grid; gap:10px; font-size:12px; font-weight:800; }
.contact-form input,.contact-form textarea { width:100%; border:0; border-bottom:1px solid #8f918a; background:transparent; padding:10px 0; outline:none; border-radius:0; }
.contact-form input:focus,.contact-form textarea:focus { border-color:var(--ink); }
.contact-form textarea { resize:vertical; }
.contact-form .button { justify-self:start; margin-top:10px; }
.website-field { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.form-status { margin-bottom:30px; padding:16px 18px; border:1px solid var(--line); font-size:14px; line-height:1.5; }
.form-status.success { border-color:#7d9b16; background:#e9f5bd; }
.form-status.error { border-color:#9a5149; background:#f6d9d5; }
.footer { min-height:130px; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; color:var(--muted); font-size:12px; }
.footer .brand { color:var(--ink); }
.footer p:last-child { text-align:right; }
.cookie-settings-link { margin-top:6px; padding:0; border:0; border-bottom:1px solid currentColor; background:none; color:inherit; font:inherit; cursor:pointer; }
.cookie-banner { position:fixed; right:24px; bottom:24px; z-index:1000; width:min(430px,calc(100% - 32px)); padding:24px; border:1px solid #373a34; background:var(--dark); color:#f2f0e9; box-shadow:0 18px 55px rgba(0,0,0,.2); }
.cookie-banner[hidden] { display:none; }
.cookie-banner h2 { margin:0 0 10px; font-size:20px; letter-spacing:-.025em; }
.cookie-banner p { margin:0; color:#c5c7c0; font-size:14px; line-height:1.55; }
.cookie-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:20px; }
.cookie-button { min-height:42px; padding:0 16px; border-radius:100px; font-size:13px; font-weight:800; cursor:pointer; }
.cookie-reject { border:1px solid #686b63; background:transparent; color:white; }
.cookie-accept { border:1px solid var(--lime); background:var(--lime); color:var(--ink); }
.cookie-button:focus-visible,.cookie-settings-link:focus-visible { outline:3px solid #9cb900; outline-offset:3px; }
.service-hero { padding:55px 0 105px; }
.back-link { display:inline-block; margin-bottom:80px; font-size:13px; font-weight:800; }
.service-hero-grid { display:grid; grid-template-columns:16% 84%; }
.service-index { color:#85877f; font-family:var(--font-geist-mono),monospace; }
.service-hero h1 { font-size:clamp(58px,8vw,112px); line-height:.9; letter-spacing:-.065em; margin:25px 0 45px; max-width:1000px; }
.service-lead { font-size:clamp(22px,2.6vw,34px); line-height:1.4; max-width:850px; margin:0; color:#444640; }
.service-detail { padding-block:105px 130px; border-top:1px solid var(--line); }
.service-detail-grid { display:grid; grid-template-columns:1fr .75fr; gap:100px; padding:65px 0 0 16%; }
.service-body p { font-size:21px; line-height:1.65; margin:0 0 26px; }
.service-detail ul { list-style:none; padding:0; margin:0; border-top:1px solid var(--line); }
.service-detail li { padding:18px 0; border-bottom:1px solid var(--line); display:flex; gap:15px; font-weight:700; line-height:1.4; }
.service-detail li span { color:#789600; }
.service-cta { background:var(--dark); color:white; }
.service-cta-inner { min-height:470px; display:flex; justify-content:space-between; align-items:center; gap:80px; }
.service-cta h2 { font-size:clamp(42px,5.3vw,72px); line-height:1.02; letter-spacing:-.05em; margin:24px 0 0; }

@media (max-width:800px) {
  .shell { width:min(100% - 34px,1220px); }
  .site-header { height:82px; }
  .site-header nav a:not(.nav-cta) { display:none; }
  .nav-cta { padding:10px 14px; }
  .hero { min-height:700px; padding-top:62px; }
  .hero h1 { font-size:clamp(53px,16vw,79px); margin:38px 0 44px; }
  .hero-bottom,.section-grid,.clients-row,.contact-grid,.service-detail-grid { grid-template-columns:1fr; gap:45px; }
  .hero-actions { justify-content:flex-start; flex-wrap:wrap; }
  .hero-bottom>p { font-size:18px; }
  .hero-orbit { width:260px; height:260px; right:-115px; top:90px; opacity:.4; }
  .services-section,.clients,.contact { padding-block:85px; }
  .section-grid { padding-top:48px; }
  .approach-inner { padding-block:85px 100px; }
  .approach-copy { width:100%; margin-top:50px; }
  .client-list { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; gap:26px; }
  .footer { grid-template-columns:1fr; gap:8px; padding-block:32px; }
  .footer p { margin:0; }
  .footer p:last-child { text-align:left; }
  .cookie-banner { right:16px; bottom:16px; padding:20px; }
  .cookie-actions { justify-content:stretch; }
  .cookie-button { flex:1; }
  .service-hero { padding-top:35px; }
  .back-link { margin-bottom:55px; }
  .service-hero-grid { grid-template-columns:1fr; gap:25px; }
  .service-hero h1 { font-size:clamp(52px,15vw,78px); }
  .service-detail-grid { padding-left:0; }
  .service-cta-inner { min-height:520px; flex-direction:column; justify-content:center; align-items:flex-start; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .accordion-panel { transition:none; } }
