
:root{
  --black:#101010;
  --text:#171717;
  --muted:#5f5f5f;
  --cream:#faf7f0;
  --sand:#efe3d2;
  --line:#e8e1d8;
  --gold:#a87f37;
  --white:#ffffff;
}

*{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}

body{
  font-family:Arial, Helvetica, sans-serif;
  background:#fff;
  color:var(--text);
  line-height:1.65;
  overflow-x:hidden;
}

img{
  max-width:100%;
  display:block;
}

a{
  color:inherit;
  text-decoration:none;
}

.topbar{
  background:var(--black);
  color:white;
  padding:9px 20px;
  font-size:14px;
  text-align:center;
}

header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid var(--line);
}

.nav{
  width:min(1200px,100%);
  margin:auto;
  padding:16px 20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}

.logo{
  font-size:22px;
  font-weight:900;
  letter-spacing:-.8px;
  line-height:1.05;
  color:var(--black);
}

.logo span{
  display:block;
  font-size:10px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--gold);
  margin-top:3px;
}

.nav-links{
  display:flex;
  gap:22px;
  align-items:center;
  font-weight:800;
  font-size:15px;
}

.nav-call{
  background:var(--black);
  color:white;
  padding:11px 16px;
  border-radius:4px;
}

.mobile-call{
  display:none;
  background:var(--black);
  color:white;
  padding:11px 14px;
  border-radius:4px;
  font-weight:900;
  font-size:14px;
}

.hero{
  width:100%;
  min-height:72vh;
  padding:96px 20px;
  display:flex;
  align-items:center;
  color:white;
  background:
    linear-gradient(90deg, rgba(0,0,0,.66), rgba(0,0,0,.24)),
    var(--hero);
  background-size:cover;
  background-position:center;
}

.hero-inner{
  width:min(1200px,100%);
  margin:auto;
}

.eyebrow{
  font-size:13px;
  font-weight:900;
  letter-spacing:2.5px;
  text-transform:uppercase;
  color:#f2dfc0;
  margin-bottom:16px;
}

h1{
  font-size:clamp(42px,7vw,84px);
  line-height:.98;
  letter-spacing:-2.8px;
  max-width:880px;
  margin-bottom:22px;
}

.hero p{
  font-size:clamp(18px,2.2vw,22px);
  max-width:730px;
  color:#f8f3ea;
  margin-bottom:30px;
}

.button-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:14px 22px;
  border-radius:4px;
  font-weight:900;
  text-align:center;
  border:1px solid transparent;
}

.btn-light{
  background:white;
  color:#111;
}

.btn-dark{
  background:#111;
  color:white;
}

section{
  width:100%;
  padding:78px 20px;
}

.container{
  width:min(1200px,100%);
  margin:auto;
}

.section-head{
  max-width:780px;
  margin-bottom:38px;
}

.section-head small{
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:2.5px;
  font-weight:900;
  font-size:13px;
}

h2{
  font-size:clamp(34px,5vw,62px);
  line-height:1.05;
  letter-spacing:-2px;
  margin:12px 0 15px;
}

.section-head p,
.content p{
  color:var(--muted);
  font-size:18px;
}

.service-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.service-card{
  border:1px solid var(--line);
  background:white;
  overflow:hidden;
  border-radius:0;
}

.service-card img{
  width:100%;
  height:260px;
  object-fit:cover;
}

.service-body{
  padding:28px;
}

.service-body h3{
  font-size:27px;
  line-height:1.12;
  margin-bottom:10px;
}

.service-body p{
  color:var(--muted);
  font-size:17px;
  margin-bottom:20px;
}

.split{
  background:var(--cream);
}

.split-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:54px;
  align-items:center;
}

.split-img{
  width:100%;
  height:560px;
  object-fit:cover;
}

.content{
  max-width:900px;
}

.content h3{
  font-size:27px;
  margin:28px 0 10px;
}

.content ul{
  padding-left:22px;
  margin:16px 0 20px;
}

.content li{
  font-size:18px;
  margin-bottom:8px;
  color:#444;
}

.areas{
  background:#111;
  color:white;
}

.areas h2{
  color:white;
}

.areas p{
  color:#cccccc;
}

.area-list{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  border-top:1px solid rgba(255,255,255,.2);
  margin-top:28px;
}

.area-list div{
  padding:18px 14px;
  border-bottom:1px solid rgba(255,255,255,.2);
  font-weight:900;
  font-size:18px;
}

.cta{
  background:
    linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.65)),
    url('https://images.unsplash.com/photo-1519046904884-53103b34b206?auto=format&fit=crop&w=1800&q=80');
  background-size:cover;
  background-position:center;
  color:white;
  text-align:center;
}

.cta h2{
  max-width:900px;
  margin-left:auto;
  margin-right:auto;
}

.cta p{
  color:#f3f3f3;
  font-size:20px;
  max-width:760px;
  margin:0 auto 28px;
}

footer{
  background:#0b0b0b;
  color:white;
  padding:54px 20px;
}

.footer-grid{
  width:min(1200px,100%);
  margin:auto;
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:32px;
}

footer h3{
  font-size:23px;
  margin-bottom:12px;
}

footer p,
footer a{
  color:#bfbfbf;
  line-height:1.9;
}

.bottom{
  width:min(1200px,100%);
  margin:30px auto 0;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.12);
  color:#888;
  font-size:14px;
}

@media(max-width:900px){
  .nav-links{
    display:none;
  }

  .mobile-call{
    display:inline-flex;
  }

  .hero{
    min-height:auto;
    padding:84px 20px;
    background:
      linear-gradient(rgba(0,0,0,.58),rgba(0,0,0,.48)),
      var(--hero);
    background-size:cover;
    background-position:center;
  }

  .service-grid,
  .split-grid,
  .footer-grid{
    grid-template-columns:1fr;
  }

  .split-img{
    height:420px;
  }

  .area-list{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:560px){
  .topbar{
    font-size:13px;
    padding:8px 14px;
  }

  .nav{
    padding:14px 16px;
  }

  .logo{
    font-size:20px;
  }

  .logo span{
    font-size:9px;
    letter-spacing:1.6px;
  }

  .hero{
    padding:72px 16px;
    min-height:620px;
  }

  h1{
    font-size:43px;
    letter-spacing:-1.8px;
  }

  .hero p{
    font-size:18px;
  }

  section{
    padding:62px 16px;
  }

  .button-row .btn{
    width:100%;
  }

  .service-card img{
    height:230px;
  }

  .service-body{
    padding:24px;
  }

  .split-img{
    height:330px;
  }

  .area-list{
    grid-template-columns:1fr;
  }

  .footer-grid{
    gap:26px;
  }
}
