:root{
  --green:#123f39;
  --green-2:#1d554d;
  --lime:#7fae26;
  --lime-light:#b7d642;
  --text:#52625d;
  --text-dark:#263b37;
  --soft:#f3f7f2;
  --technical:#f8fbf7;
  --line:#dce5df;
  --white:#ffffff;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  background:#fbfcfa;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
.container{width:min(1160px,calc(100% - 56px));margin:0 auto}

.site-header{
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(251,252,250,.96);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav-wrap{
  min-height:90px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.brand img{width:270px;height:auto}
.main-nav{display:flex;align-items:center;gap:28px}
.main-nav a,.lang{
  font-size:13px;
  text-decoration:none;
  color:#52645f;
  letter-spacing:.02em;
}
.main-nav a:hover{color:var(--green)}
.lang{opacity:.55}
.menu-toggle{display:none;border:1px solid var(--line);background:white;color:var(--green);padding:10px 14px;border-radius:4px}

.hero{padding:92px 0 88px}
.hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:72px;align-items:center}
.eyebrow{
  margin:0 0 14px;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.19em;
  font-weight:800;
  color:#6d9523;
}
.hero h1{
  margin:0;
  max-width:850px;
  font-size:clamp(50px,7.4vw,82px);
  line-height:.96;
  letter-spacing:-.052em;
  color:var(--green);
  font-weight:800;
}
.hero-line{
  margin:28px 0 18px;
  font-size:26px;
  line-height:1.25;
  font-weight:800;
  color:var(--text-dark);
}
.hero-copy{
  margin:0;
  max-width:760px;
  font-size:18px;
  line-height:1.7;
  color:#50615c;
}
.experience{
  margin:18px 0 0;
  max-width:780px;
  font-size:15px;
  line-height:1.7;
  color:#65756f;
}
.locations{
  margin:18px 0 0;
  font-size:14px;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--green);
}
.locations span{color:var(--lime);padding:0 8px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.button{
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 20px;
  border-radius:4px;
  text-decoration:none;
  font-size:14px;
  font-weight:750;
}
.button-primary{background:var(--green);color:white;border:1px solid var(--green)}
.button-primary:hover{background:var(--green-2)}
.button-secondary{background:transparent;color:var(--green);border:1px solid #aebbb6}
.button-secondary:hover{background:white}
.hero-aside{
  border-left:4px solid var(--lime);
  padding:8px 0 8px 28px;
}
.hero-aside p{
  margin:0;
  color:#3d5650;
  font-size:22px;
  line-height:1.5;
  font-weight:700;
}

.section{padding:78px 0;border-top:1px solid var(--line)}
.section-white{background:white}
.section-soft{background:var(--soft)}
.section-technical{background:var(--technical)}
.section h2,.contact h2{
  margin:0 0 20px;
  color:var(--green);
  font-size:clamp(34px,4vw,44px);
  line-height:1.08;
  letter-spacing:-.035em;
}
.section-intro{
  max-width:850px;
  margin:0;
  font-size:18px;
  line-height:1.72;
  color:#596c66;
}
.cards.four{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
  margin-top:40px;
}
.card{
  padding-top:18px;
  border-top:3px solid var(--lime);
}
.card h3,.pillars h3,.about-columns h3,.recognition h3,.presence h3{
  margin:0 0 10px;
  color:var(--green);
  font-size:18px;
  line-height:1.35;
}
.card p,.pillars p,.about-columns p{
  margin:0;
  font-size:14px;
  line-height:1.75;
  color:#667872;
}

.technical-grid{
  display:grid;
  grid-template-columns:.68fr 1.32fr;
  gap:72px;
  align-items:start;
}
.technical-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 34px;
  margin-top:30px;
}
.technical-list div{
  padding:13px 0;
  border-top:1px solid var(--line);
  font-size:14px;
  line-height:1.65;
  color:#5c6e68;
}
.technical-list strong{color:var(--green)}
.technical-closing{
  margin:32px 0 0;
  padding-left:18px;
  border-left:4px solid var(--lime);
  font-size:17px;
  line-height:1.72;
  color:#495e58;
}
.technical-closing strong{color:var(--green)}

.approach-grid{
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:72px;
  align-items:start;
}
.big-statement{
  font-size:clamp(42px,5vw,60px)!important;
  line-height:1.02!important;
}
.lead-paragraph{
  margin:0 0 18px;
  font-size:17px;
  line-height:1.82;
  color:#536760;
}
.lead-paragraph strong{color:var(--green)}
.pillars{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:26px 34px;
  margin-top:36px;
}
.pillars article{
  padding-left:18px;
  border-left:1px solid #b8c7c0;
}
.action-box{
  margin-top:42px;
  padding-top:28px;
  border-top:1px solid #c7d3cc;
}
.action-box p{
  margin:0 0 14px;
  max-width:900px;
  font-size:17px;
  line-height:1.75;
  color:#465c55;
}
.action-box strong{color:var(--green)}
.steps{
  margin-top:20px!important;
  font-size:18px!important;
  color:#6b9224!important;
  font-weight:800;
}

.about-grid{
  display:grid;
  grid-template-columns:.65fr 1.35fr;
  gap:72px;
  align-items:start;
}
.portrait-wrap{
  position:sticky;
  top:120px;
}
.portrait-wrap img{
  width:100%;
  max-width:390px;
  aspect-ratio:1/1.18;
  object-fit:cover;
  object-position:center top;
  border-radius:4px;
  box-shadow:0 14px 38px rgba(18,63,57,.12);
}
.body-copy{
  max-width:850px;
  margin:18px 0 0;
  font-size:16px;
  line-height:1.8;
  color:#5d6f69;
}
.body-copy strong{color:var(--green)}
.about-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px;
  margin-top:40px;
}
.about-columns article{
  padding-top:18px;
  border-top:2px solid var(--lime);
}
.recognition{margin-top:42px}
.recognition-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 34px;
  margin-top:14px;
}
.recognition-grid div{
  padding:14px 0;
  border-top:1px solid var(--line);
}
.recognition-grid strong{
  display:block;
  color:var(--green);
  font-size:14px;
}
.recognition-grid span{
  display:block;
  margin-top:4px;
  font-size:13px;
  line-height:1.5;
  color:#6e7e79;
}
.philosophy{
  margin:38px 0 0;
  font-size:20px;
  line-height:1.6;
  color:var(--green);
  font-weight:800;
}

