/* NY Health Locator - front-end styles. All selectors are scoped under
   .nhl-locator-root and use an nhl- prefix so they don't leak into or
   collide with the surrounding WordPress theme. */

.nhl-locator-root{
  --nhl-brand:#0f6e5c;
  --nhl-brand-dark:#0a4f42;
  --nhl-bg:#f6f8f7;
  --nhl-card:#ffffff;
  --nhl-border:#dbe3e0;
  --nhl-text:#1c2a27;
  --nhl-muted:#5c6b67;
  --nhl-chip:#e7f3ef;
  --nhl-chip-text:#0f6e5c;
  --nhl-warn-bg:#fff4e0;
  --nhl-warn-text:#8a5b00;
  --nhl-radius:10px;

  box-sizing:border-box;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--nhl-text);
  background:var(--nhl-bg);
  border:1px solid var(--nhl-border);
  border-radius:var(--nhl-radius);
  overflow:hidden;
}
.nhl-locator-root *{box-sizing:border-box;}
.nhl-locator-root a{color:var(--nhl-brand-dark);}

/* Header matches the page's teal swoosh banner. The swoosh is an inline SVG
   data URI rather than a bundled image: it is ~1.4KB, needs no HTTP request,
   and stretches to any header width via preserveAspectRatio="none". The
   gradient underneath carries the colour, the SVG only adds the sweeps, so
   the two layers stay independently tweakable. Measured 6.0:1 against white
   at header proportions -- keep it above 4.5:1 if you restyle. */
.nhl-locator-root .nhl-header{
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2048 448' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0%' stop-color='%231c9a80' stop-opacity='0'/%3E%3Cstop offset='40%' stop-color='%231c9a80' stop-opacity='.34'/%3E%3Cstop offset='100%' stop-color='%232fd0a8' stop-opacity='.12'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='0' y1='1' x2='1' y2='0'%3E%3Cstop offset='0%' stop-color='%232fd0a8' stop-opacity='.18'/%3E%3Cstop offset='60%' stop-color='%231c9a80' stop-opacity='.11'/%3E%3Cstop offset='100%' stop-color='%231c9a80' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='c' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0%' stop-color='%23fff' stop-opacity='0'/%3E%3Cstop offset='55%' stop-color='%23fff' stop-opacity='.09'/%3E%3Cstop offset='100%' stop-color='%23fff' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M-100,385 C451,439 819,152 1475,179 S1966,296 2168,224 L2168,528 L-100,528 Z' fill='url(%23a)'/%3E%3Cpath d='M-100,179 C369,45 901,332 1516,269 S1925,90 2168,134 L2168,-80 L-100,-80 Z' fill='url(%23b)'/%3E%3Cpath d='M-100,296 C492,358 942,99 1597,143 S1966,242 2168,188' fill='none' stroke='url(%23c)' stroke-width='25' stroke-linecap='round'/%3E%3Cpath d='M-100,332 C532,403 983,134 1638,197 S1986,278 2168,242' fill='none' stroke='url(%23c)' stroke-width='10' stroke-linecap='round' opacity='.7'/%3E%3C/svg%3E") center/100% 100% no-repeat,
    linear-gradient(135deg,#03211b 0%,#063a30 45%,#0a5044 100%);
  color:#fff;
  padding:14px 18px;
}
.nhl-locator-root .nhl-header h2{
  margin:0 0 2px 0;
  font-size:19px;
  font-weight:700;
  color:#fff;
}
.nhl-locator-root .nhl-header p{
  margin:0;
  font-size:13px;
  opacity:0.9;
}

.nhl-locator-root .nhl-toolbar{
  background:var(--nhl-card);
  border-bottom:1px solid var(--nhl-border);
  padding:12px 16px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.nhl-locator-root .nhl-toolbar input[type="search"]{
  flex:1 1 260px;
  padding:10px 12px;
  border:1px solid var(--nhl-border);
  border-radius:8px;
  font-size:14px;
}
.nhl-locator-root .nhl-toolbar select{
  padding:9px 10px;
  border:1px solid var(--nhl-border);
  border-radius:8px;
  font-size:14px;
  background:#fff;
}
.nhl-locator-root .nhl-btn{
  padding:9px 14px;
  border-radius:8px;
  border:1px solid var(--nhl-brand);
  background:var(--nhl-brand);
  color:#fff;
  font-size:13px;
  cursor:pointer;
  white-space:nowrap;
}
.nhl-locator-root .nhl-btn.nhl-secondary{
  background:#fff;
  color:var(--nhl-brand-dark);
}
.nhl-locator-root .nhl-btn:disabled{opacity:.5;cursor:default;}

.nhl-locator-root .nhl-situation-panel{
  background:var(--nhl-card);
  border-bottom:1px solid var(--nhl-border);
  padding:12px 16px 14px 16px;
}
.nhl-locator-root .nhl-situation-label{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--nhl-muted);
  margin-bottom:8px;
}
.nhl-locator-root .nhl-situation-row{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  align-items:flex-start;
}
.nhl-locator-root .nhl-situation-row label.nhl-check{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:13.5px;
  cursor:pointer;
  white-space:nowrap;
  color:var(--nhl-text);
}
.nhl-locator-root .nhl-search-status{
  font-size:12.5px;
  color:var(--nhl-brand-dark);
  margin-top:6px;
  min-height:16px;
}

.nhl-locator-root .nhl-priority-badge{
  display:inline-block;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  padding:2px 6px;
  border-radius:20px;
  background:#e6f0fa;
  color:#1a5c9e;
  margin-left:6px;
}

.nhl-locator-root .nhl-layout{
  display:flex;
  height:700px;
}

.nhl-locator-root .nhl-filters{
  width:230px;
  flex:0 0 230px;
  background:var(--nhl-card);
  border-right:1px solid var(--nhl-border);
  overflow-y:auto;
  padding:14px;
}
.nhl-locator-root .nhl-filters h3{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--nhl-muted);
  margin:14px 0 8px 0;
}
.nhl-locator-root .nhl-filters h3:first-child{margin-top:0;}
.nhl-locator-root .nhl-filters label{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:13.5px;
  padding:4px 0;
  cursor:pointer;
  color:var(--nhl-text);
}
.nhl-locator-root .nhl-filters label span.nhl-count{
  color:var(--nhl-muted);
  font-size:12px;
  margin-left:auto;
}
.nhl-locator-root .nhl-clear-link{
  font-size:12.5px;
  color:var(--nhl-brand-dark);
  cursor:pointer;
  text-decoration:underline;
  background:none;
  border:none;
  padding:0;
}

