
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f5f4ef;color:#243029;font-family:Arial,Helvetica,sans-serif}.note{background:#e8e8dc;text-align:center;font-size:10px;letter-spacing:.12em;padding:9px}header{display:flex;justify-content:space-between;align-items:center;padding:22px 6%;gap:15px}.brand{font-size:19px;font-weight:700;letter-spacing:.09em}.brand small{display:block;font-size:9px;font-weight:400;letter-spacing:.22em;margin-top:6px}nav{display:flex;gap:18px}nav a{font-size:11px;text-decoration:none;color:inherit;text-transform:uppercase;letter-spacing:.1em}.hero{height:78vh;min-height:560px;max-height:790px;background-image:linear-gradient(0deg,rgba(9,18,12,.78),rgba(9,18,12,.05) 65%),url('images/hero.jpg');background-size:cover;background-position:center 47%;display:flex;align-items:flex-end;color:#fff}.hero-inner{padding:0 7% 68px;max-width:870px}.eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:700}h1{font-size:clamp(42px,6vw,78px);font-weight:400;letter-spacing:-.045em;line-height:1.05;margin:18px 0}.hero p{font-size:16px;line-height:1.7;max-width:580px;color:#e7e9e4}.btn{display:inline-block;padding:17px 23px;background:#e8e8dc;color:#1e2922;text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:700;margin-top:16px}.section{padding:88px 7%}h2{font-size:clamp(32px,4vw,52px);font-weight:400;letter-spacing:-.035em;line-height:1.13;margin:16px 0 24px}.intro{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.intro p,.about p,.contact p{font-size:16px;line-height:1.85;color:#58645c}.intro img,.about img{width:100%;height:440px;object-fit:cover}.projects{background:#e8ebe5}.section-head{max-width:700px;margin-bottom:30px}.section-head p{color:#59655e;line-height:1.7}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:25px}.project{background:#f6f6f1}.project img{width:100%;height:325px;object-fit:cover;display:block}.project-info{padding:16px 20px 19px}.project h3{font-size:21px;font-weight:400;margin:0 0 7px}.project p{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#6a766d;margin:0}.services{background:#25352e;color:white}.services h2{max-width:730px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 32px;margin-top:35px}.service{border-top:1px solid #718075;padding-top:14px}.service h3{font-weight:400;font-size:22px;margin:4px 0 9px}.service p{font-size:14px;color:#c9d2ca;line-height:1.55;margin:0 0 10px}.about{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.contact{background:#dfe4da;text-align:center}.contact p{max-width:590px;margin:auto}footer{background:#202a24;color:#d4dbd3;padding:30px 7%;font-size:12px;display:flex;justify-content:space-between;gap:20px}@media(max-width:700px){header{padding:18px 6%}.brand{font-size:15px}.brand small{font-size:8px}nav a:nth-child(1){display:none}nav{gap:12px}.hero{height:71svh;min-height:520px;background-position:55% center}.hero-inner{padding:0 7% 49px}h1{font-size:43px}.hero p{font-size:14px}.section{padding:58px 7%}.intro,.about{grid-template-columns:1fr;gap:20px}.intro img,.about img{height:280px}.gallery{grid-template-columns:1fr;gap:18px}.project img{height:255px}.service-grid{grid-template-columns:1fr;gap:8px;margin-top:23px}.service{padding-top:12px}.service h3{font-size:22px;margin:3px 0 5px}.service p{font-size:13px;line-height:1.5;margin:0 0 10px}footer{display:block;line-height:2}}
.gallery-cta{text-align:center;margin-top:25px}.hero .eyebrow{letter-spacing:.11em}@media(max-width:700px){.hero .eyebrow{font-size:9px;letter-spacing:.045em;white-space:nowrap}nav a:nth-child(1){display:inline}nav{gap:9px}nav a{font-size:9px;letter-spacing:.02em}.brand{font-size:13px}.brand small{font-size:7px;letter-spacing:.1em}}

.header-phone{white-space:nowrap;color:#243029;text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.03em;border:1px solid #9aa79b;padding:12px 14px}.mobile-call{display:none}.contact-phone{margin-top:24px!important;font-size:16px!important}.contact-phone a{color:#243029;font-weight:700;text-decoration:underline}@media(max-width:700px){.header-phone{display:none}.mobile-call{display:block;background:#25352e;text-align:center;padding:12px 10px}.mobile-call a{color:#fff;font-size:13px;font-weight:700;letter-spacing:.06em;text-decoration:none}}

/* v1.0.4 navigation and responsive header fixes */
.county-nowrap{white-space:nowrap}
header{min-width:0;flex-wrap:wrap}
.brand{flex:0 1 auto;min-width:0}
nav{flex:0 1 auto;min-width:0;flex-wrap:wrap;justify-content:center}
.header-phone{flex:0 0 auto;white-space:nowrap}
@media(max-width:900px){
  header{padding:16px 5%;gap:10px;justify-content:space-between}
  .brand{font-size:14px;letter-spacing:.05em}
  .brand small{font-size:7px;letter-spacing:.1em}
  nav{gap:9px}
  nav a{font-size:9px;letter-spacing:.02em}
  .header-phone{display:none}
  .mobile-call{display:block;background:#25352e;text-align:center;padding:12px 10px}
  .mobile-call a{color:#fff;font-size:13px;font-weight:700;letter-spacing:.04em;text-decoration:none}
}
@media(max-width:420px){
  header{align-items:center}
  .brand{max-width:48%;font-size:12px}
  .brand small{font-size:6px;letter-spacing:.06em}
  nav{gap:7px}
  nav a{font-size:8px}
}

/* 1.0.5: mobile header and hero label, cache-busted stylesheet */
.header-phone { color:#243029; text-decoration:none; }
.mobile-call a { text-decoration:none; }
.hero-county { display:inline; white-space:nowrap; }
.hero-county::before { content:" · "; }
@media (max-width:900px) {
 .header-phone { display:none !important; }
 .mobile-call { display:block !important; background:#25352e !important; padding:12px 10px !important; text-align:center; }
 .mobile-call a { color:#fff !important; text-decoration:none !important; display:block; font-size:13px; white-space:nowrap; }
 header { display:flex; align-items:center; justify-content:space-between; flex-wrap:nowrap; gap:12px; padding:20px 6%; }
 .brand { flex:0 1 auto; min-width:0; font-size:clamp(12px,2.8vw,16px); }
 nav { display:flex; flex:0 0 auto; flex-wrap:nowrap; gap:12px; }
 nav a { font-size:10px; }
 .hero-county { display:block; margin-top:7px; }
 .hero-county::before { content:none; }
 .hero .eyebrow { white-space:normal; font-size:10px; line-height:1.5; letter-spacing:.1em; }
}
@media (max-width:420px) {
 header { padding:18px 6%; gap:10px; }
 .brand { font-size:12px; max-width:none; }
 .brand small { font-size:7px; }
 nav { gap:9px; }
 nav a { font-size:9px; }
}
