/* ══════════════════════════════════════════════════════════════════
   The Buyers Grail — library stylesheet (Phase 1, 6 Sep 2026).
   Tokens, type and buttons follow the v8 landing stylesheet (PR #20):
   Buyble Red #9D0B0B · Grail Black #141412 · Cream #F5EFE3 · card #FFFDF7
   hairline #DED6C6 · body #4A4A46 · label #5A564E. Archivo Black for
   headings, Archivo for figures and UI, DM Sans for body. Never red type
   on Grail Black. No italics.
   ══════════════════════════════════════════════════════════════════ */
@font-face{font-family:'Archivo Black';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ArchivoBlack-latin.woff2) format('woff2')}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/Archivo-latin.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 1000;font-display:swap;src:url(/fonts/DMSans-latin.woff2) format('woff2')}
:root{
  --red:#9D0B0B;--red-deep:#830909;--black:#141412;--black-2:#1F1F1C;--black-line:#35352F;
  --cream:#F5EFE3;--card:#FFFDF7;--tint:#FBF8F1;--line:#DED6C6;
  --ink:#141412;--body:#4A4A46;--label:#5A564E;--dim:#A5A399;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:16px}
body{font-family:'DM Sans',system-ui,sans-serif;color:var(--body);background:var(--cream);line-height:1.6;font-size:1rem}
[hidden]{display:none !important}
h1,h2,h3{font-family:'Archivo Black',Impact,'Arial Black',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.005em;line-height:1.1;color:var(--red)}
h3{color:var(--ink)}
b,strong,.btn,.eyebrow,.tag-draft{font-family:'Archivo','Helvetica Neue',Arial,sans-serif}
a{color:var(--red)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--black);outline-offset:2px}
img,svg{max-width:100%}
.wrap{max-width:940px;margin:0 auto;padding:0 24px}
.narrow{max-width:760px}
.skip{position:absolute;left:-999px;top:8px;background:var(--black);color:var(--cream);padding:8px 12px;border-radius:6px;z-index:100}
.skip:focus{left:8px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}

/* header */
.site-header{background:rgba(245,239,227,.98);border-bottom:1px solid var(--line)}
.brand-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 24px;max-width:940px;margin:0 auto}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand img{width:32px;height:32px}
.brand b{font-family:'Archivo Black',Impact,sans-serif;font-weight:400;font-size:.98rem;letter-spacing:.02em;white-space:nowrap}

/* buttons */
.btn{display:inline-block;background:var(--red);color:var(--cream);text-decoration:none;font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.88rem;padding:15px 26px;border-radius:6px;border:1px solid var(--red);cursor:pointer;transition:background .15s,transform .12s;white-space:nowrap}
.btn:hover{background:var(--red-deep);border-color:var(--red-deep);transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--red)}
.btn.ghost:hover{background:rgba(157,11,11,.08)}
.btn.sm{padding:10px 16px;font-size:.8rem}
.eyebrow{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--red);border:1px solid var(--red);border-radius:4px;padding:5px 10px;margin-bottom:16px}
.src{font-size:.78rem;color:var(--label);line-height:1.5}

