:root{
  --paper:#EDF2F2; --card:#FFFFFF; --ink:#14232A; --ink-2:#3E565F;
  --rule:#D2DEDE; --teal:#0C6C7C; --teal-lt:#1393A6; --sand:#C9BBA6; --muted:#5E767F;
  --ok:#2E8B62;
  --s0:clamp(1rem,.96rem + .18vw,1.06rem);
  --s1:clamp(1.15rem,1.05rem + .5vw,1.35rem);
  --s2:clamp(1.6rem,1.35rem + 1.2vw,2.25rem);
  --s3:clamp(2.2rem,1.7rem + 2.4vw,3.4rem);
  --s4:clamp(2.7rem,1.8rem + 4.4vw,5.2rem);
}
*{box-sizing:border-box}
html{scroll-padding-top:90px}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Public Sans",system-ui,-apple-system,sans-serif;font-size:var(--s0);line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;font-variation-settings:"SOFT" 40,"WONK" 1;
  letter-spacing:-.015em;line-height:1.08;text-wrap:balance;margin:0}
p{margin:0}
a{color:inherit}
.wrap{width:min(1120px,90vw);margin-inline:auto}
.narrow{width:min(680px,90vw);margin-inline:auto}
.label{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--teal)}
:focus-visible{outline:2px solid var(--teal-lt);outline-offset:3px;border-radius:4px}

/* header */
.top{background:var(--paper);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:30}
.top .wrap{display:flex;align-items:center;gap:28px;height:76px}
.top img{height:30px;width:auto;display:block}
.tnav{display:flex;gap:26px;margin-left:auto;font-size:.93rem;color:var(--ink-2)}
.tnav a{text-decoration:none;padding-bottom:2px;border-bottom:1.5px solid transparent}
.tnav a:hover{border-color:var(--teal)}
.tel{font-family:Fraunces,serif;font-weight:600;font-size:1.1rem;color:var(--teal);text-decoration:none;white-space:nowrap}
@media(max-width:880px){.tnav{display:none}}

/* hero */
.hero{padding:clamp(48px,7vw,92px) 0 clamp(40px,5vw,64px)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:center}
@media(max-width:920px){.hero .wrap{grid-template-columns:1fr;gap:40px}}
h1{font-size:var(--s4);font-weight:700}
h1 span{color:var(--teal);font-style:italic;font-variation-settings:"SOFT" 80,"WONK" 1}
.hero p.lede{margin-top:24px;font-size:var(--s1);color:var(--ink-2);max-width:34ch;line-height:1.55}
.cta{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}
.btn{display:inline-block;padding:14px 26px;border-radius:2px;text-decoration:none;font-weight:600;font-size:.98rem;
  transition:background .18s ease,color .18s ease,transform .18s ease}
.btn.p{background:var(--teal);color:#fff}
.btn.p:hover{background:var(--ink);transform:translateY(-1px)}
.btn.s{border:1.5px solid var(--ink);color:var(--ink)}
.btn.s:hover{background:var(--ink);color:var(--paper)}

.shopfront{width:100%;height:auto;display:block;filter:drop-shadow(0 24px 40px rgba(20,35,42,.14))}

/* status strip */
.strip{border-block:1px solid var(--rule);background:var(--card)}
.strip .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:12px 40px;padding:18px 0}
.stat{display:flex;align-items:center;gap:10px;font-size:.94rem;color:var(--ink-2)}
.stat b{color:var(--ink);font-weight:600}
.pulse{width:9px;height:9px;border-radius:50%;background:var(--ok);flex:0 0 auto;box-shadow:0 0 0 0 rgba(46,139,98,.5);animation:p 2.6s infinite}
.pulse.off{background:var(--muted);animation:none}
@keyframes p{70%{box-shadow:0 0 0 9px rgba(46,139,98,0)}100%{box-shadow:0 0 0 0 rgba(46,139,98,0)}}
.rating{display:flex;align-items:center;gap:8px}
.rating .st{color:#C4923A;letter-spacing:.1em}

section{padding:clamp(56px,7vw,96px) 0}
.kicker{text-align:center;display:grid;gap:14px;margin-bottom:48px}
.kicker h2{font-size:var(--s3)}
.kicker p{color:var(--muted);max-width:52ch;margin-inline:auto}

/* three steps — a real sequence */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--rule);background:var(--card)}
@media(max-width:820px){.steps{grid-template-columns:1fr}}
.step{padding:34px 30px;border-right:1px solid var(--rule);display:grid;gap:12px;align-content:start}
.step:last-child{border-right:0}
@media(max-width:820px){.step{border-right:0;border-bottom:1px solid var(--rule)}.step:last-child{border-bottom:0}}
.step .n{font-family:Fraunces,serif;font-size:2.6rem;font-weight:700;color:var(--sand);line-height:1}
.step h3{font-size:var(--s1)}
.step p{color:var(--muted);font-size:.95rem}

