:root{--forest:#14442f;--forest-d:#0c2c1e;--leaf:#2f7d4f;--moss:#eef3e8;--cream:#fbfaf5;--sun:#f0a92e;--ink:#1d2a22}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:var(--cream);font-size:1.05rem;line-height:1.7}
h1,h2,h3,.navbar-brand,.stat strong,.num{font-family:'Fraunces',Georgia,serif}
img{max-width:100%;height:auto}

/* nav */
.cd-nav{background:rgba(251,250,245,.96);backdrop-filter:blur(6px);box-shadow:0 1px 0 rgba(20,68,47,.1);padding:.4rem 0}
.navbar-brand{display:flex;align-items:center;gap:.6rem;font-weight:800;color:var(--forest);font-size:1.25rem}
.navbar-brand:hover{color:var(--forest)}
.brand-logo{width:60px;height:auto}
.cd-nav .nav-link{color:var(--ink);font-weight:500;padding:.5rem .8rem}
.cd-nav .nav-link:hover,.cd-nav .nav-link.active{color:var(--leaf)}
.btn-cd{background:var(--sun);color:#1b1405;font-weight:700;border:0;border-radius:999px;padding:.55rem 1.3rem}
.btn-cd:hover{background:#ffbc4a;color:#1b1405}
.btn-sm.btn-cd{padding:.4rem 1rem}
.btn-outline-cd{border:2px solid var(--forest);color:var(--forest);font-weight:700;border-radius:999px;padding:.5rem 1.2rem}
.btn-outline-cd:hover{background:var(--forest);color:#fff}
.btn-ghost{border:2px solid #fff;color:#fff;font-weight:700;border-radius:999px;padding:.55rem 1.4rem;text-shadow:0 1px 6px rgba(0,0,0,.6)}
.btn-ghost:hover{background:#fff;color:var(--forest);text-shadow:none}

/* hero: compact, curved bottom edge, green-teal wash */
.hero{position:relative;min-height:84vh;display:flex;align-items:center;padding:7rem 0 8rem;color:#fff;clip-path:polygon(0 0,100% 0,100% 100%,0 calc(100% - 5vw));overflow:hidden;z-index:1}
.hero-img,.hero-overlay{position:absolute;inset:0}
.hero-overlay{background:radial-gradient(ellipse 75% 65% at 50% 48%,rgba(0,0,0,.35) 0%,rgba(0,0,0,.04) 100%),linear-gradient(to bottom,rgba(0,0,0,.30) 0%,rgba(0,0,0,.10) 45%,rgba(0,0,0,.45) 100%),linear-gradient(135deg,rgba(14,70,60,.28),rgba(20,68,47,.12))}
.hero-content{max-width:820px;padding:2.2rem 1.5rem;border-radius:20px;background:rgba(0,0,0,.20);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.hero-eyebrow{text-transform:uppercase;letter-spacing:.2em;font-weight:700;font-size:.85rem;margin-bottom:.8rem;text-shadow:0 0 3px rgba(0,0,0,1),0 1px 12px rgba(0,0,0,.95),0 0 30px rgba(0,0,0,.8)}
.hero-title{font-size:clamp(2.3rem,6vw,4.4rem);font-weight:800;line-height:1.08;margin-bottom:1rem;text-shadow:0 0 4px rgba(0,0,0,1),0 2px 20px rgba(0,0,0,.95),0 0 60px rgba(0,0,0,.8)}
.hero-subtitle{font-size:clamp(1.05rem,2.2vw,1.35rem);margin-bottom:.6rem;text-shadow:0 0 3px rgba(0,0,0,1),0 2px 16px rgba(0,0,0,.95),0 0 40px rgba(0,0,0,.85)}
.hero-tagline{font-style:italic;margin:0;color:#ffe3a6;text-shadow:0 0 3px rgba(0,0,0,1),0 1px 12px rgba(0,0,0,.95),0 0 30px rgba(0,0,0,.9)}

/* stats */
.stats{background:var(--forest);color:#fff;position:relative;z-index:0;margin-top:-5vw;padding:calc(5vw + 1.8rem) 0 2.2rem}
.stat{padding:.8rem}
.stat i{font-size:1.5rem;color:var(--sun);display:block}
.stat strong{display:block;font-size:1.45rem;line-height:1.2}
.stat span{opacity:.85;font-size:.95rem}

.py-section{padding:6rem 0}
.bg-moss{background:var(--moss)}
.kicker{text-transform:uppercase;letter-spacing:.18em;font-size:.8rem;font-weight:700;color:var(--leaf);margin-bottom:.6rem}
.kicker.light{color:var(--sun)}
.display-h{font-size:clamp(1.9rem,4vw,2.9rem);font-weight:800;color:var(--forest);line-height:1.15;margin-bottom:1.3rem}
.lead-copy{font-size:1.12rem;color:#3a4a40}
.sub-h{font-size:1.25rem;color:var(--forest);font-weight:800;margin:1.4rem 0 .4rem}

/* services */
.svc{background:#fff;border-radius:16px;padding:2rem 1.8rem;height:100%;border-top:4px solid var(--leaf);box-shadow:0 8px 24px rgba(20,68,47,.07)}
.svc .num{font-size:2.2rem;font-weight:800;color:var(--sun);line-height:1}
.svc h3{font-size:1.35rem;margin:.6rem 0 .5rem;color:var(--forest);font-weight:800}
.svc p{margin:0;color:#46564c}
.more-services{text-align:center;color:var(--forest)}

/* projects */
.proj{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(20,68,47,.07);height:100%}
.proj h3{font-size:1.4rem;color:var(--forest);font-weight:800;margin:1.3rem 1.5rem .5rem}
.proj p{margin:0 1.5rem 1.6rem;color:#46564c;font-size:1rem}
.ba{display:grid;grid-template-columns:1fr 1fr;gap:3px;background:var(--forest)}
.ba figure{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden}
.ba img{width:100%;height:100%;object-fit:cover;display:block}
.ba figcaption{position:absolute;left:8px;top:8px;background:rgba(12,44,30,.85);color:#fff;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;padding:.15rem .6rem;border-radius:999px}
.ba figure:last-child figcaption{background:var(--sun);color:#1b1405}
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.mosaic img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:10px;display:block}

/* snow */
.snow-sec{background:linear-gradient(160deg,#10304a,#0c2236);color:#e6eef5}
.snow-sec .display-h{color:#fff}
.snow-list h3{font-size:1.15rem;font-weight:800;color:#fff;margin:1.2rem 0 .2rem}
.snow-list p{margin:0;color:#c3d3e0;font-size:1rem}
.snow-truck{width:100%;height:auto;border-radius:14px;display:block;margin-bottom:10px}
.snow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.snow-grid img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:10px;display:block}

/* testimonials */
.quote{background:#fff;border-radius:16px;padding:2rem 1.8rem;height:100%;margin:0;box-shadow:0 8px 24px rgba(20,68,47,.07);position:relative}
.quote::before{content:"\201C";font-family:'Fraunces',serif;font-size:4.5rem;line-height:.6;color:var(--sun);display:block;margin-bottom:.6rem}
.quote p{color:#3a4a40}
.quote cite{font-style:normal;font-weight:700;color:var(--forest)}

/* contact */
.contact-list{list-style:none;padding:0;margin:0 0 1.5rem}
.contact-list li{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1rem}
.contact-list i{font-size:1.3rem;color:var(--leaf);background:#fff;width:2.8rem;height:2.8rem;border-radius:50%;display:grid;place-items:center;flex:none}
.contact-list strong{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--leaf)}
.contact-list a{color:var(--ink)}
.cities{font-weight:500;color:var(--forest)}
.small-list{font-size:.95rem;color:#46564c}
.map-wrap{border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(20,68,47,.12);height:100%;min-height:420px}
.map-wrap iframe{width:100%;height:100%;min-height:420px;border:0;display:block}

/* footer */
.cd-footer{background:var(--forest-d);color:#cfe0d5;padding:3.5rem 0 1.2rem}
.logo-chip{display:inline-block;background:var(--cream);border-radius:12px;padding:.5rem .9rem}
.logo-chip img{width:120px;height:auto;display:block}
.cd-footer a{color:#cfe0d5;text-decoration:none}
.cd-footer a:hover{color:var(--sun)}
.cd-footer .col-md-4 > a{margin:0 .7rem}
.social a{font-size:1.4rem;margin-left:1rem}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem;border-top:1px solid rgba(255,255,255,.12);margin-top:2.5rem;padding-top:1.2rem;font-size:.9rem}
.powered{background:rgba(240,169,46,.15);border:1px solid rgba(240,169,46,.5);padding:.25rem .9rem;border-radius:999px;color:#ffd78a !important}
.powered i{color:var(--sun)}

@media (max-width:991.98px){
  .cd-nav .navbar-collapse{padding:.8rem 0 1rem}
  .py-section{padding:4.5rem 0}
  .cd-footer .col-md-4 > a{margin:0 .5rem}
}
@media (max-width:767.98px){
  .hero{min-height:78vh;padding:6rem 0 7rem}
  .navbar-brand{font-size:1.1rem}
  .brand-logo{width:48px}
  .mosaic{grid-template-columns:repeat(2,1fr)}
  .snow-grid{grid-template-columns:repeat(2,1fr)}
  .ba figcaption{font-size:.65rem}
  .social a{margin:0 .8rem 0 0}
  .cd-footer .col-md-4 > a{display:inline-block;margin:0 .8rem .3rem 0}
}
