:root { --green:#00513f; --green-deep:#003f32; --lime:#d8efb1; --cream:#f5f3ec; --white:#fff; --ink:#262a28; --muted:#686d69; --line:rgba(0,81,63,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:Arial,Helvetica,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
p { text-wrap:pretty; }
.site-header { height:104px; display:flex; align-items:center; justify-content:space-between; padding:0 5vw; background:rgba(245,243,236,.94); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; }
.brand { display:block; width:242px; }
.brand img,.footer-brand img { display:block; width:100%; height:auto; }
nav { display:flex; align-items:center; gap:2.2rem; font-size:.9rem; font-weight:700; }
nav a:not(.nav-cta) { padding:.65rem 0; border-bottom:1px solid transparent; }
nav a:not(.nav-cta):hover { border-color:var(--green); }
.nav-cta { border:1px solid var(--green); border-radius:999px; padding:.8rem 1.35rem; color:var(--green); transition:.2s ease; }
.nav-cta:hover { color:white; background:var(--green); }
.hero { min-height:calc(100svh - 104px); display:grid; grid-template-columns:57% 43%; overflow:hidden; }
.hero-copy { padding:7vw 5vw 6vw; position:relative; z-index:2; }
.eyebrow { color:var(--green); font-size:.72rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; margin:0 0 2rem; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:clamp(3.2rem,6vw,7.5rem); line-height:.93; letter-spacing:-.065em; margin-bottom:0; max-width:960px; font-weight:680; }
h1 em,h2 em { color:var(--green); font-family:Georgia,serif; font-weight:400; }
.hero-text { max-width:650px; font-size:clamp(1.05rem,1.5vw,1.35rem); line-height:1.6; color:var(--muted); margin:2.4rem 0 2.2rem; }
.hero-actions { display:flex; align-items:center; gap:2rem; flex-wrap:wrap; }
.button { display:inline-flex; min-height:52px; align-items:center; justify-content:center; border-radius:999px; padding:0 1.55rem; font-weight:800; transition:.2s ease; }
.button-primary { background:var(--green); color:white; }
.button-primary:hover { background:var(--green-deep); transform:translateY(-2px); }
.text-link { font-weight:800; border-bottom:1px solid rgba(38,42,40,.35); padding-bottom:.3rem; }
.text-link span { color:var(--green); margin-left:.25rem; }
.hero-visual { position:relative; background:var(--green); min-height:660px; overflow:hidden; }
.orb { position:absolute; border-radius:50%; }
.orb-one { width:36vw; height:36vw; min-width:460px; min-height:460px; background:var(--lime); right:-11vw; top:-5vw; }
.orb-two { width:22vw; height:22vw; min-width:300px; min-height:300px; border:1px solid rgba(255,255,255,.55); left:-7vw; bottom:-5vw; }
.hero-card { position:absolute; left:12%; top:29%; width:76%; padding:clamp(2rem,4vw,4.5rem); background:rgba(245,243,236,.97); box-shadow:0 30px 80px rgba(0,0,0,.2); transform:rotate(-3deg); display:grid; gap:1rem; }
.hero-card span { font-family:Georgia,serif; color:var(--green); font-size:clamp(1.6rem,3vw,3.6rem); font-style:italic; }
.hero-card strong { color:#7d9f7a; font-size:1.2rem; }
.vertical-note { position:absolute; right:1.4rem; bottom:2rem; margin:0; color:rgba(255,255,255,.75); font-size:.65rem; letter-spacing:.2em; writing-mode:vertical-rl; }
.section-pad { padding:clamp(5.5rem,10vw,10rem) 5vw; }
.section-kicker { display:flex; align-items:center; gap:1rem; color:var(--green); margin-bottom:clamp(3.5rem,7vw,7rem); }
.section-kicker span { display:grid; place-items:center; border:1px solid currentColor; width:34px; height:34px; border-radius:50%; font-size:.65rem; }
.section-kicker p { margin:0; text-transform:uppercase; font-size:.72rem; font-weight:800; letter-spacing:.15em; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:start; }
.about h2,.services h2,.contact h2 { font-size:clamp(3rem,5vw,6.5rem); line-height:.98; letter-spacing:-.055em; margin:0; }
.about-copy { max-width:760px; }
.about-copy p { color:var(--muted); font-size:1.03rem; line-height:1.75; }
.about-copy .lead { color:var(--ink); font-size:clamp(1.2rem,1.9vw,1.6rem); line-height:1.55; }
.values-row { margin-top:clamp(4rem,8vw,8rem); display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.values-row div { padding:1.6rem 1.2rem 1.6rem 0; display:grid; gap:1rem; border-right:1px solid var(--line); }
.values-row div:not(:first-child) { padding-left:1.2rem; }
.values-row div:last-child { border-right:0; }
.values-row span { font-size:.68rem; color:var(--green); }
.values-row strong { font-size:.95rem; }
.services { background:var(--green); color:white; }
.section-kicker.light { color:var(--lime); }
.services-heading { display:grid; grid-template-columns:1.45fr .55fr; align-items:end; gap:6vw; margin-bottom:5rem; }
.services h2 em { color:var(--lime); }
.services-heading > p { color:rgba(255,255,255,.68); font-size:1.05rem; line-height:1.65; margin:0 0 .5rem; }
.service-list { border-top:1px solid rgba(255,255,255,.25); }
.service-card { display:grid; grid-template-columns:70px minmax(230px,.8fr) 1fr 40px; gap:2rem; align-items:center; padding:2rem 0; border-bottom:1px solid rgba(255,255,255,.25); transition:.25s ease; }
.service-card:hover { padding-left:1rem; padding-right:1rem; background:rgba(255,255,255,.06); }
.service-number { color:var(--lime); font-size:.68rem; }
.service-card h3 { font-size:clamp(1.35rem,2.2vw,2.3rem); letter-spacing:-.03em; margin:0; }
.service-card p { color:rgba(255,255,255,.66); line-height:1.6; margin:0; max-width:600px; }
.service-arrow { font-size:1.5rem; color:var(--lime); }
.approach-grid { display:grid; grid-template-columns:1fr 1fr; gap:10vw; }
.statement { position:sticky; top:150px; align-self:start; }
.statement p { font-family:Georgia,serif; font-style:italic; color:var(--green); font-size:clamp(2rem,3.7vw,4.8rem); line-height:1.15; margin-bottom:2rem; }
.statement strong { display:block; font-size:1rem; max-width:410px; line-height:1.6; }
.steps { list-style:none; margin:0; padding:0; }
.steps li { display:grid; grid-template-columns:52px 1fr; gap:1.2rem; border-top:1px solid var(--line); padding:2rem 0 2.3rem; }
.steps li:last-child { border-bottom:1px solid var(--line); }
.steps li > span { color:var(--green); font-size:.68rem; padding-top:.35rem; }
.steps strong { font-size:clamp(1.4rem,2.1vw,2rem); }
.steps p { color:var(--muted); line-height:1.65; margin:.8rem 0 0; }
.contact { position:relative; overflow:hidden; background:var(--green-deep); color:white; padding:clamp(6rem,11vw,11rem) 5vw 4rem; }
.contact .eyebrow { color:var(--lime); }
.contact h2 { max-width:1100px; position:relative; }
.contact h2 em { color:var(--lime); }
.contact-intro { max-width:620px; color:rgba(255,255,255,.7); font-size:1.15rem; line-height:1.65; margin:2.2rem 0; position:relative; }
.button-light { background:var(--lime); color:var(--green-deep); gap:.6rem; position:relative; }
.button-light:hover { background:white; transform:translateY(-2px); }
.contact-orb { position:absolute; width:48vw; height:48vw; border:1px solid rgba(216,239,177,.28); border-radius:50%; right:-14vw; top:-11vw; }
.contact-orb::after { content:""; position:absolute; width:54%; height:54%; background:var(--lime); border-radius:50%; right:9%; top:11%; opacity:.94; }
.contact-details { position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; margin-top:clamp(5rem,10vw,10rem); padding-top:2rem; border-top:1px solid rgba(255,255,255,.24); }
.contact-details small { display:block; color:rgba(255,255,255,.48); text-transform:uppercase; letter-spacing:.14em; margin-bottom:.85rem; }
.contact-details a,.contact-details p { font-weight:700; margin:0; word-break:break-word; }
.contact-details a:hover { color:var(--lime); }
footer { min-height:150px; padding:2rem 5vw; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:2rem; font-size:.78rem; color:var(--muted); }
.footer-brand { width:190px; background:white; padding:.6rem .75rem; }
footer p { margin:0; text-align:center; }
footer > a:last-child { justify-self:end; color:var(--green); font-weight:800; }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto} *{transition:none!important} }
@media (max-width:900px) {
  .site-header{height:86px;padding:0 1.25rem}.brand{width:190px}nav a:not(.nav-cta){display:none}.hero{grid-template-columns:1fr}.hero-copy{padding:5.5rem 1.25rem 4rem}h1{font-size:clamp(3rem,13vw,5.3rem)}.hero-visual{min-height:560px}.hero-card{left:8%;width:84%}
  .section-pad{padding-left:1.25rem;padding-right:1.25rem}.about-grid,.services-heading,.approach-grid{grid-template-columns:1fr;gap:3rem}.values-row{grid-template-columns:1fr 1fr}.values-row div:nth-child(2){border-right:0}.values-row div:nth-child(3){padding-left:0}.services-heading>p{max-width:560px}.service-card{grid-template-columns:44px 1fr 32px}.service-card p{grid-column:2/4}.statement{position:static}.contact{padding-left:1.25rem;padding-right:1.25rem}.contact-details{grid-template-columns:1fr 1fr}.contact-orb{width:75vw;height:75vw;opacity:.6}footer{padding-left:1.25rem;padding-right:1.25rem;grid-template-columns:1fr auto}footer p{display:none}
}
@media (max-width:520px) {
  .brand{width:155px}.nav-cta{padding:.65rem .95rem;font-size:.8rem}.hero-actions{align-items:flex-start;flex-direction:column;gap:1.4rem}.hero-visual{min-height:480px}.about h2,.services h2,.contact h2{font-size:clamp(2.7rem,13vw,4.3rem)}.values-row{grid-template-columns:1fr}.values-row div,.values-row div:not(:first-child){padding:1.3rem 0;border-right:0}.service-card{gap:1rem}.service-card h3{font-size:1.35rem}.contact-details{grid-template-columns:1fr}.footer-brand{width:150px}
}