.nhl-locator-root .nhl-results-col{
  width:380px;
  flex:0 0 380px;
  border-right:1px solid var(--nhl-border);
  background:var(--nhl-bg);
  display:flex;
  flex-direction:column;
}
.nhl-locator-root .nhl-results-summary{
  padding:10px 14px;
  font-size:12.5px;
  color:var(--nhl-muted);
  border-bottom:1px solid var(--nhl-border);
  background:var(--nhl-card);
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.nhl-locator-root .nhl-results-list{
  overflow-y:auto;
  flex:1;
  padding:10px;
}
.nhl-locator-root .nhl-place-card{
  background:var(--nhl-card);
  border:1px solid var(--nhl-border);
  border-radius:var(--nhl-radius);
  padding:12px 14px;
  margin-bottom:10px;
  cursor:pointer;
  transition:box-shadow .15s, border-color .15s;
}
.nhl-locator-root .nhl-place-card:hover, .nhl-locator-root .nhl-place-card.nhl-active{
  border-color:var(--nhl-brand);
  box-shadow:0 2px 8px rgba(15,110,92,0.12);
}
.nhl-locator-root .nhl-place-card .nhl-row1{
  display:flex;
  justify-content:space-between;
  gap:8px;
}
.nhl-locator-root .nhl-place-card h4{
  margin:0 0 3px 0;
  font-size:14.5px;
  line-height:1.3;
  color:var(--nhl-text);
}
.nhl-locator-root .nhl-type-badge{
  display:inline-block;
  font-size:10.5px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.03em;
  padding:2px 7px;
  border-radius:20px;
  background:var(--nhl-chip);
  color:var(--nhl-chip-text);
  white-space:nowrap;
  margin-left:6px;
}
.nhl-locator-root .nhl-fallback-badge{
  background:var(--nhl-warn-bg);
  color:var(--nhl-warn-text);
}
.nhl-locator-root .nhl-place-card .nhl-addr{
  font-size:12.5px;
  color:var(--nhl-muted);
  margin:2px 0;
}
.nhl-locator-root .nhl-place-card .nhl-meta-row{
  font-size:12.5px;
  margin:2px 0;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.nhl-locator-root .nhl-place-card .nhl-meta-row a{ text-decoration:none; font-weight:600; }
.nhl-locator-root .nhl-place-card .nhl-tags{
  margin-top:6px;
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}
.nhl-locator-root .nhl-place-card .nhl-tags span{
  font-size:10.5px;
  background:#eef2f1;
  color:var(--nhl-muted);
  padding:2px 7px;
  border-radius:20px;
}
.nhl-locator-root .nhl-place-card .nhl-distance{
  font-size:12px;
  font-weight:700;
  color:var(--nhl-brand-dark);
  white-space:nowrap;
}
.nhl-locator-root .nhl-place-card .nhl-hours{
  font-size:12px;
  color:var(--nhl-muted);
  margin-top:4px;
}

.nhl-locator-root .nhl-load-more-wrap{
  padding:12px;
  text-align:center;
}

.nhl-locator-root .nhl-map-col{
  flex:1;
  position:relative;
}
.nhl-locator-root .nhl-map{
  height:100%;
  width:100%;
}

.nhl-locator-root .nhl-empty-state{
  padding:30px 16px;
  text-align:center;
  color:var(--nhl-muted);
  font-size:13.5px;
}

.nhl-popup-content h4{margin:0 0 4px 0;font-size:14px;}
.nhl-popup-content p{margin:2px 0;font-size:12.5px;}

@media (max-width: 900px){
  .nhl-locator-root .nhl-layout{
    flex-direction:column;
    height:auto;
  }
  .nhl-locator-root .nhl-filters{
    width:100%;
    flex:0 0 auto;
    border-right:none;
    border-bottom:1px solid var(--nhl-border);
    max-height:180px;
  }
  .nhl-locator-root .nhl-results-col{
    width:100%;
    flex:0 0 auto;
    order:2;
    border-right:none;
  }
  .nhl-locator-root .nhl-map-col{
    order:1;
    height:340px;
  }
  .nhl-locator-root .nhl-results-list{
    max-height:60vh;
  }
}

/* ---------- Referral notice dialog (v1.3.0) ---------- */

/* The self-referral form used to open silently in a new tab. Visitors landed on
   an unfamiliar third-party site with no idea why. This explains it first and
   only navigates when they choose to. */
.nhl-locator-root .nhl-referral-dialog{
  display:none;
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(3,33,27,.62);
  padding:20px;
  align-items:center;
  justify-content:center;
}
.nhl-locator-root .nhl-referral-dialog.is-open{display:flex;}

.nhl-locator-root .nhl-referral-panel{
  position:relative;
  background:#fff;
  border-radius:14px;
  max-width:470px;
  width:100%;
  padding:26px 26px 22px 26px;
  box-shadow:0 20px 60px rgba(3,33,27,.38);
  text-align:left;
}
.nhl-locator-root .nhl-referral-panel h3{
  margin:0 0 12px 0;
  font-size:19px;
  font-weight:700;
  line-height:1.3;
  color:var(--nhl-text,#1c2a27);
}
.nhl-locator-root .nhl-referral-panel p{
  margin:0 0 12px 0;
  font-size:14px;
  line-height:1.6;
  color:var(--nhl-muted,#5c6b67);
}
.nhl-locator-root .nhl-referral-note{
  font-size:12.5px !important;
  background:var(--nhl-chip,#e7f3ef);
  border-radius:8px;
  padding:10px 12px;
}
.nhl-locator-root .nhl-referral-actions{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  margin-top:16px;
}
.nhl-locator-root .nhl-referral-go{
  background:var(--nhl-brand,#0f6e5c);
  border-color:var(--nhl-brand,#0f6e5c);
  color:#fff;
  font-weight:600;
}
.nhl-locator-root .nhl-referral-close{
  position:absolute;
  top:10px; right:12px;
  background:none;
  border:none;
  font-size:24px;
  line-height:1;
  color:var(--nhl-muted,#5c6b67);
  cursor:pointer;
  padding:4px 8px;
}
.nhl-locator-root .nhl-referral-close:hover{color:var(--nhl-text,#1c2a27);}

@media (max-width:520px){
  .nhl-locator-root .nhl-referral-panel{padding:22px 18px 18px 18px;}
  .nhl-locator-root .nhl-referral-actions .nhl-btn{width:100%;justify-content:center;}
}
