:root{
  --spruce:#12301f; --spruce-2:#1b4630; --stone:#efece3; --paper:#faf8f2; --red:#b30225; --red-d:#8f021e;
  --ink:#1c211d; --muted:#555d56; --paint:rgba(255,255,255,.55);
  --display:'Bitter',Georgia,serif; --body:'Work Sans',system-ui,sans-serif;
}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{font-family:var(--body);background:var(--stone);color:var(--ink);font-size:1.0625rem;line-height:1.65;overflow-x:hidden}
img{max-width:100%;height:auto}
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:1.08;letter-spacing:-.01em}
h2{font-size:clamp(2rem,4.6vw,3.3rem);margin-bottom:1rem}
h3{font-size:1.35rem}
a{color:var(--red)}
.btn{font-weight:700;border-radius:3px;padding:.8rem 1.5rem}
.btn-red{background:var(--red);border:2px solid var(--red);color:#fff}
.btn-red:hover{background:var(--red-d);border-color:var(--red-d);color:#fff}
.btn-line{border:2px solid #fff;color:#fff}
.btn-line:hover{background:#fff;color:var(--spruce)}
:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 5px var(--red)}

/* Signature: utility marking-paint dashes */
.paint{height:0;border:0;border-top:5px dashed var(--red);margin:0;opacity:.9}
.paint.white{border-top-color:var(--paint)}
.paint.thick{border-top-width:7px}

/* nav */
.topbar{background:#0b2016;color:#e9efe9;font-size:.9rem}
.topbar a{color:#fff;text-decoration:none;font-weight:600}
.topbar .inner{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;flex-wrap:wrap}
.navbar{background:var(--spruce);padding:.6rem 0}
.navbar-brand img{height:56px;width:auto;display:block}
.navbar .nav-link{color:#fff;font-weight:600;padding:.5rem 1rem}
.navbar .nav-link:hover{color:#ffd9df}
.navbar-toggler{border-color:rgba(255,255,255,.6)}
.navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='white' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}

/* hero */
.hero{background:var(--spruce);color:#fff;padding:4rem 0 4.5rem;position:relative;overflow:hidden}
.hero h1{font-size:clamp(2.6rem,6.2vw,4.8rem);margin-bottom:1.2rem}
.hero p.lead{font-size:1.2rem;max-width:34ch;color:#e4ece5}
.hero .towns{margin-top:1.6rem;color:#cfdad1;font-size:.98rem}
.hero-photo{position:relative;padding:0 18px 18px 0}
.hero-photo::before{content:"";position:absolute;inset:18px 0 0 18px;border:4px dashed var(--paint);border-radius:4px}
.hero-photo img{position:relative;display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;margin:0}

/* strip */
.strip{background:var(--red);color:#fff;font-family:var(--display);font-weight:700}
.strip .row>div{padding:.9rem .75rem;text-align:center}
.strip a{color:#fff}

section{padding:5rem 0}
.sec-head{max-width:46rem;margin-bottom:2.2rem}
.sec-head p{color:var(--muted)}

/* services index */
.svc-group{margin-bottom:2.4rem}
.svc-group h3{color:var(--spruce);padding-bottom:.6rem;border-bottom:5px dashed var(--red);margin-bottom:.4rem}
.svc-list{list-style:none;padding:0;margin:0}
.svc-list li{font-family:var(--display);font-weight:700;font-size:1.28rem;padding:.55rem 0;border-bottom:1px solid rgba(28,33,29,.16)}
.svc-photo{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:4px;margin-bottom:1.1rem;display:block}
.svc-detail{background:var(--paper);border-left:6px solid var(--red);padding:1.3rem 1.4rem;border-radius:3px}
.svc-detail h3{margin-bottom:.4rem}

/* about */
.about{background:var(--spruce);color:#fff}
.about h2{color:#fff}
.about p{color:#e4ece5}
.about img{border-radius:4px;width:100%;height:auto;display:block;box-shadow:14px 14px 0 var(--red)}

/* before/after */
.ba-tile{position:relative;margin:0}
.ba-tile img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:4px;display:block}
.ba-tag{position:absolute;left:0;top:12px;background:var(--red);color:#fff;font-weight:700;font-size:.85rem;padding:.2rem .7rem .2rem .6rem;clip-path:polygon(0 0,100% 0,88% 50%,100% 100%,0 100%)}
.ba-tile figcaption{font-weight:600;font-size:.95rem;margin-top:.4rem}

/* work grid */
.work-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;display:block}

/* reviews */
.reviews{background:var(--paper)}
.quote{border-left:6px solid var(--red);padding:.4rem 0 .4rem 1.2rem;height:100%}
.quote p{font-family:var(--display);font-weight:600;font-size:1.15rem;line-height:1.5;margin-bottom:.6rem}
.quote cite{font-style:normal;color:var(--muted);font-size:.95rem}

/* contact */
.contact{background:var(--spruce);color:#fff}
.contact h2{color:#fff}
.contact a{color:#fff}
.big-phone{font-family:var(--display);font-weight:800;font-size:clamp(2rem,5vw,3rem);text-decoration:none;display:inline-block;margin:.2rem 0 1rem;border-bottom:5px dashed var(--paint)}
.map{width:100%;height:100%;min-height:340px;border:0;border-radius:4px;background:var(--spruce-2)}
.social a{display:inline-flex;align-items:center;gap:.4rem;margin-right:1.2rem;text-decoration:none;font-weight:600}

footer{background:#0b2016;color:#cfdad1;padding:2.6rem 0 6rem;font-size:.95rem}
footer a{color:#fff}
footer .logo-chip{display:inline-block;background:var(--spruce);padding:.5rem .8rem;border-radius:4px;margin-bottom:.8rem}
footer .logo-chip img{height:40px;width:auto;display:block}
.powered{display:inline-block;margin-top:1rem;padding:.35rem .8rem;border:1px dashed var(--paint);border-radius:3px;text-decoration:none;font-weight:600}

@media (max-width:991px){
  section{padding:3.5rem 0}
  .hero{padding:2.5rem 0 3.5rem}
  .topbar .hide-sm{display:none}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