/* breadcrumb + article head */
.crumbs{padding:18px 0 0;font-size:.8rem;color:var(--label)}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.crumbs li+li::before{content:"›";margin-right:8px;color:var(--dim)}
.crumbs a{color:var(--label);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.article-head{padding:22px 0 26px;border-bottom:1px solid var(--line);margin-bottom:28px}
.article-head h1{font-size:clamp(1.7rem,4.2vw,2.6rem);max-width:24ch;margin:6px 0 14px}
.article-head .lead{font-size:clamp(1.02rem,1.9vw,1.18rem);color:var(--ink);max-width:40rem}
.article-head .meta{font-size:.8rem;color:var(--label);margin-top:14px}
.article-head .meta em{font-style:normal;color:var(--red);font-weight:600}
.article-head .status{margin-top:14px;padding:12px 16px;border-left:3px solid var(--red);background:var(--card);border-radius:0 8px 8px 0;font-size:.92rem;color:var(--body)}
.article-head .status b{color:var(--ink)}
/* founder block on /about/: portrait beside name, stat line and the contact button */
.founder{display:flex;gap:22px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px;margin:0 0 28px}
.founder-text p{margin:0 0 10px}
.founder-name{font-size:1.05rem;line-height:1.4}
@media (max-width:560px){.founder{flex-direction:column}}
/* ad landing page (/before-you-make-an-offer/): tagline, steps, three sample pages */
.lp-hero{margin:0 0 30px}
.lp-tag{font-family:'Archivo Black',Archivo,sans-serif;font-size:clamp(1.2rem,3vw,1.6rem);line-height:1.2;color:var(--red);margin:0 0 16px;text-wrap:balance}
.lp-hero .cta-row,.prose .cta-row{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px}
.lp-steps{counter-reset:s;list-style:none;padding:0;margin:0 0 28px;display:grid;gap:12px;max-width:none}
.lp-steps li{counter-increment:s;display:flex;gap:14px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin:0}
.lp-steps li span{flex:1}
.lp-steps li b{display:inline;color:var(--ink)}
.lp-steps li::before{content:counter(s);flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--line);color:var(--ink);font-family:'Archivo Black',Archivo,sans-serif;font-size:1.2rem}
.lp-preview{margin:0 0 30px}
.lp-preview .pages{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.lp-preview img{width:100%;height:auto;border:1px solid var(--line);border-radius:8px;background:#fff}
.lp-preview figcaption{font-size:.85rem;color:var(--label);margin-top:10px}
@media (max-width:560px){.lp-preview .pages{grid-template-columns:1fr 1fr}}

/* prose */
.prose{font-size:1.02rem;max-width:40rem}
.prose>*+*{margin-top:1em}
.prose h2{font-size:1.28rem;margin-top:2.2em;margin-bottom:.4em;color:var(--red)}
.prose h3{font-size:1.02rem;margin-top:1.6em;margin-bottom:.3em}
.prose ul,.prose ol{padding-left:1.35em}
.prose li+li{margin-top:.4em}
.prose blockquote{border-left:3px solid var(--line);padding:4px 18px;color:var(--body);background:var(--card);border-radius:0 8px 8px 0}
.prose table{width:100%;border-collapse:collapse;font-size:.92rem;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.prose th,.prose td{text-align:left;padding:10px 12px;border-top:1px solid var(--line);vertical-align:top}
.prose thead th{background:var(--black);color:var(--cream);border-top:0;font-family:'Archivo',sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}
/* wide tables scroll inside the wrap; the first column stays put so a phone reader
   always sees which row a figure belongs to. The table's own overflow:hidden would
   make it the scroll container and defeat the sticky cells, so the wrap takes the
   radius and the table is left visible. */
.prose .table-wrap{overflow-x:auto;border-radius:10px}
.prose .table-wrap table{overflow:visible}
.prose .table-wrap thead th:first-child{border-top-left-radius:10px}
.prose .table-wrap thead th:last-child{border-top-right-radius:10px}
.prose .table-wrap th:first-child,.prose .table-wrap td:first-child{position:sticky;left:0;background:var(--card);z-index:1;box-shadow:1px 0 0 var(--line)}
.prose .table-wrap thead th:first-child{background:var(--black)}
.prose dfn{font-style:normal}
.prose dfn a{text-decoration:underline dotted;text-underline-offset:3px;color:inherit}
.prose .callout{padding:16px 20px;border-left:3px solid var(--red);background:var(--card);border-radius:0 8px 8px 0}
.prose .callout b{color:var(--ink)}
.claim sup a{text-decoration:none;color:var(--label)}

/* sources, related, cta, disclaimer */
.sources,.related{margin-top:44px;padding-top:22px;border-top:1px solid var(--line);max-width:40rem}
.sources h2,.related h2{font-size:.82rem;letter-spacing:.12em;color:var(--label);margin-bottom:12px}
.sources ol{padding-left:1.3em;font-size:.9rem}
.sources li+li{margin-top:6px}
.related ul{list-style:none}
.related li+li{margin-top:8px}
.cta-box{margin:44px 0 0;padding:26px 24px;background:var(--black);color:var(--cream);border-radius:12px;max-width:40rem}
.cta-box h2{color:var(--cream);font-size:1.2rem;margin-bottom:10px}
.cta-box p{color:#E7E1D3}
.cta-box .cta-row{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 12px}
.cta-box .btn{background:var(--cream);color:var(--black);border-color:var(--cream)}
.cta-box .btn:hover{background:#fff;border-color:#fff}
.cta-box .btn.ghost{background:transparent;color:var(--cream)}
.cta-box .btn.ghost:hover{background:rgba(245,239,227,.12)}
.cta-box .src{color:var(--dim)}
.disclaimer{margin:28px 0 56px;padding:18px 20px;background:var(--tint);border:1px solid var(--line);border-radius:10px;font-size:.84rem;color:var(--label);max-width:40rem}
.disclaimer p+p{margin-top:8px}
.disclaimer .compliance-line{font-family:'Archivo',sans-serif;font-weight:700;color:var(--ink)}

/* hubs, faq, glossary, samples */
.stage-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:8px 0 40px}
.stage-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px}
.stage-card h2{font-size:1.02rem;margin-bottom:8px;color:var(--ink)}
.stage-card p{font-size:.94rem}
.stage-card ul{list-style:none;margin-top:12px}
.stage-card li+li{margin-top:8px}
.tag-draft{display:inline-block;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--label);border:1px solid var(--line);border-radius:3px;padding:2px 6px;margin-left:6px;vertical-align:middle}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:10px;padding:14px 18px}
.faq summary{cursor:pointer;font-weight:600;font-size:.98rem;color:var(--ink);list-style:none;position:relative;padding-right:28px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:0;color:var(--red);font-family:'Archivo',sans-serif;font-weight:700;font-size:1.2rem;line-height:1.2}
.faq details[open] summary::after{content:"–"}
.faq details p{margin-top:10px;color:var(--body);font-size:.94rem}
.glossary dt{font-family:'Archivo',sans-serif;font-weight:700;color:var(--ink);margin-top:18px;scroll-margin-top:16px}
.glossary dd{margin-top:4px;max-width:40rem}
.sample-list{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px}
.sample-list a{display:block;padding:10px 14px;background:var(--card);border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--ink);font-weight:600}
.sample-list a:hover{border-color:var(--red)}

