:root{
  --ink:#1A1C1A;
  --vine:#2F4536;
  --terra:#96462C;
  --paper:#F6F5F0;
  --card:#FCFBF7;
  --rule:#C9C5B9;
  --rule2:#E4E0D6;
  --mute:#45443E;
  --acc:#E8A302;
  --accd:#8A6000;
  --disp:"Andada Pro",Georgia,serif;
  --body:"Source Sans 3",Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;font-weight:400;line-height:1.62}
a{color:var(--terra)}
img{max-width:100%}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:12px 18px;z-index:99;min-height:44px}
.skip:focus{left:8px;top:8px}
:focus-visible{outline:2px solid var(--terra);outline-offset:3px}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px}

/* masthead + nav */
.mast{background:var(--card);border-bottom:1px solid var(--rule);position:relative;z-index:40}
.mast .top{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:78px;flex-wrap:wrap}
.ident{display:flex;align-items:center;gap:13px;text-decoration:none}
.mark{width:36px;height:36px;flex:0 0 36px;border:1px solid var(--vine);position:relative;background:var(--paper)}
.mark i{position:absolute;display:block;background:var(--vine)}
.mark i:nth-child(1){left:7px;top:6px;width:2px;height:24px}
.mark i:nth-child(2){left:9px;top:10px;width:9px;height:2px;background:var(--terra)}
.mark i:nth-child(3){left:9px;top:18px;width:14px;height:2px}
.mark i:nth-child(4){left:9px;top:26px;width:9px;height:2px;background:var(--terra)}
.ident b{display:block;font-family:var(--disp);font-weight:700;font-size:20px;line-height:1.08;letter-spacing:-.005em;color:var(--ink)}
.ident span{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.mast a.call{font-family:var(--mono);font-size:13.5px;font-weight:700;letter-spacing:.05em;color:#fff;background:var(--vine);padding:12px 17px;text-decoration:none;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}
.mast a.call:hover{background:var(--ink)}

nav.primary{border-top:1px solid var(--rule2)}
nav.primary ul.menu{list-style:none;display:flex;gap:2px;margin:0;padding:0;flex-wrap:wrap}
nav.primary ul.menu>li{position:relative}
nav.primary ul.menu>li>a,nav.primary ul.menu>li>button{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--vine);text-decoration:none;padding:13px 14px;min-height:44px;background:none;border:0;cursor:pointer;font-weight:600}
nav.primary ul.menu>li>a:hover,nav.primary ul.menu>li>button:hover,nav.primary ul.menu>li.open>button{background:var(--acc);color:var(--ink)}
nav.primary .care{font-size:10px}
.drop{position:absolute;left:0;top:100%;background:var(--card);border:1px solid var(--rule);min-width:260px;list-style:none;margin:0;padding:6px;display:none;box-shadow:0 10px 24px rgba(0,0,0,.09);z-index:30}
nav.primary ul.menu>li.open .drop{display:block}
.drop li a{display:block;padding:10px 12px;font-family:var(--body);font-size:15px;color:var(--ink);text-decoration:none;min-height:40px;line-height:1.3}
.drop li a:hover{background:var(--paper);color:var(--terra)}
.drop li.seeall a{font-family:var(--mono);font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--terra);border-top:1px solid var(--rule2);margin-top:4px}
#navToggle{display:none}
.navBtn{display:none}

/* hero */
.hero{padding:46px 0 40px;border-bottom:3px solid var(--ink)}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.19em;text-transform:uppercase;color:var(--terra);margin:0 0 13px}
.eyebrow:after{content:"";display:inline-block;vertical-align:middle;width:40px;height:3px;background:var(--acc);margin:0 0 2px 12px}
h1{font-family:var(--disp);font-weight:700;font-size:clamp(28px,5vw,44px);line-height:1.12;margin:0 0 15px;max-width:26ch;letter-spacing:-.012em}
.lede{font-size:18.5px;max-width:60ch;margin:0 0 24px;color:#34332D}
.cta{display:flex;flex-wrap:wrap;gap:13px;align-items:center}
.btn{background:var(--acc);color:var(--ink);text-decoration:none;font-family:var(--mono);font-weight:700;font-size:14px;letter-spacing:.06em;padding:15px 22px;min-height:48px;display:inline-flex;align-items:center;text-transform:uppercase;border:0;cursor:pointer}
.btn:hover{background:#C98D00}
.btn.alt{background:none;color:var(--ink);border:1px solid var(--ink)}
.btn.alt:hover{background:var(--ink);color:#fff}
.trust{display:flex;gap:18px;flex-wrap:wrap;margin-top:20px;font-family:var(--mono);font-size:12.5px;letter-spacing:.04em;color:var(--mute)}

h2{font-family:var(--disp);font-weight:700;font-size:clamp(22px,3vw,29px);line-height:1.16;margin:0 0 7px;letter-spacing:-.01em}
h3{font-family:var(--disp);font-weight:600}
.sect{padding:42px 0;border-bottom:1px solid var(--rule)}
.sect.alt{background:var(--card)}
.sh{margin-bottom:26px}
.sh p{margin:0;color:var(--mute);font-size:16px}

/* breadcrumb */
.crumb{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--mute);padding:14px 0 0}
.crumb a{color:var(--terra);text-decoration:none}

/* index/search list (homepage symptom finder) */
.toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--ink);border-bottom:1px solid var(--rule2);padding:14px 0}
.srch{flex:1 1 280px;display:flex;align-items:center;gap:10px;border:1px solid var(--rule);background:var(--card);padding:0 14px;min-height:48px}
.srch input{flex:1;border:0;background:none;font-family:var(--body);font-size:17px;color:var(--ink);min-height:46px;outline:none}
.srch .ico{width:12px;height:12px;border:1.5px solid var(--mute);border-radius:50%;flex:0 0 12px}
.count{font-family:var(--mono);font-size:12px;letter-spacing:.11em;text-transform:uppercase;color:var(--mute)}
.alpha{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--rule2)}
.alpha a,.alpha span{font-family:var(--mono);font-size:12px;letter-spacing:.06em;padding:11px 12px;min-height:44px;display:inline-flex;align-items:center;text-decoration:none;color:var(--vine);border-right:1px solid var(--rule2)}
.alpha span{color:var(--rule)}
.alpha a:hover,.alpha a:focus,.alpha a:active{background:var(--acc);color:var(--ink)}

