:root { --ink:#161b18; --muted:#64706a; --paper:#f8f8f4; --white:#fff; --line:#dde2dc; --lime:#d9ef73; --sage:#e7eee8; --blue:#e8eff3; --cream:#f3eee4; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Manrope,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
img { display:block; max-width:100%; }
::selection { background:var(--lime); color:var(--ink); }
:focus-visible { outline:3px solid #829e20; outline-offset:4px; }
.shell { width:min(100% - 80px, 1376px); margin-inline:auto; }
.section-pad { padding-block:132px; }
.skip-link { position:absolute; top:-100px; left:20px; z-index:100; padding:12px 20px; background:var(--lime); }
.skip-link:focus { top:12px; }
.announcement { min-height:37px; display:flex; align-items:center; justify-content:center; gap:10px; padding:7px 20px; background:var(--lime); font-size:11px; font-weight:700; letter-spacing:.025em; text-align:center; }
.announcement-dot { width:6px; height:6px; flex:none; border-radius:50%; background:var(--ink); }
.announcement a { margin-left:8px; text-decoration:underline; text-underline-offset:3px; white-space:nowrap; }
.site-header { position:relative; z-index:20; background:var(--paper); border-bottom:1px solid rgba(22,27,24,.07); }
.header-inner { min-height:92px; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.brand { display:inline-flex; align-items:center; gap:10px; min-width:max-content; }
.brand-mark { width:39px; height:39px; display:grid; place-items:center; background:var(--ink); color:var(--lime); border-radius:11px; transform:rotate(-7deg); }
.brand-mark svg { width:30px; transform:rotate(7deg); }
.brand-text { display:flex; flex-direction:column; line-height:1; }
.brand-text strong { font-size:22px; font-weight:800; letter-spacing:-.075em; }
.brand-text small { margin-top:5px; font-size:8px; font-weight:800; letter-spacing:.31em; }
.desktop-nav { display:flex; align-items:center; gap:clamp(18px,2.5vw,38px); margin-left:auto; }
.desktop-nav a,.footer-links a { font-size:12px; font-weight:700; transition:opacity .2s ease; }
.desktop-nav a:hover,.footer-links a:hover { opacity:.55; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:36px; min-height:47px; border:1px solid transparent; border-radius:999px; padding:12px 18px 12px 24px; font-size:12px; font-weight:800; white-space:nowrap; transition:transform .25s ease,background .25s ease,color .25s ease; }
.button:hover { transform:translateY(-3px); }
.button-dark { color:var(--white); background:var(--ink); }
.button-dark:hover { background:#35433b; }
.button-arrow { display:grid; place-items:center; font-size:17px; font-weight:500; line-height:1; }
.button-large { min-height:56px; padding-inline:27px 21px; font-size:13px; }
.menu-toggle,.mobile-nav { display:none; }

.hero { display:grid; grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr); gap:clamp(30px,5vw,86px); min-height:730px; padding-top:81px; padding-bottom:80px; align-items:center; }
.hero-copy { position:relative; z-index:1; padding-bottom:10px; }
.eyebrow { display:flex; align-items:center; gap:10px; font-size:10px; font-weight:800; letter-spacing:.22em; line-height:1.5; }
.eyebrow-line { width:25px; height:1px; background:currentColor; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { letter-spacing:-.065em; }
h1 { max-width:720px; margin:26px 0 29px; font-size:clamp(64px,6.5vw,112px); line-height:1.01; font-weight:700; }
h1 em,h2 em { font-style:normal; color:#8a9d58; }
.hero-lead { max-width:540px; margin-bottom:18px; font-size:clamp(19px,1.75vw,25px); font-weight:600; line-height:1.46; letter-spacing:-.035em; }
.hero-sub { max-width:450px; margin-bottom:31px; color:#5d6962; font-size:14px; line-height:1.8; }
.hero-actions { display:flex; align-items:center; gap:32px; flex-wrap:wrap; }
.text-link { display:inline-flex; align-items:center; gap:15px; border-bottom:1px solid var(--ink); padding-bottom:6px; font-size:12px; font-weight:800; transition:gap .2s ease; }
.text-link:hover { gap:22px; }
.hero-bottom { display:flex; align-items:center; gap:15px; margin-top:83px; color:#718078; font-size:9px; font-weight:800; letter-spacing:.16em; line-height:1.7; }
.mini-line { height:35px; width:1px; background:#aeb9ac; }
.hero-visual { position:relative; min-width:0; padding:0 13px 25px 0; }
.hero-image-wrap { height:610px; overflow:hidden; border-radius:10px 154px 10px 10px; background:#d7e1dd; }
.hero-image-wrap img { width:100%; height:100%; object-fit:cover; object-position:58% 50%; transition:transform 1s cubic-bezier(.2,.7,.2,1); }
.hero-visual:hover .hero-image-wrap img { transform:scale(1.035); }
.visual-stamp { position:absolute; left:-41px; top:53px; width:116px; height:116px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; border-radius:50%; background:var(--lime); box-shadow:0 14px 35px rgba(41,51,36,.12); font-size:8px; font-weight:800; letter-spacing:.13em; line-height:1.35; text-align:center; transform:rotate(-13deg); }
.stamp-spark { font-size:29px; line-height:1; }
.hero-caption { position:absolute; right:-3px; bottom:0; display:flex; align-items:center; gap:12px; min-width:250px; padding:16px 18px; border:1px solid rgba(25,40,29,.12); border-radius:10px; background:var(--white); box-shadow:0 16px 40px rgba(27,38,29,.10); font-size:11px; font-weight:800; }
.caption-dot { width:8px; height:8px; flex:none; border-radius:50%; background:#9fb660; }
.caption-arrow { margin-left:auto; font-size:17px; }
.service-strip { border-block:1px solid var(--line); background:#f2f4ee; }
.service-strip-inner { min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:20px; overflow:hidden; white-space:nowrap; }
.service-strip-inner span { font-size:11px; font-weight:800; }
.service-strip-inner span:first-child { color:#6f7e70; font-size:9px; letter-spacing:.18em; }
.service-strip-inner .strip-plus { color:#9ba997; font-size:17px; font-weight:400; }

.section-heading { display:flex; justify-content:space-between; align-items:end; gap:60px; }
.section-heading h2,.approach-intro h2,.about-copy h2,.mobile-copy h2,.contact-copy h2 { margin:22px 0 0; font-size:clamp(43px,4.45vw,72px); font-weight:700; line-height:1.12; }
.section-heading p { max-width:365px; margin:0 0 8px; color:var(--muted); font-size:14px; line-height:1.8; }
.services-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:55px; }
.service-card { min-height:420px; display:flex; flex-direction:column; justify-content:space-between; padding:28px; border-radius:13px; transition:transform .3s ease,box-shadow .3s ease; }
.service-card:hover { transform:translateY(-6px); box-shadow:0 20px 35px rgba(19,28,20,.07); }
.card-sage { background:var(--sage); }.card-blue { background:var(--blue); }.card-cream { background:var(--cream); }.card-lime { background:var(--lime); }
.card-top { display:flex; justify-content:space-between; align-items:start; gap:10px; }
.service-number { padding-top:5px; font-size:9px; font-weight:800; letter-spacing:.16em; }
.card-icon { width:51px; height:51px; display:grid; place-items:center; border:1px solid rgba(22,27,24,.25); border-radius:50%; }
.card-icon svg { width:30px; height:30px; }
.service-card h3 { margin-bottom:20px; font-size:clamp(23px,2vw,32px); line-height:1.12; font-weight:700; }
.service-card p { min-height:99px; margin-bottom:27px; color:#4f5d55; font-size:12px; line-height:1.8; }
.card-link { display:flex; align-items:center; justify-content:space-between; gap:10px; border-top:1px solid rgba(22,27,24,.22); padding-top:19px; font-size:11px; font-weight:800; }
.card-link span { font-size:19px; line-height:1; transition:transform .2s ease; }.card-link:hover span { transform:translate(3px,-3px); }

.mobile-feature { background:#eff2ed; }
.mobile-feature-grid { display:grid; grid-template-columns:1.06fr .94fr; align-items:center; gap:clamp(50px,8vw,125px); }
.mobile-image { position:relative; min-height:540px; }
.mobile-image img { width:100%; height:540px; object-fit:cover; object-position:45% 50%; border-radius:12px 132px 12px 12px; }
.image-note { position:absolute; bottom:-23px; left:24px; display:flex; align-items:center; gap:14px; padding:15px 19px; background:var(--white); border-radius:9px; box-shadow:0 15px 30px rgba(26,38,29,.1); font-size:9px; font-weight:800; letter-spacing:.11em; line-height:1.5; }
.note-icon { display:grid; place-items:center; width:33px; height:33px; border-radius:50%; background:var(--lime); font-size:20px; font-weight:400; }
.mobile-copy h2 { max-width:600px; margin-bottom:25px; }
.mobile-copy p { max-width:525px; margin-bottom:29px; color:#5a675f; font-size:14px; line-height:1.85; }
.feature-rule { max-width:525px; height:1px; background:#cdd7cd; }
.feature-detail { display:flex; align-items:center; gap:16px; max-width:440px; margin:24px 0 32px; font-size:12px; font-weight:700; line-height:1.65; }
.detail-icon { width:36px; height:36px; display:grid; place-items:center; flex:none; border:1px solid #aebbaa; border-radius:50%; font-size:21px; }
.approach-section { display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(50px,9vw,150px); }
.approach-intro h2 { margin-bottom:25px; }.approach-intro p { max-width:470px; color:var(--muted); font-size:14px; line-height:1.85; }
.steps { padding-top:31px; }
.step { display:grid; grid-template-columns:50px 1fr 20px; gap:22px; padding:27px 2px 30px; border-top:1px solid #cfd8d0; }
.step:last-child { border-bottom:1px solid #cfd8d0; }
.step-num { padding-top:4px; color:#819273; font-size:12px; font-weight:800; }.step h3 { margin-bottom:10px; font-size:20px; font-weight:700; letter-spacing:-.04em; }.step p { max-width:340px; margin-bottom:0; color:var(--muted); font-size:12px; line-height:1.75; }.step-arrow { font-size:19px; }
.about-band { padding-block:93px; background:#e5ebdf; overflow:hidden; }
.about-grid { display:grid; grid-template-columns:.68fr 1fr; gap:clamp(60px,12vw,200px); align-items:center; }
.about-graphic { position:relative; width:min(100%,400px); aspect-ratio:1; display:grid; place-items:center; border-radius:50%; background:#d8e4d0; }
.orbit { position:absolute; inset:38px; border:1px solid #b2c3a8; border-radius:50%; }.orbit-two { inset:85px; }
.about-star { position:absolute; font-size:clamp(100px,17vw,230px); font-weight:400; color:#6e875d; line-height:1; transform:rotate(-18deg); }
.about-graphic-label { position:absolute; bottom:55px; right:-20px; padding:13px 18px; border-radius:8px; background:var(--lime); font-size:9px; font-weight:800; letter-spacing:.16em; line-height:1.5; transform:rotate(7deg); }
.about-copy h2 { margin-bottom:24px; }.about-copy p { max-width:580px; color:#56665a; font-size:14px; line-height:1.85; }.about-tags { display:flex; gap:8px; flex-wrap:wrap; margin-top:28px; }.about-tags span { border:1px solid #9fad9d; border-radius:999px; padding:10px 16px; font-size:10px; font-weight:800; }

.contact-section { position:relative; overflow:hidden; padding-block:132px; color:var(--white); background:#1b2620; }
.contact-grid { display:grid; grid-template-columns:.86fr 1.14fr; gap:clamp(60px,8vw,128px); }
.eyebrow-light { color:var(--lime); }
.contact-copy { position:relative; padding-top:29px; }
.contact-copy h2 { max-width:600px; margin-bottom:29px; font-size:clamp(46px,4.75vw,76px); }
.contact-copy h2 em { color:var(--lime); }
.contact-copy p { max-width:440px; color:#b8c7bc; font-size:14px; line-height:1.9; }
.contact-location { display:flex; align-items:center; gap:16px; margin-top:67px; color:#bbcabd; font-size:12px; line-height:1.75; }.contact-location strong { color:white; font-weight:700; }.location-symbol { display:grid; place-items:center; width:42px; height:42px; border:1px solid #809281; border-radius:50%; color:var(--lime); font-size:24px; }
.contact-decor { position:absolute; left:-57px; bottom:-180px; color:#2c3d32; font-size:410px; line-height:.7; pointer-events:none; }
.form-card { position:relative; padding:37px; border-radius:15px; color:var(--ink); background:#f9faf6; box-shadow:0 30px 70px rgba(0,0,0,.12); }
.form-heading { display:flex; justify-content:space-between; align-items:start; padding-bottom:27px; border-bottom:1px solid #dbe2d9; }.form-kicker { color:#617662; font-size:9px; font-weight:800; letter-spacing:.2em; }.form-heading h3 { margin:10px 0 0; font-size:30px; font-weight:700; }.form-heading>span { font-size:27px; }
#contact-form { display:flex; flex-direction:column; gap:17px; padding-top:25px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
#contact-form label { display:flex; flex-direction:column; gap:8px; font-size:10px; font-weight:800; }
#contact-form label>span:not(.optional) { color:#869d51; }.optional { color:#89948b; font-weight:500; }
#contact-form input,#contact-form select,#contact-form textarea { width:100%; min-width:0; border:1px solid #d9e1d8; border-radius:6px; outline:none; background:#fff; color:var(--ink); padding:12px 13px; font-size:12px; font-weight:500; transition:border-color .2s ease,box-shadow .2s ease; }
#contact-form input,#contact-form select { height:44px; }
#contact-form textarea { resize:vertical; min-height:105px; }
#contact-form :is(input,select,textarea):focus { border-color:#7b9b43; box-shadow:0 0 0 3px rgba(163,193,105,.18); }
#contact-form :is(input,textarea)::placeholder { color:#9ea9a0; }
#contact-form select:invalid { color:#9ea9a0; }.honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.form-submit { width:100%; justify-content:space-between; margin-top:5px; min-height:51px; border-radius:6px; }.form-submit:disabled { opacity:.65; cursor:wait; transform:none; }
.form-note { margin:-5px 0 0; color:#89958a; font-size:10px; line-height:1.6; }.form-status { min-height:0; margin:0; color:#406523; font-size:12px; font-weight:700; line-height:1.6; }.form-status.error { color:#a13b2f; }
.site-footer { background:#f1f3ee; }.footer-top { display:flex; justify-content:space-between; align-items:center; gap:30px; padding-block:59px; border-bottom:1px solid #d8dfd6; }.footer-links { display:flex; gap:36px; }.footer-bottom { display:flex; justify-content:space-between; gap:20px; padding-block:25px 31px; color:#68746c; font-size:10px; font-weight:700; }.footer-bottom a { color:var(--ink); }

@media(max-width:1150px) { .desktop-nav { gap:16px; }.desktop-nav a { font-size:11px; }.hero { gap:40px; }.hero-image-wrap { height:560px; }.services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.service-card { min-height:350px; }.service-card p { min-height:0; }.contact-grid { gap:50px; } }
@media(max-width:900px) { .shell { width:min(100% - 48px,1376px); }.section-pad { padding-block:90px; }.header-inner { min-height:76px; }.desktop-nav,.header-cta { display:none; }.menu-toggle { position:relative; display:flex; flex-direction:column; justify-content:center; gap:6px; width:42px; height:42px; border:0; background:none; }.menu-toggle span { width:23px; height:2px; background:var(--ink); transition:transform .2s ease; }.menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(4px) rotate(45deg); }.menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-4px) rotate(-45deg); }.mobile-nav:not([hidden]) { display:flex; flex-direction:column; gap:0; padding:10px 24px 25px; background:var(--paper); border-top:1px solid var(--line); box-shadow:0 15px 25px rgba(0,0,0,.07); }.mobile-nav a { padding:14px 0; border-bottom:1px solid var(--line); font-size:16px; font-weight:700; }.mobile-nav a:last-child { display:flex; justify-content:space-between; color:#4b6a29; }.hero { grid-template-columns:1fr; gap:45px; padding-top:78px; min-height:0; }.hero-copy { max-width:750px; }.hero-bottom { display:none; }.hero-image-wrap { height:clamp(400px,65vw,600px); }.visual-stamp { left:-12px; }.service-strip-inner { gap:32px; justify-content:flex-start; }.service-strip-inner span:first-child { display:none; }.mobile-feature-grid,.approach-section,.about-grid,.contact-grid { grid-template-columns:1fr; }.mobile-feature-grid { gap:65px; }.mobile-image,.mobile-image img { height:auto; min-height:0; aspect-ratio:1.5; object-fit:cover; }.approach-section { gap:25px; }.approach-intro p { max-width:700px; }.about-grid { grid-template-columns:.7fr 1fr; gap:45px; }.contact-grid { gap:48px; }.contact-copy { padding-top:0; }.contact-copy h2 { max-width:750px; }.contact-location { margin-top:35px; }.contact-decor { display:none; }.form-card { max-width:760px; width:100%; }.footer-links { gap:20px; } }
@media(max-width:640px) { .shell { width:min(100% - 36px,1376px); }.section-pad { padding-block:77px; }.announcement { font-size:9px; line-height:1.45; }.announcement-dot { display:none; }.announcement a { margin-left:2px; }.brand-mark { width:35px; height:35px; }.brand-text strong { font-size:19px; }.brand-text small { font-size:7px; }.hero { padding-top:60px; padding-bottom:70px; gap:48px; }.eyebrow { font-size:9px; }.hero h1 { margin:23px 0 23px; font-size:clamp(54px,12vw,78px); }.hero-lead { font-size:19px; }.hero-sub { font-size:13px; }.hero-actions { gap:24px; }.hero-image-wrap { height:360px; border-top-right-radius:100px; }.hero-image-wrap img { object-position:58% 50%; }.visual-stamp { top:-22px; left:-3px; width:87px; height:87px; font-size:6px; }.stamp-spark { font-size:23px; }.hero-caption { min-width:0; font-size:9px; bottom:1px; right:0; }.service-strip-inner { min-height:62px; gap:20px; }.service-strip-inner span { font-size:10px; }.section-heading { align-items:start; flex-direction:column; gap:15px; }.section-heading h2,.approach-intro h2,.about-copy h2,.mobile-copy h2,.contact-copy h2 { font-size:clamp(42px,10vw,60px); }.section-heading p { max-width:530px; }.services-grid { grid-template-columns:1fr; gap:12px; margin-top:35px; }.service-card { min-height:325px; padding:26px; }.service-card h3 { font-size:30px; }.service-card p { max-width:330px; }.mobile-feature-grid { gap:60px; }.mobile-image,.mobile-image img { aspect-ratio:1.05; }.mobile-image img { border-top-right-radius:95px; object-position:61% center; }.image-note { left:12px; bottom:-19px; }.mobile-copy h2 { margin-bottom:19px; }.about-band { padding-block:75px; }.about-grid { grid-template-columns:1fr; gap:55px; }.about-graphic { width:240px; }.about-graphic-label { right:-30px; bottom:20px; }.about-star { font-size:150px; }.orbit { inset:20px; }.orbit-two { inset:55px; }.contact-section { padding-block:80px; }.contact-copy h2 { font-size:clamp(45px,10vw,65px); }.form-card { padding:25px 20px; }.form-row { grid-template-columns:1fr; gap:17px; }.form-heading h3 { font-size:27px; }.footer-top { align-items:start; flex-direction:column; gap:33px; padding-block:45px; }.footer-links { display:grid; grid-template-columns:1fr 1fr; gap:18px 27px; }.footer-bottom { flex-direction:column; gap:12px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; } }
