/* Architectural direction: one quiet navigation rail, generous image fields,
   fine rules, and editorial typography. The existing site content remains intact. */
:root{
  --rail-width:260px;
  --forest:#173e32;
  --forest-deep:#10271f;
  --ivory:#f5f4ee;
  --rule:#c9d0c8;
  --sage:#c5d9c4;
}
body{background:var(--ivory);padding-left:var(--rail-width)}
.wrap{width:min(calc(100% - 112px),1120px)}
.section{padding-block:clamp(90px,9vw,146px)}
.eyebrow,.section-kicker{font-size:11px;letter-spacing:.21em}
.section h2,.intro h2{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;letter-spacing:-.055em;line-height:.99;font-size:clamp(56px,5.7vw,91px)}
.section-heading{border-top:1px solid var(--rule);padding-top:29px;margin-bottom:55px}
.section-heading .eyebrow{color:var(--forest)}
.section-heading>p{max-width:350px}
.inline-link{color:var(--forest);border-bottom-color:var(--forest);transition:gap .2s}
.inline-link:hover{gap:28px}
.button{border-radius:0}

/* The rail is the navigation, not a conventional page-top menu. */
.site-header,
body[data-current-page="home"] .site-header{
  position:fixed;top:0;left:0;right:auto;width:var(--rail-width);
  height:100svh;min-height:580px;
  display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;
  padding:37px 25px 25px;background:var(--ivory);color:#1b2e25;
  border-right:1px solid #d9ded6;box-shadow:none;z-index:40;
}
.site-header::before{content:"";position:absolute;left:25px;right:25px;top:193px;height:1px;background:var(--rule)}
.site-header .brand,
body[data-current-page="home"] .site-header .brand{
  visibility:visible;display:block;width:100%;max-width:none;flex:none;
}
.site-header .brand img{width:100%;height:auto}
.site-header .nav{
  display:flex;flex-direction:column;align-items:stretch;gap:0;
  width:100%;margin-top:73px;font:600 14px/1.2 'DM Sans',Arial,sans-serif;
  letter-spacing:.015em;
}
.nav-heading{display:flex;justify-content:space-between;margin:0 0 16px;
  font:700 9px/1.2 'Manrope',Arial,sans-serif;letter-spacing:.15em;
  text-transform:uppercase;color:#75867b}
.nav-heading span{color:#8da295}
.site-header .nav a:not(.nav-cta){display:flex;align-items:center;min-height:48px;
  padding:11px 0;border-bottom:1px solid #dce1d9;color:#203b2d}
.site-header .nav a:not(.nav-cta)::before{content:"";display:block;width:0;height:1px;background:#266447;transition:width .2s,margin .2s}
.site-header .nav a:not(.nav-cta):hover::before,
.site-header .nav a[aria-current="page"]:not(.nav-cta)::before{width:17px;margin-right:9px}
.site-header .nav a[aria-current="page"]:not(.nav-cta){color:#15613e;border-bottom:1px solid #9fb9a6;padding-bottom:11px}
.site-header .nav-cta{display:flex;align-items:center;justify-content:space-between;
  margin-top:34px;padding:17px 14px;background:var(--forest);color:white;
  font-size:11px;line-height:1.3;letter-spacing:.035em;white-space:normal}
.site-header .nav-cta span{margin-left:10px;color:#d8ebd8}
.site-header .menu-button{display:none}
.rail-foot{display:grid;gap:7px;margin-top:auto;padding-top:24px;
  border-top:1px solid var(--rule);color:#839086;
  font:700 9px/1.2 'Manrope',Arial,sans-serif;letter-spacing:.14em}

/* Home: full-height photographs and typography rather than stacked cards. */
body[data-current-page="home"] .hero{min-height:calc(100svh - 27px)}
.hero{background:var(--forest-deep)}
.hero-slide{filter:saturate(.77) contrast(1.03)}
.hero-slide-team{filter:saturate(.84) contrast(1.03)}
.hero-shade{background:linear-gradient(90deg,rgba(8,31,23,.9) 0%,rgba(8,31,23,.76) 34%,rgba(8,31,23,.16) 76%),linear-gradient(0deg,rgba(8,31,23,.47),transparent 35%)}
.hero::before{content:"";position:absolute;z-index:2;top:0;bottom:0;left:56%;border-left:1px solid rgba(255,255,255,.21);pointer-events:none}
.hero-content{padding-block:110px 115px;max-width:1120px}
.hero-brand{display:none}
.hero-overline{display:flex;gap:20px;align-items:center;width:max-content;max-width:100%;
  margin:0 0 35px;color:#d3e8d7;font:700 10px/1.5 'Manrope',Arial,sans-serif;
  text-transform:uppercase;letter-spacing:.19em}
.hero-overline::before{content:"";width:33px;height:1px;background:currentColor;flex:none}
.hero-overline span{color:#a3c3ac;white-space:nowrap}
.hero h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(77px,9vw,153px);
  font-weight:500;line-height:.83;letter-spacing:-.065em;max-width:880px;margin:0 0 27px}
.hero h1 em{font-style:italic;font-weight:400;color:#d5e5d1}
.hero-copy{font:600 clamp(18px,1.7vw,23px)/1.5 'DM Sans',Arial,sans-serif;
  max-width:650px;margin:33px 0 0;color:#fff}
.hero-detail{max-width:590px;color:#e5eee5;font-size:15px;line-height:1.7;margin:18px 0 32px}
.hero-actions{gap:31px}
.hero-actions .button{background:#f2f3eb;color:var(--forest-deep)}
.hero-actions .button:hover{background:#fff}
.hero-actions .text-link{color:#e8f1e6}
.hero-bottom{bottom:28px;font-size:9px;letter-spacing:.16em}
.hero-bottom::before{content:"";position:absolute;left:0;right:0;top:-18px;border-top:1px solid rgba(255,255,255,.35)}
.hero-carousel-dot{width:54px}

.intro{position:relative;background:var(--ivory)}
.intro .section-kicker{margin-bottom:48px;color:var(--forest)}
.intro-grid{grid-template-columns:1.25fr .7fr;gap:8%}
.intro h2{font-size:clamp(58px,5.6vw,92px)}
.intro h2 span{color:#75877b}
.intro-grid>div{padding-top:16px;border-top:1px solid var(--rule)}
.intro-grid p{font-size:17px;line-height:1.8}
.capabilities{background:#e9ede7}
.service-grid{gap:0;border-top:1px solid #bdc9bc;border-bottom:1px solid #bdc9bc}
.service-card{background:transparent}
.service-card+.service-card{border-left:1px solid #bdc9bc}
.service-image{height:clamp(310px,34vw,480px);background:#b9c8ba}
.service-image img{filter:saturate(.77)}
.service-body{padding:30px 33px 49px}
.service-top{color:#4f745b;border-top:1px solid #b7c5b6;padding-top:18px}
.service-body h3{font:500 clamp(38px,3.8vw,64px)/.98 'Cormorant Garamond',Georgia,serif;letter-spacing:-.05em;margin:34px 0 22px}
.service-body p{font-size:15px;max-width:500px}

/* Shared inner-page rhythm. */
.page-lead{min-height:clamp(500px,67svh,760px);display:flex;align-items:end;position:relative;
  background-size:cover;background-position:center;color:#fff;padding:80px 0}
.page-lead::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,23,18,.91),rgba(6,23,18,.42) 65%,rgba(6,23,18,.16))}
.page-lead::after{content:"";position:absolute;inset:38px 45px;z-index:1;border:1px solid rgba(255,255,255,.3);pointer-events:none}
.page-lead .wrap{position:relative;z-index:2}
.page-lead .eyebrow{color:#d2ead6;margin-bottom:26px}
.page-lead h1{font:500 clamp(75px,9vw,148px)/.82 'Cormorant Garamond',Georgia,serif;letter-spacing:-.065em;margin:0}
.page-lead h1 em{font-weight:400;color:#d2e5d1}
.page-lead .wrap>p:last-child{max-width:570px;font-size:18px;line-height:1.5;margin:30px 0 0;color:#e6f0e5}
.page-lead-concrete{background-image:url('assets/hero-kind-sir-saw.webp')}
.page-lead-insulation{background-image:url('assets/insulation-one.jpg')}
.detail-section{grid-template-columns:.25fr .75fr;gap:7%}
.detail-main h2{font-size:clamp(55px,5vw,83px)}
.pill-list{gap:8px}
.pill-list span{border-radius:0;border-color:#bccabe;background:transparent}
.photo-band{height:clamp(330px,42vw,590px)}
.photo-band-label{font:500 clamp(45px,6vw,90px)/.92 'Cormorant Garamond',Georgia,serif;letter-spacing:-.05em}
.approach{background:#ecefe9}
.approach-visual{box-shadow:none}
.approach-grid article{box-shadow:none;border-top:1px solid #8daf98;background:#f8f8f3}
.approach-grid h4{font:500 39px/1 'Cormorant Garamond',Georgia,serif}
.work-grid{gap:8px}
.work-grid figure{min-height:570px}
.work-grid figcaption strong{font:500 30px/1 'Cormorant Garamond',Georgia,serif}
.team{background:#e9ede7}
.team-grid{gap:12px}
.team-card h3{font:500 31px/1 'Cormorant Garamond',Georgia,serif;margin-top:19px}
.updates{background:var(--ivory)}
.careers-hero{background:var(--forest-deep)}
.careers-hero h1{font:500 clamp(72px,7vw,120px)/.85 'Cormorant Garamond',Georgia,serif}
.careers-hero h1 span{color:#cfdfca}
.careers-value-grid article{border-top-width:1px}
.careers-value-grid h3,.careers-path-grid h3{font:500 40px/1 'Cormorant Garamond',Georgia,serif}
.contact{background:#e4ebe1}
.contact h2,.careers-contact h2{font-size:clamp(58px,6vw,96px)}
.contact-form,.careers-form{box-shadow:none;border:1px solid #c5d2c4}
.footer{background:var(--forest-deep)}
.footer-top img{width:min(330px,100%)}
.footer-top p{font:500 57px/1 'Cormorant Garamond',Georgia,serif;letter-spacing:-.04em}
.footer-top p span{color:#b8dabf}
.footer-bottom{font-size:11px}

@media(max-width:1100px){
  body{padding-left:0}
  .wrap{width:min(calc(100% - 64px),1120px)}
  .site-header,body[data-current-page="home"] .site-header{
    position:sticky;top:0;left:auto;right:auto;width:100%;height:88px;min-height:0;
    flex-direction:row;align-items:center;justify-content:space-between;
    padding:0 32px;background:var(--ivory);border-right:0;border-bottom:1px solid var(--rule)
  }
  .site-header::before,.rail-foot{display:none}
  .site-header .brand,body[data-current-page="home"] .site-header .brand{width:210px}
  .site-header .menu-button{display:flex;width:48px;height:48px;flex-direction:column;justify-content:center;gap:6px;padding:8px;background:none;border:0}
  .site-header .menu-button span{height:2px;background:var(--forest-deep)}
  .site-header .nav{display:none;position:absolute;top:100%;left:0;right:0;width:auto;max-height:calc(100svh - 115px);
    overflow:auto;margin:0;padding:22px 32px 32px;background:var(--ivory);
    box-shadow:0 20px 30px rgba(0,0,0,.16)}
  .site-header .nav.is-open{display:flex}
  .site-header .nav a:not(.nav-cta){font-size:17px}
  .site-header .nav-cta{margin-top:22px}
  .hero-brand{display:none}
  body[data-current-page="home"] .hero{min-height:calc(100svh - 115px)}
  .hero-content{padding-block:80px 100px}
  .hero h1{font-size:clamp(78px,10vw,130px)}
}
@media(max-width:700px){
  .wrap{width:calc(100% - 38px)}
  .section{padding-block:78px}
  .site-header,body[data-current-page="home"] .site-header{height:75px;padding-inline:19px}
  .site-header .brand,body[data-current-page="home"] .site-header .brand{width:178px}
  body[data-current-page="home"] .site-header .menu-button span{background:var(--forest-deep)}
  .site-header .nav{padding:13px 20px 25px;max-height:calc(100svh - 100px)}
  .nav-heading{display:none}
  .hero,body[data-current-page="home"] .hero{min-height:calc(100svh - 100px)}
  .hero::before{left:75%}
  .hero-shade{background:linear-gradient(0deg,rgba(8,31,23,.96),rgba(8,31,23,.64) 58%,rgba(8,31,23,.22))}
  .hero-content{padding:100px 0 93px}
  .hero-overline{font-size:8px;line-height:1.5;letter-spacing:.1em;margin-bottom:25px}
  .hero-overline::before{width:17px}
  .hero-overline span{display:none}
  .hero h1{font-size:clamp(67px,15vw,105px);line-height:.84}
  .hero-copy{font-size:18px;margin-top:27px}
  .hero-detail{font-size:14px}
  .hero-actions{align-items:start;gap:22px}
  .hero-actions .button{min-height:54px}
  .hero-bottom{bottom:18px}
  .intro-grid{grid-template-columns:1fr;gap:30px}
  .intro h2,.section h2{font-size:clamp(51px,12vw,75px)}
  .intro-grid>div{padding-top:25px}
  .section-heading{padding-top:24px;margin-bottom:31px}
  .service-grid{grid-template-columns:1fr}
  .service-card+.service-card{border-left:0;border-top:1px solid #bdc9bc}
  .service-image{height:280px}
  .service-body{padding:22px 7px 43px}
  .service-body h3{font-size:49px;margin:26px 0 16px}
  .page-lead{min-height:510px;padding:70px 0}
  .page-lead::after{inset:18px}
  .page-lead h1{font-size:clamp(67px,14vw,95px)}
  .page-lead .wrap>p:last-child{font-size:16px}
  .detail-main h2{font-size:clamp(52px,12vw,73px)}
  .work-grid figure{min-height:430px}
  .team-grid{gap:26px 13px}
  .team-card h3{font-size:25px}
  .careers-hero h1{font-size:clamp(65px,13vw,88px)}
  .careers-value-grid h3,.careers-path-grid h3{font-size:37px}
  .contact h2,.careers-contact h2{font-size:clamp(51px,11vw,73px)}
  .footer-top p{font-size:48px}
}
@media(prefers-reduced-motion:reduce){.site-header .nav a:not(.nav-cta)::before,.inline-link{transition:none}}

/* Keep the footer statement distinct from the large brand mark at every width. */
.footer-top{column-gap:clamp(80px,9vw,150px);row-gap:64px;flex-wrap:wrap}
.footer-top p{margin-left:auto;line-height:.9;white-space:nowrap}
@media(max-width:700px){.footer-top{gap:64px}.footer-top p{margin-left:0}}
.footer-contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:22px;padding-block:31px;border-bottom:1px solid #55605c}
.footer-contact a{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}
.footer-contact a span{font:700 10px/1.2 'Manrope',Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#aebeb3}
.footer-contact a strong{font:600 clamp(17px,1.65vw,22px)/1.2 'Manrope',Arial,sans-serif;color:#f4f7f1;overflow-wrap:anywhere}
.footer-contact a:hover strong,.footer-contact a:focus-visible strong{color:#b8dabf}
@media(max-width:700px){.footer-contact{grid-template-columns:1fr;gap:24px;padding-block:35px}.footer-contact a strong{font-size:20px}}
