:root{--sand:#EFE3CF;--sand2:#E6D6BB;--ink:#3B2A1E;--clay:#A9502F;--clay-d:#8A3F24;--sage:#DCE4D2;--paper:#F7EFE0;--line:#CDB994}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--sand);color:var(--ink);font:400 18px/1.65 Karla,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Archivo,system-ui,sans-serif;font-weight:800;line-height:1.08;letter-spacing:-.015em;margin:0 0 .5em}
h1{font-size:clamp(2.7rem,7.4vw,5.6rem);font-weight:900}
h2{font-size:clamp(1.9rem,4vw,2.9rem)}
h3{font-size:1.3rem}
p{margin:0 0 1.1em}
a{color:var(--clay-d)}
img{max-width:100%;display:block}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
.narrow{max-width:760px}
.center{text-align:center}
.small{font-size:.9rem}
.eyebrow{font:700 .85rem/1 Karla,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--clay-d);margin:0 0 1rem}
.ico{width:1.2em;height:1.2em;flex:none}
/* header */
.top{background:var(--sand);border-bottom:2px solid var(--ink);position:relative;z-index:5}
.topin{display:flex;align-items:center;gap:22px;padding-top:14px;padding-bottom:14px;flex-wrap:wrap}
.brand{font:900 1.25rem Archivo,sans-serif;color:var(--ink);text-decoration:none;margin-right:auto}
.menu,.sub{list-style:none;margin:0;padding:0}
.menu{display:flex;gap:22px;align-items:center}
.menu a{color:var(--ink);text-decoration:none;font-weight:700}
.menu a:hover{color:var(--clay)}
.has-sub{position:relative}
.sub{display:none;position:absolute;top:100%;left:-12px;min-width:230px;background:var(--paper);border:2px solid var(--ink);border-radius:3px;box-shadow:4px 4px 0 var(--ink);padding:8px 0;z-index:10}
.has-sub:hover .sub,.has-sub:focus-within .sub{display:block}
.sub a{display:block;padding:8px 16px}
.topcta{display:flex;gap:16px;align-items:center}
.topphone{font-weight:700;color:var(--ink);text-decoration:none}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font:700 1rem Karla,sans-serif;padding:13px 22px;border:2px solid var(--ink);border-radius:3px;text-decoration:none;box-shadow:4px 4px 0 var(--ink);cursor:pointer;transition:transform .08s,box-shadow .08s}
.btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.btn-solid{background:var(--clay);color:var(--sand)}
.btn-line{background:transparent;color:var(--ink)}
.btn-sm{padding:9px 16px}
.btnrow{display:flex;flex-wrap:wrap;gap:16px;margin-top:1.6rem}
.onbrown .btn{border-color:var(--sand);box-shadow:4px 4px 0 #1c120a}
.onbrown .btn-line{color:var(--sand)}
.more{font-weight:700;display:inline-flex;gap:6px;align-items:center}
.more .ico{width:1em}
/* hero */
.hero{padding:56px 0 28px}
.herogrid{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:center}
.herosub{font-size:1.25rem}
.herotext .herosub{max-width:34em;margin-top:1.2rem}
.arch{border:3px solid var(--ink);border-radius:999px 999px 6px 6px;overflow:hidden;box-shadow:8px 8px 0 var(--clay);background:var(--sand2)}
.arch img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
.arch-hero{max-width:400px;margin-left:auto}
.arch-hero img{aspect-ratio:3/4.4}
.ridge{color:var(--clay);padding:6px 0}
.ridge svg{display:block;width:100%;height:46px}
/* sections */
.sec{padding:54px 0}
.tint{background:var(--paper)}
.band.sage{background:var(--sage);padding:48px 0;border-block:2px solid var(--ink)}
.cleanband{display:grid;grid-template-columns:1.6fr .6fr;gap:30px;align-items:center}
.cleanlink{text-align:center}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:26px}
.card{background:var(--paper);border:2px solid var(--ink);border-radius:3px;overflow:hidden;box-shadow:5px 5px 0 var(--ink);display:flex;flex-direction:column}
.card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.cardbody{padding:18px;display:flex;flex-direction:column;flex:1}
.cardbody ul{padding-left:1.1em;margin:0 0 1em}
.cardbody .more{margin-top:auto}
.dgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin:26px 0}
.dblock{border-top:3px solid var(--clay);padding-top:14px}
.dblock .ico{width:2.2rem;height:2.2rem;color:var(--clay);margin-bottom:.4rem}
.bigline{font:800 clamp(1.3rem,3vw,2rem)/1.35 Archivo,sans-serif}
.closing{background:var(--ink);color:var(--sand);padding:70px 0;text-align:center}
.closing h2{font-size:clamp(2.2rem,5vw,3.8rem)}
.closing .btnrow{justify-content:center}
/* service pages */
.svhead{padding:52px 0 12px}
.svhead h1{font-size:clamp(2.4rem,6vw,4.4rem)}
.lede{font-size:1.4rem;line-height:1.5;max-width:34em}
.twocol{display:grid;grid-template-columns:1.2fr .8fr;gap:44px;align-items:center}
.ticks{list-style:none;padding:0;margin:0}
.ticks li{padding:9px 0 9px 32px;position:relative;border-bottom:1px solid var(--line)}
.ticks li:before{content:"";position:absolute;left:0;top:16px;width:14px;height:8px;border-left:3px solid var(--clay);border-bottom:3px solid var(--clay);transform:rotate(-45deg)}
.stampbox{background:var(--paper);border:3px solid var(--ink);border-radius:3px;box-shadow:8px 8px 0 var(--clay);padding:34px;max-width:820px}
.rel{padding-left:1.2em}
.areablock{border-top:3px solid var(--clay);padding-top:12px;margin-bottom:28px}
/* faq */
.faq details{border:2px solid var(--ink);border-radius:3px;background:var(--sand);margin-bottom:12px;padding:0 18px}
.faq summary{font:800 1.1rem Archivo,sans-serif;padding:16px 0;cursor:pointer}
/* form */
.form{display:grid;gap:16px}
.form label{font-weight:700;display:grid;gap:6px}
.form input,.form select,.form textarea{font:400 1rem Karla,sans-serif;padding:12px;border:2px solid var(--ink);border-radius:3px;background:#fff;color:var(--ink)}
.hp{position:absolute;left:-9999px}
/* footer */
.foot{background:var(--ink);color:var(--sand);padding:46px 0 24px;margin-top:20px}
.foot a{color:var(--sand)}
.footgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px}
.footbrand{font:900 1.3rem Archivo,sans-serif}
.footh{font:800 1rem Archivo,sans-serif;text-transform:none;margin-bottom:.5rem}
.foot ul{list-style:none;padding:0;margin:0}
.foot li{margin-bottom:.4rem}
.copy{margin-top:28px;padding-top:16px;border-top:1px solid #6a5545;font-size:.9rem}
.calltab{display:none}
@media (max-width:900px){
 .herogrid,.twocol,.cleanband{grid-template-columns:1fr}
 .cards,.dgrid{grid-template-columns:1fr 1fr}
 .arch-hero{margin:10px auto 0;max-width:320px}
 .footgrid{grid-template-columns:1fr}
 .topphone{display:none}
}
@media (max-width:640px){
 body{font-size:17px}
 .cards,.dgrid{grid-template-columns:1fr}
 .menu{gap:14px;font-size:.95rem;flex-wrap:wrap}
 .sub{left:0}
 .brand{width:100%}
 .calltab{display:block;position:fixed;right:0;top:45%;z-index:20;background:var(--clay);color:var(--sand);font:800 1rem Archivo,sans-serif;text-decoration:none;writing-mode:vertical-rl;padding:18px 9px;border:2px solid var(--ink);border-right:0;border-radius:3px 0 0 3px;box-shadow:-3px 3px 0 var(--ink)}
}
