.search-pill,
.search-pill .search-go {
  border-radius: var(--radius-control);
}
:root {
  --radius-control: 10px;
  --surface: var(--paper);
  --soft: var(--paper-2);
  --glass-tint: rgb(255 255 255 / 0.9);
  --glass-shadow: 0 8px 28px rgb(11 42 74 / 0.09);
}
.workspace-sky:after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(180deg, transparent, rgb(214 235 246 / 0.3));
}
.workspace-home {
  gap: 18px;
  justify-content: start;
  max-width: 1240px;
  padding: 20px 4px 30px;
}
.home-heading {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  color: var(--paper);
}
.home-heading .eyebrow {
  margin: 0;
  color: inherit;
}
.home-heading > span {
  font-size: 12px;
}
.home-feature-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 18px;
}
.workspace-welcome {
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: none;
  padding: 32px;
  text-align: left;
  border-radius: var(--radius-tile);
}
.workspace-welcome h1 {
  margin-bottom: 18px;
  font-size: clamp(32px, 3.5vw, 52px);
  line-height: 1.04;
  letter-spacing: -0.045em;
}
.workspace-sub {
  max-width: 40ch;
  margin: 0 0 22px;
  font-size: 15px;
  white-space: normal;
}
.workspace-welcome .search-pill {
  gap: 4px;
  width: 100%;
  padding: 6px;
  margin: 0;
  border-radius: var(--radius-control);
}
.workspace-welcome .search-field {
  padding-left: 10px;
}
.workspace-welcome .search-go {
  padding: 0 16px;
  font-size: 13px;
  white-space: nowrap;
  border-radius: var(--radius-control);
}
:where(.workspace-welcome) .search-field input {
  font-size: 14px;
}
.workspace-welcome .location-action {
  margin: 8px 0 0;
}
.home-help {
  margin: 18px 0 0;
  font-size: 12px;
  color: var(--muted);
}
.home-help a {
  font-weight: 600;
  color: var(--accent);
}
.home-help svg {
  width: 14px;
  height: 14px;
  vertical-align: middle;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
}
.property-open {
  display: grid;
  flex: none;
  place-items: center;
  width: 44px;
  height: 44px;
  font-size: 22px;
  color: var(--paper);
  background: var(--accent);
  border-radius: 50%;
}
.tile-top {
  display: flex;
  align-items: start;
  justify-content: space-between;
}
.tile-arrow {
  font-size: 22px;
  color: var(--muted);
}
.workspace-tile {
  --glass-tint: rgb(255 255 255 / 0.93);
  min-height: 160px;
  padding: 20px;
}
.workspace-tile strong {
  font-size: 19px;
}
.workspace-tile span.tile-line {
  font-size: 13px;
}
.home-support-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.home-member-card,
.home-journey {
  padding: 24px;
  color: var(--ink);
  background: var(--glass-tint);
  border: 1px solid var(--glass-line);
  border-radius: var(--radius-tile);
}
.home-member-card {
  display: flex;
  gap: 18px;
  align-items: start;
  text-decoration: none;
}
.home-member-card .tile-icon {
  flex: none;
}
.home-member-card h2 {
  margin: 0 0 8px;
  font-size: 22px;
  letter-spacing: -0.025em;
}
.home-member-card p {
  margin: 0;
  font-size: 13px;
  color: var(--muted);
}
.home-journey ol {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  padding: 0;
  margin: 16px 0 0;
  list-style: none;
}
.home-journey li > span {
  display: block;
  margin-bottom: 6px;
  font-size: 11px;
  color: var(--accent);
}
.home-journey strong {
  font-size: 15px;
}
.home-journey p {
  margin: 5px 0 0;
  font-size: 12px;
  color: var(--muted);
}
.board {
  gap: 20px;
  max-width: 1240px;
  padding: 20px 4px 0;
}
.board-head {
  max-width: none;
  padding: 24px 28px;
  text-align: left;
  border-radius: var(--radius-tile);
}
.board-head .eyebrow {
  margin-bottom: 10px;
}
.board-head h1 {
  font-size: clamp(26px, 3vw, 38px);
}
.board-tile {
  --glass-tint: rgb(255 255 255 / 0.94);
  min-width: 0;
}
.board-panel {
  justify-content: start;
}
.board-reader {
  max-width: 100%;
}
:where(.board-body) .workspace-foot {
  margin-top: 24px;
}
.board-tile-split {
  align-items: center;
}
.photo-wide img {
  border-radius: var(--radius-inner);
}
.board-enter {
  animation: refined-enter 0.2s ease-out;
}
@keyframes refined-enter {
  from {
    opacity: 0.4;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.member-workspace {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 20px;
  width: 100%;
  max-width: 1240px;
  padding: 0 4px 24px;
  margin: 20px auto;
}
.member-rail {
  position: sticky;
  top: 0;
  align-self: start;
  min-width: 0;
  padding: 18px 12px;
  background: var(--glass-privacy-tint);
  border: 1px solid var(--glass-line);
  border-radius: 20px;
}
.member-identity {
  padding: 8px 10px 20px;
  margin-bottom: 12px;
  overflow-wrap: anywhere;
  border-bottom: 1px solid var(--line);
}
.member-avatar {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin-bottom: 12px;
  font-size: 20px;
  color: var(--accent);
  background: var(--accent-soft);
  border-radius: 50%;
}
.member-identity strong {
  display: block;
  font-size: 14px;
}
.member-identity small {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  color: var(--muted);
}
.member-rail nav {
  display: grid;
  gap: 4px;
}
.member-rail a {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 11px 10px;
  font-size: 13px;
  color: var(--ink-2);
  text-decoration: none;
  border-radius: 10px;
}
.member-rail a[aria-current="page"] {
  font-weight: 650;
  color: var(--accent);
  background: var(--accent-soft);
}
.member-rail svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
}
.member-main {
  min-width: 0;
}
.member-heading {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  padding: 24px;
  margin-bottom: 16px;
  background: var(--glass-privacy-tint);
  border: 1px solid var(--glass-line);
  border-radius: 20px;
}
.member-heading h1 {
  margin: 0 0 6px;
  font-size: 30px;
  letter-spacing: -0.035em;
}
.member-heading p {
  margin: 0;
  font-size: 13px;
  color: var(--muted);
}
.member-content {
  display: grid;
  gap: 16px;
}
.member-content .board-tile {
  min-height: 0;
}
.member-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.member-kpi {
  display: block;
  padding: 20px;
  color: var(--ink);
  text-decoration: none;
  background: var(--glass-privacy-tint);
  border: 1px solid var(--glass-line);
  border-radius: 16px;
}
.member-kpi span {
  display: block;
  margin-bottom: 15px;
  font-size: 12px;
  color: var(--muted);
}
.member-kpi strong {
  font-size: 28px;
  font-weight: 500;
  letter-spacing: -0.03em;
}
.member-banner {
  display: flex;
  gap: 18px;
  align-items: center;
  padding: 24px;
  background: var(--glass-privacy-tint);
  border: 1px solid var(--glass-line);
  border-radius: 20px;
}
.member-banner h2 {
  margin: 0 0 8px;
  font-size: 22px;
  letter-spacing: -0.03em;
}
.member-banner p {
  margin: 0 0 16px;
  font-size: 13px;
  color: var(--muted);
}
.member-empty {
  padding: 30px;
  background: var(--glass-privacy-tint);
  border: 1px solid var(--glass-line);
  border-radius: 20px;
}
.member-empty h2 {
  font-size: 22px;
  letter-spacing: -0.025em;
}
.member-empty p {
  font-size: 14px;
  color: var(--muted);
}
.member-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}
.member-filters input {
  flex: 1;
  min-width: 0;
  padding: 12px 16px;
  font: inherit;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
}
.member-content .request-card {
  padding: 24px;
}
.member-content .request-card h2 {
  font-size: 20px;
}
.member-content .request-notes {
  padding-top: 16px;
  margin-top: 16px;
  border-top: 1px solid var(--line);
}
.member-content .energy-panel {
  background: var(--glass-privacy-tint);
  border-color: var(--glass-line);
}
@media (min-width: 900px) {
  .mainnav {
    gap: 22px;
  }
  .mainnav a {
    font-size: 13px;
  }
  .workspace-window {
    right: max(24px, calc((100vw - 1320px) / 2));
    left: max(24px, calc((100vw - 1320px) / 2));
  }
}
@media (max-width: 1000px) {
  .home-feature-grid {
    grid-template-columns: 1.1fr 1fr;
  }
  .workspace-welcome {
    padding: 24px;
  }
  .workspace-welcome .search-pill {
    flex-direction: column;
    align-items: stretch;
  }
  .workspace-welcome .search-go {
    width: 100%;
    min-height: 44px;
  }
  .home-support-grid {
    grid-template-columns: 1fr;
  }
  .member-workspace {
    grid-template-columns: 160px minmax(0, 1fr);
  }
}
@media (max-width: 760px) {
  .workspace-home,
  .board {
    gap: 12px;
    padding: 12px 2px 24px;
  }
  .home-heading {
    padding: 4px;
  }
  .home-heading > span {
    display: none;
  }
  .home-heading .eyebrow {
    font-size: 10px;
  }
  .home-feature-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .workspace-welcome {
    padding: 24px 20px;
  }
  .workspace-welcome h1 {
    font-size: 38px;
  }
  .workspace-sub {
    display: block;
    margin-bottom: 20px;
    font-size: 14px;
    white-space: normal;
  }
  .workspace-welcome .energy-kicker {
    display: block;
  }
  .workspace-tile {
    gap: 20px;
    min-height: 152px;
    padding: 16px;
  }
  .workspace-tile strong {
    font-size: 17px;
  }
  .workspace-tile span.tile-line {
    display: block;
    font-size: 12px;
  }
  .home-member-card,
  .home-journey {
    padding: 20px;
  }
  .board-head {
    padding: 20px;
  }
  .board-head .eyebrow {
    display: block;
  }
  .board-lede {
    display: block;
    font-size: 14px;
    white-space: normal;
  }
  .workspace-foot {
    display: block;
    font-size: 11px;
  }
  .workspace-foot .foot-links {
    display: block;
    margin-top: 8px;
  }
  .member-workspace {
    grid-template-columns: 1fr;
    gap: 12px;
    margin: 12px auto;
  }
  .member-rail {
    position: static;
    min-width: 0;
    padding: 12px;
  }
  .member-identity {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 0 0 12px;
  }
  .member-avatar {
    width: 32px;
    height: 32px;
    margin: 0;
    font-size: 16px;
  }
  .member-rail nav {
    display: flex;
    gap: 4px;
    padding-bottom: 2px;
    overflow-x: auto;
  }
  .member-rail a {
    flex: none;
    padding: 10px;
    font-size: 12px;
  }
  .member-rail svg {
    width: 16px;
    height: 16px;
  }
  .member-heading {
    padding: 20px;
  }
  .member-heading h1 {
    font-size: 26px;
  }
  .member-heading .btn {
    padding: 10px;
    font-size: 12px;
  }
  .member-kpis {
    gap: 8px;
  }
  .member-kpi {
    padding: 14px;
  }
  .member-kpi strong {
    font-size: 22px;
    overflow-wrap: anywhere;
  }
  .member-kpi span {
    font-size: 11px;
  }
  .member-banner {
    padding: 20px;
  }
  .member-content .request-card {
    padding: 18px;
  }
  .member-content .request-card-head {
    flex-wrap: wrap;
  }
  .member-content .request-card h2 {
    font-size: 18px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .board-enter {
    animation: none;
  }
}

.home-map-tile {
  position: relative;
  min-height: 410px;
  background: var(--paper-2);
  border: 1px solid var(--glass-line);
  border-radius: var(--radius-tile);
  isolation: isolate;
}
.home-map-canvas {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: inherit;
}
.home-map-status {
  position: absolute;
  top: 16px;
  right: 16px;
  left: 16px;
  z-index: 2;
  padding: 12px;
  margin: 0;
  font-size: 13px;
  background: var(--glass-privacy-tint);
  border-radius: 10px;
}
.home-map-controls {
  position: absolute;
  top: 16px;
  right: 16px;
  display: grid;
  gap: 4px;
}
.home-map-controls button {
  width: 44px;
  height: 44px;
  font-size: 22px;
  color: var(--ink);
  cursor: pointer;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-control);
}
.home-map-caption {
  position: absolute;
  right: 14px;
  bottom: 28px;
  left: 14px;
  padding: 18px;
  background: var(--glass-privacy-tint);
  border: 1px solid var(--glass-line);
  border-radius: var(--radius-inner);
  backdrop-filter: blur(var(--glass-blur));
}
.home-map-caption h2 {
  margin: 0 0 8px;
  font-size: 23px;
  line-height: 1.15;
  letter-spacing: -0.03em;
}
.home-map-caption p {
  margin: 0;
  font-size: 12px;
  color: var(--muted);
}
.home-map-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}
.home-map-caption .home-save-note {
  margin-top: 10px;
  font-size: 11px;
}
@media (max-width: 760px) {
  .home-map-tile {
    min-height: 370px;
  }
  .home-map-caption {
    padding: 16px;
  }
  .home-map-caption h2 {
    font-size: 20px;
  }
}

