
/* ClaimYourBite — records-office palette. Municipal green + oxide red on cool paper.
   Type: IBM Plex Serif (display) / Sans (body) / Mono (citations, dates, data).
   Mono is reserved for machine-checkable facts: statute cites, dates, flags. */

:root{
  --ink:#16211E;
  --paper:#F2F3EF;
  --card:#FFFFFF;
  --rule:#CBD0C6;
  --rule-soft:#E2E5DE;
  --stamp:#2F5D4E;
  --stamp-soft:#E6EDE8;
  --flag:#A8331C;
  --flag-soft:#F7EAE6;
  --muted:#5A645E;
  --measure:35rem;
  --sans:"IBM Plex Sans",system-ui,-apple-system,sans-serif;
  --serif:"IBM Plex Serif",Georgia,serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,monospace;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:17px; line-height:1.65;
  font-feature-settings:"kern" 1;
}

/* ---- layout ---- */
.wrap{max-width:64rem; margin:0 auto; padding:0 1.25rem}
.wrap>h1,.wrap>h2,.wrap>h3,.wrap>p,.wrap>ul,.wrap>ol,.wrap>form,
.wrap>.flagbox,.wrap>.note,.wrap>.strip,.wrap>.cite-block,.wrap>.stamp{max-width:var(--measure)}
.wrap>.cols{max-width:46rem}
.wide{max-width:64rem; margin:0 auto; padding:0 1.25rem}

/* ---- masthead ---- */
.mast{border-bottom:1px solid var(--rule); background:var(--paper)}
.mast-in{max-width:64rem;margin:0 auto;padding:1.1rem 1.25rem;
  display:flex;flex-wrap:wrap;gap:1rem;align-items:baseline;justify-content:space-between}
.logo{font-family:var(--serif);font-weight:600;font-size:1.15rem;letter-spacing:-.01em;
  color:var(--ink);text-decoration:none}
.logo span{color:var(--stamp)}
.nav{display:flex;flex-wrap:wrap;gap:1.1rem;font-size:.83rem;
  font-family:var(--mono);letter-spacing:.02em}
.nav a{color:var(--muted);text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent}
.nav a:hover,.nav a:focus-visible{color:var(--stamp);border-bottom-color:var(--stamp)}

/* ---- type ---- */
h1{font-family:var(--serif);font-weight:600;font-size:clamp(2.05rem,5.4vw,3.05rem);
  line-height:1.1;letter-spacing:-.024em;margin:0 0 1rem}
h2{font-family:var(--serif);font-weight:600;font-size:1.42rem;line-height:1.25;
  letter-spacing:-.012em;margin:2.6rem 0 .7rem}
h3{font-family:var(--sans);font-weight:600;font-size:1.03rem;margin:2rem 0 .4rem}
p{margin:0 0 1.15rem;max-width:var(--measure)}
a{color:var(--stamp)}
.lede{font-size:1.16rem;line-height:1.55;color:#2A3531}
.eyebrow{font-family:var(--mono);font-size:.74rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--stamp);margin:0 0 .8rem}
.small{font-size:.87rem;color:var(--muted)}

/* ---- sections ---- */
.band{padding:3.4rem 0}
.band-top{padding:3.9rem 0 3rem}
.band-line{border-top:1px solid var(--rule)}
.band-fill{background:var(--card);border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule)}

/* ---- signature element: the citation chip ---- */
.cite{display:inline-block;font-family:var(--mono);font-size:.78rem;
  background:var(--stamp-soft);color:var(--stamp);border:1px solid #CBDCD2;
  padding:.14rem .45rem;border-radius:2px;text-decoration:none;
  letter-spacing:-.01em;white-space:nowrap}