/* calculators */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.calc{margin:8px 0 12px}
.calc-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:22px;align-items:start}
.calc-form{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}
.calc-form .field{display:grid;gap:5px;margin-bottom:14px}
.calc-form .field:last-child{margin-bottom:0}
.calc-form label{font-family:'Archivo','Helvetica Neue',Arial,sans-serif;font-weight:700;font-size:.82rem;color:var(--ink)}
.calc-form .help{font-size:.78rem;color:var(--label);font-weight:400}
.calc-form input[type=number],.calc-form select{font:inherit;font-size:1rem;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);width:100%;font-variant-numeric:tabular-nums}
.calc-form input:focus-visible,.calc-form select:focus-visible{outline:3px solid var(--black);outline-offset:1px}
.calc-form .unit{position:relative}
.calc-form .unit input{padding-left:26px}
.calc-form .unit::before{content:attr(data-unit);position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--label);font-size:.95rem;pointer-events:none}
.calc-form .check{grid-template-columns:auto 1fr;align-items:center;gap:10px}
.calc-form .check input{width:18px;height:18px;margin:0}
.calc-result{background:var(--black);color:var(--cream);border-radius:12px;padding:20px;position:sticky;top:12px}
.calc-result h2{color:var(--cream);font-size:.78rem;letter-spacing:.12em;margin:0 0 12px}
.calc-result .primary .v{font-family:'Archivo','Helvetica Neue',Arial,sans-serif;font-weight:700;font-size:2.1rem;line-height:1;font-variant-numeric:tabular-nums;color:var(--cream)}
.calc-result .primary .k{font-size:.8rem;color:var(--dim);margin-top:6px}
.calc-result dl{display:grid;grid-template-columns:1fr auto;gap:7px 16px;margin:16px 0 0;font-size:.9rem}
.calc-result dt{color:#CFC6BD}
.calc-result dd{margin:0;font-family:'Archivo',sans-serif;font-weight:700;text-align:right;font-variant-numeric:tabular-nums;color:var(--cream)}
.calc-result table{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:14px}
.calc-result caption{text-align:left;font-size:.8rem;color:var(--dim);padding-bottom:6px}
.calc-result th,.calc-result td{padding:6px 8px;border-top:1px solid var(--black-line);text-align:right;font-variant-numeric:tabular-nums}
.calc-result th:first-child,.calc-result td:first-child{text-align:left}
.calc-result th{font-family:'Archivo',sans-serif;font-weight:700;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.calc-result ul{margin:12px 0 0;padding-left:1.1em;font-size:.85rem;color:#CFC6BD}
.calc-result ul li+li{margin-top:4px}
.calc-result .caveat{margin:16px 0 0;font-size:.78rem;color:var(--dim);border-top:1px solid var(--black-line);padding-top:12px}
.calc-result .err{margin:0;color:var(--cream);font-size:.9rem}
.calc-note{margin-top:14px;font-size:.88rem;padding:12px 16px;background:var(--tint);border:1px solid var(--line);border-radius:8px;max-width:none}
.ref-tables{margin:8px 0 0}
.prose .table-wrap+.table-wrap{margin-top:1.4em}
.prose td.n,.prose th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.calc-list{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:8px 0 32px}
.calc-list a{display:block;padding:18px 20px;background:var(--card);border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink)}
.calc-list a:hover{border-color:var(--red)}
.calc-list b{display:block;font-family:'Archivo Black',Impact,sans-serif;font-weight:400;text-transform:uppercase;font-size:.95rem;margin-bottom:6px}
.calc-list span{font-size:.9rem;color:var(--body)}
/* phones: the form first, the result pinned to the bottom edge while the form is
   on screen, so a figure is always visible as inputs change (69% of visits are mobile) */
@media (max-width:760px){
  .calc-grid{grid-template-columns:1fr;gap:12px}
  .calc-result{position:sticky;bottom:0;top:auto;padding:14px 16px;border-radius:12px 12px 0 0;box-shadow:0 -10px 30px rgba(20,20,18,.25);max-height:52vh;overflow:auto}
  .calc-result .primary .v{font-size:1.7rem}
  .calc-form input[type=number],.calc-form select{font-size:16px;min-height:44px}
  .calc-form .check input{width:22px;height:22px}
  .calc-list{grid-template-columns:1fr}
}

/* states (Phase 3): chips, hub cards, facts, agencies, the /states/ grid */
.section-title{font-size:1.1rem;margin:36px 0 12px;color:var(--red)}
.state-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 24px}
.state-chips-label{width:100%;font-family:'Archivo',sans-serif;font-weight:700;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--label);margin-bottom:2px}
.state-chips a{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);text-decoration:none;font-family:'Archivo',sans-serif;font-weight:700;font-size:.82rem;letter-spacing:.04em}
.state-chips a:hover{border-color:var(--red)}
.state-chips a[aria-current="page"]{background:var(--black);color:var(--cream);border-color:var(--black)}
.state-chips .state-hint{width:100%;margin:0 0 8px;font-size:.92rem;color:var(--ink)}
.state-topics{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:8px 0 8px}
.state-topics a{display:block;padding:16px 18px;background:var(--card);border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink)}
.state-topics a:hover{border-color:var(--red)}
.state-topics b{display:block;font-family:'Archivo Black',Impact,sans-serif;font-weight:400;text-transform:uppercase;font-size:.9rem;margin-bottom:6px}
.state-topics span{font-size:.88rem;color:var(--body)}
.state-facts{max-width:44rem}
.state-facts h3{font-size:.95rem;margin:22px 0 8px}
.state-facts h3 a{color:var(--ink);text-decoration:none;border-bottom:2px solid var(--line)}
.state-facts h3 a:hover{border-bottom-color:var(--red)}
.state-facts dl{display:grid;grid-template-columns:minmax(9rem,11rem) 1fr;gap:10px 16px;font-size:.93rem;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.state-facts dt{font-family:'Archivo',sans-serif;font-weight:700;color:var(--ink);font-size:.82rem;line-height:1.45}
.state-facts dd{margin:0;color:var(--body)}
.state-facts dd a.src{margin-left:6px;color:var(--label)}
.unconfirmed{text-decoration:none;font-weight:700}
.state-calcs .calc-list{margin-bottom:8px}
.agency-list{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:10px;font-size:.9rem}
.agency-list li{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px;color:var(--body)}
.agency-list .role{display:block;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--label);margin-bottom:2px}
.agency-list b{display:block;font-family:'Archivo',sans-serif;margin-bottom:2px}
.agency-list b a{color:var(--ink);text-decoration:none}
.agency-list b a:hover{text-decoration:underline}
.open-items{max-width:44rem}
.open-items ol{padding-left:1.3em;font-size:.92rem}
.open-items li+li{margin-top:6px}
.state-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:8px 0 12px}
.state-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}
.state-card h2{font-size:1rem;color:var(--ink);margin-bottom:6px}
.state-card h2 a{color:inherit;text-decoration:none}
.state-card h2 a:hover{text-decoration:underline}
.state-card p{font-size:.92rem}
.state-card ul{list-style:none;margin-top:10px;display:flex;flex-wrap:wrap;gap:6px 12px;font-size:.84rem}
.state-card li a{white-space:nowrap}
.state-more ul li+li{margin-top:8px}
@media (max-width:760px){
  .state-topics,.state-grid,.agency-list{grid-template-columns:1fr}
  .state-facts dl{grid-template-columns:1fr;gap:2px 0}
  .state-facts dt{margin-top:8px}
  .state-facts dt:first-child{margin-top:0}
}

