@font-face{font-family:"Noto Sans";font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/noto-sans-latin.woff2") format("woff2")}
@font-face{font-family:"Open Sans";font-style:normal;font-weight:300 600;font-display:swap;src:url("fonts/open-sans-latin.woff2") format("woff2")}
:root{--green:#003626;--accent:#006d50;--gold:#9b8d73;--ink:#252b27;--gutter:70px;--header-height:180px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-height)}
body{margin:0;font-family:"Noto Sans",Arial,sans-serif;font-weight:400;color:var(--green);background:#fff;line-height:1.7;overflow-x:clip}
body.menu-open{overflow:hidden}
img,video{display:block;max-width:100%}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;cursor:pointer}
a{color:inherit;text-decoration:none}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #b49e57;outline-offset:6px}
h1,h2,h3,p,figure{margin:0}
.frame{width:100%;padding-inline:var(--gutter);margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:100;top:10px;left:12px;padding:10px 18px;background:#fff;color:var(--green);transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
.site-header{position:fixed;top:0;left:0;width:100%;z-index:30;color:#fff;background:linear-gradient(#9b8d73 0%,#9b8d7300 99%)}
.header-inner{height:180px;display:flex;align-items:flex-start;justify-content:space-between;padding-top:40px}
.brand{flex:none}
.brand img{width:73px;height:100px;object-fit:contain;transition:width .25s,height .25s}
.main-nav{display:flex;gap:120px;padding-top:30px;align-items:center}
.main-nav a{font-size:14px;font-weight:300;letter-spacing:1.4px;text-transform:uppercase;padding:0 0 6px;border-bottom:1px solid transparent}
.main-nav a:hover,.main-nav a[aria-current="location"]{border-color:currentColor}
.menu-toggle{display:none}
.hero{position:relative;min-height:1182px;color:#fff;isolation:isolate}
.hero-photo{position:absolute;inset:0;z-index:-1;background:var(--gold)}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-content{padding-top:282px}
.hero-eyebrow p{font-size:30px;letter-spacing:1px;font-weight:500;margin-bottom:40px}
.hero-eyebrow img{width:281px;height:4px}
.hero h1{font-size:44px;font-weight:500;line-height:1.6;letter-spacing:8.8px;margin-top:294px}
.scroll-cue{position:absolute;bottom:35px;left:calc(50% - 22px);width:44px;height:44px;display:grid;place-items:center}
.scroll-cue svg{width:24px;height:28px;fill:none;stroke:currentColor;stroke-width:2;opacity:.75}
.about{padding-top:320px;padding-bottom:19px}
.about-intro{display:grid;grid-template-columns:45% 52%;justify-content:start;gap:0;align-items:start;min-height:312px}
.bar-label{font-size:22px;font-weight:300;line-height:40px;min-height:40px;padding:0 0 0 10px;border-left:10px solid #006d50;color:#106d54;letter-spacing:.8px}
.text-link{display:inline-flex;align-items:center;gap:10px;min-height:48px;font-size:20px;font-weight:500;letter-spacing:4px;text-transform:uppercase;padding:14px 0;transition:color .2s}
.text-link:hover{color:#568060}
.text-link svg{flex:none;width:21px;height:24px}
.about-link{margin-top:190px;letter-spacing:4px;font-size:20px;padding:16px 32px;line-height:34px}
.about-copy{font-size:24px;line-height:40px;font-weight:500}
.about-copy p+p{margin-top:24px}
.gallery{position:relative;margin-top:27px;margin-bottom:200px;padding:27px 0 27px 55vw;height:249px}
.gallery-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
.gallery-track::-webkit-scrollbar{display:none}
.gallery figure{flex:0 0 calc((50vw - 40px)/3);scroll-snap-align:start}
.gallery img{width:100%;height:auto;aspect-ratio:7/6;object-fit:cover}
.gallery-controls{display:flex;justify-content:flex-end;gap:8px;margin:14px var(--gutter) 0 0}
.gallery-controls button{display:grid;place-items:center;width:44px;height:44px;border:0;background:#fff;color:var(--green);border-radius:0}
.gallery-controls button:hover{background:#eef4f0}
.gallery-controls svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6}
.gallery-pause .play-symbol{display:none}
.gallery-pause[aria-pressed="true"] .play-symbol{display:block}
.gallery-pause[aria-pressed="true"] .pause-symbol{display:none}
.service-banner{height:600px;background:url("images/service-background.png") center / cover no-repeat;background-attachment:fixed}
.service{padding:110px 0 205px;scroll-margin-top:0}
.service-grid{display:grid;grid-template-columns:44.6% 1fr;gap:3%;padding-left:0}
.section-title{font-size:30px;font-weight:600;line-height:1.5;letter-spacing:3px;text-transform:uppercase;color:#121a15}
.service-visual .section-title{margin:30px 0;padding-left:var(--gutter);line-height:50px}
.service-visual .bar-label{margin:0 0 18px var(--gutter);min-height:50px;line-height:50px;padding-left:24px;color:#18664ce3}
.service-visual img{width:100%;max-width:none;height:auto}
.service-copy{padding-top:100px;color:#2c2a29;font-family:"Open Sans",Arial,sans-serif}
.service-copy h3{font-size:35px;line-height:1.4;font-weight:600;color:#186626;max-width:85%;margin-bottom:111px}
.service-copy p{font-size:18px;line-height:36px;font-weight:500}
.service-copy .text-link{display:flex;justify-content:flex-end;margin-top:22px;color:var(--green)}
.products{padding-top:54px}
.products>.frame .section-title{width:calc(50% - 40px);margin-left:20px;text-align:right;line-height:50px;min-height:80px}
.assembly-story{margin-top:73px}
.assembly-stage{position:relative;margin:0 10px;display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:600px}
.assembly-video{width:100%;max-height:82svh;object-fit:contain;background:#fff}
.skip-animation{padding:12px 16px;min-height:44px;font-size:13px;letter-spacing:1px;color:#36654f}
.skip-animation:hover{text-decoration:underline}
.animation-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;position:absolute;bottom:16px;z-index:1;background:#ffffffed}
.play-animation{display:none;color:#36654f;background:transparent;border:0;border-bottom:1px solid #c6d6cd;font-size:13px;letter-spacing:1px;min-height:44px;padding:8px 16px}
.js .play-animation{display:block}.play-animation:hover{color:var(--green);border-color:var(--green)}
.assembly-story.is-scrub{height:calc(100svh + var(--assembly-distance,6300px))}
.is-scrub .assembly-stage{position:sticky;top:0;height:100svh;min-height:0}
.is-scrub .assembly-video{max-height:82svh}
.is-scrub.is-complete .animation-actions{visibility:hidden}
.assembly-story.is-manual{height:auto}
.is-manual .animation-actions{position:relative;bottom:auto}
.product-list{padding-top:0;padding-bottom:454px}
.product-row{display:grid;grid-template-columns:1fr 1fr;gap:5.5%;align-items:center;min-height:0;padding:27px 0;scroll-margin-top:180px}
.product-image{width:80%;height:auto;justify-self:end;object-fit:contain;aspect-ratio:2125/2800}
.product-copy{padding-left:0}
.product-copy h3{font-size:24px;font-weight:500;line-height:2.4;letter-spacing:2px;padding-bottom:10px}
.product-assembly{font-size:16px;font-weight:500;line-height:2.4;letter-spacing:1px;padding-bottom:10px}
.product-name{font-size:16px;font-weight:300;line-height:23.8px;letter-spacing:1px;color:#2c2a29}
.brochure-button{display:flex;width:max-content;align-items:center;justify-content:center;border:0;border-radius:36px;background:var(--green);color:#fff;padding:6px 32px;margin:60px 14vw 0 auto;font-family:"Open Sans",Arial,sans-serif;font-weight:500;font-size:20px;line-height:1.7;min-height:46px;transition:background .2s}
.brochure-button:hover{background:#18664c}
.contact{background:var(--green);color:#fff;padding:80px 0 70px}
.contact-top{display:grid;grid-template-columns:1fr auto;gap:0;min-height:240px}
.contact h2{font-size:40px;font-weight:500;letter-spacing:2px;line-height:1.2;text-transform:uppercase;margin-bottom:48px}
.contact-copy{font-size:14px;line-height:28px;max-width:1170px;font-weight:500;letter-spacing:2px}
.footer-logo{width:130px;height:65px;object-fit:contain}
.contact address{font-style:normal;margin-top:25px}
.contact-line{display:flex;align-items:flex-start;gap:22px;font-size:20px;line-height:1.6;padding:20px 0;max-width:100%;overflow-wrap:anywhere}
.contact-line svg{width:24px;height:24px;flex:none;margin-top:4px}
a.contact-line:hover span{text-decoration:underline;text-underline-offset:5px}
.footer-slogan{font-size:70px;font-weight:500;letter-spacing:1px;line-height:1.2;margin-top:30px;text-align:right}
@media(min-width:1600px){.hero{min-height:max(1182px,100svh)}}
@media(max-width:1100px){:root{--gutter:6.25vw}.main-nav{gap:70px}.service-copy h3{font-size:30px}.footer-slogan{font-size:58px}}
@media(max-width:980px){
  :root{--header-height:139px}
  .header-inner{height:139px;padding-top:33px;align-items:flex-start}
  .brand img{width:144px;height:72px}
  .menu-toggle{display:flex;z-index:2;flex-direction:column;justify-content:center;gap:6px;width:48px;height:48px;margin-top:9px;color:inherit;background:none;border:0;padding:10px}
  .menu-toggle span{width:28px;height:2px;background:currentColor;transition:transform .2s,opacity .2s}
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
  .js .main-nav{display:none;position:absolute;left:0;top:100%;width:100%;padding:24px var(--gutter) 32px;background:var(--green);color:#fff;box-shadow:0 12px 20px #00362620;gap:10px;flex-direction:column;align-items:stretch}
  .js .main-nav.is-open{display:flex}
  .main-nav a{padding:14px 0;font-size:16px;letter-spacing:2px}
  html:not(.js) .menu-toggle{display:none}
  html:not(.js) .header-inner{height:auto;flex-wrap:wrap;padding-bottom:18px;background:var(--green)}
  html:not(.js) .main-nav{gap:24px;padding-top:12px;width:100%;flex-wrap:wrap}
  html:not(.js) .main-nav a{font-size:12px}
  .hero{min-height:800px;height:100svh}.hero-content{padding-top:180px}.hero h1{font-size:38px;letter-spacing:6px;margin-top:270px}
  .about{padding-top:100px;padding-bottom:16px}.about-intro{grid-template-columns:1fr;gap:0;min-height:0}.about-label{display:contents}.about-label .bar-label{grid-row:1}.about-copy{grid-row:2;margin-top:56px;font-size:20px;line-height:40px}.about-link{grid-row:3;justify-self:end;margin-top:56px;max-width:100%}.gallery{margin-top:16px;margin-bottom:200px;padding:30px 0 30px var(--gutter);height:238px}.gallery figure{flex-basis:calc((175vw - 60px)/3)}.service-banner{height:200px;background-attachment:scroll}
  .service{padding:110px 0 205px}.service-grid{grid-template-columns:1fr;gap:140px;padding-left:var(--gutter)}.service-visual .section-title{padding-left:70px}.service-visual .bar-label{margin-left:70px;line-height:25px;max-width:calc(100% - 70px)}.service-visual img{width:calc(100% + 2 * var(--gutter));margin-left:calc(-1 * var(--gutter))}.service-copy{padding:0}.service-copy h3{max-width:90%;margin-bottom:80px;font-size:28px;line-height:1.4}.service-copy .text-link{margin-top:60px;font-family:"Noto Sans",Arial,sans-serif}.product-row{min-height:0;gap:0}.product-image{width:80%}.product-list{padding-bottom:450px}.footer-slogan{font-size:48px}.contact-top{min-height:0;gap:76px;grid-template-columns:1fr}.contact-top>a{grid-row:1;justify-self:end}.footer-logo{width:150px;height:75px}.contact-line{font-size:18px}
}
@media(max-width:600px){
  :root{--gutter:6.25vw}
  .menu-toggle{margin-top:8px}
  .hero{height:100svh;min-height:800px}.hero-photo img{object-position:center}.hero-content{padding-top:110px}.hero-eyebrow p{font-size:clamp(24px,7.7vw,30px);line-height:54px;letter-spacing:1px;margin-bottom:39px}.hero-eyebrow img{width:281px;height:4px}
  .hero h1{position:absolute;bottom:62px;font-size:clamp(20px,6.15vw,30px);line-height:1.6;letter-spacing:2.4px;margin-top:0;font-weight:500}.scroll-cue{bottom:15px}
  html:not(.js) .hero-content{padding-top:210px}
  html:not(.js) section,html:not(.js) footer{scroll-margin-top:190px}
  html:not(.js) .assembly-video{width:100%;max-width:100%}
  .bar-label{font-size:22px;border-left-width:8px;padding-left:10px}.about-copy{font-size:16px;line-height:40px}.about-copy p+p{margin-top:16px}.about-link{font-size:20px;letter-spacing:4px;text-align:right;min-height:100px;line-height:34px;justify-content:flex-end;padding:16px 24px}.gallery-controls{gap:8px;margin-top:14px}.service-banner{background-image:url("images/service-background-mobile.png");background-position:center}
  .section-title{font-size:30px;letter-spacing:3px}.service-grid{gap:170px}.service-visual .bar-label{font-size:22px;margin-top:0;margin-bottom:30px}.service-copy p{font-size:18px;line-height:36px}.service-copy .text-link{font-size:20px;letter-spacing:4px}
  .products{padding-top:50px}.products>.frame .section-title{width:auto;margin:0 10px;min-height:72px;font-size:22px}.assembly-stage{min-height:300px;overflow:clip}.assembly-video{width:160vw;max-width:160vw;flex-shrink:0}.assembly-story.is-manual .assembly-video{width:100%;max-width:100%}.skip-animation,.play-animation{font-size:12px}
  .product-row{grid-template-columns:1fr 1fr;gap:0;padding:30px 0;align-items:start}.product-image{justify-self:end;width:80%;max-height:none}.product-copy{padding:0}.product-copy h3{font-size:24px;line-height:2.4}.product-assembly{font-size:16px;line-height:2.4}.product-name{font-size:16px}.brochure-button{font-size:16px;margin:40px 0 0 auto;padding:5px 24px;min-height:44px;max-width:100%}
  .contact{padding:80px 0}.contact h2{font-size:40px;margin-bottom:70px}.contact address{margin-top:30px}.contact-line{font-size:16px;gap:16px;padding:24px 0;font-weight:500;letter-spacing:1px}.contact-line svg{width:21px;height:21px}.footer-slogan{font-size:24px;letter-spacing:1px;line-height:1.2;margin-top:30px}
}
@media(min-width:601px) and (max-width:980px){.gallery{height:auto}.brochure-button{margin-right:0}}
@keyframes reveal-content{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.reveal-enter{animation:reveal-content 1.1s ease both}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.service-banner{background-attachment:scroll}}
