:root{
  --ink:#111214; --deep:#191B1E; --gold:#C8A24A; --goldd:#8A7440;
  --bone:#F4F1EA; --slate:#6E7278; --hair:#3A3B3E; --line:#E2DDD2;
  --maxw:1120px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{max-width:100%;overflow-x:clip}
body{font-family:Barlow,system-ui,-apple-system,Segoe UI,sans-serif;
  color:var(--ink);background:#fff;line-height:1.6;font-size:17px}
img,svg{max-width:100%}
a{color:inherit}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}

/* ---------- type ---------- */
h1,h2,h3{font-family:Oswald,Impact,sans-serif;font-weight:700;line-height:1.08;
  letter-spacing:.01em;overflow-wrap:break-word}
h1{font-size:clamp(34px,7vw,64px)}
h2{font-size:clamp(26px,4.4vw,42px)}
h3{font-size:clamp(18px,2.4vw,22px);font-weight:600}
.kicker{font-family:'Barlow Condensed',sans-serif;font-weight:600;
  letter-spacing:.26em;text-transform:uppercase;font-size:13px;color:var(--goldd)}
.kicker.on-dark{color:var(--gold)}
.lede{font-size:clamp(17px,2.1vw,20px);color:#3a3d42;max-width:62ch}
.tagline{font-family:Oswald,sans-serif;font-weight:500;color:#b8bcc2}

/* ---------- header ---------- */
header{background:var(--ink);color:var(--bone);position:sticky;top:0;z-index:50;
  border-bottom:1px solid var(--hair)}
.bar{display:flex;align-items:center;gap:18px;padding:12px 0;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--gold);
  flex:none}
.brand svg{width:62px;height:auto;display:block}
.bname{display:block;font-family:Oswald,sans-serif;font-weight:700;font-size:21px;
  line-height:1;color:var(--bone);letter-spacing:.015em}
.bname i{font-style:normal;color:var(--gold)}
.bsub{display:block;font-family:Oswald,sans-serif;font-weight:500;font-size:8px;
  letter-spacing:.44em;color:#9aa0a7;margin-top:4px}
nav{display:flex;gap:20px;flex-wrap:wrap;margin-left:auto;align-items:center;
  min-width:0}
nav a{white-space:nowrap;font-family:'Barlow Condensed',sans-serif;font-weight:600;
  font-size:15px;
  letter-spacing:.13em;text-transform:uppercase;text-decoration:none;color:#cfd3d8;
  padding:4px 0;border-bottom:2px solid transparent}
nav a:hover{color:#fff;border-bottom-color:var(--gold)}
nav a[aria-current=page]{color:var(--gold);border-bottom-color:var(--gold)}
.callbtn{background:var(--gold);color:#22190A !important;border-bottom:none !important;
  padding:9px 16px !important;border-radius:2px;font-size:15px;letter-spacing:.08em}
.callbtn:hover{background:#d8b45e}

/* ---------- hero ---------- */
.hero{background:var(--ink);color:var(--bone);padding:64px 0 72px;
  border-bottom:4px solid var(--gold)}
.hero .mk{width:180px;color:var(--gold);display:block;margin-bottom:26px}
.hero h1{color:#fff}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero .tagline{font-size:clamp(19px,2.6vw,26px);margin-top:18px}
.cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.btn{display:inline-block;font-family:'Barlow Condensed',sans-serif;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;font-size:16px;padding:15px 28px;
  text-decoration:none;border-radius:2px;border:2px solid var(--gold)}
.btn-a{background:var(--gold);color:#22190A}
.btn-a:hover{background:#d8b45e}
.btn-b{color:var(--gold);background:transparent}
.btn-b:hover{background:rgba(200,162,74,.12)}

/* ---------- strip ---------- */
.strip{background:var(--deep);color:#c9ced4;padding:15px 0;
  font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;font-size:13px}
.strip .wrap{display:flex;gap:12px 30px;flex-wrap:wrap;justify-content:center;
  text-align:center}
.strip b{color:var(--gold);font-weight:600}

/* ---------- sections ---------- */
section{padding:66px 0}
section.alt{background:var(--bone)}
.head{max-width:70ch;margin-bottom:34px}
.head h2{margin:10px 0 14px}
.grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(258px,1fr))}
.grid.g2{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}
.card{border:1px solid var(--line);background:#fff;padding:26px 24px;border-radius:3px}
.card h3{margin-bottom:9px}
.card p{color:#4a4e54;font-size:16px}
.card .n{font-family:Oswald,sans-serif;font-weight:700;font-size:15px;color:var(--gold);
  display:block;margin-bottom:12px}
section.alt .card{background:#fff}

/* numbered steps */
.steps{counter-reset:s;display:grid;gap:2px;margin-top:8px}
.step{background:#fff;border:1px solid var(--line);padding:24px 24px 24px 76px;
  position:relative}
.step:before{counter-increment:s;content:counter(s);position:absolute;left:24px;top:22px;
  font-family:Oswald,sans-serif;font-weight:700;font-size:26px;color:var(--gold);
  line-height:1}
.step h3{margin-bottom:6px}
.step p{color:#4a4e54;font-size:16px;max-width:74ch}

/* service list */
.slist{display:grid;gap:0;margin-top:10px}
.slist div{display:flex;align-items:baseline;gap:16px;padding:17px 0;
  border-top:1px solid var(--line)}
.slist div:last-child{border-bottom:1px solid var(--line)}
.slist span{font-family:Oswald,sans-serif;font-weight:600;font-size:clamp(19px,2.5vw,25px);
  letter-spacing:.02em}
.slist p{color:#5a5e64;font-size:15.5px;margin-left:auto;text-align:right;max-width:42ch}

/* towns */
.towns{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.towns a{font-family:Oswald,sans-serif;font-weight:500;font-size:17px;
  border:1px solid var(--line);background:#fff;padding:9px 16px;border-radius:2px;
  text-decoration:none;color:var(--ink)}

/* photo placeholder */
.ph{border:2px dashed #cfc9bd;background:#faf8f4;border-radius:3px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:44px 22px;min-height:230px;gap:8px}
.ph .k{font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;font-size:13px;color:var(--goldd)}
.ph p{color:#8b8579;font-size:14.5px;max-width:34ch}

/* contact */
.ctable{display:grid;gap:0;margin-top:6px}
.ctable div{display:flex;gap:18px;padding:18px 0;border-top:1px solid var(--line);
  flex-wrap:wrap}
.ctable div:last-child{border-bottom:1px solid var(--line)}
.ctable dt,.ctable .lb{font-family:'Barlow Condensed',sans-serif;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;font-size:13px;color:var(--slate);
  min-width:150px;padding-top:4px}
.ctable .vl{font-family:Oswald,sans-serif;font-weight:600;
  font-size:clamp(20px,3vw,27px)}
.ctable .vl a{text-decoration:none;border-bottom:2px solid var(--gold)}

/* cta band */
.band{background:var(--ink);color:var(--bone);padding:56px 0;text-align:center}
.band h2{color:#fff}
.band p{color:#b8bcc2;margin:12px auto 0;max-width:52ch}
.band .cta{justify-content:center}

/* footer */
footer{background:var(--deep);color:#9aa0a7;padding:44px 0 30px;font-size:15px}
.fgrid{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
footer h4{font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;font-size:12.5px;color:var(--gold);margin-bottom:12px}
footer a{color:#c2c7cd;text-decoration:none;display:block;padding:3px 0}
footer a:hover{color:#fff}
.fbot{border-top:1px solid #2a2d31;margin-top:32px;padding-top:20px;
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:13.5px;
  color:#767c83}
.fmark{width:132px;color:var(--gold);display:block;margin-bottom:14px}

@media (max-width:720px){
  .bar{gap:10px}
  nav{gap:10px 13px;width:100%;margin-left:0}
  nav a{font-size:13.5px;letter-spacing:.1em}
  .callbtn{padding:9px 13px !important;font-size:13.5px}
  .brand svg{width:50px}
  .bname{font-size:19px}
  section{padding:48px 0}
  .hero{padding:44px 0 52px}
  .hero .mk{width:140px}
  .slist div{flex-direction:column;gap:5px}
  .slist p{margin-left:0;text-align:left}
  .cta{gap:11px}
  .btn{flex:1 1 100%;min-width:0;text-align:center;font-size:14.5px;
    letter-spacing:.1em;padding:14px 14px}
  .grid.g2{grid-template-columns:1fr}
  .step{padding:20px 20px 20px 66px}
  .ctable .lb{min-width:0;flex:1 1 100%}
}
