:root{--ink:#183d34;--ink-deep:#103128;--text:#20352f;--muted:#61716a;--paper:#f7f8f4;--white:#fff;--mist:#e9f1e8;--line:#d9e2d9;--accent:#b8d9ac;--radius:24px;--shadow:0 24px 70px rgba(22,58,46,.12)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--paper);color:var(--text);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
body,button,input,select,textarea{font-size:16px}
button,input,select,textarea{font-family:inherit}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{letter-spacing:-.025em}
p{line-height:1.6}
::selection{background:#b7d9b2;color:var(--ink-deep)}
:focus-visible{outline:3px solid #7ca36d;outline-offset:4px}
.container{width:min(100% - 64px,1320px);margin-inline:auto}
.skip-link{position:absolute;left:16px;top:-80px;z-index:100;padding:12px 16px;background:var(--ink);color:white;border-radius:8px}
.skip-link:focus{top:16px}
.site-header{position:sticky;top:0;z-index:50;background:rgba(247,248,244,.94);border-bottom:1px solid rgba(24,61,52,.08);backdrop-filter:blur(18px)}
.header-inner{height:78px;display:flex;align-items:center;gap:38px}
.brand{display:flex;flex-direction:column;line-height:1;min-width:184px}
.brand-name{font-weight:800;letter-spacing:-.065em;font-size:27px;color:var(--ink)}
.brand-period,.site-footer strong span{color:#77a66e}
.brand-subtitle{font-size:9px;letter-spacing:.2em;font-weight:800;color:#60786b;margin-top:5px}
.desktop-nav{display:flex;gap:35px;align-items:center;margin-inline:auto}
.desktop-nav a{font-size:14px;color:#43584e;font-weight:600;transition:color .2s}
.desktop-nav a:hover,.footer-links a:hover{color:#6f9d66}
.button{border:1px solid var(--ink);background:var(--ink);color:white;min-height:58px;padding:0 26px;border-radius:100px;display:inline-flex;align-items:center;justify-content:space-between;gap:28px;font-weight:700;font-size:15px;cursor:pointer;white-space:nowrap;transition:transform .3s cubic-bezier(.16,1,.3,1),background .3s,box-shadow .3s}
.button:hover{background:#245747;transform:translateY(-3px);box-shadow:0 13px 25px rgba(21,63,53,.16)}
.button:active{transform:translateY(0)}
.button-small{min-height:44px;padding-inline:20px;font-size:13px;gap:18px}
.header-cta{margin-left:auto}
.menu-toggle,.mobile-nav{display:none}
.hero{overflow:hidden;background:var(--paper)}
.hero-grid{min-height:min(730px,calc(100svh - 78px));display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.01fr);gap:clamp(30px,5vw,86px);align-items:center;padding-block:56px 64px}
.hero-copy{padding-bottom:24px}
.location-line{display:flex;align-items:center;gap:11px;font-weight:700;color:#567162;font-size:13px;letter-spacing:.025em;margin-bottom:27px}
.location-line-mark{width:9px;height:9px;border-radius:50%;background:#93bd86;box-shadow:0 0 0 5px #e0ebdc}
.hero h1{font-size:clamp(49px,5.25vw,78px);line-height:1.03;color:var(--ink);font-weight:790;letter-spacing:-.025em;margin-bottom:26px}
.hero h1 em,.work h2 em{font-style:normal;color:#67905f}
.hero-lede{font-size:clamp(17px,1.5vw,20px);line-height:1.55;color:#566960;max-width:530px;margin-bottom:33px}
.hero-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.text-link{display:inline-flex;align-items:center;gap:13px;font-size:15px;font-weight:750;color:var(--ink);padding-block:9px;border-bottom:1px solid #91aa95;transition:gap .25s,color .25s}
.text-link:hover{gap:20px;color:#5a8854}
.hero-note{display:flex;gap:14px;align-items:flex-start;margin-top:51px;max-width:400px;color:#738078;font-size:13px;line-height:1.5}
.hero-note-line{width:30px;height:1px;background:#9baea0;margin-top:10px;flex:none}
.hero-visual{position:relative;padding:17px 0 0 18px}
.hero-visual:before{content:"";position:absolute;inset:0 21px 38px 0;border:1px solid #a4bda2;border-radius:36px 8px 36px 8px;z-index:0}
.hero-photo-wrap{position:relative;overflow:hidden;border-radius:34px 8px 34px 8px;aspect-ratio:1.08;background:#dfe6dc;box-shadow:var(--shadow)}
.hero-photo-wrap img{width:100%;height:100%;object-fit:cover;object-position:58% 48%;transition:transform .9s cubic-bezier(.16,1,.3,1)}
.hero-photo-wrap:hover img{transform:scale(1.035)}
.hero-photo-caption{display:flex;align-items:center;justify-content:space-between;color:#668271;padding-top:18px;font-size:13px;letter-spacing:.01em;font-weight:650}
.hero-photo-caption span:last-child{font-size:20px;color:#83ad7d;line-height:1}
.intro-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#eff3ed}
.intro-strip-inner{display:flex;justify-content:space-between;gap:25px;padding-block:22px}
.intro-strip p{margin:0;font-size:13px;font-weight:700;color:#60786b}
.section{padding-block:clamp(88px,10vw,148px)}
.section-kicker{color:#698b66;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;margin-bottom:22px}
.section h2{font-size:clamp(38px,4.2vw,62px);line-height:1.08;letter-spacing:-.035em;color:var(--ink);font-weight:760;margin-bottom:24px}
.section-intro>p:not(.section-kicker){font-size:17px;color:var(--muted);max-width:430px;margin-bottom:27px}
.services-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(60px,11vw,160px)}
.service-list{border-top:1px solid #cbd7cb}
.service-item{display:grid;grid-template-columns:40px 1fr 34px;gap:20px;padding:32px 0;border-bottom:1px solid #cbd7cb;align-items:start}
.service-index{color:#79977e;font-size:12px;font-weight:800;padding-top:10px}
.service-item h3{font-size:clamp(25px,2.5vw,36px);line-height:1.12;color:var(--ink);margin-bottom:9px}
.service-item p{color:#6b7b71;font-size:15px;margin:0}
.service-arrow{font-size:25px;color:#7ea477;transition:transform .3s}
.service-item:hover .service-arrow{transform:translate(4px,-4px)}
.work{background:#eaf0e9}
.work-heading{display:flex;justify-content:space-between;align-items:end;gap:60px;margin-bottom:47px}
.work-heading h2{margin-bottom:0}
.work-heading>p{max-width:350px;color:#61736a;font-size:15px;margin:0 0 7px}
.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
.work-card{background:#fff;padding:18px;border-radius:20px;box-shadow:0 9px 28px rgba(30,69,50,.04)}
.work-card h3{font-size:20px;color:var(--ink);margin:6px 4px 17px;letter-spacing:-.035em}
.work-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.work-pair figure{margin:0;min-width:0}
.work-pair img{width:100%;height:auto;aspect-ratio:1.13;object-fit:cover;border-radius:10px;background:#e3e7e1;transition:filter .4s,transform .4s}
.work-pair figure:hover img{filter:saturate(1.08);transform:translateY(-2px)}
.work-pair figcaption{font-weight:750;color:#52705e;font-size:12px;padding:12px 2px 3px}
.process{background:var(--ink);color:#fff;overflow:hidden}
.process .section-kicker{color:#b5d5ad}
.process h2{color:#f5f7f0;max-width:730px}
.process-heading{margin-bottom:62px}
.process-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:50px}
.process-step{border-top:1px solid rgba(255,255,255,.38);padding-top:27px}
.process-step>span{display:block;font-size:13px;font-weight:800;color:#bdd8ba;margin-bottom:50px}
.process-step h3{color:#fff;font-size:25px;line-height:1.15;max-width:280px;margin-bottom:13px}
.process-step p{color:#d3e2d8;font-size:15px;max-width:300px;margin:0}
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(50px,10vw,150px)}
.faq-heading h2{max-width:470px}
.faq-list{border-top:1px solid #cbd7cb}
.faq-list details{border-bottom:1px solid #cbd7cb}
.faq-list summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:25px 0;cursor:pointer;font-weight:720;font-size:17px;color:var(--ink)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary span{font-size:24px;font-weight:400;color:#78a071;transition:transform .25s}
.faq-list details[open] summary span{transform:rotate(45deg)}
.faq-list details p{font-size:15px;color:var(--muted);max-width:600px;margin:-4px 34px 25px 0}
.contact{background:#e4ece2;padding-block:clamp(80px,9vw,125px)}
.contact-grid{display:grid;grid-template-columns:.86fr 1.14fr;gap:clamp(50px,8vw,110px);align-items:start}
.contact-copy h2{font-size:clamp(39px,4.1vw,61px);line-height:1.08;letter-spacing:-.035em;color:var(--ink);margin-bottom:22px}
.contact-copy>p:not(.section-kicker){color:#5d7566;font-size:17px;max-width:440px;margin-bottom:42px}
.contact-links{border-top:1px solid #bfcdbf;max-width:430px}
.contact-links>div{padding:17px 0;border-bottom:1px solid #bfcdbf;display:flex;justify-content:space-between;gap:15px;align-items:baseline}
.contact-links span{font-size:13px;color:#6c846f;font-weight:700}
.contact-links a{font-weight:750;color:var(--ink);font-size:15px;text-align:right}
.contact-links a[aria-disabled="true"]{color:#7a8e7c;cursor:default}
.contact-links a:not([aria-disabled="true"]):hover{text-decoration:underline}
.contact-links .contact-value{font-weight:750;color:var(--ink);font-size:15px;text-align:right;overflow-wrap:anywhere}
.form-shell{background:#fff;border-radius:22px;padding:clamp(26px,3.5vw,46px);box-shadow:0 15px 50px rgba(24,65,44,.08)}
.form-shell h3{font-size:29px;color:var(--ink);margin-bottom:8px}
.form-hint{font-size:14px;color:#718177;margin-bottom:25px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-shell label{display:block;font-weight:720;font-size:13px;color:#38594a;margin-bottom:16px}
.form-shell input,.form-shell select,.form-shell textarea{display:block;width:100%;padding:14px 16px;margin-top:8px;border:1px solid #cbdacf;background:#f9fbf8;border-radius:10px;color:var(--ink);font-size:15px;transition:border .2s,box-shadow .2s;outline:none}
.form-shell input:focus,.form-shell select:focus,.form-shell textarea:focus{border-color:#80a877;box-shadow:0 0 0 3px #dcebd7}
.form-shell input::placeholder,.form-shell textarea::placeholder{color:#8b9b90}
.form-shell textarea{resize:vertical;min-height:116px}
.form-honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-submit{margin-top:6px;min-width:245px}
.form-submit:disabled{opacity:.65;cursor:wait;transform:none;box-shadow:none}
.form-status{min-height:1.4em;color:#a14935;font-size:13px;margin:14px 0 0}
.form-status[data-state="success"]{color:#286b4b}
.site-footer{background:#102c25;color:#c7d8cd;padding-top:55px}
.footer-inner{display:grid;grid-template-columns:1fr 1fr auto;gap:35px;padding-bottom:52px}
.site-footer strong{font-size:28px;letter-spacing:-.06em;color:white}
.site-footer p{font-size:14px;color:#b8cbbf;margin:9px 0 0}
.footer-links{display:flex;gap:24px;align-items:start;padding-top:10px}
.footer-links a,.back-to-top{font-size:13px;font-weight:650;transition:color .2s}
.back-to-top{padding-top:10px;color:#d2e3d4}
.footer-bottom{border-top:1px solid rgba(255,255,255,.18);padding-block:20px;display:flex;justify-content:space-between;gap:20px;color:#9db4a6;font-size:12px}
.mobile-contact-bar{display:none}
@media (prefers-reduced-motion:no-preference){
  .hero-copy>*{animation:rise-in .8s both cubic-bezier(.16,1,.3,1)}
  .hero-copy>*:nth-child(2){animation-delay:.08s}.hero-copy>*:nth-child(3){animation-delay:.16s}.hero-copy>*:nth-child(4){animation-delay:.24s}.hero-copy>*:nth-child(5){animation-delay:.32s}
  .hero-visual{animation:hero-enter 1s .1s both cubic-bezier(.16,1,.3,1)}
  .js .reveal{opacity:0;transform:translateY(26px);transition:opacity .75s ease,transform .75s cubic-bezier(.16,1,.3,1)}
  .js .reveal.is-visible{opacity:1;transform:translateY(0)}
  @keyframes rise-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
  @keyframes hero-enter{from{opacity:0;transform:translateY(30px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
}
@media (max-width:1100px){.desktop-nav{gap:20px}.header-inner{gap:20px}.hero h1{font-size:clamp(45px,5.3vw,66px)}.hero-grid{gap:30px}.services-grid,.faq-grid{gap:65px}}
@media (max-width:860px){.container{width:min(100% - 40px,680px)}.header-inner{height:70px}.desktop-nav,.header-cta{display:none}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;margin-left:auto;width:42px;height:42px;border:0;background:transparent;cursor:pointer}.menu-toggle span{height:2px;width:25px;background:var(--ink);transition:transform .25s}.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;padding:9px 20px 22px;border-top:1px solid var(--line);background:var(--paper)}.mobile-nav a{padding:13px 0;font-size:16px;font-weight:650;border-bottom:1px solid var(--line)}.hero-grid{min-height:0;grid-template-columns:1fr;gap:42px;padding-block:75px 50px}.hero-copy{padding:0}.hero h1{font-size:clamp(48px,9vw,72px)}.hero-note{margin-top:30px}.hero-visual{max-width:620px}.hero-photo-wrap{aspect-ratio:1.28}.intro-strip-inner{flex-wrap:wrap;justify-content:start;gap:8px 28px}.services-grid,.faq-grid,.contact-grid{grid-template-columns:1fr;gap:45px}.work-heading{align-items:start;flex-direction:column;gap:18px}.work-heading>p{max-width:600px}.process-steps{gap:25px}.footer-inner{grid-template-columns:1fr auto}.footer-links{grid-column:1;grid-row:2}.back-to-top{grid-column:2;grid-row:1}}
@media (max-width:620px){html{scroll-padding-top:70px}.container{width:min(100% - 32px,500px)}.hero-grid{padding-block:50px 45px;gap:42px}.hero h1{font-size:clamp(43px,11.4vw,60px);letter-spacing:-.025em}.hero h1 br{display:none}.hero-lede{font-size:17px}.hero-actions{gap:15px 23px}.hero-actions .button{width:100%}.hero-photo-wrap{aspect-ratio:1.1}.hero-visual{padding-left:10px}.hero-visual:before{inset:0 12px 24px 0}.hero-photo-caption{font-size:12px}.intro-strip-inner{padding-block:16px;gap:8px 15px}.intro-strip p{font-size:11px}.intro-strip p:nth-child(2){display:none}.section{padding-block:82px}.section h2,.contact-copy h2{font-size:clamp(37px,10vw,48px)}.service-item{grid-template-columns:30px 1fr 20px;gap:9px;padding:25px 0}.service-item h3{font-size:26px}.service-arrow{font-size:20px}.work-heading{margin-bottom:32px}.work-grid{grid-template-columns:1fr;gap:20px}.work-card{padding:13px}.work-pair{gap:8px}.work-pair img{aspect-ratio:.93}.work-pair figcaption{padding-top:9px}.process-heading{margin-bottom:40px}.process-steps{grid-template-columns:1fr;gap:29px}.process-step{padding-top:20px}.process-step>span{margin-bottom:23px}.process-step h3{max-width:none}.faq-list summary{font-size:16px}.contact{padding-block:80px}.form-row{grid-template-columns:1fr;gap:0}.form-shell{padding:24px 19px}.form-submit{width:100%}.contact-links>div{align-items:start}.contact-links a{overflow-wrap:anywhere}.site-footer{padding-top:48px;padding-bottom:58px}.footer-inner{grid-template-columns:1fr;gap:27px;padding-bottom:35px}.footer-links{grid-column:1;grid-row:auto;flex-wrap:wrap;gap:17px;padding:0}.back-to-top{grid-column:1;grid-row:auto;padding:0}.footer-bottom{padding-block:16px}.mobile-contact-bar{position:fixed;z-index:45;bottom:12px;left:12px;right:12px;display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:#fff;border-radius:100px;min-height:50px;padding:0 23px;font-size:14px;font-weight:750;box-shadow:0 10px 30px rgba(16,49,40,.28)}}
@media (max-width:620px){.mobile-contact-bar{opacity:0;transform:translateY(calc(100% + 24px));pointer-events:none;transition:opacity .25s,transform .35s cubic-bezier(.16,1,.3,1)}.show-mobile-cta .mobile-contact-bar{opacity:1;transform:translateY(0);pointer-events:auto}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1!important;transform:none!important}}
