:root{--primary:#8c2f1b;--accent:#f2c14e;--on-accent:#1b1f24;--on-primary:#ffffff}
/* Local trade business look: bold type, strong phone number, solid color blocks, no gradients,
   no stock-photo hero, no animations. Colors come from --primary / --accent set per site. */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:17px/1.6 Arial,Helvetica,sans-serif;color:#1b1f24;background:#fff}
a{color:var(--primary)}
img,svg{max-width:100%}
h1,h2,h3{font-family:"Arial Black","Arial Bold",Arial,Helvetica,sans-serif;line-height:1.2;margin:0 0 .5em}
h1{font-size:clamp(28px,4.4vw,44px)}
h2{font-size:clamp(22px,3vw,30px);margin-top:1.4em}
h3{font-size:20px;margin-top:1.2em}
p{margin:0 0 1em}
ul{padding-left:1.2em}
li{margin:.3em 0}
.wrap{max-width:1140px;margin:0 auto;padding:0 18px}
.ic{vertical-align:-5px}

/* top bar + header */
.topbar{background:#1b1f24;color:#fff;font-size:14px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:7px;padding-bottom:7px}
.topbar a{color:#fff;font-weight:bold;text-decoration:none}
header.site{background:#fff;border-bottom:4px solid var(--primary)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:12px;padding-bottom:12px}
.logo img{height:58px;width:auto;display:block}
nav.main{display:flex;gap:20px;font-weight:bold;font-size:15px}
nav.main a{color:#1b1f24;text-decoration:none}
nav.main a:hover{color:var(--primary)}
.callbtn{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;font-weight:bold;
  text-decoration:none;padding:12px 18px;border-radius:6px;font-size:18px;white-space:nowrap;border:0;cursor:pointer}
.callbtn:hover{filter:brightness(.95)}
.callbtn.alt{background:#fff;color:var(--primary);border:2px solid #fff}

/* hero */
.hero{background:var(--primary);color:#fff}
.hero .wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:36px;padding-top:42px;padding-bottom:42px;align-items:center}
.hero h1{color:#fff}
.hero .lead{font-size:19px;max-width:620px}
.checks{list-style:none;padding:0;margin:18px 0 24px}
.checks li{display:flex;gap:10px;align-items:center;font-weight:bold}
.checks .ic{color:var(--accent);background:#fff;border-radius:50%;padding:3px}
.btnrow{display:flex;gap:12px;flex-wrap:wrap}

/* form card */
.card{background:#fff;color:#1b1f24;border-radius:8px;padding:22px;box-shadow:0 2px 0 rgba(0,0,0,.15)}
.card h2{font-size:22px;margin:0 0 4px}
.card p.small{font-size:14px;color:#555;margin-bottom:12px}
form.lead label{display:block;font-size:14px;font-weight:bold;margin:10px 0 4px}
form.lead input,form.lead select,form.lead textarea{width:100%;font:16px Arial,Helvetica,sans-serif;padding:11px;border:1px solid #b9c0c8;border-radius:5px}
form.lead textarea{min-height:80px}
form.lead button{width:100%;justify-content:center;margin-top:14px}
form.lead .consent{font-size:12px;color:#555;margin-top:10px}
.hp{position:absolute;left:-5000px}

/* sections */
section.band{padding:44px 0}
section.band.grey{background:#f3f5f7}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.svc{display:block;background:#fff;border:1px solid #dfe3e8;border-top:4px solid var(--accent);border-radius:6px;padding:18px;color:#1b1f24;text-decoration:none}
.svc:hover{border-color:var(--primary)}
.svc .ic{color:var(--primary)}
.svc h3{margin:.4em 0 .3em;font-size:19px}
.svc p{font-size:15px;margin:0}
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.step{background:#fff;border-radius:6px;padding:18px;border:1px solid #dfe3e8}
.step b{display:inline-block;background:var(--primary);color:#fff;width:32px;height:32px;border-radius:50%;text-align:center;line-height:32px;margin-bottom:8px}
.areas{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0}
.areas a,.areas span{display:inline-flex;gap:6px;align-items:center;background:#fff;border:1px solid #dfe3e8;padding:8px 12px;border-radius:20px;text-decoration:none;color:#1b1f24;font-weight:bold;font-size:15px}
.content{max-width:820px}
.content table{border-collapse:collapse;width:100%;margin:1em 0;font-size:15px}
.content th,.content td{border:1px solid #dfe3e8;padding:8px 10px;text-align:left}
.content th{background:#f3f5f7}
.two{display:grid;grid-template-columns:1fr 340px;gap:36px;align-items:start}
.side .card{border:1px solid #dfe3e8;position:sticky;top:16px}
details{border-bottom:1px solid #dfe3e8;padding:12px 0}
summary{font-weight:bold;cursor:pointer}
.crumbs{font-size:14px;color:#555;padding-top:12px}
.crumbs a{color:#555}
.ctaband{background:var(--accent);color:#fff;text-align:center;padding:30px 0}
.ctaband h2{margin:0 0 12px;color:#fff}
.ctaband .callbtn{background:#fff;color:var(--accent)}

/* footer */
footer.site{background:#1b1f24;color:#d7dce1;font-size:15px;padding:36px 0 90px}
footer.site .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:24px}
footer.site a{color:#fff;text-decoration:none}
footer.site h4{color:#fff;margin:0 0 8px;font-size:15px;text-transform:uppercase;letter-spacing:.06em}
footer.site ul{list-style:none;padding:0;margin:0}
footer.site .disc{border-top:1px solid #39424c;margin-top:24px;padding-top:16px;font-size:13px;color:#aab3bc}
.mobilecall{display:none}

@media(max-width:900px){
  nav.main{display:none}
  .hero .wrap,.two{grid-template-columns:1fr}
  .grid3,.steps{grid-template-columns:1fr}
  footer.site .cols{grid-template-columns:1fr 1fr}
  .logo img{height:46px}
  header .callbtn{display:none}
  .mobilecall{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:9;background:#1b1f24;padding:8px;gap:8px}
  .mobilecall a{flex:1;justify-content:center;font-size:16px;padding:12px}
  .side .card{position:static}
}
@media(max-width:480px){.topbar .wrap span.serv{display:none} footer.site .cols{grid-template-columns:1fr}}

/* ---- v2 (9 Nov): compact hero, visual content blocks, FAQ cards ---- */
.topbar .wrap{padding-top:5px;padding-bottom:5px}
header.site .wrap{padding-top:8px;padding-bottom:8px}
.logo img{height:50px}
.hero .wrap{padding-top:26px;padding-bottom:26px;gap:32px;align-items:start}
.hero h1{font-size:clamp(26px,3vw,36px);margin-bottom:.35em}
.hero .lead{font-size:17px;margin-bottom:.6em}
.checks{margin:10px 0 16px}
.checks li{margin:.2em 0}
.card{padding:16px 18px}
.card h2{font-size:20px}
.card p.small{font-size:13px;margin-bottom:6px}
form.lead label{margin:6px 0 3px;font-size:13px}
form.lead input,form.lead select,form.lead textarea{padding:9px}
form.lead textarea{min-height:52px}
form.lead button{margin-top:10px;padding:11px}
form.lead .consent{margin-top:6px;font-size:11px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:10px}

.content.wide{max-width:1140px}
.content.wide>p,.content.wide>h2,.content.wide>ul.ticks{max-width:860px}
.introband{padding:34px 0 10px}
.introband p{font-size:19px;max-width:880px}
section.band h2{margin-top:0}

/* stat tiles */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:18px 0 22px}
.stat{background:#fff;border:1px solid #dfe3e8;border-left:5px solid var(--accent);border-radius:6px;padding:14px 16px}
.stat b{display:block;font:900 30px/1.1 "Arial Black",Arial,sans-serif;color:var(--primary)}
.stat span{display:block;font-size:15px;margin-top:4px}
/* point cards (bold-led lists) */
.points{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:16px 0 22px}
.point{background:#fff;border:1px solid #dfe3e8;border-top:4px solid var(--primary);border-radius:6px;padding:14px 16px}
.point h4{margin:0 0 6px;font-size:16px}
.point p{margin:0;font-size:15px}
/* topic cards (### groups) */
.tcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:14px}
.tcard{background:#fff;border:1px solid #dfe3e8;border-radius:8px;padding:18px}
.tcard h3{margin:0 0 8px;font-size:18px;color:var(--primary)}
.tcard p{font-size:15.5px}
.tcard p:last-child{margin-bottom:0}
/* numbered steps */
ol.numbered{list-style:none;padding:0;display:grid;gap:10px;margin:16px 0 22px}
ol.numbered li{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid #dfe3e8;border-radius:6px;padding:12px 14px;margin:0}
ol.numbered .n{flex:none;background:var(--accent);color:#fff;font-weight:bold;width:30px;height:30px;border-radius:50%;text-align:center;line-height:30px}
/* tick lists */
ul.ticks{list-style:none;padding:0}
ul.ticks li{position:relative;padding-left:28px}
ul.ticks li:before{content:"";position:absolute;left:4px;top:.45em;width:12px;height:7px;border-left:3px solid var(--accent);border-bottom:3px solid var(--accent);transform:rotate(-45deg)}
/* tables */
.content table{background:#fff;border-radius:6px;overflow:hidden}
.content th{background:var(--primary);color:#fff;border-color:var(--primary)}
.content tr:nth-child(even) td{background:#f7f9fb}
/* mid-page call strip */
.midcta{background:var(--primary);color:#fff;padding:22px 0}
.midcta .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.midcta p{margin:0;font:900 22px/1.3 "Arial Black",Arial,sans-serif}
.midcta .btnrow,.midcta .wrap{gap:12px}
/* FAQ */
.faqlayout{display:grid;grid-template-columns:1fr 300px;gap:30px;align-items:start}
.faqs{display:grid;gap:12px}
.faqs.two-col{grid-template-columns:1fr 1fr;align-items:start}
details.faq{background:#fff;border:1px solid #dfe3e8;border-radius:8px;padding:0}
details.faq summary{list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;font-size:16px}
details.faq summary::-webkit-details-marker{display:none}
details.faq .pm{flex:none;width:26px;height:26px;border-radius:50%;background:var(--primary);position:relative}
details.faq .pm:before,details.faq .pm:after{content:"";position:absolute;left:7px;top:12px;width:12px;height:2px;background:#fff}
details.faq .pm:after{transform:rotate(90deg)}
details.faq[open] .pm:after{display:none}
details.faq[open]{border-color:var(--primary)}
details.faq .ans{padding:0 16px 14px}
details.faq .ans p{margin:0;font-size:15.5px}
.faqband{background:#f3f5f7}
.faqside{background:var(--primary);color:#fff;border-radius:8px;padding:20px;position:sticky;top:16px}
.faqside h3{color:#fff;margin-top:0}
.faqside .callbtn{width:100%;justify-content:center;margin-top:10px}
.callbtn.ghost{background:transparent;border:2px solid #fff;color:#fff}
.howband{padding:30px 0}
.areasband{background:#f3f5f7}
@media(max-width:900px){
  .faqlayout,.faqs.two-col{grid-template-columns:1fr}
  .faqside{position:static}
  .frow{grid-template-columns:1fr}
  .midcta p{font-size:19px}
}

/* ---- v3 (9 Nov): contrast-safe colours + real mobile layout ---- */
.callbtn{color:var(--on-accent)}
.callbtn.alt{background:#fff;color:var(--primary)}
.callbtn.ghost{color:#fff}
.checks .ic{color:var(--primary)}
ol.numbered .n{color:var(--on-accent)}
.ctaband{color:var(--on-accent)}
.ctaband h2{color:var(--on-accent)}
.ctaband .callbtn{background:var(--primary);color:#fff}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1em 0}
.tablewrap table{margin:0;min-width:520px}
details.more{border:0;padding:0}
details.more>summary{display:none}

@media(max-width:760px){
  body{font-size:16px;line-height:1.55}
  .wrap{padding:0 16px}
  .topbar{display:none}
  header.site{border-bottom-width:3px}
  header.site .wrap{padding-top:8px;padding-bottom:8px}
  .logo img{height:40px}
  h1{font-size:25px;line-height:1.2}
  h2{font-size:21px}
  h3{font-size:17px}
  .hero .wrap{padding-top:18px;padding-bottom:20px;gap:18px}
  .hero h1{font-size:25px}
  .hero .lead{font-size:16px;line-height:1.5}
  .checks{margin:10px 0 14px}
  .checks li{font-size:15px;margin:.25em 0}
  .btnrow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .btnrow .callbtn{justify-content:center;font-size:16px;padding:12px 10px;white-space:normal;text-align:center}
  .btnrow .callbtn:only-child{grid-column:1/-1}
  .card{padding:14px}
  .card h2{font-size:19px}
  section.band{padding:26px 0}
  .introband{padding:22px 0 4px}
  .introband p{font-size:16px}
  /* services: compact 2-up tiles */
  .grid3{grid-template-columns:1fr 1fr;gap:10px}
  .svc{padding:12px;border-top-width:3px}
  .svc h3{font-size:15px;margin:.3em 0 0}
  .svc p{display:none}
  .svc .ic{width:24px;height:24px}
  .steps{grid-template-columns:1fr;gap:8px}
  .step{display:flex;gap:12px;align-items:flex-start;padding:12px}
  .step b{flex:none;margin:0}
  .step h3{margin:0 0 2px;font-size:16px}
  .step p{margin:0;font-size:15px}
  /* content blocks */
  .content p,.tcard p,.point p{font-size:16px}
  .stats{grid-template-columns:1fr 1fr;gap:10px}
  .stat{padding:10px 12px}
  .stat b{font-size:22px}
  .stat span{font-size:13.5px;line-height:1.35}
  .points,.tcards{grid-template-columns:1fr;gap:10px}
  .tcard{padding:14px}
  .tcard h3{font-size:17px}
  ol.numbered li{padding:10px 12px}
  .content th,.content td{padding:7px 8px;font-size:14px}
  details.more>summary{display:inline-block;margin-top:4px;font-weight:bold;color:var(--primary);cursor:pointer;
    border:2px solid var(--primary);border-radius:6px;padding:8px 14px;font-size:15px;list-style:none}
  details.more>summary::-webkit-details-marker{display:none}
  details.more[open]>summary{display:none}
  .midcta{padding:18px 0}
  .midcta .wrap{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .midcta p{grid-column:1/-1;font-size:18px;color:var(--on-primary)}
  .midcta .callbtn{justify-content:center;font-size:16px;padding:12px 8px}
  .areas a,.areas span{font-size:14px;padding:6px 10px}
  details.faq summary{font-size:15px;padding:12px 14px}
  details.faq .ans p{font-size:15px}
  .faqside{padding:16px}
  .ctaband{padding:22px 0}
  .ctaband h2{font-size:20px}
  footer.site{font-size:14px;padding:26px 0 90px}
  footer.site .cols{grid-template-columns:1fr 1fr;gap:18px}
  footer.site .cols>div:first-child{grid-column:1/-1}
  .crumbs{font-size:13px}
  .two{gap:20px}
}

/* ---- v4 (9 Nov): hierarchy, sane button sizes, aligned steps, one-screen form ---- */
.hcall{display:none}
section.band h2:after,.introband h2:after{content:"";display:block;width:56px;height:4px;background:var(--accent);margin-top:10px;border-radius:2px}
.faqband h2:after{content:"";display:block;width:56px;height:4px;background:var(--accent);margin-top:10px;border-radius:2px}
.callbtn{font-size:17px;padding:11px 18px;border-radius:6px}
.svc .ic{color:var(--primary)}

@media(max-width:760px){
  /* header: logo left, small call button right */
  header.site .wrap{padding-top:10px;padding-bottom:10px;align-items:center}
  .logo{display:flex;align-items:center}
  .logo img{height:42px;width:auto}
  .hcall{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:var(--on-accent);text-decoration:none;
    font-weight:bold;font-size:15px;padding:8px 12px;border-radius:6px;flex:none}
  /* hero: one focal point */
  .hero .wrap{padding-top:20px;padding-bottom:22px;gap:16px}
  .hero h1{font-size:22px;line-height:1.25;margin-bottom:8px}
  .hero .lead{font-size:15px;line-height:1.5;opacity:.92;margin-bottom:10px}
  .checks{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
  .checks li{font-size:13px;font-weight:bold;background:rgba(255,255,255,.14);border-radius:14px;padding:4px 10px 4px 6px;margin:0;gap:6px}
  .checks .ic{width:14px;height:14px;padding:2px}
  .btnrow{display:block}
  .btnrow .callbtn{display:flex;width:100%;justify-content:center;font-size:17px;padding:12px 14px;min-height:46px}
  .btnrow .callbtn.alt{display:none}
  /* form: fits one phone screen */
  .card{padding:14px 14px 12px;border-radius:8px}
  .card h2{font-size:18px;margin-bottom:2px}
  .card p.small{display:none}
  form.lead label{font-size:12px;margin:8px 0 3px}
  form.lead input,form.lead select{padding:8px 10px;font-size:16px;height:42px}
  .frow{grid-template-columns:1fr 1fr;gap:8px}
  .fdetails{display:none}
  form.lead button{min-height:46px;font-size:16px;padding:10px;margin-top:12px}
  form.lead .consent{font-size:10.5px;line-height:1.35;margin-top:8px}
  /* sections: breathing room + clear headings */
  section.band{padding:32px 0}
  section.band h2,.faqband h2{font-size:21px;line-height:1.25;margin-bottom:14px}
  section.band h2:after{width:44px;height:3px;margin-top:8px}
  .grid3{gap:10px}
  .svc{padding:14px 12px;display:flex;flex-direction:column;gap:6px}
  /* how it works: number + title on one row, text below */
  .steps{grid-template-columns:1fr;gap:10px}
  .step{display:grid;grid-template-columns:32px 1fr;column-gap:12px;row-gap:4px;align-items:center;padding:14px}
  .step b{grid-row:1;grid-column:1;width:32px;height:32px;line-height:32px;margin:0}
  .step h3{grid-row:1;grid-column:2;margin:0;font-size:16px;line-height:1.3}
  .step p{grid-column:1/-1;margin:2px 0 0;font-size:15px;line-height:1.5;color:#3b4148}
  /* calmer content blocks */
  .tcards,.points{gap:12px}
  .tcard{padding:16px}
  .tcard h3{font-size:16.5px;margin-bottom:6px}
  .tcard p{font-size:15px;line-height:1.55}
  .content p{font-size:16px;line-height:1.6}
  .midcta p{font-size:17px;line-height:1.3}
  .midcta .callbtn{min-height:46px;font-size:15.5px;padding:10px 8px}
  /* sticky bar: normal-size buttons */
  .mobilecall{padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:8px}
  .mobilecall a{font-size:16px;padding:10px;min-height:44px}
  .faqside .callbtn{min-height:44px;font-size:16px}
}
/* grid children must be allowed to shrink (wide tables scroll inside .tablewrap instead) */
.two>*,.hero .wrap>*,.faqlayout>*{min-width:0}
/* clinic mode: Book is primary, Call stays visible on mobile */
@media(max-width:760px){.btnrow.clinicbtns{display:grid;grid-template-columns:1fr;gap:8px}.btnrow.clinicbtns .callbtn.alt{display:flex}}
.practice{background:#fff;border-top:4px solid var(--accent)}
.frow>div:only-child{grid-column:1/-1}
