:root {
  color-scheme: dark;
  --bg: #04131c;
  --panel: #082735;
  --card: #0d3545;
  --text: #fff8dd;
  --muted: #b7d4d6;
  --cyan: #78f7ef;
  --pink: #ff6f9f;
  --border: rgba(120, 247, 239, .28);
}
* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; }
body { background: var(--bg); color: var(--text); font-family: system-ui, sans-serif; }
.sr-only { 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; }
.map-header {
  height: 68px;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--border);
  background: #061d28;
}
.map-back {
  flex: 0 0 auto;
  padding: 9px 13px;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--cyan);
  text-decoration: none;
  font-weight: 800;
  line-height: 1.05;
  text-align: center;
}
.map-heading { min-width: 0; display: grid; gap: 2px; }
.map-heading h1 { margin: 0; font-size: 18px; line-height: 1.1; }
.map-heading span { color: var(--muted); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.map-layout { height: calc(100% - 68px); display: grid; grid-template-columns: minmax(0, 1fr) 350px; }
.map-canvas { width: 100%; height: 100%; background: #d7e2de; }
.map-results-panel { min-width: 0; overflow: auto; border-left: 1px solid var(--border); background: var(--panel); }
.map-panel-header { position: sticky; top: 0; z-index: 2; display: grid; gap: 2px; padding: 14px; background: rgba(8, 39, 53, .96); border-bottom: 1px solid var(--border); }
.map-panel-header small, .map-status { color: var(--muted); }
.map-status { padding: 14px; line-height: 1.45; }
.map-result-list { display: grid; gap: 9px; padding: 10px; }
.map-result {
  width: 100%;
  display: grid;
  gap: 4px;
  padding: 11px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: var(--card);
  color: var(--text);
  text-align: left;
  cursor: pointer;
}
.map-result:hover, .map-result:focus-visible { border-color: var(--cyan); background: #104257; }
.map-result strong { font-size: 15px; line-height: 1.2; }
.map-result span { color: var(--muted); font-size: 13px; line-height: 1.35; }
.map-result .map-result-service { color: var(--text); }
.map-result .map-result-distance { color: var(--cyan); font-weight: 800; }
.leaflet-container { font-family: system-ui, sans-serif; }
.leaflet-popup-content-wrapper, .leaflet-popup-tip { background: #082735; color: var(--text); }
.leaflet-popup-content { min-width: 210px; margin: 13px; line-height: 1.4; }
.map-popup-title { display: block; margin-bottom: 4px; font-size: 15px; }
.map-popup-service, .map-popup-address { display: block; margin-bottom: 5px; }
.map-popup-address { color: var(--muted); }
.map-popup-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.map-popup-actions a { padding: 6px 9px; border-radius: 999px; background: #0e4b60; color: var(--cyan); font-weight: 800; text-decoration: none; }
@media (max-width: 760px) {
  html, body { overflow: auto; }
  .map-header { height: auto; min-height: 62px; }
  .map-layout { height: auto; min-height: calc(100vh - 62px); grid-template-columns: 1fr; grid-template-rows: 58vh auto; }
  .map-results-panel { border-left: 0; border-top: 1px solid var(--border); max-height: none; }
}

/* Launch essentials 2: keyboard skip link */
.skip-link{position:fixed;z-index:5000;left:16px;top:12px;transform:translateY(-170%);padding:10px 14px;border-radius:10px;background:#fff;color:#00111c;font-family:Arial,sans-serif;font-weight:800;text-decoration:none;box-shadow:0 6px 20px rgba(0,0,0,.28)}.skip-link:focus{transform:none}

.noscript-notice{max-width:1180px;margin:14px auto;padding:14px 18px;border:1px solid rgba(255,0,85,.48);border-radius:12px;background:#2a0717;color:#fff;font-weight:700}
@media(max-width:620px){.noscript-notice{margin:10px 14px}}

/* Launch essentials 12: map schedule, detail drawer and user-controlled area search */
.map-stage { position: relative; min-width: 0; min-height: 0; }
.search-area-button {
  position: absolute;
  z-index: 800;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid rgba(120,247,239,.72);
  border-radius: 999px;
  background: #082735;
  color: var(--cyan);
  box-shadow: 0 8px 24px rgba(0,0,0,.34);
  font-weight: 850;
  cursor: pointer;
}
.search-area-button:hover,.search-area-button:focus-visible { background: #104257; border-color: var(--cyan); }
.search-area-button:disabled { opacity: .72; cursor: wait; }
.map-popup-schedule { display:block; margin:8px 0 2px; padding-top:7px; border-top:1px solid rgba(120,247,239,.2); color:#fff8dd; font-weight:800; }
.map-popup-actions button {
  border: 0;
  padding: 6px 9px;
  border-radius: 999px;
  background: #0e4b60;
  color: var(--cyan);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.map-popup-actions a:hover,.map-popup-actions a:focus-visible,.map-popup-actions button:hover,.map-popup-actions button:focus-visible { background:#176780; color:#fff; }
.map-details-panel {
  position: fixed;
  z-index: 1600;
  top: 68px;
  right: 0;
  width: min(430px, 100vw);
  height: calc(100vh - 68px);
  overflow: auto;
  border-left: 1px solid var(--border);
  background: #061d28;
  color: var(--text);
  box-shadow: -18px 0 48px rgba(0,0,0,.42);
}
.map-details-panel[hidden] { display: none; }
.map-details-content { padding: 22px 20px 34px; }
.map-detail-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; align-items:start; padding-bottom:16px; border-bottom:1px solid var(--border); }
.map-detail-kicker { margin:0 0 4px; color:var(--cyan); font-size:.72rem; font-weight:900; letter-spacing:.12em; }
.map-detail-heading h2 { margin:0; font-size:1.55rem; line-height:1.12; }
.map-detail-address { margin:7px 0 0; color:var(--muted); }
.map-details-close { width:38px; height:38px; border:1px solid var(--border); border-radius:50%; background:#0d3545; color:#fff; font-size:1.6rem; line-height:1; cursor:pointer; }
.map-details-close:hover,.map-details-close:focus-visible { border-color:var(--cyan); color:var(--cyan); }
.map-detail-actions { display:flex; flex-wrap:wrap; gap:8px; padding:16px 0; }
.map-detail-actions a { padding:8px 12px; border-radius:999px; background:#0e4b60; color:var(--cyan); font-weight:850; text-decoration:none; }
.map-detail-actions a:hover,.map-detail-actions a:focus-visible { background:#176780; color:#fff; }
.map-detail-section { padding:15px 0; border-top:1px solid rgba(120,247,239,.16); }
.map-detail-section:first-of-type { border-top:0; }
.map-detail-section h3 { margin:0 0 7px; color:#fff2a6; font-size:1rem; }
.map-detail-section p { margin:0; color:#f7fbfc; line-height:1.5; }
.map-detail-section p + p { margin-top:8px; }
@media (max-width:760px) {
  .map-stage { height:58vh; }
  .map-canvas { height:100%; }
  .search-area-button { top:10px; }
  .map-details-panel {
    top:auto;
    bottom:0;
    width:100%;
    height:auto;
    max-height:76vh;
    border-left:0;
    border-top:1px solid var(--border);
    border-radius:18px 18px 0 0;
    box-shadow:0 -18px 48px rgba(0,0,0,.48);
  }
  .map-details-content { padding:18px 18px 28px; }
}

/* Working revision: color-coded map markers and type filters. */
.map-type-legend {
  position: absolute;
  z-index: 810;
  top: 14px;
  right: 14px;
  display: grid;
  gap: 6px;
  width: min(210px, calc(100% - 28px));
  margin: 0;
  padding: 10px 11px 11px;
  border: 1px solid rgba(120,247,239,.46);
  border-radius: 14px;
  background: rgba(4,19,28,.94);
  color: var(--text);
  box-shadow: 0 8px 24px rgba(0,0,0,.34);
  backdrop-filter: blur(8px);
}
.map-type-legend legend {
  padding: 0 5px;
  color: var(--cyan);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: none;
}
.map-type-legend label {
  display: grid;
  grid-template-columns: 17px 11px minmax(0,1fr) auto;
  gap: 7px;
  align-items: center;
  min-height: 24px;
  font-size: .78rem;
  line-height: 1.15;
  cursor: pointer;
}
.map-type-legend input {
  width: 15px;
  height: 15px;
  margin: 0;
  accent-color: var(--cyan);
}
.map-type-legend small {
  color: var(--muted);
  font-size: .7rem;
  font-variant-numeric: tabular-nums;
}
.map-type-legend {
  display: block;
  width: 178px;
  padding: 0;
  overflow: hidden;
}
.map-type-legend summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 42px;
  padding: 0 13px;
  color: var(--cyan);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .05em;
  cursor: pointer;
  list-style: none;
  text-transform: none;
}
.map-type-legend summary::-webkit-details-marker { display: none; }
.map-type-legend__arrow { font-size: 1.18rem; line-height: 1; transition: transform .16s ease; }
.map-type-legend[open] .map-type-legend__arrow { transform: rotate(90deg); }
.map-type-legend__options {
  display: none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px 12px;
  padding: 0 11px 11px;
}
.map-type-legend[open] { width: min(560px, calc(100% - 28px)); }
.map-type-legend[open] .map-type-legend__options { display: grid; }
.map-type-legend__options .map-cluster-note { grid-column: 1 / -1; }
.map-type-legend__hide {
  grid-column: 1 / -1;
  justify-self: end;
  padding: 3px 0 0;
  border: 0;
  background: transparent;
  color: var(--cyan);
  font: inherit;
  font-size: .7rem;
  font-weight: 800;
  cursor: pointer;
}
.map-legend-dot,
.map-marker-dot {
  display: inline-block;
  border: 1.5px solid #04131c;
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(255,255,255,.22);
}
.map-legend-dot { width: 10px; height: 10px; }
.map-legend-dot--pantry,.map-marker-dot--pantry { background:#ff3f9f; }
.map-legend-dot--meals,.map-marker-dot--meals { background:#49dce5; }
.map-legend-dot--mobile,.map-marker-dot--mobile { background:#ffb347; }
.map-legend-dot--fridge,.map-marker-dot--fridge { background:#62db8b; }
.map-legend-dot--wic,.map-marker-dot--wic { background:#f4d35e; }
.map-legend-dot--delivery,.map-marker-dot--delivery { background:#5ea2ff; }
.map-legend-dot--produce,.map-marker-dot--produce { background:#b4e33d; }
.map-legend-dot--pet,.map-marker-dot--pet { background:#c58aff; }
.map-legend-dot--other,.map-marker-dot--other { background:#91a9b6; }
.map-marker-hit {
  display: grid !important;
  place-items: center;
  width: 22px !important;
  height: 22px !important;
  margin-left: -11px !important;
  margin-top: -11px !important;
  border: 0 !important;
  background: transparent !important;
}
.map-marker-dot {
  width: 6px;
  height: 6px;
  border: 0;
  box-shadow: none;
  transition: width .12s ease, height .12s ease, box-shadow .12s ease;
}
.map-medium-markers .map-marker-dot {
  width: 5px;
  height: 5px;
}
.map-close-markers .map-marker-dot {
  width: 5px;
  height: 5px;
  box-shadow: 0 1px 3px rgba(0,0,0,.45);
}
.map-marker-hit:hover .map-marker-dot,
.map-marker-hit:focus .map-marker-dot {
  width: 10px;
  height: 10px;
  box-shadow: 0 0 0 2px #fff, 0 2px 6px rgba(0,0,0,.52);
}
.map-medium-markers .map-marker-hit:hover .map-marker-dot,
.map-medium-markers .map-marker-hit:focus .map-marker-dot {
  width: 10px;
  height: 10px;
}
.map-close-markers .map-marker-hit:hover .map-marker-dot,
.map-close-markers .map-marker-hit:focus .map-marker-dot {
  width: 10px;
  height: 10px;
}
.map-result-type {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: max-content;
  color: var(--cyan) !important;
  font-size: .69rem !important;
  font-weight: 850;
  letter-spacing: .05em;
  text-transform: uppercase;
}
@media (max-width:760px) {
  .map-type-legend {
    top: auto;
    right: 10px;
    bottom: 28px;
    left: 10px;
    width: auto;
    grid-template-columns: repeat(5,minmax(0,1fr));
    gap: 5px;
    padding: 8px;
  }
  .map-type-legend legend { display:none; }
  .map-type-legend label {
    grid-template-columns: 15px 9px minmax(0,1fr);
    gap: 4px;
    min-width: 0;
    font-size: .64rem;
  }
  .map-type-legend small { display:none; }
}
@media (max-width:520px) {
  .map-type-legend {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
}

/* Launch essentials 39: one compact opportunities dropdown. */
.nav-dropdown__menu--single{width:min(370px,88vw);padding:8px}
.main-nav .nav-dropdown__menu--single .nav-dropdown__single{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 14px;border:1px solid rgba(83,226,242,.16);background:rgba(32,217,234,.07);font-size:.88rem;line-height:1.3;text-align:left}
.nav-dropdown__single>span{color:#dafaff;font-weight:760}
.nav-dropdown__single strong{flex:0 0 auto;color:#ff5fc4;font-size:.85rem;white-space:nowrap}
@media(max-width:1160px){.main-nav .nav-dropdown__menu--single .nav-dropdown__single{padding:12px 13px}}


/* Launch Essentials 40: zoom-aware marker clustering. */
.map-cluster-note{grid-column:1/-1;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;margin:6px 0 0;padding-top:8px;border-top:1px solid rgba(151,190,211,.2);color:#c9d8e3;font-size:.7rem;line-height:1.25}
.map-cluster-note-icon{display:grid;place-items:center;width:27px;height:27px;border:2px solid rgba(255,255,255,.75);border-radius:50%;background:#f4cb2f;color:#14202a;font-size:.65rem;font-weight:950;box-shadow:0 2px 7px rgba(0,0,0,.35)}
.map-cluster{display:grid;place-items:center;border-radius:50%;background:transparent}
.map-cluster span{display:grid;place-items:center;width:38px;height:38px;border:3px solid rgba(255,255,255,.72);border-radius:50%;color:#10202b;font-size:.8rem;font-weight:950;box-shadow:0 3px 10px rgba(0,0,0,.4)}
.map-cluster--low span{background:#83d349}
.map-cluster--medium span{background:#f4cb2f}
.map-cluster--high span{background:#ff3d9b;color:#fff}
.map-cluster:hover span,.map-cluster:focus span{transform:scale(1.08);box-shadow:0 0 0 3px rgba(255,255,255,.45),0 4px 12px rgba(0,0,0,.45)}
@media(max-width:760px){.map-cluster-note{display:none}}

/* Working revision 43: unified header, larger mobile text, and in-list mobile details. */
.map-page .map-layout{height:calc(100% - 144px)}
.map-page .map-details-panel{top:144px;height:calc(100vh - 144px)}
.map-result{display:block;padding:0;cursor:default;overflow:hidden}
.map-result-summary{
  display:grid;
  width:100%;
  gap:4px;
  padding:11px;
  border:0;
  background:transparent;
  color:var(--text);
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.map-result-summary:hover,.map-result-summary:focus-visible{background:#104257}
.map-result-expand-label{display:none!important}
.map-result-expanded{padding:0 12px 14px;border-top:1px solid rgba(120,247,239,.2);background:rgba(2,18,27,.38)}
.map-result-expanded[hidden]{display:none}
.map-result-actions{display:flex;flex-wrap:wrap;gap:8px;padding:13px 0 4px}
.map-result-actions a,.map-result-actions button{
  min-height:38px;
  padding:8px 12px;
  border:1px solid rgba(120,247,239,.42);
  border-radius:999px;
  background:#0e4b60;
  color:var(--cyan);
  font:inherit;
  font-weight:850;
  text-decoration:none;
  cursor:pointer;
}
.map-result-actions a:hover,.map-result-actions a:focus-visible,.map-result-actions button:hover,.map-result-actions button:focus-visible{background:#176780;color:#fff}
.map-result-show-map{background:#7a195e!important;border-color:#ff5fbf!important;color:#fff!important}
.map-result-expanded .map-detail-section{padding:13px 0}
.map-result-expanded .map-detail-section h3{margin-bottom:6px}

@media(max-width:1160px) and (min-width:761px){
  .map-page .map-layout{height:calc(100% - 136px)}
  .map-page .map-details-panel{top:136px;height:calc(100vh - 136px)}
}

@media(max-width:760px){
  .map-page{font-size:18.4px}
  .map-page .map-layout{height:auto;min-height:calc(100vh - 130px)}
  .map-page .map-details-panel{top:auto;height:auto}
  .map-heading h1{font-size:20.7px}
  .map-heading span{font-size:14.95px}
  .map-result strong{font-size:17.25px}
  .map-result span{font-size:14.95px}
  .map-result .map-result-type{font-size:.7935rem!important}
  .leaflet-popup-content{font-size:14.95px}
  .map-popup-title{font-size:17.25px}
  .map-detail-kicker{font-size:.828rem}
  .map-detail-heading h2{font-size:1.7825rem}
  .map-detail-section h3{font-size:1.15rem}
  .map-type-legend label{font-size:.864rem}
  .map-type-legend input{width:17px;height:17px}
  .map-result-expand-label{
    display:inline-flex!important;
    width:max-content;
    margin-top:4px;
    color:#ff7dc8!important;
    font-size:13.8px!important;
    font-weight:850;
  }
  .map-result-expand-label::after{content:" +"}
  .map-result-summary[aria-expanded="true"] .map-result-expand-label::after{content:" −"}
  .map-result-summary[aria-expanded="true"]{background:#104257}
}

/* Working 48: reserve space for the unified site menu above the map controls. */
.map-page .map-layout{height:calc(100% - 144px)}
.map-page .map-details-panel{top:144px;height:calc(100vh - 144px)}
@media(max-width:1160px){
  .map-page .map-layout{min-height:calc(100vh - 130px)}
}
@media(max-width:760px){
  .map-page .map-layout{min-height:calc(100vh - 130px)}
}

/* Working revision 60 — centered Seriously dropdown copy with no secondary CTA. */
.main-nav .nav-dropdown__menu--single .nav-dropdown__single {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 82px;
  padding: 16px 20px !important;
  text-align: center !important;
}
.main-nav .nav-dropdown__menu--single .nav-dropdown__single > span {
  max-width: 34ch !important;
  margin-inline: auto;
  color: #f6f8ff !important;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.35;
  text-align: center !important;
}
.main-nav .nav-dropdown__menu--single .nav-dropdown__single strong { display: none !important; }

@media (max-width: 760px) {
  .map-type-legend {
    right: auto;
    left: 10px;
    width: 178px;
    padding: 0;
  }
  .map-type-legend[open] { width: calc(100% - 20px); }
  .map-type-legend__options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* v10.44.413: mobile map summary right-edge breathing room after browser QA */
@media (max-width: 760px) {
  .map-header { padding-right: 24px; }
  .map-heading { padding-right: 4px; }
}

/* v10.44.760: published leads that still need verification */
.map-verification-warning,.map-popup-verification{display:block;margin:6px 0;padding:7px 9px;border:1px solid rgba(181,126,29,.35);border-radius:8px;background:#fff7df;color:#6b4a14;font-size:12px;line-height:1.35}
.map-popup-verification{padding:5px 7px;font-weight:700}

/* v10.44.841 — neutral visitor-report signals on map results/details. */
.map-report-signals{display:grid;gap:6px;margin:8px 0}
.map-report-signal{padding:7px 9px;border:1px solid rgba(214,151,42,.48);border-radius:8px;background:rgba(111,72,25,.12);color:#735519;font-size:.88rem;line-height:1.35}
.map-report-signal strong{color:#5b3f08}
.map-report-signals--compact{margin:5px 0}
.map-report-signals--compact .map-report-signal{font-size:.78rem;padding:5px 7px}

/* v10.44.843 — dispute path for aggregated visitor-report warnings. */
.map-report-dispute{display:inline-block;margin-left:.3rem;color:#ffd6e6;font-weight:800;text-decoration:underline;text-underline-offset:2px}

/* Keep every map marker legible against bright and detailed map tiles. */
.map-marker-dot {
  border: 1.5px solid #000 !important;
}
.map-marker-dot {
  width: 8px !important;
  height: 8px !important;
}
.map-medium-markers .map-marker-dot {
  width: 12px !important;
  height: 12px !important;
}
.map-close-markers .map-marker-dot {
  width: 16px !important;
  height: 16px !important;
}
.map-marker-hit:hover .map-marker-dot,
.map-marker-hit:focus .map-marker-dot {
  width: 10px !important;
  height: 10px !important;
}
.map-medium-markers .map-marker-hit:hover .map-marker-dot,
.map-medium-markers .map-marker-hit:focus .map-marker-dot {
  width: 14px !important;
  height: 14px !important;
}
.map-close-markers .map-marker-hit:hover .map-marker-dot,
.map-close-markers .map-marker-hit:focus .map-marker-dot {
  width: 18px !important;
  height: 18px !important;
}
