@font-face{font-family:'Statute Newsreader';font-style:normal;font-weight:500;font-display:swap;src:url('/public-assets/statutes-newsreader-heading-709bbfac7321.woff2') format('woff2')}
@font-face{font-family:'Statute Newsreader';font-style:normal;font-weight:600;font-display:swap;src:url('/public-assets/statutes-newsreader-brand-d44137ff3cb1.woff2') format('woff2')}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(/fonts/geist-v5-normal-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(/fonts/geist-v5-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(/fonts/geist-v5-normal-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(/fonts/geist-v5-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(/fonts/geist-v5-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
  --bg: oklch(0.965 0.012 85);
  --bg-warm: oklch(0.945 0.018 80);
  --surface: oklch(0.99 0.005 85);
  --surface-2: oklch(0.975 0.008 80);
  --ink: oklch(0.22 0.015 60);
  --ink-2: oklch(0.36 0.014 65);
  --muted: oklch(0.55 0.012 70);
  --muted-2: oklch(0.68 0.010 75);
  --border: oklch(0.88 0.012 75);
  --border-strong: oklch(0.78 0.014 75);
  --accent: oklch(0.42 0.07 160);
  --accent-ink: oklch(0.32 0.07 160);
  --accent-tint: oklch(0.94 0.03 160);
  --accent-on: #fdfbf6;
  --ochre: oklch(0.66 0.11 60);
  --ochre-tint: oklch(0.94 0.04 70);
  --ochre-ink: oklch(0.42 0.11 60);
  --font-display: "Newsreader", Georgia, serif;
  --font-sans: "Geist", ui-sans-serif, system-ui, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, monospace;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
}

html {
  scroll-behavior: smooth;
}

body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.5;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(oklch(0.78 0.014 75 / 0.18) 0.5px, transparent 0.5px);
  background-size: 3px 3px;
  opacity: 0.35;
}

body.is-demo-open {
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select,
textarea {
  color: inherit;
  font: inherit;
}

button {
  cursor: pointer;
}

[hidden] {
  display: none !important;
}


/*
 * Jurisio marketing site chrome — the ONE header, phone menu, footer and
 * art-card frame shared by every page on jurisio.ai.
 *
 * Markup lives in content/partials/site-header.html and site-footer.html and
 * is stamped into each page by scripts/build_marketing_content.py; behaviour
 * lives in /site-chrome.js. Everything is namespaced `site-*` so page and
 * bundle stylesheets (garden, legal-art, about) cannot restyle it.
 *
 * Reference: the landing page's garden nav + footer (garden-v2.css .grd-nav,
 * el.css .el-foot) and the approved cohesion mock (2026-09-24).
 */

:root {
  --site-paper: #FDF8EF;
  --site-bar: rgba(248, 240, 228, .92);
  --site-bar-stuck: rgba(248, 240, 228, .96);
  --site-ink: #16241f;
  --site-ink-2: #3a4a43;
  --site-muted: #5f6558;
  --site-rule: rgba(22, 36, 31, .12);
  --site-moss: #4A641F;
  --site-moss-hover: #3B5119;
  --site-on-moss: #f8f0e4;
  --site-display: "Newsreader", "Source Serif 4", Georgia, serif;
  --site-sans: "Geist", ui-sans-serif, system-ui, sans-serif;
  /* --site-nav-h is the nav bar alone; --site-banner-h is the announcement
     strip above it (set on :root by site-chrome.js, 0 when there is none).
     --site-header-h is everything fixed at the top, so every page offset that
     reads it (padding-top, scroll-margin, sticky tops) makes room for both. */
  --site-nav-h: 62px;
  --site-banner-h: 0px;
  --site-header-h: calc(var(--site-nav-h) + var(--site-banner-h));
  --site-frame-gutter: max(6px, .5vw);
  --site-frame-radius: 24px;
  --site-footer-w: 1240px;
}

@media (max-width: 900px) {
  :root { --site-frame-radius: 18px; }
}

@media (max-width: 540px) {
  :root { --site-nav-h: 60px; }
}

/* Anchored sections land below the fixed header on every page. */
[id] { scroll-margin-top: calc(var(--site-header-h) + 16px); }

/* ── Skip link (landing + contact; other pages keep their own class) ── */
.site-skip {
  position: fixed; top: 10px; left: 12px; z-index: 300;
  padding: 10px 14px; border-radius: 10px;
  background: #fff; color: var(--site-ink);
  font: 600 13px/1.2 var(--site-sans); text-decoration: none;
  box-shadow: 0 2px 10px rgba(22, 36, 31, .16);
  transform: translateY(-160%); transition: transform 160ms ease;
}
.site-skip:focus { transform: translateY(0); }
.site-skip:focus-visible { outline: 2px solid var(--site-moss); outline-offset: 2px; }

/* ── Header ─────────────────────────────────────────────────────────── */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  font-family: var(--site-sans);
  -webkit-font-smoothing: antialiased;
}
.site-header *, .site-footer *, .site-menu * { box-sizing: border-box; }

.site-header .site-nav {
  box-sizing: border-box;
  display: flex; align-items: center; gap: 20px;
  height: var(--site-nav-h);
  margin: 0; padding: 0 28px;
  background: var(--site-bar);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  box-shadow: none;
  transition: box-shadow 300ms ease, background 240ms ease;
}
.site-header.is-stuck .site-nav {
  background: var(--site-bar-stuck);
  box-shadow: 0 6px 20px rgba(60, 25, 10, .10);
}

.site-header .site-brand,
.site-footer .site-brand {
  display: inline-flex; align-items: center; gap: 2px; flex-shrink: 0;
  color: #000; text-decoration: none;
}
.site-header .site-brand img,
.site-footer .site-brand img {
  display: block; width: 26px; height: 26px; object-fit: contain;
  transform: translateY(-2px);
}
.site-header .site-brand span,
.site-footer .site-brand span {
  font-family: var(--site-display); font-size: 20px; font-weight: 600;
  line-height: 1; letter-spacing: -.015em; color: #000;
}

.site-header .site-nav-links { display: flex; align-items: center; gap: 4px; }
.site-header .site-nav-links a,
.site-header .site-resources summary,
.site-header .site-nav-login {
  display: inline-flex; align-items: center;
  padding: 8px 14px; border-radius: 10px;
  font: 600 14px/1.2 var(--site-sans); color: var(--site-ink-2);
  text-decoration: none; white-space: nowrap;
  transition: background 140ms, color 140ms;
}
.site-header .site-nav-login { padding: 9px 14px; border-radius: 11px; }
.site-header .site-nav-links a:hover,
.site-header .site-resources summary:hover,
.site-header .site-nav-login:hover { background: rgba(22, 36, 31, .08); color: var(--site-ink); }
.site-header .site-resources { position: relative; }
.site-header .site-resources summary { cursor: pointer; list-style: none; gap: 6px; }
.site-header .site-resources summary::-webkit-details-marker { display: none; }
.site-header .site-resources summary > span[aria-hidden="true"] { display: none; }
.site-header .site-resources-links {
  position: absolute; top: calc(100% + 10px); left: 0;
  width: 250px; padding: 8px; border: 1px solid var(--site-rule); border-radius: 14px;
  background: var(--site-paper); box-shadow: 0 12px 32px rgba(22, 36, 31, .14);
}
.site-header .site-resources-links a { display: flex; align-items: center; gap: 10px; padding: 12px; white-space: normal; }
.site-header .site-resource-icon { flex: 0 0 auto; color: #657047; }
.site-header .site-nav-links a[aria-current="page"] { color: var(--site-ink); }
.site-header .site-nav-spacer { flex: 1; }

.site-header .site-nav-cta,
.site-menu .site-menu-actions .site-menu-demo {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 9px 16px; border-radius: 11px;
  background: var(--site-moss); color: var(--site-on-moss);
  font: 600 14px/1.2 var(--site-sans); text-decoration: none; white-space: nowrap;
  transition: background 160ms;
}
.site-header .site-nav-cta:visited { color: var(--site-on-moss); }
.site-header .site-nav-cta:hover,
.site-menu .site-menu-actions .site-menu-demo:hover { background: var(--site-moss-hover); color: var(--site-on-moss); }

.site-header .site-menu-button,
.site-menu .site-menu-close {
  display: none; place-items: center; flex-shrink: 0;
  width: 44px; height: 44px; margin: 0; padding: 0;
  border: 0; border-radius: 11px; background: none;
  color: var(--site-ink); cursor: pointer;
}
.site-header .site-menu-button:hover,
.site-menu .site-menu-close:hover { background: rgba(22, 36, 31, .08); }

.site-header :is(a, button, summary):focus-visible,
.site-menu :is(a, button):focus-visible,
.site-footer a:focus-visible {
  outline: 2px solid var(--site-moss); outline-offset: 2px;
}

/* ── Announcement banner ───────────────────────────────────────────────
   Operator-set strip (scripts/site_banner.sh -> /announcement.json), the
   first child of the fixed header so it rides above the nav and stays put
   when the nav turns `is-stuck`. Hidden unless site-chrome.js fills it. */
.site-header .site-banner {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  min-height: 38px; margin: 0; padding: 8px 48px;
  background: #EFE3CC; color: #3b2f1d;
  border-bottom: 1px solid rgba(0, 0, 0, .08);
  font: 500 13.5px/1.35 var(--site-sans);
  text-align: center;
}
.site-header .site-banner[hidden] { display: none; }
.site-header .site-banner[data-tone="maintenance"] { background: #F4D9A6; color: #3f2a06; }
.site-header .site-banner[data-tone="new"] { background: #4A641F; color: #F8F0E4; }
.site-header .site-banner.is-entering { animation: site-banner-in 160ms ease-out; }
@keyframes site-banner-in { from { opacity: 0; } to { opacity: 1; } }
.site-header .site-banner-text { margin: 0; max-width: 1100px; overflow-wrap: anywhere; }
.site-header .site-banner-icon {
  display: none; width: 14px; height: 14px;
  margin-right: 7px; vertical-align: -2px;
}
.site-header .site-banner[data-tone="notice"] .site-banner-icon[data-icon="notice"],
.site-header .site-banner[data-tone="maintenance"] .site-banner-icon[data-icon="maintenance"],
.site-header .site-banner[data-tone="new"] .site-banner-icon[data-icon="new"] { display: inline-block; }
.site-header .site-banner-link {
  margin-left: 6px; color: inherit; font-weight: 600; white-space: nowrap;
  text-decoration: underline; text-underline-offset: 2px;
}
.site-header .site-banner-link[hidden] { display: none; }
.site-header .site-banner-link:hover { text-decoration-thickness: 2px; }
.site-header .site-banner-dismiss {
  position: absolute; top: 50%; right: 8px;
  display: grid; place-items: center;
  width: 44px; height: 44px; margin: -22px 0 0; padding: 0;
  border: 0; border-radius: 50%; background: none;
  color: inherit; opacity: .7; cursor: pointer;
  transition: opacity 140ms;
}
.site-header .site-banner-dismiss[hidden] { display: none; }
.site-header .site-banner-dismiss::before {
  content: ""; position: absolute; inset: 8px; border-radius: 50%;
  background: currentColor; opacity: 0; transition: opacity 140ms;
}
.site-header .site-banner-dismiss:hover { opacity: 1; }
.site-header .site-banner-dismiss:hover::before { opacity: .1; }
.site-header .site-banner .site-banner-dismiss:focus-visible,
.site-header .site-banner .site-banner-link:focus-visible {
  outline: 2px solid currentColor; outline-offset: 2px;
}
.site-header .site-banner .site-banner-dismiss:focus-visible { outline-offset: -6px; }

/* ── Phone menu: a full-screen sheet whose top row mirrors the header ── */
.site-menu {
  position: fixed; inset: 0; z-index: 250;
  display: flex; flex-direction: column;
  background: var(--site-paper); color: var(--site-ink);
  font-family: var(--site-sans);
  overflow-y: auto; overscroll-behavior: contain;
  opacity: 0; transform: translateY(-8px);
  transition: opacity 220ms ease, transform 260ms cubic-bezier(.3, .8, .3, 1);
}
.site-menu[hidden] { display: none; }
.site-menu.is-open { opacity: 1; transform: none; }
.site-menu:focus { outline: none; }
.site-menu .site-menu-top {
  box-sizing: border-box; flex-shrink: 0;
  display: flex; align-items: center; gap: 10px;
  height: var(--site-nav-h);
  padding: 0 12px 0 16px;
  background: var(--site-bar-stuck);
}
.site-menu .site-menu-top .site-nav-cta { margin-left: auto; }
.site-menu .site-menu-close { display: grid; }
.site-menu .site-menu-nav {
  display: flex; flex-direction: column;
  padding: 16px 24px 0;
  border-top: 1px solid rgba(22, 36, 31, .10);
}
.site-menu .site-menu-nav a {
  padding: 14px 0;
  border-bottom: 1px solid rgba(22, 36, 31, .10);
  font-family: var(--site-display); font-size: 26px; line-height: 1.2;
  letter-spacing: -.01em; color: var(--site-ink); text-decoration: none;
}
.site-menu .site-menu-nav a[aria-current="page"] { color: var(--site-moss); }
.site-menu .site-menu-resources { display: flex; flex-direction: column; margin-top: 20px; }
.site-menu .site-menu-resource-heading {
  margin: 0 0 6px; font: 600 14px/1.4 var(--site-sans); color: var(--site-muted);
}
.site-menu .site-menu-resources a { display: flex; align-items: center; gap: 12px; padding: 12px 0; font-size: 21px; }
.site-menu .site-resource-icon { width: 20px; height: 20px; }
.site-menu .site-menu-actions { display: flex; gap: 12px; padding: 28px 24px; }
.site-menu .site-menu-actions a {
  flex: 1 1 0; display: flex; align-items: center; justify-content: center;
  padding: 14px 0; border-radius: 12px;
  font: 600 15px/1.2 var(--site-sans); text-align: center; text-decoration: none;
}
.site-menu .site-menu-actions .site-menu-login { border: 1px solid rgba(22, 36, 31, .25); color: var(--site-ink); }
.site-menu .site-menu-actions .site-menu-demo { padding: 14px 0; border-radius: 12px; font-size: 15px; }
html.site-menu-open, html.site-menu-open body { overflow: hidden; }

/* Compact header: links and Login fold into the menu. */
@media (max-width: 860px) {
  .site-header .site-nav-links, .site-header .site-nav-login { display: none; }
  .site-header .site-menu-button { display: grid; }
  .site-header .site-nav { gap: 10px; padding: 0 12px 0 20px; }
}

/* Phone header (mock HeaderPhone). */
@media (max-width: 540px) {
  .site-header .site-nav, .site-menu .site-menu-top { padding: 0 12px 0 16px; }
  .site-header .site-brand img { width: 24px; height: 24px; }
  .site-header .site-brand span { font-size: 19px; }
  .site-header .site-nav .site-nav-cta,
  .site-menu .site-menu-top .site-nav-cta { padding: 8px 14px; border-radius: 10px; font-size: 13px; }
  .site-header .site-banner { justify-content: flex-start; padding: 8px 44px 8px 16px; text-align: left; }
  .site-header .site-banner-link { white-space: normal; }
}

/* ── Footer (landing ElFooter) ──────────────────────────────────────── */
.site-footer {
  background: var(--site-paper); color: var(--site-ink);
  font-family: var(--site-sans);
  -webkit-font-smoothing: antialiased;
}
.site-footer .site-footer-inner {
  max-width: var(--site-footer-w); margin: 0 auto;
  padding: 64px 40px 36px;
}
.site-footer .site-footer-top {
  display: grid; grid-template-columns: minmax(150px, 1fr) 5fr; gap: 32px;
  padding-bottom: 56px; border-bottom: 1px solid var(--site-rule);
}
.site-footer .site-footer-brand { align-self: flex-start; }
.site-footer .site-footer-brand img { width: 28px; height: 28px; }
.site-footer .site-footer-brand span { font-size: 21px; }
.site-footer .site-footer-cols {
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px;
}
.site-footer .site-footer-col { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.site-footer .site-footer-h {
  font-family: var(--site-display); font-size: 17px; font-weight: 600;
  line-height: 1.3; letter-spacing: -.01em; color: var(--site-ink);
}
.site-footer .site-footer-col a {
  font-size: 14px; line-height: 1.4; color: var(--site-ink-2); text-decoration: none;
  transition: color 140ms ease;
}
.site-footer .site-footer-col a:hover { color: var(--site-moss); }
.site-footer .site-footer-col a[aria-current="page"] { color: var(--site-ink); }
.site-footer .site-footer-bottom {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 28px;
  padding-top: 26px;
  font-size: 12.5px; line-height: 1.4; color: var(--site-muted);
}
.site-footer .site-footer-bottom nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 28px; }
.site-footer .site-footer-bottom a { color: var(--site-muted); text-decoration: none; transition: color 140ms ease; }
.site-footer .site-footer-bottom a:hover,
.site-footer .site-footer-bottom a[aria-current="page"] { color: var(--site-ink); }
.site-footer .site-footer-social { display: inline-flex; }

/* Contextual guide/form/statute links share the typography of their page. */
.resource-links { margin: 32px 0 0; padding: 24px 0 0; border-top: 1px solid var(--site-rule); }
.resource-links ul { padding-left: 22px; }
.resource-links li { margin: 10px 0; }

@media (max-width: 860px) {
  .site-footer .site-footer-inner { padding: 48px 24px 56px; }
  .site-footer .site-footer-top { grid-template-columns: 1fr; gap: 36px; padding-bottom: 40px; }
  .site-footer .site-footer-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
  .site-footer .site-footer-col { gap: 16px; }
  .site-footer .site-footer-bottom, .site-footer .site-footer-bottom nav { gap: 12px 16px; }
  .site-footer .site-footer-bottom { padding-top: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .site-skip, .site-header .site-nav, .site-menu { transition: none; }
  .site-header .site-banner.is-entering { animation: none; }
}

@media print {
  .site-header, .site-menu, .site-footer { display: none !important; }
}

/* ── Art card: the framed painting under the header ─────────────────────
   Starts right under the header, keeps the landing's small side gap and
   rounds only its bottom corners. Pages that cannot carry the class (the
   landing bundle, the legal heroes) use the same three tokens directly. */
.site-frame {
  box-sizing: border-box;
  margin: var(--site-header-h) var(--site-frame-gutter) 0;
  border-radius: 0 0 var(--site-frame-radius) var(--site-frame-radius);
  overflow: hidden;
}

/* Jurisio public pages (tools, forms, templates, statutes, cases).
   Loaded after styles.css + site-chrome.css; reuses the site chrome palette (cream paper,
   moss, Newsreader + Geist). Namespaced so the shared chrome is never restyled. */
:root {
  --pp-paper: var(--site-paper, #fdf8ef);
  --pp-card: #fffdf8;
  --pp-ink: var(--site-ink, #16241f);
  --pp-ink-2: #3d4944;
  --pp-mute: #5f6558;
  --pp-line: #e6dfd0;
  --pp-line-2: #d6ccb8;
  --pp-moss: var(--site-moss, #4a641f);
  --pp-moss-hover: var(--site-moss-hover, #3b5119);
  --pp-moss-tint: #eef1e2;
  --pp-on-moss: var(--site-on-moss, #f8f0e4);
  --pp-ochre: #8a5a14;
  --pp-ochre-tint: #f7ecd6;
  --pp-danger: #9b2c1f;
  --pp-danger-tint: #fbebe7;
  --pp-band: #221b12;
  --pp-display: var(--site-display, "Newsreader", Georgia, serif);
  --pp-sans: var(--site-sans, "Geist", ui-sans-serif, system-ui, sans-serif);
  --pp-mono: var(--font-mono, "Geist Mono", ui-monospace, monospace);
  --pp-radius: 18px;
  --pp-shadow: 0 1px 2px rgba(34, 27, 18, .05), 0 12px 32px -12px rgba(34, 27, 18, .16);
  --pp-shadow-lg: 0 2px 4px rgba(34, 27, 18, .05), 0 28px 60px -24px rgba(34, 27, 18, .28);
  --pp-ease: cubic-bezier(.2, .7, .3, 1);
}

/* ── Page frame ──────────────────────────────────────────────────────── */
.public-page {
  position: relative; z-index: 1;
  max-width: 860px; margin: 0 auto;
  padding: calc(var(--site-header-h, 62px) + 40px) 24px 64px;
  color: var(--pp-ink); font-family: var(--pp-sans); font-size: 16px; line-height: 1.6;
}
.public-page--hub, .public-page--catalog { max-width: 1160px; }
.public-page--tool, .public-page--detail { max-width: 1000px; }
.public-page h1, .public-page h2, .public-page h3 { font-family: var(--pp-display); font-weight: 500; color: var(--pp-ink); }
.public-page h1 { margin: .2em 0 .35em; font-size: clamp(2.1rem, 5vw, 3.4rem); line-height: 1.08; letter-spacing: -.02em; }
.public-page h2 { margin: 2.2rem 0 .8rem; font-size: clamp(1.45rem, 2.6vw, 1.85rem); line-height: 1.2; letter-spacing: -.01em; }
.public-page h3 { margin: 1.6rem 0 .5rem; font-size: 1.2rem; line-height: 1.3; }
.public-page p, .public-page li { line-height: 1.7; }
/* Source tables preserve row/column relationships and scroll within the statute
   text region on phones, without widening the page. The region is keyboard focusable. */
.public-page .statute-text[data-source-body] { max-width: 100%; overflow-x: auto; }
.public-page .statute-text[data-source-body] table { width: max-content; min-width: 100%; border-collapse: collapse; }
.public-page .statute-text[data-source-body] :is(th, td) { padding: .4rem .6rem; border: 1px solid var(--pp-line-2); max-width: 24rem; vertical-align: top; }
.public-page .statute-text[data-source-body] th { text-align: left; }
.public-page .statute-text[data-source-body] img { max-width: 100%; height: auto; }
.public-page a { color: var(--pp-moss); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.public-page a:hover { color: var(--pp-moss-hover); text-decoration-thickness: 2px; }
.public-page :focus-visible { outline: 3px solid var(--pp-moss); outline-offset: 3px; border-radius: 6px; }
.public-page .pp-icon { flex: none; width: 1.25em; height: 1.25em; }

.public-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.25rem; padding: 0; list-style: none; font-size: .85rem; color: var(--pp-mute); }
.public-breadcrumbs li + li::before { content: "/"; padding-right: .5rem; color: var(--pp-line-2); }
.public-breadcrumbs a { color: var(--pp-mute); text-decoration: none; }
.public-breadcrumbs a:hover { color: var(--pp-ink); text-decoration: underline; }
.public-breadcrumbs li:last-child a { color: var(--pp-ink); }

.public-disclaimer {
  position: relative; z-index: 1;
  max-width: 860px; margin: 0 auto 8px; padding: 18px 24px;
  font: .85rem/1.6 var(--pp-sans); color: var(--pp-mute); text-align: center;
}
.public-disclaimer::before { content: ""; display: block; width: 48px; height: 1px; margin: 0 auto 14px; background: var(--pp-line-2); }

.public-status { border: 1px solid #e3c98f; background: var(--pp-ochre-tint); color: #5b3c0c; border-radius: 12px; padding: 14px 16px; margin: 20px 0; font-size: .95rem; }
.public-status[hidden] { display: none; }

/* ── Page header (breadcrumb, h1, one-sentence lede) ─────────────────── */
.public-head { margin: 0 0 40px; }
.public-head h1 { margin-top: 0; }
.public-lede { max-width: 42rem; margin: 0; font-size: clamp(1.02rem, 1.6vw, 1.12rem); line-height: 1.6; color: var(--pp-ink-2); }
.public-page--hub .public-head { margin-bottom: 48px; }

/* ── Buttons ─────────────────────────────────────────────────────────── */
.public-page .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 10px 18px; border: 1px solid var(--pp-line-2); border-radius: 10px;
  background: var(--pp-card); color: var(--pp-ink);
  font: 600 15px/1.2 var(--pp-sans); text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color 160ms var(--pp-ease), border-color 160ms var(--pp-ease);
}
.public-page .btn .pp-icon { width: 18px; height: 18px; }
.public-page .btn:hover { border-color: var(--pp-ink-2); color: var(--pp-ink); text-decoration: none; }
.public-page .btn:active { transform: translateY(1px); }
.public-page .btn:disabled { cursor: not-allowed; opacity: .5; transform: none; }
.public-page .btn--primary { border-color: var(--pp-moss); background: var(--pp-moss); color: var(--pp-on-moss); }
.public-page .btn--primary:hover { border-color: var(--pp-moss-hover); background: var(--pp-moss-hover); color: var(--pp-on-moss); }
.public-page .btn--primary:disabled:hover { background: var(--pp-moss); }
.public-page .btn--ghost { background: transparent; }
.public-page .btn--ghost:hover { background: rgba(34, 27, 18, .04); }
.public-page .btn--sm { min-height: 40px; padding: 8px 14px; font-size: 14px; border-radius: 8px; }
.public-page a.button { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 18px; border-radius: 10px; background: var(--pp-moss); color: var(--pp-on-moss); font-weight: 600; text-decoration: none; }
.public-page a.button:hover { background: var(--pp-moss-hover); color: var(--pp-on-moss); }

/* ── Hub ─────────────────────────────────────────────────────────────── */
.public-section { margin: 0 0 56px; }
.public-page .public-section > h2 { margin: 0 0 24px; padding-top: 20px; border-top: 1px solid var(--pp-line-2); font-size: 1.35rem; }
.hub-tools { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 400px), 1fr)); gap: 40px 48px; margin: 0; padding: 0; list-style: none; }
.hub-tool { position: relative; }
.public-page .hub-tool h3 { margin: 16px 0 4px; font-size: 1.3rem; }
.public-page .hub-tool h3 a { color: var(--pp-ink); text-decoration: none; }
.public-page .hub-tool h3 a::after { content: ""; position: absolute; inset: 0; }
.public-page .hub-tool:hover h3 a { color: var(--pp-moss); text-decoration: underline; }
.public-page .hub-tool h3 a:focus-visible { outline: none; }
.hub-tool:focus-within { outline: 3px solid var(--pp-moss); outline-offset: 6px; border-radius: 6px; }
.hub-tool p { margin: 0; color: var(--pp-mute); line-height: 1.55; }

/* A small working example of each tool. Decorative; the description says what it does. */
.hub-sample {
  display: flex; flex-direction: column; justify-content: center; gap: 8px; min-height: 112px;
  padding: 18px 22px; border: 1px solid var(--pp-line); border-radius: 10px; background: var(--pp-card);
  font: 15px/1.4 var(--pp-mono); color: var(--pp-ink); overflow-wrap: anywhere;
}
.hub-sample--citation-formatter { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 6px 14px; }
.sample-before { color: var(--pp-mute); }
.sample-arrow { color: var(--pp-mute); font-family: var(--pp-sans); }
.sample-after { font-weight: 600; }
.sample-row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; }
.sample-mark { font: 500 .8rem/1.4 var(--pp-sans); color: var(--pp-mute); white-space: nowrap; }
.sample-mark::before { content: "–"; display: inline-block; width: 1.1em; }
.sample-mark--found { color: var(--pp-moss); }
.sample-mark--found::before { content: "✓"; }
.hub-sample--redact-pdf, .hub-sample--fill-pdf { font-family: var(--pp-sans); }
.sample-bar { display: inline-block; width: 9.5ch; height: 1.05em; margin-left: 4px; vertical-align: -.15em; background: var(--pp-ink); }
.sample-line + .sample-line { color: var(--pp-mute); }
.sample-label { font-size: .8rem; color: var(--pp-mute); }
.sample-field { display: flex; align-items: center; min-height: 38px; padding: 6px 12px; border: 1px solid var(--pp-line-2); border-radius: 6px; background: #fff; }
.sample-caret { display: inline-block; width: 1.5px; height: 1.1em; margin-left: 2px; background: var(--pp-moss); }

/* Plain link lists: forms and templates on the hub, "More free tools" on tool pages. */
.link-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 0 40px; margin: 0; padding: 0; list-style: none; }
.link-list > li { padding: 14px 0 16px; border-top: 1px solid var(--pp-line); }
.public-page .link-list a { font: 500 1.12rem/1.35 var(--pp-display); color: var(--pp-ink); text-decoration: none; }
.public-page .link-list a:hover { color: var(--pp-moss); text-decoration: underline; }
.link-list p { margin: 4px 0 0; color: var(--pp-mute); font-size: .92rem; line-height: 1.5; }
.public-page--hub .link-list { grid-template-columns: repeat(auto-fill, minmax(min(100%, 400px), 1fr)); gap: 20px 48px; }
.public-page--hub .link-list > li { padding: 0; border-top: 0; }
.hub-ella { margin: 0; padding-top: 20px; border-top: 1px solid var(--pp-line-2); color: var(--pp-ink-2); }
.public-page .hub-ella a { font-weight: 600; }

/* ── Tool card and controls (the one genuinely separate object) ──────── */
.tool-card {
  margin: 0 0 48px; padding: clamp(20px, 4vw, 32px);
  border: 1px solid var(--pp-line-2); border-radius: 14px; background: var(--pp-card);
  box-shadow: 0 1px 2px rgba(34, 27, 18, .04);
}
.tool-card > noscript { display: block; margin-top: 12px; color: var(--pp-mute); }
.tool-field label { display: block; margin-bottom: 4px; font-weight: 600; font-size: 1rem; }
.tool-help { margin: 0 0 12px; font-size: .9rem; line-height: 1.55; color: var(--pp-mute); }
.tool-card textarea {
  display: block; width: 100%; min-height: 200px; padding: 14px 16px;
  border: 1px solid var(--pp-line-2); border-radius: 10px; background: #fff; color: var(--pp-ink);
  font: 15px/1.6 var(--pp-mono); resize: vertical;
  transition: border-color 160ms var(--pp-ease), box-shadow 160ms var(--pp-ease);
}
.tool-card textarea::placeholder { color: #8f8a7c; }
.tool-card textarea:hover { border-color: #bfb39a; }
.public-page .tool-card textarea:focus-visible, .tool-card textarea:focus { outline: none; border-color: var(--pp-moss); box-shadow: 0 0 0 3px rgba(74, 100, 31, .22); }
.tool-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: 16px; }
.tool-counter { margin: 0 0 0 auto; font: 500 .8rem/1.4 var(--pp-mono); color: var(--pp-mute); font-variant-numeric: tabular-nums; }
.tool-status {
  margin: 16px 0 0; padding: 12px 14px 12px 40px; border-radius: 10px; position: relative;
  background: var(--pp-moss-tint); color: #33461a; font-size: .95rem; line-height: 1.5; overflow-wrap: anywhere;
}
.tool-status::before {
  content: ""; position: absolute; left: 15px; top: 17px; width: 10px; height: 10px; border-radius: 50%; background: var(--pp-moss);
}
/* Keep the live region in the accessibility tree while empty; hide only its chrome. */
.tool-status:empty { margin: 0; padding: 0; background: none; }
.tool-status:empty::before { content: none; }
.tool-instructions { display: flex; gap: 10px; margin: 16px 0 0; color: var(--pp-ink-2); font-size: .9rem; line-height: 1.55; }
.tool-instructions .pp-icon { width: 18px; height: 18px; margin-top: 2px; color: var(--pp-mute); }

/* Dropzone: the real input covers the zone; the zone shows the state. */
.tool-drop {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: 10px;
  padding: 36px 20px; border: 1.5px dashed var(--pp-line-2); border-radius: 12px; background: #fdfaf3;
  text-align: center; transition: border-color 160ms var(--pp-ease), background-color 160ms var(--pp-ease);
}
.tool-drop label { font: 500 1.2rem/1.3 var(--pp-display); color: var(--pp-ink); }
.tool-drop input[type=file] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.tool-drop input[type=file]:disabled { cursor: progress; }
.tool-drop-icon { display: grid; place-items: center; color: var(--pp-moss); }
.tool-drop-icon .pp-icon { width: 28px; height: 28px; }
.tool-drop-button { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 16px; border: 1px solid var(--pp-line-2); border-radius: 8px; background: var(--pp-card); font-weight: 600; font-size: .9rem; }
.tool-drop:hover, .tool-drop.is-dragover { border-color: var(--pp-moss); background: var(--pp-moss-tint); }
.tool-drop:hover .tool-drop-button { border-color: var(--pp-moss); color: var(--pp-moss); }
.tool-drop:focus-within { outline: 3px solid var(--pp-moss); outline-offset: 3px; }
.tool-drop + .tool-help { margin: 10px 0 0; text-align: center; }

.tool-workspace { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--pp-line); min-width: 0; }
.tool-toolbar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 12px;
  padding: 6px; border: 1px solid var(--pp-line); border-radius: 10px; background: #f8f3e9;
}
.tool-page-label { min-width: 7rem; padding: 0 4px; text-align: center; font-size: .9rem; font-weight: 600; color: var(--pp-ink-2); font-variant-numeric: tabular-nums; }
.tool-stage {
  display: flex; justify-content: center; margin-top: 14px; padding: clamp(10px, 3vw, 28px);
  border-radius: 10px; background: #ebe4d5; overflow: auto;
}
.tool-stage canvas { display: block; max-width: 100%; height: auto; background: #fff; box-shadow: 0 1px 4px rgba(34, 27, 18, .16); }
.tool-check { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: .95rem; cursor: pointer; }
.tool-check input { width: 20px; height: 20px; margin: 0; accent-color: var(--pp-moss); }
.tool-form-title { margin: 16px 0 0; font: 500 1.15rem/1.35 var(--pp-display); overflow-wrap: anywhere; }
.tool-form-source { margin: 6px 0 0; }
.tool-form-title:empty, .tool-form-source:empty { display: none; }

/* Once a PDF is open, the dropzone collapses into a slim "choose another" bar. */
.tool-card:has(.tool-workspace:not([hidden])) .tool-drop { flex-direction: row; justify-content: center; gap: 14px; padding: 12px 16px; background: #fbf7ef; }
.tool-card:has(.tool-workspace:not([hidden])) .tool-drop-icon .pp-icon { width: 20px; height: 20px; }
.tool-card:has(.tool-workspace:not([hidden])) .tool-drop label { font-size: 1.05rem; }

/* Result lists shared by the citation formatter and checker */
.public-page .citation-results { display: grid; gap: 10px; margin: 20px 0 0; padding: 0; list-style: none; counter-reset: cite; }
.public-page .citation-results:empty { display: none; }
.citation-results > li {
  counter-increment: cite; position: relative; padding: 14px 16px 14px 52px;
  border: 1px solid var(--pp-line); border-radius: 10px; background: #fff; overflow-wrap: anywhere;
}
.citation-results > li::before {
  content: counter(cite); position: absolute; left: 16px; top: 15px;
  display: grid; place-items: center; width: 24px; height: 24px; border-radius: 6px;
  background: #f3eee3; color: var(--pp-mute); font: 600 .75rem/1 var(--pp-mono);
}
.citation-results p { margin: 0 0 6px; font-size: .9rem; line-height: 1.5; color: var(--pp-mute); }
.public-page .citation-results .citation-output { margin: 0 0 8px; font: 500 1.08rem/1.45 var(--pp-display); color: var(--pp-ink); }

/* ── Notes, disclosures, FAQ, handoff, more tools ───────────────────── */
.public-note { margin: 0 0 40px; }
.public-note > p, .public-disclosure-body > * { max-width: 46rem; }
.public-page .public-note > h2 { margin: 0 0 .5rem; font-size: 1.3rem; }
.public-note > p { margin: 0; color: var(--pp-ink-2); }
.public-page .public-note-summary { margin: 0 0 12px; color: var(--pp-ink-2); }
.public-disclosure { border-top: 1px solid var(--pp-line-2); border-bottom: 1px solid var(--pp-line-2); }
.public-disclosure > summary {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 52px; padding: 12px 4px; cursor: pointer; list-style: none;
}
.public-disclosure > summary::-webkit-details-marker { display: none; }
.public-disclosure > summary { font-weight: 500; color: var(--pp-ink); }
.public-disclosure > summary:hover { color: var(--pp-moss); }
.public-disclosure > summary::after, .public-faq-item summary::after {
  content: ""; flex: none; width: 24px; height: 24px; border-radius: 50%;
  border: 1px solid var(--pp-line-2);
  background: linear-gradient(var(--pp-ink-2), var(--pp-ink-2)) center / 10px 1.5px no-repeat,
              linear-gradient(var(--pp-ink-2), var(--pp-ink-2)) center / 1.5px 10px no-repeat;
  transition: transform 200ms var(--pp-ease);
}
.public-disclosure[open] > summary::after, .public-faq-item[open] summary::after { transform: rotate(45deg); }
.public-disclosure-body { padding: 0 4px 12px; color: var(--pp-ink-2); }
.public-disclosure-body > p, .public-disclosure-body > ul { margin: 0 0 .8rem; }
.public-disclosure-body ul { padding-left: 1.2rem; }
.public-disclosure-body li { margin: .3rem 0; }
.public-checklist { margin: .8rem 0; padding-left: 1.4rem; }
.public-checklist li { margin: .35rem 0; padding-left: .25rem; }
.public-checklist li::marker { color: var(--pp-mute); font-variant-numeric: tabular-nums; }

.public-faq { margin: 0 0 40px; }
.public-page .public-faq h2 { margin-top: 0; font-size: 1.3rem; }
.public-faq-item { border-top: 1px solid var(--pp-line); }
.public-faq-item:last-child { border-bottom: 1px solid var(--pp-line); }
.public-faq-item summary {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 52px; padding: 12px 4px; cursor: pointer; list-style: none;
  font: 500 1.08rem/1.35 var(--pp-display); color: var(--pp-ink);
}
.public-faq-item summary::-webkit-details-marker { display: none; }
.public-faq-item summary:hover { color: var(--pp-moss); }
.public-faq-answer { padding: 0 44px 14px 4px; color: var(--pp-ink-2); }
.public-faq-answer p { margin: 0 0 .6rem; }

.public-handoff, .statute-handoff, .case-handoff, .template-handoff { margin: 0 0 40px; color: var(--pp-ink-2); overflow-wrap: anywhere; }
.public-handoff p { margin: 0; }
.public-handoff a, .statute-handoff a, .case-handoff a, .template-handoff a { font-weight: 600; }
.public-credits { margin: 0 0 40px; font-size: .85rem; color: var(--pp-mute); }
.public-credits a { color: var(--pp-mute); }

.public-more { margin: 8px 0 0; }
.public-page .public-more h2 { margin: 0 0 16px; font-size: 1.3rem; }
.public-more-all { margin: 16px 0 0; font-weight: 600; }

/* ── Catalog pages (forms, templates) ────────────────────────────────── */
.catalog-group { margin: 0 0 40px; }
.catalog-group-head { display: flex; flex-direction: column; gap: 0; margin-bottom: 4px; }
.public-page .catalog-group-head .catalog-issuer { margin: 0; font: 500 .85rem/1.4 var(--pp-sans); color: var(--pp-mute); }
.public-page .catalog-group-head .catalog-category { margin: 0 0 8px; font: 500 1.35rem/1.25 var(--pp-display); color: var(--pp-ink); }
.catalog-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 0 40px; margin: 0; padding: 0; list-style: none; }
.catalog-list > li { padding: 11px 0; border-top: 1px solid var(--pp-line); }
.public-page .catalog-list a { color: var(--pp-ink); line-height: 1.45; text-decoration: none; overflow-wrap: anywhere; }
.public-page .catalog-list a:hover { color: var(--pp-moss); text-decoration: underline; }

.template-catalog { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 0 40px; margin: 0; padding: 0; list-style: none; }
.template-catalog > li { padding: 16px 0 18px; border-top: 1px solid var(--pp-line-2); }
.public-page .template-catalog a { color: var(--pp-ink); font: 500 1.25rem/1.3 var(--pp-display); text-decoration: none; }
.public-page .template-catalog a:hover { color: var(--pp-moss); text-decoration: underline; }
.template-catalog p { margin: 6px 0 0; color: var(--pp-mute); line-height: 1.55; }

.form-card { margin: 0 0 40px; padding: clamp(20px, 4vw, 28px); border: 1px solid var(--pp-line-2); border-radius: 14px; background: var(--pp-card); }
.form-meta { display: flex; flex-wrap: wrap; margin: 0 0 18px; padding: 0; list-style: none; color: var(--pp-mute); font-size: .92rem; }
.form-meta li + li::before { content: "·"; padding: 0 .5em; }
.form-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.form-note { margin: 16px 0 0; color: var(--pp-mute); font-size: .92rem; }
.form-card [data-form-status] { margin: 16px 0 0; padding: 12px 14px; border-radius: 10px; background: var(--pp-ochre-tint); color: #5b3c0c; }
.form-card [data-form-status][hidden] { display: none; }
.public-page p[role="note"] { padding: 12px 14px; border-radius: 10px; background: var(--pp-danger-tint); color: var(--pp-danger); }

/* ── Long-form reading (statutes, cases, templates) ──────────────────── */
.public-page article, .statute-text, .opinion-text { line-height: 1.8; overflow-wrap: anywhere; white-space: pre-wrap; }
.statute-text { font-family: var(--pp-display); font-size: 1.12rem; white-space: normal; }
.statute-text p { margin: 1rem 0; }
.statute-meta, .statute-history { font-size: .95rem; line-height: 1.6; color: var(--pp-mute); }
.statute-neighbors { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin: 2rem 0; }
.statute-text p.sub-2 { margin-left: 1.5rem; }
.template-attribution { margin: 2rem 0; padding: 0 0 0 16px; border-left: 2px solid var(--pp-line-2); color: var(--pp-ink-2); font-size: .92rem; overflow-wrap: anywhere; }
.template-attribution p { margin: .3rem 0; }
.template-text { margin: 0 0 40px; padding: clamp(20px, 5vw, 56px); border: 1px solid var(--pp-line); border-radius: 10px; background: #fff; font-family: var(--pp-display); font-size: 1.08rem; line-height: 1.8; overflow-wrap: anywhere; }
.template-text p, .template-text li { margin: .8rem 0; }
.template-text ul, .template-text ol { padding-left: 2rem; }
.template-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 24px; }
.opinion-text { font-family: var(--pp-display); font-size: 1.1rem; }
.case-meta { margin: .3rem 0; color: var(--pp-mute); font-size: .95rem; line-height: 1.55; }
.case-citations { display: flex; flex-wrap: wrap; margin: .6rem 0; padding: 0; list-style: none; color: var(--pp-ink-2); font-size: .95rem; font-variant-numeric: tabular-nums; }
.case-citations:empty { display: none; }
.case-citations li + li::before { content: "·"; padding: 0 .5em; color: var(--pp-mute); }
.case-meta + .opinion-text, .case-citations + .opinion-text { margin-top: 1.75rem; padding-top: .5rem; border-top: 1px solid var(--pp-line); }
.opinion-text p { margin: 1.25rem 0; }

/* ── Phones ─────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .public-page { padding: calc(var(--site-header-h, 60px) + 20px) 16px 48px; }
  .public-disclaimer { padding: 16px; }
  .public-head { margin-bottom: 28px; }
  .public-page--hub .public-head { margin-bottom: 36px; }
  .hub-tools { gap: 32px; }
  .tool-actions > .btn, .form-actions > .btn, .template-actions > .btn { width: 100%; }
  .tool-counter { margin-left: 0; }
  .public-faq-answer { padding-right: 4px; }
  .tool-drop { padding: 28px 16px; }
  .tool-card { padding: 18px 16px; }
  /* Pager: the page label gets its own row so long labels ("Verified output — Page 12 of 200") never squeeze the buttons. */
  .tool-toolbar { gap: 6px; padding: 6px; }
  .tool-toolbar .btn--sm { flex: 1 1 0; min-width: 0; min-height: 44px; padding: 8px 10px; font-size: 13px; }
  .tool-page-label { order: -1; flex: 1 0 100%; min-width: 0; padding: 4px 0 2px; font-size: .85rem; overflow-wrap: anywhere; }
  .tool-card:has(.tool-workspace:not([hidden])) .tool-drop-button { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .public-page *, .public-page *::before, .public-page *::after { transition: none !important; }
}

.statute-search { margin: 28px 0 36px; padding: 22px; border: 1px solid var(--pp-line-2); border-radius: 16px; background: var(--pp-card); }
.statute-search h2 { margin: 0 0 14px; font-size: 1.7rem; }
.statute-search label { display: block; font-weight: 600; margin: 0 0 6px; }
.statute-search-row { display: flex; gap: 10px; }
.statute-search input, .statute-search select { width: 100%; padding: 12px; border: 1px solid var(--pp-line-2); border-radius: 8px; background: white; color: var(--pp-ink); }
.statute-search input { min-width: 0; }
.statute-search button { border: 1px solid var(--pp-moss); border-radius: 8px; padding: 10px 16px; background: var(--pp-moss); color: var(--pp-on-moss); font-weight: 600; }
.statute-search select { margin-top: 4px; }
.statute-search-filter { margin-top: 14px; }
.statute-search :is(input,select,button,a):focus-visible { outline: 3px solid var(--pp-moss); outline-offset: 3px; }
.statute-search-help, .statute-search-meta, .statute-search-excerpt { font-size: .9rem; color: var(--pp-ink-2); }
.statute-search-help { margin-bottom: 0; }
.statute-search-results { list-style: none; padding: 0; margin: 0; }
.statute-search-results li { padding: 18px 0; border-top: 1px solid var(--pp-line); }
.statute-search-results li > a { font-weight: 600; }
.statute-search-results p { margin: 7px 0 0; }
.statute-search-pages { display: flex; flex-wrap: wrap; gap: 12px; }
.statute-search .statute-search-text { padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--pp-moss); font-weight: 400; text-decoration: underline; }
.statute-search-link { display: inline-block; margin: 0 0 14px; font-weight: 600; }
@media(max-width:540px) { .statute-search { padding: 16px; } .statute-search-row { flex-wrap: wrap; } .statute-search-row input { flex: 1 0 100%; } }

:root{--site-display:"Statute Newsreader",Georgia,serif;--font-display:"Statute Newsreader",Georgia,serif}