.home-map-tile:has([data-customize]) {
  min-height: 520px;
}

.workspace-tile,
.board-tile,
.sk-tile {
  border-radius: var(--radius-tile);
}
.search-pill.is-searching .search-go svg {
  animation: search-spin 1s linear infinite;
}
@keyframes search-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .search-pill.is-searching .search-go svg {
    opacity: 0.6;
    animation: none;
  }
}

:root {
  --radius-tile: 24px;
  --radius-inner: 18px;
}
.brand-wordmark {
  font-family: var(--text);
  font-size: 19px;
  font-weight: 650;
  color: var(--ink);
  letter-spacing: 0.1em;
  white-space: nowrap;
  text-decoration: none;
  border: 0;
  box-shadow: none;
}
body[data-workspace="home"] {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr) auto;
  height: 100dvh;
  background: var(--paper-2);
}
body[data-workspace="home"] .topbar {
  position: relative;
  inset: auto;
  grid-row: 1;
  margin: 14px 24px 0;
}
body[data-workspace="home"] .workspace-window {
  position: relative;
  inset: auto;
  grid-row: 2;
  min-height: 0;
  margin: 0 24px;
}
body[data-workspace="home"] #siteScroll {
  height: 100%;
  padding: 0;
  overflow: visible;
}
body[data-workspace="home"] #app {
  height: 100%;
  min-height: 0;
}
@media (max-width: 899px) {
  body[data-workspace="home"] .tabbar {
    position: relative;
    inset: auto;
    grid-row: 3;
    width: calc(100% - 32px);
    max-width: 560px;
    min-height: 58px;
    margin: 0 auto max(12px, env(safe-area-inset-bottom));
  }
  .tabbar a {
    justify-content: center;
    min-height: 44px;
    font-size: 12px;
    text-align: center;
  }
  .tabbar a span {
    max-width: 13ch;
    line-height: 1.2;
  }
}
@media (max-width: 760px) {
  body[data-workspace="home"] .topbar {
    margin: 12px 16px 0;
  }
  body[data-workspace="home"] .workspace-window {
    margin: 0 16px;
  }
  .brand-wordmark {
    font-size: 16px;
    letter-spacing: 0.08em;
  }
}

