/* ==========================================================================
   Bushnell Township: public site
   One typeface (Atkinson Hyperlegible Next, built for low-vision readers).
   Colour comes from the township logo: its black ink, the yellow of its sun,
   the green of its sprout. Field green carries links and buttons; amber is
   kept for things that need attention.
   Class prefix: bt-
   ========================================================================== */

@font-face{
  font-family:"Atkinson Next";
  src:url("../fonts/AtkinsonHyperlegibleNext-latin.woff2") format("woff2");
  font-weight:200 800;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Atkinson Next";
  src:url("../fonts/AtkinsonHyperlegibleNext-latin-italic.woff2") format("woff2");
  font-weight:200 800;font-style:italic;font-display:swap;
}

:root{
  --ink:#15180F;
  --muted:#4A5A52;
  --green:#1D5B43;
  --green-dark:#16402F;
  --green-tint:#E6F0EB;
  --surface:#F4F6F1;
  --sun:#F2D152;
  --sun-soft:#FBEFB4;
  --sun-tint:#FFF9DF;
  --sprout:#8FBF1F;
  --line:#D5DDD8;
  --line-strong:#6B7F75;
  --white:#FFFFFF;
  --amber:#9A4A06;
  --amber-tint:#FDF1DF;
  --danger:#A32015;
  --danger-tint:#FCEDEA;

  --font:"Atkinson Next",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --radius:8px;
  --radius-lg:14px;
  --wrap:1160px;
  --shadow:0 1px 2px rgba(21,24,15,.06),0 8px 24px rgba(21,24,15,.08);
  --measure:68ch;
  --ease-out:cubic-bezier(.23,1,.32,1);

  /* Layers, in one place. */
  --z-header:20;
  --z-skip:40;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--white);color:var(--ink);
  font-family:var(--font);font-size:1.125rem;line-height:1.6;
  font-variant-numeric:tabular-nums;
}
img{max-width:100%;height:auto}
[hidden]{display:none !important}

h1,h2,h3,h4{font-weight:750;line-height:1.2;letter-spacing:-.012em;margin:0 0 .5em;text-wrap:balance}
h1{font-size:clamp(2rem,1.4rem + 2.4vw,2.9rem);font-weight:800;letter-spacing:-.022em}
h2{font-size:clamp(1.4rem,1.2rem + .8vw,1.75rem)}
h3{font-size:1.2rem}
p{margin:0 0 1em;text-wrap:pretty}
ul,ol{margin:0 0 1em;padding-left:1.3em}
address{font-style:normal}

a{color:var(--green);text-decoration:underline;text-underline-offset:.16em;text-decoration-thickness:.08em}
a:hover{color:var(--green-dark);text-decoration-thickness:.14em}

/* One focus style everywhere, visible on white and on the photo. */
:focus-visible{outline:3px solid var(--ink);outline-offset:2px;border-radius:3px}
.bt-footer :focus-visible{outline-color:var(--white)}
main:focus{outline:none}

.bt-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.bt-skip{
  position:absolute;left:12px;top:-60px;z-index:var(--z-skip);
  background:var(--ink);color:var(--white);padding:10px 16px;border-radius:var(--radius);
}
.bt-skip:focus{top:12px;color:var(--white)}

.bt-wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:20px}
.bt-narrow{max-width:760px}
.bt-ico{flex:none;vertical-align:-.18em}

/* ---------- header ---------- */
.bt-header{background:var(--white);border-bottom:1px solid var(--line);position:relative;z-index:var(--z-header)}
.bt-header-in{display:flex;align-items:center;gap:20px;min-height:86px;flex-wrap:wrap}
/* The header gets a little more room than the page, so the menu stays on one line when signed in. */
.bt-header > .bt-wrap{max-width:1280px}
@media (min-width:1241px){.bt-header-in{flex-wrap:nowrap}}
.bt-brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;padding:10px 0;margin-right:auto}
.bt-brand img{width:64px;height:64px}
.bt-brand-text{display:flex;flex-direction:column;line-height:1.15}
.bt-brand-name{font-size:1.35rem;font-weight:800;letter-spacing:-.02em}
.bt-brand-sub{font-size:.9rem;color:var(--muted)}

.bt-nav{display:flex;align-items:center;gap:6px}
.bt-nav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.bt-nav a{
  display:flex;align-items:center;gap:6px;min-height:44px;padding:8px 11px;
  color:var(--ink);text-decoration:none;font-size:1rem;font-weight:600;border-radius:var(--radius);
  white-space:nowrap;
}
.bt-nav a:hover{background:var(--surface)}
/* The current page is underlined in the logo's yellow, and bolder: never colour alone. */
.bt-nav a[aria-current="page"]{font-weight:800;box-shadow:inset 0 -4px 0 var(--sun)}
.bt-nav-tools{display:flex;gap:2px;margin-left:8px;padding-left:10px;border-left:1px solid var(--line)}

.bt-menu-btn{
  display:none;align-items:center;gap:8px;min-height:44px;padding:8px 14px;
  font:inherit;font-weight:600;font-size:1rem;color:var(--ink);background:var(--white);
  border:1px solid var(--line-strong);border-radius:var(--radius);cursor:pointer;
}

@media (max-width:1240px){
  .bt-brand{flex:1 1 0;min-width:0;margin-right:0}
  .bt-menu-btn:not([hidden]){display:inline-flex}
  /* With JavaScript the menu folds away. Without it, it simply stays open. */
  .bt-js .bt-nav{display:none}
  .bt-js .bt-nav.is-open{display:flex}
  .bt-nav{flex-direction:column;align-items:stretch;width:100%;padding-bottom:14px;gap:10px}
  .bt-nav ul{flex-direction:column}
  .bt-nav a{min-height:48px;font-size:1.0625rem}
  .bt-nav-tools{margin:0;padding:10px 0 0;border-left:0;border-top:1px solid var(--line);flex-direction:column}
}

