/* Express Septic v2 — deep navy, warm white, one green accent sampled from the truck's hose/branding (#6cb33f). */
:root{--paper:#faf7f0;--paper2:#f0ebdf;--ink:#0d1a2e;--slate:#46536a;--line:#d9d2c3;--lime:#6cb33f;--lime-d:#356b1c;--max:1200px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink);text-decoration-color:var(--lime-d);text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--lime-d);outline-offset:3px}
.ink :focus-visible,.top :focus-visible,.foot :focus-visible{outline-color:var(--lime)}
.wrap{max-width:var(--max);margin:auto;padding:0 20px}
.skip{position:absolute;left:-999px;top:0;background:var(--lime);color:var(--ink);padding:10px 14px;z-index:99}.skip:focus{left:8px}
h1,h2,h3{line-height:1.12;letter-spacing:-.02em;font-weight:800;margin:0 0 .5em}
h1{font-size:clamp(2.1rem,5.4vw,3.9rem)}h2{font-size:clamp(1.5rem,3vw,2.25rem)}h3{font-size:1.2rem}
.eyebrow{font:600 .78rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin:0 0 14px;display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:22px;height:3px;background:var(--lime)}
.muted{color:var(--slate)}
/* header */
.top{background:var(--ink);color:var(--paper);position:sticky;top:0;z-index:20;border-bottom:3px solid var(--lime)}
.bar{display:flex;align-items:center;gap:24px;min-height:64px}
.logo{display:flex;flex-direction:column;text-decoration:none;color:var(--paper);line-height:1}
.mark{font-weight:900;letter-spacing:.16em;font-size:1.25rem;margin:0}.logo .sub{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#c9d2de;margin-top:4px}
.top nav{display:flex;gap:22px;margin-left:auto}.top nav a{color:var(--paper);text-decoration:none;font-size:.95rem}.top nav a:hover{text-decoration:underline}
.hcall{background:var(--lime);color:var(--ink);font-weight:800;text-decoration:none;padding:10px 16px;border-radius:4px;white-space:nowrap}
.menu{display:none;margin-left:auto}.menu summary{list-style:none;cursor:pointer;color:var(--paper);border:1px solid #51607a;padding:10px 14px;border-radius:4px;font-weight:700}
.menu summary::-webkit-details-marker{display:none}
.menu nav{position:absolute;left:0;right:0;top:100%;background:var(--ink);flex-direction:column;gap:0;padding:8px 20px 16px;border-bottom:3px solid var(--lime)}
.menu nav a{padding:12px 0;border-top:1px solid #2a3a52;font-size:1.05rem}
/* buttons */
.cta{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}
.btn{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:12px 22px;border-radius:4px;font-weight:800;text-decoration:none;border:2px solid var(--ink);cursor:pointer;font-size:1rem;font-family:inherit}
.btn.primary{background:var(--lime);border-color:var(--lime);color:var(--ink)}.btn.primary:hover{background:#9fd650}
.btn.ghost{background:transparent;color:var(--ink)}.ink .btn.ghost,.closer .btn.ghost{color:var(--paper);border-color:var(--paper)}
.btn .num{font-weight:600;border-left:1px solid rgba(15,27,45,.35);padding-left:10px}
/* hero */
.hero{padding:40px 0 56px;border-bottom:1px solid var(--line)}
.hgrid{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:center}
.lede{font-size:1.2rem;color:var(--slate);max-width:34em}.note{font-size:.95rem;color:var(--slate);border-left:3px solid var(--lime);padding-left:12px}
.hphoto{margin:0;position:relative}.hphoto img{width:100%;aspect-ratio:8/5;object-fit:cover;border-radius:2px}
.hphoto figcaption{display:flex;justify-content:space-between;font:600 .74rem/1 ui-monospace,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase;border-top:1px solid var(--ink);margin-top:10px;padding-top:10px;color:var(--slate)}
.phead{padding:44px 0 28px;border-bottom:1px solid var(--line)}.phead h1{max-width:20ch}
/* sections */
.sec{padding:64px 0;border-bottom:1px solid var(--line)}
.ink{background:var(--ink);color:var(--paper);border-bottom:0}.ink .eyebrow{color:#c9d2de}.ink a{color:var(--paper)}
.split{display:grid;grid-template-columns:1fr 1.6fr;gap:48px}
.two{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink)}
.feat{display:flex;flex-direction:column;gap:8px;padding:22px 22px 26px 0;text-decoration:none;border-bottom:1px solid var(--line)}
.feat+.feat{padding-left:22px;border-left:1px solid var(--line)}
.feat b{font-size:1.35rem;letter-spacing:-.01em}.feat span{color:var(--slate)}.feat .k{font:600 .74rem ui-monospace,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--lime-d)}
.feat:hover b{text-decoration:underline;text-decoration-color:var(--lime-d)}
.more{margin-top:20px;color:var(--slate)}
.spec{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin:24px 0 0;border-top:1px solid #3a4a63}
.spec div{padding:14px 0}.spec dt{font:600 .72rem ui-monospace,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase;color:#c9d2de}.spec dd{margin:4px 0 0;font-size:1.5rem;font-weight:800;color:var(--lime)}
.reviews{padding:56px 0;background:var(--paper2)}.closer{background:var(--ink);color:var(--paper);padding:56px 0}.closer a{color:var(--paper)}
/* zip + route */
.zip{border:1px solid var(--ink);padding:22px;background:#fff}.zip label{display:block;font-weight:700;margin-bottom:6px}
.zrow{display:flex;gap:10px}.zrow input{flex:1;min-width:0}
.zres{margin:12px 0 0;min-height:1.6em;font-weight:600}
.route{width:100%;height:auto;margin:28px 0 8px}.route path{fill:none;stroke:var(--ink);stroke-width:2;stroke-dasharray:6 6}
.route circle{fill:var(--lime);stroke:var(--ink);stroke-width:2}
.js .route.draw path{stroke-dasharray:1200;stroke-dashoffset:1200;transition:stroke-dashoffset 1.8s ease-out}.js .route.draw.on path{stroke-dashoffset:0}
@media (prefers-reduced-motion:reduce){.js .route.draw path{transition:none;stroke-dashoffset:0}}
/* lists */
.rows,.cards,.cities{list-style:none;padding:0;margin:16px 0 28px;border-top:1px solid var(--line)}
.rows li,.cards li{border-bottom:1px solid var(--line)}.rows a,.cards a{display:block;padding:12px 0;font-weight:600}
.cities{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:0 20px}.cities li{border-bottom:1px solid var(--line)}.cities a{display:block;padding:10px 0}
/* prose pages */
.prose{max-width:820px;padding-top:32px;padding-bottom:48px}.prose h2{margin-top:1.6em}
.shot{margin:0 0 28px}.shot img{width:100%;aspect-ratio:8/5;object-fit:cover}
.values{font-weight:700;border-left:3px solid var(--lime);padding-left:12px}
.emerg{border:1px solid var(--ink);padding:14px 16px;background:#fff}
table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{border-bottom:1px solid var(--line);padding:8px;text-align:center}th{background:var(--ink);color:var(--paper)}.tw{overflow-x:auto}
/* request */
.req{border-top:3px solid var(--ink);padding-top:24px;max-width:860px}
.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}
.choice{text-align:left;display:flex;flex-direction:column;gap:6px;padding:18px;background:#fff;border:1px solid var(--ink);border-radius:4px;font:inherit;color:var(--ink);cursor:pointer;min-height:96px}
.choice b{font-size:1.08rem}.choice span{color:var(--slate);font-size:.92rem}
.choice[aria-pressed=true]{background:var(--ink);color:var(--paper)}.choice[aria-pressed=true] span{color:#c9d2de}.choice[aria-pressed=true]{box-shadow:inset 0 -4px 0 var(--lime)}
.panel{background:#fff;border:1px solid var(--line);padding:22px;margin-top:8px}
.panel label{display:block;font-weight:700;margin:0 0 14px}
input,textarea{display:block;width:100%;margin-top:6px;font:inherit;font-size:16px;padding:12px;border:1px solid var(--slate);border-radius:4px;background:#fff;color:var(--ink)}
input[aria-invalid=true]{border:2px solid #b42318}.err{color:#b42318;font-weight:700;min-height:1em;margin:0 0 10px}
.big{font-size:1.2rem;font-weight:700}.picked{font-weight:700}
/* footer */
.foot{background:#0a1322;color:#d5dce6;padding:48px 0 32px;font-size:.92rem}
.fgrid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:28px}.foot a{color:#d5dce6;display:block;padding:3px 0}.foot p a{display:inline}
.fh{font:600 .74rem ui-monospace,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--lime);margin:0 0 8px}
/* mobile bar */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:var(--ink);border-top:3px solid var(--lime)}
.mbar .btn{justify-content:center;padding:10px}.mbar .btn.ghost{color:var(--paper);border-color:var(--paper)}
body.typing .mbar{display:none}
@media (min-width:960px){.mbar{display:none}body{padding-bottom:0}}
@media (max-width:959px){.top nav[aria-label=Primary]{display:none}.menu{display:block}.top .hcall{display:none}
 .hgrid,.split{grid-template-columns:1fr;gap:24px}.hero{padding-top:24px}.hcopy{order:0}.btn .num{display:none}
 .choices{grid-template-columns:1fr}.fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.two{grid-template-columns:1fr}.feat+.feat{padding-left:0;border-left:0}.fgrid{grid-template-columns:1fr}.sec{padding:44px 0}.spec dd{font-size:1.2rem}}
.price-slot{border:1px solid var(--ink);border-left:6px solid var(--lime);background:#fff;padding:18px 20px;margin:24px 0}.pp{font-size:1.35rem;font-weight:800;margin:0 0 6px}.lic{font:600 .78rem ui-monospace,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase;margin:-6px 0 14px}
.crew img{aspect-ratio:4/3}.ink .crew{margin-bottom:22px}.dot{font:600 .74rem ui-monospace,Menlo,monospace;letter-spacing:.12em}
.shot img[style]{max-height:78vh;object-fit:cover}
.shot figcaption{font-size:.9rem;color:var(--slate);margin-top:8px}

/* ===== redesign v2 ===== */
body{font-family:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
h1,h2{font-weight:850;letter-spacing:-.03em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.btn.dark{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn.dark:hover{background:#1c2c47}
.btn.primary:hover{background:#7fc552}
.txtlink{font-weight:700}
/* hero: wide truck photo, copy below on phones, overlaid card on desktop */
.hero{padding:0;border-bottom:0;background:var(--ink);color:var(--paper);position:relative}
.hero .hphoto{margin:0}.hero .hphoto img{width:100%;height:clamp(190px,46vw,640px);aspect-ratio:auto;object-fit:cover;object-position:50% 62%;border-radius:0}
.hcopy{padding-top:22px;padding-bottom:28px}
.hero .eyebrow{color:#cfe8bf}.hero .eyebrow::before{background:var(--lime)}
.hero h1{font-size:clamp(2rem,5vw,4.1rem);max-width:15ch;margin-bottom:.35em}
.avail{font-size:1.08rem;color:#dbe2ec;margin:0 0 14px;max-width:36em}
.from{margin:0 0 4px;font-size:1.05rem;color:#dbe2ec}.from strong{color:#fff;font-size:1.35rem}.from a{color:#cfe8bf;margin-left:8px;font-size:.92rem;white-space:nowrap}
.hero .cta{margin:14px 0 0}.hero .btn.ghost{color:var(--paper);border-color:#8d9bb0}
.btn.big{font-size:1.08rem;min-height:54px}
@media (min-width:960px){
 .hero{display:grid;grid-template-columns:minmax(0,44fr) minmax(0,56fr);min-height:min(80vh,700px)}
 .hero .hphoto{grid-column:2;grid-row:1}.hero .hphoto img{height:100%;min-height:560px;object-position:40% 60%}
 .hero .hcopy{grid-column:1;grid-row:1;margin:0;max-width:none;display:flex;flex-direction:column;justify-content:center;padding:48px 48px 48px max(24px,calc((100vw - var(--max))/2 + 20px))}
}
@media (max-width:959px){.hero .wrap{padding-left:20px;padding-right:20px}.hero h1{font-size:2.05rem}.btn .num{display:inline}.hero .cta .btn{width:100%;justify-content:center}}
/* services: editorial list, not cards */
.svc{display:grid;grid-template-columns:1fr 1.4fr;gap:20px 64px}.svch h2{max-width:14ch}
.svcl{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.svcl a{display:grid;grid-template-columns:1fr 1.2fr;gap:6px 24px;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none}
.svcl b{font-size:1.25rem;letter-spacing:-.01em}.svcl span{color:var(--slate)}.svcl a:hover b{text-decoration:underline;text-decoration-color:var(--lime-d)}
.svc .price{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.4fr;gap:8px 64px;align-items:baseline;border-top:6px solid var(--lime);padding-top:20px;margin-top:12px}
.price .pp{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:850;margin:0;letter-spacing:-.02em}.price p{margin:0}
/* truck: photo carries it */
.truck{background:var(--ink);color:var(--paper)}.tphoto{margin:0}.tphoto img{width:100%;height:clamp(240px,52vw,720px);object-fit:cover;object-position:50% 55%}
.tcopy{padding-top:32px;padding-bottom:56px;display:grid;grid-template-columns:1fr 1.4fr;gap:8px 64px;align-items:start}.tcopy .eyebrow{grid-column:1/-1;color:#cfe8bf}.tcopy h2{color:#fff;margin:0}.tcopy p{margin:0;color:#dbe2ec;font-size:1.1rem}
/* owner */
.warm{background:var(--paper2)}
.owner{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}.owner .shot{margin:0}.owner .crew img{aspect-ratio:4/3;object-position:30% 50%}
.promise{margin:0 0 18px;font-size:clamp(1.6rem,3.2vw,2.4rem);line-height:1.15;font-weight:850;letter-spacing:-.025em;border-left:6px solid var(--lime);padding-left:20px}
/* reviews */
.revrow{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 48px}.revrow h2{margin-bottom:.2em}.revrow p{margin:0}
.revlinks{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
/* area */
.area .cities{margin-top:0}
/* booking paths */
.bookband{background:#fff}
.book h2{margin-bottom:24px}
.paths{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1.2fr 1fr 1fr;border-top:2px solid var(--ink)}
.path{padding:24px 28px 28px 0;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.path+.path{padding-left:28px;border-left:1px solid var(--line)}
.path p{margin:0;color:var(--slate)}.path .pk{font-size:1.3rem;font-weight:850;color:var(--ink);letter-spacing:-.01em}
.path .btn{margin-top:auto}.path.urgent{background:var(--ink);color:var(--paper);padding-left:24px}.path.urgent p{color:#dbe2ec}.path.urgent .pk{color:#fff}
.prose .book{margin-top:28px}
@media (max-width:959px){.svc,.svc .price,.tcopy,.owner{grid-template-columns:1fr;gap:18px}.svcl a{grid-template-columns:1fr}
 .paths{grid-template-columns:1fr}.path,.path+.path{padding:22px 0;border-left:0;border-bottom:1px solid var(--line)}.path.urgent{padding:22px 18px}}
.mbar .btn{white-space:nowrap;font-size:.98rem}.mbar{grid-template-columns:1.6fr 1fr}
[id]{scroll-margin-top:84px}
