/* Hooman on Demand — brand: Open Sans + teal #00B0AB / charcoal #404040 (from hoomanondemand.com). See BRAND.md */
@font-face{font-family:"Open Sans";font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(/assets/fonts/open-sans-latin.woff2) format("woff2")}
@font-face{font-family:"Open Sans";font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(/assets/fonts/open-sans-latin-italic.woff2) format("woff2")}
/* Colour scheme A "Clean & Bright" (approved by Michael 2026-10-25). Source: /workspace/color-options/schemes.py S["A"].
   Brand teal #00B0AB is a visible accent only (logo, wordmark, icons, on-dark accents); never under small text or white labels. */
:root{--bg:#FFFFFF;--bg-alt:#F2F8F8;--tint:#E6F7F6;--text:#3A3F3F;--muted:#5C6363;--heading:#1F2D2D;--h1:#00807C;--link:#00736F;--link-hover:#005C59;--btn-bg:#00807C;--btn-fg:#FFFFFF;--btn-bg-hover:#006B67;--btn-bg-active:#005C59;--btn-focus:#005C59;--sec-bg:#FFFFFF;--sec-fg:#00736F;--sec-border:#00807C;--border:#D5E3E2;--ui-border:#6F9391;--footer-bg:#1F2A2A;--footer-text:#E4ECEB;--footer-head:#4FD1CA;--footer-link:#FFFFFF;--topbar-bg:#1F2A2A;--cta-band:#1F2A2A;--cta-head:#4FD1CA;--step-bg:#00807C;--step-fg:#FFFFFF;--step-ring:#00807C;--badge-bg:#E6F7F6;--badge-fg:#005C59;--star:#B7791F;--highlight:#00B0AB;--brand:#00B0AB;--r:18px;--shadow:0 6px 24px rgba(0,0,0,.08);/* legacy aliases kept so older rules keep resolving */--ink:var(--text);--line:var(--border);--sand:var(--bg-alt);--teal:var(--brand);--teal-d:var(--btn-bg);--footer:var(--footer-bg);--on-brand:var(--btn-fg)}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:400 17px/1.65 "Open Sans","Open Sans Fallback",Arial,sans-serif;color:var(--text);background:var(--bg)}
img{max-width:100%;height:auto;display:block}
a{color:var(--link)}a:hover{color:var(--link-hover)}
:focus-visible{outline:3px solid var(--btn-focus);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--heading);color:var(--btn-fg);padding:.6rem 1rem;z-index:99}.skip:focus{left:.5rem}
.wrap{width:min(1140px,100% - 2rem);margin-inline:auto}
h1,h2,h3{line-height:1.2;letter-spacing:-.01em}h1{font-size:clamp(2rem,6vw,3.3rem);margin:.2em 0 .35em}h2{font-size:clamp(1.5rem,4vw,2.2rem);margin:1.6em 0 .5em}h3{font-size:1.2rem;margin:1.2em 0 .3em}
.eyebrow{display:inline-block;font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;color:var(--badge-fg);background:var(--badge-bg);padding:.25rem .7rem;border-radius:99px}
/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);background:color-mix(in srgb,var(--bg) 97%,transparent);backdrop-filter:saturate(1.4) blur(6px);border-bottom:1px solid var(--line)}
.hdr{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:66px}
.logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--heading);font-weight:900;font-size:1.15rem}.logo img{width:44px;height:44px;object-fit:contain}
.nav-toggle{background:none;color:var(--text);border:2px solid var(--ink);border-radius:10px;padding:.35rem .6rem;font:inherit;font-weight:800;cursor:pointer}
.nav{display:none;position:absolute;left:0;right:0;top:66px;background:var(--bg);border-bottom:1px solid var(--line);padding:1rem}
.nav.open{display:block}.nav ul{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}
.nav a{display:block;padding:.55rem .4rem;text-decoration:none;color:var(--ink);font-weight:700;border-radius:8px}.nav a:hover,.nav a[aria-current=page]{background:var(--tint)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.8rem 1.3rem;border-radius:99px;font-weight:800;text-decoration:none;border:2px solid transparent;transition:transform .15s}
.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--btn-bg);color:var(--btn-fg)}.btn-primary:hover{color:var(--btn-fg);background:var(--btn-bg-hover)}
.btn-ghost{border-color:var(--sec-border);color:var(--sec-fg);background:var(--sec-bg)}.btn-teal{background:var(--btn-bg);color:var(--btn-fg)}.btn-teal:hover{color:var(--btn-fg);background:var(--btn-bg-hover)}
.nav .btn{margin-top:.5rem;color:var(--btn-fg)}
@media(min-width:980px){.nav-toggle{display:none}.nav{display:block;position:static;padding:0;border:0;background:none}.nav ul{display:flex;align-items:center;gap:.1rem}.nav a{padding:.45rem .6rem;font-size:.95rem}.nav .btn{margin:0 0 0 .4rem;padding:.6rem 1rem}}
/* hero */
.hero{background:linear-gradient(160deg,var(--tint) 0%,var(--bg) 60%);padding:2.2rem 0 2.6rem;overflow:hidden}
.hero-grid{display:grid;gap:1.6rem;align-items:center}
.hero p.lead{font-size:1.15rem;color:var(--muted);max-width:38em}
.hero-img{object-position:50% 30%;border-radius:28px;box-shadow:var(--shadow);aspect-ratio:4/3;object-fit:cover;width:100%;background:var(--bg-alt)}
.cta-row{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.2rem 0}
.checks{list-style:none;padding:0;margin:1rem 0;display:grid;gap:.35rem}.checks li::before{content:"🐾";margin-right:.5rem}
@media(min-width:900px){.hero-grid{grid-template-columns:1.1fr .9fr}.hero{padding:3.5rem 0}}
/* sections */
section{padding:1.2rem 0}.band{background:var(--bg-alt);padding:2.4rem 0;margin:2rem 0}.band-teal{background:var(--cta-band);color:var(--footer-text)}.band-teal h2,.band-teal h3{color:var(--cta-head)}.band-teal a:not(.btn){color:var(--footer-link)}
.grid{display:grid;gap:1.1rem}@media(min-width:700px){.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(2,1fr)}}@media(min-width:1000px){.g4{grid-template-columns:repeat(4,1fr)}}
.card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:1.2rem;box-shadow:var(--shadow)}
.card h3{margin-top:.2em}.card img{border-radius:12px;margin-bottom:.7rem;aspect-ratio:4/3;object-fit:cover;width:100%}
.card.icon img{aspect-ratio:auto;object-fit:contain;max-height:150px;background:var(--brand)}
.card a.more{font-weight:800}
.price{font-size:2rem;font-weight:900;color:var(--link);margin:.2rem 0}.price small{font-size:.9rem;color:var(--muted);font-weight:700}
.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;background:var(--bg);border-radius:12px;overflow:hidden}th,td{padding:.75rem;border-bottom:1px solid var(--line);text-align:left}th{background:var(--tint);color:var(--heading)}
.steps{counter-reset:s;list-style:none;padding:0;display:grid;gap:1rem}@media(min-width:800px){.steps{grid-template-columns:repeat(3,1fr)}}
.steps li{counter-increment:s;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:1.2rem 1.2rem 1.2rem 4rem;position:relative}
.steps li::before{content:counter(s);position:absolute;left:1rem;top:1rem;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--step-bg);color:var(--step-fg);font-weight:900;display:grid;place-items:center}
.faq details{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:.9rem 1.1rem;margin:.6rem 0}.faq summary{font-weight:800;cursor:pointer}.faq summary h3{display:inline;font-size:1.05rem;margin:0}
.crumbs{font-size:.9rem;color:var(--muted);padding:.8rem 0 0}.crumbs ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.3rem}.crumbs li+li::before{content:"›";margin-right:.3rem}
.note{background:var(--tint);color:var(--text);border-left:5px solid var(--brand);padding:.8rem 1rem;border-radius:8px;font-size:.95rem}
.placeholder{background:#ffe9e3;color:#8a2c17;font-weight:700;padding:0 .25rem;border-radius:4px}
.badges{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}.badges img{height:52px;width:auto}
.prose{max-width:760px}.prose img{border-radius:16px;margin:1.2rem 0}.prose li{margin:.3rem 0}
.pill-list{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;padding:0}.pill-list li{background:var(--bg);border:1px solid var(--line);border-radius:99px;padding:.3rem .8rem;font-weight:700;font-size:.92rem}
.team{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}@media(min-width:800px){.team{grid-template-columns:repeat(4,1fr)}}.team figure{margin:0;text-align:center}.team img{border-radius:16px;aspect-ratio:1;object-fit:cover;width:100%}
.post-meta{color:var(--muted);font-size:.92rem}
.video{position:relative;aspect-ratio:16/9}.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:16px}
/* footer */
.site-footer{background:var(--footer-bg);color:var(--footer-text);margin-top:3rem;padding:2.5rem 0 1.5rem;font-size:.95rem}.site-footer a{color:var(--footer-link)}
.site-footer .cols{display:grid;gap:1.5rem}@media(min-width:800px){.site-footer .cols{grid-template-columns:1.3fr 1fr 1fr 1fr}}
.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin:.3rem 0}.site-footer h2{font-size:1rem;color:var(--footer-head);margin:0 0 .5rem}
.fine{border-top:1px solid #4A5555;border-top:1px solid color-mix(in srgb,var(--footer-text) 22%,var(--footer-bg));margin-top:1.5rem;padding-top:1rem;font-size:.85rem}
.sticky-cta{position:fixed;bottom:0;left:0;right:0;display:flex;gap:.5rem;padding:.6rem;background:var(--bg);border-top:1px solid var(--line);z-index:40}.sticky-cta .btn{flex:1;padding:.7rem}
@media(min-width:900px){.sticky-cta{display:none}}body{padding-bottom:70px}@media(min-width:900px){body{padding-bottom:0}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---- brand layer (matches hoomanondemand.com) ---- */
h1{color:var(--h1);font-weight:700}h2,h3,h4{color:var(--heading);font-weight:700}
.btn{font-weight:600;font-size:1.05rem;border-radius:50px;border:1px solid var(--bg);min-height:46px;padding:.65rem 1.6rem}
.btn-primary,.btn-teal{background:var(--btn-bg);color:var(--btn-fg)}.btn-primary:hover,.btn-teal:hover{background:var(--btn-bg-hover);color:var(--btn-fg);border-color:var(--bg)}
.btn-ghost{background:transparent;color:var(--sec-fg);border:1px solid var(--sec-border)}.btn-ghost:hover{color:var(--btn-bg-hover);border-color:var(--btn-bg-hover)}
.wordmark{font-family:"Open Sans",Arial,sans-serif;font-weight:700;letter-spacing:-.01em;color:var(--heading)}.wordmark b{color:var(--brand);font-weight:700}
.logo img{width:auto;height:46px}
.nav a[aria-current=page]{background:var(--tint);color:var(--link-hover)}
.site-footer{background:var(--footer-bg)!important;color:var(--footer-text)}.site-footer a{color:var(--footer-link)}.site-footer h2,.site-footer h3{color:var(--footer-head)}.site-footer .tagline{color:var(--footer-head)}
.prose a,main p a{color:var(--link)}.prose a:hover,main p a:hover{color:var(--link-hover)}
.motto{font-weight:700;font-size:1.25rem;color:var(--heading);margin:-.2rem 0 .6rem}.motto span{display:block;font-weight:400;font-size:1rem;color:var(--muted)}
h2{font-weight:700}
.eyebrow{background:var(--badge-bg);color:var(--badge-fg)}
/* H2 = Scheme A heading charcoal #1F2D2D (was sky blue #1A94F3, 3.19:1); dark band headings #4FD1CA */
main h2{color:var(--heading)}main .band h2,main .card h2{color:var(--heading)}main .band-teal h2{color:var(--cta-head)}
/* header per brand: white bar, black 400-weight nav, text wordmark */
.wordmark{white-space:nowrap;font-size:1.3rem}.logo img{height:52px}
.nav a{color:var(--text);font-weight:400;letter-spacing:.03em;white-space:nowrap}.nav a.btn{color:var(--btn-fg);font-weight:600;letter-spacing:0}
@media(min-width:980px){.hdr{gap:.75rem}.nav a{font-size:.92rem;padding:.4rem .45rem}.nav .btn{padding:.5rem 1rem}}
@media(min-width:980px) and (max-width:1199px){.wordmark{font-size:1.1rem}.nav a{font-size:.85rem;padding:.4rem .32rem}}
@media(min-width:1200px){.wrap{width:min(1200px,100% - 2rem)}.wordmark{font-size:1.5rem}}
.nav .btn,.site-header .btn{border-radius:50px}
.band-teal .btn-ghost{color:var(--footer-link);border-color:var(--footer-link)}.band-teal .btn-ghost:hover{color:var(--footer-head);border-color:var(--footer-head)}.site-footer .fine{color:var(--footer-text)}.site-footer p{color:var(--footer-text)}.site-footer .placeholder{color:var(--footer-bg)}
/* NAP top bar + Google review testimonials */
.topbar{background:var(--topbar-bg);color:var(--footer-text);font-size:.85rem}.topbar .wrap{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0}.topbar a{color:var(--footer-link);font-weight:600}.topbar-addr{display:none}@media(min-width:600px){.topbar-addr{display:inline}}
.review-src{color:var(--muted);margin-top:-.4rem}
.reviews{align-items:start}.review{margin:0;display:flex;flex-direction:column}.review .stars{color:var(--star);font-size:1.25rem;letter-spacing:.1em;margin:0 0 .4rem;line-height:1}
.review-text p{white-space:pre-wrap;margin:0 0 .8em}.review footer{font-weight:700;margin-top:.2rem}.review .g-label{font-weight:400;color:var(--muted)}

/* Unified button system 2026-10-25
   One primary (teal), one secondary (teal outline), one inverse (for dark/teal bands + footer).
   All states keep text >=4.5:1 (WCAG 2.2 1.4.3); hover darkens, never lightens; text colour never changes legibility.
   Selectors use :is(a,button,input).btn.btn (0,2,1) so they win over older rules such as
   .nav a:hover / .nav a[aria-current] (0,2,1, earlier) and .prose a / main p a (0,1,2). */
/* button colours come from the Scheme A :root at the top of this file */
:root{--btn-radius:50px;--btn-h:48px}
:is(a,button,input).btn.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;box-sizing:border-box;min-height:var(--btn-h);padding:.7rem 1.5rem;border-radius:var(--btn-radius);border:2px solid var(--btn-bg);background:var(--btn-bg);color:var(--btn-fg);font:inherit;font-size:1rem;font-weight:700;line-height:1.2;letter-spacing:0;text-align:center;text-decoration:none;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.08);transform:none;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}
/* primary (.btn-primary, .btn-teal, plain .btn, form submit) */
:is(a,button,input).btn.btn:hover{background:var(--btn-bg-hover);border-color:var(--btn-bg-hover);color:var(--btn-fg);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.18)}
:is(a,button,input).btn.btn:active{background:var(--btn-bg-active);border-color:var(--btn-bg-active);color:var(--btn-fg);transform:translateY(0);box-shadow:0 1px 2px rgba(0,0,0,.12)}
:is(a,button,input).btn.btn:focus-visible{outline:3px solid var(--btn-focus);outline-offset:3px}
/* secondary: teal outline on solid white (solid so it reads the same on hero gradient, tint, sand or white) */
:is(a,button,input).btn.btn-ghost,:is(a,button,input).btn.btn-outline{background:var(--sec-bg);color:var(--sec-fg);border-color:var(--sec-border)}
:is(a,button,input).btn.btn-ghost:hover,:is(a,button,input).btn.btn-outline:hover{background:var(--tint);color:var(--btn-bg-hover);border-color:var(--btn-bg-hover)}
:is(a,button,input).btn.btn-ghost:active,:is(a,button,input).btn.btn-outline:active{background:var(--tint);color:var(--btn-bg-active);border-color:var(--btn-bg-active)}
/* inverse: any button inside a dark band (.band-teal = --footer charcoal) or the footer, or an explicit .btn-inverse/.btn-light */
:is(.band-teal,.site-footer) :is(a,button,input).btn.btn,:is(a,button,input).btn.btn-inverse,:is(a,button,input).btn.btn-light{background:var(--bg);color:var(--sec-fg);border-color:var(--bg)}
:is(.band-teal,.site-footer) :is(a,button,input).btn.btn:hover,:is(a,button,input).btn.btn-inverse:hover,:is(a,button,input).btn.btn-light:hover{background:var(--tint);color:var(--btn-bg-hover);border-color:var(--tint)}
:is(.band-teal,.site-footer) :is(a,button,input).btn.btn:active,:is(a,button,input).btn.btn-inverse:active,:is(a,button,input).btn.btn-light:active{background:var(--tint);color:var(--btn-bg-active);border-color:var(--tint)}
/* inverse secondary: white outline on dark */
:is(.band-teal,.site-footer) :is(a,button,input).btn.btn-ghost,:is(.band-teal,.site-footer) :is(a,button,input).btn.btn-outline{background:transparent;color:var(--footer-link);border-color:var(--footer-link)}
:is(.band-teal,.site-footer) :is(a,button,input).btn.btn-ghost:hover,:is(.band-teal,.site-footer) :is(a,button,input).btn.btn-outline:hover,:is(.band-teal,.site-footer) :is(a,button,input).btn.btn-ghost:active,:is(.band-teal,.site-footer) :is(a,button,input).btn.btn-outline:active{background:rgba(255,255,255,.14);color:var(--footer-link);border-color:var(--footer-link)}
:is(.band-teal,.site-footer) :is(a,button,input).btn.btn:focus-visible,:is(a,button,input).btn.btn-inverse:focus-visible,:is(a,button,input).btn.btn-light:focus-visible{outline-color:var(--footer-link)}
/* placement-specific sizing only (colours/hover stay identical) */
.nav a.btn.btn{display:flex;margin-top:.5rem}
@media(min-width:980px){.nav a.btn.btn{display:inline-flex;margin:0 0 0 .4rem;padding:.7rem 1.2rem;font-size:.95rem}}
@media(min-width:980px) and (max-width:1199px){.nav a.btn.btn{padding:.7rem .9rem;font-size:.88rem}}
.sticky-cta :is(a,button).btn.btn{flex:1;padding:.7rem .8rem}
.nav-toggle{min-height:44px;min-width:44px}
@media(prefers-reduced-motion:reduce){:is(a,button,input).btn.btn,:is(a,button,input).btn.btn:hover{transition:none;transform:none}}

