.fot-page {
  --fot-navy: #255a82;
  --fot-blue: #2e6da0;
  --fot-sky: #4cadfc;
  --fot-orange: #f58a2b;
  --fot-yellow: #fbfe04;
  --fot-green: #09fe03;
  --fot-ink: #15243a;
  --fot-muted: #465e7d;
  --fot-line: #cce3fc;
  --fot-panel: #4cadfb;
  --fot-bg: #255a82;
  --fot-shadow: 0 18px 50px rgba(20, 55, 90, .12);
  --fot-radius-lg: 24px;
  --fot-radius-md: 15px;
  --fot-focus: 0 0 0 4px rgba(245, 138, 43, .3);
  color-scheme: dark;
}

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



.fot-page button, .fot-page select { font: inherit; }
.fot-page a { color: var(--fot-blue); }
.fot-page a:hover { color: var(--fot-navy); }

.fot-skip-link {
  position: fixed;
  z-index: 1000;
  top: 10px;
  left: 10px;
  padding: .75rem 1rem;
  color: #fff;
  background: var(--fot-navy);
  border-radius: 8px;
  transform: translateY(-150%);
}

.fot-skip-link:focus { transform: translateY(0); }

.fot-site-header {
  color: #fff;
  background: #2e6da0;
  box-shadow: 0 3px 18px rgba(15, 53, 104, .2);
}

.fot-site-header__inner,
.fot-page,
.fot-site-footer p {
  width: min(1180px, calc(100% - 32px));
  margin-inline: auto;
}

.fot-site-header__inner {
  min-height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.fot-site-header__section {
  font-size: .88rem;
  font-weight: 700;
  letter-spacing: .02em;
  opacity: .86;
}

.fot-page { padding: 58px 0 76px; }

.fot-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(260px, .75fr);
  align-items: end;
  gap: clamp(2rem, 5vw, 5.5rem);
  margin-bottom: 34px;
}

.fot-eyebrow,
.fot-overline {
  margin: 0 0 .45rem;
  color: var(--fot-green);
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .105em;
  text-transform: uppercase;
}

.fot-hero h1 {
  max-width: 740px;
  margin: 0;
  font-size: clamp(2.2rem, 5vw, 4.35rem);
  line-height: .99;
  letter-spacing: -.055em;
}

.fot-hero__intro {
  max-width: 760px;
  margin: 1.15rem 0 0;
  color: var(--fot-muted);
  font-size: clamp(1.02rem, 1.7vw, 1.22rem);
}

.fot-hero__note {
  display: flex;
  gap: .8rem;
  padding: 1.05rem 1.1rem;
  border: 1px solid #cfe1f0;
  border-radius: var(--fot-radius-md);
  background: rgba(255, 255, 255, .7);
  backdrop-filter: blur(8px);
  color: #46566a;
  font-size: .86rem;
}

.fot-hero__note svg {
  flex: 0 0 21px;
  width: 21px;
  height: 21px;
  margin-top: 1px;
  fill: var(--fot-blue);
}

.fot-hero__note p { margin: 0; }

.fot-explorer,
.fot-ranking,
.fot-methodology {
  background: rgba(255, 255, 255, .94);
  border: 1px solid rgba(199, 215, 230, .9);
  border-radius: var(--fot-radius-lg);
  box-shadow: var(--fot-shadow);
}

.fot-explorer { overflow: hidden; }

