/*
 * composed.css - the ONE stylesheet for all 21,387 composed city pages.
 *
 * ===== Why this file exists =====
 *
 * Until now every composed page carried its own copy of this sheet in an
 * inline <style> block - 19,328 bytes, about half the page. A restyle meant
 * rewriting 21,387 committed documents. This is that sheet, extracted once, so
 * a restyle is an edit to this file and nothing else.
 *
 * ===== Provenance: V1, verbatim =====
 *
 * The corpus carried FIVE distinct <style> blocks, not one:
 *
 *   V1  20,734 pages  47 states                    <- this file
 *   V2     260 pages  illinois 145, north-carolina 115
 *   V3     240 pages  california 186, new-jersey 54
 *   V4      93 pages  georgia
 *   V5      60 pages  south-carolina
 *
 * The CSS below is V1's block byte-for-byte; only this comment is added. The
 * other four are NOT merged in - owner's ruling 2026-09-11 is that all 653
 * converge onto V1. What that changes is recorded in the patch script,
 * tools/patch-composed-stylesheet.js, and measured by its --verify mode.
 *
 * ===== Why this is NOT site.css =====
 *
 * site.css is the template/homepage sheet and it is a DIFFERENT design system.
 * The two share 61 selectors and CLASH on 27 of them, including :root, html,
 * body, .hd, .logo, h1, .quote-card, .hazard, footer and footer a - different
 * --paper (#FFFFFF vs #FAF8F4), different body background (ground vs paper),
 * an 8px vs 14px .hazard, different h1 clamp. Merging them would let whichever
 * rule is written last win on all 27.
 *
 * That is not hypothetical. It is the defect tools/patch-composed-header.js
 * was written for: site.css's `header{background:var(--asphalt);color:#fff}`
 * against the shell's `.hd{background:var(--paper)}` painted the wordmark and
 * the phone number white-on-white at 1.00:1 on eight page families.
 *
 * Composed pages link THIS sheet and never site.css, which is exactly the
 * isolation they have today with the block inlined.
 *
 * ===== The href is stable on purpose =====
 *
 * Pages reference `/assets/composed.css`. build.js content-hashes the file and
 * rewrites that href to the hashed URL at emit time. If the committed pages
 * carried the hash, every restyle would change it and re-dirty all 21,387 -
 * which is the problem this file exists to remove.
 */

:root{
  --paper:#FFFFFF;--asphalt:#1A1D21;--asphalt-2:#25292F;--red:#C8102E;
  --manila:#EFE6CC;--manila-line:#D9C89A;--plate:#2B2F36;--slate:#5C646D;--line:#E2DFD8;
  --page:1160px;--gutter:48px;--sheet-pad:52px;--ground:#0B0D0F;
}
*{margin:0;padding:0;box-sizing:border-box}
html{background:var(--ground)}
body{font-family:'Barlow',sans-serif;background:var(--ground);color:var(--asphalt);
  font-size:17px;line-height:1.6;padding:var(--gutter) 0;-webkit-font-smoothing:antialiased}
a{color:inherit}
.sheet{width:calc(100% - var(--gutter)*2);max-width:var(--page);margin:0 auto;
  background:var(--paper);border-radius:8px;overflow:hidden;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.8)}
.band{padding:0 var(--sheet-pad)}

.hd{background:var(--paper);border-bottom:1px solid var(--line);display:flex;
  align-items:center;justify-content:space-between;gap:20px;padding-top:16px;padding-bottom:16px;
  color:var(--asphalt)}
.logo{font-family:'Oswald',sans-serif;font-weight:700;font-size:1.45rem;text-transform:uppercase;
  text-decoration:none;line-height:1}
.logo em{font-style:normal;color:var(--red)}
.hd-right{display:flex;align-items:center;gap:22px}
/* --- header v3: hamburger at every width ------------------------------ */
.hd{position:relative;gap:16px;flex-wrap:nowrap}
.hd .logo{font-size:1.34rem}
.hd-right{display:flex;align-items:center;gap:14px}
.hd-phone{white-space:nowrap;font-size:1rem}
.hd-cta{white-space:nowrap}
.mnav-cb,.tools-cb{position:absolute;opacity:0;width:1px;height:1px;margin:0}

