/* ==========================================================================
   Accessibility module — main site, dashboards and portal.
   Part 1: baseline WCAG 2.2 AA fixes that apply to everyone.
   Part 2: user-selectable options driven by classes on <html>.
   Part 3: the accessibility panel UI.
   ========================================================================== */

/* ── Part 1: baseline ─────────────────────────────────────────────────── */

/* Skip link (2.4.1) */
.a11y-skip {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 100000;
  padding: 12px 20px;
  background: #fff;
  color: #144a3a;
  font-weight: 700;
  border-radius: 8px;
  border: 3px solid #144a3a;
  text-decoration: none;
  transform: translateY(-200%);
}
.a11y-skip:focus { transform: translateY(0); }

main:focus, #main-content:focus { outline: none; }

/* Visible focus on every background (2.4.7, 2.4.11, 1.4.11):
   blue ring + white halo reads on both light and dark surfaces. */
:where(a, button, input, select, textarea, summary, [tabindex], [role="button"]):focus-visible {
  outline: 3px solid #0b57d0;
  outline-offset: 2px;
  box-shadow: 0 0 0 2px #fff;
}

/* Respect the OS motion preference (2.3.3, 2.2.2) */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    animation-delay: 0s !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* Respect the OS contrast preference */
@media (prefers-contrast: more) {
  :root { --gray-400: #475569; --gray-500: #334155; --gray-600: #1e293b; }
  a { text-decoration: underline; }
}

/* ── Part 2: user options ─────────────────────────────────────────────── */

/* Text spacing — WCAG 1.4.12 values */
html.a11y-spacing body *:not(#a11y-root):not(#a11y-root *):not(i):not(svg *) {
  line-height: 1.5 !important;
  letter-spacing: 0.12em !important;
  word-spacing: 0.16em !important;
}
html.a11y-spacing body p { margin-bottom: 2em !important; }

/* Dyslexia-friendly font (Atkinson Hyperlegible, loaded on demand) */
html.a11y-dyslexia body,
html.a11y-dyslexia body *:not(i):not(.fa):not(.fas):not(.far):not(.fab):not(.fa-solid):not(.fa-regular):not(.fa-brands) {
  font-family: "Atkinson Hyperlegible", "Verdana", "Arial", sans-serif !important;
}

/* Left-aligned text */
html.a11y-align body *:not(#a11y-root):not(#a11y-root *) { text-align: left !important; }

/* Stop motion */
html.a11y-motion { scroll-behavior: auto !important; }
html.a11y-motion *, html.a11y-motion *::before, html.a11y-motion *::after {
  animation-duration: 0.001ms !important;
  animation-iteration-count: 1 !important;
  animation-delay: 0s !important;
  transition-duration: 0.001ms !important;
  scroll-behavior: auto !important;
}

/* Highlight links */
html.a11y-links a:not(#a11y-root a) {
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 3px !important;
  background: #fff3a3 !important;
  color: #0b2e24 !important;
  outline: 2px solid #0b2e24;
  outline-offset: 1px;
}

/* Stronger focus */
html.a11y-focus :focus {
  outline: 4px solid #0b57d0 !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 3px #fff, 0 0 0 7px #000 !important;
}

/* Large cursor — three shapes so the cursor still tells people what they are over:
   arrow (default), hand (anything clickable) and text beam (typing fields).
   The hand rule for every selector the site styles with cursor:pointer is generated
   (see the "generated: large-cursor" block at the end of this file). */
html.a11y-cursor {
  --a11y-cursor-arrow: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'><path d='M4 2l16 9-7 2-3 7z' fill='black' stroke='white' stroke-width='1.5' stroke-linejoin='round'/></svg>") 8 4, auto;
  --a11y-cursor-hand: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'><path d='M8.5 3.4a1.5 1.5 0 0 1 3 0V10l.5-.1a1.4 1.4 0 0 1 1.7.7l.5-.1a1.4 1.4 0 0 1 1.7 1l.4-.1a1.4 1.4 0 0 1 1.7 1.3V16c0 3-2 5.2-5 5.2h-1.3c-1.7 0-2.9-.7-3.8-1.9L4.2 15a1.4 1.4 0 0 1 2.1-1.8l2.2 1.8z' fill='white' stroke='black' stroke-width='1.3' stroke-linejoin='round'/></svg>") 20 7, pointer;
  --a11y-cursor-text: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'><path d='M8.5 3h7v1.6h-2.7v14.8h2.7V21h-7v-1.6h2.7V4.6H8.5z' fill='black' stroke='white' stroke-width='1' stroke-linejoin='round'/></svg>") 24 24, text;
}
html.a11y-cursor, html.a11y-cursor * { cursor: var(--a11y-cursor-arrow) !important; }
html.a11y-cursor :is(a[href], button:not(:disabled), summary, label, select, input[type="checkbox"], input[type="radio"],
  input[type="submit"], input[type="button"], input[type="range"], [role="button"], [role="tab"], [role="link"],
  [role="switch"], [role="menuitem"], [onclick], [tabindex]:not([tabindex="-1"]), .leaflet-interactive),
html.a11y-cursor :is(a[href], button:not(:disabled), summary, label, select, [role="button"], [role="tab"],
  [role="link"], [role="switch"], [role="menuitem"], [onclick]) * { cursor: var(--a11y-cursor-hand) !important; }
html.a11y-cursor :is(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="range"], [type="file"]),
  textarea, [contenteditable="true"]) { cursor: var(--a11y-cursor-text) !important; }