/* Step bullets 2026-10-25 (Scheme A): solid deep teal #00807C circle + ring, white bold number = 4.80:1. */
.steps li::before{width:2.4rem;height:2.4rem;box-sizing:border-box;border-radius:50%;background:var(--step-bg);border:2px solid var(--step-ring);color:var(--step-fg);font-weight:800;font-size:1.05rem;line-height:1;display:grid;place-items:center}
/* Scheme A form colours 2026-10-25: field borders #6F9391 (3:1 UI), focus ring; embedded /signup lead-form submit uses the primary button colours */
main form :is(input:not([type=submit]):not([type=button]):not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea){border:1px solid var(--ui-border);color:var(--text);background:var(--bg)}
main form :is(input,select,textarea):focus-visible{outline:3px solid var(--btn-focus);outline-offset:1px}
.scout-form :is(input[type=submit],button[type=submit],button.btn,.btn-primary,.btn-success),.scout-form .vue-form-generator .field-submit :is(input,button){background:var(--btn-bg)!important;border-color:var(--btn-bg)!important;color:var(--btn-fg)!important}
.scout-form :is(input[type=submit],button[type=submit],button.btn,.btn-primary,.btn-success):hover,.scout-form .vue-form-generator .field-submit :is(input,button):hover{background:var(--btn-bg-hover)!important;border-color:var(--btn-bg-hover)!important}
/* Nav fit with Become a Walker 2026-10-25 */
@media(min-width:1200px){.logo{flex-shrink:0}}
@media(min-width:980px) and (max-width:1199px){.nav-toggle{display:inline-flex;align-items:center;justify-content:center}.nav{display:none;position:absolute;left:0;right:0;top:66px;background:var(--bg);border-bottom:1px solid var(--line);padding:1rem}.nav.open{display:block}.nav ul{display:grid;gap:.25rem}.nav a{padding:.55rem .4rem;font-size:1rem}.nav a.btn.btn{display:flex;margin:.5rem 0 0}}
@media(min-width:1200px){.nav a{font-size:.9rem;padding:.4rem .38rem}.nav a.btn.btn{padding:.65rem 1rem;font-size:.92rem}}
@media(min-width:1200px) and (max-width:1399px){.wordmark{font-size:1.15rem}.nav ul{gap:0}.nav a{font-size:.86rem;padding:.4rem .3rem}.nav a.btn.btn{padding:.6rem .85rem;font-size:.88rem;margin-left:.3rem}}