.mnav-t{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;
  width:44px;height:44px;flex:0 0 44px;cursor:pointer;border:1px solid var(--line);
  border-radius:7px;background:var(--paper);transition:border-color .14s,background .14s}
.mnav-t:hover{border-color:var(--red);background:#FDF7F8}
.mnav-cb:focus-visible~.mnav-t,
.mnav-t:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.mnav-t span,.mnav-t span::before,.mnav-t span::after{display:block;width:19px;height:2px;
  background:var(--asphalt);border-radius:2px;transition:transform .18s,opacity .18s}
.mnav-t span{position:relative}
.mnav-t span::before,.mnav-t span::after{content:"";position:absolute;left:0}
.mnav-t span::before{top:-6px}
.mnav-t span::after{top:6px}
.mnav-cb:checked~.mnav-t span{background:transparent}
.mnav-cb:checked~.mnav-t span::before{transform:translateY(6px) rotate(45deg)}
.mnav-cb:checked~.mnav-t span::after{transform:translateY(-6px) rotate(-45deg)}

/* the panel: a card under the hamburger on wide screens, full width on small */
.hd-nav{display:none;position:absolute;top:calc(100% - 8px);right:var(--sheet-pad);z-index:70;
  width:330px;flex-direction:column;padding:8px;background:#fff;border:1px solid var(--line);
  border-radius:8px;box-shadow:0 18px 44px rgba(0,0,0,.16);
  font-family:'Barlow',sans-serif;font-size:.95rem}
.mnav-cb:checked~.hd-nav{display:flex}
.hd-nav>a,.tools-t{display:block;padding:11px 12px;border-radius:5px;color:var(--asphalt);
  text-decoration:none;border-bottom:1px solid var(--line)}
.hd-nav>a:hover,.tools-t:hover{background:#F6F3EA;color:var(--red)}

.tools{display:block}
.tools-t{cursor:pointer;display:flex;align-items:center;justify-content:space-between;
  border-bottom:0;font-weight:600}
.tools-t::after{content:"";border-left:5px solid transparent;border-right:5px solid transparent;
  border-top:6px solid currentColor;transition:transform .16s}
.tools-cb:checked~.tools-t::after{transform:rotate(180deg)}
.tools-cb:focus-visible~.tools-t,
.tools-t:focus-visible{outline:2px solid var(--red);outline-offset:-2px}
.tools-menu{display:none;flex-direction:column;padding:2px 0 6px 12px;
  border-left:2px solid var(--manila-line);margin:0 0 4px 12px}
.tools-cb:checked~.tools-menu{display:flex}
.tools-menu a{display:block;padding:9px 10px;border-radius:5px;color:var(--slate);
  text-decoration:none;font-size:.9rem}
.tools-menu a:hover{background:#F6F3EA;color:var(--red)}

@media (max-width:720px){
  .hd-nav{width:auto;left:var(--sheet-pad);right:var(--sheet-pad)}
}
/* ONE ROW, at every phone width (RONNIE, 2026-09-04, on an iPhone at 390px).
   The block this replaces gave .hd-right `width:100%`, which pushed the phone
   and SELL MY TRUCK onto a second line under the logo.

   A CONTINUOUS RAMP, not steps. 350px of content at 390px does not hold the
   wordmark, a 40px target, the number and the button at their desktop sizes, so
   everything scales - but as clamp() between the value at 320px and the value
   at 560px rather than as four breakpoints. Two reasons, and the second is the
   one that decided it: it reads smoothly instead of jumping, and each selector
   is then written ONCE, so css-check's duplicate-rule arm (which keys on the
   selector and not the @media context) has nothing to collide with. The
   breakpoint version tripped it on five selectors.

   The logo takes two lines rather than shrink away - all three words stay,
   which is the point. Selectors are `.hd .x` (0,2,0) because site.css ships
   BEFORE this block on every re-housed page and its `.hd .hd-right` would
   otherwise win. Measured at 560, 480, 430, 414, 393, 390, 375, 360, 344 and
   320px: one row, nothing overlapping, no horizontal scroll, right edge on the
   sheet's own padding. */
@media (max-width:560px){
  .hd{gap:clamp(5px,1px + 1.25vw,8px);
    padding-left:clamp(12px,-9.33px + 6.67vw,20px);
    padding-right:clamp(12px,-9.33px + 6.67vw,20px)}
  .hd .logo{order:1;flex:0 0 auto;max-width:5.4em;letter-spacing:0;line-height:1.06;
    font-size:clamp(13.6px,9.07px + 1.42vw,17px)}
  .hd .mnav-t{order:2;margin-left:auto;
    width:clamp(36px,30.67px + 1.67vw,40px);height:clamp(36px,30.67px + 1.67vw,40px);
    flex:0 0 clamp(36px,30.67px + 1.67vw,40px)}
  .hd .hd-right{order:3;width:auto;margin:0;flex:0 0 auto;justify-content:flex-end;
    gap:clamp(5px,1px + 1.25vw,8px)}
  .hd .hd-phone{font-size:clamp(12.24px,7.71px + 1.42vw,15.64px)}
  .hd .hd-cta{display:inline-block;letter-spacing:.02em;
    font-size:clamp(9.86px,5.78px + 1.28vw,12.92px);
    padding:clamp(7px,3px + 1.25vw,10px) clamp(8px,1.33px + 2.08vw,13px)}
  .hd .hd-nav{top:calc(100% - 10px)}
}
.hd-phone{font-family:'Oswald',sans-serif;font-weight:600;font-size:1.15rem;text-decoration:none}
.hd-phone small{display:block;font-family:'IBM Plex Mono',monospace;font-weight:400;
  font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.hd-cta{background:var(--red);color:#fff;text-decoration:none;font-family:'Oswald',sans-serif;
  font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:.88rem;
  padding:11px 20px;border-radius:4px}

.top{background:var(--asphalt);color:#fff;padding-top:50px;padding-bottom:54px}
.top-grid{display:grid;grid-template-columns:1fr 448px;gap:44px;align-items:start}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:.75rem;letter-spacing:.16em;
  text-transform:uppercase;color:#9AA2AB;margin-bottom:14px}
h1{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;
  font-size:clamp(2rem,3.4vw,2.9rem);line-height:1.05}
.attitude{font-family:'Oswald',sans-serif;font-weight:500;text-transform:uppercase;
  letter-spacing:.07em;color:var(--manila);font-size:1.02rem;margin:14px 0 18px}
.lede{color:#C7CCD2;max-width:46ch;margin-bottom:24px}
.ready{border-top:1px solid #333941;padding-top:20px;margin-top:22px}
.ready h2{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:#9AA2AB;margin-bottom:14px}
.ready dt{font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:.95rem;
  letter-spacing:.02em;margin-top:14px;color:#fff}
.ready dt:first-of-type{margin-top:0}
.ready dd{color:#B4BAC1;font-size:.96rem;margin-top:3px}
.ready a{color:var(--manila)}

.quote-card{background:var(--manila);color:var(--asphalt);border-radius:10px;
  padding:26px 24px 22px;border:1px solid var(--manila-line);position:relative;
  box-shadow:0 18px 40px rgba(0,0,0,.4)}
.quote-card::before{content:"";position:absolute;top:-11px;left:50%;transform:translateX(-50%);
  width:86px;height:20px;background:var(--plate);border-radius:5px;
  box-shadow:inset 0 -2px 0 rgba(255,255,255,.12)}
.qc-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}
.qc-head h2{font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:1.25rem}
.qc-head span{font-family:'IBM Plex Mono',monospace;font-size:.66rem;letter-spacing:.1em;color:#7d7458}
.qc-sub{font-size:.9rem;color:#5b543f;margin-bottom:16px}
.qform{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.qf-full{grid-column:1/-1}
.qform label{display:block;font-family:'Oswald',sans-serif;font-size:.82rem;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;color:#6b6248;margin-bottom:6px}
.qform input,.qform select{width:100%;font-family:'Barlow',sans-serif;font-size:16px;
  padding:11px 12px;min-height:46px;border:1px solid #C9B583;border-radius:5px;
  background:#FFFDF7;color:var(--asphalt)}
.qform input:focus,.qform select:focus{outline:2px solid var(--red);outline-offset:1px;border-color:transparent}
.q-submit{grid-column:1/-1;background:var(--red);color:#fff;border:none;border-radius:6px;
  font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  font-size:1.08rem;padding:15px;cursor:pointer;margin-top:4px}
.q-fine{grid-column:1/-1;text-align:center;font-size:.76rem;color:#77704f;margin-top:2px}
.q-error{grid-column:1/-1;margin:2px 0 0;color:#C8102E;font-family:'Barlow',sans-serif;font-size:.86rem;text-align:center}

.hazard{height:8px;background:repeating-linear-gradient(45deg,var(--red) 0 14px,#1A1D21 14px 28px)}

main{padding-top:8px}
.sec-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:.74rem;letter-spacing:.17em;
  text-transform:uppercase;color:var(--red);margin-bottom:9px}
h2.sec{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;
  font-size:clamp(1.55rem,2.8vw,2.05rem);line-height:1.1;margin-bottom:14px}
section.blk{padding-top:38px;padding-bottom:38px;border-top:1px solid var(--line)}
section.blk:first-of-type{border-top:0}
p{margin-bottom:15px}
p:last-child{margin-bottom:0}
.body-col{max-width:62ch}
.aside{border-left:3px solid var(--line);padding:2px 0 2px 16px;color:var(--slate);
  font-size:15.5px;font-style:italic;margin-top:18px}

.figs{display:flex;flex-wrap:wrap;border:1px solid var(--line);margin-bottom:20px}
.fig{flex:1 1 160px;padding:16px 18px;border-right:1px solid var(--line)}
.fig:last-child{border-right:0}
.fig b{display:block;font-family:'Oswald',sans-serif;font-size:1.5rem;line-height:1.1}
.fig span{display:block;font-size:.78rem;color:var(--slate);margin-top:4px}

.wtable{width:100%;border-collapse:collapse;margin-bottom:14px;font-size:16px}
.wtable th{text-align:left;font-family:'IBM Plex Mono',monospace;font-size:.68rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--slate);
  border-bottom:2px solid var(--line);padding:0 12px 8px 0}
.wtable td{padding:11px 12px 11px 0;border-bottom:1px solid var(--line);vertical-align:top}
.wtable td:first-child{font-weight:600;width:46%}
.wtable tr.hi td{background:#FFF8EE}
.wtable tr.hi td:first-child{box-shadow:inset 3px 0 0 var(--red)}

.callout{background:var(--manila);border:1px solid var(--manila-line);padding:20px 22px;margin-top:20px}
.callout p{margin:0;font-size:16px;color:#4a4534}
.callout strong{color:var(--asphalt)}

.rules{list-style:none;margin-top:6px}
.rules li{padding:14px 0;border-bottom:1px solid var(--line)}
.rules li:last-child{border-bottom:0}
.rules b{display:block;font-family:'Oswald',sans-serif;text-transform:uppercase;
  font-size:1rem;letter-spacing:.02em;margin-bottom:5px}
.rules span{color:var(--slate);font-size:.97rem}

.asof{font-size:.82rem;color:var(--slate);border-top:1px solid var(--line);
  padding-top:16px;margin-top:8px}
.asof a{color:var(--red)}

.endcap{background:var(--red);color:#fff;text-align:center;padding-top:46px;padding-bottom:46px}
.endcap h2{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;
  font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:10px}
.endcap p{color:#F7CDD4;max-width:50ch;margin:0 auto 22px}
.btn-light{display:inline-block;background:#fff;color:var(--red);text-decoration:none;
  font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;padding:14px 26px;border-radius:6px}
footer{background:var(--asphalt);color:#9aa0a8;padding-top:32px;padding-bottom:32px;font-size:.9rem}
footer .logo{color:#fff;display:inline-block;margin-bottom:8px}
footer a{color:#9aa0a8}

@media (max-width:1080px){:root{--gutter:28px;--sheet-pad:38px}.top-grid{grid-template-columns:1fr 396px;gap:36px}}
@media (max-width:900px){.top-grid{grid-template-columns:1fr;gap:0}.quote-card{max-width:440px}
  .top-grid>div:first-child{display:contents}
  .top-grid>.quote-card{order:2;margin-top:8px}
  .top-grid>div:first-child>.ready{order:3}}
@media (max-width:640px){
  :root{--gutter:0px;--sheet-pad:20px}
  body{padding:0}.sheet{width:100%;border-radius:0;box-shadow:none}
  .qform{grid-template-columns:1fr}.fig{flex:1 1 100%;border-right:0;border-bottom:1px solid var(--line)}
}

.qform{gap:13px}
.faq b{display:block;font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:1rem;margin-bottom:5px}
.faq li{padding:14px 0;border-bottom:1px solid var(--line);list-style:none}
.faq li:last-child{border-bottom:0}
.cite{font-size:.82rem;color:var(--slate);margin-top:14px}
/* THE STEPS IN THE HERO'S LEFT COLUMN (RONNIE, 2026-09-05).
   The card is the hero grid's right cell and the left cell ran out of content
   partway down it. The page's steps sit at the foot of that cell and run down
   beside the rest of the form, stacked - the three-across grid has nowhere near
   the room in a 560px column.

   The copy is templates/city.js renderSteps(), per city, county swapped in by
   its own countyPhrasing; nothing here is written by hand.

   EVERY RULE IS SCOPED UNDER .hero-steps AND SELF-CONTAINED. The committed
   pages' inlined CSS is a SUBSET of this shell - measured, they carry no
   .steps, no .step, no .step::before and no .sec-lede - so a block that leaned
   on those rendered as unstyled text on all 21,387. Scoping also means these
   cannot collide with the base .steps/.step rules on pages that do have them.
   The numbers still come from a counter, not from the markup. */
.hero-steps{border-top:1px solid #333941;padding-top:20px;margin-top:22px}
.hero-steps h2{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;
  font-size:1.35rem;line-height:1.1;margin:0 0 10px}
.hero-steps .sec-lede{color:#B4BAC1;font-size:.96rem;margin:0 0 16px;max-width:none}
.hero-steps .steps{display:grid;grid-template-columns:1fr;gap:14px;counter-reset:step}
.hero-steps .step{background:#fff;border:1px solid var(--line);border-radius:8px;
  padding:18px 18px 15px;position:relative}
.hero-steps .step::before{counter-increment:step;
  content:counter(step,decimal-leading-zero);position:absolute;top:-12px;left:16px;
  background:var(--red);color:#fff;font-family:'Oswald',sans-serif;font-weight:700;
  font-size:.9rem;padding:3px 9px;border-radius:4px;letter-spacing:.06em}
.hero-steps .step h3{font-family:'Oswald',sans-serif;text-transform:uppercase;
  font-size:1.05rem;letter-spacing:.03em;color:var(--asphalt);margin:6px 0 6px}
.hero-steps .step p{color:var(--slate);font-size:.93rem;margin:0}

/* THE QUOTE FIELDS ON A PHONE (RONNIE, 2026-09-06, approved on a preview).
   TWO COLUMNS ALL THE WAY DOWN, in the pairs the desktop form already uses:
   First|Last, Phone|Email, City|State, Year|Make, Model|Engine,
   Transmission|Runs, Complete|Title, Comments across both. The renderer emits
   the fields in that order, so the grid alone produces the pairing.
   SUPERSEDES 2026-09-05, which narrowed each field to 260px and centred it -
   that was the one-column layout, so the cap and the auto margins are set back
   rather than left to be overridden. The 40px height from that ruling STAYS.
   GAPS ARE MEASURED: swept 12..2px. column-gap 4px is where the gutter still
   reads as one; row-gap 6px is a floor, because the label is margin-bottom:5px
   above its own field and under 6px it sits closer to the field ABOVE it.
   THE FONT SIZE IS UNTOUCHED AT 16px, by the ruling and because anything
   under 16px makes iOS Safari zoom the page on focus. */
@media (max-width:640px){
  .qform{grid-template-columns:1fr 1fr;column-gap:4px;row-gap:6px}
  .qform > div{width:auto;max-width:none;margin-left:0;margin-right:0}
  .qform input,.qform select,.qform textarea{min-height:40px;padding:8px 12px}
  .qform textarea{width:100%}
  .qform .qf-full{grid-column:1/-1}
  .q-submit{width:100%;max-width:none;margin-left:0;margin-right:0}
}

/* THE CALL / OFFER BAR, ON EVERY PAGE (RONNIE, 2026-09-04). Rules are the
   mockup's, as site.css carries them, so the two families' bars are the same
   bar. The composed shell had neither these nor the markup - the bar existed
   only on layout.js pages, which is a small minority of the site.
   LAST IN THE SHEET ON PURPOSE. The clearance is `body{padding-bottom}`, and
   a later `@media (max-width:620px){body{padding:0}}` further down the shell
   took it straight back - measured: 0px of clearance on the re-housed pages
   and the footer under the bar, while the composed pages (whose copy is
   appended at the end by the sweep) were fine. Same rules, different place in
   the cascade, different result. Both now sit at the end. */
.mbar{position:fixed;bottom:0;left:0;right:0;display:none;z-index:60;
  box-shadow:0 -8px 24px rgba(0,0,0,.25)}
.mbar a{flex:1;text-align:center;padding:15px 8px;font-family:'Oswald',sans-serif;
  font-weight:700;text-transform:uppercase;letter-spacing:.05em;text-decoration:none;
  font-size:1rem}
.mbar .call{background:var(--asphalt);color:#fff}
.mbar .quote{background:var(--red);color:#fff}
@media (max-width:700px){
  .mbar{display:flex}
  body{padding-bottom:calc(var(--gutter) + 56px)}
}

/* THE TRUCK ROW INSIDE THE QUOTE CARD (RONNIE, 2026-09-06; placement settled
   2026-09-07).
   ONE PLACEMENT AT EVERY WIDTH: the row is the card's first child in the DOM
   and that is where it renders - inside the card, at the top - on a desktop and
   on a phone alike. It briefly had a second behaviour under 700px, taken out of
   flow and hung above the card, with the card reserving the height by hand;
   that is gone, and in flow the row reserves its own height.
   NO DECLARATION IS QUOTED IN THIS COMMENT, deliberately. These rules are
   duplicated across 21,387 files, so a rule quoted in prose here answers a
   corpus-wide grep 21,387 times and reads exactly like a rule that is still
   live. The full history is in worker/assets/site.css, the one copy that is
   not duplicated.
   The markup is injected by build.js at emit time and is NOT baked into these
   files - four drawings are 13.1 KB, and 13.1 KB x 21,387 committed pages is
   274 MB of repository. Only the rules live here, because a composed page
   carries its own stylesheet and links nothing. */
.truck-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;align-items:end;margin:0 0 14px}
.truck-row .truck{display:block;width:100%;height:auto}

/* THE SPAM HONEYPOT. Added 2026-09-11, AFTER the convergence, as a fix.
 *
 * This file is V1's block, and V1 pages hide the `website` honeypot with an
 * inline style="display:none" on the input itself - so V1 never needed a rule
 * and never had one. 413 pages (V2 260, V4 93, V5 60) instead carry
 * `class="hp"` and relied on THEIR sheet's copy of this rule. Converging them
 * onto V1 dropped it, and the trap field rendered as a visible, unlabelled
 * 193x46 text input inside the quote form at x=825.
 *
 * That is worse than a cosmetic regression: a real seller fills the visible
 * box in, and /api/leads treats a non-empty `website` as a bot, so the lead is
 * discarded. Measured in Chrome, not inferred.
 *
 * Restoring the rule costs nothing anywhere else - the 20,974 pages that use
 * the inline style carry no element with this class, so it matches nothing.
 * form-required-check.js now holds it: PART B36 fails if any composed page's
 * honeypot is reachable.
 */
.hp{position:absolute;left:-9999px}