.member-heading .btn,
.brand,
.member-rail a,
.planner-handle,
.find-location,
.office-block > .text-link {
  min-height: 44px;
}
.office-block > .text-link {
  display: inline-flex;
  align-items: center;
}
.check {
  align-items: center;
  min-height: 44px;
}
.check input[type="checkbox"] {
  position: relative;
  display: grid;
  flex: 0 0 44px;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  margin: 0;
  appearance: none;
  cursor: pointer;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.check input[type="checkbox"]::before {
  width: 18px;
  height: 18px;
  content: "";
  background: var(--paper);
  border: 1px solid var(--muted);
  border-radius: 4px;
}
.check input[type="checkbox"]:checked::before {
  background: var(--accent);
  border-color: var(--accent);
}
.check input[type="checkbox"]:checked::after {
  position: absolute;
  width: 5px;
  height: 9px;
  content: "";
  border: solid var(--paper);
  border-width: 0 2px 2px 0;
  transform: translateY(-1px) rotate(45deg);
}

/* The Vital mark sits beside the wordmark everywhere the brand shows. */
.brand-wordmark {
  gap: 10px;
}
.brand-mark {
  flex: none;
  width: 46px;
  height: 26px;
}
/* Six tabs need a tighter bar between the phone layout and wide screens. */
@media (max-width: 1260px) and (min-width: 901px) {
  .topbar-inner {
    gap: 10px;
  }
  .mainnav {
    gap: 0;
  }
  .mainnav a {
    padding: 8px 9px;
    font-size: 14px;
    white-space: nowrap;
  }
  .nav-cta {
    margin-left: 4px;
    white-space: nowrap;
  }
}
@media (max-width: 1170px) and (min-width: 901px) {
  .topbar-inner {
    gap: 6px;
    padding: 0 14px;
  }
  .brand-wordmark {
    gap: 7px;
    font-size: 15px;
    letter-spacing: 0.06em;
  }
  .brand-mark {
    width: 39px;
    height: 22px;
  }
  .mainnav a {
    padding: 8px 6px;
    font-size: 13px;
  }
  .nav-cta {
    padding-right: 12px;
    padding-left: 12px;
    font-size: 13px;
  }
}
@media (max-width: 1000px) and (min-width: 901px) {
  .mainnav a {
    padding: 8px 4px;
    font-size: 12.5px;
  }
}
@media (max-width: 940px) and (min-width: 901px) {
  .mainnav a {
    padding: 8px 3px;
    font-size: 12px;
  }
  .nav-cta {
    padding-right: 9px;
    padding-left: 9px;
  }
}
/* The narrowest phones: the mark alone in the bar, so the menu, theme and
   account buttons fit beside it. refinement.css loads after the inline
   styles, so this rule has to live here. */
@media (max-width: 389px) {
  .brand-wordmark {
    gap: 0;
    font-size: 0;
  }
}
/* Every link and disclosure on a phone is a 44 px target: the FAQ questions
   and the footer line under every board. */
.faq-list summary {
  align-items: center;
  min-height: 44px;
}
.workspace-foot a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
}

