:root{--ink:#17150f;--butter:#f6c928;--butter2:#ffe27a;--paper:#fbf7ec;--mute:#5d584a;--line:rgba(23,21,15,.16)}
img{max-width:100%;height:auto}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{font-family:'Figtree',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:1.06rem;line-height:1.65}
h1,h2,h3,h4,.disp{font-family:'Bitter',Georgia,serif;font-weight:800;line-height:1.05;letter-spacing:-.01em}
a{color:inherit}
.eyebrow{font-family:'Figtree',sans-serif;font-weight:800;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;display:inline-block;background:var(--butter);color:var(--ink);padding:.28rem .7rem;transform:rotate(-1.2deg);margin-bottom:1rem}
.btn-wf{background:var(--ink);color:var(--butter);font-weight:800;border-radius:2px;padding:.85rem 1.7rem;border:2px solid var(--ink);letter-spacing:.02em;transition:.2s}
.btn-wf:hover{background:var(--butter);color:var(--ink)}
.btn-wf-o{background:transparent;color:var(--ink);font-weight:800;border-radius:2px;padding:.85rem 1.7rem;border:2px solid var(--ink);transition:.2s}
.btn-wf-o:hover{background:var(--ink);color:var(--butter)}
/* utility bar + nav */
.util{background:var(--ink);color:#f3ecd2;font-size:.82rem;letter-spacing:.04em;padding:.4rem 0}
.util a{color:var(--butter);font-weight:700;text-decoration:none}
.navbar.main{background:var(--paper);border-bottom:2px solid var(--ink);padding:.55rem 0}
.navbar-brand{display:flex;align-items:center;gap:.7rem;font-family:'Bitter',serif;font-weight:800;font-size:1.3rem;line-height:1;color:var(--ink)}
.navbar-brand small{display:block;font-family:'Figtree',sans-serif;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700;margin-top:.25rem;color:var(--mute)}
.navbar-brand img{width:46px;height:46px;object-fit:contain}
.navbar .nav-link{font-weight:700;font-size:.92rem;color:var(--ink);padding:.5rem .8rem}
.navbar .nav-link:hover{background:var(--butter)}
.navbar .btn-wf{padding:.55rem 1.1rem;font-size:.92rem}
/* hero */
.hero{background:var(--butter);position:relative;padding:3rem 0 4.2rem;overflow:hidden}
.hero h1{font-size:clamp(2.5rem,5.6vw,4.7rem);margin-bottom:1rem}
.hero .lead{font-size:1.2rem;max-width:34rem;font-weight:500}
.hero .badges{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.3rem 0 1.6rem;padding:0;list-style:none}
.hero .badges li{border:2px solid var(--ink);padding:.2rem .7rem;font-weight:700;font-size:.82rem;letter-spacing:.04em;background:var(--butter2)}
.hero-photo{position:relative;max-width:440px;margin-left:auto;transform:rotate(1.5deg)}
.hero-photo img{display:block;width:100%;aspect-ratio:655/631;object-fit:cover;object-position:50% 25%;border:6px solid var(--paper);outline:2px solid var(--ink);border-radius:3px}
.hero-photo figcaption{position:absolute;left:-10px;bottom:-14px;background:var(--ink);color:var(--butter);font-weight:800;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;padding:.4rem .8rem;transform:rotate(-2deg)}
.tape{position:absolute;top:-16px;left:50%;width:110px;height:30px;background:rgba(255,255,255,.55);transform:translateX(-50%) rotate(-3deg);z-index:2;border-left:2px dashed rgba(0,0,0,.15);border-right:2px dashed rgba(0,0,0,.15)}
/* signature: carpenter's rule */
.rule{height:34px;background:var(--paper);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);position:relative;overflow:hidden;
 background-image:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 16px),repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 80px);
 background-size:100% 10px,100% 20px;background-repeat:repeat-x;background-position:0 0,0 0}
.rule.flip{transform:scaleY(-1)}
.rule-hero{position:absolute;left:0;right:0;bottom:0;height:26px;background-color:var(--ink);
 background-image:repeating-linear-gradient(90deg,var(--butter) 0 2px,transparent 2px 14px),repeating-linear-gradient(90deg,var(--butter) 0 2px,transparent 2px 70px);
 background-size:100% 9px,100% 17px;background-repeat:repeat-x;background-position:0 0}