/* what we fix — filter */
.chips{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-bottom:30px}
.chip{border:1.5px solid var(--rule);background:var(--card);color:var(--ink-2);border-radius:999px;
  padding:9px 18px;font:inherit;font-size:.9rem;cursor:pointer;transition:all .16s ease}
.chip:hover{border-color:var(--teal-lt)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.fixlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1px;background:var(--rule);
  border:1px solid var(--rule)}
.fix{background:var(--card);padding:22px 24px;display:grid;gap:5px;align-content:start}
.fix h4{margin:0;font-family:Fraunces,serif;font-weight:600;font-size:1.08rem}
.fix small{color:var(--muted);font-size:.86rem}
.fix .when{color:var(--teal);font-size:.82rem;font-weight:600;letter-spacing:.02em}

/* quotes */
.quotebox{background:var(--card);border:1px solid var(--rule);padding:clamp(34px,5vw,60px);text-align:center;position:relative}
.quotebox blockquote{margin:0;font-family:Fraunces,serif;font-size:clamp(1.3rem,1rem + 1.5vw,2rem);line-height:1.35;
  font-weight:400;font-variation-settings:"SOFT" 60,"WONK" 1;max-width:22ch;margin-inline:auto;text-wrap:balance}
.quotebox .who{margin-top:22px;color:var(--muted);font-size:.9rem}
.qnav{display:flex;justify-content:center;gap:8px;margin-top:28px}
.qnav button{width:9px;height:9px;border-radius:50%;border:0;background:var(--rule);cursor:pointer;padding:0;transition:background .2s}
.qnav button[aria-current="true"]{background:var(--teal)}

/* faq */
details{border-bottom:1px solid var(--rule);background:transparent}
details summary{cursor:pointer;list-style:none;padding:22px 36px 22px 0;position:relative;
  font-family:Fraunces,serif;font-weight:600;font-size:1.12rem}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";position:absolute;right:6px;top:20px;font-size:1.5rem;color:var(--teal);font-family:"Public Sans",sans-serif;transition:transform .2s ease}
details[open] summary::after{transform:rotate(45deg)}
details .a{padding:0 0 24px;color:var(--ink-2);max-width:62ch}

/* find */
.find{display:grid;grid-template-columns:1.1fr .9fr;gap:1px;background:var(--rule);border:1px solid var(--rule)}
@media(max-width:820px){.find{grid-template-columns:1fr}}
.find>div{background:var(--card);padding:clamp(28px,4vw,44px)}
.find h3{font-size:var(--s2);margin-bottom:16px}
.addr{font-size:1.12rem;line-height:1.75}
.hours{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:.96rem}
.hours td{padding:10px 0;border-bottom:1px solid var(--rule)}
.hours td:last-child{text-align:right;color:var(--ink-2)}
.hours tr.today td{color:var(--teal);font-weight:600}
.hours tr:last-child td{border-bottom:0}

footer.site{border-top:1px solid var(--rule);padding:32px 0;color:var(--muted);font-size:.86rem}
footer.site .wrap{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}

/* mobile call bar */
.callbar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:none;background:var(--teal);color:#fff;
  text-align:center;padding:15px;text-decoration:none;font-weight:600;letter-spacing:.01em}
@media(max-width:700px){.callbar{display:block} body{padding-bottom:56px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* sub-pages */
.crumb{font-size:.85rem;color:var(--muted)}
.crumb a{color:var(--muted)}
.page h1{font-size:var(--s3)}
.page .lede{margin-top:20px;font-size:var(--s1);color:var(--ink-2);max-width:46ch;line-height:1.55}
.prose h2{font-size:var(--s2);margin:48px 0 16px}
.prose p{color:var(--ink-2);margin-bottom:14px;max-width:64ch}
.prose ul,.prose ol{color:var(--ink-2);padding-left:1.2em;max-width:64ch;margin:0 0 14px}
.prose li{margin-bottom:8px}
.prose li b{color:var(--ink)}
.prose a{color:var(--teal)}
.related{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.related a{border:1.5px solid var(--rule);background:var(--card);border-radius:999px;padding:8px 16px;text-decoration:none;font-size:.9rem}
.related a:hover{border-color:var(--teal-lt)}

/* contact form */
.cform{display:grid;gap:16px}
.cform label{display:grid;gap:6px;font-size:.9rem;font-weight:600;color:var(--ink-2)}
.cform input,.cform select,.cform textarea{font:inherit;font-weight:400;color:var(--ink);background:var(--card);
  border:1.5px solid var(--rule);border-radius:2px;padding:12px 14px;width:100%}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:2px solid var(--teal-lt);outline-offset:1px;border-color:var(--teal-lt)}
.cform textarea{min-height:130px;resize:vertical}
.cform .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:600px){.cform .row{grid-template-columns:1fr}}
.cform .hp{position:absolute;left:-9999px}
.cform .note{font-size:.84rem;color:var(--muted)}
.cform button{border:0;cursor:pointer;justify-self:start}