a.cite:hover,a.cite:focus-visible{background:var(--stamp);color:#fff;border-color:var(--stamp)}
.cite-block{margin:0 0 1.6rem}

/* ---- signature element: the coverage strip ---- */
.strip{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.9rem;padding:0;list-style:none}
.chip{font-family:var(--mono);font-size:.76rem;letter-spacing:.01em;
  padding:.32rem .6rem;border-radius:2px;border:1px solid var(--rule);
  background:var(--card);color:var(--muted)}
.chip b{font-weight:600;color:var(--ink)}
.chip.k-strict,.chip.k-broad,.chip.k-full{border-color:#BBD3C6;background:var(--stamp-soft)}
.chip.k-strict b,.chip.k-broad b,.chip.k-full b{color:var(--stamp)}
.chip.k-limited{border-color:#E4C4BA;background:var(--flag-soft)}
.chip.k-limited b{color:var(--flag)}

/* ---- flag callout ---- */
.flagbox{border-left:3px solid var(--flag);background:var(--flag-soft);
  padding:1rem 1.15rem;margin:1.9rem 0;max-width:var(--measure)}
.flagbox p{margin:0;font-size:.97rem}
.flagbox .eyebrow{color:var(--flag);margin-bottom:.35rem}

.note{border-left:3px solid var(--rule);padding:.15rem 0 .15rem 1.15rem;
  margin:1.9rem 0;max-width:var(--measure);color:var(--muted);font-size:.95rem}
.note p{margin:0}

/* ---- rule list (numbered because these ARE sequential elements of the law) ---- */
.rules{list-style:none;padding:0;margin:1.9rem 0;counter-reset:r}
.rules li{counter-increment:r;padding:0 0 1.5rem 2.6rem;position:relative;max-width:var(--measure)}
.rules li::before{content:counter(r,decimal-leading-zero);position:absolute;left:0;top:.15rem;
  font-family:var(--mono);font-size:.78rem;color:var(--stamp);
  border:1px solid #CBDCD2;background:var(--stamp-soft);border-radius:2px;
  padding:.1rem .34rem;line-height:1.3}
.rules b{display:block;font-weight:600;margin-bottom:.3rem}
.rules p{margin:0;font-size:.97rem}

/* ---- table ---- */
.tablewrap{overflow-x:auto;margin:2rem 0;border:1px solid var(--rule);background:var(--card)}
table{border-collapse:collapse;width:100%;min-width:48rem;font-size:.9rem;table-layout:fixed}
col.c-st{width:11rem} col.c-fw{width:13rem} col.c-cv{width:9.5rem}
col.c-dm{width:11.5rem} col.c-ct{width:18rem}
td .cite{white-space:normal}
td.fw{font-size:.86rem;line-height:1.4}
td.pending{font-family:var(--mono);font-size:.76rem;color:#98A29B}
th,td{text-align:left;padding:.7rem .85rem;border-bottom:1px solid var(--rule-soft);
  vertical-align:top}
thead th{font-family:var(--mono);font-size:.73rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);background:var(--paper);border-bottom:1px solid var(--rule);
  position:sticky;top:0}
tbody tr:last-child td{border-bottom:0}
td.st{font-weight:600;white-space:nowrap}
td.st a{text-decoration:none}
td.st a:hover{text-decoration:underline}
.mono{font-family:var(--mono);font-size:.82rem}
.tag{font-family:var(--mono);font-size:.74rem;padding:.1rem .38rem;border-radius:2px;
  border:1px solid var(--rule);color:var(--muted);white-space:nowrap}
.tag.yes{border-color:#BBD3C6;background:var(--stamp-soft);color:var(--stamp)}
.tag.no{border-color:#E4C4BA;background:var(--flag-soft);color:var(--flag)}

/* ---- links list ---- */
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));
  gap:1.5rem 2rem;margin:1.6rem 0}
.cols h3{margin-top:0}
.cols ul{list-style:none;padding:0;margin:0}
.cols li{margin:0 0 .45rem;font-size:.95rem}

/* ---- hero state picker: the page's first useful act ---- */
.picker{display:flex;flex-wrap:wrap;gap:.6rem;align-items:stretch;margin:2rem 0 .6rem;
  max-width:var(--measure)}
.picker select{flex:1 1 15rem;min-width:0}
.picker button{flex:0 0 auto;font-family:var(--sans);font-weight:600;font-size:.95rem;
  background:var(--stamp);color:#fff;border:1px solid var(--stamp);border-radius:3px;
  padding:.62rem 1.15rem;cursor:pointer}
.picker button:hover{background:#26493D;border-color:#26493D}

/* ---- CTA ---- */
.cta{display:inline-block;font-family:var(--sans);font-weight:600;font-size:.98rem;
  background:var(--stamp);color:#fff;text-decoration:none;
  padding:.78rem 1.4rem;border-radius:3px;border:1px solid var(--stamp)}
.cta:hover,.cta:focus-visible{background:#26493D;border-color:#26493D}
.cta-ghost{background:transparent;color:var(--stamp);border:1px solid var(--stamp)}
.cta-ghost:hover,.cta-ghost:focus-visible{background:var(--stamp-soft);color:var(--stamp)}
.ctarow{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin:1.8rem 0 0}

/* ---- form ---- */
form{max-width:var(--measure)}
.field{margin:0 0 1.15rem}
label{display:block;font-size:.9rem;font-weight:600;margin:0 0 .3rem}
input[type=text],input[type=tel],input[type=email],input[type=date],select{
  width:100%;font-family:var(--sans);font-size:1rem;padding:.62rem .7rem;
  border:1px solid var(--rule);border-radius:3px;background:var(--card);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--stamp);outline-offset:1px;
  border-color:var(--stamp)}
.consent{display:flex;gap:.7rem;align-items:flex-start;margin:1.6rem 0;
  border:1px solid var(--rule);background:var(--card);padding:1rem;border-radius:3px}
.consent input{margin-top:.3rem;flex:0 0 auto;width:1.05rem;height:1.05rem;accent-color:var(--stamp)}
.consent .small{margin:0}
.consent .small + .small{margin-top:.7rem}
.hp{position:absolute;left:-9999px}

/* ---- footer ---- */
.foot{border-top:1px solid var(--rule);margin-top:1rem;padding:2.4rem 0 3rem;
  font-size:.86rem;color:var(--muted)}
.foot a{color:var(--muted)}
.foot-nav{display:flex;flex-wrap:wrap;gap:1.1rem;margin:0 0 1.2rem;
  font-family:var(--mono);font-size:.8rem}
.disc{max-width:44rem;margin:0}
.stamp{display:inline-block;font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;
  color:var(--stamp);border:1px dashed #A9C0B4;border-radius:2px;padding:.35rem .6rem;
  margin:2.4rem 0 0;text-transform:uppercase}

/* ---- a11y + motion ---- */
a:focus-visible,button:focus-visible,.cta:focus-visible{outline:2px solid var(--stamp);
  outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (max-width:640px){
  body{font-size:16px}
  .mast-in{padding:.9rem 1.1rem}
  .nav{gap:.85rem;font-size:.78rem}
  .band,.band-top{padding:2.4rem 0}
}