.idx{margin:0;padding:0;list-style:none;border-bottom:1px solid var(--ink)}
.grp{font-family:var(--disp);font-weight:700;font-size:15px;letter-spacing:.1em;color:var(--terra);
  border-bottom:1px solid var(--rule2);padding:16px 0 7px;position:relative}
.grp:before{content:"";position:absolute;left:-14px;top:18px;bottom:7px;width:2px;
  background-image:repeating-linear-gradient(0deg,var(--acc) 0 5px,transparent 5px 11px);
  animation:trickle 4.6s linear infinite}
@keyframes trickle{to{background-position:0 11px}}
.ent{display:grid;grid-template-columns:minmax(0,1fr) 190px;column-gap:26px;border-bottom:1px solid var(--rule2);padding:14px 0;align-items:baseline}
.ent h3{font-size:18px;margin:0 0 3px;line-height:1.24}
.ent p{margin:0;font-size:15.8px;color:#34332D;max-width:64ch}
.ent .svc{font-family:var(--mono);font-size:12px;letter-spacing:.11em;text-transform:uppercase;color:var(--mute);text-align:right}
.ent.off{display:none}
.empty{padding:26px 0;color:var(--mute);font-size:16px;border-bottom:1px solid var(--ink)}
.empty.off{display:none}

/* services as a plain ruled list */
.svcs{border-top:1px solid var(--ink)}
.srow{display:grid;grid-template-columns:36px minmax(0,1fr) 150px;column-gap:20px;border-bottom:1px solid var(--rule2);padding:16px 0;align-items:baseline}
.srow .n{font-family:var(--mono);font-size:12px;color:var(--accd)}
.srow h3{font-size:19px;margin:0 0 3px}
.srow p{margin:0;font-size:15.8px;color:#34332D;max-width:62ch}
.srow .m{font-family:var(--mono);font-size:12px;letter-spacing:.11em;text-transform:uppercase;color:var(--mute);text-align:right}
a.rowlink{text-decoration:none;color:inherit;display:contents}
.ent a.rowlink:hover h3,.srow a.rowlink:hover h3{color:var(--terra)}

/* local facts */
.local{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0;border-top:1px solid var(--ink);border-left:1px solid var(--rule2)}
.local div{border-right:1px solid var(--rule2);border-bottom:1px solid var(--rule2);padding:18px 20px}
.local h3{font-family:var(--mono);font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--terra);margin:0 0 8px;font-weight:400}
.local p{margin:0;font-size:15.8px;color:#34332D}

/* area grid - linked */
.areas{display:flex;flex-wrap:wrap;border-top:1px solid var(--ink);border-left:1px solid var(--rule2)}
.areas a,.areas .chip{font-family:var(--mono);font-size:12px;letter-spacing:.07em;padding:13px 15px;border-right:1px solid var(--rule2);border-bottom:1px solid var(--rule2);flex:1 1 160px;color:#34332D;text-decoration:none;display:flex;align-items:center;justify-content:space-between;gap:6px}
.areas a:hover{background:var(--card);color:var(--terra)}
.areas a .d,.areas .chip .d{color:var(--mute);font-size:11px}

/* safety checklist */
.checklist{list-style:none;margin:0;padding:0}
.checklist li{position:relative;padding:12px 0 12px 32px;border-bottom:1px solid var(--rule2);font-size:16px}
.checklist li:first-child{border-top:1px solid var(--rule2)}
.checklist li:before{content:"";position:absolute;left:0;top:18px;width:14px;height:14px;border:2px solid var(--terra);border-radius:3px}

/* services index rows */
.svc-row{padding:18px 0;border-bottom:1px solid var(--rule2);display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 18px}
.svc-row:first-of-type{border-top:1px solid var(--rule2)}
.svc-name{font-family:var(--disp);font-weight:700;font-size:19px;color:var(--ink);text-decoration:none;flex:1 1 auto;min-width:160px;max-width:100%}
.svc-name:hover{color:var(--terra)}
.svc-blurb{margin:0;color:var(--mute);font-size:15px;flex:1 1 320px}

/* cost table */
.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.costtable{border-top:1px solid var(--ink);width:100%;border-collapse:collapse}
.costtable th,.costtable td{text-align:left;border-bottom:1px solid var(--rule2);padding:13px 10px;font-size:15.5px}
.costtable th{font-family:var(--mono);font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--mute);font-weight:600}
.costtable td.range{font-family:var(--mono);font-weight:700;color:var(--accd);white-space:nowrap}
.costnote{margin-top:16px;padding:14px 16px;background:var(--card);border:1px solid var(--rule2);font-size:14.5px;color:var(--mute)}

details{border-bottom:1px solid var(--rule2)}
details:first-of-type{border-top:1px solid var(--ink)}
summary{cursor:pointer;padding:16px 38px 16px 0;font-family:var(--disp);font-weight:600;font-size:18px;position:relative;min-height:44px;display:flex;align-items:center;list-style:none;line-height:1.3}
summary::-webkit-details-marker{display:none}
summary:after{content:"+";position:absolute;right:4px;font-family:var(--mono);font-weight:700;color:var(--accd);font-size:18px}
details[open] summary:after{content:"\2013"}
.ans{padding:0 0 18px}
.ans p{margin:0;font-size:15.8px;color:#34332D}

/* NAP / map */
.napgrid{display:grid;grid-template-columns:1.1fr 1fr;gap:28px}
.mapwrap{border:1px solid var(--rule);background:var(--card);min-height:260px}
.mapwrap iframe{width:100%;height:100%;min-height:260px;border:0;display:block}
@media(max-width:760px){.napgrid{grid-template-columns:1fr}}

footer{background:var(--vine);color:#BCC6BE;padding:38px 0 96px;font-size:15px}
footer b{color:#fff;font-family:var(--disp);font-size:19px}
footer a{color:#EDBDA6;text-decoration:none}
footer a:hover{text-decoration:underline}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}
footer h4{color:#fff;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px;font-weight:600}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin-bottom:7px}
.legal{margin-top:24px;padding-top:15px;border-top:1px solid #3F5646;font-family:var(--mono);font-size:13px;letter-spacing:.03em;line-height:1.85;color:#8DA093}
.bar{position:fixed;left:0;right:0;bottom:0;background:var(--acc);display:none;z-index:50}
.bar a{display:flex;align-items:center;justify-content:center;min-height:56px;color:var(--ink);text-decoration:none;font-family:var(--mono);font-weight:700;font-size:15px;letter-spacing:.06em;text-transform:uppercase}

@media(max-width:900px){
  nav.primary{display:none}
  .navBtn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--ink);background:none;cursor:pointer}
  .navBtn span{display:block;width:20px;height:2px;background:var(--ink);position:relative}
  .navBtn span:before,.navBtn span:after{content:"";position:absolute;left:0;width:20px;height:2px;background:var(--ink)}
  .navBtn span:before{top:-6px}.navBtn span:after{top:6px}
  #navToggle:checked ~ nav.primary{display:block;position:static}
  #navToggle:checked ~ nav.primary ul.menu{flex-direction:column}
  #navToggle:checked ~ nav.primary .drop{position:static;display:block;border:0;box-shadow:none;padding-left:14px}
  #navToggle:checked ~ nav.primary ul.menu>li.open>button{background:none;color:var(--vine)}
}
@media(max-width:760px){
  .ent,.srow{grid-template-columns:minmax(0,1fr);row-gap:6px}
  .ent .svc,.srow .m{text-align:left}
  .srow .n{display:none}
  .grp:before{left:-8px}
  .mast a.call{display:none}
  .bar{display:block}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto}}

a[href^="tel:"]{display:inline-flex;align-items:center;min-height:44px}

/* stage 2: photographs and brand */
.brandmark{display:block;height:50px;width:auto;flex:0 0 auto}
.flogo{display:inline-block;background:#fff;border-radius:10px;padding:10px 14px;margin-bottom:16px}
.flogo img{display:block;height:68px;width:auto}
.photo{margin:26px auto;padding:0}
.photo img{display:block;width:100%;height:auto;object-fit:contain;border:1px solid var(--rule);background:var(--card)}
.photo figcaption{font-size:14.5px;line-height:1.45;color:var(--mute);margin-top:8px;max-width:70ch}
.photo.hero{margin:22px auto 8px}
.photo.hero img{aspect-ratio:16/9;object-fit:cover}
@media(max-width:600px){.photo.hero img{aspect-ratio:4/3}.brandmark{height:42px}.flogo img{height:56px}}