/* The workspace window is an invisible frame on every page and in both
   themes: no tint, no border, no shadow, no blur and no title bar. It keeps
   its box (position, insets, max width, dock room) and .workspace-scroll stays
   the scroller, so tiles, boards and the planner keep their shape and size and
   carry their own surfaces. :root body[...] outranks the dark theme and the
   per-mode rules that sit in the inline copy until the next build. */
:root body[data-workspace] .workspace-window,
:root body:not([data-workspace]) .workspace-window {
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
:root body[data-workspace] .workspace-window-head,
:root body:not([data-workspace]) .workspace-window-head {
  display: none;
}

/* The home map tile's Google foot. Maps Platform terms keep the Google logo
   and the imagery copyright visible, so the Terms and Report a problem links
   come off (each sits in a .gm-style-cc block with an anchor; the copyright
   block has none) and what stays is small and faint. Only Google's own DOM
   inside .gm-style is touched: the pin caption and our zoom buttons sit
   outside it. The logo keeps its size, only its opacity drops. Google writes
   inline styles on these nodes, so these declarations carry !important. */
.home-map-tile .gm-style .gm-style-cc:has(a) {
  display: none !important;
}
.home-map-tile .gm-style .gm-style-cc {
  opacity: 0.55 !important;
}
.home-map-tile .gm-style .gm-style-cc,
.home-map-tile .gm-style .gm-style-cc div,
.home-map-tile .gm-style .gm-style-cc span,
.home-map-tile .gm-style .gm-style-cc button {
  font-size: 9px !important;
}
.home-map-tile .gm-style .gm-style-cc > div:first-child > div {
  background: none !important;
}
.home-map-tile .gm-style a[href^="https://maps.google.com/maps"] {
  opacity: 0.65 !important;
}
.home-map-tile .gm-style .gmnoprint:not(.gm-style-cc):not(:has(.gm-style-cc)) {
  display: none !important;
}

/* About: the source and award links meet a 44 px tap target on a phone. */
.source-link a,
.board-panel > a.text-link[rel="noopener"] {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

/* Contact (VE-9): the consultation form's booking pair. The request form's
   input rule would stretch the radios to full width, so they keep the
   planner's size; each choice is a 44 px row. The tiles under the form get a
   smaller heading. */
.request-form .next-step {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  gap: 8px;
}
.request-form .next-step label {
  align-items: center;
  min-height: 44px;
  font-weight: 400;
}
.request-form .next-step input[type="radio"] {
  flex: none;
  width: 18px;
  height: 18px;
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
  accent-color: var(--accent);
}
.request-form .next-step input[type="radio"]:focus {
  box-shadow: none;
}
.contact-more {
  margin: 8px 0 0;
  font: 600 15px/1.3 var(--disp);
  letter-spacing: -0.01em;
  color: var(--ink-2);
}

/* Services board (VE-15): nine link tiles in three columns on desktop; on two
   columns the ninth spans the row, so no tile sits alone. */
@media (min-width: 900px) {
  .services-board .board-tiles {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 899px) {
  .services-board .board-tiles > a.board-tile:nth-of-type(9) {
    grid-column: 1 / -1;
  }
}

/* Article filter chips meet a 44 px tap target. */
.article-chips .chip {
  min-height: 44px;
}

/* Tap targets (VE-15): the hit area grows by padding, the glyph and type stay. */
.grid-brief fieldset label {
  min-height: 44px;
}
.service-reader .cta-band p a,
.incentive-card > a,
.incentive-card p > a,
.incentive-note > a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.incentive-questions summary {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding-block: 10px;
  box-sizing: border-box;
}

/* Find us: one office card holding the address, hours, phone and email. */
.find-office-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 24px;
  align-items: start;
}
.find-office-list {
  display: grid;
  gap: 8px;
  margin: 0;
}
.find-office-list div {
  display: grid;
  gap: 2px;
}
.find-office-list dt {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}
.find-office-list dd {
  margin: 0;
  font-size: 15px;
}
.find-office-list dd .text-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  overflow-wrap: anywhere;
}
@media (max-width: 760px) {
  .find-office-facts {
    grid-template-columns: 1fr;
  }
}
/* Contact: the follow links in the tiles under the form are 44 px tall. */
.board-tiles .social-row a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

/* Knowledge center lede link: a 44 px hit area without growing the line
   (VE-15). The padding is invisible; the negative margin keeps the lede's
   height. */
.board-lede a[data-link][href="incentives"] {
  display: inline-block;
  padding: 12px 0;
  margin: -12px 0;
}

/* A map canvas is paper until its tiles paint (VE-7): never a grey or black
   hole on a slow phone. */
.home-map-canvas {
  background: var(--paper-2);
}

/* Tap targets the platform measures on the input itself (release 7.1):
   the planner's and consultation form's booking radios, and the service
   page priority boxes, draw an 18 px control inside a 44 px hit area. */
.next-step input[type="radio"],
.order-form .next-step input[type="radio"] {
  position: relative;
  display: grid;
  flex: 0 0 44px;
  place-items: center;
  width: 44px;
  height: 44px;
  min-width: 44px;
  padding: 0;
  margin: -12px 0 -12px -12px;
  appearance: none;
  cursor: pointer;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.next-step input[type="radio"]::before {
  width: 18px;
  height: 18px;
  content: "";
  background: var(--paper);
  border: 1px solid var(--muted);
  border-radius: 50%;
}
.next-step input[type="radio"]:checked::before {
  border: 5px solid var(--accent);
  background: var(--paper);
}
.next-step label {
  align-items: center;
}
.grid-brief label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
}
.grid-brief input[type="checkbox"] {
  position: relative;
  display: grid;
  flex: 0 0 44px;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  margin: 0 0 0 -12px;
  appearance: none;
  cursor: pointer;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.grid-brief input[type="checkbox"]::before {
  width: 20px;
  height: 20px;
  content: "";
  background: var(--paper);
  border: 1px solid var(--muted);
  border-radius: 5px;
}
.grid-brief input[type="checkbox"]:checked::before {
  background: var(--accent);
  border-color: var(--accent);
}
.grid-brief input[type="checkbox"]:checked::after {
  position: absolute;
  width: 5px;
  height: 10px;
  content: "";
  border: solid var(--paper);
  border-width: 0 2px 2px 0;
  transform: translateY(-1px) rotate(45deg);
}
.grid-brief input[type="checkbox"]:focus-visible::before,
.next-step input[type="radio"]:focus-visible::before {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
/* The footer's one-letter social link is as wide as it is tall. */
.board-tiles .social-row a {
  min-width: 44px;
  justify-content: center;
}
/* The service areas search box reaches 44 px. */
.area-search input {
  min-height: 44px;
  padding-top: 0;
  padding-bottom: 0;
}
.area-search > div {
  padding: 0 6px 0 0;
  align-items: center;
}

/* The planner's own radio rule is more specific; match it so the 44 px hit
   area holds on the planner and the consultation form alike. */
.order-form .next-step input[type="radio"],
.request-form .next-step input[type="radio"] {
  width: 44px;
  height: 44px;
  min-width: 44px;
  margin: -12px 0 -12px -12px;
  padding: 0;
  border: 0;
}
/* Service areas: the county list, the footnote links, the phone and email
   lines and the address box all reach 44 px on a phone. */
.areas-board li a[data-link] {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.areas-board a[href^="http"],
.areas-board a[href^="tel:"],
.areas-board a[href^="mailto:"] {
  display: inline-block;
  padding: 13px 0;
  margin: -13px 0;
}
.areas-board #hero-address {
  min-height: 44px;
}
.areas-board :where(p, div, nav, ul, li, span) > a[data-link][href^="service-areas/"] {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.areas-board a[data-link][href^="service-areas/"]:not(svg a) {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
