:root{
    --green-900:#21610B;
    --green-700:#357a1c;
    --green-300:#b8db7c;
    --bronze:#baa066;
    --bronze-deep:#8f7748;
    --white:#ffffff;
    --off-white:#f6f5ef;
    --tint:#eeece2;
    --gray:#8d9086;
    --charcoal:#161b13;
    --charcoal-soft:#454b40;
    --line:rgba(22,27,19,0.12);
    --max:1240px;
    --gutter:clamp(24px,5vw,80px);
    --radius:2px;
    --ease:cubic-bezier(.22,.61,.36,1);
  }

  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-padding-top:88px;}
  @media (prefers-reduced-motion: no-preference){ html{scroll-behavior:smooth;} }

  body{
    margin:0;
    background:var(--white);
    color:var(--charcoal);
    font-family:'DM Sans',sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3,h4{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    line-height:1.08;
    margin:0;
    letter-spacing:-0.01em;
    color:var(--charcoal);
  }

  p{margin:0;}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  ul{margin:0;padding:0;list-style:none;}
  button{font-family:inherit;cursor:pointer;}
  
  .hidden-section {
    display: none;
}

  .hide-item {
    display: none;
}

  .container{
    max-width:var(--max);
    margin:0 auto;
    padding:0 var(--gutter);
  }

  .eyebrow{
    font-family:'Space Grotesk',sans-serif;
    font-size:12.5px;
    font-weight:600;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:var(--bronze-deep);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:22px;height:1px;
    background:var(--bronze);
    display:inline-block;
  }

  .section{
    padding:clamp(72px,10vw,140px) 0;
    position:relative;
  }
  .alt-bg{background:var(--off-white);}

  .section-head{
    max-width:680px;
    margin-bottom:clamp(40px,6vw,72px);
  }
  .section-head h2{
    font-size:clamp(32px,4.2vw,48px);
    margin-top:16px;
  }
  .section-head p{
    margin-top:20px;
    color:var(--charcoal-soft);
    font-size:17px;
    max-width:56ch;
  }
  .section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
  .section-head.center .eyebrow{justify-content:center;}
  .section-head.center .eyebrow::before{display:none;}
  .section-head.center p{margin-left:auto;margin-right:auto;}

  .divider{
    height:1px;
    background:linear-gradient(90deg, transparent, var(--line) 20%, var(--line) 80%, transparent);
    width:100%;
  }

  .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:14px 26px;
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:14.5px;
    letter-spacing:0.01em;
    border-radius:var(--radius);
    border:1px solid transparent;
    transition:all .35s var(--ease);
    white-space:nowrap;
  }
  .btn-primary{
    background:var(--charcoal);
    color:var(--white);
  }
  .btn-primary:hover{background:var(--green-900);}
  .btn-outline{
    border-color:var(--line);
    color:var(--charcoal);
    background:transparent;
  }
  .btn-outline:hover{border-color:var(--bronze);color:var(--bronze-deep);}
  .btn svg{width:14px;height:14px;transition:transform .35s var(--ease);}
  .btn:hover svg{transform:translateX(4px);}

  /* ---------- NAV ---------- */
  .nav{
    position:fixed;
    top:0;left:0;right:0;
    z-index:100;
    padding:22px var(--gutter);
    display:flex;
    align-items:center;
    justify-content:space-between;
    transition:background .4s var(--ease), padding .4s var(--ease), border-color .4s var(--ease);
    border-bottom:1px solid transparent;
  }
  .nav.scrolled{
    background:rgba(246,245,239,0.88);
    backdrop-filter:blur(10px);
    padding:14px var(--gutter);
    border-bottom-color:var(--line);
  }
  .logo{
    font-family:'Space Grotesk',sans-serif;
    font-weight:700;
    font-size:19px;
    letter-spacing:-0.01em;
    display:flex;
    align-items:center;
    gap:10px;
  }
  .logo .mark{
    width:26px;height:26px;
    flex-shrink:0;
  }
  .nav-links{
    display:flex;
    gap:clamp(18px,2.4vw,34px);
    align-items:center;
  }
  .nav-links a{
    font-size:14px;
    font-weight:500;
    color:var(--charcoal-soft);
    position:relative;
    padding:4px 0;
    transition:color .3s;
  }
  .nav-links a::after{
    content:"";
    position:absolute;left:0;bottom:0;
    width:0;height:1px;
    background:var(--bronze);
    transition:width .3s var(--ease);
  }
  .nav-links a:hover{color:var(--charcoal);}
  .nav-links a:hover::after{width:100%;}
  .nav-cta{display:flex;align-items:center;gap:24px;}
  .nav-burger{display:none;background:none;border:none;padding:6px;}
  .nav-burger span{display:block;width:22px;height:1.5px;background:var(--charcoal);margin:5px 0;transition:.3s;}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    padding:calc(88px + 56px) var(--gutter) 40px;
    overflow:hidden;
    background:var(--off-white);
  }
  .hero-inner{
    max-width:var(--max);
    margin:0 auto;
    display:grid;
    grid-template-columns:1.05fr 0.95fr;
    gap:clamp(20px,4vw,60px);
    align-items:center;
    min-height:min(72vh,720px);
  }
  .hero-text .eyebrow{margin-bottom:22px;}
  .hero-text h1{
    font-size:clamp(38px,5.4vw,68px);
    max-width:15ch;
  }
  .hero-text h1 em{
    font-style:normal;
    background:linear-gradient(100deg,var(--green-900),var(--green-700) 55%,var(--green-300));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
  }
  .hero-text .lede{
    margin-top:26px;
    font-size:18px;
    color:var(--charcoal-soft);
    max-width:46ch;
  }
  .hero-cta{
    margin-top:38px;
    display:flex;
    gap:16px;
    flex-wrap:wrap;
  }
  .hero-proof{
    margin-top:56px;
    display:flex;
    gap:clamp(24px,4vw,48px);
    flex-wrap:wrap;
  }
  .hero-proof div{border-left:1px solid var(--line);padding-left:16px;}
  .hero-proof strong{
    font-family:'Space Grotesk',sans-serif;
    font-size:26px;
    display:block;
    color:var(--green-900);
  }
  .hero-proof span{font-size:13px;color:var(--charcoal-soft);}

  .hero-art{position:relative;height:100%;min-height:360px;}
  .hero-art svg{width:100%;height:100%;}
  .contour-path{
    fill:none;
    stroke-width:1.4;
    stroke-linecap:round;
  }
  @media (prefers-reduced-motion: no-preference){
    .contour-group{animation:drift 16s ease-in-out infinite;}
    .contour-group.b{animation-duration:20s; animation-delay:-4s;}
    .contour-group.c{animation-duration:24s; animation-delay:-9s;}
    @keyframes drift{
      0%,100%{transform:translateY(0);}
      50%{transform:translateY(-14px);}
    }
    .draw-in{stroke-dasharray:1400;stroke-dashoffset:1400;animation:draw 2.6s var(--ease) forwards;}
    @keyframes draw{to{stroke-dashoffset:0;}}
  }

  /* ---------- REVEAL ---------- */
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease), transform .8s var(--ease);}
  .reveal.in-view{opacity:1;transform:translateY(0);}
  .stagger .reveal:nth-child(1){transition-delay:.03s;}
  .stagger .reveal:nth-child(2){transition-delay:.09s;}
  .stagger .reveal:nth-child(3){transition-delay:.15s;}
  .stagger .reveal:nth-child(4){transition-delay:.21s;}
  .stagger .reveal:nth-child(5){transition-delay:.27s;}
  .stagger .reveal:nth-child(6){transition-delay:.33s;}
  .stagger .reveal:nth-child(7){transition-delay:.39s;}
  .stagger .reveal:nth-child(8){transition-delay:.45s;}
  .stagger .reveal:nth-child(9){transition-delay:.51s;}

  /* ---------- ABOUT ---------- */
  .about-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(30px,5vw,80px);
    align-items:start;
  }
  .about-copy p{color:var(--charcoal-soft);font-size:16.5px;margin-bottom:18px;}
  .mv-cards{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:8px;}
  .mv-card{background:var(--white);padding:28px;}
  .mv-card h4{font-size:14px;text-transform:uppercase;letter-spacing:0.08em;color:var(--bronze-deep);margin-bottom:10px;}
  .mv-card p{font-size:15px;color:var(--charcoal-soft);}

  .stats-row{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    margin-top:clamp(40px,6vw,64px);
  }
  .stat{padding:30px 20px;border-left:1px solid var(--line);}
  .stat:first-child{border-left:none;}
  .stat strong{font-family:'Space Grotesk',sans-serif;font-size:clamp(28px,3vw,40px);color:var(--charcoal);display:block;}
  .stat span{font-size:13px;color:var(--charcoal-soft);}

  .timeline-h{
    margin-top:clamp(50px,7vw,80px);
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
    position:relative;
  }
  .timeline-h::before{
    content:"";
    position:absolute;top:6px;left:0;right:0;height:1px;
    background:var(--line);
  }
  .th-item{position:relative;padding-top:26px;}
  .th-item::before{
    content:"";
    position:absolute;top:0;left:0;
    width:11px;height:11px;border-radius:50%;
    background:var(--white);border:2px solid var(--bronze);
  }
  .th-item strong{font-family:'Space Grotesk',sans-serif;font-size:15px;color:var(--green-900);display:block;margin-bottom:6px;}
  .th-item span{font-size:14px;color:var(--charcoal-soft);}

  /* ---------- WHY CHOOSE US ---------- */
  .why-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .why-card{
    background:var(--off-white);
    padding:clamp(28px,3vw,40px);
    transition:background .4s var(--ease);
  }
  .why-card:hover{background:var(--white);}
  .why-card .icon{width:34px;height:34px;color:var(--green-900);margin-bottom:22px;}
  .why-card h3{font-size:19px;margin-bottom:12px;}
  .why-card p{font-size:14.5px;color:var(--charcoal-soft);}

  /* ---------- SERVICES ---------- */
  .services-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .svc-card{
    background:var(--white);
    padding:30px 26px;
    position:relative;
    overflow:hidden;
    transition:background .4s var(--ease);
  }
  .svc-card::before{
    content:"";
    position:absolute;left:0;top:0;right:0;height:2px;
    background:var(--bronze);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .45s var(--ease);
  }
  .svc-card:hover::before{transform:scaleX(1);}
  .svc-card:hover{background:var(--off-white);}
  .svc-card .icon{width:30px;height:30px;color:var(--bronze-deep);margin-bottom:20px;transition:transform .4s var(--ease);}
  .svc-card:hover .icon{transform:translateY(-3px);}
  .svc-card h3{font-size:16.5px;margin-bottom:9px;}
  .svc-card p{font-size:13.6px;color:var(--charcoal-soft);line-height:1.55;}
  .svc-card .tag{
    display:inline-block;margin-top:12px;font-size:11.5px;color:var(--gray);
    border-top:1px solid var(--line);padding-top:10px;
  }

  /* ---------- INDUSTRIES ---------- */
  .ind-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
  }
  .ind-item{
    display:flex;align-items:center;gap:16px;
    padding:22px 24px;
    background:var(--white);
    border:1px solid var(--line);
    transition:border-color .3s, transform .3s var(--ease);
  }
  .ind-item:hover{border-color:var(--bronze);transform:translateX(3px);}
  .ind-item .num{
    font-family:'Space Grotesk',sans-serif;
    font-size:12px;color:var(--bronze-deep);font-weight:600;
  }
  .ind-item span.name{font-family:'Space Grotesk',sans-serif;font-weight:500;font-size:15.5px;}

  /* ---------- METHODOLOGY ---------- */
  .method-wrap{display:flex;flex-direction:column;gap:0;}
  .method-steps{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    border-top:1px solid var(--line);
  }
  .m-step{
    padding:26px 20px 26px 0;
    border-right:1px solid var(--line);
    cursor:pointer;
    position:relative;
    transition:background .3s;
  }
  .m-step:last-child{border-right:none;}
  .m-step::before{
    content:"";position:absolute;top:-1px;left:0;height:2px;width:0;
    background:var(--green-900);transition:width .4s var(--ease);
  }
  .m-step.active::before{width:100%;}
  .m-step .m-num{
    font-family:'Space Grotesk',sans-serif;font-size:12px;color:var(--gray);
    display:block;margin-bottom:16px;
  }
  .m-step.active .m-num{color:var(--bronze-deep);}
  .m-step h4{font-size:17px;margin-bottom:8px;transition:color .3s;}
  .m-step.active h4{color:var(--green-900);}
  .m-step p{
    font-size:13.5px;color:var(--charcoal-soft);
    max-height:0;overflow:hidden;opacity:0;
    transition:max-height .4s var(--ease), opacity .4s var(--ease);
  }
  .m-step.active p{max-height:200px;opacity:1;margin-top:4px;}

  /* ---------- VALUES ---------- */
  .values-list{display:flex;flex-direction:column;}
  .value-row{
    display:grid;
    grid-template-columns:100px 1fr 2fr;
    gap:24px;
    align-items:center;
    padding:26px 0;
    border-top:1px solid var(--line);
  }
  .value-row:last-child{border-bottom:1px solid var(--line);}
  .value-row .v-num{font-family:'Space Grotesk',sans-serif;font-size:13px;color:var(--bronze-deep);}
  .value-row h4{font-size:20px;}
  .value-row p{font-size:14.5px;color:var(--charcoal-soft);}

  /* ---------- TEAM ---------- */
  .team-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:clamp(20px,3vw,32px);
  }
  .team-card{border-top:1px solid var(--line);padding-top:20px;}
  .team-photo{
    width:100%;aspect-ratio:4/5;
    background:linear-gradient(155deg,var(--green-900),var(--green-300));
    position:relative;overflow:hidden;margin-bottom:18px;
  }
  .team-photo::after{
    content:"";position:absolute;inset:0;
    background:repeating-linear-gradient(115deg, rgba(255,255,255,0.08) 0 2px, transparent 2px 26px);
  }
  .team-photo .initials{
    position:absolute;bottom:14px;left:16px;
    font-family:'Space Grotesk',sans-serif;color:var(--white);
    font-size:34px;font-weight:600;opacity:0.9;
  }
  .team-card h3{font-size:17px;margin-bottom:4px;}
  .team-card .role{font-size:13px;color:var(--bronze-deep);font-weight:600;margin-bottom:10px;display:block;}
  .team-card p.bio{font-size:13.5px;color:var(--charcoal-soft);margin-bottom:14px;}
  .team-card .li{
    display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--charcoal-soft);
    border-top:1px solid var(--line);padding-top:12px;width:100%;
  }
  .team-card .li:hover{color:var(--bronze-deep);}
  .team-card .li svg{width:14px;height:14px;}

  /* ---------- PHILOSOPHY ---------- */
  .phil-grid{
    display:grid;
    grid-template-columns:1.1fr 0.9fr;
    gap:clamp(30px,5vw,80px);
    align-items:center;
  }
  .phil-quote{
    font-family:'Space Grotesk',sans-serif;
    font-size:clamp(24px,2.6vw,32px);
    line-height:1.35;
    color:var(--charcoal);
  }
  .phil-quote span{color:var(--green-900);}
  .phil-pillars{display:flex;flex-direction:column;gap:0;}
  .pillar{padding:22px 0;border-top:1px solid var(--line);}
  .pillar:last-child{border-bottom:1px solid var(--line);}
  .pillar h4{font-size:16px;margin-bottom:6px;}
  .pillar p{font-size:14px;color:var(--charcoal-soft);}

  /* ---------- CTA BANNER ---------- */
  .cta-banner{
    background:linear-gradient(120deg,var(--green-900) 0%, var(--green-700) 55%, var(--green-300) 130%);
    padding:clamp(70px,9vw,120px) var(--gutter);
    position:relative;
    overflow:hidden;
  }
  .cta-banner .container{
    display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap;
    position:relative;z-index:2;
  }
  .cta-banner h2{
    color:var(--white);
    font-size:clamp(30px,4vw,48px);
    max-width:14ch;
  }
  .cta-banner p{color:rgba(255,255,255,0.82);margin-top:14px;font-size:16px;max-width:44ch;}
  .cta-banner .btn-primary{background:var(--white);color:var(--charcoal);}
  .cta-banner .btn-primary:hover{background:var(--bronze);color:var(--white);}
  .cta-banner .btn-outline{border-color:rgba(255,255,255,0.4);color:var(--white);}
  .cta-banner .btn-outline:hover{border-color:var(--white);}
  .cta-lines{position:absolute;inset:0;opacity:0.25;z-index:1;}

  /* ---------- FOOTER ---------- */
  .footer{
    background:var(--charcoal);
    color:rgba(255,255,255,0.7);
    padding:64px var(--gutter) 30px;
  }
  .footer-top{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1fr;
    gap:40px;
    padding-bottom:44px;
    border-bottom:1px solid rgba(255,255,255,0.12);
  }
  .footer .logo{color:var(--white);}
  .footer-blurb{font-size:14px;margin-top:16px;max-width:34ch;color:rgba(255,255,255,0.55);}
  .footer h5{
    font-family:'Space Grotesk',sans-serif;color:var(--white);
    font-size:13px;text-transform:uppercase;letter-spacing:0.08em;margin-bottom:16px;
  }
  .footer ul li{margin-bottom:10px;}
  .footer ul a{font-size:14px;color:rgba(255,255,255,0.62);transition:color .3s;}
  .footer ul a:hover{color:var(--bronze);}
  .footer-bottom{
    display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;
    padding-top:26px;font-size:12.5px;color:rgba(255,255,255,0.4);
  }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:980px){
    .nav-links{position:fixed;top:64px;left:0;right:0;bottom:0;background:var(--off-white);
      flex-direction:column;justify-content:flex-start;padding:40px var(--gutter);gap:26px;
      transform:translateX(100%);transition:transform .4s var(--ease);z-index:90;}
    .nav-links.open{transform:translateX(0);}
    .nav-links a{font-size:18px;}
    .nav-burger{display:block;z-index:95;}
    .nav-cta .btn-outline{display:none;}
    .hero-inner{grid-template-columns:1fr;}
    .hero-art{min-height:260px;order:-1;}
    .about-grid{grid-template-columns:1fr;}
    .mv-cards{grid-template-columns:1fr;}
    .stats-row{grid-template-columns:repeat(2,1fr);}
    .stat:nth-child(3){border-left:none;}
    .timeline-h{grid-template-columns:1fr 1fr;row-gap:32px;}
    .timeline-h::before{display:none;}
    .why-grid,.services-grid{grid-template-columns:repeat(2,1fr);}
    .ind-grid{grid-template-columns:repeat(2,1fr);}
    .method-steps{grid-template-columns:1fr;}
    .m-step{border-right:none;border-bottom:1px solid var(--line);padding:22px 0;}
    .m-step p{max-height:none;opacity:1;margin-top:8px;}
    .m-step::before{display:none;}
    .value-row{grid-template-columns:50px 1fr;}
    .value-row p{grid-column:2/3;}
    .team-grid{grid-template-columns:repeat(2,1fr);}
    .phil-grid{grid-template-columns:1fr;}
    .footer-top{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:600px){
    .why-grid,.services-grid,.ind-grid,.team-grid{grid-template-columns:1fr;}
    .stats-row{grid-template-columns:1fr 1fr;}
    .footer-top{grid-template-columns:1fr;}
    .hero-proof{gap:24px;}
  }