/* ---------- buttons ---------- */
.bt-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:11px 20px;border-radius:var(--radius);
  font:inherit;font-weight:700;font-size:1.0625rem;line-height:1.2;text-decoration:none;cursor:pointer;
  background:var(--green);color:var(--white);border:2px solid var(--green);
  transition:background-color 140ms ease,transform 120ms var(--ease-out);
}
.bt-btn:hover{background:var(--green-dark);border-color:var(--green-dark);color:var(--white)}
.bt-btn:active{transform:scale(.98)}
.bt-btn--ghost{background:var(--white);color:var(--green-dark);border-color:var(--green)}
.bt-btn--ghost:hover{background:var(--green-tint);color:var(--green-dark);border-color:var(--green-dark)}
.bt-btn--onDark{background:var(--white);color:var(--green-dark);border-color:var(--white)}
.bt-btn--onDark:hover{background:var(--green-tint);border-color:var(--green-tint);color:var(--green-dark)}
.bt-btn--ink{background:var(--ink);border-color:var(--ink)}
.bt-btn--ink:hover{background:#000;border-color:#000}
.bt-btnrow{display:flex;gap:10px;flex-wrap:wrap}
.bt-btn[disabled]{opacity:.6;cursor:not-allowed}
.bt-linkbtn{
  font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;
  text-decoration:underline;text-underline-offset:.16em;
}
.bt-inline-form{display:inline}

/* ---------- page furniture ---------- */
.bt-pagehead{position:relative;overflow:hidden;background:var(--surface);border-bottom:1px solid var(--line);padding:40px 0 34px}
.bt-pagehead::after{
  content:"";position:absolute;right:-150px;bottom:-330px;width:660px;height:660px;border-radius:50%;pointer-events:none;
  background:
    radial-gradient(circle,var(--sun) 0 88px,transparent 89px),
    repeating-conic-gradient(from -4deg,var(--sun-soft) 0 8deg,transparent 8deg 20deg);
  -webkit-mask-image:radial-gradient(circle,#000 0 34%,transparent 70%);mask-image:radial-gradient(circle,#000 0 34%,transparent 70%);
  opacity:.85;
}
.bt-pagehead > .bt-wrap{position:relative;z-index:1}
/* On a phone the heading runs the full width, so only faint rays stay behind it. */
@media (max-width:760px){
  .bt-pagehead{padding:28px 0 24px}
  .bt-pagehead::after{right:-360px;bottom:-380px;opacity:.5;background:repeating-conic-gradient(from -4deg,var(--sun-soft) 0 8deg,transparent 8deg 20deg)}
}
.bt-pagehead h1{margin-bottom:.25em}
.bt-pagehead .bt-lede{margin:0;max-width:var(--measure)}
.bt-lede{font-size:1.2rem;color:var(--muted)}
.bt-crumbs{font-size:.95rem;margin:0 0 10px;color:var(--muted)}
.bt-crumbs a{color:var(--muted)}
.bt-section{padding:52px 0}
.bt-section + .bt-section{border-top:1px solid var(--line)}
.bt-section--plain{border-top:0 !important}
.bt-section--first{padding-top:44px}
.bt-section--wash{background:var(--surface)}
.bt-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.bt-section-head h2{margin:0}
.bt-more{font-weight:600;white-space:nowrap}
.bt-prose{max-width:var(--measure)}
.bt-prose h2{margin-top:1.4em}
.bt-prose h3{margin-top:1.2em}
.bt-prose table{border-collapse:collapse;width:100%;margin:0 0 1em;font-size:1rem}
.bt-prose th,.bt-prose td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.bt-prose blockquote{margin:0 0 1em;padding:4px 0 4px 16px;border-left:4px solid var(--line-strong);color:var(--muted)}
.bt-meta{color:var(--muted);font-size:1rem}
.bt-empty{padding:22px;background:var(--surface);border-radius:var(--radius);color:var(--muted);max-width:var(--measure)}

/* Text labels for state. Never colour alone: the words carry it. */
.bt-tag{
  display:inline-block;padding:2px 9px;border-radius:999px;font-size:.875rem;font-weight:700;line-height:1.5;
  background:var(--green-tint);color:var(--green-dark);white-space:nowrap;
}
.bt-tag--plain{background:var(--surface);color:var(--muted);border:1px solid var(--line)}
.bt-tag--alert{background:var(--amber-tint);color:var(--amber)}
.bt-tag--danger{background:var(--danger-tint);color:var(--danger)}
.bt-tag--sun{background:var(--sun);color:var(--ink)}

/* ---------- home hero ----------
   The logo is the picture. Its sun is drawn large behind it, and the hill
   under the hero is the field from the logo, carrying the five things
   people come to the site to do. */
.bt-hero{position:relative;overflow:hidden;background:var(--white);padding:56px 0 64px}
.bt-hero-in{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px;align-items:center}
.bt-hero h1{font-size:clamp(2.5rem,1.4rem + 4.6vw,4.4rem);line-height:1.02;letter-spacing:-.035em;margin-bottom:.28em}
.bt-hero p{font-size:1.3rem;line-height:1.5;margin:0 0 26px;max-width:44ch;color:var(--muted)}
.bt-hero-sun{
  position:absolute;width:1100px;height:1100px;border-radius:50%;pointer-events:none;
  left:calc(50% + min(50vw,580px) - 170px - 550px);top:calc(50% - 550px);
  background:repeating-conic-gradient(from -4deg,var(--sun-soft) 0 8deg,transparent 8deg 20deg);
  -webkit-mask-image:radial-gradient(circle,#000 0 22%,transparent 62%);mask-image:radial-gradient(circle,#000 0 22%,transparent 62%);
}
.bt-hero-mark{justify-self:center;width:272px;height:272px;border-radius:50%;background:var(--white);display:grid;place-items:center;box-shadow:0 0 0 10px rgba(255,255,255,.7)}
.bt-hero-mark img{width:232px;height:232px;display:block}

.bt-searchbar{display:flex;gap:8px;max-width:600px}
.bt-searchbar input{
  flex:1;min-width:0;min-height:56px;padding:12px 16px;font:inherit;font-size:1.125rem;color:var(--ink);
  background:var(--white);border:2px solid var(--ink);border-radius:var(--radius);
}
.bt-searchbar--page input{border-color:var(--line-strong)}
.bt-searchbar .bt-btn{min-height:56px}

.bt-acre{position:relative;background:var(--green-dark);padding:8px 0 44px}
.bt-acre-hill{position:absolute;left:0;right:0;bottom:100%;width:100%;height:56px;display:block;margin-bottom:-1px}
.bt-acre-hill path{fill:var(--green-dark)}
.bt-acre-rows{position:absolute;inset:0;width:100%;height:100%}
.bt-acre-rows path{fill:none;stroke:rgba(255,255,255,.07);stroke-width:14;vector-effect:non-scaling-stroke}
.bt-acre > .bt-wrap{position:relative}
.bt-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.bt-tiles a{
  display:flex;flex-direction:column;gap:4px;height:100%;padding:18px 16px 18px;
  background:var(--white);color:var(--ink);text-decoration:none;border-radius:var(--radius-lg);
  box-shadow:0 2px 0 rgba(0,0,0,.25);
  transition:transform 160ms var(--ease-out),box-shadow 160ms var(--ease-out);
}
.bt-tiles a:hover{transform:translateY(-3px);box-shadow:0 5px 0 var(--sun);color:var(--ink)}
.bt-tile-ico{width:52px;height:52px;border-radius:50%;background:var(--sun);color:var(--ink);display:grid;place-items:center;margin-bottom:10px}
.bt-tile-label{font-weight:800;font-size:1.15rem;line-height:1.2;letter-spacing:-.01em}
.bt-tile-sub{color:var(--muted);font-size:.975rem;line-height:1.35}
.bt-acre :focus-visible{outline-color:var(--sun)}

/* Next meeting: the one answer most visitors want, so it gets the logo's yellow. */
.bt-feature{display:flex;gap:22px;align-items:flex-start;padding:26px;background:var(--sun-tint);border:2px solid var(--ink);border-radius:var(--radius-lg)}
.bt-feature--none{background:var(--surface);border-color:var(--line)}
.bt-feature-main{min-width:0;flex:1}
.bt-feature-when{margin:0 0 8px}
.bt-feature h3{font-size:clamp(1.5rem,1.2rem + 1vw,1.9rem);letter-spacing:-.02em;margin:0 0 10px}
.bt-feature h3 a{color:var(--ink);text-decoration:none}
.bt-feature h3 a:hover{text-decoration:underline}
.bt-feature .bt-btn--ghost{background:transparent}
.bt-feature .bt-btn--ghost:hover{background:var(--white)}

.bt-date{
  flex:none;width:92px;text-align:center;border-radius:var(--radius);overflow:hidden;
  border:2px solid var(--ink);background:var(--white);line-height:1.1;
}
.bt-date-mon{display:block;background:var(--ink);color:var(--white);font-weight:700;font-size:1rem;padding:6px 0}
.bt-date-day{display:block;font-size:2.5rem;font-weight:800;padding:6px 0 2px;color:var(--ink);letter-spacing:-.03em}
.bt-date-dow{display:block;font-size:.9rem;color:var(--muted);padding-bottom:7px}
.bt-date--sm{width:66px;border-width:1px;border-color:var(--line-strong)}
.bt-date--sm .bt-date-mon{font-size:.875rem;padding:3px 0;background:var(--surface);color:var(--ink)}
.bt-date--sm .bt-date-day{font-size:1.5rem;padding:4px 0 5px}
.bt-facts{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:4px}
.bt-facts li{display:flex;gap:8px;align-items:flex-start}
.bt-facts .bt-ico{margin-top:.3em;color:var(--green)}

/* The board, as people rather than a table. */
.bt-trustees{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.bt-trustees > li{display:flex;gap:14px;align-items:flex-start;padding:18px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg)}
.bt-initials{flex:none;width:52px;height:52px;border-radius:50%;background:var(--ink);color:var(--sun);display:grid;place-items:center;font-weight:800;font-size:1.1rem;letter-spacing:.02em}
.bt-trustee-name{margin:0;font-weight:800;font-size:1.15rem;line-height:1.25}
.bt-trustee-role{margin:0;color:var(--muted)}
.bt-trustee-phone{margin:4px 0 0}
.bt-trustee-phone a{display:inline-flex;align-items:center;gap:8px;min-height:40px;font-weight:600}

@media (max-width:1000px){
  .bt-tiles{grid-template-columns:repeat(3,1fr)}
  .bt-trustees{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:860px){
  .bt-hero{padding:36px 0 48px}
  .bt-hero-in{grid-template-columns:1fr}
  .bt-hero-mark{display:none}
  .bt-hero-sun{left:auto;right:-640px;top:-560px}
}
@media (max-width:640px){
  .bt-tiles{grid-template-columns:1fr;gap:10px}
  .bt-tiles a{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:14px;padding:12px 14px}
  .bt-tile-ico{margin:0;width:46px;height:46px;grid-row:span 2}
  .bt-tiles a{display:grid;grid-template-columns:46px 1fr;row-gap:0}
  .bt-trustees{grid-template-columns:1fr}
  .bt-acre-hill{height:30px}
}
@media (max-width:480px){
  .bt-searchbar{flex-direction:column}
  .bt-feature{flex-direction:column;padding:20px}
}

/* ---------- lists of dated things ---------- */
.bt-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.bt-rows > li{display:flex;gap:16px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line)}
.bt-row-main{flex:1;min-width:0}
.bt-row-title{font-size:1.15rem;font-weight:700;margin:0 0 2px;line-height:1.3}
.bt-row-title a{color:var(--ink);text-decoration:none}
.bt-row-title a:hover{color:var(--green-dark);text-decoration:underline}
.bt-row-sub{margin:0;color:var(--muted);font-size:1rem}
.bt-row-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.bt-row-side{flex:none;text-align:right}
.bt-row-ico{flex:none;width:40px;height:40px;border-radius:50%;background:var(--green-tint);color:var(--green-dark);display:grid;place-items:center}
.bt-rows--docs > li{align-items:center;padding:13px 0}
@media (max-width:560px){
  .bt-rows > li{flex-wrap:wrap}
  .bt-row-side{width:100%;text-align:left;padding-left:82px}
}

.bt-two{display:grid;grid-template-columns:1.2fr 1fr;gap:52px;align-items:start}
@media (max-width:860px){.bt-two{grid-template-columns:1fr;gap:34px}}

/* Notices read as posted bulletins: amber rule on the left, date first. */
.bt-notice-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.bt-notice{border:1px solid var(--line);border-left:6px solid var(--amber);border-radius:var(--radius);padding:16px 18px;background:var(--white)}
.bt-notice h3{margin:2px 0 6px;font-size:1.2rem}
.bt-notice h3 a{color:var(--ink);text-decoration:none}
.bt-notice h3 a:hover{text-decoration:underline}
.bt-notice p{margin:0;color:var(--muted)}
.bt-notice-date{font-size:.95rem;color:var(--amber);font-weight:700;margin:0}

/* Documents */
.bt-doclist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.bt-doclist > li{padding:14px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:6px 18px;align-items:center}
.bt-doc-title{font-weight:700;font-size:1.1rem;margin:0;line-height:1.3}
.bt-doc-title a{color:var(--ink);text-decoration:none}
.bt-doc-title a:hover{text-decoration:underline;color:var(--green-dark)}
.bt-doc-meta{margin:2px 0 0;color:var(--muted);font-size:.975rem}
.bt-doc-files{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.bt-filelink{
  display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;
  border:1px solid var(--green);border-radius:var(--radius);
  color:var(--green-dark);font-weight:700;font-size:1rem;text-decoration:none;white-space:nowrap;background:var(--white);
}
.bt-filelink:hover{background:var(--green-tint);color:var(--green-dark)}
.bt-filelink small{font-weight:500;color:var(--muted)}
@media (max-width:620px){
  .bt-doclist > li{grid-template-columns:1fr}
  .bt-doc-files{align-items:flex-start}
}

.bt-filter{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:22px;padding:16px;background:var(--surface);border-radius:var(--radius)}
.bt-filter .bt-field{margin:0;flex:1;min-width:170px}
.bt-chips{display:flex;gap:8px;flex-wrap:wrap;list-style:none;margin:0 0 20px;padding:0}
.bt-chips a{
  display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:7px 14px;border-radius:999px;
  border:1px solid var(--line-strong);color:var(--ink);text-decoration:none;font-weight:600;font-size:1rem;background:var(--white);
}
.bt-chips a:hover{background:var(--surface)}
.bt-chips a[aria-current="true"]{background:var(--ink);border-color:var(--ink);color:var(--white)}
.bt-chips small{font-weight:500;opacity:.8}

/* People */
.bt-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;list-style:none;margin:0 0 30px;padding:0}
.bt-person{border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px;scroll-margin-top:20px;background:var(--white)}
.bt-person:target{border-color:var(--green);box-shadow:0 0 0 3px var(--green-tint)}
.bt-person h3{margin:0;font-size:1.2rem}
.bt-person-role{margin:0 0 10px;color:var(--muted)}
.bt-contactlines{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.bt-contactlines a{display:inline-flex;align-items:center;gap:8px;min-height:40px;word-break:break-word}

.bt-table{width:100%;border-collapse:collapse;font-size:1.05rem}
.bt-table th,.bt-table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.bt-table th{font-weight:700;color:var(--muted);font-size:.95rem}
@media (max-width:640px){
  .bt-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .bt-table tr{display:block;padding:10px 0;border-bottom:1px solid var(--line)}
  .bt-table td{display:block;border:0;padding:2px 0}
}

/* ---------- forms ---------- */
.bt-form{display:grid;gap:20px;max-width:640px}
.bt-field{display:grid;gap:6px;margin:0}
.bt-field > label,.bt-legend{font-weight:700;font-size:1.0625rem}
.bt-hint{color:var(--muted);font-size:1rem;margin:0}
.bt-optional{font-weight:400;color:var(--muted)}
.bt-input,.bt-field input[type=text],.bt-field input[type=email],.bt-field input[type=tel],
.bt-field input[type=password],.bt-field input[type=search],.bt-field input[type=file],
.bt-field select,.bt-field textarea{
  font:inherit;font-size:1.125rem;color:var(--ink);background:var(--white);
  border:2px solid var(--line-strong);border-radius:var(--radius);
  padding:11px 12px;width:100%;min-height:50px;
}
.bt-field textarea{min-height:150px;resize:vertical;line-height:1.5}
.bt-field input:focus-visible,.bt-field select:focus-visible,.bt-field textarea:focus-visible{border-color:var(--ink)}
.bt-field[data-invalid] input,.bt-field[data-invalid] select,.bt-field[data-invalid] textarea{border-color:var(--danger)}
.bt-error{color:var(--danger);font-weight:700;font-size:1rem;margin:0;display:flex;gap:6px;align-items:flex-start}
.bt-error .bt-ico{margin-top:.25em}
.bt-fieldrow{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.bt-fieldrow--zip{grid-template-columns:2fr 1fr}
@media (max-width:520px){.bt-fieldrow,.bt-fieldrow--zip{grid-template-columns:1fr}}
fieldset.bt-group{border:0;margin:0;padding:0;display:grid;gap:10px;min-width:0}
fieldset.bt-group legend{padding:0;margin-bottom:4px}
.bt-choice{
  display:flex;gap:12px;align-items:flex-start;padding:14px;border:2px solid var(--line-strong);border-radius:var(--radius);cursor:pointer;
}
.bt-choice:has(input:checked){border-color:var(--green);background:var(--green-tint)}
.bt-choice input{width:22px;height:22px;margin:3px 0 0;accent-color:var(--green);flex:none}
.bt-choice strong{display:block}
.bt-choice span span{color:var(--muted);font-size:1rem}
.bt-check{display:flex;gap:12px;align-items:flex-start;min-height:44px;cursor:pointer}
.bt-check input{width:22px;height:22px;margin:4px 0 0;accent-color:var(--green);flex:none}
.bt-reveal{display:grid;gap:8px;padding:16px;background:var(--surface);border-radius:var(--radius)}
/* The honeypot is off-screen, not display:none: some bots skip the latter. */
.bt-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.bt-callout{padding:16px 18px;border-radius:var(--radius);background:var(--surface);border-left:5px solid var(--green);max-width:var(--measure);margin:0 0 22px}
.bt-callout > :last-child{margin-bottom:0}
.bt-callout--ok{background:var(--green-tint)}
.bt-callout--warn{background:var(--amber-tint);border-left-color:var(--amber)}
.bt-callout--error{background:var(--danger-tint);border-left-color:var(--danger)}
.bt-callout h2{font-size:1.2rem;margin-bottom:.4em}
.bt-callout ul{margin:0;padding-left:1.2em}
.bt-callout--error a{color:var(--danger);font-weight:700}

.bt-steps{margin:0 0 22px;padding-left:1.4em;max-width:var(--measure)}
.bt-steps li{margin-bottom:6px}

/* ---------- account ---------- */
.bt-auth{max-width:520px;margin-inline:auto;padding:44px 20px 60px}
.bt-auth h1{margin-bottom:.3em}
.bt-auth-alt{margin-top:22px;color:var(--muted)}
.bt-cardgrid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
@media (max-width:860px){.bt-cardgrid{grid-template-columns:1fr}}
.bt-card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px}
.bt-card h2{font-size:1.3rem}

/* ---------- footer ---------- */
.bt-footer{position:relative;background:var(--green-dark);color:#E3EEE8;margin-top:104px;font-size:1.0625rem}
.bt-footer-hill{position:absolute;left:0;right:0;bottom:100%;width:100%;height:48px;display:block;margin-bottom:-1px}
.bt-footer-hill path{fill:var(--green-dark)}
.bt-footer-mark img{width:112px;height:112px;display:block;background:var(--white);border-radius:50%;padding:6px}
.bt-footer a{color:var(--white)}
.bt-footer-grid{display:grid;grid-template-columns:auto 1.1fr .9fr 1.3fr;gap:40px;padding-block:40px 34px}
.bt-footer-h{font-size:1.1rem;color:var(--white);margin-bottom:.6em;letter-spacing:0}
.bt-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.bt-footer li a{display:inline-flex;min-height:40px;align-items:center}
.bt-footer-hours{white-space:pre-line}
.bt-footer-base{
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding-block:18px;border-top:1px solid rgba(255,255,255,.22);font-size:.975rem;
}
.bt-footer-base p{margin:0}
.bt-footer-links{display:flex;gap:18px;flex-wrap:wrap}
@media (max-width:900px){.bt-footer-grid{grid-template-columns:1fr;gap:26px}.bt-footer-mark img{width:88px;height:88px}.bt-footer{margin-top:80px}}

/* Body links in imported text sometimes are long bare URLs. */
.bt-prose a,.bt-doc-title a{overflow-wrap:anywhere}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
}

@media print{
  .bt-header nav,.bt-menu-btn,.bt-footer,.bt-skip,.bt-searchbar,.bt-filter,.bt-chips{display:none !important}
  body{font-size:12pt}
  a{color:#000}
  .bt-hero{padding:0}
  .bt-hero-sun,.bt-acre,.bt-pagehead::after{display:none !important}
}

.bt-gap-b{margin-bottom:28px}
.bt-gap-t{margin-top:1.6em}
.bt-doc-files--left{align-items:flex-start}

/* On the dark footer every link is white, except the button, which is white itself. */
.bt-footer a.bt-btn--onDark{color:var(--green-dark)}
.bt-table a,.bt-contactlines a{display:inline-flex;align-items:center;gap:8px}
.bt-yearhead{font-size:1.25rem;margin:28px 0 8px;color:var(--muted)}
.bt-yearhead:first-of-type{margin-top:8px}
.bt-more{display:inline-flex;align-items:center;min-height:44px}
.bt-filelink{max-width:100%}
.bt-doc-files--left .bt-filelink{white-space:normal;overflow-wrap:anywhere;text-align:left}
.bt-row-title,.bt-row-sub,.bt-notice p,.bt-notice h3{overflow-wrap:anywhere}
.bt-adm-mark{display:block;padding:4px 0}
.bt-form > .bt-btn{justify-self:start}
.bt-adm-card .bt-form > .bt-btn{justify-self:stretch}
.bt-nextmeet{display:flex;gap:20px;align-items:flex-start}
@media (max-width:480px){.bt-nextmeet{flex-direction:column}}
@media (max-width:480px){
  .bt-header-in{gap:10px;min-height:72px}
  .bt-brand img{width:52px;height:52px}
  .bt-brand-name{font-size:1.15rem}
  .bt-brand-sub{font-size:.8125rem}
}
.bt-person-head{display:flex;gap:14px;align-items:center;margin-bottom:10px}
.bt-person-head .bt-person-role{margin:0}

/* Calendar */
.bt-facts-action{margin-top:10px}
.bt-subscribe{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:26px;padding:20px;background:var(--surface);border-radius:var(--radius-lg)}
.bt-subscribe-main{flex:1;min-width:240px}
.bt-subscribe h3{margin:0 0 2px;font-size:1.15rem}
.bt-subscribe p{margin:0;color:var(--muted);font-size:1rem}

/* Urgent message from Settings. Yellow with black text and an icon: never colour alone. */
.bt-urgent{background:var(--sun);color:var(--ink);font-weight:700}
.bt-urgent .bt-wrap{display:flex;gap:10px;align-items:flex-start;padding-block:12px}
.bt-urgent p{margin:0}
.bt-urgent .bt-ico{margin-top:.2em}
@media print{.bt-urgent{border:2px solid #000}}

/* A document's own page: the file is the point, so it is the biggest thing on it. */
.bt-filecards{display:grid;gap:12px;max-width:720px}
.bt-filecard{display:flex;align-items:center;gap:16px;padding:16px 18px;border:2px solid var(--ink);border-radius:var(--radius-lg);background:var(--white);color:var(--ink);text-decoration:none;transition:background-color 140ms ease}
.bt-filecard:hover{background:var(--sun-tint);color:var(--ink)}
.bt-filecard-ico{flex:none;width:52px;height:52px;border-radius:50%;background:var(--sun);display:grid;place-items:center}
.bt-filecard-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow-wrap:anywhere}
.bt-filecard-main strong{font-size:1.15rem;line-height:1.3}
.bt-filecard-main small{color:var(--muted);font-size:.975rem}
.bt-filecard-go{flex:none;padding:10px 16px;border-radius:var(--radius);background:var(--green);color:var(--white);font-weight:700;white-space:nowrap}
.bt-filecard:hover .bt-filecard-go{background:var(--green-dark)}
@media (max-width:520px){.bt-filecard{flex-wrap:wrap}.bt-filecard-go{width:100%;text-align:center}}

/* The farmstead from the logo, on the hill between the hero and the task tiles. */
.bt-acre-farm{position:absolute;bottom:calc(100% + 21px);left:calc(50% + 32px);width:270px;height:auto;pointer-events:none}
.bt-farm-tree rect{fill:var(--ink)}
.bt-farm-tree ellipse{fill:var(--green)}
.bt-farm-wall,.bt-farm-silo path:first-child{fill:var(--white);stroke:var(--ink);stroke-width:3;stroke-linejoin:round}
.bt-farm-roof,.bt-farm-door{fill:var(--ink)}
.bt-farm-line{fill:none;stroke:var(--ink);stroke-width:2}
.bt-farm-barn .bt-farm-line{stroke:var(--white);stroke-width:2}
.bt-acre-hill{z-index:1}
@media (max-width:1100px){.bt-acre-farm{display:none}}

/* Welcome: a photograph of the place, with a few words over it. */
.bt-welcome{position:relative;background:var(--green-dark);padding:56px 0;overflow:hidden}
.bt-welcome--photo{padding:84px 0}
.bt-welcome-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%}
.bt-welcome > .bt-wrap{position:relative}
.bt-welcome-card{max-width:560px;background:var(--white);border-radius:var(--radius-lg);padding:30px 30px 28px;box-shadow:var(--shadow);border-top:8px solid var(--sun)}
.bt-welcome-card h2{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.1rem);letter-spacing:-.02em;margin-bottom:.4em}
.bt-welcome-card p{font-size:1.15rem;color:var(--muted);margin-bottom:22px}
@media (max-width:640px){
  .bt-welcome,.bt-welcome--photo{padding:0;background:var(--white)}
  .bt-welcome-img{position:static;height:210px}
  .bt-welcome-card{max-width:none;margin:-36px 0 8px;position:relative;padding:22px 20px}
}

/* Around the township: up to three photographs. */
.bt-snaps{list-style:none;margin:0;padding:0;display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}
.bt-snaps--2{grid-template-columns:repeat(2,1fr)}
.bt-snaps--1{grid-template-columns:1fr;max-width:760px}
.bt-snaps figure{margin:0}
.bt-snaps img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;border-radius:var(--radius-lg);background:var(--surface)}
.bt-snaps figcaption{margin-top:8px;color:var(--muted);font-size:1rem}
@media (max-width:760px){.bt-snaps,.bt-snaps--2{grid-template-columns:1fr}}
@media print{.bt-welcome-img,.bt-acre-farm{display:none !important}}

/* ---------- hero with a photograph ----------
   The photo fills the top of the page. A dark wash on the left keeps the words
   readable whatever the photo is; the logo keeps its white disc. */
.bt-hero--photo{background:var(--ink);padding:84px 0 104px;color:var(--white)}
.bt-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%}
.bt-hero--photo::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(10,22,15,.86) 0%,rgba(10,22,15,.72) 38%,rgba(10,22,15,.18) 72%,rgba(10,22,15,.05) 100%),
    linear-gradient(180deg,rgba(10,22,15,.30) 0%,rgba(10,22,15,0) 30%);
}
.bt-hero--photo .bt-hero-in{z-index:1}
.bt-hero--photo h1{color:var(--white);text-shadow:0 2px 18px rgba(0,0,0,.35)}
.bt-hero--photo p{color:#F1F4EE;text-shadow:0 1px 10px rgba(0,0,0,.4)}
.bt-hero--photo .bt-searchbar input{border-color:var(--white)}
.bt-hero--photo .bt-hero-mark{box-shadow:0 0 0 8px rgba(255,255,255,.35),0 18px 40px rgba(0,0,0,.35)}
.bt-hero--photo :focus-visible{outline-color:var(--white)}
.bt-btn--sun{background:var(--sun);border-color:var(--sun);color:var(--ink)}
.bt-btn--sun:hover{background:#FFE27A;border-color:#FFE27A;color:var(--ink)}
@media (max-width:860px){
  .bt-hero--photo{padding:48px 0 72px}
  .bt-hero--photo::after{background:linear-gradient(180deg,rgba(10,22,15,.78) 0%,rgba(10,22,15,.62) 100%)}
}
@media print{.bt-hero-img{display:none !important}.bt-hero--photo{background:none;color:#000}.bt-hero--photo h1,.bt-hero--photo p{color:#000;text-shadow:none}}

/* Welcome band without a photo: the logo's sun on its pale yellow. */
.bt-welcome:not(.bt-welcome--photo){background:var(--sun-tint)}
.bt-welcome-sun{
  position:absolute;width:1000px;height:1000px;border-radius:50%;right:-220px;top:calc(50% - 500px);pointer-events:none;
  background:radial-gradient(circle,var(--sun) 0 120px,transparent 121px),repeating-conic-gradient(from -4deg,var(--sun-soft) 0 8deg,transparent 8deg 20deg);
  -webkit-mask-image:radial-gradient(circle,#000 0 30%,transparent 66%);mask-image:radial-gradient(circle,#000 0 30%,transparent 66%);
}
@media (max-width:640px){.bt-welcome:not(.bt-welcome--photo){padding:28px 0 20px;background:var(--sun-tint)}.bt-welcome:not(.bt-welcome--photo) .bt-welcome-card{margin:0}.bt-welcome-sun{display:none}}

/* Who to ask: the question first, then the person. */
.bt-section--tight{padding-bottom:8px}
.bt-section--tight + .bt-section{border-top:0}
.bt-who{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.bt-who > li{padding:18px;border:1px solid var(--line);border-top:6px solid var(--sun);border-radius:var(--radius-lg);background:var(--white)}
.bt-who-topic{margin:0 0 6px;font-weight:800;font-size:1.15rem;line-height:1.3}
.bt-who-name{margin:0 0 6px;color:var(--muted)}
.bt-person-topics{margin:0 0 8px}
.bt-notice--news{border-left-color:var(--green)}
.bt-notice--news .bt-notice-date{color:var(--green-dark)}
.bt-hero--photo{background:#3B2A12}

/* Six task tiles: three across twice, so every row is full. */
.bt-tiles{grid-template-columns:repeat(6,1fr);gap:12px}
.bt-tiles a{padding:16px 14px}
.bt-tile-label{font-size:1.075rem}
@media (max-width:1100px){.bt-tiles{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.bt-tiles{grid-template-columns:1fr;gap:10px}}
.bt-doclist--stack > li{grid-template-columns:1fr}
.bt-doclist--stack .bt-doc-files{align-items:flex-start}

/* ---------- search suggestions ---------- */
.bt-suggest{
  position:absolute;z-index:60;list-style:none;margin:0;padding:6px;max-height:min(70vh,460px);overflow:auto;
  background:var(--white);border:2px solid var(--ink);border-radius:var(--radius-lg);box-shadow:var(--shadow);
  font-size:1.0625rem;text-align:left;
}
.bt-suggest li{margin:0}
.bt-suggest a{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius);color:var(--ink);text-decoration:none;min-height:48px}
.bt-suggest li[aria-selected="true"] a,.bt-suggest a:hover{background:var(--sun-tint);box-shadow:inset 4px 0 0 var(--sun)}
.bt-suggest-type{flex:none;width:92px;margin-top:2px;font-size:.875rem;font-weight:700;color:var(--green-dark)}
.bt-suggest-main{flex:1;min-width:0;display:flex;flex-direction:column}
.bt-suggest-title{font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.bt-suggest-meta{color:var(--muted);font-size:.95rem}
.bt-suggest a.bt-suggest-all{font-weight:700;color:var(--green-dark);border-top:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);align-items:center}
@media (max-width:520px){.bt-suggest-type{width:auto;min-width:70px}}
@media print{.bt-suggest{display:none !important}}

/* The header stays in reach on a desktop while a long list scrolls under it. */
@media (min-width:1241px) and (min-height:620px){
  .bt-header{position:sticky;top:0}
  .bt-person,.bt-yearhead,[id]{scroll-margin-top:104px}
}

/* Jump to a year on long document lists. */
.bt-jump{display:flex;gap:6px 14px;flex-wrap:wrap;align-items:center;margin:0 0 6px;padding:0;list-style:none;color:var(--muted)}
.bt-jump a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;font-weight:700}
.bt-totop{margin-top:26px}

/* How do I: questions grouped, each a full-width link. */
.bt-howgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px 36px;align-items:start}
.bt-how h2{font-size:1.3rem;margin-bottom:.4em;padding-bottom:8px;border-bottom:4px solid var(--sun)}
.bt-how ul{list-style:none;margin:0;padding:0}
.bt-how li + li{border-top:1px solid var(--line)}
.bt-how a{display:flex;gap:12px;align-items:center;min-height:54px;padding:10px 4px;color:var(--ink);text-decoration:none;font-weight:600}
.bt-how a:hover{background:var(--sun-tint);color:var(--ink)}
.bt-how a .bt-ico:first-child{color:var(--green)}
.bt-how a .bt-ico:last-child{margin-left:auto;color:var(--line-strong)}
.bt-how a span{flex:1}
.bt-steps li{margin-bottom:10px}
.bt-card .bt-steps{padding-left:1.2em;margin-bottom:0}

/* ---------- month calendar ---------- */
.bt-calhead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.bt-calhead h2{margin:0}
.bt-calnav{display:flex;gap:8px;flex-wrap:wrap}
.bt-calnav .bt-btn{min-height:44px;padding:8px 14px;font-size:1rem}
.bt-cal{width:100%;border-collapse:collapse;table-layout:fixed;background:var(--white)}
.bt-cal th{padding:8px 6px;text-align:left;font-size:.95rem;color:var(--muted);font-weight:700;border-bottom:2px solid var(--ink)}
.bt-cal th abbr{text-decoration:none}
.bt-cal td{height:104px;vertical-align:top;padding:6px;border:1px solid var(--line);overflow-wrap:anywhere}
.bt-cal-off{background:var(--surface)}
.bt-cal-day{display:inline-grid;place-items:center;min-width:28px;height:28px;font-weight:700;color:var(--muted);border-radius:50%}
.bt-cal-has .bt-cal-day{color:var(--ink)}
.bt-cal-today{box-shadow:inset 0 0 0 2px var(--ink)}
.bt-cal-today .bt-cal-day{background:var(--sun);color:var(--ink);padding:0 6px}
.bt-cal-ev{display:block;margin-top:4px;padding:5px 7px;border-radius:6px;background:var(--green-tint);border-left:4px solid var(--green);color:var(--ink);text-decoration:none;font-size:.9375rem;font-weight:600;line-height:1.3}
.bt-cal-ev:hover{background:var(--sun-tint);border-left-color:var(--sun);color:var(--ink)}
.bt-cal-ev.is-cancelled{background:var(--danger-tint);border-left-color:var(--danger);text-decoration:line-through}
.bt-cal-ev.is-cancelled strong{text-decoration:none;display:inline-block}
.bt-cal-time{display:block;font-weight:500;color:var(--muted);font-size:.875rem}
/* On a phone seven columns leave no room for words: a day with a meeting shows a
   mark, and the full list is directly underneath. */
@media (max-width:720px){
  .bt-cal td{height:52px;padding:3px;text-align:center}
  .bt-cal th{text-align:center;padding:6px 2px}
  .bt-cal-ev{position:relative;margin:2px auto 0;padding:0;width:44px;height:24px;overflow:hidden;white-space:nowrap;text-indent:-999px;border-left:0;background:var(--green);border-radius:999px}
  .bt-cal-ev.is-cancelled{background:var(--danger)}
  .bt-cal-day{min-width:24px;height:24px;font-size:.95rem}
}
@media print{.bt-calnav{display:none}}

/* ---------- public notices of meetings off the regular schedule ----------
   The Open Meetings Act wants these on the home page. They are set like a notice
   pinned to a board: black rule, yellow head, the facts in bold. */
.bt-section--notices{background:var(--sun-tint)}
.bt-pubnotices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px}
.bt-pubnotice{background:var(--white);border:2px solid var(--ink);border-top-width:10px;border-radius:var(--radius-lg);padding:20px 22px;max-width:760px}
.bt-pubnotice.is-emergency{border-color:var(--danger)}
.bt-pubnotice.is-cancelled{border-color:var(--line-strong)}
.bt-pubnotice-kicker{display:flex;gap:8px;align-items:center;margin:0 0 6px;font-weight:800;font-size:1rem;color:var(--green-dark)}
.bt-pubnotice.is-emergency .bt-pubnotice-kicker{color:var(--danger)}
.bt-pubnotice-title{font-size:clamp(1.3rem,1.1rem + .7vw,1.6rem);letter-spacing:-.015em;margin:0 0 10px}
.bt-pubnotice-title a{color:var(--ink);text-decoration:none}
.bt-pubnotice-title a:hover{text-decoration:underline}
.bt-pubnotice p{margin:0 0 12px}
.bt-pubnotice .bt-facts{margin-bottom:14px}
.bt-pubnotice-foot{margin:0 !important;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:1rem}

/* The standing link from the home page to the notices page. */
.bt-noticebar{display:flex;gap:14px;align-items:center;margin-top:30px;padding:16px 18px;border:2px solid var(--ink);border-radius:var(--radius-lg);background:var(--white);color:var(--ink);text-decoration:none;transition:background-color 140ms ease}
.bt-noticebar:hover{background:var(--sun-tint);color:var(--ink)}
.bt-noticebar-main{flex:1;min-width:0;display:grid;gap:2px}
.bt-noticebar-main strong{font-size:1.15rem}
.bt-noticebar-main span{color:var(--muted);font-size:1rem}
.bt-noticebar > .bt-ico{flex:none;color:var(--green)}

.bt-pagelinks{display:flex;gap:8px 22px;flex-wrap:wrap;margin:14px 0 0;font-weight:700}

/* The year's regular meetings, as a table that prints on one sheet. */
.bt-sched{width:100%;max-width:820px;border-collapse:collapse;font-size:1.05rem}
.bt-sched th,.bt-sched td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.bt-sched thead th{font-size:.95rem;color:var(--muted);border-bottom:2px solid var(--ink)}
.bt-sched tbody th{font-weight:700}
.bt-sched tr.is-cancelled td,.bt-sched tr.is-cancelled th a{text-decoration:line-through;color:var(--muted)}

.bt-posted{margin:0;display:grid;gap:4px}
.bt-posted dt{font-weight:800;margin-top:10px}
.bt-posted dt:first-child{margin-top:0}
.bt-posted dd{margin:0}

@media (max-width:560px){
  .bt-pubnotice{padding:16px}
  .bt-noticebar{align-items:flex-start}
  .bt-sched th,.bt-sched td{padding:10px 8px}
}
@media print{
  .bt-noprint,.bt-noticebar,.bt-pagelinks,.bt-crumbs{display:none !important}
  .bt-pubnotice{border-color:#000;break-inside:avoid}
  .bt-section--notices{background:none}
  .bt-sched{font-size:12pt}
}

/* ==========================================================================
   0.17.0: set like print, not like an app.
   Squarer corners, ruled lines in place of boxes, no icon badges, no initials
   in circles. The models are things a township already makes: the lettered
   directory in the hall lobby, the roster on its letterhead, a posted list.
   ========================================================================== */
:root{--radius:3px;--radius-lg:5px}

/* The lobby directory: one board on the green, six ruled lines. */
.bt-lobby{background:var(--white);border:2px solid var(--ink);border-radius:var(--radius-lg);box-shadow:6px 6px 0 rgba(0,0,0,.28)}
.bt-lobby-h{margin:0;padding:10px 20px;background:var(--ink);color:var(--sun);font-size:.95rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.bt-lobby-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr)}
.bt-lobby-list li{border-top:1px solid var(--line);border-left:1px solid var(--line)}
.bt-lobby-list li:nth-child(-n+3){border-top:0}
.bt-lobby-list li:nth-child(3n+1){border-left:0}
.bt-lobby-list a{display:grid;grid-template-columns:1fr auto;column-gap:12px;align-items:center;min-height:84px;padding:14px 20px;color:var(--ink);text-decoration:none;transition:background-color 140ms ease}
.bt-lobby-list a:hover{background:var(--sun-tint);color:var(--ink)}
.bt-lobby-list a:hover .bt-lobby-label{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.bt-lobby-label{grid-column:1;font-weight:800;font-size:1.3rem;line-height:1.2;letter-spacing:-.015em}
.bt-lobby-sub{grid-column:1;color:var(--muted);font-size:1rem;line-height:1.35}
.bt-lobby-list a > .bt-ico{grid-column:2;grid-row:1 / span 2;color:var(--green)}
.bt-lobby :focus-visible{outline-color:var(--ink);outline-offset:-4px}
@media (max-width:900px){
  .bt-lobby-list{grid-template-columns:repeat(2,1fr)}
  .bt-lobby-list li:nth-child(n){border-top:1px solid var(--line);border-left:1px solid var(--line)}
  .bt-lobby-list li:nth-child(-n+2){border-top:0}
  .bt-lobby-list li:nth-child(2n+1){border-left:0}
}
@media (max-width:560px){
  .bt-lobby{box-shadow:none}
  .bt-lobby-list{grid-template-columns:1fr}
  .bt-lobby-list li:nth-child(n){border-left:0;border-top:1px solid var(--line)}
  .bt-lobby-list li:first-child{border-top:0}
  .bt-lobby-list a{min-height:68px;padding:12px 16px}
  .bt-lobby-label{font-size:1.2rem}
}

/* About the township: words on the left, four figures set large on the right. */
.bt-about{background:var(--sun-tint);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:52px 0}
.bt-about-in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:40px 64px;align-items:center}
.bt-about--photo .bt-about-in{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.bt-about-text h2{font-size:clamp(1.7rem,1.2rem + 1.6vw,2.3rem);letter-spacing:-.02em;margin-bottom:.4em}
.bt-about-text p{font-size:1.2rem;max-width:34em}
.bt-about-links{display:flex;gap:8px 28px;flex-wrap:wrap;margin:0;font-weight:800}
.bt-about-photo{margin:0}
.bt-about-photo img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border:2px solid var(--ink);border-radius:var(--radius-lg)}
.bt-figures{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0}
.bt-about--photo .bt-figures{grid-column:1 / -1;grid-template-columns:repeat(4,1fr)}
.bt-figures > div{display:flex;flex-direction:column-reverse;justify-content:flex-end;padding:16px 20px 16px 0;border-top:2px solid var(--ink)}
.bt-figures dd{margin:0;font-weight:800;font-size:clamp(1.9rem,1.3rem + 2vw,2.9rem);line-height:1.05;letter-spacing:-.03em}
.bt-figures dt{color:var(--muted);font-size:1rem;line-height:1.35;margin-top:6px;max-width:16em}
@media (max-width:820px){
  .bt-about{padding:36px 0}
  .bt-about-in,.bt-about--photo .bt-about-in{grid-template-columns:1fr;gap:28px}
  .bt-about--photo .bt-figures{grid-template-columns:1fr 1fr}
}
@media print{.bt-about{background:none}}

/* News and notices on the home page: a posted list with the date in the margin. */
.bt-notice-list{gap:0;border-top:2px solid var(--ink)}
.bt-notice,.bt-notice--news{display:grid;grid-template-columns:7.5em minmax(0,1fr);column-gap:18px;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:16px 0;background:none}
.bt-notice-date,.bt-notice--news .bt-notice-date{grid-row:1 / span 3;color:var(--ink);font-weight:700;font-size:1rem;line-height:1.35}
.bt-notice-date span{display:block;color:var(--muted);font-weight:800;font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase}
.bt-notice h3{grid-column:2;margin:0 0 4px}
.bt-notice > p:not(.bt-notice-date){grid-column:2}
@media (max-width:560px){
  .bt-notice,.bt-notice--news{grid-template-columns:1fr}
  .bt-notice-date{grid-row:auto;margin-bottom:4px}
  .bt-notice-date span{display:inline;margin-right:8px}
  .bt-notice h3,.bt-notice > p:not(.bt-notice-date){grid-column:1}
}

/* The board, as a letterhead lists it: office, name, number. */
.bt-roster{list-style:none;margin:0;padding:0;columns:2;column-gap:56px;border-top:2px solid var(--ink)}
.bt-roster li{break-inside:avoid;display:grid;grid-template-columns:minmax(0,11em) minmax(0,1fr) auto;gap:4px 16px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--line)}
.bt-roster-office{color:var(--muted);font-weight:800;font-size:.875rem;letter-spacing:.07em;text-transform:uppercase}
.bt-roster-name{font-weight:800;font-size:1.2rem}
.bt-roster-phone a{display:inline-flex;align-items:center;gap:8px;min-height:32px;font-weight:600;white-space:nowrap}
@media (max-width:900px){.bt-roster{columns:1}}
@media (max-width:520px){
  .bt-roster li{grid-template-columns:1fr;gap:0}
  .bt-roster-phone a{min-height:40px}
}

/* The officials page: one ruled entry each, wide enough that an address never breaks. */
.bt-register{list-style:none;margin:0 0 40px;padding:0;border-top:2px solid var(--ink)}
.bt-register > .bt-person{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.2fr) minmax(0,1.2fr);gap:10px 36px;align-items:start;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:22px 0;background:none}
.bt-register > .bt-person:target{box-shadow:none;background:var(--sun-tint);margin:0 -16px;padding-left:16px;padding-right:16px}
.bt-register-office{margin:0 0 2px;color:var(--muted);font-weight:800;font-size:.875rem;letter-spacing:.07em;text-transform:uppercase}
.bt-register h3{font-size:1.45rem;letter-spacing:-.015em;margin:0}
.bt-register .bt-person-topics{margin:0}
.bt-register .bt-contactlines a{word-break:normal;overflow-wrap:anywhere}
@media (max-width:860px){.bt-register > .bt-person{grid-template-columns:1fr;gap:8px}}

/* Fewer rounded boxes elsewhere on the home page. */
.bt-rows--docs .bt-row-ico{background:none;width:auto;height:auto;border-radius:0;color:var(--green)}
.bt-figures dd.is-long{font-size:clamp(1.35rem,1.1rem + .9vw,1.8rem);letter-spacing:-.015em;line-height:1.2}

/* ==========================================================================
   0.18.0: one page, one voice. Headings hang from a rule like entries in a
   minute book; yellow is kept for the things that are the township's own
   (the seal, the notice board, the about band), not spread across every box.
   ========================================================================== */
.bt-header{border-bottom:0;box-shadow:inset 0 -4px 0 var(--sun),0 1px 0 var(--ink)}

/* Section headings: a rule above, the heading sitting on it. */
.bt-home .bt-section-head{align-items:flex-end;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:0}
.bt-home .bt-section-head h2{font-size:clamp(1.45rem,1.2rem + .8vw,1.8rem);letter-spacing:-.02em}
.bt-home .bt-section-head + .bt-rows,.bt-home .bt-section-head + .bt-notice-list,.bt-home .bt-section-head + .bt-roster{border-top:0}
.bt-home .bt-section-head + .bt-feature,.bt-home .bt-section-head + .bt-pubnotices,.bt-home .bt-section-head + .bt-empty{margin-top:20px}
.bt-when{font-weight:800;font-size:1rem;letter-spacing:.07em;text-transform:uppercase;color:var(--green-dark)}
.bt-subhead{margin:34px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--line);font-size:1.15rem}
.bt-gap-t-sm{margin-top:16px}

/* The next meeting: white, ruled in ink, the date block carrying the colour. */
.bt-feature{background:var(--white);padding:24px}
.bt-feature--none{background:var(--surface)}
.bt-pubnotices--one{grid-template-columns:1fr}
.bt-pubnotices--one .bt-pubnotice{max-width:none}
.bt-section--notices{background:none}

.bt-noticelink{margin:18px 0 0;padding-top:14px;border-top:1px solid var(--line);display:grid;gap:2px;color:var(--muted);font-size:1rem}
.bt-rows + .bt-noticelink{border-top:0}
.bt-noticelink a{display:inline-flex;gap:8px;align-items:center;font-weight:800;font-size:1.075rem;min-height:32px}

/* Hero: where it is, then what it is. */
.bt-hero-eyebrow{margin:0 0 10px;font-weight:800;font-size:.95rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.bt-hero-eyebrow span{opacity:.55;margin:0 .35em}
.bt-hero--photo .bt-hero-eyebrow{color:var(--sun)}

/* Labels and filters: squared, like index tabs, not pills. */
.bt-tag{border-radius:2px;letter-spacing:.02em}
.bt-chips a{border-radius:var(--radius)}
.bt-chips a[aria-current="true"]{box-shadow:inset 0 -4px 0 var(--sun)}

/* Inner pages share the ruled headings where a list follows. */
.bt-doclist,.bt-rows{border-top-color:var(--ink)}
.bt-yearhead{letter-spacing:.04em}
.bt-home .bt-section-head{min-height:46px}

/* ---- 0.19.0: the county map, and section heads that line up ---- */
.bt-home .bt-section-head{min-height:58px}
.bt-county{margin:0}
.bt-county svg{display:block;width:100%;height:auto;max-width:580px;font-family:inherit}
.bt-county rect{fill:var(--white);stroke:var(--ink);stroke-width:1.5}
.bt-county rect.is-us{fill:var(--green)}
.bt-county rect.is-frame{fill:none;stroke:var(--ink);stroke-width:4}
.bt-county text{font-size:13px;font-weight:600;fill:var(--muted)}
.bt-county text.is-us{font-size:16px;font-weight:800;fill:var(--white)}
.bt-county .bt-county-hall{fill:var(--sun);stroke:var(--ink);stroke-width:1.5}
.bt-county .bt-county-edge{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;fill:var(--muted)}
.bt-county figcaption{margin-top:10px;color:var(--muted);font-size:1rem;max-width:36em}
@media print{.bt-county rect.is-us{fill:#ddd}.bt-county text.is-us{fill:#000}}
@media (max-width:640px){
  .bt-county text{font-size:18px}
  .bt-county text.is-us{font-size:19px}
  .bt-county text.is-far{display:none}
  .bt-county .bt-county-edge{font-size:15px}
}

/* ---- 0.20.0: a document shown on its page, and as text ---- */
.bt-doc-alt{display:flex;gap:6px 14px;align-items:center;flex-wrap:wrap;margin:18px 0 0}
.bt-doc-alt a{display:inline-flex;gap:8px;align-items:center;min-height:44px;font-weight:800}
.bt-doc-alt .bt-hint{margin:0}
.bt-pdfview{margin-top:34px}
.bt-pdfview h2{font-size:1.25rem;border-bottom:2px solid var(--ink);padding-bottom:8px;margin-bottom:0}
.bt-pdfview iframe{display:block;width:100%;height:min(86vh,1100px);border:2px solid var(--ink);border-top:0;background:var(--surface)}
@media (max-width:820px){.bt-pdfview{display:none}}
@media print{.bt-pdfview,.bt-doc-alt{display:none}}
.bt-doctext{max-width:var(--measure);font-size:1.125rem;line-height:1.7;margin-bottom:34px}
.bt-doctext h2:not(.bt-doctext-file),.bt-doctext h3{font-size:1.15rem;letter-spacing:.01em;margin:1.6em 0 .5em}
.bt-doctext p{margin:0 0 1em;overflow-wrap:anywhere}
.bt-doctext-file{font-size:1.3rem;border-bottom:2px solid var(--ink);padding-bottom:8px}
.bt-doctext-open{margin-top:1.6em}
.bt-doctext-table{overflow-x:auto;margin:0 0 1.2em}
.bt-doctext-table table{border-collapse:collapse;font-size:1.0625rem;line-height:1.45}
.bt-doctext-table td{border-bottom:1px solid var(--line);padding:8px 22px 8px 0;vertical-align:top;text-align:left}
.bt-doctext-table td:last-child{padding-right:0}

/* ---- 0.23.0: report a problem ---- */
.bt-report-911{border-left-color:#A32012;max-width:none;margin-bottom:30px}
.bt-how > p{margin:0 0 6px}
.bt-how a .bt-hint{font-weight:400}

/* ---- 0.26.0: a notice that is only a PDF shows the PDF's words ---- */
.bt-said{margin-top:34px;padding-top:22px;border-top:2px solid var(--ink)}
.bt-said h2{font-size:1.35rem;margin-bottom:.7em}
.bt-said .bt-doctext{margin-bottom:10px}

/* ---- 0.28.0: the township from the air, and the band below it ---- */
.bt-about-photo figcaption{margin-top:8px;color:var(--muted);font-size:.9375rem;line-height:1.4}
.bt-about-photo figcaption span{white-space:nowrap}
.bt-about-photo--air img{height:auto;filter:saturate(.92)}
.bt-about-lower{grid-column:1 / -1;display:grid;grid-template-columns:1fr;gap:28px 64px;align-items:center;border-top:2px solid var(--ink);padding-top:30px;margin-top:6px}
.bt-about-lower.has-both{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.bt-about--photo .bt-about-lower.has-both .bt-figures{grid-column:auto;grid-template-columns:1fr 1fr}
.bt-about--photo .bt-about-lower:not(.has-both) .bt-figures{grid-template-columns:repeat(4,1fr)}
.bt-about-lower .bt-figures > div:nth-child(-n+2){border-top:0;padding-top:0}
.bt-about-lower:not(.has-both) .bt-figures > div{border-top:0;padding-top:0}
@media (max-width:820px){
  .bt-about-lower,.bt-about-lower.has-both{grid-template-columns:1fr}
  .bt-about--photo .bt-about-lower:not(.has-both) .bt-figures{grid-template-columns:1fr 1fr}
  .bt-about-lower .bt-figures > div:nth-child(-n+2){border-top:2px solid var(--ink);padding-top:16px}
}

/* ---- 0.29.0: an open door before the footer ---- */
.bt-ask{background:var(--surface);border-top:2px solid var(--ink);padding:38px 0 88px;margin-top:72px}
.bt-ask + .bt-footer{margin-top:0}
.bt-ask-in{display:flex;gap:22px 48px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.bt-ask h2{font-size:clamp(1.35rem,1.15rem + .7vw,1.7rem);letter-spacing:-.015em;margin:0 0 .25em}
.bt-ask p{margin:0;max-width:40em;color:var(--muted);font-size:1.125rem}
.bt-ask-acts{display:flex;gap:10px;flex-wrap:wrap}
.bt-home .bt-ask{margin-top:0}
@media print{.bt-ask{display:none}}
.bt-ask-in > div:first-child{flex:1 1 280px;min-width:0}.bt-ask-acts{flex:none}
@media (max-width:560px){.bt-ask-acts{flex:1 1 100%}.bt-ask-acts .bt-btn{flex:1 1 100%;justify-content:center}}