.contact{
  padding:68px 0;
  background:var(--green);
  color:#d8e4df;
}
.contact-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:70px;
}
.eyebrow.light{color:var(--lime-light)}
.contact h2{color:white}
.contact p{
  margin:0;
  max-width:720px;
  font-size:17px;
  line-height:1.75;
}
.email-link,.phone-link{
  display:block;
  width:max-content;
  margin-top:18px;
  color:var(--lime-light);
  font-size:22px;
  font-weight:800;
  text-decoration:none;
}
.phone-link{
  margin-top:8px;
  color:white;
  font-size:17px;
}
.presence{
  border-left:1px solid rgba(255,255,255,.22);
  padding-left:34px;
}
.presence h3{color:white}
.presence p{font-size:15px;margin-top:12px}
.presence strong{color:white}

footer{
  background:#0c302b;
  color:#a9bbb5;
  font-size:12px;
}
.footer-wrap{
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

@media (max-width: 950px){
  .hero-grid,.technical-grid,.approach-grid,.about-grid,.contact-grid{grid-template-columns:1fr}
  .hero-aside{max-width:700px}
  .cards.four{grid-template-columns:1fr 1fr}
  .approach-title{max-width:550px}
  .portrait-wrap{position:static}
  .portrait-wrap img{max-width:340px}
  .presence{border-left:0;border-top:1px solid rgba(255,255,255,.22);padding:28px 0 0}
}
@media (max-width: 760px){
  .container{width:min(100% - 36px,1160px)}
  .nav-wrap{min-height:78px}
  .brand img{width:215px}
  .menu-toggle{display:block}
  .main-nav{
    display:none;
    position:absolute;
    top:78px;
    left:0;
    right:0;
    padding:18px;
    background:#fbfcfa;
    border-bottom:1px solid var(--line);
    flex-direction:column;
    align-items:flex-start;
    gap:18px;
  }
  .main-nav.open{display:flex}
  .hero{padding:60px 0}
  .hero h1{font-size:48px}
  .hero-line{font-size:23px}
  .cards.four,.technical-list,.pillars,.about-columns,.recognition-grid{grid-template-columns:1fr}
  .section{padding:60px 0}
  .portrait-wrap img{max-width:100%}
  .footer-wrap{padding:22px 0;min-height:0;flex-direction:column;align-items:flex-start}
}
