@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@400;500;600&display=swap');

:root { --ink:#182825; --muted:#60706c; --cream:#f5f2e9; --paper:#fbfaf5; --green:#174f42; --lime:#c8e978; --line:#d9ded8; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:'DM Sans',sans-serif; line-height:1.6; }
a { color:inherit; }
.wrap { width:min(1180px, calc(100% - 48px)); margin-inline:auto; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.site-header { height:88px; display:flex; align-items:center; justify-content:space-between; width:min(1280px,calc(100% - 48px)); margin:auto; border-bottom:1px solid var(--line); }
.brand { display:flex; gap:12px; align-items:center; text-decoration:none; font-size:14px; line-height:1.15; letter-spacing:.01em; }
.brand strong { display:block; font-weight:600; }
.brand-mark { display:grid; place-items:center; flex:0 0 38px; width:38px; height:38px; border-radius:50%; background:var(--green); color:var(--lime); font:600 18px Manrope,sans-serif; }
.site-nav { display:flex; align-items:center; gap:36px; font-size:14px; }
.site-nav a { text-decoration:none; color:var(--muted); }
.site-nav a:hover,.site-nav a.active { color:var(--ink); }
.site-nav .nav-cta { color:var(--white); background:var(--green); padding:11px 18px; border-radius:3px; }
.site-nav .nav-cta:hover,.site-nav .nav-cta.active { color:var(--white); background:#0e4035; }
.nav-toggle { display:none; border:0; background:none; padding:10px; }
.nav-toggle span:not(.sr-only) { display:block; width:24px; height:2px; background:var(--ink); margin:5px; }
.hero { min-height:690px; display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:70px; padding-block:85px; }
.eyebrow { margin:0 0 22px; color:var(--green); font:600 12px Manrope,sans-serif; letter-spacing:.16em; text-transform:uppercase; }
h1,h2,h3,blockquote { font-family:Manrope,sans-serif; font-weight:500; line-height:1.08; margin-top:0; }
h1 { font-size:clamp(48px,5vw,72px); letter-spacing:-.045em; margin-bottom:28px; }
h1 em { color:var(--green); font-style:normal; }
.hero-lede { max-width:650px; color:var(--muted); font-size:19px; line-height:1.7; }
.button-row { display:flex; align-items:center; gap:32px; margin-top:38px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:32px; min-height:52px; border:0; border-radius:3px; padding:13px 20px; text-decoration:none; font:500 14px 'DM Sans',sans-serif; cursor:pointer; }
.button.primary { color:white; background:var(--green); }
.button.primary:hover { background:#0e4035; }
.button span,.text-link span { color:var(--lime); font-size:19px; }
.text-link { text-decoration:none; font-weight:500; font-size:14px; }
.hero-visual { position:relative; height:490px; border-radius:4px; background:var(--green); overflow:hidden; }
.hero-visual::before,.hero-visual::after { content:""; position:absolute; border:1px solid rgba(200,233,120,.22); border-radius:50%; width:420px; height:420px; right:-180px; top:-100px; }
.hero-visual::after { width:320px; height:320px; left:-190px; top:280px; }
.signal-card { position:absolute; z-index:2; width:230px; padding:18px 20px; background:rgba(255,255,255,.96); box-shadow:0 12px 35px rgba(0,0,0,.15); }
.signal-card span { float:right; color:#8d9b97; font:500 11px Manrope,sans-serif; }
.signal-card p { margin:0 0 2px; font-weight:600; color:var(--ink); }
.signal-card small { color:var(--muted); }
.card-one { left:40px; top:55px; }.card-two { right:38px; top:195px; }.card-three { left:70px; bottom:45px; border-left:4px solid var(--lime); }
.signal-line { position:absolute; z-index:1; border:1px dashed rgba(200,233,120,.65); transform-origin:left; }
.line-one { width:230px; left:190px; top:160px; transform:rotate(25deg); }.line-two { width:210px; left:195px; top:335px; transform:rotate(-27deg); }
.services { padding-block:110px 130px; }
.section-intro { max-width:600px; margin-bottom:60px; }
.section-intro h2,.story h2,.cta h2 { font-size:clamp(35px,4vw,50px); letter-spacing:-.035em; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); }
.service-grid article { padding:28px 28px 10px 0; border-right:1px solid var(--line); min-height:260px; }
.service-grid article:not(:first-child) { padding-left:28px; }
.service-grid article:last-child { border-right:0; }
.service-number { color:#8d9b97; font:500 11px Manrope,sans-serif; }
.service-grid h3 { margin:44px 0 16px; font-size:21px; }
.service-grid p { color:var(--muted); font-size:14px; }
.principle-band { background:var(--green); color:white; padding:95px 0; }
.principle-inner { display:grid; grid-template-columns:1fr 2.3fr; align-items:start; }
.principle-inner>p { color:var(--lime); text-transform:uppercase; font-size:11px; letter-spacing:.15em; }
blockquote { margin:0; font-size:clamp(36px,5vw,62px); letter-spacing:-.04em; }
.cta { display:flex; align-items:center; justify-content:space-between; gap:40px; padding-block:105px; }
.cta h2 { margin-bottom:0; }
.site-footer { display:grid; grid-template-columns:1fr auto; gap:40px; align-items:center; padding-block:42px; border-top:1px solid var(--line); font-size:13px; }
.footer-brand { display:flex; align-items:center; gap:12px; }.footer-brand p { line-height:1.4; margin:0; }.footer-brand small,.copyright { color:var(--muted); }
.footer-links { display:flex; gap:30px; }.footer-links a { text-decoration:none; }.copyright { grid-column:1/-1; margin:0; }
.page-hero { padding:110px 0 100px; max-width:980px; margin-left:max(24px,calc((100% - 1180px)/2)); }
.page-hero>p:last-child { color:var(--muted); font-size:19px; max-width:680px; }
.story { display:grid; grid-template-columns:1fr 1fr; gap:110px; padding:110px 0; border-top:1px solid var(--line); }
.story-copy { color:var(--muted); font-size:17px; }.story-copy p:first-child { color:var(--ink); font-size:21px; }
.process-section { background:var(--cream); padding:110px 0; }.process-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,1fr); }
.process-list li { padding:30px; border-left:1px solid #ccd3ca; }.process-list li:first-child { padding-left:0; border-left:0; }.process-list span { color:var(--green); font-size:12px; }.process-list h3 { margin:45px 0 12px; }.process-list p { color:var(--muted); font-size:14px; }
.contact-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:110px; padding:110px 0 130px; }
.contact-copy>p:not(.eyebrow) { color:var(--muted); font-size:18px; max-width:530px; }.contact-note { margin-top:70px; padding-top:26px; border-top:1px solid var(--line); }.contact-note span,.contact-note strong { display:block; }.contact-note span { color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.12em; }.contact-note strong { margin:4px 0; font:500 24px Manrope,sans-serif; }.contact-note p { margin:0; color:var(--muted); font-size:14px; }
.contact-form { background:var(--cream); padding:46px; }.contact-form label { display:block; margin-bottom:22px; color:var(--ink); font-size:13px; font-weight:500; }.contact-form label span { color:var(--muted); font-weight:400; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.contact-form input,.contact-form textarea { display:block; width:100%; margin-top:8px; border:1px solid #cdd4cd; border-radius:2px; padding:13px 14px; background:var(--paper); font:inherit; color:var(--ink); }.contact-form textarea { resize:vertical; }.contact-form input:focus,.contact-form textarea:focus { outline:2px solid var(--lime); border-color:var(--green); }.contact-form .button { width:100%; }.form-status { min-height:24px; margin:14px 0 0; text-align:center; color:var(--green); font-size:13px; }
@media (max-width:850px) { .site-header { height:74px; }.nav-toggle { display:block; }.site-nav { display:none; position:absolute; z-index:10; top:74px; left:0; right:0; padding:24px; background:var(--paper); border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:10px; }.site-nav.open { display:flex; }.site-nav a { padding:10px; }.hero { grid-template-columns:1fr; padding-top:70px; }.hero-visual { height:430px; }.service-grid,.process-list { grid-template-columns:1fr 1fr; }.service-grid article:nth-child(2) { border-right:0; }.service-grid article:nth-child(3),.service-grid article:nth-child(4) { border-top:1px solid var(--line); }.principle-inner,.story,.contact-layout { grid-template-columns:1fr; gap:50px; }.contact-layout { padding-top:75px; }.page-hero { padding-block:75px; }.cta { align-items:flex-start; flex-direction:column; }.footer-links { display:none; } }
@media (max-width:540px) { .wrap,.site-header { width:calc(100% - 32px); }.brand span:last-child { max-width:190px; }.hero { min-height:0; padding-block:60px; gap:50px; }.hero-visual { height:390px; }.signal-card { width:205px; }.card-one { left:18px; }.card-two { right:18px; }.card-three { left:35px; }.button-row { align-items:flex-start; flex-direction:column; }.service-grid,.process-list { grid-template-columns:1fr; }.service-grid article,.service-grid article:not(:first-child),.process-list li,.process-list li:first-child { padding:28px 0; border-right:0; border-left:0; border-top:1px solid var(--line); min-height:auto; }.service-grid h3,.process-list h3 { margin-top:25px; }.principle-band { padding:70px 0; }.contact-form { padding:28px 20px; }.field-row { grid-template-columns:1fr; gap:0; }.site-footer { grid-template-columns:1fr; }.copyright { grid-column:1; } }
