:root,[data-theme="light"]{
--bg:oklch(98% .008 95);--surface:oklch(94.8% .016 95);--ink:oklch(26% .04 145);--muted:oklch(44% .02 135);--line:oklch(28% .04 145 / .18);--green:oklch(31% .068 146);--accent:oklch(83% .125 123);--white:#fff;--focus:#7f9c35;
--font-display:'Barlow Condensed',Impact,sans-serif;--font-body:'Satoshi',Arial,sans-serif;
--text-xs:clamp(.75rem,.72rem + .1vw,.8125rem);--text-sm:clamp(.875rem,.84rem + .15vw,1rem);--text-base:clamp(1rem,.97rem + .15vw,1.125rem);--text-lg:clamp(1.125rem,1rem + .6vw,1.5rem);--text-xl:clamp(2rem,1.5rem + 1.4vw,2.75rem);--text-hero:clamp(3.8rem,2.5rem + 4.2vw,6.75rem);
--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;
--gutter:clamp(var(--space-6),5vw,var(--space-20));--radius-sm:3px;
}
[data-theme="dark"]{--bg:oklch(21% .018 145);--surface:oklch(25% .023 145);--ink:oklch(94% .015 95);--muted:oklch(76% .02 125);--line:oklch(94% .02 125 / .2);--focus:#bdd384}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.65}
.container{max-width:1440px;margin-inline:auto;padding-inline:var(--gutter)}
.announcement{background:var(--green);color:var(--white);font-size:var(--text-xs);padding-block:var(--space-2)}
.announcement .container{display:flex;justify-content:space-between;gap:var(--space-4)}.announcement span{letter-spacing:.13em;font-size:var(--text-xs)}
.header{position:sticky;top:0;background:var(--bg);z-index:20;border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);min-height:100px}
.brand{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0;line-height:1}
.brand img{width:76px;height:76px;object-fit:contain;mix-blend-mode:multiply}
[data-theme="dark"] .brand img{mix-blend-mode:normal;border-radius:50%}
.brand>span{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);letter-spacing:.065em}.brand small{display:block;font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.21em;margin-top:var(--space-2)}
nav{display:flex;align-items:center;gap:var(--space-8);margin-left:auto;font-size:var(--text-sm);font-weight:500}
nav a{display:flex;align-items:center;min-height:44px}nav a:hover{color:var(--focus)}.nav-cta{gap:var(--space-8);background:var(--green);padding:var(--space-3) var(--space-5);color:var(--white);border-radius:var(--radius-sm)}nav .nav-cta:hover{color:var(--accent)}[data-theme="dark"] .nav-cta{background:var(--accent);color:var(--green)}
.header-controls{display:flex;align-items:center;gap:var(--space-2)}.icon-button{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:var(--text-lg)}.menu-toggle{display:none}
.hero{position:relative;isolation:isolate;color:var(--white);min-height:680px;display:flex;flex-direction:column;justify-content:center}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% 52%;z-index:-3;background:var(--green)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,28,14,.8),rgba(8,28,14,.35) 53%,rgba(8,28,14,.05)),linear-gradient(0deg,rgba(8,28,14,.56),transparent 35%);z-index:-2}
.hero-content{width:100%;padding-top:var(--space-16);padding-bottom:var(--space-24)}
.eyebrow{font-size:var(--text-xs);font-weight:700;letter-spacing:.17em;line-height:1.5;margin-bottom:var(--space-5)}.light{color:var(--accent)}.hero .eyebrow{display:flex;gap:var(--space-3);align-items:center}.short-line{display:block;width:30px;height:1px;background:currentColor}
h1,h2{font-family:var(--font-display);font-weight:600;letter-spacing:-.015em;line-height:1.04}h1{font-size:var(--text-hero);max-width:750px}h1 span{color:var(--accent)}h2{font-size:var(--text-xl);line-height:1.08}h3{font-size:var(--text-lg);line-height:1.25;font-weight:700}
.hero-copy{margin-top:var(--space-6);margin-bottom:var(--space-8);max-width:470px;color:#f0f3eb;font-size:var(--text-base);line-height:1.65}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-10);min-height:52px;padding:var(--space-4) var(--space-6);font-size:var(--text-sm);font-weight:700;border-radius:var(--radius-sm);transition:background .2s}
.button-bright{background:var(--accent);color:var(--green)}.button-bright:hover{background:#d1e6a3}
.hero-bottom{position:absolute;bottom:0;width:100%;left:50%;transform:translateX(-50%);display:flex;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-5);font-size:var(--text-xs)}.hero-bottom span:first-child{letter-spacing:.12em;font-weight:700}
.section{padding-block:clamp(var(--space-16),7vw,var(--space-24))}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-12);margin-bottom:var(--space-12)}.section-heading>p{max-width:405px;color:var(--muted);padding-bottom:var(--space-1)}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.service{padding:var(--space-8) var(--space-6);border-right:1px solid var(--line)}.service:first-child{padding-left:0}.service:last-child{padding-right:0;border-right:0}
.service-number{font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;color:var(--muted)}.service h3{margin-top:var(--space-6);margin-bottom:var(--space-4)}.service p{font-size:var(--text-base);color:var(--muted);min-height:108px}
.service details{margin-top:var(--space-6);font-size:var(--text-sm)}.service summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:44px;font-weight:700}.service summary span{font-size:var(--text-lg);transition:transform .2s}.service details[open] summary span{transform:rotate(45deg)}.service details>div{color:var(--muted);padding-top:var(--space-3)}
.roots{padding-top:0}.roots-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(var(--space-8),6vw,var(--space-24));align-items:center}
.roots-photo{position:relative;height:500px;background:var(--green)}.roots-photo>img{width:100%;height:100%;object-fit:cover}.photo-caption{position:absolute;bottom:0;left:0;right:0;padding:var(--space-8);background:linear-gradient(transparent,rgba(7,30,12,.8));color:white;font-size:var(--text-xs);font-weight:700;letter-spacing:.15em}
.roots-copy h2{margin-bottom:var(--space-6)}.roots-copy>p:not(.eyebrow){color:var(--muted);margin-bottom:var(--space-4);max-width:470px}
.logo-signature{display:flex;align-items:center;gap:var(--space-5);margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--line)}.logo-signature img{width:120px;height:120px;mix-blend-mode:multiply}[data-theme="dark"] .logo-signature img{mix-blend-mode:normal;border-radius:var(--radius-sm)}.logo-signature div{font-size:var(--text-sm);font-weight:700}.logo-signature span{display:block;color:var(--muted);font-size:var(--text-xs);font-weight:400;margin-top:var(--space-1)}
.area{background:var(--green);color:white;padding-block:var(--space-20)}.area-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(var(--space-8),6vw,var(--space-24));align-items:center}.area h2{font-size:var(--text-xl)}.area-copy{max-width:470px}.area-copy p{margin-bottom:var(--space-5);color:#e0e8dd}.text-link{display:inline-flex;align-items:center;gap:var(--space-12);min-height:44px;border-bottom:1px solid var(--accent);font-size:var(--text-sm);font-weight:700;color:var(--accent);padding-bottom:var(--space-2);margin-top:var(--space-3)}
.contact-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(var(--space-8),6vw,var(--space-24));align-items:center}.contact h2{margin-bottom:var(--space-6)}.contact p{max-width:445px;color:var(--muted)}.contact-note{background:var(--surface);padding:var(--space-10);border:1px solid var(--line)}.contact-note h3{margin-top:var(--space-5);margin-bottom:var(--space-4)}.contact-note p{font-size:var(--text-base)}.contact-location{border-top:1px solid var(--line);margin-top:var(--space-8);padding-top:var(--space-5);font-size:var(--text-sm)}
footer{background:var(--surface);border-top:1px solid var(--line);padding-top:var(--space-10)}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding-bottom:var(--space-8)}.footer-brand{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;letter-spacing:.06em;line-height:1.1;min-height:44px}.footer-brand span{display:block;font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.17em;margin-top:var(--space-2)}.footer-top p{font-size:var(--text-xs);color:var(--muted)}.footer-top>a:last-child{display:flex;align-items:center;min-height:44px;font-size:var(--text-sm)}.footer-bottom{display:flex;justify-content:space-between;gap:var(--space-4);border-top:1px solid var(--line);padding-block:var(--space-5);font-size:var(--text-xs);color:var(--muted)}
@media(min-width:1600px){.hero{min-height:760px}}
@media(max-width:1050px){nav{gap:var(--space-5)}.brand>span{display:none}.header-inner{gap:var(--space-4)}.service{padding-inline:var(--space-4)}.service p{min-height:160px}.roots-photo{height:470px}.logo-signature{gap:var(--space-3)}.logo-signature img{width:96px;height:96px}}
@media(max-width:900px){
.announcement .container{justify-content:center;text-align:center}.announcement span{display:none}.header-inner{min-height:84px;gap:var(--space-3)}.brand img{height:60px;width:60px}.brand>span{display:block;font-size:var(--text-lg)}.brand small{font-size:var(--text-xs);letter-spacing:.1em}.brand{gap:var(--space-2)}.header-controls{margin-left:auto}.icon-button{width:40px;border:0}
.icon-button{min-width:44px;min-height:44px}.menu-toggle{display:flex;align-items:center;gap:var(--space-2);min-height:44px;background:transparent;border:0;font-size:var(--text-sm);padding:0 var(--space-1)}.menu-toggle span{font-size:var(--text-lg)}
nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;background:var(--bg);padding:var(--space-5) var(--gutter) var(--space-6);border-bottom:1px solid var(--line);box-shadow:0 12px 14px #10281512;align-items:stretch;gap:var(--space-2)}nav.is-open{display:flex;flex-direction:column}.nav-cta{justify-content:space-between;margin-top:var(--space-2)}
.hero{min-height:650px}.hero-image{object-position:63% center}.hero-shade{background:linear-gradient(90deg,rgba(8,28,14,.8),rgba(8,28,14,.35)),linear-gradient(0deg,rgba(8,28,14,.6),transparent 40%)}.hero-content{padding-top:var(--space-12);padding-bottom:var(--space-24)}h1{font-size:var(--text-hero)}.hero-copy{max-width:340px}.hero-bottom{flex-direction:column;gap:var(--space-1);padding-block:var(--space-4)}
.section-heading{display:block}.section-heading>p{margin-top:var(--space-6);max-width:520px}.service-grid{grid-template-columns:1fr 1fr}.service{padding:var(--space-6) var(--space-5)!important;border-bottom:1px solid var(--line)}.service:nth-child(odd){padding-left:0!important}.service:nth-child(even){padding-right:0!important;border-right:0}.service p{min-height:135px}.service h3{margin-top:var(--space-4)}.service details{margin-top:var(--space-4)}
.roots-grid,.area-grid,.contact-grid{grid-template-columns:1fr;gap:var(--space-10)}.roots-photo{height:380px}.roots-copy>p:not(.eyebrow),.area-copy{max-width:none}.roots-copy h2 br{display:none}.logo-signature{margin-top:var(--space-6)}.logo-signature img{width:110px;height:110px}.area{padding-block:var(--space-16)}.area h2 br:last-child{display:none}.contact-note{padding:var(--space-8)}.footer-top{flex-wrap:wrap;gap:var(--space-4)}.footer-top p{order:3;width:100%}.footer-bottom{flex-direction:column;gap:var(--space-2)}}
@media(max-width:410px){.brand>span{font-size:var(--text-sm)}.brand small{font-size:var(--text-xs)}.brand img{width:48px;height:48px}.header-inner{gap:var(--space-2)}.hero{min-height:670px}.hero .eyebrow{letter-spacing:.1em}.service-grid{grid-template-columns:1fr}.service{padding:var(--space-6) 0!important;border-right:0}.service p{min-height:0}.service h3{display:inline-block;margin-left:var(--space-4)}.service details{margin-top:var(--space-3)}.roots-photo{height:320px}.desktop-break{display:none}.contact-note{padding:var(--space-6)}}
