:root {
  --brand-navy: #114a81;
  --brand-blue: #1667b0;
  --brand-sky: #5bb2dd;
  --brand-soft: #eaf4fb;
  --ink: #18354f;
  --navy: #114a81;
  --teal: #1667b0;
  --cream: #f5f9fc;
  --paper: #fff;
  --line: #d8e4ee;
  --muted: #586d80;
  --amber: #785015;
  --amber-bg: #fff2d9;
  --radius: 16px;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
}
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font:
    16px/1.6 -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
}
button,
input,
select,
textarea {
  font: inherit;
}
button,
a,
input,
summary {
  -webkit-tap-highlight-color: transparent;
}
a {
  color: inherit;
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 3px solid #e5b64d;
  outline-offset: 4px;
}
.skip {
  position: fixed;
  top: -80px;
  left: 20px;
  background: white;
  padding: 12px;
  z-index: 100;
}
.skip:focus {
  top: 10px;
}
.header {
  height: 94px;
  max-width: 1360px;
  margin: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 56px;
  gap: 24px;
}
.brand {
  font-size: 27px;
  font-weight: 700;
  letter-spacing: -1.4px;
  display: flex;
  align-items: center;
}
.brand-icon {
  width: 32px;
  height: 35px;
  border: 2px solid var(--teal);
  color: var(--teal);
  margin-right: 11px;
  display: grid;
  place-items: center;
  font: italic 32px Georgia;
  border-radius: 3px 11px 3px 3px;
}
.brand-dot {
  color: var(--teal);
}
nav {
  display: flex;
  align-items: center;
  gap: 30px;
  font-size: 14px;
  font-weight: 500;
}
.nav-account {
  border: 1px solid #b6c2cb;
  background: transparent;
  border-radius: 7px;
  padding: 10px 16px;
  color: var(--ink);
}
.nav-account span {
  margin-left: 15px;
}
.container {
  max-width: 1248px;
  margin: auto;
  padding: 0 32px;
}
.hero {
  display: grid;
  grid-template-columns: 1.02fr 1fr;
  gap: 60px;
  padding-top: 62px;
  padding-bottom: 82px;
  align-items: center;
}
.eyebrow {
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--teal);
  display: flex;
  align-items: center;
  gap: 12px;
}
.eyebrow:before {
  content: "";
  width: 25px;
  height: 1px;
  background: currentColor;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
h1 {
  font:
    400 clamp(45px, 4.5vw, 65px)/1.07 Georgia,
    serif;
  letter-spacing: -2.4px;
  margin: 25px 0;
}
h1 em,
h2 em {
  font-weight: 400;
  color: var(--teal);
}
.lead {
  font-size: 17px;
  line-height: 1.8;
  color: var(--muted);
  max-width: 485px;
}
.search-box {
  background: white;
  border: 1px solid #bbc5cd;
  padding: 7px;
  border-radius: 10px;
  display: flex;
  gap: 5px;
  margin-top: 27px;
  box-shadow: 0 6px 20px #192c3b08;
}
.search-box input {
  min-width: 0;
  flex: 1;
  padding: 13px 8px;
  border: 0;
  background: transparent;
  outline-offset: 0;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 20px;
  background: var(--teal);
  color: white;
  border: 0;
  border-radius: 7px;
  font-size: 14px;
  font-weight: 650;
  text-decoration: none;
}
.button:hover {
  background: #114a81;
  text-decoration: none;
}
.button.secondary {
  background: transparent;
  border: 1px solid #b4bfc8;
  color: var(--ink);
}
.hint {
  font-size: 12px;
  color: var(--muted);
  margin: 10px 0;
}
.under-search {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 22px;
  font-size: 12px;
}
.text-button {
  border: 0;
  background: none;
  padding: 0;
  color: var(--teal);
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.pill {
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  border: 1px solid #b4c0c9;
  border-radius: 20px;
  padding: 4px 9px;
  white-space: nowrap;
  background: #ebf0f5;
  color: #425361;
}
.hero-visual {
  position: relative;
  background: #e5e9ed;
  border-radius: 18px;
  height: 480px;
  overflow: hidden;
  border: 1px solid #d3dadf;
}
.map-art {
  width: 100%;
  height: 100%;
  display: block;
}
.map-label {
  position: absolute;
  top: 20px;
  left: 20px;
  border-radius: 5px;
  padding: 5px 9px;
  background: white;
  font-size: 10px;
  letter-spacing: 1px;
  box-shadow: 0 2px 7px #0001;
}
.map-card {
  position: absolute;
  background: white;
  border: 1px solid #dae0e5;
  box-shadow: 0 16px 40px #222c3415;
  border-radius: 10px;
  right: 18px;
  bottom: 22px;
  width: 245px;
  padding: 18px;
}
.map-card h3 {
  font-size: 16px;
  margin-bottom: 3px;
}
.map-card .mini {
  font-size: 10px;
  color: var(--muted);
}
.mini-row {
  display: flex;
  gap: 9px;
  align-items: center;
  font-size: 11px;
  padding: 10px 0;
  border-bottom: 1px solid #e9edf0;
}
.mini-row:last-child {
  border: 0;
}
.status-icon {
  display: inline-grid;
  place-items: center;
  width: 21px;
  height: 21px;
  border-radius: 50%;
  font-weight: 700;
  background: #e8eef2;
  color: #425361;
  flex-shrink: 0;
}
.status-icon.amber {
  background: var(--amber-bg);
  color: var(--amber);
}
.map-caption {
  position: absolute;
  bottom: 12px;
  left: 14px;
  font-size: 9px;
  color: #516371;
  max-width: 170px;
}
.trustbar {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 24px 0;
  display: flex;
  gap: 40px;
  justify-content: space-between;
  font-size: 12px;
  color: #50616e;
}
.trustbar span {
  display: flex;
  align-items: center;
  gap: 10px;
}
.trustbar b {
  font-size: 17px;
  color: var(--teal);
  font-weight: 400;
}
.section {
  padding: 90px 0;
}
.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 30px;
  margin-bottom: 34px;
}
.section-heading p {
  max-width: 400px;
  color: var(--muted);
  font-size: 14px;
}
h2 {
  font:
    400 39px/1.18 Georgia,
    serif;
  letter-spacing: -1px;
  margin: 15px 0;
}
.grid3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.feature-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 28px;
}
.feature-card .number {
  font: italic 24px Georgia;
  color: var(--teal);
  margin-bottom: 28px;
  display: block;
}
.feature-card h3 {
  font-size: 19px;
  line-height: 1.4;
  font-weight: 550;
}
.feature-card p {
  font-size: 14px;
  color: var(--muted);
  margin: 0;
}
.dark-section {
  background: var(--navy);
  color: #ebf0f4;
  padding: 72px 0;
}
.dark-section .eyebrow {
  color: #9eb9cf;
}
.dark-section .lead {
  color: #b9c3cc;
}
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  align-items: center;
}
.evidence-card {
  background: #f1f5f8;
  color: var(--ink);
  padding: 24px;
  border-radius: 13px;
}
.evidence-card .badge {
  display: inline-block;
  font-size: 11px;
  color: var(--amber);
  background: var(--amber-bg);
  padding: 4px 8px;
  border-radius: 5px;
}
.evidence-card h3 {
  font-size: 19px;
  margin-top: 15px;
}
.evidence-lines {
  font-size: 12px;
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 10px;
  color: var(--muted);
  border-top: 1px solid var(--line);
  padding-top: 17px;
}
.evidence-lines strong {
  color: var(--ink);
  font-weight: 550;
}
.coverage-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 40px;
}
.coverage-table {
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
}
.coverage-row {
  display: grid;
  grid-template-columns: 1.1fr 1.2fr;
  gap: 20px;
  padding: 18px 22px;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}
