:root {
  --paper:#f8f8f5;
  --white:#fff;
  --ink:#1e2b28;
  --muted:#52615b;
  --line:#d5ddd6;
  --green:#24493a;
  --green-deep:#18372c;
  --green-soft:#e8eee8;
  --accent:#a16b48;
  --sans:"Archivo",Arial,sans-serif;
  --mono:"IBM Plex Mono",monospace;
  --gutter:clamp(22px,4vw,58px);
  --content:1320px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,summary{font:inherit}
::selection{background:#c9dccb;color:var(--ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.skip-link{position:absolute;top:-80px;left:16px;z-index:100;padding:10px 14px;background:var(--ink);color:#fff}
.skip-link:focus{top:10px}
.section,.contained{width:min(100%,var(--content));margin-inline:auto;padding-inline:var(--gutter)}
.kicker{display:block;color:var(--green);font-family:var(--mono);font-size:.68rem;font-weight:500;line-height:1.5;letter-spacing:.08em;text-transform:uppercase}
.lead{font-size:clamp(1.05rem,1.35vw,1.2rem);line-height:1.55}
.small-note{font-size:.86rem;color:var(--muted)}
p{margin:0}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.045em;line-height:1.13}
h1{font-size:clamp(2.5rem,4.3vw,3.85rem)}
h2{font-size:clamp(1.75rem,2.65vw,2.35rem)}
h3{font-size:clamp(1.4rem,2vw,1.85rem)}
.text-link,.plain-link{display:inline-flex;align-items:center;gap:13px;width:max-content;max-width:100%;padding-block:4px;border-bottom:1px solid currentColor;color:var(--green);font-size:.92rem;font-weight:600;line-height:1.4}
.text-link:hover,.plain-link:hover{color:var(--accent)}
.button-link{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;min-height:46px;width:max-content;max-width:100%;padding:10px 16px;background:var(--green);border:1px solid var(--green);color:#fff;font-size:.9rem;font-weight:600;line-height:1.25}
.button-link:hover{background:var(--green-deep)}
.button-light{background:#f7f8f4;border-color:#f7f8f4;color:var(--green-deep)}
.button-light:hover{background:#e8eee8}
.action-row{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:26px}
.status-label{display:inline-block;color:var(--green);font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.site-header{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:74px;padding:0 var(--gutter);border-bottom:1px solid var(--line);background:var(--white)}
.brand{display:inline-flex;align-items:center;gap:9px;flex:none;color:var(--ink);font-size:1.45rem;font-weight:700;letter-spacing:-.065em;line-height:1}
.brand-logo{position:relative;display:inline-block;width:40px;height:40px;overflow:hidden;flex:none}
.brand-logo img{position:absolute;top:50%;left:50%;display:block;width:50px;height:auto;max-width:none;transform:translate(-50%,-50%)}
.desktop-nav{display:flex;align-items:center;gap:clamp(18px,2.2vw,36px)}
.desktop-nav a,.mobile-nav a{font-size:.87rem;font-weight:600}
.desktop-nav a:hover,.desktop-nav a[aria-current=page],.mobile-nav a:hover,.mobile-nav a[aria-current=page]{color:var(--accent)}
.mobile-menu{display:none}
.page{min-height:55vh}
.home-opening{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(285px,.72fr);gap:clamp(40px,6vw,94px);padding-block:55px 55px}
.home-title{max-width:770px}
.home-title h1{margin-top:18px;max-width:730px}
.home-title h1 span{color:var(--green)}
.home-title .lead{max-width:640px;margin-top:26px;color:var(--muted)}
.home-brief{padding:19px 0 0 30px;border-left:1px solid var(--line)}
.home-brief .kicker{margin-bottom:16px}
.home-brief>div{padding:16px 0;border-top:1px solid var(--line)}
.home-brief strong{display:block;font-size:.93rem}
.home-brief p{max-width:340px;margin:6px 0 8px;color:var(--muted);font-size:.86rem;line-height:1.5}
.home-brief a{font-size:.8rem;font-weight:600;color:var(--green)}
.overview-band{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:30px;align-items:center;padding-block:23px;background:var(--green-soft);border-top:1px solid #d1ddd3;border-bottom:1px solid #d1ddd3}
.overview-band p{max-width:720px;font-size:.95rem}
.portfolio-overview{padding-block:68px 25px}
.section-heading{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.65fr);gap:50px;align-items:end;margin-bottom:30px}
.section-heading h2{max-width:650px;margin-top:9px}
.section-heading>p{max-width:450px;color:var(--muted);font-size:.94rem}
.feature-row{display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);gap:clamp(30px,5vw,76px);align-items:center;padding-block:40px;border-top:1px solid var(--line)}
.feature-row:last-child{border-bottom:1px solid var(--line)}
.feature-copy h3{margin:12px 0 15px;font-size:clamp(1.85rem,3vw,2.6rem)}
.feature-copy>p{max-width:500px;color:var(--muted);font-size:.97rem;line-height:1.65}
.feature-copy .text-link{margin-top:22px}
.inline-facts{display:flex;flex-wrap:wrap;gap:8px 17px;margin:19px 0 0;padding:0;list-style:none;color:var(--green);font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.04em}
.inline-facts li+li::before{content:"/";margin-right:17px;color:#a9b6ac}
.feature-image{min-width:0;margin:0;overflow:hidden;border:1px solid var(--line);background:#e8eee8}
.feature-image img{display:block;width:100%;height:auto}
.image-reserve{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:310px;margin:0;overflow:hidden;border:1px solid #bac9bd;background:#e8eee8;color:var(--green)}
.image-reserve::before{content:"";position:absolute;inset:0;background-image:linear-gradient(to right,transparent calc(50% - .5px),rgba(60,95,72,.12) 50%,transparent calc(50% + .5px)),linear-gradient(to bottom,transparent calc(50% - .5px),rgba(60,95,72,.12) 50%,transparent calc(50% + .5px));pointer-events:none}
.image-reserve::after{content:"";position:absolute;inset:18px;border:1px solid currentColor;opacity:.17;pointer-events:none}
.image-reserve-dark{background:var(--green-deep);border-color:var(--green-deep);color:#d5e2d7}
.image-reserve-light{background:#e9e8dd;border-color:#d1d5ca;color:#536356}
.reserve-top,.image-reserve figcaption{position:relative;z-index:1;padding:14px 20px;font-family:var(--mono);font-size:.61rem;letter-spacing:.07em;line-height:1.45;text-transform:uppercase}
.image-reserve figcaption{border-top:1px solid currentColor;opacity:.82}
.reserve-center{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:21px;flex:1;padding:28px;text-align:center;font-family:var(--mono);font-size:.68rem;letter-spacing:.05em;text-transform:uppercase}
.reserve-center img{width:min(65%,280px)}
.reserve-monogram{font-family:var(--sans);font-size:clamp(3rem,6vw,5.2rem);font-weight:600;letter-spacing:-.08em;line-height:1;opacity:.62}
.lasting-feature{grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr)}
.services-overview{padding-block:75px 85px}
.service-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin:27px 0 26px;border-top:1px solid var(--line)}
.service-columns>div{padding-top:20px}
.service-columns strong{display:block;margin-bottom:7px;font-size:1.05rem}
.service-columns p{max-width:350px;color:var(--muted);font-size:.9rem}
.selected-work-home{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(30px,5vw,76px);align-items:center;padding-block:52px;border-top:1px solid var(--line)}
.selected-work-copy h2{margin:10px 0 14px}
.selected-work-copy p{max-width:480px;color:var(--muted)}
.selected-work-copy .text-link{margin-top:20px}
.final-cta{display:flex;justify-content:space-between;align-items:center;gap:35px;padding-block:47px;background:var(--green-deep);color:#f4f6f2}
.final-cta .kicker{color:#b7ceb9}
.final-cta h2{margin:7px 0 8px}
.final-cta p{max-width:640px;color:#d2ded3;font-size:.93rem}
.site-footer{padding-block:52px 24px;background:#172822;color:#edf1ed}
.footer-main{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) minmax(0,.9fr);gap:50px;padding-bottom:48px}
.footer-main .brand{color:#fff}
.footer-main p{max-width:290px;margin-top:14px;color:#bbc9be;font-size:.86rem}
.footer-main nav,.footer-main address{display:flex;flex-direction:column;align-items:flex-start;gap:10px;font-size:.84rem;font-style:normal}
.footer-main a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:16px;border-top:1px solid #54705b;color:#b6c6ba;font-family:var(--mono);font-size:.63rem;letter-spacing:.05em;text-transform:uppercase}
.page-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.65fr);gap:50px;align-items:end;padding-block:62px 56px;border-bottom:1px solid var(--line)}
.page-intro h1{margin-top:10px}
.page-intro>p{max-width:480px;color:var(--muted);font-size:1.05rem;line-height:1.55}
.product-section{padding-block:66px 76px;scroll-margin-top:20px}
.product-section+.product-section{border-top:1px solid var(--line)}
.product-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.68fr);gap:55px;align-items:end;margin-bottom:32px}
.product-intro h2{margin:10px 0 9px;font-size:clamp(2rem,3.4vw,3rem)}
.product-intro .lead{max-width:500px}
.product-intro>p{max-width:460px;color:var(--muted);font-size:.95rem}
.product-content{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr);gap:clamp(30px,5vw,70px);align-items:start}
.product-detail-list{padding-top:20px;border-top:1px solid var(--line)}
.product-detail-list>p{max-width:470px;margin:14px 0 17px;color:var(--muted)}
.product-detail-list ul{margin:15px 0 25px;padding:0;list-style:none}
.product-detail-list li{display:grid;grid-template-columns:44% 1fr;gap:15px;padding:13px 0;border-top:1px solid var(--line);font-size:.85rem}
.product-detail-list li:last-child{border-bottom:1px solid var(--line)}
.product-detail-list li strong{font-weight:600}
.product-detail-list li span{color:var(--muted)}
.product-actions{display:flex;flex-wrap:wrap;align-items:center;gap:15px 23px;font-size:.85rem;font-weight:600}
.product-actions a:not(.text-link){color:var(--green);text-decoration:underline;text-underline-offset:4px}
.related-link{display:flex;justify-content:space-between;align-items:end;gap:35px;padding-block:40px 65px;border-top:1px solid var(--line)}
.related-link h2{margin:8px 0 7px}
.related-link p{color:var(--muted);font-size:.91rem}
.capabilities-lead{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.7fr);gap:65px;padding-block:62px 66px}
.capabilities-lead h2{max-width:650px;margin-top:10px}
.capabilities-lead>div:last-child{align-self:end;max-width:465px;color:var(--muted);font-size:.95rem}
.capabilities-lead p+p{margin-top:12px}
.capability-table{padding-bottom:75px}
.capability-table .section-heading{margin-bottom:20px}
.capability-row{display:grid;grid-template-columns:45px minmax(190px,.7fr) minmax(280px,1fr);gap:20px;align-items:start;padding:24px 0;border-top:1px solid var(--line)}
.capability-row:last-child{border-bottom:1px solid var(--line)}
.capability-row>span{color:var(--green);font-family:var(--mono);font-size:.7rem}
.capability-row h3{font-size:1.23rem;letter-spacing:-.025em}
.capability-row p{max-width:580px;color:var(--muted);font-size:.92rem}
.capability-row p a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.project-start{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);gap:60px;padding-block:52px 64px;background:var(--green-soft)}
.project-start h2{margin-top:8px}
.project-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.project-steps>div{border-top:1px solid #aabeb0;padding-top:12px}
.project-steps span{color:var(--green);font-family:var(--mono);font-size:.68rem;letter-spacing:.04em}
.project-steps p{margin-top:14px;font-size:.88rem;line-height:1.55}
.faq-section{padding-block:76px 85px;scroll-margin-top:30px}
.faq-heading{align-items:start}
.faq-layout{display:grid;grid-template-columns:minmax(220px,.5fr) minmax(0,1.5fr);gap:55px}
.faq-aside{padding-top:16px;border-top:1px solid var(--line)}
.faq-aside p{max-width:220px;margin-bottom:14px;color:var(--muted);font-size:.9rem}
.faq-list{border-top:1px solid var(--ink)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:64px;padding:14px 0;list-style:none;cursor:pointer;font-size:1rem;font-weight:600;line-height:1.35}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::marker{content:""}
.faq-item summary:hover{color:var(--green)}
.faq-toggle{position:relative;flex:none;width:18px;height:18px}
.faq-toggle::before,.faq-toggle::after{content:"";position:absolute;top:8px;left:1px;width:16px;height:1px;background:currentColor}
.faq-toggle::after{transform:rotate(90deg)}
.faq-item[open] .faq-toggle::after{transform:rotate(0)}
.faq-answer{max-width:700px;padding:0 35px 21px 0}
.faq-answer p{color:var(--muted);font-size:.91rem;line-height:1.65}
.case-study{padding-block:50px 72px}
.case-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-bottom:28px;padding-top:15px;border-top:1px solid var(--ink)}
.case-facts>div{display:flex;flex-direction:column;gap:6px}
.case-facts strong,.case-facts a{font-size:.9rem;font-weight:600}
.case-facts a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.case-story{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:70px;padding-top:40px}
.case-story h2{max-width:480px;margin-top:9px}
.case-story p{max-width:590px;margin-bottom:14px;color:var(--muted);font-size:.95rem}
.case-story .text-link{margin-top:10px}
.contact-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.65fr);gap:clamp(50px,8vw,120px);padding-block:65px 100px}
.contact-primary h2{margin:10px 0 15px}
.contact-primary>p{max-width:600px;color:var(--muted);font-size:.96rem}
.contact-email{display:inline-flex;align-items:baseline;gap:.45em;max-width:100%;margin:30px 0 17px;padding-bottom:5px;border-bottom:2px solid var(--green);color:var(--green);font-size:clamp(.875rem,1.9vw,1.75rem);font-weight:600;letter-spacing:-.04em;white-space:nowrap}
.contact-primary .small-note{max-width:540px;margin-bottom:18px}
.contact-secondary{display:flex;flex-direction:column;gap:38px;padding-top:15px;border-top:1px solid var(--line)}
.contact-secondary address{margin-top:14px;font-style:normal;font-size:.94rem;line-height:1.7}
.contact-secondary address a{display:inline-block;margin-top:10px;color:var(--green);text-decoration:underline;text-underline-offset:3px}
.contact-secondary p{max-width:280px;margin:12px 0;color:var(--muted);font-size:.9rem}
.support-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.75fr);gap:clamp(50px,8vw,110px);padding-block:65px 100px}
.support-grid h2{margin:10px 0 14px}
.support-grid p{max-width:550px;color:var(--muted)}
.support-grid p a{color:var(--green);text-decoration:underline}
.support-grid aside{padding-top:15px;border-top:1px solid var(--line)}
.support-grid ul{margin:15px 0 28px;padding:0;list-style:none}
.support-grid li{padding:9px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.support-address{display:flex;flex-direction:column;gap:6px;margin-bottom:25px;font-size:.88rem}
.support-address span{color:var(--muted)}
.not-found{padding-block:100px 130px}
.not-found h1{max-width:600px;margin:12px 0}
.not-found p{margin-bottom:25px;color:var(--muted)}
@media(max-width:900px){
  .home-opening{grid-template-columns:minmax(0,1.15fr) minmax(250px,.85fr);gap:38px}
  .home-brief{padding-left:22px}
  .overview-band{grid-template-columns:115px 1fr}
  .overview-band .text-link{grid-column:2}
  .product-detail-list li{grid-template-columns:1fr;gap:3px}
  .project-start{grid-template-columns:1fr;gap:25px}
}
@media(max-width:760px){
  .site-header{min-height:68px}
  .desktop-nav{display:none}
  .mobile-menu{display:block;position:relative}
  .mobile-menu summary{padding:10px 0 10px 14px;list-style:none;cursor:pointer;font-family:var(--mono);font-size:.72rem;text-transform:uppercase}
  .mobile-menu summary::-webkit-details-marker{display:none}
  .mobile-menu summary::after{content:" +"}
  .mobile-menu[open] summary::after{content:" −"}
  .mobile-nav{position:absolute;top:42px;right:0;display:flex;flex-direction:column;width:min(280px,calc(100vw - 44px));border:1px solid var(--line);background:var(--white);box-shadow:0 16px 28px #17282220}
  .mobile-nav a{padding:13px 17px;border-bottom:1px solid var(--line)}
  .mobile-nav a:last-child{border-bottom:0}
  .home-opening,.page-intro,.section-heading,.feature-row,.selected-work-home,.product-intro,.product-content,.capabilities-lead,.faq-layout,.case-story,.contact-grid,.support-grid{grid-template-columns:1fr}
  .home-opening{gap:42px;padding-block:55px 48px}
  .home-brief{padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .home-brief>div{padding:12px 0}
  .overview-band{grid-template-columns:1fr;gap:10px}
  .overview-band .text-link{grid-column:auto}
  .section-heading{gap:12px}
  .portfolio-overview{padding-block:65px 20px}
  .feature-row{gap:28px;padding-block:35px}
  .feature-row .image-reserve{min-height:300px}
  .services-overview{padding-block:60px}
  .service-columns{grid-template-columns:1fr;gap:0}
  .service-columns>div{padding:15px 0;border-bottom:1px solid var(--line)}
  .selected-work-home{padding-block:45px}
  .final-cta{align-items:flex-start;flex-direction:column}
  .footer-main{grid-template-columns:1fr 1fr;gap:35px}
  .footer-main>div:first-child{grid-column:1/-1}
  .page-intro{gap:17px;padding-block:45px}
  .product-section{padding-block:50px}
  .product-intro{gap:18px}
  .product-content{gap:28px}
  .capabilities-lead{gap:20px;padding-block:50px}
  .capability-row{grid-template-columns:32px 1fr;gap:11px;padding:20px 0}
  .capability-row p{grid-column:2}
  .project-steps{grid-template-columns:1fr;gap:14px}
  .project-steps>div{padding-top:9px}
  .project-steps p{margin-top:5px}
  .faq-section{padding-block:60px}
  .faq-layout{gap:26px}
  .faq-aside{display:flex;align-items:center;justify-content:space-between;gap:20px}
  .faq-aside p{margin:0}
  .case-story{gap:25px}
  .contact-grid,.support-grid{gap:55px;padding-block:52px 80px}
  .contact-email{font-size:clamp(.875rem,4vw,1.75rem)}
}
@media(max-width:520px){
  :root{--gutter:22px}
  h1{font-size:clamp(2.15rem,10.5vw,3rem)}
  .home-title h1 br{display:none}
  .home-title h1 span{display:block;margin-top:5px}
  .action-row{align-items:flex-start;flex-direction:column;gap:15px}
  .home-brief{margin-top:5px}
  .image-reserve{min-height:255px}
  .feature-row .image-reserve{min-height:270px}
  .reserve-top,.image-reserve figcaption{font-size:.54rem;padding-inline:14px}
  .reserve-center{padding:15px}
  .reserve-center img{width:min(75%,230px)}
  .inline-facts{gap:7px 10px}
  .inline-facts li+li::before{margin-right:10px}
  .footer-main{grid-template-columns:1fr;gap:28px}
  .footer-main>div:first-child{grid-column:auto}
  .footer-bottom{flex-direction:column;gap:4px}
  .case-facts{grid-template-columns:1fr;gap:17px}
  .faq-aside{align-items:flex-start;flex-direction:column;gap:10px}
  .faq-item summary{font-size:.92rem;min-height:60px}
}
@media(max-width:380px){.contact-email span{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