/* ===== Mobile UX cleanup 2026-10-25 (prototype, /workspace/mobile-ux) =====
   Mobile-only (<900px) unless noted. Desktop layout is unchanged except the FAQ summary padding move (same look, bigger click area).
   Goals: one primary action (Book free meet & greet) + click-to-call; shorter scroll; tap targets >=44px; 16px form text (no iOS zoom). */
/* FAQ: put the padding on <summary> so the whole row is tappable (was 28px tall). Same visual at all widths. */
.faq details{padding:0}.faq summary{padding:.85rem 1.1rem;min-height:48px;box-sizing:border-box}.faq details>:not(summary){margin-left:1.1rem;margin-right:1.1rem}.faq details>:last-child:not(summary){margin-bottom:1rem}
/* Forms: 16px text stops iOS auto-zoom on focus; 48px fields; bigger radios */
main form :is(input:not([type=submit]):not([type=button]):not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea),.scout-form :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){font:inherit;font-size:16px;min-height:48px;border-radius:10px}
main form :is(input[type=radio],input[type=checkbox]){width:22px;height:22px;vertical-align:-5px;margin-right:.4rem;accent-color:var(--btn-bg)}
main form fieldset label{display:inline-flex;align-items:center;min-height:44px}
/* Sticky bar: Call + one primary action */
.sticky-cta .btn-call{flex:0 0 auto}
.sticky-cta .btn-call::before{content:"";width:1.05em;height:1.05em;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center/contain no-repeat}
.trust-line{margin:.2rem 0 .8rem}.trust-line a{color:var(--text);text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;min-height:44px}.trust-line .stars{color:var(--star);letter-spacing:.08em}.trust-line u{text-decoration-color:var(--ui-border);text-underline-offset:3px}
.review-more{display:none}
@media(max-width:899px){
 /* sticky: shadow, iPhone home-bar inset; hide on pages whose main content is itself the form */
 .sticky-cta{padding:.5rem .6rem calc(.5rem + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 16px rgba(0,0,0,.08)}
 .sticky-cta :is(a,button).btn.btn-call{flex:0 0 auto;padding:.7rem 1.1rem}
 /* reserve room for the Scout sign-up widget, which loads after the page and used to push content down (CLS) */
 .scout-form{min-height:1250px}
 body:has(.scout-form,#apply) .sticky-cta{display:none}body:has(.scout-form,#apply){padding-bottom:0}
 /* hero: tighter, CTA right after the pitch, reassurance bullets under it */
 .hero{padding:1rem 0 1.4rem}.hero+section{padding-top:.3rem}
 .hero-grid{gap:1.1rem}
 .hero-grid>div:first-child{display:flex;flex-direction:column;align-items:flex-start}
 .hero-grid>div:first-child>.cta-row{order:5}.hero-grid>div:first-child>.trust-line{order:6}.hero-grid>div:first-child>.checks{order:7}.hero-grid>div:first-child>:not(.cta-row):not(.checks):not(.trust-line):not(h1):not(.eyebrow):not(.motto):not(.lead):not(.price){order:8}
 h1{font-size:clamp(1.75rem,7.6vw,2.15rem);margin:.35em 0 .3em}
 .motto{font-size:1.1rem;margin:0 0 .4rem}
 .hero p.lead{font-size:1.05rem;line-height:1.55;margin:.2rem 0 .4rem}
 .hero .cta-row{margin:.7rem 0 .2rem;width:100%;align-items:center}
 .hero .cta-row :is(a,button).btn.btn-primary{flex:1 1 100%}
 /* secondary hero action becomes a quiet text link: one obvious primary */
 .hero .cta-row :is(a,button).btn.btn-ghost{background:none;border-color:transparent;box-shadow:none;text-decoration:underline;text-underline-offset:3px;padding:.5rem .2rem;min-height:44px;font-weight:600}
 .hero .checks{margin:.4rem 0 0}
 .hero-img{border-radius:20px;max-height:300px}
 /* sections a bit tighter */
 h2{margin:1.2em 0 .45em}.band{padding:1.8rem 0;margin:1.4rem 0}section{padding:1rem 0}
 /* breadcrumb + inline nav targets */
 .crumbs{padding-top:.1rem}.crumbs li{display:flex;align-items:center}.crumbs a{display:inline-block;padding:.65rem 0}
 .card a.more{display:inline-block;padding:.75rem 0}
 .pill-list li:has(>a){padding:0}.pill-list li>a{display:block;padding:.72rem .95rem;text-decoration:none}
 .site-footer li{margin:0}.site-footer li a{display:inline-block;padding:.75rem 0}.site-footer p a{display:inline-block;padding:.7rem 0}
 small{font-size:max(15.5px,.85em)}.eyebrow{font-size:.8rem;letter-spacing:.05em}.price small{line-height:1.4;display:inline-block;margin-left:.2em}
 /* tall in-content photos capped so one image is not a whole screen */
 .grid.g2>div>img,.prose>img{max-height:320px;width:auto;max-width:100%;margin-inline:auto}
}
@media(max-width:699px){
 /* service cards (image + title + text + link): thumbnail beside text instead of a full-width photo */
 .card:not(.icon):has(>img){display:grid;grid-template-columns:96px 1fr;column-gap:.9rem;align-items:start;padding:1rem}
 .card:not(.icon)>img{grid-row:1/span 3;width:96px;height:96px;aspect-ratio:1;margin:0;border-radius:12px}
 .card:not(.icon):has(>img)>:not(img){grid-column:2}.card:not(.icon):has(>img)>h3{margin:.1rem 0 .2rem}.card:not(.icon):has(>img)>p{margin:0}
 /* price cards: small illustration + name + price on one row; one outline button so they don't compete with the main CTA */
 .card.icon{display:grid;grid-template-columns:84px 1fr;column-gap:1rem;align-items:center;padding:1rem}
 .card.icon>img{grid-row:1/span 2;width:84px;height:84px;max-height:none;aspect-ratio:1;object-fit:cover;margin:0;border-radius:12px}
 .card.icon>h3{margin:0;align-self:end;font-size:1.1rem}.card.icon>.price{margin:0;align-self:start;font-size:1.7rem}
 .card.icon>:not(img):not(h3):not(.price){grid-column:1/-1}.card.icon>p:not(.price){margin:.6rem 0 0}.card.icon>p:not(.price):has(>small:only-child){margin-top:.2rem;color:var(--muted)}
 .card.icon :is(a,button).btn.btn{margin-top:.8rem;width:100%;background:var(--sec-bg);color:var(--sec-fg);border-color:var(--sec-border)}
 .card.icon :is(a,button).btn.btn:hover{background:var(--tint);color:var(--btn-bg-hover)}
 /* long Google reviews: show the first ~7 lines, "Read full review" expands (site.js adds the button; no-JS shows full text) */
 .js .review-text.clamp{max-height:12.2em;overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
 .js .review-more{display:inline-flex;align-items:center;min-height:44px;padding:0;background:none;border:0;color:var(--link);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer;align-self:flex-start}
}
@media(max-width:599px){
 /* the phone moves into the sticky bar (Call), so the dark top bar is hidden on phones; NAP stays in the footer and JSON-LD */
 .topbar{display:none}
}