.coverage-row:last-child {
  border: 0;
}
.coverage-row span {
  color: var(--muted);
}
.notice {
  padding: 16px 20px;
  background: var(--amber-bg);
  color: var(--amber);
  border: 1px solid #edddb9;
  border-radius: 9px;
  font-size: 13px;
}
.notice.info {
  background: #e9edf1;
  border-color: #cfd7de;
  color: #2b4459;
}
.pricing {
  padding: 40px;
  border: 1px solid #b9c5cf;
  border-radius: 15px;
  background: #e9eef3;
}
.price {
  font: 43px Georgia;
  margin: 22px 0 5px;
}
.price small {
  font: 13px sans-serif;
  color: var(--muted);
}
.check-list {
  padding: 0;
  list-style: none;
  font-size: 14px;
}
.check-list li {
  padding: 8px 0;
  border-bottom: 1px solid #d7dfe5;
}
.check-list li:before {
  content: "↗";
  color: var(--teal);
  margin-right: 10px;
}
.faq {
  max-width: 790px;
  margin: auto;
}
details {
  border-bottom: 1px solid var(--line);
  padding: 19px 0;
}
summary {
  cursor: pointer;
  font-size: 16px;
  font-weight: 550;
}
details p {
  padding-top: 15px;
  color: var(--muted);
  font-size: 14px;
  max-width: 690px;
}
.cta {
  padding: 45px;
  background: #dee6ed;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 80px;
}
.cta h2 {
  font-size: 30px;
  margin: 0;
}
footer {
  border-top: 1px solid var(--line);
  max-width: 1248px;
  margin: auto;
  padding: 45px 32px;
  color: var(--muted);
  font-size: 13px;
}
footer > div:not(.brand) {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  margin: 25px 0;
}
footer small {
  font-size: 11px;
  display: block;
}
.page {
  max-width: 1184px;
  margin: 35px auto 80px;
  padding: 0 32px;
  min-height: 55vh;
}
.page h1 {
  font-size: 46px;
}
.page-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.breadcrumb {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 30px;
}
.panel {
  background: white;
  border: 1px solid var(--line);
  border-radius: 13px;
  padding: 25px;
  margin: 20px 0;
}
.panel h3 {
  margin-bottom: 10px;
}
.panel p {
  color: var(--muted);
  font-size: 14px;
}
.toolbar {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 25px 0;
}
.candidate-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
.candidate {
  padding: 25px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.candidate h3 {
  font-size: 19px;
}
.candidate dl,
.data-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  font-size: 13px;
  gap: 12px;
}
.candidate dt {
  color: var(--muted);
}
.candidate dd {
  margin: 0;
}
.candidate button {
  margin-top: 20px;
}
.field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin: 18px 0;
}
.field input,
.field select,
dialog input {
  padding: 12px;
  border: 1px solid #bbc5cd;
  border-radius: 6px;
  background: white;
  color: var(--ink);
}
.field label {
  font-size: 13px;
  font-weight: 650;
}
.check-field {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 14px;
  margin: 18px 0;
}
.check-field input {
  margin-top: 6px;
  accent-color: var(--teal);
}
.report-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
}
.report-map {
  height: 430px;
  border-radius: 12px;
  overflow: hidden;
  background: #e5e9ed;
  position: relative;
}
.report-map .map-caption {
  max-width: 90%;
  background: #ffffffd9;
  padding: 6px;
}
.tabs {
  display: flex;
  gap: 6px;
  border-bottom: 1px solid var(--line);
  margin: 25px 0;
  overflow: auto;
}
.tabs button {
  border: 0;
  background: none;
  padding: 13px 16px;
  color: var(--muted);
  white-space: nowrap;
}
.tabs button[aria-selected="true"] {
  color: var(--teal);
  border-bottom: 2px solid var(--teal);
  font-weight: 650;
}
.finding {
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 22px;
  margin-bottom: 15px;
}
.finding-heading {
  display: flex;
  align-items: center;
  gap: 10px;
}
.finding h3 {
  font-size: 17px;
  margin: 0;
}
.finding p {
  font-size: 14px;
  color: var(--muted);
  margin: 12px 0;
}
.finding details {
  font-size: 12px;
  border: 0;
  padding: 5px 0;
}
.finding summary {
  font-size: 12px;
  color: var(--teal);
}
.badge {
  display: inline-block;
  border-radius: 4px;
  padding: 3px 8px;
  background: #e9edf1;
  color: #2b4459;
  font-size: 11px;
}
.badge.warning {
  background: var(--amber-bg);
  color: var(--amber);
}
.muted {
  color: var(--muted);
  font-size: 12px;
}
.empty {
  padding: 65px 30px;
  text-align: center;
  border: 1px dashed #bbc5cd;
  border-radius: 12px;
  background: #ffffff70;
}
.empty h2 {
  font-size: 28px;
}
.error {
  color: #963d2b;
  background: #fff0e9;
  padding: 14px;
  border-radius: 7px;
  font-size: 14px;
}
.loading {
  padding: 50px;
  text-align: center;
  color: var(--muted);
}
.table-wrap {
  overflow: auto;
}
table {
  width: 100%;
  border-collapse: collapse;
  background: white;
  font-size: 13px;
}
td,
th {
  text-align: left;
  padding: 16px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
th {
  color: var(--muted);
  font-weight: 650;
  background: #ebeff2;
}
dialog {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 35px;
  max-width: 470px;
  width: calc(100% - 32px);
  color: var(--ink);
  background: var(--cream);
}
dialog::backdrop {
  background: #10212f80;
  backdrop-filter: blur(4px);
}
dialog h2 {
  font-size: 32px;
}
dialog label {
  display: block;
  font-size: 13px;
  margin-bottom: 7px;
}
dialog input {
  width: 100%;
  margin-bottom: 18px;
}
dialog .button {
  width: 100%;
}
.dialog-close {
  position: absolute;
  right: 15px;
  top: 10px;
  border: 0;
  background: none;
  font-size: 28px;
  color: var(--muted);
}
#toast {
  position: fixed;
  bottom: 25px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--navy);
  color: white;
  border-radius: 8px;
  padding: 12px 20px;
  font-size: 13px;
  box-shadow: 0 10px 30px #0002;
  max-width: 90vw;
  z-index: 100;
  display: none;
}
#toast.visible {
  display: block;
}
.app-header {
  display: flex;
  gap: 15px;
  align-items: center;
}
.spacer {
  flex: 1;
}
.source-list a {
  color: var(--teal);
  text-decoration: underline;
}
.legal-copy {
  max-width: 800px;
}
.legal-copy h2 {
  font: 600 20px sans-serif;
  margin-top: 35px;
}
.legal-copy p {
  color: var(--muted);
  font-size: 15px;
}
.comparison-choice {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  margin: 15px 0;
}
.inline-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.mobile-menu {
  display: none;
}
@media (max-width: 1000px) {
  .header {
    padding: 0 30px;
  }
  nav {
    gap: 18px;
  }
  .hero {
    gap: 35px;
  }
  .hero-visual {
    height: 440px;
  }
  h1 {
    font-size: 50px;
  }
  .map-card {
    width: 220px;
  }
  .split {
    gap: 40px;
  }
  .trustbar {
    gap: 20px;
    font-size: 11px;
  }
}
@media (max-width: 760px) {
  .header {
    height: 78px;
    padding: 0 20px;
  }
  nav > a {
    display: none;
  }
  nav {
    gap: 0;
  }
  .brand {
    font-size: 23px;
  }
  .brand-icon {
    width: 27px;
    height: 30px;
    font-size: 27px;
  }
  .nav-account {
    padding: 8px 12px;
    font-size: 12px;
  }
  .container,
  .page {
    padding: 0 20px;
  }
  .hero {
    grid-template-columns: 1fr;
    padding-top: 30px;
    padding-bottom: 40px;
    gap: 30px;
  }
  h1 {
    font-size: 46px;
    letter-spacing: -1.8px;
    max-width: 550px;
  }
  .lead {
    font-size: 15px;
  }
  .search-box input {
    font-size: 14px;
    padding: 12px 5px;
  }
  .search-box .button {
    padding: 11px 14px;
    font-size: 12px;
  }
  .hero-visual {
    height: 380px;
  }
  .map-card {
    width: 220px;
  }
  .trustbar {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    padding: 20px 0;
  }
  .trustbar span:last-child {
    grid-column: 1 / -1;
  }
  .section {
    padding: 55px 0;
  }
  .section-heading {
    display: block;
  }
  h2 {
    font-size: 32px;
  }
  .grid3,
  .split,
  .coverage-grid,
  .candidate-grid,
  .report-layout {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .feature-card {
    padding: 24px;
  }
  .feature-card .number {
    margin-bottom: 18px;
  }
  .dark-section {
    padding: 50px 0;
  }
  .pricing {
    padding: 27px;
  }
  .cta {
    padding: 28px;
    display: block;
    margin-bottom: 45px;
  }
  .cta .button {
    margin-top: 20px;
  }
  .page {
    margin-top: 20px;
  }
  .page h1 {
    font-size: 37px;
  }
  .page-top {
    display: block;
  }
  .report-map {
    height: 330px;
  }
  .panel {
    padding: 20px;
  }
  .section-heading p {
    max-width: none;
  }
  footer {
    padding: 30px 20px;
  }
  .candidate dl {
    grid-template-columns: 1fr 1fr;
  }
  .under-search {
    gap: 12px;
    flex-wrap: wrap;
  }
  .hero .eyebrow {
    font-size: 9px;
  }
  .data-grid {
    grid-template-columns: 1fr;
  }
  .evidence-lines {
    grid-template-columns: 85px 1fr;
  }
}
input,
select {
  font: inherit;
}
form.panel input:not([type="checkbox"]),
form.panel select {
  display: block;
  width: 100%;
  padding: 13px;
  border: 1px solid #d3dadf;
  border-radius: 8px;
  background: #fff;
  margin: 8px 0 18px;
}
button:disabled {
  opacity: 0.55;
  cursor: wait;
}
.error {
  overflow-wrap: anywhere;
}
.panel {
  overflow-wrap: anywhere;
}
.candidate dd {
  overflow-wrap: anywhere;
}
.map-real {
  background: #e5ebf0;
}
.source-list .panel {
  margin-bottom: 16px;
}
@media (max-width: 760px) {
  .tabs {
    overflow-x: auto;
  }
  .tabs button {
    white-space: nowrap;
  }
  .header nav a {
    display: none;
  }
  .header nav .nav-account {
    display: block;
  }
}

/* Real street maps: attribution and zoom controls remain visible. */
.interactive-map{height:430px;width:100%;position:relative;background:#dfe6eb;z-index:0;border-radius:18px;overflow:hidden}
.home-map{height:100%;min-height:480px;border-radius:0}
.hero-visual .map-card,.hero-visual .map-label,.hero-visual .map-caption{pointer-events:none;z-index:500}
.hero-visual .leaflet-control-attribution{max-width:100%;font-size:10px}
.report-map .map-caption{position:static;display:block;padding:12px;background:#eff3f6}
.map-error{position:absolute;top:45px;left:12px;right:12px;z-index:600;background:#fff;padding:10px;border-radius:8px;font-size:13px}
@media(max-width:700px){.interactive-map{height:350px}.home-map{height:430px;min-height:430px}}

.hero-visual .map-label{left:65px;top:15px}.hero-visual .map-caption{bottom:35px}
@media(max-width:700px){.search-box{flex-wrap:wrap}.search-box input{flex-basis:100%}.search-box .button{width:100%}}

.buyer-topics{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}.buyer-topics span{font-size:12px;border:1px solid #b6c2cb;border-radius:30px;padding:7px 12px;color:#31485a;background:#e9eef2}.buyer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.buyer-grid .feature-card h3{font-size:25px;line-height:1.2}.buyer-note{margin-top:24px;padding:22px;border-left:3px solid #1667b0;background:#e9edf1}.buyer-note p{margin-top:8px;font-size:14px;color:#4c5b68}.buyer-section .toolbar{margin-top:24px}@media(max-width:700px){.buyer-grid{grid-template-columns:1fr}.buyer-grid .feature-card h3{font-size:23px}.buyer-topics{gap:6px}.buyer-topics span{font-size:11px}}

.buyer-card-label{display:inline-block;margin-top:18px;color:#364b5d;font-size:11px;letter-spacing:.02em;border-top:1px solid #d3dadf;padding-top:10px}

.legal-document{max-width:960px}.legal-document h1{font-size:clamp(36px,6vw,62px)}.legal-document section{margin:36px 0}.legal-document h2{font-size:25px;line-height:1.3;margin-bottom:14px}.legal-document p{margin:12px 0;line-height:1.8;color:#404e59}.legal-document a{color:#114a81;text-decoration:underline;text-underline-offset:3px}.legal-nav{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.legal-nav a{border:1px solid #cbd3d9;padding:8px 12px;border-radius:8px;font-size:13px}.legal-date{font-size:13px}.legal-document td,.legal-document th{white-space:normal;min-width:150px;vertical-align:top}.legal-document .table-wrap{max-width:100%;overflow:auto}
.legal-nav > a{display:inline-block}.legal-document .legal-nav{justify-content:flex-start}.legal-document .legal-nav a{white-space:normal}footer .legal-nav a{color:#364b5d}

.language-switch{display:flex;gap:4px;align-items:center;flex-shrink:0}.language-switch a{display:inline-block;padding:6px 8px;border:1px solid #c5ced5;border-radius:6px;color:#314658;font-size:12px;text-decoration:none}.language-switch a[aria-current="true"]{background:#1667b0;border-color:#1667b0;color:white}.header{height:auto;min-height:94px;gap:12px;flex-wrap:wrap}.header .language-switch{margin-left:auto}@media(max-width:760px){.header{padding-top:16px;padding-bottom:16px}.header nav{margin-left:auto}.header .language-switch{margin-left:0}.header>.language-switch{margin-left:auto}}

/* Rotating capability overview over the homepage map. */
.hero-visual .hero-carousel {pointer-events:auto;width:min(350px,calc(100% - 36px));padding:22px;bottom:52px;background:rgba(255,255,252,.97);border-radius:16px;box-shadow:0 18px 45px #17283524}
.hero-carousel>.eyebrow{font-size:9px;letter-spacing:1.2px;margin:0 0 13px}
.hero-slides{min-height:207px}
.hero-slide[hidden]{display:none}
.hero-slide h3{font-size:24px;line-height:1.15;margin:0 0 7px;color:#20313e}
.hero-slide-intro{font-size:12px;line-height:1.5;color:#516371;margin:0 0 12px}
.hero-slide ul{list-style:none;padding:0;margin:0}
.hero-slide li{display:flex;align-items:center;gap:11px;font-size:12px;line-height:1.5;padding:9px 0;border-bottom:1px solid #e5e9ec}
.hero-slide li:last-child{border:0}
.hero-slide-icon{display:grid;place-items:center;width:32px;height:32px;background:#e9eef3;border-radius:9px;color:#394e5f;flex:0 0 32px}
.hero-slide-icon svg{width:20px;height:20px}
.hero-carousel-controls{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #dfe4e9;padding-top:10px;margin-top:8px;gap:3px}
.hero-carousel-controls button{display:grid;place-items:center;cursor:pointer;border:0;background:transparent;color:#354a5b;min-width:32px;min-height:36px;border-radius:8px;font-size:24px;padding:0}
.hero-carousel-controls button:hover{background:#e9eef3}
.hero-carousel-controls button:focus-visible{outline:2px solid #bd8522;outline-offset:2px}
.hero-carousel-dots{display:flex;align-items:center}
.hero-carousel-dots button{min-width:30px}
.hero-carousel-dots span{width:6px;height:6px;border-radius:10px;background:#bdc7cf;transition:width .2s,background .2s}
.hero-carousel-dots button[aria-pressed=true] span{width:20px;background:#394e5f}
.hero-carousel-controls .hero-carousel-pause{font-size:18px}
.hero-carousel-note{font-size:9px;line-height:1.45;color:#596c7c;margin:9px 0 0}
@media(max-width:760px){.hero-visual .hero-carousel{width:min(350px,calc(100% - 28px));right:14px;bottom:48px;padding:18px}.hero-slide h3{font-size:22px}.hero-slides{min-height:205px}}
@media(prefers-reduced-motion:reduce){.hero-carousel-dots span{transition:none}}
.buyer-grid>.feature-card,.coverage-grid>*{min-width:0}
.buyer-grid .feature-card{overflow-wrap:anywhere;hyphens:auto}
.pricing .price{font-size:36px;line-height:1.18;overflow-wrap:anywhere}
.hero-slide:not([hidden]){animation:hero-reveal .35s ease-out}
@keyframes hero-reveal{from{opacity:.45;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.hero-slide:not([hidden]){animation:none}}
@media(max-width:760px){.hero-visual{height:480px}.hero-visual .home-map{height:100%;min-height:480px}}

/* Supplied Baleardata identity: preserve proportions and transparent background. */
.brand { flex-shrink: 0; line-height: 1; }
.brand-logo { display: block; width: 220px; max-width: 100%; height: auto; }
footer .brand-logo { width: 220px; }
a.brand:hover { text-decoration: none; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline-color: var(--brand-blue); }
@media (max-width: 760px) { .header .brand-logo { width: 180px; } }
@media (max-width: 380px) { .header .brand-logo { width: 155px; } }

/* Factory: home-produccion-mapa-animado; map and header only. */
.skip{z-index:1200}
html { scroll-padding-top: 110px; }
.header {
  position: sticky;
  top: 0;
  z-index: 1100;
  max-width: none;
  width: 100%;
  min-height: 94px;
  background: #173551;
  color: #fff;
  padding-inline: max(24px, calc((100vw - 1248px) / 2));
  flex-wrap: nowrap;
  box-shadow: 0 1px 0 #10283f;
}
.header .brand-logo { filter: brightness(0) invert(1); }
.header nav { margin-left: auto; }
.header nav > a { color: #fff; }
.header .nav-account { color: #fff; border-color: #ffffff70; }
.header .language-switch { margin-left: 12px; }
.header .language-switch a { color: #fff; border-color: #ffffff60; }
.header .language-switch a[aria-current="true"] { background: #fff; color: #173551; border-color: #fff; }
.header :is(a, button):focus-visible { outline-color: #f4c46a; }
.hero-visual { display: grid; grid-template-columns: minmax(0, 1fr) 220px; grid-template-rows: 480px auto; height: auto; isolation: isolate; }
/* The entire Leaflet host is one stacking context, including its 1000-level
   controls. The fringe and card do not compete with individual map panes. */
.hero-visual::before { content: ""; position: absolute; top: 0; right: 0; width: 236px; height: 480px; z-index: 1; background: #fff; pointer-events: none; }
.hero-visual #home-map { position: relative; z-index: 0; isolation: isolate; grid-column: 1 / -1; grid-row: 1; width: 100%; height: 480px; min-height: 0; touch-action: manipulation; }
.hero-visual .leaflet-bottom.leaflet-right { right: auto; left: 0; width: calc(100% - var(--hero-reserved-width, 236px)); }
.hero-visual[data-hero-layout="side"] .leaflet-control-attribution { max-width: 100%; }
.hero-visual[data-hero-layout="below"] { grid-template-columns: minmax(0, 1fr); grid-template-rows: 480px minmax(240px, auto) auto; }
.hero-visual[data-hero-layout="below"]::before { display: none; }
.hero-visual[data-hero-layout="below"] .hero-carousel { grid-column: 1; grid-row: 2; width: 100%; }
.hero-visual[data-hero-layout="below"] .hero-source-links { grid-row: 3; }
.hero-visual :is(.map-label, .map-caption, .leaflet-control-zoom) { display: none; }
.hero-visual .leaflet-pane { pointer-events: none; }
.hero-visual .leaflet-control-attribution { float: left; max-width: 100%; margin: 0; padding: 2px 6px; font-size: 11px; line-height: 1.4; white-space: normal; overflow-wrap: anywhere; color: #173551; background: #fffffff2; }
.hero-visual .hero-carousel {
  position: relative;
  z-index: 2;
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  width: 220px;
  right: auto;
  bottom: auto;
  padding: 16px 14px;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  overflow-wrap: anywhere;
}
.hero-visual .hero-carousel h3 { font-size: 20px; line-height: 1.15; margin: 5px 0 8px; letter-spacing: -.5px; }
.hero-visual .hero-audience { color: #23588a; font-size: 10px; line-height: 1.45; font-weight: 700; margin: 0; }
.hero-visual .hero-scene-body { font-size: 13px; line-height: 1.45; margin: 0 0 12px; }
.hero-visual .hero-legend { display: flex; flex-wrap: wrap; gap: 5px 10px; margin: 8px 0; }
.hero-visual .hero-key { display: inline-flex; align-items: center; gap: 5px; font-size: 10px; line-height: 1.4; color: #273e50; }
.hero-visual .hero-key::before { content: none; width: 7px; height: 7px; background: #426da2; border-radius: 2px; flex: 0 0 7px; }
.hero-visual .hero-key-farmacia::before { background: #3b7b68; }
.hero-visual .hero-key-salud::before { background: #aa4960; }
.hero-visual .hero-key-deporte::before { background: #886634; }
.hero-visual .hero-key-bus_stop::before { background: #67548d; }
.hero-visual .hero-key-bus_route::before { height: 3px; width: 14px; flex-basis: 14px; background: #2358a4; }
.hero-visual .hero-key-flood_area::before { background: #55a8d7; border: 1px solid #167eac; }
.hero-visual .hero-key-wildfire_prevention_area::before { background: #df9c4c; border: 1px solid #a95f24; }
.hero-visual .hero-provenance { font-size: 9px; line-height: 1.45; color: #4b5c69; margin: 8px 0 0; }
.hero-visual .hero-scope { font-size: 12px; line-height: 1.4; color: #4b5c69; margin: 7px 0 0; }
.hero-visual .hero-pin { background: none; border: none; }
.hero-visual .hero-pin-offset { display: block; width: 28px; height: 28px; }
.hero-visual .hero-anchor-guides { position: absolute; z-index: 550; pointer-events: none; overflow: hidden; }
.hero-visual .hero-anchor-guides line { stroke: #576675; stroke-width: 1; stroke-dasharray: 1 4; stroke-linecap: round; }
.hero-visual .hero-anchor-guides circle { fill: #fff; stroke: #576675; stroke-width: 1; }
.hero-visual .hero-pin-inner { width: 28px; height: 28px; display: grid; place-items: center; background: #fff; border: 1.5px solid currentColor; border-radius: 8px; color: #426da2; box-shadow: 0 2px 6px #17355130; }
.hero-visual .hero-pin svg { width: 19px; height: 19px; }
.hero-visual .hero-pin-farmacia .hero-pin-inner { color: #3b7b68; }
.hero-visual .hero-pin-salud .hero-pin-inner { color: #aa4960; }
.hero-visual .hero-pin-deporte .hero-pin-inner { color: #886634; }
.hero-visual .hero-pin-bus_stop .hero-pin-inner { color: #67548d; border-radius: 50%; }
.hero-visual .hero-source-links { position: relative; grid-column: 1 / -1; grid-row: 2; padding: 16px 18px; font-size: 12px; line-height: 1.5; background: #fff; border-top: 1px solid #d8e4ee; color: #173551; overflow-wrap: anywhere; }
.hero-visual.hero-details { display: block; grid-column: 1 / -1; height: auto; border-radius: 12px; }
.hero-visual.hero-details::before { display: none; }
.hero-visual.hero-details .hero-source-links { display: block; border: 0; padding: 12px 16px; }
.hero-visual.hero-details .hero-source-links > :is(p:first-child, ul) { grid-column: 1 / -1; }
.hero-visual .hero-source-links[hidden] { display: none; }
.hero-visual .hero-source-links a { text-decoration: underline; text-underline-offset: 2px; }
.hero-visual .hero-source-links h3 { font-size: 13px; margin: 12px 0 4px; }
.hero-visual .hero-source-links p { margin-bottom: 10px; }
.hero-visual .hero-source-links ul { padding-left: 18px; margin-bottom: 0; }
.hero-visual .hero-source-links li { margin-bottom: 8px; }
.hero-visual .hero-equivalent { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); }
.hero-visual:is([data-hero-mode="reduced"], [data-hero-mode="error"], [data-hero-motion="reduced"]) .hero-equivalent,
.hero-visual .hero-equivalent:focus-within {
  position: relative;
  z-index: 2;
  grid-column: 1 / -1;
  grid-row: 4;
  width: auto;
  height: auto;
  padding: 14px 16px;
  margin: 0;
  overflow: visible;
  clip-path: none;
  background: #fff;
  border-top: 1px solid #d8e4ee;
  font-size: 12px;
  line-height: 1.5;
}
.hero-visual .hero-equivalent section { padding: 12px 0; border-bottom: 1px solid #d8e4ee; }
.hero-visual .hero-equivalent h3 { font-size: 17px; line-height: 1.25; margin: 5px 0; }
.hero-visual .hero-equivalent p { margin-bottom: 8px; }
.hero-visual .hero-equivalent ul { padding-left: 18px; }
.hero-visual .hero-equivalent a { text-decoration: underline; color: #114a81; }
@media (max-width: 1100px) and (min-width: 761px) {
  .header .brand-logo { width: 180px; }
  .header nav { font-size: 12px; gap: 8px 14px; flex-wrap: wrap; justify-content: center; }
  .header .language-switch { margin-left: 0; }
}
@media (max-width: 1000px) and (min-width: 761px) {
  .hero-visual .hero-carousel { padding: 14px 16px; }
  .hero-visual .hero-carousel h3 { font-size: 20px; }
  .hero-visual .hero-scene-body { font-size: 14px; line-height: 1.5; }
  .hero-visual .hero-provenance { font-size: 8.5px; line-height: 1.4; }
}
@media (max-width: 760px) {
  /* Reserve the below-card layout in CSS before the map hook or data exist.
     These rules also cover loading/error and reduced-motion startup. */
  .hero-visual { grid-template-columns: minmax(0, 1fr); grid-template-rows: 480px minmax(240px, auto) auto; }
  .hero-visual::before { display: none; }
  .hero-visual .hero-carousel { grid-column: 1; grid-row: 2; width: 100%; }
  .hero-visual .hero-source-links { grid-row: 3; }
  .hero-visual .leaflet-bottom.leaflet-right { width: 100%; }
  html { scroll-padding-top: 94px; }
  .header { display: grid; grid-template-columns: minmax(0,1fr) auto; height: auto; min-height: 78px; padding: 7px 20px; gap: 3px 10px; }
  .header .brand { grid-column: 1; grid-row: 1 / 3; }
  .header nav { grid-column: 2; grid-row: 1; margin-left: auto; }
  .header .language-switch { grid-column: 2; grid-row: 2; margin-left: auto; }
  .header .language-switch a { padding: 2px 7px; font-size: 10px; }
  .header .nav-account { padding: 4px 9px; }
  .hero-visual.hero-details .hero-source-links { grid-template-columns: minmax(0, 1fr); }
  .hero-visual .hero-carousel { padding: 18px 16px; }
  .hero-visual .hero-carousel h3 { font-size: 20px; }
}

/* Focus story: a UI house badge, never a geographic footprint. */
.hero-visual .hero-origin-label { position: absolute; z-index: 2; top: 12px; left: 12px; max-width: calc(100% - 260px); display: flex; align-items: center; gap: 7px; padding: 7px 9px; border-radius: 6px; background: #fffffff2; color: #173551; font-size: 11px; line-height: 1.35; font-weight: 650; pointer-events: none; }
.hero-visual .hero-origin-label svg { width: 20px; height: 20px; flex: 0 0 20px; }
.hero-visual[data-hero-layout="below"] .hero-origin-label { max-width: calc(100% - 24px); }
.hero-visual .hero-focus { border: 0; background: none; }
.hero-visual .hero-focus-house { position: relative; box-sizing: border-box; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 5px; transform: rotate(45deg); background: #114a81; color: #fff; border: 2px solid #fff; box-shadow: 0 0 0 3px #114a8135, 0 3px 8px #114a8140; }
.hero-visual .hero-focus-house svg { width: 20px; height: 20px; transform: rotate(-45deg); }
.hero-visual .hero-pin-educacion .hero-pin-inner { background: #e7efff; }
.hero-visual .hero-pin-farmacia .hero-pin-inner { background: #e2f3e9; }
.hero-visual .hero-pin-salud .hero-pin-inner { background: #fce6ed; border-radius: 4px; }
.hero-visual .hero-pin-deporte .hero-pin-inner { background: #fff0d6; border-radius: 10px 4px; }
.hero-visual .hero-pin-bus_stop .hero-pin-inner { background: #eee7fa; }
.hero-visual .hero-selection { border-top: 1px solid #e3e9ee; padding-top: 10px; margin-top: 10px; }
.hero-visual .hero-selection-title { font-size: 11px; font-weight: 650; line-height: 1.4; color: #526777; margin: 0 0 8px; }
.hero-visual .hero-categories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.hero-visual .hero-category { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; padding: 7px; border-radius: 7px; font-size: 11px; line-height: 1.3; overflow-wrap: anywhere; hyphens: auto; color: #234567; background: #e7efff; }
.hero-visual .hero-category strong { font-size: 15px; font-weight: 700; }
.hero-visual .hero-category svg { width: 22px; height: 22px; flex: 0 0 22px; }
.hero-visual .hero-category-farmacia { background: #e2f3e9; color: #285b49; }
.hero-visual .hero-category-salud { background: #fce6ed; color: #89394d; }
.hero-visual .hero-category-deporte { background: #fff0d6; color: #73521f; }
.hero-visual .hero-category-flood_area { background: #e2f3fb; color: #186283; }
.hero-visual .hero-category-wildfire_prevention_area { background: #fff0df; color: #854814; }
.hero-visual .hero-selected-stops { display: flex; align-items: center; gap: 6px; font-size: 11px; line-height: 1.4; color: #574275; margin: 8px 0 0; }
.hero-visual .hero-selected-stops svg { width: 22px; height: 22px; flex: 0 0 22px; padding: 2px; border-radius: 50%; background: #eee7fa; }
.hero-visual .hero-key svg { width: 20px; height: 20px; flex: 0 0 20px; padding: 2px; border-radius: 4px; background: #e7efff; color: #426da2; }
.hero-visual .hero-key-farmacia svg { background: #e2f3e9; color: #3b7b68; }
.hero-visual .hero-key-salud svg { background: #fce6ed; color: #aa4960; }
.hero-visual .hero-key-deporte svg { background: #fff0d6; color: #886634; }
.hero-visual .hero-key-bus_stop svg { background: #eee7fa; color: #67548d; border-radius: 50%; }
.hero-visual .hero-key-flood_area svg { background: #e2f3fb; color: #186283; }
.hero-visual .hero-key-wildfire_prevention_area svg { background: #fff0df; color: #854814; }
.hero-visual .hero-source-links .hero-essential { font-size: 12px; line-height: 1.5; margin: 0 0 6px; }
.hero-visual .hero-source-links .hero-source-credit { display: inline; font-size: 11px; color: #526777; }
.hero-visual .hero-source-links details { border: 0; padding: 6px 0 0; }
.hero-visual .hero-source-links summary { width: fit-content; font-size: 12px; line-height: 1.6; font-weight: 650; color: #114a81; text-decoration: underline; text-underline-offset: 3px; }
.hero-visual .hero-source-links summary:focus-visible { outline: 3px solid #1667b0; outline-offset: 3px; }
.hero-visual .hero-source-detail { padding-top: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.hero-visual .hero-source-detail > :is(p:first-child, ul) { grid-column: 1 / -1; }
.hero-visual .hero-source-detail p { padding-top: 0; font-size: 12px; }
@media (max-width: 760px) {
  .hero-visual .hero-origin-label { max-width: calc(100% - 24px); }
  .hero-visual .hero-source-detail { grid-template-columns: minmax(0, 1fr); }
}

.hero-visual .hero-source-links details:not([open]) > .hero-source-detail { display: none; }

/* Brand sight stays inside the existing conservative 23px focus envelope. */
.hero-visual .hero-focus-house .hero-focus-sight { position: absolute; left: 50%; top: 50%; width: 46px; height: 46px; margin: -23px 0 0 -23px; transform: rotate(-45deg); color: #114a81; pointer-events: none; }

/* The explanatory card and identification banner share one reserved grid cell. */
.hero-visual .hero-drawing-banner { position: relative; z-index: 2; grid-column: 2; grid-row: 1; width: 220px; min-width: 0; min-height: 0; align-self: stretch; display: flex; flex-direction: column; gap: 12px; padding: 22px 18px; color: #173551; background: #f8fafb; pointer-events: none; }
.hero-visual .hero-drawing-banner > img { display: block; width: 152px; max-width: 100%; height: auto; object-fit: contain; filter: none; }
.hero-visual .hero-drawing-heading { font-size: 17px; font-weight: 650; line-height: 1.3; margin: 8px 0 0; }
.hero-visual .hero-drawing-list { flex: 1; display: flex; flex-direction: column; justify-content: space-evenly; gap: 8px; margin: 0; padding: 0; list-style: none; }
.hero-visual .hero-drawing-list li { display: flex; align-items: center; gap: 9px; min-height: 28px; font-size: 12px; line-height: 1.3; transition: opacity .2s ease, transform .2s ease; }
.hero-visual .hero-drawing-list svg { width: 24px; height: 24px; padding: 3px; flex: 0 0 24px; color: #114a81; background: #e7efff; border-radius: 6px; }
.hero-visual .hero-drawing-scope { margin: 0; font-size: 11px; line-height: 1.4; color: #526777; }
.hero-visual[data-hero-layout="below"] .hero-drawing-banner { grid-column: 1; grid-row: 2; width: 100%; padding: 18px 16px; }
@media (prefers-reduced-motion: reduce) { .hero-visual .hero-drawing-list li { transition: none; } }

/* Initial narrow-screen fallback also applies before the layout attribute exists. */
@media (max-width: 760px) { .hero-visual .hero-drawing-banner { grid-column: 1; grid-row: 2; width: 100%; padding: 18px 16px; } }

/* Home map: prevent the inherited lightening blend from washing out base tiles. */
.hero-visual #home-map .leaflet-tile { mix-blend-mode: normal; }

/* Factory home-mapa-mas-ancho: desktop proportion only; content and map internals unchanged. */
@media (min-width: 1101px) {
  .hero { grid-template-columns: minmax(0, .94fr) minmax(0, 1.08fr); }
  .hero > div:first-child > :is(.search-box, .hint, .under-search) { max-width: 485px; }
  .hero > div:first-child > .under-search { flex-wrap: wrap; }
}

/* Factory navbar-mas-compacta: vertical space only; keep X, logo, type and mobile rules unchanged. */
@media (min-width: 761px) { .header { height: auto; min-height: 78px; } }

/* Factory iconos-mapa-familiar: own symbols, geographic anchors unchanged. */
.hero-visual .hero-focus-house { position: relative; display: block; width: 34px; height: 38px; border: 0; border-radius: 0; background: transparent; color: #fff; transform: none; box-shadow: none; }
.hero-visual .hero-focus-house svg { transform: none; }
.hero-visual .hero-focus-house > svg[data-symbol="origin"] { position: absolute; z-index: 1; left: 8px; top: 6px; width: 18px; height: 18px; color: #fff; }
.hero-visual .hero-focus-house .hero-location-pin { position: absolute; z-index: 0; left: 0; top: 0; width: 34px; height: 38px; pointer-events: none; }
.hero-visual svg[data-symbol="farmacia"] path { fill: #23884f; stroke: #23884f; }
.hero-visual svg[data-symbol="bus_stop"] path { fill: #b4473d; stroke: none; fill-rule: evenodd; }
.hero-visual .hero-pin-bus_stop .hero-pin-inner { background: #fbe9e6; color: #b4473d; }
.hero-visual .hero-key-bus_stop svg { background: #fbe9e6; color: #b4473d; }
.hero-visual .hero-selected-stops { color: #b4473d; }
.hero-visual .hero-selected-stops svg { background: #fbe9e6; color: #b4473d; }
.hero-visual .hero-drawing-list svg[data-symbol="bus_stop"] { background: #fbe9e6; color: #b4473d; }
@media (min-width: 761px) { .header { height: auto; min-height: 64px; } }
@media (max-width: 760px) { .header { min-height: 72px; padding-top: 4px; padding-bottom: 4px; } }

/* Topic icons replace editorial numbering; text remains available to readers. */
.buyer-grid .buyer-topic { display: flex; align-items: center; gap: 10px; }
.buyer-grid .buyer-topic > svg { width: 21px; height: 21px; flex: 0 0 21px; }
#como-funciona, #cobertura, #precio { scroll-margin-top: 96px; }