section{padding:5rem 0}
h2.sec{font-size:clamp(2rem,4.2vw,3.2rem);margin-bottom:1rem}
.sec-intro{max-width:44rem;color:var(--mute);font-size:1.12rem}
/* stats strip */
.strip{background:var(--ink);color:var(--paper);padding:2rem 0}
.strip .n{font-family:'Bitter',serif;font-weight:800;font-size:clamp(1.8rem,3.5vw,2.6rem);color:var(--butter);line-height:1}
.strip .l{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;margin-top:.35rem}
/* services index */
.index{list-style:none;padding:0;margin:0;border-top:2px solid var(--ink)}
.index li{border-bottom:1px solid var(--line);padding:1.3rem 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:.6rem 2rem;align-items:baseline;transition:.2s}
.index li:hover{background:var(--butter2);padding-left:.8rem}
.index h3{font-size:clamp(1.4rem,2.6vw,2rem);margin:0}
.index p{margin:0;color:var(--mute)}
.more-svc{background:#fff;border:2px solid var(--ink);padding:1.6rem;height:100%}
.more-svc h3{font-size:1.4rem}
.more-svc ul{padding-left:1.1rem;margin:0}
.more-svc li{margin:.25rem 0}
/* process */
.process{background:var(--butter);border-block:2px solid var(--ink)}
.step{position:relative;padding-top:1.6rem;border-top:6px solid var(--ink);height:100%}
.step b{font-family:'Bitter',serif;font-size:3rem;line-height:1;display:block;margin-bottom:.4rem}
.step h3{font-size:1.4rem}
.step p{margin:0}
/* gallery */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.gal figure{margin:0;position:relative}
.gal img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;border:4px solid #fff;outline:1.5px solid var(--ink)}
.gal figure:nth-child(3n+1){transform:rotate(-.8deg)}
.gal figure:nth-child(3n){transform:rotate(.8deg)}
.gal figcaption{font-weight:800;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;margin-top:.5rem}
/* about */
.about-photo{position:relative;max-width:420px}
.about-photo img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 70%;border:6px solid #fff;outline:2px solid var(--ink)}
.about-photo .tape{top:-14px}
.names{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;padding:0;margin:1.2rem 0 0}
.names li{background:var(--ink);color:var(--butter);font-weight:800;padding:.35rem .9rem;letter-spacing:.04em}
/* quotes */
.quotes{background:var(--ink);color:var(--paper)}
.quotes .big{font-family:'Bitter',serif;font-weight:800;font-size:clamp(1.8rem,4vw,3.1rem);line-height:1.15;color:var(--butter)}
.q-grid blockquote{margin:0;border-left:4px solid var(--butter);padding:.2rem 0 .2rem 1rem;font-size:1.05rem}
/* faq */
.accordion{--bs-accordion-bg:transparent;--bs-accordion-border-color:var(--ink);--bs-accordion-btn-focus-box-shadow:none;--bs-accordion-active-bg:var(--butter2);--bs-accordion-active-color:var(--ink);--bs-accordion-border-radius:0;--bs-accordion-inner-border-radius:0}
.accordion-button{font-family:'Bitter',serif;font-weight:700;font-size:1.15rem}
.accordion-item{border-left:0;border-right:0}
/* areas */
.towns{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:1.2rem 0 0}
.towns li{border:2px solid var(--ink);padding:.25rem .8rem;font-weight:700;background:#fff}
.towns li.home{background:var(--butter)}
/* contact */
.contact{background:var(--butter);border-top:2px solid var(--ink)}
.contact .card-c{background:var(--paper);border:2px solid var(--ink);padding:2rem;height:100%}
.contact .phone{font-family:'Bitter',serif;font-weight:800;font-size:clamp(1.9rem,4vw,2.8rem);text-decoration:none;display:block;line-height:1.1}
.contact a.em{display:block;font-weight:700;text-decoration:none;border-bottom:1px solid var(--line);padding:.4rem 0}
.contact a.em:hover{background:var(--butter2)}
.map{border:2px solid var(--ink);width:100%;height:100%;min-height:340px;display:block}
/* footer */
footer{background:var(--ink);color:#e9e2c8;padding:3rem 0 1.5rem;font-size:.95rem}
footer .chip{background:var(--paper);display:inline-block;padding:.4rem;border-radius:4px}
footer .chip img{width:84px;display:block}
footer h4{font-size:1rem;color:var(--butter);letter-spacing:.14em;text-transform:uppercase;font-family:'Figtree',sans-serif;font-weight:800}
footer a{text-decoration:none}
footer a:hover{color:var(--butter)}
footer ul{list-style:none;padding:0;margin:0}
footer li{margin:.3rem 0}
@media(max-width:991px){
 .hero{padding:2rem 0 3.6rem}.hero-photo{margin:2rem auto 0;max-width:380px}
 section{padding:3.6rem 0}
 .index li{grid-template-columns:1fr}
 .gal{grid-template-columns:repeat(2,1fr)}
 .gal figure:nth-child(9){grid-column:1/-1}
}
@media(max-width:575px){.gal{gap:.7rem}.navbar-brand{font-size:1.1rem}.util .hide-s{display:none}}
.hero .eyebrow,.contact .eyebrow{background:var(--ink);color:var(--butter)}