.fot-controls {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(210px, .8fr) minmax(190px, .65fr);
  gap: 1rem;
  padding: 20px 24px;
  border-bottom: 1px solid var(--fot-line);
  background: linear-gradient(180deg, #fff, #f8fbfe);
}

.fot-field { min-width: 0; }
.fot-field__label {
  display: block;
  margin: 0 0 .48rem;
  color: #526176;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.fot-category-list { display: flex; flex-wrap: wrap; gap: .42rem; }

.fot-category-button {
  min-height: 40px;
  padding: .5rem .76rem;
  border: 1px solid #cedbe8;
  border-radius: 999px;
  color: #42556d;
  background: #2e6da0;
  cursor: pointer;
  font-size: .82rem;
  font-weight: 720;
  transition: transform .15s ease, color .15s ease, background .15s ease, border-color .15s ease;
}

.fot-category-button:hover { transform: translateY(-1px); border-color: #91acd0; }
.fot-category-button[aria-pressed="true"] { color: #fff; background: var(--fot-navy); border-color: var(--fot-navy); }

.fot-select-wrap { position: relative; display: block; }
.fot-select-wrap::after {
  content: "";
  position: absolute;
  top: 50%;
  right: .9rem;
  width: 7px;
  height: 7px;
  border: solid #4b617c;
  border-width: 0 2px 2px 0;
  transform: translateY(-70%) rotate(45deg);
  pointer-events: none;
}

.fot-field select {
  width: 100%;
  min-height: 43px;
  padding: .56rem 2.4rem .56rem .78rem;
  appearance: none;
  border: 1px solid #c8d6e4;
  border-radius: 10px;
  color: var(--fot-ink);
  background: #2e6da0;
  cursor: pointer;
  font-size: .9rem;
}

.fot-field select:disabled { cursor: wait; color: #8793a2; background: #f1f4f7; }
.fot-field select:focus-visible,
.fot-category-button:focus-visible,
.fot-share:focus-visible,
.fot-state:focus-visible,
.fot-table-button:focus-visible { outline: none; box-shadow: var(--fot-focus); }

.fot-alert { margin: 20px 24px 0; padding: 1rem; border: 1px solid #efb4aa; border-radius: 12px; color: #7b2c20; background: #fff3f0; }

.fot-stat-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 26px 28px 8px;
}

.fot-stat-header h2,
.fot-section-heading h2,
.fot-methodology h2 { margin: 0; line-height: 1.12; letter-spacing: -.035em; }
.fot-stat-header h2 { font-size: clamp(1.55rem, 3vw, 2.25rem); }
.fot-stat-header__description { max-width: 680px; margin: .55rem 0 0; color: var(--fot-muted); }

.fot-source-chip {
  flex: 0 0 auto;
  display: flex;
  gap: .45rem;
  align-items: center;
  padding: .46rem .7rem;
  border: 1px solid #d4e2ef;
  border-radius: 999px;
  color: #607085;
  background: #f7fafc;
  font-size: .76rem;
  font-weight: 700;
}

.fot-source-chip a { color: inherit; text-underline-offset: 2px; }

.fot-map-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(270px, .63fr);
  gap: 20px;
  padding: 18px 24px 22px;
}

.fot-map-card {
  position: relative;
  min-width: 0;
  padding: 14px 14px 13px;
  border: 1px solid var(--fot-line);
  border-radius: 18px;
  background: linear-gradient(160deg, #f9fcff, #eef6fb);
}

.fot-map { min-height: 430px; }
.fot-map svg { display: block; width: 100%; height: auto; overflow: visible; }
.fot-inset { fill: rgba(255, 255, 255, .65); stroke: #cfdeeb; stroke-width: 1; }
.fot-state {
  fill: #dce5ed;
  stroke: #fff;
  stroke-width: 1.2;
  vector-effect: non-scaling-stroke;
  cursor: pointer;
  transition: fill .22s ease, filter .15s ease, stroke .15s ease;
}
.fot-state:hover,
.fot-state:focus-visible { stroke: var(--fot-navy); stroke-width: 2.3; filter: brightness(1.04); outline: none; }
.fot-state.is-selected { stroke: #9a4b08; stroke-width: 3.2; fill: var(--fot-orange) !important; filter: drop-shadow(0 3px 4px rgba(111, 58, 12, .28)); }
.fot-state-label {
  fill: rgba(15, 40, 70, .76);
  font-family: inherit;
  font-size: 9.5px;
  font-weight: 850;
  text-anchor: middle;
  dominant-baseline: central;
  pointer-events: none;
  paint-order: stroke;
  stroke: rgba(255, 255, 255, .7);
  stroke-width: 2px;
}

.fot-map-loading {
  position: absolute;
  z-index: 3;
  inset: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  border-radius: 13px;
  color: #50657d;
  background: rgba(248, 252, 255, .94);
  font-weight: 700;
}
.fot-map-loading[hidden] { display: none; }
.fot-spinner { width: 22px; height: 22px; border: 3px solid #cbddea; border-top-color: var(--fot-blue); border-radius: 50%; animation: fot-spin .75s linear infinite; }
@keyframes fot-spin { to { transform: rotate(360deg); } }

.fot-tooltip {
  position: absolute;
  z-index: 10;
  max-width: 220px;
  padding: .62rem .72rem;
  border: 1px solid rgba(16, 51, 93, .18);
  border-radius: 10px;
  color: #fff;
  background: rgba(16, 43, 77, .95);
  box-shadow: 0 10px 28px rgba(11, 39, 72, .24);
  pointer-events: none;
  font-size: .8rem;
  line-height: 1.35;
}
.fot-tooltip strong { display: block; margin-bottom: .15rem; font-size: .9rem; }

.fot-map-help { margin: 0 .4rem .6rem; color: #66778a; font-size: .76rem; text-align: center; }
.fot-legend { display: grid; grid-template-columns: auto minmax(120px, 360px) auto; align-items: center; justify-content: center; gap: .65rem; color: #5c6e82; font-size: .74rem; font-weight: 700; }
.fot-legend__scale { display: grid; grid-template-columns: repeat(6, 1fr); height: 9px; overflow: hidden; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(12, 45, 75, .1); }

.fot-detail {
  min-height: 455px;
  overflow: hidden;
  border: 1px solid var(--fot-line);
  border-radius: 18px;
  background: #fff;
}

.fot-detail__empty { height: 100%; min-height: 455px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2.2rem; text-align: center; }
.fot-detail__empty h3 { margin: .8rem 0 .35rem; font-size: 1.25rem; }
.fot-detail__empty p { max-width: 280px; margin: 0; color: var(--fot-muted); font-size: .9rem; }
.fot-detail__pin { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: #eaf4ff; }
.fot-detail__pin svg { width: 28px; height: 28px; fill: var(--fot-blue); }

.fot-detail__header { padding: 20px 21px 18px; color: #fff; background: linear-gradient(135deg, var(--fot-navy), #1a6898); }
.fot-detail__state-line { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.fot-detail__state-line h3 { margin: 0; font-size: 1.4rem; letter-spacing: -.025em; }
.fot-detail__abbr { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.38); border-radius: 50%; font-size: .74rem; font-weight: 850; }
.fot-detail__metric-label { margin: 1.25rem 0 .05rem; opacity: .76; font-size: .75rem; font-weight: 700; }
.fot-detail__value { margin: 0; font-size: clamp(2rem, 4vw, 3.15rem); font-weight: 880; line-height: 1; letter-spacing: -.05em; }
.fot-detail__value small { margin-left: .25rem; font-size: .7rem; font-weight: 650; letter-spacing: 0; opacity: .78; }
.fot-detail__body { padding: 18px 20px 22px; }
.fot-detail__comparison { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.fot-mini-stat { padding: .78rem; border: 1px solid #dce6ee; border-radius: 11px; background: #f8fbfd; }
.fot-mini-stat span { display: block; color: #6b7a8d; font-size: .67rem; font-weight: 780; text-transform: uppercase; letter-spacing: .05em; }
.fot-mini-stat strong { display: block; margin-top: .2rem; font-size: .95rem; }
.fot-related-title { margin: 1.2rem 0 .5rem; color: #57677b; font-size: .72rem; font-weight: 820; letter-spacing: .06em; text-transform: uppercase; }
.fot-related { margin: 0; }
.fot-related div { display: flex; justify-content: space-between; gap: .8rem; padding: .58rem 0; border-bottom: 1px solid #e5ecf2; }
.fot-related dt { color: #58697c; font-size: .8rem; }
.fot-related dd { margin: 0; font-size: .82rem; font-weight: 780; text-align: right; }
.fot-coverage { margin: .9rem 0 0; padding: .66rem .75rem; border-radius: 9px; color: #4e6177; background: #fff6df; font-size: .72rem; }

.fot-action-row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0 24px 24px; }
.fot-data-note { max-width: 760px; margin: 0; color: #66768a; font-size: .78rem; }
.fot-share { flex: 0 0 auto; display: inline-flex; align-items: center; gap: .45rem; min-height: 40px; padding: .5rem .8rem; border: 1px solid #cbdbe8; border-radius: 10px; color: var(--fot-navy); background: #fff; cursor: pointer; font-size: .8rem; font-weight: 780; }
.fot-share:hover { background: #edf6ff; }
.fot-share:disabled { cursor: not-allowed; opacity: .45; }
.fot-share svg { width: 17px; height: 17px; fill: currentColor; }

.fot-ranking { margin-top: 28px; padding: 28px 28px 20px; }
.fot-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 20px; }
.fot-section-heading h2, .fot-methodology h2 { font-size: clamp(1.45rem, 3vw, 2rem); }
.fot-section-heading > p { max-width: 380px; margin: 0; color: var(--fot-muted); font-size: .86rem; text-align: right; }
.fot-table-wrap { overflow-x: auto; border: 1px solid var(--fot-line); border-radius: 14px; }
.fot-ranking table { width: 100%; border-collapse: collapse; background: #fff; font-variant-numeric: tabular-nums; }
.fot-ranking th, .fot-ranking td { padding: .78rem .9rem; border-bottom: 1px solid #e2e9f0; text-align: left; }
.fot-ranking th { position: sticky; top: 0; color: #53657a; background: #f4f8fb; font-size: .7rem; font-weight: 820; letter-spacing: .04em; text-transform: uppercase; }
.fot-ranking td { font-size: .84rem; }
.fot-ranking tbody tr:last-child td { border-bottom: 0; }
.fot-ranking tbody tr:hover td, .fot-ranking tbody tr.is-selected td { background: #f1f7fd; }
.fot-ranking td:nth-child(1) { width: 65px; color: #718094; }
.fot-ranking td:nth-child(3) { font-weight: 780; }
.fot-table-button { padding: .28rem .48rem; border: 1px solid #cbd9e6; border-radius: 7px; color: var(--fot-blue); background: #fff; cursor: pointer; font-size: .73rem; font-weight: 750; }
.fot-table-button:hover { color: #fff; background: var(--fot-blue); border-color: var(--fot-blue); }
.fot-delta--up { color: #226d50; }
.fot-delta--down { color: #9a4b20; }
.fot-table-loading { padding: 2rem; color: var(--fot-muted); text-align: center; }

.fot-methodology { margin-top: 28px; padding: 30px 28px; }
.fot-methodology__intro { display: grid; grid-template-columns: 1fr 1.15fr; gap: .4rem 3rem; align-items: end; }
.fot-methodology__intro .fot-overline, .fot-methodology__intro h2 { grid-column: 1; }
.fot-methodology__intro > p:last-child { grid-column: 2; grid-row: 1 / span 2; margin: 0; color: var(--fot-muted); }
.fot-source-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-top: 24px; }
.fot-source-card { min-width: 0; padding: 1rem; border: 1px solid var(--fot-line); border-radius: 12px; background: #fafcfe; }
.fot-source-card h3 { margin: 0; font-size: .87rem; }
.fot-source-card p { margin: .35rem 0 0; color: var(--fot-muted); font-size: .73rem; }
.fot-source-card a { display: inline-block; margin-top: .55rem; font-size: .73rem; font-weight: 750; }
.fot-methodology__details { margin-top: 18px; border-top: 1px solid var(--fot-line); }
.fot-methodology__details summary { padding: 1rem 0 0; color: var(--fot-navy); cursor: pointer; font-size: .85rem; font-weight: 780; }
.fot-methodology__details div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; color: var(--fot-muted); font-size: .78rem; }
.fot-updated { margin: 1.2rem 0 0; color: #6d7c8e; font-size: .72rem; }

.fot-site-footer { padding: 1.5rem 0; color: #d9e9f6; background: #102d50; text-align: center; }
.fot-site-footer p { margin-top: 0; margin-bottom: 0; font-size: .78rem; }
.fot-noscript { margin: 1rem; padding: 1rem; background: #fff3cd; }

.fot-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (max-width: 960px) {
  .fot-controls { grid-template-columns: 1fr 1fr; }
  .fot-field--category { grid-column: 1 / -1; }
  .fot-map-layout { grid-template-columns: 1fr; }
  .fot-detail { min-height: 0; }
  .fot-detail__empty { min-height: 240px; }
  .fot-source-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 700px) {
  .fot-site-header__section { display: none; }
  .fot-page { width: min(100% - 20px, 1180px); padding-top: 38px; }
  .fot-hero { grid-template-columns: 1fr; gap: 1.4rem; }
  .fot-controls { grid-template-columns: 1fr; padding: 17px; }
  .fot-field--category { grid-column: auto; }
  .fot-category-list { flex-wrap: nowrap; margin-inline: -2px; padding: 2px 2px 6px; overflow-x: auto; }
  .fot-category-button { flex: 0 0 auto; }
  .fot-stat-header { display: block; padding: 22px 20px 5px; }
  .fot-source-chip { width: fit-content; margin-top: .8rem; }
  .fot-map-layout { padding: 14px 12px 18px; }
  .fot-map { min-height: 270px; }
  .fot-map-help { padding-inline: .5rem; }
  .fot-state-label { display: none; }
  .fot-action-row { align-items: flex-start; padding: 0 18px 20px; }
  .fot-share span { display: none; }
  .fot-ranking, .fot-methodology { padding: 24px 17px 17px; }
  .fot-section-heading { display: block; }
  .fot-section-heading > p { margin-top: .5rem; text-align: left; }
  .fot-ranking th, .fot-ranking td { padding: .7rem .65rem; }
  .fot-ranking th:nth-child(4), .fot-ranking td:nth-child(4) { display: none; }
  .fot-methodology__intro { display: block; }
  .fot-methodology__intro > p:last-child { margin-top: .65rem; }
  .fot-source-grid, .fot-methodology__details div { grid-template-columns: 1fr; }
}

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

@media print {
  body { background: #fff; }
  .fot-site-header, .fot-hero__note, .fot-controls, .fot-action-row, .fot-site-footer { display: none; }
  .fot-page { width: 100%; padding: 0; }
  .fot-explorer, .fot-ranking, .fot-methodology { box-shadow: none; break-inside: avoid; }
}
