/* Wolfpack Home Services — design system (hand-written, no build step) */
@font-face{font-family:"Plus Jakarta Sans";font-weight:400;font-display:swap;src:url(fonts/plus-jakarta-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:500;font-display:swap;src:url(fonts/plus-jakarta-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:600;font-display:swap;src:url(fonts/plus-jakarta-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:700;font-display:swap;src:url(fonts/plus-jakarta-sans-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:800 900;font-display:swap;src:url(fonts/plus-jakarta-sans-latin-800-normal.woff2) format("woff2")}
:root{
  --p950:#1b1524;--p900:#2b1259;--p800:#3b1a7a;--p700:#4a1fa0;--p600:#5a2bc0;--p500:#7046d8;--p400:#a78bfa;--p200:#d9cff3;--p100:#ebe5f8;--p50:#f5f1fb;
  --tape:#f5c518;--gold:#f5c518;--red:#b3382c;--ink:#1b1524;--body:#433d4f;--mute:#6f677b;--line:#ebe6f2;--bg:#ffffff;--paper:#f8f6fc;--edge:#e4ddef;--white:#fff;
  --ok:#17693f;--ok-bg:#e2f3e8;--warn:#7a5200;--warn-bg:#fcefc4;--bad:#b3382c;--bad-bg:#fbe6e3;
  --radius:14px;--shadow:0 14px 34px -16px rgba(43,18,89,.28);--soft:0 10px 30px -14px rgba(43,18,89,.22);
  --font:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --display:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --hand:"Plus Jakarta Sans",system-ui,sans-serif;
  --graph:linear-gradient(rgba(74,31,160,.075) 1px,transparent 1px) 0 0/100% 24px,linear-gradient(90deg,rgba(74,31,160,.075) 1px,transparent 1px) 0 0/24px 100%;
  --ticks:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 96px) 0 0/100% 100%,repeating-linear-gradient(90deg,var(--ink) 0 1.5px,transparent 1.5px 12px) 0 0/100% 45% no-repeat;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);color:var(--body);background:var(--bg);line-height:1.6;font-size:16px}
img{max-width:100%;height:auto}
a{color:var(--p600)}a:hover{color:var(--p800)}
h1,h2,h3,h4{color:var(--ink);line-height:1.2;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(1.8rem,4.5vw,2.75rem)}h2{font-size:clamp(1.35rem,3vw,1.8rem)}h3{font-size:1.15rem}
p{margin:0 0 1em}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px 12px;z-index:99;border-radius:6px}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
.narrow{max-width:760px}
.muted{color:var(--mute)}.small{font-size:.875rem}.center{text-align:center}.right{text-align:right}.nowrap{white-space:nowrap}
.mt0{margin-top:0}.mt1{margin-top:8px}.mt2{margin-top:16px}.mt3{margin-top:28px}.mb0{margin-bottom:0}.mb2{margin-bottom:16px}

/* header */
.site-header{background:var(--p900);color:#fff;position:sticky;top:0;z-index:20}
.site-header .wrap{display:flex;align-items:center;gap:20px;min-height:64px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800;font-size:1.15rem;letter-spacing:-.01em}
.brand:hover{color:#fff}.brand svg{flex:none}
.brand small{display:block;font-weight:500;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p200)}
.nav{display:flex;gap:4px;margin-left:auto;align-items:center;flex-wrap:wrap}
.nav a,.nav button{color:#e9e2ff;text-decoration:none;padding:8px 12px;border-radius:8px;font-size:.95rem;background:none;border:0;cursor:pointer;font-family:inherit}
.nav a:hover,.nav button:hover{background:rgba(255,255,255,.12);color:#fff}
.nav .btn{color:var(--p950)}
.demo-banner{background:var(--p100);color:#3a2a00;text-align:center;font-size:.85rem;padding:6px 12px;font-weight:600}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;border-radius:10px;border:1px solid transparent;font:inherit;font-weight:650;cursor:pointer;text-decoration:none;line-height:1.2;transition:background .15s,transform .05s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--p600);color:#fff}.btn-primary:hover{background:var(--p700);color:#fff}
.btn-gold{background:var(--gold);color:var(--p950)}.btn-gold:hover{background:#ffcb5c;color:var(--p950)}
.btn-ghost{background:#fff;color:var(--p700);border-color:var(--p200)}.btn-ghost:hover{background:var(--p50)}
.btn-danger{background:#fff;color:var(--bad);border-color:#f1c0bc}.btn-danger:hover{background:var(--bad-bg)}
.btn-sm{padding:6px 12px;font-size:.875rem;border-radius:8px}
.btn-block{width:100%}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.linkbtn{background:none;border:0;padding:0;color:var(--p600);cursor:pointer;font:inherit;text-decoration:underline}

/* hero */
.hero{background:radial-gradient(1200px 500px at 85% -10%,#7c3aed 0%,transparent 60%),linear-gradient(160deg,var(--p950),var(--p800));color:#fff;padding:56px 0 64px}
.hero h1{color:#fff;max-width:17ch}.hero p.lead{color:#e3dafb;font-size:1.15rem;max-width:54ch}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.searchbox{background:#fff;border-radius:16px;padding:20px;box-shadow:0 20px 50px rgba(0,0,0,.25);color:var(--body)}
.searchbox h2{font-size:1.15rem;margin-bottom:12px}
.trust-row{display:flex;gap:18px;flex-wrap:wrap;margin-top:22px;color:#d9cffa;font-size:.92rem}
.trust-row span::before{content:"✓ ";color:var(--gold);font-weight:700}
.page-head{background:linear-gradient(160deg,var(--p950),var(--p800));color:#fff;padding:36px 0}
.page-head h1{color:#fff;margin-bottom:.25em}.page-head p{color:#e3dafb;max-width:68ch;margin:0}
.crumbs{font-size:.85rem;margin-bottom:10px;color:var(--p200)}.crumbs a{color:var(--p200)}.crumbs span[aria-current]{color:#fff}

/* layout pieces */
.section{padding:48px 0}.section-alt{background:#fff;border-block:1px solid var(--line)}
.grid{display:grid;gap:18px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.split{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:28px;align-items:start}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.card h3{margin-bottom:6px}.card>:last-child{margin-bottom:0}
.card-link{display:block;text-decoration:none;color:inherit;transition:transform .12s,border-color .12s}
.card-link:hover{transform:translateY(-2px);border-color:var(--p400);color:inherit}
.icon{font-size:1.7rem;line-height:1;margin-bottom:8px;display:block}
.steps{counter-reset:s}.steps .card{position:relative;padding-top:46px}
.steps .card::before{counter-increment:s;content:counter(s);position:absolute;top:14px;left:20px;width:26px;height:26px;border-radius:50%;background:var(--p600);color:#fff;font-weight:700;font-size:.85rem;display:grid;place-items:center}
.pill-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.pill-list a{display:inline-block;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;text-decoration:none;font-size:.9rem;color:var(--body)}
.pill-list a:hover{border-color:var(--p400);color:var(--p700)}
.disclosure{background:var(--p50);border:1px solid var(--p200);border-radius:10px;padding:12px 14px;font-size:.9rem;color:var(--body)}
.prose{max-width:74ch}.prose h2{margin-top:1.6em}.prose h3{margin-top:1.3em}.prose li{margin-bottom:.35em}
.faq details{border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px 16px;margin-bottom:10px}
.faq summary{cursor:pointer;font-weight:650;color:var(--ink)}.faq details p{margin:.6em 0 0}
.stars{color:#d18b00;letter-spacing:1px}

/* badges, alerts */
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.75rem;font-weight:650;white-space:nowrap;background:#eeeaf6;color:#4d4666}
.badge-ok{background:var(--ok-bg);color:var(--ok)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.badge-bad{background:var(--bad-bg);color:var(--bad)}.badge-mute{background:#eeeaf6;color:#5d5678}
.badge-purple{background:var(--p100);color:var(--p800)}
.verified{display:inline-flex;align-items:center;gap:5px;font-size:.82rem;color:var(--ok);font-weight:600;margin-right:10px}.verified::before{content:"✔"}
.alert{padding:12px 16px;border-radius:10px;margin:0 0 16px;border:1px solid;font-size:.95rem}
.alert-success{background:var(--ok-bg);border-color:#bfe6cf;color:#0b5d3b}.alert-error{background:var(--bad-bg);border-color:#f3c5c1;color:#8f1d17}
.alert-info{background:var(--p50);border-color:var(--p200);color:var(--p900)}.alert-warn{background:var(--warn-bg);border-color:#f1dc9c;color:#6b4600}

/* forms */
label{font-weight:600;color:var(--ink);display:block;margin-bottom:5px;font-size:.93rem}
.field{margin-bottom:16px}.field .hint{font-size:.83rem;color:var(--mute);margin-top:4px}
.field .err{color:var(--bad);font-size:.85rem;margin-top:4px;font-weight:600}
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=date],input[type=url],input[type=search],input[type=file],select,textarea{
  width:100%;padding:10px 12px;border:1px solid #cfc7e2;border-radius:9px;font:inherit;background:#fff;color:var(--ink)}
textarea{min-height:110px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--p500);outline:3px solid var(--p100);outline-offset:0}
.has-error input,.has-error select,.has-error textarea{border-color:var(--bad)}
.row{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.row3{grid-template-columns:repeat(3,minmax(0,1fr))}.row4{grid-template-columns:repeat(4,minmax(0,1fr))}
.check{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px;font-weight:400;color:var(--body);font-size:.92rem}
.check input{margin-top:4px;width:18px;height:18px;flex:none;accent-color:var(--p600)}
.inline-form{display:inline}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
fieldset{border:0;padding:0;margin:0 0 8px}legend{font-weight:750;color:var(--ink);font-size:1.1rem;margin-bottom:12px;padding:0}
.hp{position:absolute!important;left:-9999px!important;height:1px;width:1px;overflow:hidden}

/* estimate chooser */
.choices{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.choice{position:relative}
.choice input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer;margin:0}
.choice span{display:block;border:2px solid var(--line);border-radius:12px;padding:12px;text-align:center;background:#fff;height:100%}
.choice b{display:block;font-size:1.5rem;color:var(--p700);line-height:1.1}.choice small{color:var(--mute);display:block;line-height:1.35;margin-top:4px}
.choice input:checked+span{border-color:var(--p600);background:var(--p50);box-shadow:0 0 0 3px var(--p100)}
.choice input:focus-visible+span{outline:3px solid var(--gold)}
.progress{display:flex;gap:6px;margin-bottom:18px}.progress i{flex:1;height:6px;border-radius:12px;background:var(--p100)}.progress i.on{background:var(--p600)}
.step-nav{display:flex;justify-content:space-between;gap:10px;margin-top:8px}

/* tables */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
table{width:100%;border-collapse:collapse;font-size:.92rem}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);background:#faf8fe;white-space:nowrap}
tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.empty{padding:28px;text-align:center;color:var(--mute)}
.pager{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap}.pager a,.pager span{padding:5px 11px;border:1px solid var(--line);border-radius:8px;text-decoration:none;background:#fff;font-size:.9rem}
.pager .current{background:var(--p600);color:#fff;border-color:var(--p600)}
dl.kv{display:grid;grid-template-columns:minmax(120px,34%) 1fr;gap:6px 14px;margin:0}dl.kv dt{color:var(--mute);font-size:.88rem}dl.kv dd{margin:0;color:var(--ink);overflow-wrap:anywhere}

/* app shell (contractor + admin) */
.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:calc(100vh - 64px)}
.side{background:#fff;border-right:1px solid var(--line);padding:16px 10px}
.side h2{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--mute);margin:14px 10px 6px}
.side a{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-radius:8px;text-decoration:none;color:var(--body);font-size:.93rem}
.side a:hover{background:var(--p50);color:var(--p800)}.side a.active{background:var(--p100);color:var(--p900);font-weight:650}
.side .count{background:var(--p600);color:#fff;border-radius:999px;font-size:.7rem;padding:1px 7px;font-weight:700}
.main{padding:24px 28px 56px;min-width:0}
.main-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.main-head h1{font-size:1.55rem;margin:0}.main-head p{margin:4px 0 0;color:var(--mute)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:20px}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.stat .k{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mute)}
.stat .v{font-size:1.55rem;font-weight:750;color:var(--ink);line-height:1.2;margin-top:2px}.stat .s{font-size:.8rem;color:var(--mute)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;flex-wrap:wrap}
.tabs a{padding:8px 14px;text-decoration:none;color:var(--mute);border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:600;font-size:.93rem}
.tabs a.active{color:var(--p700);border-color:var(--p600)}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}.filters .field{margin:0;min-width:150px}
.bar{height:8px;background:var(--p100);border-radius:4px;overflow:hidden}.bar i{display:block;height:100%;background:var(--p600)}
.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:0 0 12px 18px;border-left:2px solid var(--p200);position:relative;font-size:.9rem}
.timeline li::before{content:"";position:absolute;left:-6px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--p600)}

/* footer */
.site-footer{background:var(--p950);color:#cfc5ee;padding:40px 0 28px;font-size:.92rem;margin-top:0}
.site-footer a{color:#e9e2ff;text-decoration:none}.site-footer a:hover{text-decoration:underline}
.site-footer h3{color:#fff;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em}
.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin-bottom:6px}
.foot-note{border-top:1px solid rgba(255,255,255,.14);margin-top:26px;padding-top:16px;font-size:.82rem;color:#a99dd0}

@media (max-width:900px){
  .hero-grid,.split,.g3,.g4{grid-template-columns:1fr 1fr}.hero-grid,.split{grid-template-columns:1fr}
  .shell{grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:2px;padding:8px}.side h2{display:none}.side a{padding:6px 10px}
  .main{padding:18px 16px 40px}
}
@media (max-width:600px){
  .g2,.g3,.g4,.row,.row3,.row4{grid-template-columns:1fr}.hero{padding:36px 0 44px}.section{padding:36px 0}
  .nav{margin-left:0;width:100%;padding-bottom:8px}.site-header .wrap{gap:4px}
  dl.kv{grid-template-columns:1fr}dl.kv dt{margin-top:6px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{.site-header,.site-footer,.side,.btn{display:none!important}.shell{display:block}}
.nav a.btn-gold{background:var(--gold);color:var(--p950)}.nav a.btn-gold:hover{background:#ffcb5c;color:var(--p950)}
.choice strong{display:block;color:var(--ink)}
@media (max-width:600px){.site-header{position:static}.nav a,.nav button{padding:6px 9px;font-size:.9rem}}

/* ================= Theme: job site =================
   Built from remodeling objects: drafting paper, a tape measure, paint chips, a punch list, an estimate pad, a job-site sign. */
body{background:var(--bg)}
main:not(.main) h1,main:not(.main) h2,.trade-card h3{font-family:var(--display);font-weight:900;text-transform:none;letter-spacing:-.01em;line-height:.95;color:var(--ink)}
main:not(.main) h1{font-size:clamp(2.6rem,6.6vw,4.9rem)}main:not(.main) h2{font-size:clamp(2rem,4.2vw,3.1rem);margin-bottom:.4em}
h3{font-weight:700}
a{color:var(--p700)}
.eyebrow{font-family:var(--hand);font-size:1.12rem;color:var(--p700);margin:0 0 8px;transform:none;transform-origin:left;display:block}

/* header + footer */
.site-header{background:var(--paper);color:var(--ink);border-bottom:1px solid var(--edge)}
.brand,.brand:hover{color:var(--ink);font-family:var(--display);font-weight:900;font-size:1.75rem;text-transform:none;letter-spacing:-.01em;line-height:.9}
.brand small{font-family:var(--hand);text-transform:none;letter-spacing:0;font-size:.82rem;color:var(--p700);font-weight:400;margin-top:1px}
.brand svg rect{fill:var(--p700)}
.nav a,.nav button{color:var(--ink);border-radius:12px;font-weight:600}.nav a:hover,.nav button:hover{background:var(--p100);color:var(--ink)}
.demo-banner{background:var(--ink);color:var(--p200);font-weight:500;font-size:.8rem}
.site-footer{background:var(--ink);color:#c9c1d6;border-top:16px solid var(--tape);border-image:var(--ticks) 0;position:relative;padding-top:44px}
.site-footer::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px;background:var(--ticks),var(--tape);border-block:1px solid var(--edge)}
.site-footer{border-top:16px solid transparent;border-image:none}
.site-footer h3{font-family:var(--display);font-size:1.15rem;letter-spacing:.06em;color:var(--p200)}
.site-footer a{color:#efeaf7}.foot-note{color:#a39ab3}

/* buttons */
.btn{font-family:var(--display);font-weight:700;text-transform:none;letter-spacing:-.01em;font-size:1.08rem;border-radius:12px;border:1px solid var(--edge);padding:9px 20px 8px;box-shadow:0 10px 28px -14px rgba(43,18,89,.25);transition:transform .08s,box-shadow .08s}
.btn:hover{transform:translate(-1px,-1px);box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}.btn:active{transform:translate(2px,2px);box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.btn-primary{background:var(--p700);color:#fff}.btn-primary:hover{background:var(--p800);color:#fff}
.btn-gold,.nav a.btn-gold{background:var(--tape);color:var(--ink)}.btn-gold:hover,.nav a.btn-gold:hover{background:#ffd633;color:var(--ink)}
.btn-ghost{background:var(--white);color:var(--ink);border-color:var(--ink)}.btn-ghost:hover{background:var(--p50)}
.btn-danger{background:var(--white);color:var(--red);border-color:var(--red);box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}.btn-danger:hover{box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.btn-sm{font-size:.92rem;padding:5px 12px 4px;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}.btn-sm:hover{box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.nav .btn{box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}

/* generic surfaces */
.card,.table-wrap,.stat,.faq details{background:var(--white);border:1px solid var(--line);border-radius:12px;box-shadow:none}
.card-link:hover{border-color:var(--ink);box-shadow:var(--shadow);transform:translate(-2px,-2px)}
.section-alt{background:var(--paper);border-block:1px solid var(--line)}
th{background:#f3eee2}
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=date],input[type=url],input[type=search],input[type=file],select,textarea{border:1.5px solid #b9ae98;border-radius:12px;background:var(--white)}
input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:3px solid var(--tape);outline-offset:0}
:focus-visible{outline:3px solid var(--p600)}
.alert{border-radius:12px}.disclosure{background:transparent;border:0;border-left:5px solid var(--tape);border-radius:10px;padding:2px 0 2px 14px;color:var(--mute);font-size:.88rem}
.pill-list a{font-family:var(--display);font-weight:700;text-transform:none;letter-spacing:-.01em;font-size:1rem;border:1px solid var(--edge);border-radius:12px;background:var(--white);color:var(--ink);padding:5px 12px 4px;text-decoration:none}
.pill-list a:hover{background:var(--p100);color:var(--ink);border-color:var(--ink)}
.icon{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:12px;background:var(--p700);color:#fff;margin-bottom:12px}
.card h3 a,.scope a,.pro{text-decoration:none}
.sticky{position:sticky;top:92px}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px;flex-wrap:wrap}.sec-head h2{margin:0}
.more{font-family:var(--display);font-weight:700;text-transform:none;letter-spacing:-.01em;font-size:1.15rem;text-decoration:none;color:var(--ink);border-bottom:4px solid var(--tape)}.more::after{content:" →"}
.tape-rule{height:18px;background:var(--ticks),var(--tape);border-block:1px solid var(--edge)}

/* hero: drafting paper */
.hero{background:var(--graph),var(--paper);color:var(--body);padding:44px 0 0;position:relative}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:28px;align-items:center;padding-bottom:40px}
.hero h1{color:var(--ink);max-width:11.5ch;margin-bottom:.28em}.hero p.lead,.hero .lead{color:var(--body);font-size:1.1rem;max-width:46ch}
.hero .eyebrow{color:var(--p700)}
.hero-search{display:grid;grid-template-columns:1.4fr .8fr auto;background:var(--white);border:1px solid var(--edge);border-radius:12px;margin-top:24px;max-width:590px;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.hero-search label{margin:0;padding:9px 14px 8px;border-right:1px solid var(--edge);font-family:var(--display);font-weight:700;font-size:.82rem;text-transform:none;letter-spacing:-.01em;color:var(--mute)}
.hero-search label span{display:block}
.hero-search select,.hero-search input[type=text]{border:0;padding:0;font:600 1.05rem var(--font);color:var(--ink);background:transparent;text-transform:none;letter-spacing:0}
.hero-search select:focus,.hero-search input:focus{outline:0}.hero-search label:focus-within{background:#fff7cf}
.hero-search .btn{border:0;box-shadow:none;border-radius:0;padding:0 26px;font-size:1.25rem}.hero-search .btn:hover{transform:none}
.trust-row{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-wrap:wrap;gap:4px 22px;font-family:var(--hand);font-size:1.02rem;color:var(--body)}
.trust-row li::before{content:"✓ ";color:var(--p700);font-weight:700}
.hero-art{position:relative}
.house{width:100%;height:auto;display:block;overflow:visible}
.house .h-wash path{fill:rgba(255,255,255,.75);stroke:none}.house .h-wash .h-roof{fill:rgba(74,31,160,.09)}
.house .h-line{fill:none;stroke:var(--p800);stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
.house .h-thin{stroke-width:1.1}.house .h-dash{stroke-dasharray:5 6}
.house .callout path{fill:none;stroke:var(--ink);stroke-width:1.2;stroke-linecap:round}
.house .callout text{font:400 19px var(--hand);fill:var(--ink)}
.house .callout:hover text,.house .callout:focus text{fill:var(--p700);text-decoration:underline}.house .callout:hover path{stroke:var(--p700);stroke-width:2}
.house .callout:focus{outline:none}.house .callout:focus-visible text{text-decoration:underline;fill:var(--p700)}

/* inner page heads */
.page-head{background:var(--graph),var(--paper);color:var(--body);padding:34px 0 46px;position:relative;border:0}
.page-head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:16px;background:var(--ticks),var(--tape);border-block:1px solid var(--edge)}
.page-head h1{color:var(--ink);font-size:clamp(2.3rem,5.4vw,4rem);margin-bottom:.15em}.page-head p{color:var(--body);max-width:62ch}
.crumbs{color:var(--mute);font-size:.84rem}.crumbs a{color:var(--p700)}.crumbs span[aria-current]{color:var(--ink)}
.head-row{display:flex;gap:20px;align-items:center}
.head-icon{flex:none;width:88px;height:88px;display:grid;place-items:center;background:var(--c,var(--p700));color:#fff;border:1px solid var(--edge);border-radius:12px;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}

/* tape measure */
.pick{padding:56px 0 60px}
.pick-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:end;margin-bottom:34px}.pick-head p{margin:0;max-width:52ch}.pick-head h2{margin:0}
.tape-wrap{display:flex;align-items:stretch;filter:drop-shadow(0 10px 28px -14px rgba(43,18,89,.25))}
.tape-case{flex:none;width:132px;background:var(--p700);border:1px solid var(--edge);border-radius:18px 6px 6px 18px;color:#fff;display:grid;place-content:center;text-align:center;padding:10px;margin:-14px -3px -14px 0;position:relative;z-index:1}
.tape-case b{font-family:var(--display);font-weight:900;font-size:1.35rem;letter-spacing:.04em;line-height:1}.tape-case small{font-family:var(--hand);color:var(--p200);font-size:.9rem}
.tape{list-style:none;margin:0;padding:0;flex:1;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--p100);border:1px solid var(--edge);border-left:0;border-radius:10px 3px 3px 0;height:96px}
.tape li{position:relative;background:linear-gradient(var(--ink),var(--ink)) 100% 0/3px 100% no-repeat,linear-gradient(var(--ink),var(--ink)) 50% 0/2px 52% no-repeat,linear-gradient(var(--ink),var(--ink)) 25% 0/2px 36% no-repeat,linear-gradient(var(--ink),var(--ink)) 75% 0/2px 36% no-repeat,repeating-linear-gradient(90deg,var(--ink) 0 1.5px,transparent 1.5px 6.25%) 0 0/100% 20% no-repeat}
.tape li:last-child{background-size:0 0,2px 52%,2px 36%,2px 36%,100% 20%}
.tape b{position:absolute;right:14px;bottom:0;font-family:var(--display);font-weight:900;font-size:3.6rem;line-height:1;color:var(--ink)}
.tape li:first-child b{color:var(--red)}
.tape-notes{list-style:none;margin:16px 0 0;padding:0 0 0 129px;display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr))}
.tape-notes li{padding:0 14px 0 0;text-align:right;border-right:1.5px dashed var(--mute);margin-right:1px}.tape-notes li:last-child{border-right:0}
.tape-notes strong{display:block;font-family:var(--hand);font-weight:400;font-size:1.3rem;color:var(--ink)}.tape-notes span{font-size:.88rem;color:var(--mute);line-height:1.4;display:block}

/* paint chips */
.chips{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.chip{display:flex;flex-direction:column;background:var(--white);padding:8px 8px 12px;border-radius:12px;text-decoration:none;color:inherit;box-shadow:0 1px 0 rgba(27,21,36,.18),0 10px 18px -12px rgba(27,21,36,.45);transition:transform .14s}
.chip:nth-child(3n+1){transform:none}.chip:nth-child(3n){transform:none}
.chip:hover{transform:none translateY(-6px);color:inherit}
.chip-color{background:var(--c);height:112px;display:grid;place-items:end start;padding:10px;color:#fff;border-radius:12px;margin-bottom:10px}
.chip strong{font-family:var(--display);font-weight:900;text-transform:none;font-size:1.32rem;line-height:1;color:var(--ink);padding:0 2px}
.chip small{font-size:.8rem;color:var(--mute);line-height:1.4;padding:4px 2px 8px;flex:1}
.chip code{font:500 .66rem ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--mute);letter-spacing:.04em;border-top:1px solid var(--line);padding:6px 2px 0;text-transform:uppercase}
.svc-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}

/* punch list on a legal pad */
.punch-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.punch{background:repeating-linear-gradient(transparent 0 37px,#aebfdc 37px 38px) 0 62px,#fff8c9;padding:14px 26px 24px 68px;position:relative;transform:none;box-shadow:0 10px 28px -14px rgba(43,18,89,.25);border-top:22px solid #e9d977}
.punch::before{content:"";position:absolute;left:52px;top:0;bottom:0;width:2px;background:rgba(179,56,44,.55)}
.punch::after{content:"";position:absolute;top:-36px;left:50%;width:120px;height:30px;margin-left:-60px;background:rgba(61,109,176,.82);transform:none}
.punch-title{font-family:var(--hand);font-size:1.5rem;color:var(--ink);margin:0;line-height:48px;text-decoration:underline}
.punch ol{list-style:none;margin:0;padding:0;font-family:var(--hand);font-size:1.02rem;color:#3b3f55}
.punch li{line-height:38px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.punch li::before{content:"";position:absolute;left:-40px;top:9px;width:18px;height:18px;border:1px solid var(--edge);border-radius:12px}
.punch li::after{content:"";position:absolute;left:-37px;top:8px;width:22px;height:10px;border-left:3px solid var(--p700);border-bottom:3px solid var(--p700);transform:none}
.punch li:last-child::after{display:none}
.punch b{font-size:1.28rem;color:var(--ink);font-weight:400;margin-right:6px}

/* verification record + stamp */
.permit{background:var(--white);border:1px solid var(--edge);padding:0 26px 22px;position:relative}
.permit-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;background:var(--ink);color:#fff;margin:0 -26px 18px;padding:10px 26px 8px}
.permit-top strong{font-family:var(--display);font-weight:900;text-transform:none;font-size:1.7rem;letter-spacing:-.01em;line-height:1}.permit-top span{font-family:var(--hand);color:var(--p200);font-size:.95rem}
.permit-intro{max-width:52ch}
.checks{list-style:none;padding:0;margin:0 0 16px;border-top:1px solid var(--edge)}
.checks li{padding:11px 130px 11px 34px;border-bottom:1px solid var(--line);position:relative;color:var(--mute);font-size:.94rem}
.checks li strong{display:block;color:var(--ink);font-family:var(--display);font-weight:700;text-transform:none;letter-spacing:-.01em;font-size:1.12rem}
.checks li::before{content:"";position:absolute;left:4px;top:17px;width:16px;height:8px;border-left:3px solid var(--p700);border-bottom:3px solid var(--p700);transform:none}
.stamp{position:absolute;right:14px;bottom:70px;width:150px;height:150px;transform:none;opacity:.82;mix-blend-mode:multiply;pointer-events:none}
.stamp circle,.stamp>path{fill:none;stroke:var(--red);stroke-width:3}.stamp>path{stroke-width:7;stroke-linecap:round;stroke-linejoin:round}
.stamp text{font:900 12.4px var(--display);letter-spacing:.14em;fill:var(--red)}

/* job-site sign */
.trade-card{background:var(--p100);color:var(--ink);border:1px solid var(--edge);padding:0 26px 26px;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.trade-card::before{content:"";display:block;height:18px;margin:0 -26px 20px;background:repeating-linear-gradient(-45deg,var(--ink) 0 14px,var(--tape) 14px 28px);border-bottom:1px solid var(--edge)}
.trade-kicker{font-family:var(--display);font-weight:900;text-transform:none;letter-spacing:-.01em;font-size:1rem;margin:0 0 8px}
.trade-card h3{font-size:2.1rem;margin-bottom:12px}.trade-card p{color:var(--ink)}

/* estimate pad */
.ticket{background:#fff;border:1px solid var(--edge);padding:18px 22px 20px;position:relative;box-shadow:0 10px 28px -14px rgba(43,18,89,.25);border-top:14px solid var(--p700)}
.ticket-top{display:flex;justify-content:space-between;align-items:baseline;border-bottom:3px double var(--ink);padding-bottom:6px;margin-bottom:6px}
.ticket-top strong{font-family:var(--display);font-weight:900;text-transform:none;font-size:2.3rem;line-height:1;color:var(--ink);letter-spacing:-.01em}
.ticket-top span{font:600 .95rem ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--red)}
.ticket-line{display:grid;grid-template-columns:104px 1fr;align-items:end;gap:8px;margin:0;padding:12px 0 5px;border-bottom:1.5px solid #9aa6bd;font-weight:400}
.ticket-line span{font-family:var(--display);font-weight:700;text-transform:none;letter-spacing:-.01em;font-size:.86rem;color:var(--mute)}
.ticket-line b,.ticket-line input[type=text]{font:400 1.22rem var(--hand);color:var(--p800);line-height:1.15}
.ticket-line input[type=text]{border:0;background:#fff;padding:3px 8px;outline:2px dashed #b9ae98;outline-offset:0;width:100%}
.ticket-line input[type=text]:focus{outline:3px solid var(--tape)}
.ticket .btn{margin-top:18px}.ticket-foot{font-size:.8rem;color:var(--mute);margin:14px 0 0;line-height:1.45}

/* scope list, contractor cards */
.scope{list-style:none;margin:0 0 8px;padding:0;border-top:1px solid var(--edge)}
.scope li{display:grid;grid-template-columns:minmax(0,16rem) minmax(0,1fr);gap:6px 24px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line)}
.scope-main{font-family:var(--display);font-weight:900;text-transform:none;font-size:1.6rem;color:var(--ink);line-height:1}
.scope-main:hover{color:var(--p700)}.scope-main::after{content:" →";color:var(--p700);opacity:0}.scope-main:hover::after{opacity:1}
.scope-tags{display:flex;flex-wrap:wrap;gap:4px 18px}
.scope-tags a{font-size:.93rem;color:var(--body);border-bottom:1.5px dotted var(--mute)}.scope-tags a:hover{color:var(--p700);border-color:var(--p700)}
.pro{display:flex;gap:14px;align-items:flex-start;padding:14px;background:var(--white);border:1px solid var(--edge);border-radius:12px;color:inherit;transition:transform .1s,box-shadow .1s}
.pro:hover{transform:translate(-2px,-2px);box-shadow:0 10px 28px -14px rgba(43,18,89,.25);color:inherit}
.mono{flex:none;width:54px;height:54px;background:var(--p700);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:900;font-size:1.6rem;letter-spacing:.02em}
.pro-body{display:flex;flex-direction:column;gap:2px;min-width:0}.pro-body strong{color:var(--ink);font-family:var(--display);font-weight:900;text-transform:none;font-size:1.3rem;line-height:1}
.pro-meta{font-size:.84rem;color:var(--mute)}.pro-badges{margin-top:6px;display:flex;flex-wrap:wrap;gap:2px 12px}.pro-badges .verified{margin:0;font-size:.78rem}
.verified{color:var(--ok)}

/* request form */
.req-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:44px;align-items:start;max-width:1020px}
.rail-wrap{position:sticky;top:92px}.rail{list-style:none;margin:0;padding:0}
.rail li{display:flex;gap:14px;align-items:flex-start;padding:0 0 24px;position:relative;color:var(--mute)}
.rail li:not(:last-child)::after{content:"";position:absolute;left:18px;top:40px;bottom:2px;width:2px;background:var(--line)}
.rail b{flex:none;width:38px;height:38px;border:2px solid var(--line);display:grid;place-items:center;font-family:var(--display);font-weight:900;font-size:1.4rem;background:var(--white);color:var(--mute)}
.rail span{font-weight:700;line-height:1.25;padding-top:2px}.rail small{display:block;font:400 .92rem var(--hand);color:var(--mute)}
.rail li.cur{color:var(--ink)}.rail li.cur b{background:var(--ink);border-color:var(--ink);color:var(--p200)}
.rail li.on b{background:var(--p100);border-color:var(--ink);color:var(--ink)}.rail li.on::after{background:var(--ink)}
.rail-note{display:flex;gap:8px;align-items:center;font-size:.82rem;color:var(--mute);border-top:1px solid var(--line);padding-top:14px;margin:0}.rail-note svg{color:var(--p700);flex:none}
.req-card{padding:28px 32px 30px;border:1px solid var(--edge);box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.req-card legend{font-family:var(--display);font-weight:900;text-transform:none;font-size:2.2rem;line-height:.98;margin-bottom:18px}
.req-card legend em{display:block;font:400 1.02rem var(--hand);text-transform:none;color:var(--p700);margin-bottom:4px}
.req-card:not(.js) fieldset+fieldset{border-top:1px solid var(--line);padding-top:24px;margin-top:16px}
.choices{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}
.choice span{border:1px solid var(--edge);border-radius:12px;background:var(--white);padding:14px 10px}
.choice b{font-family:var(--display);font-weight:900;font-size:3.6rem;line-height:.9;color:var(--ink);margin-bottom:4px}.choice strong{display:block;color:var(--ink)}
.choice input:checked+span{background:var(--p100);border-color:var(--ink);box-shadow:0 10px 28px -14px rgba(43,18,89,.25);transform:translate(-2px,-2px)}
.choice input:checked+span small{color:var(--ink)}
.tracker{list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);font-family:var(--display);font-weight:700;font-size:1.05rem;text-transform:none;letter-spacing:-.01em;color:var(--mute)}
.tracker li{padding-top:12px;border-top:10px solid #e2d9c6}.tracker .done{border-color:var(--p200);color:var(--ink)}.tracker .cur{border-color:var(--p700);color:var(--p700)}

/* misc public */
.wrap[style*="max-width"]>.card{border:1px solid var(--edge);box-shadow:0 10px 28px -14px rgba(43,18,89,.25);padding:28px}
.badge-purple{background:var(--p100);color:var(--ink);border-radius:12px;font-family:var(--display);font-weight:700;text-transform:none;letter-spacing:-.01em;font-size:.82rem;padding:2px 8px 1px}
.prose h2{padding-top:.7em;border-top:1px solid var(--edge);font-size:clamp(1.7rem,3.2vw,2.3rem)!important}.prose h2.mt0,.prose>h2:first-child{border-top:0;padding-top:0}
.faq summary{font-weight:700}
.quote{margin:0}.quote blockquote{margin:10px 0;font-family:var(--hand);font-size:1.08rem;color:var(--ink)}
.steps .card::before{background:var(--p100);color:var(--ink);border:1px solid var(--edge);border-radius:10px;font-family:var(--display);font-weight:900;font-size:1.1rem;width:30px;height:30px}
.searchbox{border:1px solid var(--edge);border-radius:12px;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}

/* dashboards stay calm */
.main-head h1{font-family:var(--font);font-weight:800;letter-spacing:-.01em;text-transform:none}
.side{background:var(--paper)}.side a.active{background:var(--ink);color:#fff}.side .count{background:var(--p100);color:var(--ink)}
.main .btn{box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}.main .btn-danger{box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.tabs a.active{color:var(--ink);border-color:var(--p200);border-bottom-width:4px}
.bar i{background:var(--p700)}

@media (max-width:900px){
  .hero-grid,.pick-head,.punch-grid{grid-template-columns:1fr}.hero-art{max-width:560px;margin:0 auto}.chips,.svc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sticky,.rail-wrap{position:static}.req-layout{grid-template-columns:1fr;gap:18px}
  .rail{display:flex;gap:8px}.rail li{padding:0;flex:0 0 auto}.rail li::after{display:none}.rail span{display:none}.rail li.cur{flex:1;align-items:center}.rail li.cur span{display:block;font-size:.9rem}.rail small,.rail-note{display:none}
  .punch{margin:20px 8px 0}
}
@media (max-width:600px){
  .hero{padding-top:28px}.hero-search{grid-template-columns:1fr}.hero-search label{border-right:0;border-bottom:1px solid var(--edge)}.hero-search .btn{padding:13px}
  .chips,.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.chip-color{height:84px}
  .tape-case{width:74px;border-radius:12px 4px 4px 12px}.tape-case b{font-size:.78rem}.tape-case small{font-size:.7rem}.tape{height:74px}.tape b{font-size:2.5rem;right:8px}
  .tape-notes{padding-left:0;grid-template-columns:1fr 1fr;gap:14px 0}.tape-notes li{text-align:left;border-right:0;padding-left:12px;border-left:3px solid var(--tape)}
  .scope li{grid-template-columns:1fr}.head-icon{width:62px;height:62px}.head-icon svg{width:32px;height:32px}
  .choices{grid-template-columns:repeat(2,minmax(0,1fr))}.req-card{padding:20px 16px}.req-card legend{font-size:1.8rem}
  .checks li{padding-right:0}.stamp{width:104px;height:104px;right:6px;bottom:auto;top:54px}.house .callout text{font-size:23px}
  .brand{font-size:1.45rem}.punch li{white-space:normal;line-height:38px}
}
@media (prefers-reduced-motion:reduce){.chip,.btn,.pro{transition:none}}
@media (min-width:901px){.hero-grid{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr)}.hero h1{font-size:clamp(2.8rem,5.6vw,4.5rem)}}
@media (min-width:901px){.hero h1{max-width:13ch}}

/* ---- contractor-facing pages ---- */
.leadslip{background:#fff;border:1px solid var(--edge);border-top:14px solid var(--p700);padding:16px 24px 22px;max-width:440px;margin:10px auto 0;position:relative;transform:none;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.leadslip-top{display:flex;justify-content:space-between;align-items:baseline;border-bottom:3px double var(--ink);padding-bottom:6px}
.leadslip-top strong{font-family:var(--display);font-weight:900;text-transform:none;font-size:2.3rem;line-height:1;color:var(--ink)}.leadslip-top span{font-family:var(--hand);color:var(--mute)}
.leadslip-foot{margin:16px 0 0;font-size:.9rem;color:var(--mute);max-width:60%}.leadslip-foot b{color:var(--ink)}
.leadslip .stamp{right:-26px;bottom:-30px;width:158px;height:158px}.stamp-n{font:900 46px var(--display)!important;letter-spacing:0!important}
.boards{gap:22px}
.board{background:var(--white);border:1px solid var(--edge);padding:20px 22px 22px;position:relative;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.board>b{font-family:var(--display);font-weight:900;font-size:1.1rem;letter-spacing:.1em;background:var(--p100);border:1px solid var(--edge);padding:1px 8px 0;position:absolute;top:-16px;left:18px}
.board h3{font-family:var(--display);font-weight:900;text-transform:none;font-size:2rem;line-height:1;margin:8px 0 10px;color:var(--ink)}
.board p{font-size:.95rem}.board ul{margin:0;padding:12px 0 0 18px;border-top:1px solid var(--line);font-size:.9rem;color:var(--mute)}.board li{margin-bottom:3px}
.tags{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;padding-top:14px}
.tag{background:#e9d8b4;padding:58px 24px 24px;position:relative;clip-path:polygon(22% 0,78% 0,100% 13%,100% 100%,0 100%,0 13%);color:var(--ink)}
.tag::before{content:"";position:absolute;top:20px;left:50%;width:20px;height:20px;margin-left:-10px;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 3px #b89f6c}
.tag:nth-child(2){background:var(--p100)}.tag:nth-child(2)::before{box-shadow:inset 0 0 0 3px #b8910a}
.tag:nth-child(odd){transform:none}.tag:nth-child(3){transform:none}
.tag h3{font-family:var(--display);font-weight:900;text-transform:none;font-size:1.9rem;line-height:1;text-align:center;margin:0}
.tag-price{font-family:var(--display);font-weight:900;font-size:5rem;line-height:.95;text-align:center;margin:4px 0 6px}.tag-price sup{font-size:.4em;vertical-align:top;position:relative;top:.35em}
.tag-price small{font:600 .85rem var(--font);display:block;letter-spacing:.04em}
.tag-note{font-family:var(--hand);font-size:.98rem;text-align:center;line-height:1.35;border-block:1.5px dashed rgba(27,21,36,.5);padding:10px 0;margin:10px 0 12px}
.tag ul{list-style:none;margin:0;padding:0;font-size:.9rem}.tag li{padding:3px 0}
.ratesheet{background:#fffdf4;border:1px solid var(--edge);box-shadow:0 10px 28px -14px rgba(43,18,89,.25);overflow-x:auto;border-top:14px solid var(--ink)}
.ratesheet table{font-size:1rem}.ratesheet th{background:transparent;font-family:var(--display);font-weight:700;font-size:.95rem;letter-spacing:.08em;color:var(--ink);border-bottom:3px double var(--ink)}
.ratesheet td{border-bottom:1.5px solid #c3cde0;padding:9px 12px}.ratesheet td.num{font:400 1.2rem var(--hand);color:var(--p800)}
.ratesheet td:first-child{font-weight:600;color:var(--ink);white-space:nowrap}
.dotc{display:inline-block;width:14px;height:14px;background:var(--c);margin-right:10px;vertical-align:-2px;border:1px solid var(--edge)}
@media (max-width:900px){.tags{grid-template-columns:1fr;max-width:380px;margin:0 auto}.leadslip{margin-top:26px}}
.leadslip{padding-bottom:64px}.leadslip-foot{position:absolute;left:24px;bottom:18px;margin:0}
.leadslip .stamp{right:-34px;bottom:-44px;width:140px;height:140px}
.boards{margin-bottom:52px}
.punch{padding-left:26px}.punch::before{left:58px}.punch-title{padding-left:44px}
.punch li{padding-left:44px;overflow:visible;white-space:normal}
.punch li::before{left:2px}.punch li::after{left:5px}
.sticky .punch b{display:block}
.req-card:not(.js) fieldset+fieldset{border-top:0;padding-top:0;margin-top:30px}

/* ---- reviews + contractor profiles ---- */
.stars{color:#d18b00;letter-spacing:1px;white-space:nowrap}
.pro-rating{font-size:.84rem;color:var(--mute)}.pro-rating b{color:var(--ink)}
.head-mono{font-family:var(--display);font-weight:900;font-size:2.6rem;background:var(--p700)}
.head-rating{margin-top:6px!important;font-size:1rem}.head-rating b{color:var(--ink);font-size:1.1rem}.head-rating .stars{font-size:1.15rem}
.plain{list-style:none;padding:0;margin:0}.plain li{padding:6px 0;border-bottom:1px solid var(--line)}
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.gallery figure{margin:0;background:var(--white);padding:8px 8px 10px;box-shadow:0 1px 0 rgba(27,21,36,.18),0 10px 18px -12px rgba(27,21,36,.45)}
.gallery figure:nth-child(odd){transform:none}.gallery figure:nth-child(3n){transform:none}
.gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--bg)}
.gallery figcaption{font-family:var(--hand);font-size:.95rem;color:var(--ink);padding-top:8px;line-height:1.25}
.gallery-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.gallery-admin figure{margin:0}.gallery-admin img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line)}
.scorecard{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:28px;align-items:center;background:var(--white);border:1px solid var(--edge);padding:20px 24px;margin-bottom:22px;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.score{text-align:center}.score b{display:block;font-family:var(--display);font-weight:900;font-size:4.6rem;line-height:.9;color:var(--ink)}.score .stars{font-size:1.2rem;display:block}.score span:last-child{font-size:.84rem;color:var(--mute)}
.dist{list-style:none;margin:0;padding:0}.dist li{display:grid;grid-template-columns:38px 1fr 26px;gap:10px;align-items:center;font-size:.86rem;color:var(--mute);padding:2px 0}
.dist i{height:12px;background:#eee9f6;border:1px solid var(--edge);display:block}.dist em{display:block;height:100%;background:var(--p100)}
.aspects{margin:0;display:grid;grid-template-columns:auto auto;gap:4px 14px;font-size:.88rem}.aspects dt{color:var(--mute)}.aspects dd{margin:0;font-family:var(--display);font-weight:900;font-size:1.25rem;line-height:1;color:var(--ink);text-align:right}
.review{border-top:1px solid var(--edge);padding:16px 0 6px}.review header{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin-bottom:8px}
.rv-tag{font-family:var(--display);font-weight:700;text-transform:none;letter-spacing:-.01em;font-size:.8rem;border:1.5px solid var(--ok);color:var(--ok);padding:1px 7px 0}
.rv-reply{margin:0 0 12px 18px;padding:10px 14px;background:#fff;border-left:5px solid var(--p700);font-size:.94rem}.rv-reply p{margin:4px 0 0}
.review-form summary{cursor:pointer;font-weight:700;color:var(--p700)}
.starpick{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:2px;margin-bottom:12px;position:relative;padding-top:24px}
.starpick legend{position:absolute;top:0;left:0;font:600 .93rem var(--font);margin:0}
.starpick input{position:absolute;opacity:0;width:1px;height:1px}
.starpick label{font-size:2.3rem;line-height:1;color:#d6ccb8;cursor:pointer;margin:0}
.starpick label:hover,.starpick label:hover~label,.starpick input:checked~label{color:#e2a100}
.starpick input:focus-visible+label{outline:3px solid var(--p600)}
.ticket-line select{font:400 1.1rem var(--hand);color:var(--p800);border:0;background:#fff;padding:3px 6px;outline:2px dashed #b9ae98}
@media (max-width:700px){.scorecard{grid-template-columns:1fr;gap:14px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
.eyebrow.mt3{margin-top:40px}.grid.mt3 .eyebrow{margin-top:0}

/* ---- sponsored spots, cost guide, response badge ---- */
.sponsored{border:1px dashed var(--edge);padding:12px 16px 14px;margin:0 0 26px;background:var(--paper);max-width:none}
.sp-label{font-family:var(--display);font-weight:900;text-transform:none;letter-spacing:-.01em;font-size:.95rem;background:var(--p100);border:1px solid var(--edge);display:inline-block;padding:0 8px;margin:-26px 0 10px;position:relative}
.costguide{background:#fff;border:1px solid var(--edge);border-left:14px solid var(--p700);padding:14px 20px 12px;margin:22px 0;box-shadow:0 10px 28px -14px rgba(43,18,89,.25);max-width:none}
.costguide .eyebrow{margin-bottom:0}
.cg-range{font-family:var(--display);font-weight:900;font-size:clamp(2.4rem,6vw,3.6rem);line-height:1;color:var(--ink);margin:2px 0 8px}.cg-range span{font:400 1.2rem var(--hand);color:var(--mute);vertical-align:middle}
.cg-note{font-size:.86rem;color:var(--mute);margin:0}
.resp{font-family:var(--hand);font-size:.98rem;color:var(--p700);margin-left:8px;white-space:nowrap}.resp::before{content:"⏱ "}

/* ---- guides and local pages ---- */
.byline{font-size:.86rem;color:var(--mute);margin:6px 0 0!important}.byline a{color:var(--p700)}
.lead-in{font-size:1.08rem;color:var(--ink)}
.glance{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:22px 0 6px;border:1px solid var(--edge);background:var(--white);max-width:none}
.glance>div{padding:10px 14px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.glance>div:nth-child(2n){border-right:0}.glance>div:nth-last-child(-n+2){border-bottom:0}
.glance dt{font-family:var(--display);font-weight:700;text-transform:none;letter-spacing:-.01em;font-size:.82rem;color:var(--mute)}.glance dd{margin:0;color:var(--ink);font-weight:600}
.rules{padding-left:20px}.rules li{margin-bottom:.6em}
.sources{font-size:.84rem;color:var(--mute);border-left:5px solid var(--tape);padding-left:12px}
.asklist{padding-left:22px;font-family:var(--hand);font-size:1.08rem;color:var(--ink)}.asklist li{margin-bottom:.25em}
.guide{max-width:none;margin-top:8px}
@media (max-width:600px){.glance{grid-template-columns:1fr}.glance>div{border-right:0}.glance>div:nth-last-child(2){border-bottom:1px solid var(--line)}}

/* ---- coverage grid ---- */
.covwrap{overflow:auto;max-height:72vh}
.covgrid{font-size:.8rem;border-collapse:separate;border-spacing:0}
.covgrid th,.covgrid td{padding:3px;text-align:center;border-bottom:1px solid var(--line)}
.covgrid thead th{position:sticky;top:0;background:#f3eee2;height:128px;vertical-align:bottom;z-index:2;min-width:30px}
.covgrid thead th span{display:block;writing-mode:vertical-rl;transform:none;white-space:nowrap;text-transform:none;letter-spacing:0;font-size:.76rem;color:var(--ink);margin:0 auto}
.covgrid tbody th,.covgrid thead th:first-child{position:sticky;left:0;background:var(--white);text-align:left;white-space:nowrap;text-transform:none;letter-spacing:0;font-size:.82rem;color:var(--ink);z-index:1;padding:4px 10px;min-width:150px}
.covgrid thead th:first-child{z-index:3;background:#f3eee2}
.cov{display:inline-grid;place-items:center;width:26px;height:22px;font-weight:700;text-decoration:none;position:relative;border-radius:12px}
.cov.c0{background:#f6d5d1;color:#8f1d17}.cov.c1{background:var(--warn-bg);color:var(--warn)}.cov.c2{background:var(--ok-bg);color:var(--ok)}
.cov i{position:absolute;top:1px;right:1px;width:5px;height:5px;border-radius:50%;background:var(--p700)}

/* ---- dashboards: job-site shell ---- */
.shell{background:var(--bg)}
.side{background:var(--ink);border-right:0;padding:18px 12px}
.side h2{color:#8f869e;font-family:var(--display);font-size:.9rem;letter-spacing:.14em;margin:18px 10px 6px}
.side a{color:#ddd6e8;border-radius:12px;font-weight:500}.side a:hover{background:rgba(255,255,255,.09);color:#fff}
.side a.active{background:var(--p100);color:var(--ink);font-weight:700}
.side .count{background:var(--p100);color:var(--ink)}.side a.active .count{background:var(--ink);color:var(--p200)}
.main-head{border-bottom:1px solid var(--edge);padding-bottom:14px;margin-bottom:20px}
.main-head h1{font-family:var(--display);font-weight:900;text-transform:none;font-size:2.3rem;line-height:1;letter-spacing:-.01em}
.main-head p{max-width:76ch}
.main h2{font-family:var(--display);font-weight:900;text-transform:none;font-size:1.55rem;line-height:1;margin:26px 0 12px;color:var(--ink)}
.main .card h3{font-family:var(--display);font-weight:900;text-transform:none;font-size:1.3rem;line-height:1.05;letter-spacing:-.01em}
.stat{border:1px solid var(--edge);border-radius:12px;padding:12px 14px 10px;background:var(--white)}
.stat .k{font-family:var(--display);font-weight:700;font-size:.86rem;letter-spacing:.09em;color:var(--mute)}
.stat .v{font-family:var(--display);font-weight:900;font-size:2.3rem;line-height:1;margin-top:4px}
.stats{gap:12px}
.main .card{border:1px solid var(--edge);border-radius:12px}
.main .table-wrap{border:1px solid var(--edge);border-radius:12px}
.main th{font-family:var(--display);font-weight:700;font-size:.86rem;letter-spacing:.08em;color:var(--ink);background:#efe8d8;border-bottom:1px solid var(--edge)}
.main tbody tr:hover td{background:#fffdf4}
.tabs{border-bottom:1px solid var(--edge)}
.tabs a{font-family:var(--display);font-weight:700;text-transform:none;letter-spacing:-.01em;font-size:1.02rem;color:var(--mute);border:0;margin:0;padding:7px 14px 5px}
.tabs a.active{background:var(--ink);color:var(--p200);border:0}
.main .alert{border-width:2px;border-left-width:8px}
.badge{border-radius:12px;font-weight:700;letter-spacing:.02em}
.main .empty{background:var(--graph),var(--paper);border:2px dashed #b9ae98;font-family:var(--hand);font-size:1.05rem}
.filters{background:var(--paper);border:1px solid var(--line);padding:12px 14px}
dl.kv dt{font-family:var(--display);font-weight:700;text-transform:none;letter-spacing:-.01em;font-size:.84rem}
.timeline li{border-left-color:var(--ink)}.timeline li::before{background:var(--p100);border:1px solid var(--edge);border-radius:10px;left:-7px}
.bar{background:#eee9f6;border:1px solid var(--edge);height:12px;border-radius:10px}.bar i{background:var(--p100)}
@media (max-width:900px){.side{display:flex;flex-wrap:wrap;gap:2px;padding:8px}.side a{padding:6px 10px}.main-head h1{font-size:1.8rem}}

/* ---- homeowner follow-up, history, onboarding ---- */
.askrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0;font-size:.92rem}.askrow span{font-family:var(--hand);font-size:1.02rem;color:var(--ink)}
.details-card summary{cursor:pointer}.details-card{border:1px dashed var(--edge)!important;background:#fffdf4!important}
.history-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.history h3{margin:0}
.rv-photos{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.rv-photos img{width:96px;height:96px;object-fit:cover;border:1px solid var(--edge)}
.onboard{border:1px solid var(--edge)!important;background:#fff!important}
.onboard-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.onboard-head span{font-family:var(--hand);font-size:1.05rem}
.onboard-steps{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}
.onboard-steps a{display:block;padding:8px 10px 8px 38px;background:var(--white);border:1px solid var(--edge);text-decoration:none;color:var(--ink);position:relative;height:100%}
.onboard-steps a::before{content:"";position:absolute;left:10px;top:11px;width:16px;height:16px;border:1px solid var(--edge)}
.onboard-steps strong{display:block;font-size:.94rem}.onboard-steps span{display:block;font-size:.8rem;color:var(--mute);line-height:1.35}
.onboard-steps .done a{background:transparent;border-color:var(--edge);color:var(--mute)}.onboard-steps .done a::before{background:var(--p100)}
.onboard-steps .done a::after{content:"";position:absolute;left:13px;top:12px;width:12px;height:6px;border-left:1px solid var(--edge);border-bottom:1px solid var(--edge);transform:none}
.bulk-pick{margin:0 0 4px;font-size:.84rem}
.mobile-actions{display:none}

/* ---- contractor screens on a phone ---- */
@media (max-width:900px){
  .side{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:4px;padding:8px 10px;scrollbar-width:none}.side::-webkit-scrollbar{display:none}
  .side h2{display:none}.side a{white-space:nowrap;flex:none;padding:8px 12px}
  .main{padding:16px 14px 96px}
  .main-head .actions{width:100%}.main-head .actions .btn{flex:1}
  .main .split,.main .grid.g2,.main .grid.g3{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat .v{font-size:1.8rem}
  .main table{font-size:.86rem}.main th,.main td{padding:8px 9px}
  .mobile-actions{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--ink);border-top:3px solid var(--tape)}
  .mobile-actions .btn{flex:1;box-shadow:none;border-color:var(--tape);font-size:1.2rem;padding:12px 8px}.mobile-actions .btn-ghost{background:var(--tape)}
  .buy-sticky{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:auto;z-index:30;font-size:1.25rem;padding:14px;box-shadow:0 0 0 12px var(--bg),4px 4px 0 12px var(--ink)}
  dl.kv{grid-template-columns:1fr}dl.kv dt{margin-top:8px}
  input,select,textarea{font-size:16px!important}   /* stops iOS zooming into fields */
}
@media (max-width:900px){
  .site-header .wrap{padding-top:8px;padding-bottom:6px;min-height:0}
  body:has(.shell) .site-header .nav a:not([aria-label]):not([href*="/contractor"]):not([href$="/admin"]){display:none}
  body:has(.shell) .site-header .nav{width:auto;margin-left:auto}
}

/* ---- partner agencies ---- */
.acting{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:var(--ink)!important;color:#fff!important;border-color:var(--p200)!important}
.acting strong{color:var(--p200)}
.quickadd .row3,.quickadd .row{align-items:end}
.terr-pick{max-height:220px;overflow:auto;border:1.5px solid #b9ae98;background:var(--white);padding:8px 10px;columns:3 170px;column-gap:16px}
.terr-pick label{font-weight:400;font-size:.88rem;margin:0 0 3px;display:flex;gap:6px;align-items:center;break-inside:avoid}
.terr-pick input{width:16px;height:16px;accent-color:var(--p700)}
.client-steps{font-size:.8rem;color:var(--mute)}
.partner-badge{display:inline-block;font-family:var(--display);font-weight:900;font-size:5.5rem;line-height:.85;color:var(--ink);background:var(--p100);border:1px solid var(--edge);padding:10px 18px 4px;transform:none;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.partner-badge small{display:block;font-size:1.4rem;letter-spacing:.06em}

/* ---------- Wolfpack: the pack ---------- */
.brand .wolfmark{filter:drop-shadow(0 10px 28px -14px rgba(43,18,89,.25))}
.foot-brand{display:flex;align-items:center;gap:12px;margin-bottom:10px}.foot-brand h3{margin:0}
.site-footer p strong{color:#fff}
.hero-seal{position:absolute;left:1%;top:4%;display:flex;align-items:center;gap:8px;color:var(--red);border:3px solid var(--red);border-radius:50%;width:132px;height:132px;flex-direction:column;justify-content:center;transform:none;opacity:.86;mix-blend-mode:multiply;text-align:center;gap:2px}
.hero-seal b{font:900 .95rem/0.95 var(--display);text-transform:none;letter-spacing:-.01em}
.hero-seal::after{content:"";position:absolute;inset:6px;border:1.5px solid var(--red);border-radius:50%}

.pack-test{position:relative;background:radial-gradient(420px 260px at 88% 8%,rgba(245,197,24,.16),transparent 70%),linear-gradient(175deg,var(--ink) 0%,#24163d 60%,var(--p900) 100%);color:#d9d1e6;padding:64px 0 96px;overflow:hidden}
.pack-test::before{content:"";position:absolute;right:7%;top:38px;width:76px;height:76px;border-radius:50%;background:radial-gradient(circle at 38% 36%,#fff7d1,#f5c518 70%);box-shadow:0 0 60px rgba(245,197,24,.45)}
.pack-test .wrap{position:relative}
.pack-test .eyebrow{color:var(--p200)}
.pack-test h2{color:#fff!important;font-size:clamp(2rem,4.4vw,3.4rem);margin:0}
.pack-head{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:32px;align-items:end;margin-bottom:34px}
.pack-head>p{margin:0;font-size:1.06rem;max-width:44ch}
.gate{list-style:none;margin:0;padding:0;border-top:2px solid rgba(255,255,255,.18)}
.gate li{display:grid;grid-template-columns:64px minmax(0,1.3fr) minmax(0,1fr);gap:18px;align-items:center;padding:18px 0;border-bottom:2px solid rgba(255,255,255,.12)}
.gate-n{font:900 2.2rem/1 var(--display);color:var(--p200)}
.gate strong{display:block;color:#fff;font:900 1.45rem/1.05 var(--display);text-transform:none;letter-spacing:-.01em}
.gate small{display:block;color:#b9afc9;font-size:.92rem;margin-top:4px}
.gate em{font-style:normal;font-family:var(--hand);color:#ffb4a8;font-size:1.06rem;padding-left:16px;border-left:3px solid var(--red)}
.pack-foot{position:relative;margin-top:28px;padding-right:170px;min-height:120px}
.pack-foot a{color:var(--p200)}
.pack-stat{font:900 1.5rem/1.1 var(--display);text-transform:none;letter-spacing:-.01em;color:#fff;margin:0 0 8px}.pack-stat b{color:var(--p200);font-size:2.1rem}.pack-stat span{color:#7a6f8c;margin:0 6px}
.pack-test .stamp{right:0;top:-6px;bottom:auto;width:150px;height:150px;mix-blend-mode:normal;opacity:.9}
.pack-test .stamp circle{stroke:#ff6b5a}.pack-test .stamp text{fill:#ff6b5a}
.stamp-wolf{position:absolute;right:55px;top:47px;color:#ff6b5a;transform:none}
.pack-test .ridge{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:56px;fill:var(--bg)}

.trade-wide{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:28px;align-items:center}
.trade-wide::before{grid-column:1/-1}
.pack-row{display:flex;align-items:flex-end;justify-content:center;gap:6px;flex-wrap:wrap}
.pack-row .wolfmark{filter:drop-shadow(0 10px 28px -14px rgba(43,18,89,.25))}
.pack-open{display:flex;flex-direction:column;align-items:center;color:var(--ink);opacity:.75}.pack-open .wolfmark g{stroke-dasharray:3 3}
.pack-open small{font-family:var(--hand);font-size:.95rem;line-height:1}
.pack-tag{display:inline-flex;align-items:center;gap:5px;font-family:var(--hand);font-size:.9rem;color:var(--p700);margin-top:2px}

@media (max-width:900px){
  .pack-head,.trade-wide{grid-template-columns:1fr}.pack-head{gap:12px}
  .gate li{grid-template-columns:48px minmax(0,1fr);gap:4px 14px}.gate em{grid-column:2;padding-left:10px;margin-top:6px}
  .gate-n{font-size:1.7rem}
}
@media (max-width:600px){
  .pack-test{padding:44px 0 80px}.pack-test::before{width:48px;height:48px;top:22px;right:16px}
  .pack-foot{padding-right:0;padding-top:120px}.pack-test .stamp{left:0;right:auto;top:0;width:110px;height:110px}.stamp-wolf{left:37px;right:auto;top:34px}.stamp-wolf .wolfmark{width:36px;height:37px}
  .hero-seal{width:100px;height:100px;left:0}.hero-seal .wolfmark{width:34px;height:35px}.hero-seal b{font-size:.78rem}
  .pack-row .wolfmark{width:38px;height:39px}
}
.pack-open i{display:grid;place-items:center;width:46px;height:46px;border:1px dashed var(--edge);border-radius:50%;margin-bottom:3px}
@media (max-width:600px){.hero-seal{display:none}}
.pack-tag-lg{font-size:1.1rem;margin:2px 0 4px}
@media (max-width:600px){.leadslip .stamp{right:-8px;bottom:-34px;width:116px;height:116px}}
.hero{overflow-x:clip}

/* ---------- paw prints ---------- */
:root{--paw:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12.6c-3.1 0-6.2 3.4-6.2 6.3 0 1.8 1.4 2.8 3 2.8 1.4 0 2.1-.8 3.2-.8s1.8.8 3.2.8c1.6 0 3-1 3-2.8 0-2.9-3.1-6.3-6.2-6.3z'/%3E%3Cellipse cx='5.4' cy='10.4' rx='2.1' ry='2.8' transform='rotate(-24 5.4 10.4)'/%3E%3Cellipse cx='18.6' cy='10.4' rx='2.1' ry='2.8' transform='rotate(24 18.6 10.4)'/%3E%3Cellipse cx='9.3' cy='5.6' rx='2.2' ry='3'/%3E%3Cellipse cx='14.7' cy='5.6' rx='2.2' ry='3'/%3E%3C/svg%3E")}
.trust-row li::before{content:"";display:inline-block;width:15px;height:15px;margin-right:7px;vertical-align:-2px;background:var(--p700);-webkit-mask:var(--paw) center/contain no-repeat;mask:var(--paw) center/contain no-repeat;transform:none}
.checks li::before{left:2px;top:13px;width:20px;height:20px;border:0;transform:none;background:var(--p700);-webkit-mask:var(--paw) center/contain no-repeat;mask:var(--paw) center/contain no-repeat}
.paw-trail{position:absolute;left:0;right:0;bottom:62px;height:70px;pointer-events:none;color:var(--p200);opacity:.16}
.paw-trail span{position:absolute}
.pack-test>.wrap>*:not(.paw-trail){position:relative}
.pack-test>.wrap{position:static}
@media (max-width:600px){.paw-trail{display:none}}

/* ---------- brand logo (traced from the official artwork) ---------- */
:root{--brand:#2c1154}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.logo{color:var(--brand);display:inline-flex}.logo svg{display:block;width:100%;height:auto}
.logo-row{align-items:center;gap:10px}
.logo-mark{width:58px}
.logo-type{display:flex;flex-direction:column;align-items:center;gap:4px;width:164px}
.logo-sub{width:72%}
.brand .wolfmark{filter:none}
.site-footer .logo{color:#fff}.logo-stack{width:190px}
.foot-brand{display:block;margin-bottom:14px}
@media (max-width:600px){.logo-mark{width:46px}.logo-type{width:128px}}
.hero-seal{left:auto;right:2%;top:-150px}
@media (max-width:900px){.hero-seal{display:none}}
.pack-row .wolfmark{filter:none}
.stamp-wolf{top:51px}
@media (max-width:600px){.stamp-wolf{top:38px}}

/* ---------- highlight: purple words signed with a claw swipe (replaces the yellow highlighter) ---------- */
:root{--slash:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 50'%3E%3Cpath d='M9 46C11 30 16 15 25 2C21 16 17 31 12 47Z'/%3E%3Cpath d='M19 48C21 33 26 18 35 5C31 19 27 34 22 49Z'/%3E%3Cpath d='M1 40C3 27 7 15 14 5C11 16 8 28 4 41Z'/%3E%3C/svg%3E")}
.hl{background:none;padding:0;margin:0;color:var(--p700)}
.hl::after{content:"";display:inline-block;width:.5em;height:.74em;margin-left:.1em;vertical-align:.08em;background:var(--red);-webkit-mask:var(--slash) center/contain no-repeat;mask:var(--slash) center/contain no-repeat}
.pay-hint{display:block;font-size:.78rem;color:var(--p700);margin-top:3px;line-height:1.3}td .pay-hint{max-width:150px}

/* ---------- "more" links: follow the tracks (replaces the yellow underline) ---------- */
:root{--paw-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg transform='rotate(90 12 12)'%3E%3Cpath d='M12 12.6c-3.1 0-6.2 3.4-6.2 6.3 0 1.8 1.4 2.8 3 2.8 1.4 0 2.1-.8 3.2-.8s1.8.8 3.2.8c1.6 0 3-1 3-2.8 0-2.9-3.1-6.3-6.2-6.3z'/%3E%3Cellipse cx='5.4' cy='10.4' rx='2.1' ry='2.8' transform='rotate(-24 5.4 10.4)'/%3E%3Cellipse cx='18.6' cy='10.4' rx='2.1' ry='2.8' transform='rotate(24 18.6 10.4)'/%3E%3Cellipse cx='9.3' cy='5.6' rx='2.2' ry='3'/%3E%3Cellipse cx='14.7' cy='5.6' rx='2.2' ry='3'/%3E%3C/g%3E%3C/svg%3E")}
.more{border-bottom:0;display:inline-flex;align-items:center;gap:8px;color:var(--p700)}
.more::after{content:"";width:74px;height:20px;flex:none;background:linear-gradient(90deg,var(--p700),rgba(74,31,160,.15));
  -webkit-mask:var(--paw-r) 0 0/20px 20px repeat-x;mask:var(--paw-r) 0 0/20px 20px repeat-x;-webkit-mask-size:20px 20px;mask-size:20px 20px;
  -webkit-mask-repeat:space no-repeat;mask-repeat:space no-repeat;transition:transform .2s}
.more:hover{color:var(--ink)}.more:hover::after{transform:translateX(5px)}
.turned-away{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-family:var(--hand);color:#ffb4a8;font-size:1.02rem}.turned-away b{font-family:var(--display);font-size:1.25rem;color:#fff;margin-right:3px}
.code-box{width:100%;font:12px/1.45 ui-monospace,Menlo,Consolas,monospace;background:var(--paper);border:1.5px solid var(--line);padding:8px;resize:vertical}
.text-us{font-family:var(--hand);font-size:1.05rem;margin:10px 0 0}.text-us a{font-weight:700}
.cost-sheet{background:var(--white);border:1px solid var(--edge);padding:22px 24px;box-shadow:0 10px 28px -14px rgba(43,18,89,.25);margin-bottom:40px}
.cost-typical{font:900 clamp(2.6rem,6vw,4rem)/1 var(--display);color:var(--p700);margin:4px 0 8px}.cost-typical span{font-size:.4em;color:var(--ink);letter-spacing:.08em;text-transform:uppercase;vertical-align:middle;margin-right:6px}
.cost-range{font-size:1.15rem;margin:0 0 10px}
.source-check{background:var(--p50);border-left:4px solid var(--p700);padding:10px 14px;font-size:.9rem}.source-check code{background:#fff;padding:1px 5px;border:1px solid var(--line)}
.local-signals{border:1px solid var(--edge);background:var(--white);padding:18px 22px;margin:8px 0 28px;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.ls-facts{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:10px}.ls-facts li{display:flex;gap:12px;align-items:baseline}
.ls-facts b{font:900 1.9rem/1 var(--display);color:var(--p700);min-width:3.2ch}.ls-facts span{font-size:.98rem}
.ls-reviews{display:grid;gap:12px;margin:6px 0 12px}.ls-reviews figure{margin:0;padding-left:12px;border-left:3px solid var(--tape)}.ls-reviews blockquote{margin:4px 0}
.benefits .benefit{background:var(--white);border:1px solid var(--edge);padding:16px 18px;position:relative}
.benefits .benefit .paw{color:var(--p700);position:absolute;top:14px;right:14px}
.benefits .benefit h3{font:900 1.25rem/1.05 var(--display);text-transform:none;letter-spacing:-.01em;margin:0 30px 6px 0;color:var(--ink)}
.partner-logo{background:#fff;border:1px solid var(--edge);box-shadow:0 10px 28px -14px rgba(43,18,89,.25);padding:18px 22px;margin:0 auto 22px;max-width:360px}.partner-logo img{display:block;width:100%;height:auto}
.partner-team-wrap{padding-bottom:0}.partner-team{margin:0 auto;max-width:980px;border:1px solid var(--edge);background:var(--white);box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.partner-team img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-bottom:1px solid var(--edge)}
.partner-team figcaption{padding:12px 18px 14px;font-size:.98rem}.partner-team .eyebrow{margin-bottom:2px}

/* ---------- services hub ---------- */
.jump{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}.jump a{font-family:var(--display);font-weight:700;text-transform:none;letter-spacing:-.01em;font-size:.95rem;color:var(--ink);text-decoration:none;border:1px solid var(--edge);padding:4px 10px;background:var(--white)}
.jump a:hover{background:var(--p100)}
.art-note{font-family:var(--hand);color:var(--p700);text-align:center;margin:4px 0 0;transform:none}
.trade-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px}
.trade-tile{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--edge);transition:transform .14s,box-shadow .14s}
.trade-tile:hover{transform:translate(-3px,-3px);box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.tt-band{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;height:84px;padding:10px 12px;background:var(--c);color:#fff;border-bottom:1px solid var(--edge);text-decoration:none}
.tt-band code{font:600 .66rem ui-monospace,Menlo,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.88);color:var(--ink);padding:2px 6px}
.tt-body{padding:14px 16px 6px;flex:1}
.tt-body h3{font:900 1.5rem/1 var(--display);text-transform:none;margin:0 0 6px}.tt-body h3 a{color:var(--ink);text-decoration:none}.tt-body h3 a:hover{color:var(--p700)}
.tt-body p{font-size:.92rem;color:var(--mute);margin:0 0 10px}
.tt-subs{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}
.tt-subs a{display:inline-block;font-size:.8rem;font-weight:600;padding:3px 8px;border:1.5px solid var(--line);color:var(--ink);text-decoration:none;background:var(--paper)}
.tt-subs a:hover{border-color:var(--p700);color:var(--p700)}.tt-more a{border-style:dashed}
.tt-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 16px;border-top:1px dashed var(--line);margin-top:10px}
.tt-pack{font-family:var(--hand);color:var(--p700);font-size:.95rem;display:inline-flex;align-items:center;gap:4px}
.tt-go{font-family:var(--display);font-weight:700;text-transform:none;letter-spacing:-.01em;text-decoration:none;color:var(--ink);background:var(--p100);border:1px solid var(--edge);padding:3px 10px;font-size:.9rem}
.tt-go:hover{background:var(--ink);color:var(--p200)}
.urgent-band{background:linear-gradient(175deg,var(--ink),#2a1844);color:#d9d1e6;padding:56px 0}
.urgent-band .eyebrow{color:var(--p200)}.urgent-band h2{color:#fff!important;font-size:clamp(2rem,4vw,3rem);margin:0 0 8px}
.ub-head{max-width:640px;margin-bottom:22px}
.ub-list{list-style:none;margin:0 0 20px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.ub-list a{display:flex;align-items:center;gap:10px;padding:12px 14px;border:2px solid rgba(255,255,255,.2);color:#fff;text-decoration:none;font-weight:600}
.ub-list a:hover{border-color:var(--p200);color:var(--p200)}
.ub-dot{width:10px;height:10px;border-radius:50%;background:#ff6b5a;box-shadow:0 0 0 4px rgba(255,107,90,.25);flex:none}
.more-light{color:var(--p200)}
.more-light::after{background:linear-gradient(90deg,var(--tape),rgba(245,197,24,.15))}.more-light:hover{color:#fff}

/* ---------- how it works ---------- */
.hiw-slip{transform:none}
.mini-tape{margin:14px 0 0;height:44px}.mini-tape li b{font-size:1.4rem}
.mini-tape li{opacity:.35}.mini-tape li.on{opacity:1}
.steps-line{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;position:relative}
.steps-line::before{content:"";position:absolute;left:4%;right:4%;top:28px;border-top:1px dashed var(--edge);z-index:0}
.steps-line li{position:relative;background:var(--white);border:1px solid var(--edge);padding:52px 16px 16px;z-index:1}
.steps-line li.hot{background:var(--p100);box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.sl-n{position:absolute;top:-2px;left:-2px;width:46px;height:46px;display:grid;place-items:center;background:var(--ink);color:var(--p200);font:900 1.6rem var(--display)}
.sl-ico{position:absolute;top:12px;right:12px;width:30px;height:30px;fill:none;stroke:var(--p700);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.steps-line li.hot .sl-ico{stroke:var(--ink)}
.steps-line h3{font:900 1.3rem/1 var(--display);text-transform:none;margin:0 0 6px;color:var(--ink)}
.steps-line p{margin:0;font-size:.92rem}
.who{background:var(--white);border:1px solid var(--edge);padding:18px 20px;position:relative}
.who-n{display:inline-grid;place-items:center;min-width:54px;height:54px;padding:0 10px;background:var(--p700);color:#fff;font:900 1.7rem var(--display);margin-bottom:10px;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.who h3{font:900 1.45rem/1 var(--display);text-transform:none;margin:0 0 6px;color:var(--ink)}.who p{margin:0;font-size:.95rem}
.money{background:#fff;border:1px solid var(--edge);border-top:14px solid var(--ink);padding:16px 22px 20px;box-shadow:0 10px 28px -14px rgba(43,18,89,.25);transform:none}
.money-top{display:flex;justify-content:space-between;align-items:baseline;border-bottom:3px double var(--ink);padding-bottom:6px;margin-bottom:8px}
.money-top strong{font:900 1.9rem var(--display);text-transform:none}.money-top span{font-family:var(--hand);color:var(--red)}
.money .ticket-line{grid-template-columns:140px 1fr}
.never{list-style:none;margin:0 0 16px;padding:0}
.never li{position:relative;padding:9px 0 9px 36px;border-bottom:1px dashed var(--line)}
.never li::before{content:"✕";position:absolute;left:0;top:6px;width:24px;height:24px;display:grid;place-items:center;background:var(--red);color:#fff;font-weight:800;font-size:.85rem;transform:none}
@media (max-width:900px){.steps-line{grid-template-columns:1fr 1fr}.steps-line::before{display:none}}
@media (max-width:600px){.steps-line{grid-template-columns:1fr}.money .ticket-line{grid-template-columns:110px 1fr}}
.nw{white-space:nowrap}

/* ---------- areas ---------- */
.area-stats{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:18px 30px}
.area-stats b{display:block;font:900 2.6rem/1 var(--display);color:var(--p700)}.area-stats span{font-family:var(--hand);font-size:1rem}
.town-find{display:block;margin-top:24px;max-width:420px;background:var(--white);border:1px solid var(--edge);box-shadow:0 10px 28px -14px rgba(43,18,89,.25);padding:8px 14px}
.town-find span{display:block;font:700 .82rem var(--display);text-transform:none;letter-spacing:-.01em;color:var(--mute)}
.town-find input{width:100%;border:0;font:600 1.1rem var(--font);color:var(--ink);background:transparent;padding:2px 0}.town-find input:focus{outline:0}
.town-map{margin:0;background:var(--white);border:1px solid var(--edge);padding:10px;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.town-map svg{display:block;width:100%;height:auto;background-image:linear-gradient(rgba(74,31,160,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(74,31,160,.06) 1px,transparent 1px);background-size:20px 20px}
.town-map circle{transition:r .15s}.town-map a:hover circle,.town-map a:focus circle{r:13}
.town-map circle.dim{opacity:.15}
.town-map figcaption{font-size:.82rem;color:var(--mute);margin-top:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.dot{display:inline-block;width:11px;height:11px;border-radius:50%;border:2.5px solid var(--p700);background:var(--paper)}.dot.on{background:var(--p700)}
.county-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px}
.county-card{background:var(--white);border:1px solid var(--edge);border-top:10px solid var(--cc);padding:16px 18px 18px;display:flex;flex-direction:column}
.county-card header h2{font:900 1.8rem/1 var(--display);text-transform:none;margin:0}.county-card header h2 a{color:var(--ink);text-decoration:none}
.county-card header p{margin:4px 0 12px;font-size:.92rem;color:var(--mute)}
.town-list{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:6px;max-height:260px;overflow:auto}
.town-list a{display:inline-block;font-size:.84rem;font-weight:600;padding:3px 8px;border:1.5px solid var(--line);color:var(--ink);text-decoration:none;background:var(--paper)}
.town-list a:hover{border-color:var(--cc);color:var(--cc)}
.town-list a.has-pack{border-color:var(--cc);background:var(--white)}.town-list a.has-pack::before{content:"● ";color:var(--cc)}
.county-card .more{margin-top:auto}
.no-town{margin-top:20px}
.map-legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin:6px 0 0;font-size:.8rem;font-weight:600}.map-legend span::before{content:"";display:inline-block;width:10px;height:10px;background:var(--cc);margin-right:5px;vertical-align:-1px}

/* ---------- help center ---------- */
.help-hero{padding:46px 0 0}.help-hero .help-find{margin-bottom:40px}.help-hero h1{margin-bottom:6px}
.help-find{max-width:620px}
.help-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.help-col h2{display:flex;align-items:center;gap:10px;font:900 2rem/1 var(--display);text-transform:none;margin:0 0 14px}
.help-col h2 svg{width:34px;height:34px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;background:var(--p700);padding:6px;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.qa{background:var(--white);border:1px solid var(--edge);margin-bottom:10px}
.qa summary{cursor:pointer;list-style:none;padding:13px 44px 13px 16px;font-weight:700;color:var(--ink);position:relative}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";position:absolute;right:14px;top:50%;transform:translateY(-50%);font:900 1.5rem var(--display);color:var(--p700)}
.qa[open] summary::after{content:"–"}.qa[open]{box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}.qa[open] summary{border-bottom:1px dashed var(--line)}
.qa p{margin:0;padding:12px 16px 14px;font-size:.96rem}
.help-contact{margin-top:36px;display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:center;background:var(--p100);border:1px solid var(--edge);padding:22px 26px;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.help-contact h2{font:900 2rem var(--display);text-transform:none}.help-contact .eyebrow{color:var(--ink)}.help-contact p{margin:0}
.help-links{list-style:none;margin:0;padding:0}.help-links li{border-bottom:1px solid var(--edge)}.help-links a{display:block;padding:8px 0;font-weight:700;color:var(--ink);text-decoration:none}.help-links a:hover{color:var(--p700)}
.help-links a::after{content:" →"}
@media (max-width:900px){.help-cols,.help-contact{grid-template-columns:1fr}}

/* ---------- pack standards ---------- */
.std-permit{max-width:440px;margin:0 auto;transform:none;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.std-permit .checks li{padding-right:0}
.std-wolf{position:absolute;right:18px;bottom:16px;top:auto;color:var(--red);opacity:.85}
.badge-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.badge-card{background:var(--white);border:1px solid var(--edge);padding:16px 18px}
.badge-card header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.badge-card svg{width:40px;height:40px;flex:none;fill:none;stroke:var(--ok);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;background:#e8f4ee;padding:7px;border:2px solid var(--ok)}
.badge-card h3{margin:0;font-size:1rem}.badge-card .verified{font-size:1rem;margin:0}
.badge-card dt{font:700 .78rem var(--display);text-transform:none;letter-spacing:-.01em;color:var(--mute);margin-top:8px}
.badge-card dd{margin:2px 0 0;font-size:.93rem}
.not-card{background:var(--white);border:3px solid var(--red);padding:20px 22px;box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.not-card .eyebrow{color:var(--red)}
.std-permit{text-align:left}.std-permit > p.small{padding-right:64px}
/* keep the claw swipe on the same line as the last word */
.hl:has(.nw)::after{display:none}
.hl .nw::after{content:"";display:inline-block;width:.5em;height:.74em;margin-left:.1em;vertical-align:.08em;background:var(--red);-webkit-mask:var(--slash) center/contain no-repeat;mask:var(--slash) center/contain no-repeat}

/* ---------- carried-over pages and guides ---------- */
.legacy-head h1{font-size:clamp(2rem,4.8vw,3.6rem);max-width:22ch}
.byline-mark{display:flex;align-items:center;gap:8px;font-size:.92rem;color:var(--mute);margin:12px 0 0}.byline-mark .wolfmark{flex:none}
.legacy-body{font-size:1.05rem}.legacy-body h2{font-size:clamp(1.6rem,3.2vw,2.2rem);margin-top:1.6em}
.legacy-body img{max-width:100%;height:auto;border:1px solid var(--edge);margin:10px 0}
.legacy-hero-img{margin:0 0 1.4em}.legacy-hero-img img{width:100%;border:1px solid var(--edge);box-shadow:0 10px 28px -14px rgba(43,18,89,.25)}
.legacy-note{border-top:1px dashed var(--line);padding-top:12px;margin-top:2em}
.side-pack{margin-top:22px}.side-pack .pro{margin-bottom:10px}
.guide-group{font:900 1.8rem var(--display);text-transform:none;margin:1.6em 0 .5em}.guide-group:first-child{margin-top:0}
.guide-list{list-style:none;margin:0;padding:0;columns:2;column-gap:34px}
.guide-list li{break-inside:avoid;padding:8px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px}
.guide-list a{font-weight:600;color:var(--ink);text-decoration:none}.guide-list a:hover{color:var(--p700)}.guide-list span{font-size:.82rem;color:var(--mute);white-space:nowrap}
@media (max-width:760px){.guide-list{columns:1}}
.about-art{display:grid;place-items:center}.about-art .pack-row{gap:6px}
.about-stats{margin:0 0 12px;display:grid;gap:10px}.about-stats div{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px dashed var(--line);padding-bottom:8px}
.about-stats dt{font-size:.9rem;color:var(--mute)}.about-stats dd{margin:0;font:900 1.8rem var(--display)}

/* ---------- town hub ---------- */
.town-facts{background:var(--paper,#fff);border:1px solid var(--edge);box-shadow:0 10px 28px -14px rgba(43,18,89,.25);padding:20px 22px;align-self:center}
.tf-title{font:900 1.25rem var(--display);text-transform:none;margin:0 0 10px;display:flex;align-items:center;gap:8px}
.town-facts dl{margin:0;display:grid;gap:0}.town-facts dl div{display:grid;grid-template-columns:42% 1fr;gap:10px;padding:9px 0;border-top:1px dashed var(--line)}
.town-facts dt{font-size:.82rem;color:var(--mute);text-transform:uppercase;letter-spacing:.04em}.town-facts dd{margin:0;font-weight:600}
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.why-card{border:1px solid var(--edge);border-top:8px solid var(--c);padding:18px;background:var(--paper,#fff);display:flex;flex-direction:column}
.why-card h3{font-size:1.15rem;margin:10px 0 6px}.why-card p{flex:1;font-size:.96rem}.why-card .more{font-weight:700}
.why-ico{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--ink);flex:none}
.town-trades{display:grid;gap:0;border-top:1px solid var(--edge)}
.tt-row{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line)}
.tt-row h3{font-size:1.08rem;margin:2px 0 4px}.tt-row h3 a{color:var(--ink)}.tt-row p{margin:0;font-size:.94rem;color:var(--ink2,var(--ink))}
.tt-subs-inline{margin-top:6px!important;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.86rem}
.tt-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:130px}
.cover{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border:1px solid var(--line);color:var(--mute)}
.cover.on{border-color:var(--ink);background:var(--c);color:#fff;font-weight:700}
.guide-list.one{columns:1}
@media (max-width:760px){.tt-row{grid-template-columns:auto 1fr}.tt-side{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}}
.town-hero h1{font-size:clamp(2.2rem,4.6vw,4rem);overflow-wrap:anywhere}

/* =====================================================================
   Modern skin (supersedes the job-site theme above): one sans family, sentence-case headings, white surfaces,
   rounded cards with soft shadows, purple as the accent and gold only for the main call to action.
   ===================================================================== */
body{background:var(--bg);color:var(--body);font-feature-settings:"ss01";-webkit-font-smoothing:antialiased;letter-spacing:-.003em}
main:not(.main) h1,main:not(.main) h2,.trade-card h3,h1,h2{font-family:var(--display);font-weight:800;text-transform:none;letter-spacing:-.032em;line-height:1.08;color:var(--ink)}
main:not(.main) h1{font-size:clamp(2.3rem,5.2vw,3.9rem)}main:not(.main) h2{font-size:clamp(1.75rem,3.4vw,2.6rem)}
h3,h4{font-family:var(--font);text-transform:none;letter-spacing:-.015em}
.eyebrow,.trade-kicker,.kicker{font-family:var(--font)!important;font-size:.78rem!important;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--p600);transform:none!important;margin:0 0 10px}
.hl{color:var(--p600);background:none}.hl::after,.hl .nw::after{display:none!important;content:none!important}
/* header */
.site-header{background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--edge)}
.nav a,.nav button{font-weight:500;color:#3a3446;border-radius:10px}.nav a:hover,.nav button:hover{background:var(--p50);color:var(--p700)}
.demo-banner{background:var(--p950);color:#e9e2ff}
/* buttons */
.btn{font-family:var(--font);font-weight:700;text-transform:none;letter-spacing:-.005em;font-size:1rem;border-radius:12px;border:1px solid transparent;padding:12px 22px;box-shadow:none;transition:background .15s,box-shadow .15s,transform .15s}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px -12px rgba(43,18,89,.45)}.btn:active{transform:none;box-shadow:none}
.btn-primary{background:var(--p700);color:#fff}.btn-primary:hover{background:var(--p800)}
.btn-gold,.nav a.btn-gold{background:var(--tape);color:#1b1524}
.nav a.btn,.nav .btn{background:var(--p700);color:#fff;border-radius:999px;padding:9px 18px;box-shadow:none}.nav a.btn:hover{background:var(--p800);color:#fff}
.btn-ghost{background:#fff;color:var(--p700);border-color:var(--edge)}.btn-ghost:hover{background:var(--p50);border-color:var(--p200)}
.btn-sm{font-size:.88rem;padding:7px 14px;border-radius:10px;box-shadow:none}
.btn-danger{box-shadow:none}
/* surfaces */
.card,.table-wrap,.stat,.faq details{border:1px solid var(--edge);border-radius:16px;box-shadow:none}
.card-link:hover{border-color:var(--p200);box-shadow:var(--shadow);transform:translateY(-2px)}
.section-alt{background:var(--paper);border-block:0}
th{background:var(--p50)}
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=date],input[type=url],input[type=search],input[type=file],select,textarea{border:1px solid #d9d2e6;border-radius:10px}
input:focus,select:focus,textarea:focus{border-color:var(--p500);outline:3px solid rgba(112,70,216,.18);outline-offset:0}
.pill-list a{font-family:var(--font);font-weight:600;text-transform:none;letter-spacing:0;font-size:.92rem;border:1px solid var(--edge);border-radius:999px;padding:7px 14px;color:var(--ink);background:#fff}
.pill-list a:hover{background:var(--p50);border-color:var(--p200);color:var(--p700)}
.icon{border-radius:14px;background:var(--p50);color:var(--p700)}
.more{font-family:var(--font);font-weight:700;text-transform:none;letter-spacing:0;font-size:.98rem;color:var(--p700);border:0;background:none!important;padding:0}
.more::after{content:" →"!important;background:none!important}.more::before{display:none!important}.more:hover{color:var(--p800)}
.tape-rule,.page-head::after,.site-footer::before{display:none!important}
.disclosure{border-left:3px solid var(--p200)}
/* page heads + light heroes */
.hero,.page-head{background:linear-gradient(180deg,#f6f2fd 0%,#fff 100%);border:0}
.hero{padding:56px 0 24px}.page-head{padding:40px 0 36px}
.hero-search{border:1px solid var(--edge);border-radius:18px;box-shadow:0 16px 40px -14px rgba(74,31,160,.28);padding:6px;overflow:hidden}
.hero-search label{font-family:var(--font);text-transform:none;letter-spacing:0;font-size:.78rem;font-weight:600;border-right:1px solid var(--edge);padding:8px 16px}
.hero-search label:focus-within{background:var(--p50);border-radius:12px}
.hero-search .btn{border-radius:12px;font-size:1rem;padding:0 24px}
.trust-row{font-family:var(--font);font-size:.92rem;font-weight:600;color:#4b4558}
.trust-row li::before{content:"✓ ";color:#17a35b}
.house .callout text{font:500 15px var(--font)}
/* footer */
.site-footer{background:#120d1c;border-top:0;padding-top:56px}
.site-footer h3{font-family:var(--font);font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;color:#b7a8e6}
/* misc themed objects soften */
.trade-card{border-radius:22px}
.ticket,.ticket-top{border-radius:16px}
.stamp,.hero-seal{display:none}

/* ---------- home: dark photo hero ---------- */
.hero.hero-photo{position:relative;background:#120d1c url(img/hero-home.jpg) center 40%/cover;color:#fff;padding:96px 0 104px;overflow:hidden}
.hero.hero-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,11,23,.95) 0%,rgba(27,14,56,.85) 45%,rgba(27,14,56,.2) 100%)}
.hero.hero-photo .wrap{position:relative}
.hero-photo .hero-copy{max-width:660px}
.hero-photo h1{color:#fff!important;font-size:clamp(2.6rem,6vw,4.6rem)!important;max-width:none;letter-spacing:-.04em;line-height:1.02}
.hero-photo h1 .hl{background:linear-gradient(90deg,#c4b5fd,#f5c518);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-photo .eyebrow{color:#c4b5fd}
.hero-photo .lead{color:#ddd5ee!important;font-size:1.15rem;max-width:34em}
.hero-photo .hero-search{background:rgba(255,255,255,.1);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.2);box-shadow:none;max-width:640px}
.hero-photo .hero-search label{color:#bdb2d4;border-right-color:rgba(255,255,255,.16)}
.hero-photo .hero-search select,.hero-photo .hero-search input[type=text]{color:#fff}
.hero-photo .hero-search select option{color:#1b1524}
.hero-photo .hero-search input::placeholder{color:#a99ec0}
.hero-photo .hero-search label:focus-within{background:rgba(255,255,255,.08)}
.hero-stats{display:flex;flex-wrap:wrap;gap:16px 44px;margin:40px 0 0;padding:0;list-style:none}
.hero-stats b{display:block;font:800 1.9rem var(--display);letter-spacing:-.03em;color:#fff}.hero-stats span{font-size:.85rem;color:#bdb2d4}
.hero-photo .text-us{color:#cfc6e2}.hero-photo .text-us a{color:#fff}
@media (max-width:760px){.hero.hero-photo{padding:56px 0 64px}.hero.hero-photo::before{background:linear-gradient(180deg,rgba(15,11,23,.9),rgba(27,14,56,.88))}
  .hero-photo .hero-search{grid-template-columns:1fr 1fr}.hero-photo .hero-search .btn{grid-column:1/-1;padding:13px}}

/* ---------- modern skin: components that used to be job-site objects ---------- */
/* trade chips (home) and tiles (services): tinted icon, clean card */
.chips{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.chip,.chip:nth-child(3n+1),.chip:nth-child(3n){transform:none;border:1px solid var(--edge);border-radius:18px;padding:20px;box-shadow:none;transition:box-shadow .18s,transform .18s,border-color .18s}
.chip:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--p200)}
.chip-color{height:auto;width:48px;height:48px;border-radius:14px;place-items:center;padding:0;margin-bottom:14px;background:color-mix(in srgb,var(--c) 16%,#fff);color:color-mix(in srgb,var(--c) 75%,#1b1524)}
.chip strong{font-family:var(--font);font-weight:700;text-transform:none;font-size:1.05rem;letter-spacing:-.01em}
.chip small{font-size:.86rem;padding:4px 0 0}.chip code{display:none}
.trade-tile{border-radius:20px;overflow:hidden}.trade-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.tt-band{height:auto;padding:20px 20px 0;background:none;border:0;color:color-mix(in srgb,var(--c) 75%,#1b1524);justify-content:flex-start}
.tt-band svg{width:48px;height:48px;padding:12px;border-radius:14px;background:color-mix(in srgb,var(--c) 16%,#fff);box-sizing:border-box}
.tt-band code{display:none}
.tt-body{padding:14px 20px 8px}.tt-body h3{font:700 1.15rem/1.25 var(--font);text-transform:none;letter-spacing:-.01em}
.tt-subs a{border:1px solid var(--edge);border-radius:999px;background:#fff;padding:4px 10px}
/* "you pick the number": segmented control instead of a tape measure */
.tape-wrap{filter:none;gap:0}
.tape-case{display:none}
.tape{background:var(--p50);border:1px solid var(--edge);border-radius:20px;height:auto;padding:8px;gap:8px}
.tape li,.tape li:last-child{background:#fff;border-radius:14px;border:1px solid var(--edge);display:grid;place-items:center;padding:18px 0}
.tape li:first-child{background:var(--p700);border-color:var(--p700)}
.tape b,.tape li:first-child b{position:static;font:800 2.4rem/1 var(--display);color:var(--p700)}.tape li:first-child b{color:#fff}
.tape-notes{padding-left:0;margin-top:14px}.tape-notes li{text-align:center;border:0;padding:0 10px}
.tape-notes strong{font-family:var(--font);font-weight:700;font-size:1rem;text-transform:capitalize}
/* punch list: a clean checklist card */
.punch,.sticky .punch{transform:none;background:#fff;border:1px solid var(--edge);border-radius:20px;border-top:1px solid var(--edge);box-shadow:var(--shadow);padding:22px 24px}
.punch::before,.punch::after{display:none}
.punch-title{font:700 1.1rem var(--font);text-decoration:none;line-height:1.4;margin-bottom:8px;padding-left:0!important}
.punch ol{font-family:var(--font);font-size:.95rem}
.punch li{line-height:1.5;padding:10px 0 10px 36px!important;border-top:1px solid var(--line);white-space:normal}
.punch li::before{left:0!important;top:11px;width:22px;height:22px;border-radius:50%;border:0;background:#e7f6ee}
.punch li::after{left:7px!important;top:16px;width:9px;height:5px;border-width:0 0 2px 2px;border-color:#17a35b;transform:none}
.punch b{font-size:1rem;font-weight:700}
/* contractor callout: dark card instead of hazard tape */
.trade-card{background:linear-gradient(135deg,var(--p900),#120d1c);color:#ddd5ee;border:0;border-radius:24px;padding:36px;box-shadow:none}
.trade-card::before{display:none}
.trade-card h3{color:#fff!important;font-family:var(--display);font-size:clamp(1.5rem,3vw,2.1rem);font-weight:800;letter-spacing:-.03em}
.trade-card p{color:#ddd5ee}.trade-card .trade-kicker{color:#c4b5fd}
.trade-card .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.trade-card .btn-primary{background:var(--tape);color:#1b1524}
.pack-open small{color:#c4b5fd}
/* pack test: calm dark band */
.pack-test{background:linear-gradient(180deg,#120d1c,var(--p900));padding:72px 0}
.pack-test::before,.pack-test .ridge,.pack-test .stamp,.paw-trail{display:none}
.pack-test h3,.pack-test strong,.pack-test b,.pt-count{text-transform:none!important;font-family:var(--font)!important;letter-spacing:-.01em!important}
.hero.hero-photo::before{background:linear-gradient(90deg,rgba(15,11,23,.94) 0%,rgba(27,14,56,.82) 40%,rgba(27,14,56,.15) 75%,rgba(27,14,56,0) 100%)}
/* estimate pad -> request card */
.ticket{background:#fff;border:1px solid var(--edge);border-top:1px solid var(--edge);border-radius:20px;box-shadow:var(--shadow);padding:24px}
.ticket-top{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:4px}
.ticket-top strong{font-size:1.35rem;font-weight:800;letter-spacing:-.02em}
.ticket-top span{font:700 .72rem var(--font);text-transform:uppercase;letter-spacing:.12em;color:var(--p600);background:var(--p50);padding:4px 10px;border-radius:999px}
.ticket-line{border-bottom:1px solid var(--line);grid-template-columns:96px 1fr;align-items:center}
.ticket-line span{font-family:var(--font);font-size:.8rem;font-weight:600}
.ticket-line b,.ticket-line input[type=text]{font:600 1rem var(--font);color:var(--ink)}
.ticket-line input[type=text]{outline:0;border:1px solid #d9d2e6;border-radius:10px;padding:8px 10px}
.ticket-line input[type=text]:focus{outline:3px solid rgba(112,70,216,.18);border-color:var(--p500)}
.ticket-line select{border-radius:10px}
.hero-search label:focus-within{background:var(--p50)}
.leadslip{border:1px solid var(--edge);border-top:1px solid var(--edge);border-radius:20px;box-shadow:var(--shadow);transform:none}
.leadslip-top{border-bottom:1px solid var(--line)}.leadslip-top strong{font-size:1.4rem;font-weight:800;letter-spacing:-.02em}.leadslip-top span{font-family:var(--font);font-size:.8rem}
.why-card{border-radius:18px;border-top:1px solid var(--edge)}
.footer .site-footer h3,.site-footer h3{color:#b7a8e6}
@media (max-width:760px){
  .hero.hero-photo::before{background:linear-gradient(180deg,rgba(15,11,23,.92),rgba(27,14,56,.9))}
  .grid.g4,.grid.g3{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .hero-stats{gap:14px 28px}.hero-stats b{font-size:1.5rem}
}
/* contractor callout on dark */
.trade-card .pack-row .wolfmark{color:#c4b5fd!important;opacity:.85}
.trade-card .pack-open{color:#c4b5fd;opacity:1}.trade-card .pack-open i{border-color:rgba(196,181,253,.5)}
.trade-card .actions{display:flex;flex-wrap:wrap;gap:10px}
.tc-perks{list-style:none;margin:0;padding:6px;display:grid;gap:6px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:18px}
.tc-perks li{display:grid;grid-template-columns:28px 1fr;column-gap:12px;padding:12px 14px;border-radius:12px}
.tc-perks li::before{content:"✓";grid-row:span 2;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:rgba(245,197,24,.16);color:var(--tape);font-weight:800;font-size:.85rem}
.tc-perks b{color:#fff;font-size:.98rem}.tc-perks span{font-size:.86rem;color:#bdb2d4;line-height:1.45}
@media (max-width:760px){.trade-card{padding:26px 20px}.trade-card .actions .btn{flex:1 1 100%}.trade-wide{gap:20px}}

/* =================== main navigation: homeowner menu with mega menus, separate contractor menu =================== */
.audience-bar{background:var(--p950);color:#cfc6e2;font-size:.84rem}
.audience-bar .wrap{display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:36px;flex-wrap:wrap}
.audience-bar b{color:#fff;font-weight:600}.audience-bar a{color:#fff;font-weight:600;text-decoration:none}.audience-bar a:hover{color:var(--tape)}
.ab-pro{display:flex;gap:8px;align-items:center}.ab-pro span{color:#6f6488}
.site-header{position:sticky;top:0;z-index:40}
.site-header .nav-wrap{display:flex;align-items:center;gap:28px;min-height:76px;flex-wrap:nowrap}
.mnav{display:flex;align-items:center;flex:1;gap:18px;min-width:0}
.mnav-list{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:2px}
.mnav-btn,.mnav-link{display:inline-flex;align-items:center;gap:6px;font:600 1.02rem var(--font);color:var(--ink);background:none;border:0;padding:10px 14px;border-radius:12px;cursor:pointer;text-decoration:none;white-space:nowrap;letter-spacing:-.005em}
.mnav-btn:hover,.mnav-link:hover,.mnav-btn[aria-expanded=true]{background:var(--p50);color:var(--p700)}
.mnav-btn[aria-current],.mnav-link[aria-current]{color:var(--p700)}
.mnav-btn i{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s;opacity:.6}
.mnav-btn[aria-expanded=true] i{transform:translateY(1px) rotate(-135deg)}
.mnav-right{margin-left:auto;display:flex;align-items:center;gap:6px}
.nav-cta{border-radius:999px;padding:11px 22px;font-size:1rem}
.pro-btn .pro-tag{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--ink);border-radius:999px;padding:5px 12px;font-size:.92rem;font-weight:700}
.pro-btn:hover,.pro-btn[aria-expanded=true]{background:none}.pro-btn:hover .pro-tag,.pro-btn[aria-expanded=true] .pro-tag{background:var(--ink);color:#fff}
.pro-btn i{display:none}
/* panels */
.has-mega,.has-drop{position:static}
.has-drop{position:relative}
.mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--edge);border-bottom:1px solid var(--edge);box-shadow:0 30px 60px -30px rgba(43,18,89,.35);display:none}
.drop{position:absolute;left:0;top:calc(100% + 8px);min-width:320px;background:#fff;border:1px solid var(--edge);border-radius:18px;box-shadow:0 24px 50px -20px rgba(43,18,89,.35);padding:8px;display:none;z-index:2}
.drop-right{left:auto;right:0}
.has-mega.open>.mega,.has-drop.open>.drop{display:block;animation:navIn .14s ease-out}
@keyframes navIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.mega-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,1.15fr);gap:8px 28px;padding-top:28px;padding-bottom:24px}
.mega-areas{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.mega-h{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--mute);margin:0 0 10px}.mega-h a{color:var(--p700);text-decoration:none}
.mega-col ul{list-style:none;margin:0;padding:0}
.mega-col li a{display:flex;align-items:center;gap:10px;padding:7px 8px;margin:0 -8px;border-radius:10px;color:var(--ink);font-weight:500;font-size:.97rem;text-decoration:none}
.mega-col li a:hover{background:var(--p50);color:var(--p700)}
.mi{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;flex:none;background:color-mix(in srgb,var(--c) 15%,#fff);color:color-mix(in srgb,var(--c) 75%,#1b1524)}
.mega-all a{color:var(--p700)!important;font-weight:600!important}
.mega-side{background:var(--paper);border-radius:18px;padding:18px 20px;align-self:start}
.mega-urgent li a{font-size:.93rem;padding:5px 8px}
.mega-urgent li a::before{content:"";width:7px;height:7px;border-radius:50%;background:#e0533f;flex:none}
.mega-cta{margin-top:14px;padding-top:14px;border-top:1px solid var(--edge);display:grid;gap:4px}
.mega-cta b{color:var(--ink)}.mega-cta span{font-size:.88rem;color:var(--mute);margin-bottom:8px}.mega-cta .btn{justify-self:start}
.mega-foot{background:var(--paper);border-top:1px solid var(--edge)}
.mega-foot .wrap{display:flex;gap:28px;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}
.mega-foot a{font-weight:600;font-size:.92rem;color:var(--p700);text-decoration:none}
.drop a{display:grid;gap:1px;padding:10px 14px;border-radius:12px;text-decoration:none;color:var(--ink)}
.drop a:hover{background:var(--p50)}
.drop a b{font-weight:700;font-size:.97rem}.drop a span{font-size:.85rem;color:var(--mute)}
.drop-note{margin:4px 14px 6px;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--mute)}
.drop-actions{display:flex;gap:8px;padding:10px 14px 8px;border-top:1px solid var(--edge);margin-top:6px}
.drop-actions .btn{flex:1;padding:9px 10px}
.nav-toggle{display:none}
.site-header .inline-form{margin:0}
/* hover opens on mouse devices; click/keyboard handled in app.js */

/* ----- mobile: full-height panel with accordions ----- */
@media (max-width:1100px){
  .audience-bar .ab-home{display:none}.audience-bar .wrap{justify-content:center}
  .site-header .nav-wrap{min-height:64px}
  .nav-toggle{display:grid;place-items:center;margin-left:auto;width:46px;height:46px;border:1px solid var(--edge);border-radius:12px;background:#fff;cursor:pointer}
  .nav-toggle span:first-child,.nav-toggle span:first-child::before,.nav-toggle span:first-child::after{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;position:relative;transition:transform .2s,background .2s}
  .nav-toggle span:first-child::before,.nav-toggle span:first-child::after{content:"";position:absolute;left:0}
  .nav-toggle span:first-child::before{top:-6px}.nav-toggle span:first-child::after{top:6px}
  .nav-toggle[aria-expanded=true] span:first-child{background:transparent}
  .nav-toggle[aria-expanded=true] span:first-child::before{transform:translateY(6px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:first-child::after{transform:translateY(-6px) rotate(-45deg)}
  .mnav{display:none;position:fixed;left:0;right:0;top:var(--nav-top,100px);bottom:0;background:#fff;overflow-y:auto;flex-direction:column;align-items:stretch;padding:12px 16px 32px;gap:12px;border-top:1px solid var(--edge)}
  .mnav.open{display:flex}
  .mnav-list{flex-direction:column;align-items:stretch;gap:0}
  .mnav-list>li{border-bottom:1px solid var(--line)}
  .mnav-btn,.mnav-link{width:100%;justify-content:space-between;font-size:1.12rem;padding:16px 4px;border-radius:0}
  .mnav-btn:hover,.mnav-btn[aria-expanded=true],.mnav-link:hover{background:none}
  .mega,.drop{position:static;box-shadow:none;border:0;border-radius:0;min-width:0;padding:0 0 12px;animation:none}
  .mega .wrap{padding:0}.mega-grid{grid-template-columns:1fr 1fr;padding:0 0 8px;gap:4px 16px}
  .mega-side{grid-column:1/-1}.mega-foot{background:none;border:0}.mega-foot .wrap{gap:12px 20px;padding:4px 0}
  .mnav-right{margin:8px 0 0;flex-direction:column;align-items:stretch;gap:10px}
  .mnav-right .mnav-link{justify-content:center;border:1px solid var(--edge);border-radius:12px;padding:12px}
  .nav-cta{justify-content:center;padding:14px}
  .pro-menu{order:3;border:1px solid var(--edge);border-radius:16px;padding:4px 12px}
  .pro-btn{justify-content:space-between}.pro-btn i{display:block}
  body.nav-open{overflow:hidden}
}
@media (max-width:560px){.mega-grid{grid-template-columns:1fr}.mega-areas{grid-template-columns:1fr 1fr}}
.site-header .mega .wrap{min-height:0;flex-wrap:wrap}
.site-header .mega .mega-grid{display:grid;align-items:start}
.mega-areas{grid-template-columns:repeat(6,minmax(0,1fr))}
.nav-cta,.drop-actions .btn{white-space:nowrap}
.drop-right{min-width:360px}
@media (max-width:1240px) and (min-width:1101px){.mnav-btn,.mnav-link{padding:10px 10px;font-size:.98rem}.site-header .nav-wrap{gap:16px}}
@media (max-width:1100px){.mega-areas{grid-template-columns:1fr 1fr}}
.site-header .mega .mega-services{grid-template-columns:repeat(var(--cols,3),minmax(0,1fr)) minmax(260px,1.1fr)}
.ab-pro .ab-q{color:inherit}
@media (max-width:1100px){
  .site-header{backdrop-filter:none;background:#fff}
  .site-header .mega .mega-services{grid-template-columns:1fr 1fr}
  .audience-bar{font-size:.8rem}.audience-bar .wrap{min-height:32px;flex-wrap:nowrap}.ab-pro{gap:6px;white-space:nowrap}
}
@media (max-width:420px){.ab-pro .ab-q{display:none}.ab-pro::before{content:"Contractors:";color:#cfc6e2}}
@media (max-width:560px){.site-header .mega .mega-services{grid-template-columns:1fr}}

/* ---------- partner page: team photo hero, logo on a white card ---------- */
.partner-hero{padding:48px 0 56px}
.partner-hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:48px;align-items:center}
.partner-hero h1{max-width:16ch}
.partner-card{background:#fff;border-radius:28px;padding:30px 28px 26px;box-shadow:0 30px 70px -24px rgba(15,11,23,.55),0 0 0 1px rgba(27,21,36,.06);text-align:center;display:grid;justify-items:center;gap:14px;max-width:380px;justify-self:end;width:100%}
.partner-card .partner-logo{background:none;border:0;box-shadow:none;padding:0;margin:0;max-width:260px;width:100%}
.partner-card .partner-logo img{display:block;width:100%;height:auto;max-height:120px;object-fit:contain}
.partner-name{font:800 1.6rem var(--display);letter-spacing:-.03em;color:var(--ink);margin:0}
.partner-x{display:flex;align-items:center;gap:12px;width:100%;color:var(--mute)}
.partner-x::before,.partner-x::after{content:"";flex:1;height:1px;background:var(--edge)}
.partner-x span{font-size:1.2rem;line-height:1}
.partner-wolf{width:190px;color:var(--brand,#2c1154)}.partner-wolf svg{width:100%;height:auto}
.partner-badge{display:flex;align-items:center;gap:12px;background:var(--p50);border:0;border-radius:18px;padding:12px 18px;width:100%;justify-content:center;font:inherit;transform:none}
.partner-badge b{font:800 2.6rem/1 var(--display);letter-spacing:-.04em;color:var(--p700)}
.partner-badge span{font-size:.9rem;font-weight:600;color:var(--ink);text-align:left;line-height:1.3;max-width:12ch}
.partner-hero-photo{position:relative;background:#120d1c var(--photo) center 30%/cover;color:#fff;padding:72px 0 0;overflow:hidden}
.partner-hero-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,11,23,.92) 0%,rgba(27,14,56,.78) 45%,rgba(27,14,56,.35) 100%)}
.partner-hero-photo>*{position:relative}
.partner-hero-photo h1{color:#fff!important}
.partner-hero-photo h1 .hl{background:linear-gradient(90deg,#c4b5fd,#f5c518);-webkit-background-clip:text;background-clip:text;color:transparent}
.partner-hero-photo .lead{color:#ddd5ee}
.partner-hero-photo .eyebrow{color:#c4b5fd}
.partner-hero-photo .crumbs,.partner-hero-photo .crumbs a,.partner-hero-photo .crumbs span[aria-current]{color:#cfc6e2}
.partner-hero-photo .btn-ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.3)}
.partner-hero-photo .partner-hero-grid{padding-bottom:64px}
.partner-caption{margin:0 auto;padding-top:14px;padding-bottom:16px;font-size:.92rem;color:#cfc6e2;border-top:1px solid rgba(255,255,255,.14)}
.partner-caption span{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--tape);margin-right:8px}
@media (max-width:900px){.partner-hero-grid{grid-template-columns:1fr;gap:28px}.partner-card{justify-self:start}.partner-hero-photo::before{background:linear-gradient(180deg,rgba(15,11,23,.85),rgba(27,14,56,.88))}}
.partner-hero-photo p.lead,.partner-hero-photo .lead{color:#ddd5ee!important}
.site-footer a{overflow-wrap:anywhere}

/* ---------- about ---------- */
.about-hero{background-size:cover;background-position:center 55%}
.about-hero .crumbs,.about-hero .crumbs a,.about-hero .crumbs span[aria-current]{color:#cfc6e2}
.hero-photo .btn-ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.3)}
.about-story{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:56px;align-items:start}
.about-story h2{max-width:18ch}.about-lede{font-size:1.15rem;color:var(--ink)}
.about-stats-card{background:#fff;border:1px solid var(--edge);border-radius:24px;padding:24px;box-shadow:var(--shadow);position:sticky;top:110px}
.asc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.asc-head b{font-size:1.15rem;color:var(--ink)}
.asc-head span{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#137a45;background:#e7f6ee;border-radius:999px;padding:4px 10px}
.asc-head span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#17a35b;margin-right:6px;vertical-align:1px}
.asc-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.asc-grid div{background:var(--paper);border-radius:16px;padding:16px}
.asc-grid b{display:block;font:800 2.2rem/1 var(--display);letter-spacing:-.04em;color:var(--p700)}.asc-grid span{font-size:.86rem;color:var(--mute)}
.values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.value{background:#fff;border:1px solid var(--edge);border-radius:22px;padding:26px;display:flex;flex-direction:column}
.value .vi{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--p50);color:var(--p700);font-size:1.3rem;margin-bottom:16px}
.value h3{font-size:1.2rem;margin:0 0 8px}.value p{color:var(--body);flex:1}
.trade-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.trade-chips a{display:inline-flex;align-items:center;gap:10px;padding:8px 16px 8px 8px;border:1px solid var(--edge);border-radius:999px;color:var(--ink);font-weight:600;text-decoration:none;background:#fff;transition:border-color .15s,box-shadow .15s}
.trade-chips a:hover{border-color:var(--p200);box-shadow:var(--soft);color:var(--p700)}
.trade-chips .mi{border-radius:50%}
@media (max-width:900px){.about-story,.values{grid-template-columns:1fr}.about-stats-card{position:static}}
.more::after{width:auto!important;height:auto!important;-webkit-mask:none!important;mask:none!important;transform:none;color:inherit}
.more:hover::after{transform:translateX(3px)}
.site-footer a{overflow-wrap:normal}
@media (max-width:420px){.site-footer a{overflow-wrap:anywhere}}
/* desktop menus: no dead gap between the button and the panel, and a short grace period before closing */
@media (min-width:1101px){
  .mega,.drop{display:block;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .14s ease,transform .14s ease,visibility 0s linear .2s;animation:none!important}
  .mega::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:40px}
  .drop::before{content:"";position:absolute;left:-12px;right:-12px;bottom:100%;height:20px}
  .has-mega.open>.mega,.has-drop.open>.drop{visibility:visible;opacity:1;pointer-events:auto;transform:none;transition-delay:0s}
}
/* hover is handled in app.js (open/close with intent delays) */
@media (min-width:1101px){
  .mega::before{height:20px}
  .drop::before{left:0;right:0;height:10px}
}
/* ---------- home: states ---------- */
.states-lede{max-width:60ch;margin:-10px 0 22px}
.states{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px}
.state-card{display:flex;flex-direction:column;gap:6px;padding:28px;border-radius:24px;text-decoration:none;color:var(--ink);border:1px solid var(--edge);background:#fff;position:relative;transition:box-shadow .18s,transform .18s,border-color .18s}
a.state-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--p200);color:var(--ink)}
.state-card b{font:800 2rem/1.1 var(--display);letter-spacing:-.035em}
.state-card.live{background:linear-gradient(135deg,#fff 0%,var(--p50) 100%)}
.state-card.soon{border-style:dashed;background:transparent}
.state-tag{align-self:flex-start;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;padding:4px 10px;border-radius:999px;background:#e7f6ee;color:#137a45;margin-bottom:6px}
.soon .state-tag{background:var(--p50);color:var(--p600)}
.state-meta{font-weight:600;color:var(--body)}
.state-counties{font-size:.92rem;color:var(--mute);line-height:1.5}
.state-card .more{margin-top:10px}
/* areas mega menu: grouped by state */
.mega-areas-wrap{display:block!important;padding-top:24px;padding-bottom:16px}
.mega-state-h{display:flex;align-items:center;gap:10px;margin:0 0 6px;font:800 1.25rem var(--display);letter-spacing:-.02em}
.mega-state-h a{color:var(--ink);text-decoration:none}.mega-state-h a:hover{color:var(--p700)}
.mega-state-h span{font:700 .68rem var(--font);text-transform:uppercase;letter-spacing:.12em;color:#137a45;background:#e7f6ee;border-radius:999px;padding:3px 9px}
.mega-state .mega-grid{padding-top:12px;padding-bottom:8px}
.mega-soon{font-size:.88rem;color:var(--mute)}
@media (max-width:760px){.states{grid-template-columns:1fr}}
/* ---------- banner ads in the contractor dashboard ---------- */
.banner-ad{position:relative;display:flex;align-items:center;gap:18px;background:#fff;border:1px solid var(--edge);border-radius:16px;padding:18px 20px 16px;margin:0 0 18px}
.banner-ad .ad-label{position:absolute;top:-9px;left:16px;background:#fff;padding:0 8px;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);border:1px solid var(--edge);border-radius:999px;line-height:16px}
.banner-ad .ad-logo{width:56px;height:56px;object-fit:contain;border-radius:12px;flex:none;background:var(--paper)}
.banner-ad .ad-copy{flex:1;display:grid;gap:2px;min-width:0}.banner-ad .ad-copy b{color:var(--ink);font-size:1rem}.banner-ad .ad-copy span{font-size:.9rem;color:var(--body)}
.banner-ad .btn{flex:none}
.banner-ad-image{padding:0;overflow:hidden;display:block}.banner-ad-image img{display:block;width:100%;height:auto}
.banner-ad-image .ad-label{top:8px;left:8px;background:rgba(255,255,255,.92)}
@media (max-width:640px){.banner-ad{flex-wrap:wrap}.banner-ad .btn{width:100%}}
@media (min-width:1101px){
  .mega{max-height:calc(100vh - 150px);overflow-y:auto;overscroll-behavior:contain}
  .mega-services .mega-col li a{padding:4px 8px;font-size:.94rem;gap:9px}
  .mega-services .mi{width:26px;height:26px;border-radius:8px}.mega-services .mi svg{width:16px;height:16px}
}
.head-row>div{min-width:0}.page-head h1{overflow-wrap:break-word}
@media (max-width:560px){.head-row{align-items:flex-start}.head-icon{width:56px;height:56px}.head-icon svg{width:30px;height:30px}.page-head h1{font-size:clamp(1.9rem,8vw,2.4rem)}}
.byline{display:block;line-height:1.6}

/* local pages: about this page (editorial transparency) */
.about-page{margin:2.4em 0 1.6em;padding:22px 24px;border:1px solid var(--edge);border-radius:18px;background:var(--paper)}
.about-page h2{font-size:1.2rem!important;margin:0 0 10px!important}
.about-page ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}.about-page li{font-size:.94rem;line-height:1.55}.about-page b{color:var(--ink)}
.area-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.area-list li{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--edge);border-radius:999px;padding:5px 8px 5px 14px;font-size:.92rem;background:#fff}
.work-area .check{margin:6px 0}.work-area select{padding:4px 8px;border-radius:8px;font-size:.92rem}
.work-counties{display:flex;flex-wrap:wrap;gap:4px 16px;padding-left:28px;margin-bottom:6px}
.work-area select{display:inline-block;width:auto;margin:0 4px}.work-area .check span{display:inline}
/* ---------- wanted: recruiting box where a trade has no checked contractor ---------- */
.wanted{display:grid;grid-template-columns:auto 1fr auto;gap:16px 20px;align-items:center;background:linear-gradient(135deg,var(--p900),#120d1c);color:#ddd5ee;border-radius:20px;padding:20px 22px;margin:1.6em 0}
.wanted h3{color:#fff;margin:0 0 4px;font-size:1.15rem}.wanted p{margin:0;font-size:.94rem;color:#ddd5ee}.wanted strong{color:var(--tape)}
.wanted-tag{display:inline-flex;align-items:center;gap:8px;align-self:start;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#120d1c;background:var(--tape);padding:6px 10px;border-radius:999px}
.pulse{width:8px;height:8px;border-radius:50%;background:#b3382c;box-shadow:0 0 0 0 rgba(179,56,44,.6);animation:pulse 1.8s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(179,56,44,0)}100%{box-shadow:0 0 0 0 rgba(179,56,44,0)}}
@media (prefers-reduced-motion:reduce){.pulse{animation:none}}
.wanted .btn{white-space:nowrap}
@media (max-width:760px){.wanted{grid-template-columns:1fr}.wanted .btn{white-space:normal}}
.wanted-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.wanted-list a{display:inline-block;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:5px 12px;font-size:.88rem;text-decoration:none}.wanted-list a:hover{background:rgba(255,255,255,.1)}
.pt0{padding-top:0!important}
a.cover{text-decoration:none;color:var(--p700);border-color:var(--p200);background:var(--p50);font-weight:700}a.cover:hover{background:var(--p100)}.wanted-town{align-items:start}
.prose .wanted{grid-template-columns:auto 1fr}.prose .wanted .btn{grid-column:2;justify-self:start}.prose .wanted h3{margin-top:0}@media (max-width:760px){.prose .wanted{grid-template-columns:1fr}.prose .wanted .btn{grid-column:1}}
/* ---------- monthly home report ---------- */
.report-hero h1{max-width:20ch}
.report-stats{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;max-width:900px}
.report-stats li{background:#fff;border:1px solid var(--edge);border-radius:18px;padding:16px 18px}.report-stats b{display:block;font:800 2rem/1.1 var(--display);color:var(--p700);letter-spacing:-.03em}.report-stats span{font-size:.88rem;color:var(--mute)}
.report-trades{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.report-trades li{display:grid;grid-template-columns:200px 1fr 40px;gap:12px;align-items:center}.report-trades .bar{height:10px;border-radius:999px;background:var(--p50);overflow:hidden}.report-trades .bar i{display:block;height:100%;background:var(--p500);border-radius:999px}
.report-trades b{text-align:right}
.report-review{margin:0 0 16px;padding:16px 18px;border:1px solid var(--edge);border-radius:16px}.report-review blockquote{margin:6px 0}
@media (max-width:640px){.report-trades li{grid-template-columns:1fr 40px}.report-trades .bar{grid-column:1/-1;order:3}}
.report-link{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin:28px 0 0;padding:16px 20px;border:1px solid var(--edge);border-left:4px solid var(--p500);border-radius:14px;text-decoration:none;color:var(--ink);background:#fff}.report-link span{color:var(--mute);font-size:.94rem}.report-link:hover{border-color:var(--p200)}
.alert-cats{display:flex;flex-wrap:wrap;gap:4px 18px}
/* ---------- rapid-response banner ---------- */
.rapid-alert{background:#fff7d6;border-bottom:1px solid #f0d77a}
.rapid-alert .wrap{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.ra-tag{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#7a3b00}
.ra-text{flex:1;min-width:240px;font-size:.95rem;color:#3a2a00}.rapid-alert .btn{flex:none}
/* ---------- waitlist: tell me when a contractor joins ---------- */
.waitlist{border:1px dashed var(--p200);border-radius:16px;padding:16px 18px;margin:1.2em 0;background:#fff}
.wl-title{margin:0 0 10px;font-size:.95rem}.wl-row{display:flex;flex-wrap:wrap;gap:8px}.wl-row label{flex:1 1 180px}.wl-row input,.wl-row select{width:100%}
.waitlist .check{margin:8px 0 0}.hp{position:absolute!important;left:-9999px}
.repairs fieldset{border:0;padding:0;margin:0 0 24px}.repairs legend{font:800 1.2rem var(--display);letter-spacing:-.02em;color:var(--ink);margin-bottom:6px}
.repair-line{display:grid;grid-template-columns:28px minmax(0,220px) 1fr;gap:10px;align-items:start;margin-bottom:10px}
.rl-n{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--p50);color:var(--p700);font-weight:700;font-size:.85rem;margin-top:6px}
.repair-line select,.repair-line textarea{width:100%}
@media (max-width:640px){.repair-line{grid-template-columns:28px 1fr}.repair-line label:last-child{grid-column:2}}
.gposts{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px}
.gpost textarea{width:100%;font:inherit;font-size:.92rem;line-height:1.5;background:var(--paper);border-radius:12px}
.gp-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.gp-img{display:block;width:100%;max-height:200px;object-fit:cover;border-radius:12px;margin-bottom:6px}

/* =====================================================================
   Phone layer — last in the file so it wins. One column, consistent rhythm, nothing squeezed or clipped.
   ===================================================================== */
/* everywhere: a section label sits on its heading, never across a divider */
.eyebrow + h2,.eyebrow + h3,.prose .eyebrow + h2{margin-top:0!important;border-top:0!important;padding-top:0!important}
.split>*,.hero-grid>*,.about-story>*,.partner-hero-grid>*{min-width:0}
.prose img,.legacy-body img,.legacy-body iframe,.legacy-body video{max-width:100%!important;height:auto!important}
.legacy-body{overflow-wrap:break-word}
.legacy-body table,.prose table{display:block;max-width:100%;overflow-x:auto}
.leadslip-foot{max-width:none;clear:both;position:relative;margin-top:14px}
.ticket-top span,.state-tag,.wanted-tag,.asc-head span,.mega-state-h span,.ra-tag,.badge{font-size:.75rem}

@media (max-width:640px){
  html{-webkit-text-size-adjust:100%}
  body{font-size:16px}
  .wrap{padding-left:18px;padding-right:18px}
  /* rhythm */
  .section{padding:36px 0}
  .section + .section{padding-top:8px}
  .section-alt + .section,.section + .section-alt{padding-top:36px}
  .hero{padding:32px 0 36px}
  .page-head{padding:26px 0 22px}
  .page-head + .section,.page-head + .tape-rule + .section,.hero + .section{padding-top:24px}
  main:not(.main) h1,.page-head h1,.hero h1{font-size:clamp(2rem,9vw,2.5rem)!important;line-height:1.08;letter-spacing:-.03em}
  .hero.hero-photo h1{font-size:clamp(2.3rem,10.5vw,2.9rem)!important}
  main:not(.main) h2,.prose h2{font-size:clamp(1.45rem,6.4vw,1.75rem)!important}
  .prose h2{margin-top:1.4em;padding-top:1em}
  .lead,.hero p.lead{font-size:1.05rem!important}
  .sec-head{margin-bottom:18px}
  /* grids: one column for cards; two where it reads better */
  .grid.g2,.grid.g3,.grid.g4,.g2,.g3,.g4,.boards,.values,.why-grid,.report-stats,.badge-cards,.gposts,.county-grid,.trade-tiles,.ub-list,.onboard-steps{grid-template-columns:1fr!important}
  .row,.row3,.row4,.row.row3,.row.row4{grid-template-columns:1fr!important}
  .check-grid,.chips,.choices,.asc-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* page heads with an icon: icon above the title, not beside it */
  .head-row{flex-direction:column;align-items:flex-start;gap:14px}
  .head-icon{width:52px!important;height:52px!important;border-radius:14px}.head-icon svg{width:28px!important;height:28px!important}
  /* search boxes: stacked, button full width and never clipped */
  .hero-search{grid-template-columns:1fr!important;overflow:visible;padding:6px}
  .hero-search label{border-right:0!important;border-bottom:1px solid var(--edge);padding:10px 14px}
  .hero-search .btn{width:100%;padding:14px!important;margin-top:6px;border-radius:12px}
  .hero-photo .hero-search label{border-bottom-color:rgba(255,255,255,.16)}
  .hero-stats{gap:14px 26px}
  /* tap targets */
  .pill-list a,.tt-subs a,.wanted-list a,.trade-chips a{min-height:38px;display:inline-flex;align-items:center}
  .pill-list{gap:8px}
  .crumbs{font-size:.82rem;line-height:1.7}
  /* cards and boxes breathe less on small screens */
  .card,.ticket,.trade-card,.value,.state-card,.why-card,.partner-card,.about-stats-card,.wanted{padding:20px!important;border-radius:18px}
  .ticket-line{grid-template-columns:96px 1fr!important}
  .faq details{padding:12px 14px}
  .table-wrap{border-radius:14px}
  /* footer: logo on its own row, links in two columns */
  .site-footer .foot-grid{grid-template-columns:1fr 1fr!important;gap:26px 20px}
  .site-footer .foot-grid>div:first-child{grid-column:1/-1}
  .site-footer .foot-brand svg,.site-footer .foot-brand .logo{max-width:180px}
  .site-footer{padding-top:40px}
  /* misc */
  .about-art,.hero-art .pack-row{display:none}
  .repair-line textarea{min-height:64px}
  .report-trades li{grid-template-columns:1fr 40px}
  .glance{grid-template-columns:1fr}
  .town-facts{box-shadow:none;border-width:1px}
}
@media (max-width:640px){
  .table-wrap:has(table.stackable),.prose table.stackable,.legacy-body table.stackable{overflow:visible;border:0;background:none;box-shadow:none}
  table.stackable{display:block;width:100%;border:0}
  table.stackable thead{display:none}
  table.stackable tbody{display:grid;gap:10px}
  table.stackable tr{display:grid;gap:4px;background:#fff;border:1px solid var(--edge);border-radius:14px;padding:12px 14px}
  table.stackable td{display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr);gap:10px;padding:4px 0!important;border:0!important;text-align:left!important;white-space:normal!important;font:inherit;font-size:.94rem;color:var(--body)}
  table.stackable td::before{content:attr(data-label);font-size:.78rem;font-weight:600;color:var(--mute);text-transform:none;letter-spacing:0}
  table.stackable td:not([data-label])::before,table.stackable td[data-label=""]::before{display:none}
  table.stackable td:not([data-label]),table.stackable td[data-label=""]{grid-template-columns:1fr}
  table.stackable td:first-child{font-weight:700;color:var(--ink);font-size:1rem}
  table.stackable td.empty{grid-template-columns:1fr}
}
/* pricing plans: clean cards instead of paper price tags */
.tag,.tag:nth-child(2){background:#fff;clip-path:none;border:1px solid var(--edge);border-radius:22px;padding:28px 24px 24px;box-shadow:none;transition:box-shadow .18s,border-color .18s}
.tag:nth-child(2){border:2px solid var(--p500);box-shadow:var(--shadow)}
.tag::before,.tag:nth-child(2)::before{display:none}
.tag h3{font:800 1.25rem var(--display);letter-spacing:-.02em;text-align:left}
.tag-price{font:800 3.2rem/1 var(--display);letter-spacing:-.04em;text-align:left;margin:10px 0 4px;color:var(--ink)}
.tag-price small{font:500 .85rem var(--font);color:var(--mute);letter-spacing:0;margin-top:6px}
.tag-note{font-family:var(--font);text-align:left;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;font-size:.94rem;color:var(--body)}
.tag li{padding:5px 0 5px 24px;position:relative}.tag li::before{content:"✓";position:absolute;left:0;color:#17a35b;font-weight:800}

/* ---- dashboard on a phone: polish ---- */
.choice b{font-size:clamp(1.4rem,5vw,2.2rem);line-height:1.05;letter-spacing:-.02em}
@media (max-width:900px){
  .side{position:sticky;top:0;z-index:20;-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent);scroll-padding:0 40px}
  .side a{border-radius:999px;font-size:.9rem}
  .mobile-actions{background:rgba(255,255,255,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(20,10,40,.08)}
  .mobile-actions .btn{font-size:1rem;border-radius:12px;border:0}
  .mobile-actions .btn-ghost{background:var(--p100);color:var(--p900)}
}
@media (max-width:640px){
  .choices .choice{padding:14px 12px}
  .tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs a{flex:none;white-space:nowrap}
}
@media (max-width:640px){
  .town-list a{display:inline-flex;align-items:center;min-height:38px;padding:6px 12px}
  a.cover{display:inline-flex;align-items:center;min-height:36px;border-radius:999px;padding:4px 12px}
  .more{display:inline-flex;align-items:center;min-height:36px}
}

/* Areas menu: county columns line up — headings on one line, same height */
@media (min-width:1101px){.mega-state .mega-areas{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));column-gap:32px;row-gap:22px}}
.mega-state .mega-h{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:1.2em}
.mega-state .mega-all a{white-space:nowrap}
.drop-actions .btn-primary,.drop-actions .btn-primary:hover{color:#fff}
.mega .btn-primary,.mega .btn-primary:hover{color:#fff}

/* ---- /repairs ---- */
.rp-hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px;align-items:center}
.rp-steps{list-style:none;margin:0;padding:22px;counter-reset:rp;background:#fff;border:1px solid var(--edge);border-radius:20px;box-shadow:var(--shadow);display:grid;gap:4px}
.rp-steps li{counter-increment:rp;display:grid;grid-template-columns:36px 1fr;column-gap:14px;padding:10px 4px}
.rp-steps li+li{border-top:1px solid var(--line)}
.rp-steps li::before{content:counter(rp);grid-row:span 2;width:36px;height:36px;border-radius:12px;background:var(--p100);color:var(--p800);display:grid;place-items:center;font-weight:800}
.rp-steps b{color:var(--ink);font-size:1.02rem}.rp-steps span{color:var(--mute);font-size:.92rem;line-height:1.45}
.rp-section{padding-top:8px}
.rp-wrap{max-width:860px}
.card.repairs{padding:0;overflow:hidden;border-radius:22px}
.repairs .rp-block{padding:28px 32px;margin:0;border-bottom:1px solid var(--line)}
.repairs .rp-block legend{display:flex;align-items:center;gap:12px;float:left;width:100%;font:800 1.3rem var(--display);margin:0 0 6px}
.repairs .rp-block legend+*{clear:both}
.repairs .rp-block legend i{font-style:normal;width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font:800 .9rem var(--font)}
.repairs .rp-block > .small{margin:0 0 16px}
.repair-line{grid-template-columns:30px minmax(0,230px) 1fr;gap:12px;align-items:center;padding:10px;margin:0 -10px 6px;border-radius:14px;background:var(--soft,#f7f5fb)}
.rl-n{width:30px;height:30px;border-radius:50%;background:#fff;border:1px solid var(--edge);display:grid;place-items:center;font-weight:700;font-size:.85rem;color:var(--p700)}
.repair-line select,.repair-line textarea{background:#fff}
.repair-line textarea{min-height:46px;height:46px;resize:vertical;padding-top:11px}
.repair-line textarea:focus{height:88px}
.repair-line[hidden]{display:none}
.rp-add{margin-top:6px;background:none;border:1.5px dashed var(--p200);color:var(--p700);font-weight:700;border-radius:14px;padding:12px;width:100%;cursor:pointer;font:inherit;font-weight:700}
.rp-add:hover{background:var(--p50);border-color:var(--p400,#9b7be0)}
.rp-perms{background:var(--p50);border:1px solid var(--p100);border-radius:16px;padding:18px 20px;margin-top:6px}
.rp-perms-h{font-weight:800;color:var(--ink);margin:0 0 10px}
.repairs > .btn{margin:24px 32px 0;width:calc(100% - 64px);padding:16px;font-size:1.05rem}
.repairs > .btn:last-child{margin-bottom:28px}
.repairs > p.small{margin:12px 32px 28px!important}
@media (max-width:900px){.rp-hero-grid{grid-template-columns:1fr;gap:24px}}
@media (max-width:640px){
  .repairs .rp-block{padding:22px 18px}
  .repair-line{grid-template-columns:30px 1fr;margin:0 -6px 8px;padding:10px 8px}
  .repair-line label:last-child{grid-column:1/-1}
  .repairs > .btn{margin:20px 18px 0;width:calc(100% - 36px)}
  .repairs > p.small{margin:12px 18px 22px!important}
  .rp-steps{padding:14px}
}

/* contractor CTA card: what the pack test checks (replaces the wolf row) */
.trade-wide{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:40px;align-items:center}
.pack-checks{list-style:none;margin:0;padding:20px 22px;display:grid;gap:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:18px}
.pack-checks li{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:start;color:#ddd5ee;font-size:.95rem;line-height:1.45}
.pack-checks i{width:28px;height:28px;border-radius:50%;background:var(--gold);color:var(--p950);display:grid;place-items:center;font-style:normal;font-weight:800;font-size:.85rem}
.pack-checks b{color:#fff}
@media (max-width:800px){.trade-wide{grid-template-columns:1fr;gap:24px}}

/* ---- admin: client import ---- */
.imp-steps{list-style:none;display:flex;gap:8px;padding:0;margin:0 0 20px;counter-reset:s;flex-wrap:wrap}
.imp-steps li{counter-increment:s;display:flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;border-radius:999px;background:var(--soft,#f6f4fa);color:var(--mute);font-weight:600;font-size:.92rem}
.imp-steps li::before{content:counter(s);width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--edge);font-weight:800;font-size:.8rem}
.imp-steps li.on{background:var(--p100);color:var(--p900)}.imp-steps li.on::before{background:var(--p700);color:#fff;border-color:var(--p700)}
.imp-steps li.done{color:var(--ink)}.imp-steps li.done::before{content:"✓";background:#e7f6ee;color:#137a45;border-color:#bfe6cf}
.imp-drop{display:grid;gap:6px;place-items:center;text-align:center;padding:34px 18px;border:2px dashed var(--p200);border-radius:18px;background:var(--p50);cursor:pointer}
.imp-drop:hover{border-color:var(--p500,#7c4ddb)}.imp-drop b{color:var(--ink);font-size:1.05rem}.imp-drop span{color:var(--mute);font-size:.88rem}
.imp-drop input{max-width:100%;font-size:.9rem}
.imp-fields{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;font-size:.9rem}
.imp-req{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--p700);font-weight:700}
.imp-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px 18px;margin-top:10px}
.imp-row{display:grid;grid-template-columns:150px 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#fff}
.imp-row.is-set{border-color:var(--p200);background:var(--p50)}
.imp-f{font-weight:700;color:var(--ink);font-size:.9rem}.imp-f em{color:var(--bad,#c0392b);font-style:normal}
.imp-sample{grid-column:2;font-size:.78rem;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:1em;margin-top:3px}
.imp-h{font-weight:800;color:var(--ink);margin:0 0 10px}
.imp-trades{max-height:300px;overflow:auto;padding-right:6px}
.imp-form .radio-card{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;cursor:pointer}
.imp-form .radio-card:has(input:checked){border-color:var(--p600,#5b2bc4);background:var(--p50)}
.imp-form .radio-card b{display:block;color:var(--ink)}.imp-form .radio-card small{color:var(--mute)}
.imp-miles{width:76px!important;display:inline-block;padding:4px 8px!important;margin-right:4px}
.imp-hr{border:0;border-top:1px solid var(--line);margin:18px 0}
.imp-bar{position:sticky;bottom:0;z-index:5;display:flex;justify-content:flex-end;gap:10px;padding:14px 16px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:16px;box-shadow:0 -8px 24px rgba(20,10,40,.06)}
.imp-tag{display:inline-block;padding:3px 9px;border-radius:999px;font-size:.78rem;font-weight:700}
.imp-ok{background:#e7f6ee;color:#137a45}.imp-bad{background:#fdecea;color:#a3271b}.imp-muted{background:var(--soft,#f2f0f6);color:var(--mute)}
tr.imp-err td{background:#fffafa}
@media (max-width:640px){.imp-row{grid-template-columns:1fr}.imp-sample{grid-column:1}.imp-fields{grid-template-columns:1fr}.imp-bar{flex-direction:column}.imp-bar .btn{width:100%}}
.imp-row{grid-template-columns:1fr;row-gap:6px}.imp-sample{grid-column:1}

/* ---- contractor profile (/pros/...) ---- */
.pro-cover{position:relative;height:230px;background:radial-gradient(120% 140% at 85% 0%,#5b2bc4 0%,transparent 55%),linear-gradient(135deg,var(--p900),#120d1c);overflow:hidden}
.pro-cover.has-photo{background:linear-gradient(180deg,rgba(18,13,28,.35),rgba(18,13,28,.75)),var(--cover) center/cover}
.pro-cover .crumbs,.pro-cover .crumbs a{color:rgba(255,255,255,.82)}.pro-cover .crumbs{padding-top:22px;margin:0}
.pro-top{position:relative;margin-top:-110px;z-index:2}
.pro-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:24px;align-items:center;background:#fff;border:1px solid var(--edge);border-radius:24px;padding:26px 28px;box-shadow:0 24px 60px -30px rgba(43,18,89,.35)}
.pro-avatar{width:104px;height:104px;border-radius:26px;display:grid;place-items:center;background:linear-gradient(135deg,var(--p600,#5b2bc4),var(--p900));color:#fff;font:800 2.4rem var(--display);letter-spacing:-.04em;box-shadow:0 0 0 5px #fff,0 12px 30px -12px rgba(43,18,89,.5)}
.pro-id h1{font-size:clamp(1.7rem,3.4vw,2.6rem);margin:0 0 4px;line-height:1.08}
.pro-sub{color:var(--mute);margin:0 0 12px}
.pro-chips{display:flex;flex-wrap:wrap;gap:8px}
.pro-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:#e9f7ef;color:#11643a;font-size:.84rem;font-weight:700}
.pro-chip i{font-style:normal}.pro-chip-pack{background:var(--p100);color:var(--p900)}.pro-chip-pack svg{width:14px;height:14px}
.pro-cta{display:grid;gap:12px;justify-items:end;text-align:right}
.pro-rating{display:flex;align-items:center;gap:8px}.pro-rating b{font:800 1.6rem var(--display);color:var(--ink)}.pro-rating a{font-size:.9rem}
.pro-cta .btn{min-width:170px}
.pro-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin:14px 0 0;background:#fff;border:1px solid var(--edge);border-radius:18px;overflow:hidden}
.pro-facts>div{padding:14px 18px;border-right:1px solid var(--line)}.pro-facts>div:last-child{border-right:0}
.pro-facts dt{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mute);font-weight:700}
.pro-facts dd{margin:4px 0 0;font:800 1.15rem var(--display);color:var(--ink)}
.pro-tabs{position:sticky;top:0;z-index:15;display:flex;gap:6px;margin-top:18px;padding:8px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--edge);border-radius:999px;overflow-x:auto;scrollbar-width:none}
.pro-tabs::-webkit-scrollbar{display:none}
.pro-tabs a{flex:none;padding:8px 16px;border-radius:999px;text-decoration:none;color:var(--body);font-weight:600;font-size:.94rem}
.pro-tabs a:hover{background:var(--p50);color:var(--p800)}
.pro-body{padding-top:28px}
.pro-sec{background:#fff;border:1px solid var(--edge);border-radius:22px;padding:28px;margin-bottom:18px;scroll-margin-top:90px}
.pro-sec h2{font-size:1.45rem;margin:0 0 12px}
.pro-sec h2[id]{scroll-margin-top:90px}
.pro-record{margin-top:22px;border:1px solid var(--line);border-radius:16px;padding:18px 20px;background:var(--soft,#faf9fc)}
.pro-record-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.pro-record-h b{color:var(--ink)}.pro-record-h span{font-size:.82rem;color:var(--mute)}
.pro-record ul{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}
.pro-record li{display:flex;gap:10px;align-items:center;font-weight:600;color:var(--ink)}
.pro-record li i{width:24px;height:24px;border-radius:50%;background:#e9f7ef;color:#11643a;display:grid;place-items:center;font-style:normal;font-size:.8rem;font-weight:800;flex:none}
.pro-pills{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.pro-pills a,.pro-pills span{display:inline-flex;align-items:center;min-height:38px;padding:6px 14px;border-radius:999px;border:1px solid var(--edge);background:#fff;color:var(--ink);text-decoration:none;font-weight:600;font-size:.92rem}
.pro-pills a:hover{border-color:var(--p300,#b69cf0);background:var(--p50);color:var(--p800)}
.pro-pills-area span{background:var(--p50);border-color:var(--p100)}
.pro-gallery{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.pro-gallery img{border-radius:14px}
.pro-quote{scroll-margin-top:90px}
@media (max-width:900px){
  .pro-card{grid-template-columns:auto minmax(0,1fr)}.pro-cta{grid-column:1/-1;grid-template-columns:1fr auto;justify-items:stretch;align-items:center;text-align:left}
}
@media (max-width:640px){
  .pro-cover{height:170px}.pro-top{margin-top:-80px}
  .pro-card{grid-template-columns:1fr;gap:14px;padding:20px 18px;text-align:left}
  .pro-avatar{width:76px;height:76px;border-radius:20px;font-size:1.8rem;margin-top:-58px}
  .pro-cta{grid-template-columns:1fr}.pro-cta .btn{width:100%}
  .pro-facts{grid-template-columns:1fr 1fr}.pro-facts>div{border-right:0;border-bottom:1px solid var(--line)}.pro-facts>div:nth-child(odd){border-right:1px solid var(--line)}
  .pro-sec{padding:20px 18px;border-radius:18px}
  .pro-tabs{border-radius:16px}
}
.pro-cover .crumbs,.pro-cover .crumbs *{color:rgba(255,255,255,.85)!important}.pro-cover .crumbs a{text-decoration-color:rgba(255,255,255,.4)}
main .pro-sec h2,.pro-sec h2{font-size:1.45rem!important;letter-spacing:-.02em;line-height:1.2}
.pro-body aside .disclosure b,.pro-body aside .disclosure strong{font:700 1em var(--font)!important;letter-spacing:0}
.pro-quote select,.pro-quote input{border:1px solid var(--edge)!important;border-radius:12px!important;background:#fff;color:var(--ink);font-size:1rem}
.pro-quote .ticket-line{gap:6px}
.ticket-line select,.ticket-line input[type=text]{outline:0;border:1px solid var(--edge);border-radius:12px;padding:9px 12px;font:500 1rem var(--font);color:var(--ink);background:#fff;width:100%}
.ticket-line select:focus,.ticket-line input[type=text]:focus{outline:2px solid var(--p300,#b69cf0);outline-offset:1px}

/* ---- achievements ---- */
.ach-medal{width:44px;height:44px;flex:none;border-radius:14px;display:grid;place-items:center;background:var(--soft,#f2f0f6);color:#9c94ad}
.is-earned .ach-medal,.pro-ach .ach-medal,.ach-teaser .ach-medal{background:linear-gradient(135deg,var(--p100),#efe7ff);color:var(--p800);box-shadow:inset 0 0 0 1px var(--p200)}
.tier-bronze .ach-medal{background:linear-gradient(135deg,#f6e1cf,#e9c3a1);color:#7a4319;box-shadow:inset 0 0 0 1px #dcae86}
.tier-silver .ach-medal{background:linear-gradient(135deg,#f1f3f6,#d5dbe3);color:#3e4a5a;box-shadow:inset 0 0 0 1px #c3cad4}
.tier-gold .ach-medal{background:linear-gradient(135deg,#fff3c4,#f5cf55);color:#6b4a00;box-shadow:inset 0 0 0 1px #e7bd3a}
.ach-summary{display:flex;gap:22px;align-items:center;background:#fff;border:1px solid var(--edge);border-radius:20px;padding:20px 24px;margin-bottom:8px}
.ach-summary h2{font-size:1.3rem;margin:0 0 4px}
.ach-ring{--p:0;width:92px;height:92px;flex:none;border-radius:50%;display:grid;place-items:center;align-content:center;background:radial-gradient(closest-side,#fff 78%,transparent 80% 100%),conic-gradient(var(--p700) calc(var(--p)*1%),var(--p100) 0)}
.ach-ring b{font:800 1.6rem var(--display);color:var(--ink);line-height:1}.ach-ring span{font-size:.78rem;color:var(--mute)}
.ach-h{font-size:1.1rem;margin:26px 0 12px}
.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.ach{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px}
.ach.is-earned{border-color:var(--p200)}
.ach-body{min-width:0;flex:1}.ach-body b{color:var(--ink)}.ach-body p{margin:4px 0 8px;font-size:.88rem;color:var(--mute);line-height:1.45}
.ach-ok{display:inline-block;margin-left:4px;padding:2px 8px;border-radius:999px;background:#e9f7ef;color:#11643a;font-size:.74rem;font-weight:700}
.ach-bar{height:6px;border-radius:99px;background:var(--soft,#f0edf5);overflow:hidden}.ach-bar i{display:block;height:100%;background:var(--p600,#5b2bc4);border-radius:99px}
.ach-num{font-size:.76rem;color:var(--mute)}
.ach-go{display:inline-block;margin-top:6px;font-size:.86rem;font-weight:700}
.ach-teaser{display:flex;gap:16px;align-items:center;padding:14px 18px;margin:0 0 16px;background:#fff;border:1px solid var(--edge);border-radius:18px;text-decoration:none;color:var(--body)}
.ach-teaser:hover{border-color:var(--p300,#b69cf0)}
.ach-teaser-medals{display:flex}.ach-teaser-medals .ach-medal{width:36px;height:36px;border-radius:50%;margin-right:-8px;box-shadow:0 0 0 3px #fff,inset 0 0 0 1px var(--p200)}
.ach-teaser-medals .ach-medal svg{width:18px;height:18px}
.ach-teaser > span:last-child{display:grid;margin-left:8px}.ach-teaser b{color:var(--ink)}.ach-teaser small{color:var(--mute)}
.pro-ach{margin-top:22px}
.pro-ach h3{font-size:1.05rem;margin:0 0 10px}
.pro-ach ul{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.pro-ach li{display:flex;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#fff}
.pro-ach li > span:last-child{display:grid}.pro-ach b{color:var(--ink);font-size:.93rem}.pro-ach small{color:var(--mute);font-size:.76rem}
@media (max-width:640px){.ach-summary{flex-direction:column;align-items:flex-start}.ach-teaser-medals{display:none}}
.agl{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.agl:last-child{border-bottom:0}
.copy-row{display:flex;gap:8px}.copy-row input{flex:1;min-width:0;font-size:.85rem}

/* notification bell */
.nav-bell{position:relative;display:inline-grid!important;place-items:center;width:42px;height:42px;padding:0!important;border-radius:12px;color:var(--ink)}
.nav-bell:hover{background:var(--p50);color:var(--p800)}
.nav-bell svg{display:block}
.nav-bell.has-unread svg{transform-origin:50% 10%;animation:bell-nudge 1.6s ease 1}
.nav-bell-n{position:absolute;top:4px;right:2px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e5484d;color:#fff;font:700 .68rem/18px var(--font);text-align:center;box-shadow:0 0 0 2px #fff}
@keyframes bell-nudge{0%,100%{transform:rotate(0)}15%{transform:rotate(14deg)}30%{transform:rotate(-12deg)}45%{transform:rotate(8deg)}60%{transform:rotate(-5deg)}75%{transform:rotate(2deg)}}
@media (prefers-reduced-motion:reduce){.nav-bell.has-unread svg{animation:none}}
.nav-bell-m{display:none}
@media (max-width:1100px){.nav-bell-m{display:inline-flex;margin-left:auto;margin-right:6px}.nav-bell-m+.nav-toggle{margin-left:0}}
@media (max-width:1100px){#main-nav .nav-bell{display:none!important}}
.pro-local{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.pro-local h3{font-size:1rem;margin:0 0 10px}
.pro-local ul{list-style:none;margin:0;padding:0;columns:3 180px;column-gap:20px}
.pro-local li{break-inside:avoid;padding:4px 0}.pro-local a{font-size:.92rem}

/* bigger header logo */
.site-header .logo-mark{width:74px}.site-header .logo-type{width:210px;gap:5px}
.site-header .nav-wrap{min-height:84px}
@media (max-width:1240px){.site-header .logo-mark{width:62px}.site-header .logo-type{width:178px}}
@media (max-width:1100px){.site-header .nav-wrap{min-height:72px}.site-header .logo-mark{width:58px}.site-header .logo-type{width:164px}}
@media (max-width:600px){.site-header .logo-mark{width:50px}.site-header .logo-type{width:142px}.site-header .nav-wrap{min-height:66px}}
@media (max-width:360px){.site-header .logo-mark{width:42px}.site-header .logo-type{width:118px}}

/* ---- service picker (enhanced select) ---- */
.svc-pick-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;clip:rect(0 0 0 0)}
.svc-pick{position:relative;width:100%}
.svc-pick-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:9px 38px 9px 12px;border:1px solid var(--edge);border-radius:12px;background:#fff;color:var(--ink);font:600 1rem var(--font);text-align:left;cursor:pointer;position:relative}
.svc-pick-btn:hover{border-color:var(--p300,#b69cf0)}
.svc-pick-btn:focus-visible,.svc-pick.is-open .svc-pick-btn{outline:0;border-color:var(--p600,#5b2bc4);box-shadow:0 0 0 4px rgba(112,70,216,.16)}
.svc-pick-btn.is-empty .svc-pick-val{color:var(--mute);font-weight:500}
.svc-pick-val{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.svc-pick-btn i{position:absolute;right:14px;top:50%;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-70%) rotate(45deg);opacity:.55;transition:transform .15s}
.svc-pick.is-open .svc-pick-btn i{transform:translateY(-30%) rotate(-135deg)}
.svc-pick.is-invalid .svc-pick-btn{border-color:#e5484d;box-shadow:0 0 0 4px rgba(229,72,77,.15)}
.svc-pick-ic{width:28px;height:28px;flex:none;border-radius:9px;display:grid;place-items:center;background:color-mix(in srgb,var(--c,#5b2bc4) 14%,#fff);color:var(--c,var(--p700))}
.svc-pick-ic svg{width:16px;height:16px}
.svc-pick-pop{position:fixed;z-index:1000;background:#fff;border:1px solid var(--edge);border-radius:16px;box-shadow:0 24px 60px -18px rgba(27,21,36,.35),0 4px 12px -4px rgba(27,21,36,.08);padding:8px;color:var(--ink);text-align:left}
.svc-pick-search{width:100%;margin:0 0 6px;padding:10px 12px 10px 36px!important;border:1px solid var(--line)!important;border-radius:11px!important;background:#faf9fc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236f677b' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") 11px 50%/16px no-repeat!important;font:500 .95rem var(--font)!important;color:var(--ink)!important;outline:0}
.svc-pick-search:focus{border-color:var(--p300,#b69cf0)!important;background-color:#fff!important}
.svc-pick-list{list-style:none;margin:0;padding:0;max-height:calc(var(--max,400px) - 70px);overflow-y:auto;overscroll-behavior:contain;outline:0;scrollbar-width:thin}
.svc-pick-group{position:sticky;top:0;z-index:1;background:#fff;padding:10px 10px 6px;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.svc-pick-opt{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:10px;cursor:pointer;font-weight:500;font-size:.96rem;color:var(--ink)}
.svc-pick-opt.is-active{background:var(--p50)}
.svc-pick-opt[aria-selected=true]{font-weight:700;color:var(--p800)}
.svc-pick-opt[aria-selected=true]::after{content:"";margin-left:auto;width:6px;height:11px;border-right:2px solid var(--p700);border-bottom:2px solid var(--p700);transform:rotate(45deg) translate(-2px,-2px)}
.svc-pick-empty{margin:6px 10px 10px;font-size:.9rem;color:var(--mute)}
/* inside the hero search bar the picker is borderless, like the other fields */
.hero-search .svc-pick-btn{border:0;box-shadow:none!important;padding:2px 30px 2px 0;min-height:30px;background:transparent;font:600 1.05rem var(--font)}
.hero-search .svc-pick-btn i{right:4px}
.hero-search .svc-pick-btn .svc-pick-ic{width:24px;height:24px;border-radius:7px}
.hero-photo .hero-search .svc-pick-btn,.hero-photo .hero-search .svc-pick-btn.is-empty .svc-pick-val{color:#fff;font-weight:600}
.svc-pick-head{display:none}
@media (max-width:640px){
  .svc-pick-pop.is-sheet{left:0;right:0;bottom:0;top:auto;width:auto;border-radius:22px 22px 0 0;padding:6px 12px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -20px 50px -10px rgba(27,21,36,.4);animation:svc-sheet-in .22s ease-out}
  .svc-pick-pop.is-sheet .svc-pick-list{max-height:62vh}
  .svc-pick-pop.is-sheet .svc-pick-head{display:flex;align-items:center;justify-content:space-between;padding:10px 4px 8px}
  .svc-pick-head b{font-size:1.05rem;color:var(--ink)}
  .svc-pick-head button{width:36px;height:36px;border-radius:50%;border:0;background:var(--soft,#f2f0f6);font-size:1.4rem;line-height:1;color:var(--ink);cursor:pointer}
  .svc-pick-pop.is-sheet .svc-pick-opt{padding:10px}
  body.svc-sheet-open{overflow:hidden}
  body.svc-sheet-open::after{content:"";position:fixed;inset:0;z-index:999;background:rgba(18,13,28,.45)}
}
@keyframes svc-sheet-in{from{transform:translateY(30px);opacity:.4}to{transform:none;opacity:1}}

/* ---- local expert answers ---- */
.ans-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;align-items:start}
.ans-h{font-weight:700;color:var(--ink);margin:6px 0 8px}
.ans-ideas{display:grid;gap:6px;margin-bottom:14px}
.ans-idea{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;border:1px solid var(--line);border-radius:12px;cursor:pointer;font-size:.93rem;line-height:1.4}
.ans-idea:has(input:checked){border-color:var(--p300,#b69cf0);background:var(--p50)}
.ans-idea input{margin-top:3px}
.ans-rules{margin:0 0 12px;padding-left:18px;display:grid;gap:8px;font-size:.92rem}
.ans-list{display:grid;gap:12px}
@media (max-width:900px){.ans-grid{grid-template-columns:1fr}}
/* on public pages */
.pro-answers{margin:32px 0}
.pro-answer{border:1px solid var(--edge);border-radius:20px;padding:22px 24px;background:#fff;margin-bottom:14px}
.pro-answer h3{font-size:1.15rem;margin:0 0 10px;letter-spacing:-.015em}
.pro-answer-body p{margin:0 0 .8em}
.pro-answer-by{display:flex;gap:12px;align-items:center;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);font-size:.92rem}
.pro-answer-av{width:40px;height:40px;flex:none;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--p600,#5b2bc4),var(--p900));color:#fff;font-weight:800}
.pro-answer-by b{color:var(--ink)}.pro-answer-by small{display:block;color:var(--mute)}
.pro-answers-note{font-size:.84rem;color:var(--mute)}
.pro-web{font-size:.9rem;font-weight:700;text-decoration:none}.pro-web:hover{text-decoration:underline}
.pro-site{margin:10px 0 0;font-size:.95rem}

/* ---- lead-focused hero on trade × town pages ---- */
.lp-hero{position:relative;overflow:hidden;color:#e9e3f5;padding:26px 0 54px;background:radial-gradient(90% 120% at 100% 0%,color-mix(in srgb,var(--c,#5b2bc4) 55%,transparent) 0%,transparent 55%),radial-gradient(70% 90% at 0% 100%,rgba(91,43,196,.45) 0%,transparent 60%),linear-gradient(135deg,#1d1233,#120d1c)}
.lp-hero .crumbs,.lp-hero .crumbs *{color:rgba(255,255,255,.75)!important}
.lp-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.85fr);gap:48px;align-items:center;margin-top:18px}
.lp-eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 14px;padding:6px 14px 6px 6px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);font-weight:700;font-size:.9rem;color:#fff}
.lp-ic{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--c,#5b2bc4) 70%,#fff 10%);color:#fff}
.lp-hero h1{color:#fff!important;font-size:clamp(2.2rem,5vw,3.7rem);line-height:1.04;letter-spacing:-.04em;margin:0 0 16px}
.lp-sub{font-size:1.12rem;line-height:1.6;max-width:56ch;margin:0 0 20px;color:#ddd5ee}
.lp-trust{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px}
.lp-trust li{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.95rem;color:#fff}
.lp-trust i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:var(--p950);font-style:normal;font-size:.75rem;font-weight:800}
.lp-supply{display:flex;align-items:center;gap:12px;margin:0;font-size:.95rem}
.lp-supply a{color:#fff;font-weight:700;text-decoration-color:rgba(255,255,255,.4)}
.lp-avatars{display:flex}.lp-avatars span{width:36px;height:36px;border-radius:50%;margin-right:-4px;display:grid;place-items:center;background:linear-gradient(135deg,#7c4ddb,#3b1a7a);color:#fff;font-weight:800;font-size:.75rem;box-shadow:0 0 0 3px #1d1233}
.lp-avatars+a{margin-left:10px}
.lp-supply-wanted{padding:10px 14px;border-radius:14px;background:rgba(245,197,24,.12);border:1px solid rgba(245,197,24,.35);color:#fde9a6;max-width:56ch}
.lp-card{background:#fff;color:var(--ink);border-radius:24px;padding:26px;box-shadow:0 30px 70px -30px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.1)}
.lp-card-h{font:800 1.45rem var(--display);letter-spacing:-.025em;margin:0 0 16px;color:var(--ink)}
.lp-field{display:block;margin:0 0 12px}
.lp-field span{display:block;font-size:.84rem;font-weight:700;color:var(--mute);margin-bottom:6px}
.lp-field select,.lp-field input{width:100%;min-height:50px;padding:12px 14px;border:1px solid var(--edge);border-radius:14px;font:600 1.02rem var(--font);color:var(--ink);background:#fff}
.lp-field select:focus,.lp-field input:focus{outline:0;border-color:var(--p600,#5b2bc4);box-shadow:0 0 0 4px rgba(112,70,216,.15)}
.lp-fixed{display:flex;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:14px;background:var(--p50);margin:0 0 12px}.lp-fixed span{color:var(--mute);font-size:.88rem;font-weight:700}.lp-fixed b{color:var(--ink)}
.lp-go{min-height:56px;font-size:1.1rem;border-radius:14px;margin-top:4px}
.lp-card-foot{margin:12px 0 0;font-size:.84rem;color:var(--mute);text-align:center}
.lp-sticky{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(20,10,40,.08)}
.lp-sticky .btn{min-height:50px;font-size:1.05rem;border-radius:14px}
@media (min-width:901px){.lp-sticky{display:none!important}}
@media (max-width:900px){.lp-grid{grid-template-columns:1fr;gap:26px}.lp-hero{padding:18px 0 34px}}
@media (max-width:640px){.lp-hero h1{font-size:2.1rem}.lp-sub{font-size:1rem}.lp-card{padding:20px;border-radius:20px}.lp-trust{gap:8px 14px}.lp-trust li{font-size:.88rem}}
.lp-card-side{border:1px solid var(--edge);box-shadow:0 20px 50px -30px rgba(43,18,89,.35);padding:22px}
.lp-card-side .lp-card-h{font-size:1.2rem}
@media (max-width:640px){.lp-sub{display:none}.lp-hero h1{margin-bottom:14px}}

/* wider containers for full-bleed rows like the 1–5 steps */
.wrap.wrap-wide{max-width:1360px}

/* 1–5 steps, modern */
.steps-line{gap:18px}
.steps-line::before{left:6%;right:6%;top:44px;border-top:2px dashed var(--p200)}
.steps-line li{border-radius:22px;padding:26px 22px 24px;border:1px solid var(--edge);background:#fff;transition:transform .18s,box-shadow .18s,border-color .18s}
.steps-line li:hover{transform:translateY(-3px);box-shadow:0 18px 40px -24px rgba(43,18,89,.35);border-color:var(--p200)}
.steps-line li.hot{background:linear-gradient(160deg,var(--p50),#fff);border-color:var(--p200);box-shadow:0 18px 40px -24px rgba(43,18,89,.35)}
.steps-line .sl-n{position:static!important;display:grid!important;place-items:center;width:40px!important;height:40px!important;border-radius:50%!important;background:var(--ink)!important;color:#fff!important;font:800 1.05rem var(--display)!important;margin:0 0 18px;box-shadow:0 0 0 6px #fff}
.steps-line li.hot .sl-n{background:var(--p700)!important;box-shadow:0 0 0 6px var(--p50)}
.steps-line .sl-ico{position:absolute!important;top:28px!important;right:22px!important;width:24px;height:24px}
.steps-line h3{font:800 1.2rem/1.2 var(--display)!important;letter-spacing:-.02em;margin:0 0 8px!important}
.steps-line p{font-size:.95rem;line-height:1.55;color:var(--body)}
@media (max-width:1100px){.steps-line{grid-template-columns:repeat(3,minmax(0,1fr))}.steps-line::before{display:none}}
@media (max-width:700px){.steps-line{grid-template-columns:1fr}}

/* facts on CTA cards (in place of the old wolf row) */
.cta-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
.cta-facts div{padding:18px 16px;border-radius:18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);text-align:center}
.cta-facts dt{font:800 1.9rem/1 var(--display);color:#fff;letter-spacing:-.03em}
.cta-facts dd{margin:6px 0 0;font-size:.86rem;color:#cfc6e2}
@media (max-width:640px){.cta-facts dt{font-size:1.5rem}.cta-facts div{padding:14px 8px}}

/* ===================================================================== Admin: compact, readable shell */
body.adm{background:#f6f5f9}
.adm-bar{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:14px;height:56px;padding:0 18px;background:var(--ink);color:#fff}
.adm-brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-size:1rem;letter-spacing:.01em}
.adm-brand img{filter:brightness(0) invert(1);opacity:.95}.adm-brand b{font-weight:800}.adm-brand span{color:#cfc6e3}.adm-brand span b{color:#fff}
.adm-bar-r{margin-left:auto;display:flex;align-items:center;gap:6px}
.adm-link{color:#ddd6e8;text-decoration:none;font-size:.9rem;padding:8px 10px;border-radius:8px}.adm-link:hover{background:rgba(255,255,255,.1);color:#fff}
.adm-icon{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:#ddd6e8}.adm-icon:hover{background:rgba(255,255,255,.1);color:#fff}
.adm-dot{position:absolute;top:3px;right:2px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#e5484d;color:#fff;font-size:.66rem;font-weight:800;display:grid;place-items:center;line-height:1}
.adm-me{position:relative}.adm-me summary{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer;padding:5px 8px 5px 5px;border-radius:999px;color:#fff}
.adm-me summary::-webkit-details-marker{display:none}.adm-me summary:hover{background:rgba(255,255,255,.1)}
.adm-av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--p200,#d9ccf5);color:var(--ink);font-weight:800;font-size:.78rem}
.adm-name{font-size:.9rem;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-me-pop{position:absolute;right:0;top:calc(100% + 8px);min-width:220px;background:#fff;color:var(--body);border:1px solid var(--edge);border-radius:12px;box-shadow:0 18px 40px -18px rgba(27,21,36,.35);padding:10px;display:grid;gap:2px}
.adm-me-pop .small{padding:4px 8px 8px;border-bottom:1px solid var(--edge);margin-bottom:4px}
.adm-me-pop a,.adm-me-pop button{display:block;width:100%;text-align:left;padding:8px;border-radius:8px;background:none;border:0;font:inherit;color:var(--ink);text-decoration:none;cursor:pointer}
.adm-me-pop a:hover,.adm-me-pop button:hover{background:var(--p50)}
.adm-menu{display:none;background:none;border:0;color:#fff;padding:6px;border-radius:8px;cursor:pointer}

body.adm .shell{grid-template-columns:248px minmax(0,1fr);min-height:calc(100vh - 56px);background:#f6f5f9}
body.adm .side.adm-side{position:sticky;top:56px;align-self:start;height:calc(100vh - 56px);overflow-y:auto;background:#fff;border-right:1px solid var(--edge);padding:14px 10px 28px;display:block;-webkit-mask-image:none;mask-image:none;scrollbar-width:thin}
.adm-find{position:relative;margin:0 4px 10px}
.adm-find svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--mute)}
.adm-find input{width:100%;height:36px;padding:0 30px 0 32px;border:1px solid var(--edge);border-radius:9px;background:#faf9fc;font-size:.88rem;box-shadow:none}
.adm-find input:focus{background:#fff;border-color:var(--p500,#7a52d1);outline:2px solid var(--p100);outline-offset:0}
.adm-find kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font:600 .7rem/1 var(--font);color:var(--mute);border:1px solid var(--edge);border-radius:5px;padding:3px 6px;background:#fff}
.adm-find input:focus + kbd{display:none}
body.adm .adm-side a,body.adm .adm-side summary{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;color:#3d3549;font-size:.9rem;font-weight:500;text-decoration:none;line-height:1.3}
body.adm .adm-side a:hover,body.adm .adm-side summary:hover{background:#f3f0f9;color:var(--ink)}
body.adm .adm-side a.adm-top{font-weight:650;color:var(--ink);margin-bottom:4px}
body.adm .adm-side a.active{background:var(--p100);color:var(--ink);font-weight:700}
body.adm .adm-side a.active::before{content:"";position:absolute;left:0;width:3px;height:18px;border-radius:2px;background:var(--p600,#5b2bb5)}
body.adm .adm-side a{position:relative}
body.adm .adm-side svg{flex:none;color:#7b7189}body.adm .adm-side a.active svg{color:var(--p700,#4a1fa0)}
.adm-g{margin:2px 0}.adm-g summary{list-style:none;cursor:pointer;font-weight:650!important;color:var(--ink)!important;user-select:none}
.adm-g summary::-webkit-details-marker{display:none}
.adm-g summary::after{content:"";margin-left:auto;width:7px;height:7px;border-right:1.8px solid #9a91a8;border-bottom:1.8px solid #9a91a8;transform:rotate(-45deg);transition:transform .15s;flex:none}
.adm-g[open] summary::after{transform:rotate(45deg)}
.adm-g summary .count{margin-left:auto}.adm-g summary .count + ::after{margin-left:8px}
.adm-g-links{padding:2px 0 6px 28px;display:grid;gap:1px}
.adm-g-links a{justify-content:space-between;font-size:.875rem!important;padding:6px 10px!important}
body.adm .adm-side .count{background:#e5484d;color:#fff;border-radius:999px;font-size:.68rem;font-weight:800;padding:1px 7px;line-height:1.5}
.adm-g[open] summary .count{display:none}
.adm-none{margin:10px;color:var(--mute);font-size:.88rem}

/* content: calmer type and density */
body.adm .main{padding:22px 28px 56px;max-width:1500px}
body.adm .main-head{border-bottom:1px solid var(--edge);padding-bottom:12px;margin-bottom:18px}
body.adm .main-head h1{font-family:var(--font);font-weight:750;font-size:1.6rem;line-height:1.2;letter-spacing:-.01em}
body.adm .main-head p{font-size:.92rem;line-height:1.5;color:#6b6378;max-width:90ch}
body.adm .main h2{font-family:var(--font);font-weight:700;font-size:1.12rem;line-height:1.3;margin:26px 0 10px;color:var(--ink);letter-spacing:0}
body.adm .main .card h3{font-family:var(--font);font-weight:700;font-size:1rem;line-height:1.3;letter-spacing:0;margin:0 0 8px}
body.adm .main .card{border-radius:10px;border-color:var(--edge);box-shadow:none;padding:16px 18px}
body.adm .stats{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:18px}
body.adm .stat{border-radius:10px;padding:12px 14px;background:#fff;border:1px solid var(--edge)}
body.adm .stat .k{font-family:var(--font);font-weight:600;font-size:.76rem;letter-spacing:.02em;text-transform:none;color:#6b6378;line-height:1.3}
body.adm .stat .v{font-family:var(--font);font-weight:750;font-size:1.5rem;line-height:1.15;margin-top:4px;letter-spacing:-.01em;color:var(--ink)}
body.adm .stat .s{font-size:.76rem;line-height:1.35;color:#837a90;margin-top:2px}
body.adm .stat a{font-size:.8rem}
body.adm .table-wrap{border-radius:10px;border:1px solid var(--edge);background:#fff;box-shadow:none}
body.adm table th{font-family:var(--font);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6b6378;background:#faf9fc;padding:9px 12px;border-bottom:1px solid var(--edge)}
body.adm table td{padding:9px 12px;font-size:.88rem;line-height:1.4;border-bottom:1px solid #f0edf4;vertical-align:middle}
body.adm table tbody tr:hover td{background:#fbfaff}
body.adm table tbody tr:last-child td{border-bottom:0}
body.adm .filters{background:#fff;border:1px solid var(--edge);border-radius:10px;padding:12px 14px;gap:10px 12px;align-items:flex-end}
body.adm .filters .field{min-width:140px;flex:1 1 140px;max-width:240px}
body.adm .filters .field label{font-size:.78rem;font-weight:600;color:#6b6378;display:grid;gap:4px}
body.adm .filters input,body.adm .filters select,body.adm .filters .svc-pick-btn{height:36px;min-height:36px;padding-top:0;padding-bottom:0;font-size:.88rem}
body.adm .filters .check{align-self:center;margin:0 4px}
body.adm .field label{font-size:.85rem}
body.adm input,body.adm select,body.adm textarea{font-size:.92rem}
body.adm .btn{box-shadow:none}
body.adm .alert{border-radius:10px;font-size:.9rem}
body.adm .badge{font-size:.72rem}
body.adm kbd{font-family:var(--font)}

/* phones and narrow windows: sidebar slides in from the menu button */
@media (max-width:980px){
  .adm-menu{display:grid;place-items:center}
  .adm-name,.adm-link{display:none}
  body.adm .shell{grid-template-columns:1fr}
  body.adm .side.adm-side{position:fixed;left:0;top:56px;bottom:0;height:auto;width:min(300px,86vw);z-index:55;transform:translateX(-102%);transition:transform .2s ease;box-shadow:0 0 0 100vmax rgba(27,21,36,0);border-right:1px solid var(--edge)}
  body.adm.adm-open .side.adm-side{transform:none;box-shadow:0 0 0 100vmax rgba(27,21,36,.35)}
  body.adm .main{padding:16px 16px 48px}
  body.adm .main-head h1{font-size:1.35rem}
}
body.adm .adm-side a.adm-top,body.adm .adm-side summary{justify-content:flex-start}
body.adm .adm-side summary .count{margin-left:auto}body.adm .adm-side summary .count ~ *{margin-left:0}
body.adm .adm-g-links a{justify-content:space-between}
.adm-g summary:has(.count)::after{margin-left:10px}
body.adm .adm-side [hidden]{display:none!important}
@media (max-width:980px){
  body.adm .side.adm-side{top:0;bottom:0;height:100vh;height:100dvh;z-index:70;padding-top:16px}
}
/* admin settings: labelled rows, section index, search */
.set-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;align-items:start}
.set-index{position:sticky;top:76px;display:grid;gap:10px;max-height:calc(100vh - 96px);overflow:auto;padding-bottom:6px}
.set-index input{height:36px;font-size:.88rem}
.set-index nav{display:grid;gap:1px}
.set-index nav a{padding:5px 10px;border-radius:7px;text-decoration:none;color:#3d3549;font-size:.86rem}.set-index nav a:hover{background:#efebf7;color:var(--ink)}
.set-row{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr);gap:6px 20px;padding:12px 0;border-top:1px solid #f0edf4}
.set-group h3 + .set-row{border-top:0}
.set-l label{display:block;font-weight:650;color:var(--ink);font-size:.9rem;line-height:1.3}
.set-l code{font-size:.72rem;color:#8a8297;background:none;padding:0}
.set-c input[type=text]{max-width:520px;height:38px}
.set-d{margin:6px 0 0;font-size:.82rem;line-height:1.45;color:#6b6378;max-width:80ch}
.set-save{position:sticky;bottom:0;padding:12px 0;background:linear-gradient(transparent,#f6f5f9 35%)}
.set-group{scroll-margin-top:76px}
@media (max-width:980px){.set-layout{grid-template-columns:1fr}.set-index{position:static;max-height:none}.set-index nav{display:flex;flex-wrap:wrap;gap:4px}.set-index nav a{background:#fff;border:1px solid var(--edge)}.set-row{grid-template-columns:1fr}}
