@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/dm-sans-latin.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;src:url('/assets/fonts/manrope-latin.woff2') format('woff2')}
:root{--green:#37765e;--deep:#173f34;--ink:#202a28;--muted:#5f6c68;--line:#d9e2de;--mist:#f3f7f5;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:16px/1.65 'DM Sans',Arial,sans-serif;background:#fff}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,Arial,sans-serif;line-height:1.16;letter-spacing:-.035em}h1{font-size:clamp(2.65rem,5.6vw,5.2rem);font-weight:700}h2{font-size:clamp(2rem,3.7vw,3.5rem);font-weight:700}h3{font-size:1.32rem}a{color:inherit;text-decoration:none}a:hover{text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.wrap{width:min(1180px,calc(100% - 48px));margin:auto}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:700;color:var(--green);margin-bottom:20px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:51px;padding:12px 22px;border-radius:4px;font-weight:700;border:1px solid var(--green);background:var(--green);color:white;transition:background .2s,transform .2s}.button:hover{background:var(--deep);transform:translateY(-2px)}.button.ghost{background:transparent;color:var(--deep);border-color:#abbeb5}.button.ghost:hover{background:var(--mist)}.site-header{position:sticky;top:0;background:rgba(255,255,255,.97);z-index:20;border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.header-inner{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand img{width:155px;height:auto;display:block}.nav{display:flex;gap:31px;align-items:center;font-size:.94rem;font-weight:700}.nav a:not(.button):hover{color:var(--green)}.nav .button{min-height:45px}.menu-toggle{display:none;background:none;border:0;color:var(--deep);font-size:1.8rem}.hero{position:relative;overflow:hidden;background:var(--mist)}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;min-height:565px}.hero-copy{padding:58px 7% 58px 0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.hero h1{font-size:clamp(2.65rem,4.5vw,4.3rem);max-width:730px;margin-bottom:20px}.hero p{font-size:1.14rem;max-width:570px;color:#45564f;margin-bottom:24px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.hero-image{position:relative;min-height:470px}.hero-image img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.hero-image:before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,var(--mist) 0%,transparent 17%)}.hero-image .caption{position:absolute;z-index:2;bottom:21px;right:21px;background:rgba(255,255,255,.9);font-size:.72rem;color:#52625c;padding:4px 9px;border-radius:3px}.utility{background:var(--deep);color:white}.utility-inner{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 48px;padding:15px 0;font-size:.91rem;font-weight:600}.utility span{opacity:.9}.section{padding:72px 0}.section.intro{padding-bottom:68px}.section-heading{max-width:730px;margin-bottom:30px}.section-heading p{color:var(--muted);font-size:1.08rem;margin:12px 0 0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service{border:1px solid var(--line);padding:30px 29px 26px;min-height:305px;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s;background:white}.service:hover{box-shadow:0 18px 50px rgba(18,58,44,.09);transform:translateY(-3px)}.service-num{font-size:.78rem;letter-spacing:.12em;color:var(--green);font-weight:800;margin-bottom:30px}.service h3{margin-bottom:16px}.service p{color:var(--muted);margin-bottom:30px}.service a.button{align-self:flex-start;margin-top:auto;min-height:46px;padding:9px 19px;color:#fff;font-weight:800}.service a.button:hover{color:#fff}.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.feature{background:var(--deep);color:white}.feature .eyebrow{color:#a8d1bd}.feature p{color:#d6e6dd;font-size:1.07rem}.feature-lines{border-top:1px solid #537665}.feature-lines div{border-bottom:1px solid #537665;padding:18px 0;display:flex;gap:20px;align-items:baseline}.feature-lines strong{color:#a8d1bd;font-size:.85rem}.feature-lines span{font:600 1.22rem Manrope}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.step{border-top:2px solid var(--green);padding-top:18px}.step small{font-size:.76rem;color:var(--green);font-weight:800}.step h3{margin:14px 0 11px}.step p{color:var(--muted)}.contact-section{background:var(--mist)}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:start}.contact-copy p{color:var(--muted);font-size:1.07rem}.contact-facts{margin-top:28px;display:grid;gap:17px;font-weight:700}.contact-facts a{color:var(--deep);font-size:1.1rem}.contact-facts small{display:block;color:var(--muted);font-weight:500}.contact-form{background:white;padding:30px;border:1px solid var(--line);box-shadow:0 24px 50px rgba(24,65,48,.06)}.contact-form h3{margin-bottom:8px}.contact-form>p{color:var(--muted);margin-bottom:18px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{margin-bottom:12px}.field.full{grid-column:1/-1}.field label{display:block;font-weight:700;font-size:.91rem;margin-bottom:6px}.field input,.field textarea,.field select{width:100%;border:1px solid #baccc2;border-radius:3px;background:white;padding:12px 14px;color:var(--ink);outline:none}.field textarea{min-height:115px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--green);box-shadow:0 0 0 3px #daeee2}.form-note{font-size:.84rem;color:var(--muted);margin:12px 0 0}.site-footer{background:#112e27;color:#d4e4dc;padding:40px 0 24px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:50px}.footer-logo{width:155px;background:white;padding:7px;border-radius:2px}.footer-grid h3{font-size:1rem;letter-spacing:0;color:white}.footer-grid a{display:block;margin:8px 0}.footer-bottom{border-top:1px solid #355348;margin-top:32px;padding-top:18px;color:#b6cec1;font-size:.84rem}.page-hero{background:var(--mist);padding:55px 0 48px}.page-hero .wrap{max-width:1180px}.page-hero h1{font-size:clamp(2.6rem,5vw,4.7rem);max-width:910px;margin-bottom:18px}.page-hero p{max-width:740px;font-size:1.18rem;color:#4c6056;margin:0}.detail-layout{display:grid;grid-template-columns:1fr 320px;gap:110px}.detail-copy{font-size:1.08rem}.detail-copy h2{font-size:2rem;margin-top:34px}.detail-copy p,.detail-copy li{color:#4c5c56}.detail-copy ul{padding-left:22px}.detail-copy li{margin-bottom:10px}.side-card{border:1px solid var(--line);padding:27px;align-self:start;position:sticky;top:115px;background:var(--mist)}.side-card p{color:var(--muted)}.side-card .button{width:100%;margin-bottom:13px}.side-card a.tel{display:block;color:var(--green);font-weight:800;text-align:center}.breadcrumb{font-size:.85rem;color:var(--muted);margin-bottom:28px}.breadcrumb a{color:var(--green)}.last-cta{padding:82px 0;background:var(--deep);color:white}.last-cta .wrap{display:flex;align-items:center;justify-content:space-between;gap:40px}.last-cta h2{font-size:clamp(2rem,3vw,3rem);margin:0}.last-cta p{color:#c9ded1;margin:10px 0 0}.last-cta .button{background:white;color:var(--deep);border-color:white;flex-shrink:0}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr}.hero-copy{padding:55px 0 35px}.hero-image{min-height:260px;margin:0 -24px}.hero-image:before{display:none}.split,.contact-grid,.detail-layout{grid-template-columns:1fr;gap:45px}.service-grid{grid-template-columns:1fr 1fr}.side-card{position:static}.section{padding:60px 0}.feature-lines{margin-top:20px}}
@media(max-width:650px){.wrap{width:min(100% - 36px,1180px)}.header-inner{min-height:74px}.brand img{width:135px}.menu-toggle{display:block}.nav{display:none;position:absolute;top:73px;left:0;right:0;background:white;padding:20px 18px 25px;border-bottom:1px solid var(--line);box-shadow:0 15px 25px rgba(0,0,0,.08);flex-direction:column;align-items:stretch;gap:16px}.nav.open{display:flex}.nav a:not(.button){padding:6px}.nav .button{width:100%}.hero-copy{padding:42px 0 30px}.hero h1{font-size:clamp(2.4rem,10vw,3.5rem)}.hero p{font-size:1rem}.hero-image{margin:0 -18px;min-height:225px}.utility-inner{flex-direction:column;gap:2px;padding:13px 0}.service-grid,.steps,.fields{grid-template-columns:1fr}.service{min-height:unset;padding:23px}.service-num{margin-bottom:20px}.service h3{margin-bottom:12px}.service p{margin-bottom:22px}.section-heading{margin-bottom:25px}.contact-form{padding:24px}.footer-grid{grid-template-columns:1fr;gap:24px}.last-cta .wrap{display:block}.last-cta .button{margin-top:26px}.page-hero{padding:46px 0}.section{padding:44px 0}}
.detail-copy h2:first-child{margin-top:0}
.service-list{background:var(--mist);border:1px solid var(--line);padding:26px 28px;margin-bottom:40px}.service-list h2{font-size:1.45rem;margin:0 0 18px}.service-list ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}.service-list li{position:relative;padding-left:25px;margin:0;color:var(--ink);font-weight:700}.service-list li:before{content:'✓';position:absolute;left:0;color:var(--green);font-weight:800}
.profile-label{margin-bottom:12px}.profile-name{margin:0 0 6px!important}.person-role{color:var(--green)!important;font-weight:800;margin-bottom:22px}.about-photo{margin:30px 0 42px}.about-photo img{width:100%;height:auto;display:block;aspect-ratio:16/9;object-fit:cover}
.cases-section{background:#f8faf9;border-top:1px solid var(--line)}.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.case-card{background:white;border:1px solid var(--line);padding:28px;display:flex;flex-direction:column}.case-tag{font-size:.75rem;letter-spacing:.12em;color:var(--green);font-weight:800;margin-bottom:18px}.case-card h3{font-size:1.45rem;margin-bottom:22px}.case-part{border-top:1px solid var(--line);padding-top:16px}.case-part+.case-part{margin-top:16px}.case-part strong{display:block;color:var(--deep);font-size:.86rem;margin-bottom:5px}.case-part p{color:var(--muted);margin:0;font-size:.95rem;line-height:1.55}.case-part.result{margin-top:auto;padding-top:16px}
@media(max-width:900px){.case-grid{grid-template-columns:1fr}}

.page-hero + .contact-section{padding-top:32px}
@media(max-width:650px){.page-hero + .contact-section{padding-top:22px}}
.about-hero{padding:28px 0 34px}.about-hero .breadcrumb{margin-bottom:20px}.about-hero-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:54px;align-items:center}.about-hero .eyebrow{margin-bottom:12px}.about-hero h1{font-size:clamp(2.65rem,4vw,4.15rem);max-width:620px;margin-bottom:15px}.about-hero-copy>p{max-width:590px;font-size:1.08rem;margin-bottom:19px}.about-person{border-left:3px solid var(--green);padding-left:14px;display:grid;gap:1px}.about-person strong{font:700 1.18rem Manrope,Arial,sans-serif;letter-spacing:-.025em}.about-person span{color:var(--green);font-weight:800}.about-hero-photo{height:355px;margin:0;overflow:hidden}.about-hero-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 42%}.about-details{padding-top:52px}.about-details .profile-label{margin-bottom:13px}.about-details .detail-copy h2:first-of-type{margin-top:0}
@media(max-width:900px){.about-hero-grid{grid-template-columns:1fr;gap:24px}.about-hero-photo{height:275px}.about-details{padding-top:42px}}
@media(max-width:650px){.about-hero{padding:20px 0 24px}.about-hero .breadcrumb{margin-bottom:13px}.about-hero .eyebrow{margin-bottom:9px}.about-hero h1{font-size:clamp(2.25rem,10.5vw,3rem);margin-bottom:11px}.about-hero-copy>p{font-size:1rem;line-height:1.5;margin-bottom:14px}.about-person strong{font-size:1.05rem}.about-person span{font-size:.92rem}.about-hero-grid{gap:18px}.about-hero-photo{height:215px}.about-details{padding-top:34px}}
@media(max-width:650px){.service-list{padding:22px;margin-bottom:32px}.service-list ul{grid-template-columns:1fr;gap:10px}}
.legal{max-width:800px}.legal h2{font-size:1.55rem;margin:34px 0 10px}.legal h2:first-child{margin-top:0}.legal p{color:#4c5c56;margin-bottom:14px}.legal a,.form-note a,.footer-bottom a{color:var(--green);text-decoration:underline;text-underline-offset:3px}.legal-date{font-size:.9rem;margin-top:35px}.footer-bottom{display:flex;gap:25px;flex-wrap:wrap}.footer-bottom a{color:#d4e4dc}
.honey{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.form-status{font-weight:700;color:var(--deep);margin:12px 0 0}.form-status:empty{display:none}.form-status.error{color:#9a332f}.form-status a{text-decoration:underline}.contact-form button:disabled{opacity:.65;cursor:wait;transform:none}

/* Overview pages share the established compact, architectural layout. */
.overview-hero{padding:28px 0 30px}
.overview-hero .breadcrumb{margin-bottom:16px}
.overview-hero .eyebrow{margin-bottom:10px}
.overview-hero h1{font-size:clamp(2.3rem,4.3vw,3.7rem);margin-bottom:12px}
.overview-hero p{font-size:1.08rem;max-width:760px}
.overview-section{padding:32px 0 42px}
.overview-service{border-top:3px solid var(--green);padding:25px;min-width:0}
.overview-service .service-num{margin-bottom:18px;font-size:.875rem}
.overview-service h2{font-size:1.55rem;line-height:1.25;margin-bottom:14px}
.overview-service p{font-size:1rem;margin-bottom:18px}
.overview-service ul{list-style:none;margin:0 0 24px;padding:0}
.overview-service li{border-top:1px solid var(--line);padding:9px 0;font-size:1rem;line-height:1.45}
.overview-help{display:flex;align-items:center;justify-content:space-between;gap:28px;background:var(--mist);border:1px solid var(--line);padding:26px 28px;margin-top:26px}
.overview-help h2{font-size:1.4rem;margin-bottom:8px}
.overview-help p{margin:0;max-width:670px;color:var(--muted)}
.overview-help .button{flex-shrink:0}
.overview-link{margin-top:24px}
.project-list{display:grid;gap:24px}
.project-row{display:grid;grid-template-columns:.8fr 1.2fr;border:1px solid var(--line);scroll-margin-top:110px}
.project-heading{background:var(--deep);color:white;padding:30px}
.project-heading .case-tag{display:block;color:#bcdccc;font-size:.875rem}
.project-heading h2{font-size:clamp(1.65rem,2.8vw,2.3rem);margin:14px 0}
.project-heading p{color:#d6e6dd;margin-bottom:24px}
.project-heading .button.ghost{border-color:#8ba99b;color:white;font-size:.95rem}
.project-heading .button.ghost:hover{background:#254d40}
.project-story{padding:28px 32px;display:grid;gap:19px}
.project-story h3{font-size:1rem;letter-spacing:0;color:var(--deep);margin:0 0 6px}
.project-story p{color:var(--muted);margin:0}
.project-outcome{border-top:1px solid var(--line);padding-top:18px}
.nav a[aria-current]{text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:2px}
a:focus-visible,button:focus-visible{outline:3px solid #659f86;outline-offset:4px}
@media(min-width:651px) and (max-width:900px){.header-inner{gap:16px}.nav{gap:16px;font-size:.875rem}.brand img{width:130px}.nav .button{padding:10px 14px}.overview-services{grid-template-columns:1fr}.overview-service{display:grid;grid-template-columns:1fr 1fr;column-gap:30px}.overview-service .service-num,.overview-service h2,.overview-service p{grid-column:1}.overview-service ul{grid-column:2;grid-row:1/4}.overview-service a.button{grid-column:1/-1;margin-top:4px}}
@media(max-width:650px){.overview-hero{padding:22px 0}.overview-hero p{font-size:1rem}.overview-section{padding:24px 0 32px}.overview-services{grid-template-columns:1fr}.overview-service{padding:22px}.overview-help{display:block;padding:22px}.overview-help .button{margin-top:18px}.project-row{grid-template-columns:1fr}.project-heading,.project-story{padding:24px}.project-heading p{margin-bottom:18px}.project-list{gap:20px}.overview-hero h1{font-size:2.35rem}}
/* Calm motion that supports the content without changing its layout. */
@media (prefers-reduced-motion: no-preference) {
  .hero-copy > *{animation:hero-enter .8s cubic-bezier(.2,.7,.2,1) both}
  .hero-copy > :nth-child(2){animation-delay:.09s}
  .hero-copy > :nth-child(3){animation-delay:.18s}
  .hero-copy > :nth-child(4){animation-delay:.27s}
  .hero-image img{animation:hero-photo 1.4s cubic-bezier(.2,.7,.2,1) both}
  .utility-inner{animation:hero-enter .75s .35s both}
  .has-motion .reveal{transition:opacity .45s ease,transform .45s cubic-bezier(.2,.7,.2,1)}
  .has-motion .reveal:not(.is-visible){opacity:.18;transform:translateY(10px)}
  .service.reveal.is-visible:hover{transform:translateY(-5px)}
  .button{transition:background .25s ease,transform .25s ease,box-shadow .25s ease}
  .button:hover{box-shadow:0 10px 20px rgba(23,63,52,.14)}
  @keyframes hero-enter{from{opacity:0;transform:translateY(17px)}to{opacity:1;transform:translateY(0)}}
  @keyframes hero-photo{from{opacity:.55;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}
}
@media (prefers-reduced-motion: reduce) {
  html{scroll-behavior:auto}
  .button,.service{transition:none}
}
