@font-face{font-family:Poppins;src:url("assets/poppins-400.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url("assets/poppins-500.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url("assets/poppins-600.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}
:root{--dark:#0d1110;--ink:#1f211f;--green:#13a14d;--button:#0b783a;--paper:#f6f9ff;--muted:#596b61;--line:#b0bcb7;--light-green:#e5f1ec;font-family:Poppins,Arial,sans-serif;color:var(--ink);font-size:16px}
*{box-sizing:border-box}html{scroll-padding-top:24px}body{margin:0;background:white;line-height:1.5}h1,h2,h3,p,figure{margin:0}button,input,textarea{font:inherit}a{color:inherit}img{max-width:100%}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}
.wrap{width:calc(100% - 144px);max-width:1296px;margin-inline:auto}
.skip-link{position:fixed;top:8px;left:8px;z-index:10;padding:12px;background:white;transform:translateY(-160%)}.skip-link:focus{transform:none}
:focus-visible{outline:3px solid #13a14d;outline-offset:4px}
.opening{background:var(--dark);color:var(--paper);overflow:hidden}
.site-header{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;min-height:128px;gap:28px}
.brand{display:inline-flex;flex:none;width:200px}.brand img{display:block;width:100%;height:auto}
.site-header nav{display:flex;align-items:center;gap:28px}.site-header nav>a{font-size:13px;text-decoration:none;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}.site-header nav>a:hover,.footer-bottom a:hover{text-decoration:underline;text-underline-offset:5px}
.menu-button{display:none}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 22px;border:1px solid transparent;min-height:46px;background:var(--button);color:white;text-decoration:none;font-size:13px;font-weight:600;line-height:1.2;cursor:pointer}
.button:hover{background:#096532}.button:disabled{opacity:.65;cursor:wait}.button-small{padding:13px 21px;text-transform:uppercase}
.button-light{background:var(--paper);color:var(--ink);border-color:#d5dfd9}.button-light:hover{background:#e2e9e4}
.button-outline{background:transparent;border-color:#cbd3ce;color:var(--ink)}.button-outline:hover{background:var(--light-green)}
.hero{position:relative;min-height:720px;display:flex;align-items:center;padding-bottom:50px;isolation:isolate}
.hero-art{position:absolute;z-index:-1;right:0;top:-42px;width:1000px;max-width:82%;height:auto;pointer-events:none;mix-blend-mode:lighten;mask-image:linear-gradient(to right,transparent,#000 15%,#000 95%,transparent),linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent);mask-composite:intersect}
.hero-content{width:660px;max-width:57%;padding-bottom:0}
.eyebrow{font-size:12px;font-weight:600;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;color:#0b6c35;margin-bottom:22px}
.hero .eyebrow{color:#adcbbd;font-size:11px;letter-spacing:.1em;margin-bottom:24px}
h1{font-size:72px;line-height:1.03;font-weight:600;letter-spacing:-.035em;text-transform:uppercase}
.hero-description{font-size:19px;line-height:1.5;color:#c6d0ca;max-width:640px;margin-top:24px}


.section{padding-block:72px}.about{padding-block:100px}
h2{font-size:52px;line-height:1.06;letter-spacing:-.025em;font-weight:600;text-transform:uppercase;max-width:1080px}
h2.mixed-case{text-transform:none}
.section-copy{font-size:18px;line-height:1.5;max-width:780px;margin-top:22px;color:var(--muted)}
.services{background:var(--paper)}.service-index{margin-top:28px;border-top:1px solid var(--line)}
.service-area{border-bottom:1px solid var(--line)}
.service-area summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:17px 0;min-height:62px;cursor:pointer;list-style:none;font-size:21px;font-weight:600;line-height:1.3}
.service-area summary::-webkit-details-marker{display:none}.service-area summary:hover{background:#edf3f0}
.area-note{display:block;font-size:12px;line-height:1.5;font-weight:400;color:var(--muted);margin-top:4px}
.toggle{width:18px;height:18px;flex:none;position:relative;margin-right:8px;color:#08632f}.toggle:before,.toggle:after{content:"";position:absolute;top:8px;left:3px;width:12px;height:2px;background:currentColor}.toggle:after{transform:rotate(90deg)}details[open] .toggle:after{transform:none}
.service-area dl{margin:0;padding:0 28px 18px 24px}
.service-area dl>div{display:grid;grid-template-columns:42% 1fr;gap:24px;border-top:1px solid #cbd5ce;padding:12px 0}
dt{font-size:14px;line-height:1.45;font-weight:600}dd{font-size:14px;line-height:1.5;color:var(--muted);margin:0}

.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:26px 0 24px}
.project-grid img{display:block;width:100%;height:auto;aspect-ratio:420/410;object-fit:cover}
.project-grid figcaption{padding:16px 18px;background:#f5f7f6}.project-grid h3{font-size:19px;line-height:1.3;font-weight:600}.project-grid figcaption p{color:var(--muted);font-size:12px;margin-top:6px}
.architects{background:var(--paper)}.architect-columns{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:28px}
.architect-lead{font-size:24px;line-height:1.4;max-width:520px;margin-bottom:24px}
.benefits{list-style:none;margin:0;padding:0}.benefits li{padding:10px 0;border-bottom:1px solid #c8d4cd;font-size:16px}
.benefits li:first-child{padding-top:0}
.process-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;list-style:none;margin:30px 0 0;padding:0}
.process-steps li{padding:20px 0;border-top:1px solid var(--line)}
.step-number{color:#087135;font-size:12px;font-weight:600}.process-steps h3{font-size:19px;font-weight:600;margin-top:22px}.process-steps p{font-size:14px;line-height:1.6;color:var(--muted);margin-top:12px}
.contact-email{display:inline-block;font-size:22px;text-decoration:none;color:#087335;margin-top:22px;overflow-wrap:anywhere}
#contact-form{max-width:900px;background:#f3f6f4;margin-top:28px;padding:28px;display:grid;gap:20px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.form-field{min-width:0}label{display:block;font-size:14px;font-weight:500;margin-bottom:7px}
.optional{font-weight:400;color:var(--muted)}
input[type=text],input[type=email],textarea{width:100%;border:1px solid #aebcb3;border-radius:0;background:white;color:var(--ink);padding:12px 14px;min-height:48px;font-size:14px}
textarea{display:block;resize:vertical;min-height:120px}
input::placeholder,textarea::placeholder{color:#64756b;opacity:1}
[aria-invalid=true]{border-color:#a12828!important}
.field-error{color:#a12828;font-size:13px;margin-top:5px}.field-error:empty{display:none}
.field-help,.drop-hint{font-size:12px;color:var(--muted);margin-top:7px}
.file-drop{padding:16px;border:1px dashed #8caa98;background:#fbfdfb}
.file-drop.is-dragging{background:#e5f2e9;border-color:#078432}
input[type=file]{display:block;width:100%;font-size:13px;color:var(--muted)}
input[type=file]::file-selector-button{font:inherit;border:1px solid #aebcb3;background:white;min-height:44px;padding:10px 14px;margin-right:12px;cursor:pointer;color:var(--ink)}
.file-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px}.file-list:empty{display:none}.file-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-top:1px solid #cad5ce;font-size:13px}.file-list .file-name{overflow-wrap:anywhere}.file-list small{display:block;color:var(--muted)}.file-remove{flex:none;background:transparent;border:0;min-height:44px;padding:10px;color:#165d35;font-size:13px;cursor:pointer;text-decoration:underline}
#contact-form>.button{justify-self:start}.preview-notice{font-size:12px;line-height:1.5;color:var(--muted)}
.form-status{font-size:14px}.form-status:empty{display:none}.form-status a{color:#08632f}
.site-footer{background:var(--dark);color:var(--paper);padding:42px 0 24px}
.footer-top{display:flex;justify-content:space-between;gap:36px;align-items:flex-start;padding-bottom:28px}
.site-footer .brand{width:180px}.footer-top>div>p{font-size:14px;margin-top:12px;color:#adbbb2}.footer-contact .eyebrow{margin:0 0 8px;color:#8ed8ab;font-size:11px}.footer-contact>a{font-size:23px;text-decoration:none;overflow-wrap:anywhere}
.footer-bottom{border-top:1px solid #3b4b42;padding-top:14px;display:flex;justify-content:space-between;gap:20px;align-items:center}
.footer-bottom nav{display:flex;flex-wrap:wrap;gap:0 26px}.footer-bottom a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;text-decoration:none}.copyright{margin-top:16px;font-size:11px;color:#9eafa5}
@media(min-width:1441px){.hero-art{right:0}}
@media(max-width:1150px){.wrap{width:calc(100% - 80px)}.site-header nav{gap:17px}h1{font-size:58px}.hero-content{max-width:60%}.hero-art{max-width:85%}.hero{min-height:700px}.site-header .brand{width:170px}h2{font-size:44px}}
@media(max-width:900px){.wrap{width:calc(100% - 48px)}.site-header{min-height:102px;position:relative;flex-wrap:nowrap;padding-block:20px;gap:18px}.site-header .brand{width:150px}.menu-button{display:flex;align-items:center;justify-content:center;flex:none;background:transparent;border:1px solid #41564a;border-radius:50%;color:var(--paper);width:46px;height:46px;padding:0;cursor:pointer}
.menu-icon{position:relative;width:20px;height:14px}
.menu-icon span{position:absolute;left:0;top:3px;width:20px;height:1.5px;background:currentColor}
.menu-icon span+span{top:10px}
.menu-button[aria-expanded=true] .menu-icon span{top:6px;transform:rotate(45deg)}
.menu-button[aria-expanded=true] .menu-icon span+span{top:6px;transform:rotate(-45deg)}.site-header nav{position:absolute;right:0;top:calc(100% - 6px);z-index:4;width:min(360px,100%);display:none;grid-template-columns:1fr 1fr;gap:4px 16px;padding:18px 20px;background:var(--dark);border:1px solid #41564a;border-radius:3px;box-shadow:0 16px 28px #0005}
.site-header nav.is-open{display:grid}
.site-header nav>a{padding:8px 0;min-height:46px}
.site-header nav>.button{grid-column:1/-1;margin-top:8px;justify-content:center;padding:13px}.hero{min-height:675px}.hero-content{max-width:65%}h1{font-size:49px}.hero-description{font-size:17px}.hero-art{max-width:90%;right:-30px}.eyebrow{font-size:11px}.hero .eyebrow{font-size:10px}.section{padding-block:56px}.about{padding-block:68px}.section-copy{font-size:17px}.process-steps{grid-template-columns:1fr 1fr}.architect-columns{gap:32px}.footer-contact>a{font-size:19px}}
@media(max-width:650px){.hero{display:block;min-height:0;padding-top:287px;padding-bottom:58px}.hero-art{width:440px;max-width:none;top:-8px;left:calc(50% - 260px);right:auto}.hero-content{width:100%;max-width:none;padding:0;position:relative}.hero .eyebrow{font-size:10px;letter-spacing:.04em;margin-bottom:20px}h1{font-size:clamp(31px,9.7vw,40px);letter-spacing:-.035em;line-height:1.04}.hero-description{font-size:16px;margin-top:24px}.section{padding-block:52px}.about{padding-block:56px}h2{font-size:32px;line-height:1.08}.section-copy{font-size:16px;line-height:1.55}.eyebrow{font-size:10px;margin-bottom:20px}.service-index{margin-top:24px}.service-area summary{font-size:16px;min-height:60px;padding-block:16px;gap:16px}.service-area dl{padding:0 12px 14px}.service-area dl>div{grid-template-columns:1fr;gap:5px;padding-block:12px}dt,dd{font-size:14px}.area-note{font-size:11px}.project-grid{grid-template-columns:1fr;gap:26px}.project-grid figcaption{padding-inline:14px}.project-grid h3{font-size:19px}.architect-columns{grid-template-columns:1fr;gap:30px}.architect-lead{font-size:22px}.benefits li{font-size:14px;padding:12px 0}.process-steps{grid-template-columns:1fr;gap:12px}.process-steps li{display:grid;grid-template-columns:28px 1fr;gap:6px 12px;padding:18px 0}.step-number{grid-row:1/3;padding-top:3px}.process-steps h3{margin:0;font-size:18px}.process-steps p{margin:0;font-size:14px}.contact-email{font-size:18px;margin-top:20px}#contact-form{padding:20px;margin-top:24px;gap:18px}.form-row{grid-template-columns:1fr;gap:18px}input[type=file]{font-size:12px}input[type=file]::file-selector-button{display:block;margin-bottom:10px}.footer-top{flex-direction:column;gap:26px}.site-footer .brand{width:160px}.footer-contact>a{font-size:19px}.footer-bottom{align-items:flex-start;flex-direction:column;gap:12px}.footer-bottom nav{gap:0 16px}.footer-top>div>p{font-size:13px}.site-footer{padding-top:32px}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}.button{transition:background-color .15s ease}.toggle:after{transition:transform .15s ease}}


@media(max-width:360px){h2{font-size:26px}.contact-email,.footer-contact>a{font-size:16px}}

.project-image{overflow:hidden}
.project-image img{display:block}
@media(prefers-reduced-motion:no-preference){
  .hero-content{animation:hero-arrive .85s cubic-bezier(.22,1,.36,1) both}
  .hero-art{animation:drawing-arrive 1.15s ease-out both}
  .motion-reveal{transition:opacity .65s ease,transform .65s cubic-bezier(.22,1,.36,1)}
  .motion-wait{opacity:0;transform:translateY(24px)}
  .project-grid figure:nth-child(2),.process-steps li:nth-child(2){transition-delay:70ms}
  .project-grid figure:nth-child(3),.process-steps li:nth-child(3){transition-delay:140ms}
  .process-steps li:nth-child(4){transition-delay:210ms}
  .project-image img{transition:transform .8s cubic-bezier(.22,1,.36,1)}
  .button{transition:background-color .2s ease,transform .2s ease}
  .menu-icon span{transition:transform .22s ease,top .22s ease}
  .site-header nav.is-open{animation:nav-arrive .24s ease-out both}
  .service-area[open] dl{animation:service-arrive .28s ease-out}
  @supports(interpolate-size:allow-keywords){
    .service-area{interpolate-size:allow-keywords}
    .service-area::details-content{block-size:0;overflow:clip;transition:block-size .32s ease,content-visibility .32s;transition-behavior:allow-discrete}
    .service-area[open]::details-content{block-size:auto}
  }
  @media(hover:hover){
    .project-grid figure:hover .project-image img{transform:scale(1.035)}
    .button:hover{transform:translateY(-2px)}
  }
}
@keyframes hero-arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes drawing-arrive{from{opacity:0}to{opacity:1}}
@keyframes nav-arrive{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}
@keyframes service-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media print{.motion-reveal{opacity:1!important;transform:none!important}}


.website-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
