@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/inter-latin.woff2") format("woff2");
}

@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("/source-serif-4-latin.woff2") format("woff2");
}

/* MuniPro design language 2 (design hub g23, tokens.json 2.0.0): one palette,
   type and component set for every MuniPro brand; only the lockup differs. */
:root {
  color-scheme: light;
  --ink: #0c2140;
  --text: #1e293b;
  --muted: #64748b;
  --rule: #e2e8f0;
  --surface: #ffffff;
  --action: #0265d9;
  --action-hover: #145ec1;
  --action-pressed: #0a4ba0;
  --on-action: #ffffff;
  --focus-ring: #3d84ea80;
  --gold: #dcc184;
  --font-ui: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-display: "Source Serif 4", Georgia, serif;
  --radius-control: 6px;
  --motion-fast: 120ms;
  --ease: cubic-bezier(0.2, 0, 0, 1);
}

* {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  background: var(--surface);
}

/* www-read 16/26; tabular lining figures everywhere. */
body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  padding: 0 16px;
  color: var(--text);
  background: var(--surface);
  font-family: var(--font-ui);
  font-size: 16px;
  line-height: 26px;
  font-variant-numeric: tabular-nums lining-nums;
}

a {
  color: var(--action);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

a:hover {
  color: var(--action-hover);
}

a:focus-visible {
  outline: 2px solid var(--action);
  outline-offset: 2px;
  box-shadow: 0 0 0 6px var(--focus-ring);
}

.site-header,
main,
footer {
  width: min(100%, 640px);
  margin-right: auto;
  margin-left: auto;
}

.site-header {
  padding-top: 24px;
}

/* Lockup A at H = 26px: mark 0.72H, gap 0.3H, Inter wordmark 0.62H;
   first part 700 ink, brand part 500 action blue. */
.brand {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
}

.brand img {
  display: block;
  width: 41px;
  height: 19px;
}

.brand__w {
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: 16px;
  line-height: 1;
  letter-spacing: -0.015em;
}

.brand__w b {
  font-weight: 700;
}

.brand__w span {
  color: var(--action);
  font-weight: 500;
}

main {
  padding: 64px 0;
}

.hero,
.request,
.not-found {
  max-width: 560px;
}

/* Eyebrow 12/16 muted, then the gold 48 x 3 rule over the display title. */
.eyebrow {
  position: relative;
  margin: 0 0 24px;
  padding-bottom: 15px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  line-height: 16px;
}

.eyebrow::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 48px;
  height: 3px;
  background: var(--gold);
  content: "";
}

h1,
h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -0.01em;
  text-wrap: balance;
}

/* www-hero 56/64, 36/44 on a phone. */
h1 {
  font-size: 36px;
  line-height: 44px;
}

/* www-section 36/44, serif-display 28/34 on a phone. */
h2 {
  font-size: 28px;
  line-height: 34px;
}

/* serif-finding 20/28: the one sentence the page exists to say. */
.subhead {
  max-width: 34rem;
  margin: 24px 0 0;
  font-family: var(--font-display);
  font-size: 20px;
  line-height: 28px;
}

.request {
  margin-top: 64px;
}

.request > p {
  max-width: 35rem;
  margin: 16px 0 0;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin-top: 24px;
  padding: 10px 20px;
  border: 0;
  border-radius: var(--radius-control);
  color: var(--on-action);
  background: var(--action);
  font-weight: 600;
  line-height: 24px;
  text-align: center;
  text-decoration: none;
  transition: background-color var(--motion-fast) var(--ease);
}

.button:hover {
  color: var(--on-action);
  background: var(--action-hover);
}

.button:active {
  background: var(--action-pressed);
}

/* t-body 14/21. */
.privacy {
  font-size: 14px;
  line-height: 21px;
}

/* t-cell 13/20 in muted, over a 1 px rule. */
footer {
  padding: 24px 0 32px;
  border-top: 1px solid var(--rule);
  color: var(--muted);
  font-size: 13px;
  line-height: 20px;
}

footer p {
  margin: 0;
}

.not-found {
  min-height: 35vh;
}

@media (min-width: 640px) {
  body {
    padding: 0 24px;
  }

  .site-header {
    padding-top: 32px;
  }

  main {
    padding: 96px 0;
  }

  h1 {
    font-size: 56px;
    line-height: 64px;
  }

  h2 {
    font-size: 36px;
    line-height: 44px;
  }

  .request {
    margin-top: 96px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .button {
    transition: none;
  }
}