/* figures: computed charts and hand-drawn diagrams (visual system, Sep 2026).
   Two drawings per chart; .chart-d shows on wide screens, .chart-m on phones. Text
   in the SVG wears ink tokens; the marks' colours live in accents.css. */
figure.chart,figure.diagram{margin:22px 0 26px;padding:16px 16px 12px;background:var(--card);border:1px solid var(--line);border-radius:12px;max-width:40rem}
figure.chart-note{padding:14px 16px}
figure.chart svg,figure.diagram svg{display:block;width:100%;height:auto}
figure.chart .chart-m{display:none}
figure figcaption{margin-top:10px;font-size:.82rem;color:var(--label);line-height:1.5}
figure figcaption b{color:var(--ink);font-family:'Archivo',sans-serif}
.chart-legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;margin:8px 0 0;padding:0;font-size:.8rem;color:var(--body)}
.chart-legend li{display:inline-flex;align-items:center;gap:6px}
.chart-legend .sw{display:inline-block;width:12px;height:12px;border-radius:3px}
.chart-svg text{font-family:'DM Sans',system-ui,sans-serif;fill:var(--label)}
.chart-svg .val{fill:var(--ink);font-family:'Archivo',sans-serif;font-weight:700}
.chart-svg .grid{stroke:var(--line);stroke-width:1}
.chart-svg .axis{stroke:var(--label);stroke-width:1}
.chart-svg .line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.chart-svg .dot{stroke:var(--card);stroke-width:2}
.diagram-svg text{font-family:'DM Sans',system-ui,sans-serif;fill:var(--ink)}
.diagram-svg .dg-muted{fill:var(--label)}
.diagram-svg .dg-ink{fill:var(--ink)}
.diagram-svg .dg-line path,.diagram-svg .dg-arrow path{fill:none;stroke:var(--label);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.diagram-svg .dg-node rect{fill:var(--tint);stroke:var(--line);stroke-width:1.5}
.diagram-svg .dg-node text{fill:var(--ink)}
.diagram-svg .dg-decision path{fill:var(--tint);stroke:var(--line);stroke-width:1.5}
.diagram-svg .dg-col-outline rect{fill:none;stroke:var(--line);stroke-width:1.5}
.diagram-svg .dg-fill-cream rect{fill:var(--tint)}
.diagram-svg .dg-bracket path{stroke:var(--label);stroke-width:1.5}
.diagram-svg .dg-bracket text{fill:var(--ink)}
@media (max-width:520px){
  figure.chart,figure.diagram{padding:12px 12px 10px}
  figure.chart .chart-d{display:none}
  figure.chart .chart-m{display:block}
  figure.diagram{overflow-x:auto}
  figure.diagram svg{min-width:520px}
}

/* footer */
.site-footer{background:var(--black);color:#cfc6bd;padding:44px 0 36px;font-size:.84rem;margin-top:24px}
.site-footer .f-cols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:24px}
.site-footer .f-brand{color:#fff;font-family:'Archivo Black',Impact,sans-serif;font-size:1.05rem;margin-bottom:10px;text-transform:uppercase}
.site-footer .f-head{color:#fff;font-family:'Archivo',sans-serif;font-weight:700;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px}
.site-footer p{max-width:36rem;margin-bottom:10px}
.site-footer a{color:#cfc6bd;display:block;text-decoration:none;padding:3px 0}
.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer .f-fine{font-size:.78rem;color:#a89f95}
.site-footer .f-legal{margin-top:26px;padding-top:16px;border-top:1px solid var(--black-line);font-size:.78rem;color:#a89f95;max-width:none}

@media (max-width:760px){
  .stage-grid,.sample-list{grid-template-columns:1fr}
  .site-footer .f-cols{grid-template-columns:1fr 1fr}
  .brand-row .btn{display:none}
}
@media (max-width:480px){
  .site-footer .f-cols{grid-template-columns:1fr}
  .cta-box .btn{white-space:normal}
}

/* phones and touch screens (mobile pass, 7 Sep 2026): every control a reader taps is
   at least 44 CSS px tall. scripts/mobile-check.mjs fails a page with a control under
   24 px (WCAG 2.5.8) and warns under 44. The row spacing comes from the padding, so
   the margins between list links come off here. */
@media (max-width:760px),(pointer:coarse){
  .brand-row{padding:6px 24px}
  .brand{min-height:44px}
  .crumbs{padding:4px 0 0}
  .crumbs a{display:inline-block;padding:14px 0}
  .related li a,.state-more li a,.stage-card li a,.state-card li a{display:inline-block;padding:12px 0}
  .related li+li,.state-more ul li+li,.stage-card li+li{margin-top:0}
  .state-card ul{gap:0 12px}
  .state-facts h3 a,.state-card h2 a{display:inline-block;padding:13px 0}
  .agency-list b a{display:inline-block;padding:14px 0}
  .prose td a{display:inline-block;padding:12px 9px;margin:-8px -9px}
  .state-facts dd a.src{display:inline-block;padding:14px 8px;margin:-14px -2px}
  a.unconfirmed{display:inline-block;padding:12px 9px;margin:-12px -6px}
  .state-chips a{min-height:44px}
  .site-footer a{padding:12px 0}
  .calc-form .check{min-height:44px}
  .calc-form .check input{width:24px;height:24px}
  .faq details{padding:0 18px}
  .faq summary{padding:14px 0;min-height:44px}
  .faq summary::after{top:14px}
  .faq details p{margin:0;padding:0 0 14px}
}