/* Hide images (all pictures on the site are <img>; gradients and colours are left alone
   so buttons and cards stay readable) */
html.a11y-noimg img, html.a11y-noimg picture, html.a11y-noimg video { display: none !important; }

/* Dark theme: inverted page, images/video flipped back so they look normal */
html.a11y-contrast-dark img,
html.a11y-contrast-dark video,
html.a11y-contrast-dark picture,
html.a11y-contrast-dark iframe {
  filter: invert(1) hue-rotate(180deg);
}

/* High contrast — dark (white on black, yellow links) */
html.a11y-contrast-hc-dark body *:not(#a11y-root):not(#a11y-root *):not([style*="background"]) {
  background-color: #000 !important;
  background-image: none !important;
  color: #fff !important;
  border-color: #fff !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
html.a11y-contrast-hc-dark body { background: #000 !important; }
html.a11y-contrast-hc-dark a:not(#a11y-root a), html.a11y-contrast-hc-dark a * { color: #ffff00 !important; text-decoration: underline !important; }
html.a11y-contrast-hc-dark .btn, html.a11y-contrast-hc-dark button:not(#a11y-root button) {
  border: 2px solid #ffff00 !important;
}
html.a11y-contrast-hc-dark svg:not(#a11y-root svg), html.a11y-contrast-hc-dark i { color: #fff !important; fill: currentColor; }

/* High contrast — light (black on white, blue links) */
html.a11y-contrast-hc-light body *:not(#a11y-root):not(#a11y-root *):not([style*="background"]) {
  background-color: #fff !important;
  background-image: none !important;
  color: #000 !important;
  border-color: #000 !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
html.a11y-contrast-hc-light body { background: #fff !important; }
html.a11y-contrast-hc-light a:not(#a11y-root a), html.a11y-contrast-hc-light a * { color: #0000cc !important; text-decoration: underline !important; }
html.a11y-contrast-hc-light .btn, html.a11y-contrast-hc-light button:not(#a11y-root button) {
  border: 2px solid #000 !important;
}

/* Reading ruler */
#a11y-ruler {
  position: fixed;
  left: 0;
  width: 100%;
  height: 3.2rem;
  top: 40%;
  z-index: 99990;
  pointer-events: none;
  border-top: 3px solid #ffd400;
  border-bottom: 3px solid #ffd400;
  box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.5);
}
#a11y-ruler[hidden] { display: none; }

/* ── Part 3: panel UI (self-contained styling) ────────────────────────── */

#a11y-root, #a11y-root * { box-sizing: border-box; }
#a11y-root { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
#a11y-root {
  font-family: "Source Sans 3", -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 16px;
  line-height: 1.45;
  letter-spacing: normal;
  word-spacing: normal;
}

.a11y-fab {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 110;             /* above the sticky site nav (100) and dashboard sidebar (95); below dashboard modals (120+) */
  width: 52px;
  height: 52px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 3px solid #fff;
  background: #144a3a;
  color: #fff;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
  transition: transform 0.15s ease;
}
.a11y-fab:hover { transform: scale(1.06); background: #1a5f4a; }
.a11y-fab svg { width: 30px; height: 30px; fill: currentColor; }

.a11y-panel {
  position: fixed;
  right: 20px;
  bottom: 84px;
  z-index: 111;
  width: 400px;
  max-width: calc(100vw - 40px);
  max-height: calc(100vh - 84px - 76px);   /* stops below the 64px site nav so it never covers it */
  max-height: calc(100dvh - 84px - 76px);
  display: flex;
  flex-direction: column;
  background: #fff;
  color: #1e293b;
  border-radius: 18px;
  border: 1px solid #d5dcd8;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.28);
  overflow: hidden;
  overflow: clip;   /* the box itself must never scroll; only .a11y-body does */
}
.a11y-panel[hidden] { display: none; }

.a11y-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px;
  background: linear-gradient(135deg, #144a3a, #1a5f4a);
  color: #fff;
}
.a11y-head h2 { margin: 0; font-size: 18px; font-weight: 700; color: #fff; }
.a11y-close {
  width: 40px; height: 40px;
  border: 0; border-radius: 10px;
  background: rgba(255, 255, 255, 0.18);
  color: #fff; font-size: 24px; line-height: 1; cursor: pointer;
}
.a11y-close:hover { background: rgba(255, 255, 255, 0.3); }

.a11y-body {
  padding: 8px 18px 6px; overflow-y: auto; flex: 1 1 auto; min-height: 0; overscroll-behavior: contain;
  /* scroll shadows: a soft edge appears only where more content is hidden */
  background:
    linear-gradient(#fff 30%, rgba(255,255,255,0)) top / 100% 24px no-repeat local,
    linear-gradient(rgba(255,255,255,0), #fff 70%) bottom / 100% 24px no-repeat local,
    radial-gradient(farthest-side at 50% 0, rgba(20,74,58,.28), rgba(74,15,106,0)) top / 100% 10px no-repeat scroll,
    radial-gradient(farthest-side at 50% 100%, rgba(20,74,58,.28), rgba(74,15,106,0)) bottom / 100% 10px no-repeat scroll;
}
.a11y-head, .a11y-note, .a11y-foot { flex-shrink: 0; touch-action: none; }
.a11y-panel { overscroll-behavior: contain; }
.a11y-group { border: 0; padding: 14px 0; margin: 0; border-bottom: 1px solid #e3e8e5; }
.a11y-group:last-of-type { border-bottom: 0; }
.a11y-group legend { float: left; width: 100%; }
.a11y-group legend + * { clear: both; }
.a11y-group legend, .a11y-group-title {
  padding: 0; margin: 0 0 10px;
  font-size: 12px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: #1a5f4a;
}

.a11y-seg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.a11y-seg-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
/* The visible span sits on top of the hidden input, so the pointer cursor must be on the label and span too */
.a11y-seg label, .a11y-seg span { cursor: pointer; }
.a11y-seg label { position: relative; display: block; min-width: 0; }
.a11y-seg input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.a11y-seg span {
  display: flex; align-items: center; justify-content: center; text-align: center;
  min-height: 44px; padding: 8px 6px;
  border: 2px solid #d5dcd8; border-radius: 10px;
  font-size: 14px; font-weight: 600; background: #fff; color: #1e293b;
}
.a11y-seg input:checked + span { border-color: #1a5f4a; background: #e8f5f0; color: #144a3a; }
.a11y-seg span { position: relative; }
.a11y-seg-4 span { padding-left: 2px; padding-right: 2px; font-size: 13px; }
.a11y-seg input:checked + span::after { content: "\2713"; position: absolute; top: 1px; right: 4px; font-size: 11px; font-weight: 800; color: #1a5f4a; }
.a11y-seg input:focus-visible + span { outline: 3px solid #0b57d0; outline-offset: 2px; }

.a11y-switch {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  position: relative; min-height: 44px; padding: 6px 0; cursor: pointer; font-size: 15px; font-weight: 500;
}
.a11y-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.a11y-track {
  position: relative; flex-shrink: 0; width: 46px; height: 26px; border-radius: 99px;
  background: #6b7280; transition: background 0.15s;
}
.a11y-track::after {
  content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%;
  background: #fff; transition: transform 0.15s;
}
.a11y-switch input:checked + .a11y-track { background: #1a5f4a; }
.a11y-switch input:checked + .a11y-track::after { transform: translateX(20px); }
.a11y-switch input:focus-visible + .a11y-track { outline: 3px solid #0b57d0; outline-offset: 2px; }

.a11y-foot { display: flex; gap: 10px; padding: 14px 18px; border-top: 1px solid #e3e8e5; background: #f6f9f7; }
.a11y-btn {
  flex: 1; min-height: 44px; padding: 10px 14px; border-radius: 10px; font: inherit; font-weight: 700; cursor: pointer;
  border: 2px solid #1a5f4a; background: #fff; color: #144a3a;
}
.a11y-btn:hover { background: #e8f5f0; }
.a11y-note { margin: 0; padding: 0 18px 12px; font-size: 12px; color: #475569; background: #f6f9f7; }

/* Hide the floating button while something else owns the screen: open menus, the filter drawer,
   modals and the guided tour. (The panel itself stays usable if it is already open.) */
html:has(.site-nav.is-open) .a11y-fab,
html:has(body.nav-open) .a11y-fab,
html:has(body.tour-active) .a11y-fab,
html:has(.drawer.show) .a11y-fab,
html:has(.fmodal-mask.show) .a11y-fab,
html:has(.pdf-modal-mask.show) .a11y-fab,
html:has(.cs-modal:not([hidden])) .a11y-fab { display: none; }

/* Mobile: smaller button tucked into the corner; the panel opens as a bottom sheet. */
@media (max-width: 768px) {
  .a11y-fab { right: 12px; bottom: 12px; width: 44px; height: 44px; border-width: 2px; }
  .a11y-fab svg { width: 26px; height: 26px; }
  .a11y-panel {
    left: 8px; right: 8px; bottom: 64px;
    width: auto; max-width: none;
    max-height: calc(100vh - 64px - 76px);
    max-height: calc(100dvh - 64px - 76px);
  }
}

@media (prefers-reduced-motion: reduce) { .a11y-fab, .a11y-track, .a11y-track::after { transition: none; } }


/* ── GM-specific ──────────────────────────────────────────────────────── */

/* Dark theme: leave the Leaflet map tiles inverted (a dark basemap) rather than flipping them back. */
html.a11y-contrast-dark .leaflet-tile { filter: none; }

/* High-contrast modes: elements coloured inline (chart legend keys etc.) keep their colour — it carries meaning. */
/* High-contrast modes strip backgrounds, so keep chart canvases and map panes legible on the flat surface. */
html.a11y-contrast-hc-dark canvas { background-color: #fff !important; filter: none; }
html.a11y-contrast-hc-light canvas { background-color: #fff !important; }
html.a11y-contrast-hc-dark .leaflet-container { background: #000 !important; }

/* ── Large text: reflow safety (1.4.10) ───────────────────────────────── */
/* Grid/flex children default to min-width:auto and refuse to shrink below their content. */
html.a11y-bigtext .grid { grid-template-columns: minmax(0, 1fr); }
html.a11y-bigtext :is(.block, .kpi, .kpis > *, .app > .main, .main, .content) { min-width: 0; }
/* Links, buttons and calls to action may wrap their label instead of pushing the page sideways. */
html.a11y-hugetext :is(a, button):not(.a11y-fab) { white-space: normal; min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
html.a11y-hugetext .report-actions { grid-template-columns: minmax(0, 1fr); }
html.a11y-hugetext :is(.obs-about__links, .obs-about__inner) { min-width: 0; max-width: 100%; }
html.a11y-bigtext :is(h1, h2, h3, p, li, td, th, .tb-title) { overflow-wrap: anywhere; }

/* >>> generated: large-text layouts (tools/gen_a11y_bigtext.py) >>> */
/* static/css/main.css @ 820px */
@media (min-width: 821px) {
html.a11y-bigtext .location-main--split {
        grid-template-columns: 1fr;
        gap: 1.25rem; }
html.a11y-bigtext .lio-side {
        align-items: center;
        text-align: center; }
html.a11y-bigtext .lio-side__lead {
        max-width: 42ch; }
html.a11y-bigtext .lio-actions {
        max-width: 360px;
        margin-inline: auto; }
html.a11y-bigtext .gm-map-box--lio {
        max-width: min(420px, 100%);
        margin-inline: auto;
        min-height: min(42vh, 380px);
        max-height: none; }
}

/* static/css/main.css @ 760px */
@media (min-width: 761px) {
html.a11y-bigtext .obs-about__grid {
        grid-template-columns: 1fr; }
}

/* static/css/main.css @ 960px */
@media (min-width: 961px) {
html.a11y-bigtext .landing .page {
        height: auto;
        min-height: calc(100dvh - var(--nav-h));
        overflow: visible; }
html.a11y-bigtext .landing-split {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto; }
html.a11y-bigtext .map-panel {
        order: -1;
        min-height: min(52vh, 420px); }
html.a11y-bigtext .gm-map {
        max-height: min(48vh, 400px);
        flex: none;
        height: auto; }
html.a11y-bigtext .logo-grid--partners {
        grid-template-columns: repeat(4, 1fr);
        grid-template-rows: none;
        flex: none; }
html.a11y-bigtext .logo-card .logo-img {
        max-height: 44px; }
html.a11y-bigtext .site-nav__toggle {
        display: inline-flex; }
html.a11y-bigtext .site-nav__panel {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        margin: 0;
        padding: 0.75rem 1rem 1rem;
        background: var(--cream);
        border-bottom: 1px solid var(--border);
        box-shadow: var(--shadow-md); }
html.a11y-bigtext .site-nav.is-open .site-nav__panel {
        display: block; }
html.a11y-bigtext .site-nav__links {
        flex-direction: column;
        align-items: stretch;
        gap: 0.25rem; }
html.a11y-bigtext .site-nav__dropdown {
        width: 100%; }
html.a11y-bigtext .site-nav__menu {
        position: static;
        min-width: 0;
        max-height: none;
        margin-top: 0.35rem;
        box-shadow: none; }
html.a11y-bigtext .site-nav__link {
        width: 100%;
        justify-content: space-between; }
}

/* dashboard/static/dashboard/css/dashboard.css @ 800px */
@media (min-width: 801px) {
html.a11y-bigtext .hl-stat-grid { grid-template-columns: 1fr; }
html.a11y-bigtext .hl-stat--wide { grid-column: auto; }
html.a11y-bigtext .hl-statement {
    grid-template-columns: 1fr;
    gap: 0.35rem; }
}

/* dashboard/static/dashboard/css/dashboard.css @ 1000px */
@media (min-width: 1001px) {
html.a11y-bigtext .grid { grid-template-columns: 1fr; }
html.a11y-bigtext .block { grid-column: 1 / -1; }
}

/* dashboard/static/dashboard/css/dashboard.css @ 960px */
@media (min-width: 961px) {
html.a11y-bigtext .app { grid-template-columns: 1fr; }
html.a11y-bigtext .menu-btn { display: inline-flex; }
html.a11y-bigtext .sidebar {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 95;
    width: min(300px, 88vw);
    height: 100vh;
    height: 100dvh;
    transform: translateX(-105%);
    transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 14px 0 40px rgba(15, 23, 42, 0.18);
    flex-direction: column;
    overflow-y: auto; }
html.a11y-bigtext .sidebar.open { transform: translateX(0); }
html.a11y-bigtext .sidebar:not(.open) { box-shadow: none; }
html.a11y-bigtext .topbar {
    padding: 0.7rem 0.9rem;
    gap: 0.55rem;
    flex-wrap: wrap; }
html.a11y-bigtext .part-tabs {
    padding: 0.65rem 0.9rem;
    gap: 0.55rem;
    flex-wrap: wrap; }
html.a11y-bigtext .part-tabs-row { width: 100%; }
html.a11y-bigtext .part-tab { font-size: 0.88rem; padding: 0.5rem 0.85rem; }
html.a11y-bigtext .tb-title { font-size: 1.05rem; }
html.a11y-bigtext .tb-right {
    width: 100%;
    justify-content: flex-start;
    gap: 0.45rem; }
html.a11y-bigtext .tb-meta {
    align-items: flex-start;
    max-width: none;
    flex: 1 1 100%;
    order: -1; }
html.a11y-bigtext .tb-filters {
    text-align: left;
    -webkit-line-clamp: 3; }
html.a11y-bigtext .btn { padding: 0.5rem 0.7rem; }
html.a11y-bigtext .content { padding: 1.1rem 0.9rem 3rem; }
html.a11y-bigtext .kpis {
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem; }
html.a11y-bigtext .kpi { padding: 1rem; }
html.a11y-bigtext .kpi-val { font-size: 1.55rem; }
html.a11y-bigtext .block-head {
    padding: 1rem 1rem 0.2rem;
    flex-wrap: wrap; }
html.a11y-bigtext .chart-wrap { padding: 0.5rem 0.75rem 0.9rem; }
html.a11y-bigtext .legend { padding: 0 1rem 1rem; }
html.a11y-bigtext .drawer { width: 100%; max-width: 100%; }
html.a11y-bigtext .drawer-foot {
    flex-direction: column-reverse;
    gap: 0.55rem; }
html.a11y-bigtext .drawer-foot .btn {
    width: 100%;
    flex: none; }
html.a11y-bigtext .grid { gap: 1rem; }
}

/* map_explorer/static/map_explorer/css/map_explorer.css @ 1100px */
@media (min-width: 1101px) {
html.a11y-bigtext .gm-map-explorer__layout {
    grid-template-columns: minmax(0, 1fr); }
html.a11y-bigtext .gm-map-explorer__side-panel {
    border-top: 1px solid var(--gm-map-line);
    border-left: 0; }
html.a11y-bigtext .gm-map-explorer__map-mount {
    min-height: 480px; }
}

/* map_explorer/static/map_explorer/css/map_explorer.css @ 760px */
@media (min-width: 761px) {
html.a11y-bigtext .gm-map-explorer__section-head,
html.a11y-bigtext .gm-map-explorer__toolbar,
html.a11y-bigtext .gm-map-explorer__toolbar-actions {
    align-items: stretch;
    flex-direction: column; }
html.a11y-bigtext .gm-map-explorer__section-head > p {
    text-align: left; }
html.a11y-bigtext .gm-map-explorer__stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)); }
html.a11y-bigtext .gm-map-explorer__picker-trigger,
html.a11y-bigtext .gm-map-explorer__cross-control {
    width: 100%;
    min-width: 0; }
html.a11y-bigtext .gm-map-explorer__picker {
    position: fixed;
    top: 5vh;
    right: 1rem;
    left: 1rem;
    width: auto;
    max-height: 90vh; }
html.a11y-bigtext .gm-map-explorer__map-column {
    padding: 0.75rem; }
html.a11y-bigtext .gm-map-explorer__side-panel {
    padding: 0; }
html.a11y-bigtext .gm-map-explorer__map-mount {
    min-height: 400px; }
html.a11y-bigtext .gm-map-explorer__legend-mount {
    width: min(305px, calc(100% - 1.4rem));
    left: 0.7rem;
    bottom: 1.35rem; }
html.a11y-bigtext .gm-map-explorer .gm-map-label {
    font-size: 0.58rem; }
html.a11y-bigtext .gm-map-explorer .gm-map-label__value {
    font-size: 0.56rem; }
}

/* static/css/main.css @ 720px */
@media (min-width: 721px) {
html.a11y-hugetext .gm-banner {
        grid-template-columns: 1fr;
        text-align: left;
        gap: 0.85rem; }
html.a11y-hugetext .gm-banner__logo {
        justify-content: center;
        min-height: 0;
        padding: 0.25rem 0; }
html.a11y-hugetext .gm-banner__img {
        max-height: 88px; }
html.a11y-hugetext .gm-banner__actions {
        align-items: stretch; }
html.a11y-hugetext .gm-banner__cta {
        justify-content: center; }
}

/* dashboard/static/dashboard/css/dashboard.css @ 720px */
@media (min-width: 721px) {
html.a11y-hugetext .coming-soon__kpis,
html.a11y-hugetext .coming-soon__charts {
    grid-template-columns: 1fr; }
html.a11y-hugetext .coming-soon {
    min-height: 24rem; }
}

/* dashboard/static/dashboard/css/dashboard.css @ 720px */
@media (min-width: 721px) {
html.a11y-hugetext .block-head__main {
    flex-direction: column;
    align-items: flex-start; }
}
/* <<< generated <<< */

/* >>> generated: large-cursor pointer selectors (tools/gen_a11y_bigtext.py) >>> */
/* Every selector the site styles with cursor: pointer -> large hand (the element and its children). */
html.a11y-cursor .site-nav__toggle,
html.a11y-cursor .site-nav__toggle *,
html.a11y-cursor .site-nav__link,
html.a11y-cursor .site-nav__link *,
html.a11y-cursor .gm-map .gm-area,
html.a11y-cursor .gm-map .gm-area *,
html.a11y-cursor .gm-map--lio.gm-map--interactive .gm-area,
html.a11y-cursor .gm-map--lio.gm-map--interactive .gm-area *,
html.a11y-cursor .lio-btn,
html.a11y-cursor .lio-btn *,
html.a11y-cursor .cs-modal__close,
html.a11y-cursor .cs-modal__close *,
html.a11y-cursor .cs-modal__btn,
html.a11y-cursor .cs-modal__btn *,
html.a11y-cursor .report-btn,
html.a11y-cursor .report-btn *,
html.a11y-cursor .glossary-search__clear,
html.a11y-cursor .glossary-search__clear *,
html.a11y-cursor .nav-item,
html.a11y-cursor .nav-item *,
html.a11y-cursor .sb-methodology,
html.a11y-cursor .sb-methodology *,
html.a11y-cursor .btn,
html.a11y-cursor .btn *,
html.a11y-cursor .chart-btn,
html.a11y-cursor .chart-btn *,
html.a11y-cursor .seg-exclude__btn,
html.a11y-cursor .seg-exclude__btn *,
html.a11y-cursor .drawer-x,
html.a11y-cursor .drawer-x *,
html.a11y-cursor .fdd summary,
html.a11y-cursor .fdd summary *,
html.a11y-cursor .fdd-opt,
html.a11y-cursor .fdd-opt *,
html.a11y-cursor .menu-btn,
html.a11y-cursor .menu-btn *,
html.a11y-cursor .pdf-opt-row,
html.a11y-cursor .pdf-opt-row *,
html.a11y-cursor .pdf-opt-row input,
html.a11y-cursor .pdf-opt-row input *,
html.a11y-cursor .pdf-page-group-head button,
html.a11y-cursor .pdf-page-group-head button *,
html.a11y-cursor .gm-map-explorer__stat-card,
html.a11y-cursor .gm-map-explorer__stat-card *,
html.a11y-cursor .gm-map-explorer__picker-trigger,
html.a11y-cursor .gm-map-explorer__picker-trigger *,
html.a11y-cursor .gm-map-explorer__picker-head button,
html.a11y-cursor .gm-map-explorer__picker-head button *,
html.a11y-cursor .gm-map-explorer__picker-family-toggle,
html.a11y-cursor .gm-map-explorer__picker-family-toggle *,
html.a11y-cursor .gm-map-explorer__picker-option,
html.a11y-cursor .gm-map-explorer__picker-option *,
html.a11y-cursor .gm-map-explorer__map-actions button,
html.a11y-cursor .gm-map-explorer__map-actions button *,
html.a11y-cursor .gm-map-explorer__map-error button,
html.a11y-cursor .gm-map-explorer__map-error button *,
html.a11y-cursor .gm-map-explorer__area-browser summary,
html.a11y-cursor .gm-map-explorer__area-browser summary *,
html.a11y-cursor .gm-map-explorer__area-list button,
html.a11y-cursor .gm-map-explorer__area-list button *,
html.a11y-cursor .gm-map-explorer__about summary,
html.a11y-cursor .gm-map-explorer__about summary *
{ cursor: var(--a11y-cursor-hand) !important; }
/* <<< generated cursor <<< */
