:root{
  --nx-green:#0bbf64; --nx-green-2:#09a557;
  --nx-grey:#666666; --nx-ink:#0f1115; --nx-ink-2:#1a1d22;
  --nx-line:#e6e8eb; --nx-white:#ffffff; --nx-bg:#f6f7f9;
  --nx-red:#e0352b; --nx-amber:#f5a623; --nx-mute:#9aa0a6;
  --nx-radius:6px; --nx-shadow:0 6px 24px rgba(15,17,21,.08);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--nx-white);color:var(--nx-ink);
  font-family:"Archivo",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit}
.visually-hidden{position:absolute;clip:rect(0 0 0 0);width:1px;height:1px;overflow:hidden}
.nx-wrap{max-width:1240px;margin:0 auto;padding:0 24px}

/* Hero */
.nx-hero{background:var(--nx-ink);color:var(--nx-white);padding:36px 0 28px;
  background-image:radial-gradient(900px 320px at 85% -10%,rgba(11,191,100,.18),transparent 60%)}
.nx-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,520px);gap:32px;align-items:end}
.nx-eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--nx-green);margin:0 0 10px;font-weight:600}
.nx-eyebrow-light{color:var(--nx-green)}
.nx-hero h1{font-size:clamp(26px,3.6vw,42px);line-height:1.05;margin:0 0 8px;font-weight:800;letter-spacing:-.01em}
.nx-sub{font-size:clamp(14px,1.3vw,17px);color:#c9ced6;margin:0;max-width:560px}
.nx-hero-cta{margin:14px 0 0;color:#c9ced6;font-size:13px}
.nx-link{color:var(--nx-green);text-decoration:none;font-weight:600}

.nx-search-stack{display:flex;flex-direction:column;gap:10px}
.nx-search{display:flex;gap:8px;background:#0b0d10;padding:6px;border-radius:var(--nx-radius);border:1px solid #20242b}
.nx-search input{flex:1;min-width:0;border:0;background:transparent;color:var(--nx-white);font:inherit;padding:12px;outline:0;font-size:15px}
.nx-search input::placeholder{color:#8a8f97}
.nx-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--nx-radius);
  padding:12px 18px;font:600 13px/1 "Archivo",sans-serif;letter-spacing:.04em;text-transform:uppercase;
  border:1px solid transparent;cursor:pointer;text-decoration:none;transition:transform .05s ease, background .15s ease, color .15s ease, border-color .15s ease;white-space:nowrap}
.nx-btn:active{transform:translateY(1px)}
.nx-btn-primary{background:var(--nx-green);color:#04150b;border-color:var(--nx-green)}
.nx-btn-primary:hover{background:var(--nx-green-2);border-color:var(--nx-green-2)}
.nx-btn-ghost{background:transparent;color:var(--nx-white);border-color:#3a3f47}
.nx-btn-ghost:hover{border-color:var(--nx-green);color:var(--nx-green)}
.nx-loc-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.nx-btn-loc{padding:10px 14px;font-size:12px}
.nx-loc-note{color:#9aa0a6;font-size:12px;flex:1;min-width:160px}
.nx-loc-status{margin:0;color:#c9ced6;font-size:13px;background:#0b0d10;border:1px solid #20242b;border-radius:var(--nx-radius);padding:10px 12px}

/* Stats */
.nx-stats{background:var(--nx-bg);border-top:1px solid var(--nx-line);border-bottom:1px solid var(--nx-line)}
.nx-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:18px 0}
.nx-stat{display:flex;flex-direction:column;gap:2px}
.nx-stat-num{font-size:22px;font-weight:800;color:var(--nx-ink);line-height:1.1}
.nx-stat-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--nx-grey)}

/* Map area */
.nx-map-section{padding:24px 0 32px}
.nx-map-grid{display:grid;grid-template-columns:340px 1fr;gap:20px;align-items:start}
.nx-side{background:var(--nx-white);border:1px solid var(--nx-line);border-radius:var(--nx-radius);padding:16px;box-shadow:var(--nx-shadow)}
.nx-h2{margin:0 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--nx-grey)}
.nx-filters{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--nx-line)}
.nx-chk{display:flex;align-items:center;gap:8px;font-size:14px}
.nx-sel{display:flex;flex-direction:column;font-size:11px;color:var(--nx-grey);text-transform:uppercase;letter-spacing:.08em;gap:4px}
.nx-sel select{padding:9px 10px;border:1px solid var(--nx-line);border-radius:var(--nx-radius);font:inherit;color:var(--nx-ink);background:#fff;font-size:14px}
.nx-map{height:600px;border-radius:var(--nx-radius);border:1px solid var(--nx-line);box-shadow:var(--nx-shadow);overflow:hidden}
.nx-results{max-height:520px;overflow:auto;display:flex;flex-direction:column;gap:8px;padding-right:2px}
.nx-list-header{margin:0 0 8px;color:var(--nx-grey);font-size:12px;text-transform:none;letter-spacing:0;font-weight:600}

/* Cards */
.nx-card{border:1px solid var(--nx-line);border-radius:var(--nx-radius);padding:10px 12px;cursor:pointer;background:#fff;transition:border-color .15s ease, box-shadow .15s ease, background .15s ease}
.nx-card:hover{border-color:var(--nx-green)}
.nx-card .row{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--nx-grey);align-items:center}
.nx-card .row + .row{margin-top:3px}
.nx-card h3{margin:4px 0 4px;font-size:14px;line-height:1.25;color:var(--nx-ink)}
.nx-card .nx-dist{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--nx-grey);font-weight:600}
.nx-card--selected{border-color:var(--nx-green);box-shadow:0 0 0 2px rgba(11,191,100,.18);background:#f3fbf6}

/* Pills */
.nx-pill{display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding:2px 7px;border-radius:999px;font-weight:600;line-height:1.6}
.nx-pill.unplanned{background:#fde6e4;color:#9c1f17}
.nx-pill.planned{background:#fff1d6;color:#8a5a06}
.nx-pill.restored{background:#e6f7ee;color:#0a6b3a}

.nx-empty{padding:14px;border:1px dashed var(--nx-line);border-radius:var(--nx-radius);color:var(--nx-grey);font-size:13px;line-height:1.45}
.nx-empty a{color:var(--nx-green);font-weight:600;text-decoration:none}

/* Leaflet popup */
.leaflet-popup-content{font-family:inherit;margin:12px 14px;min-width:220px}
.leaflet-popup-content h4{margin:0 0 6px;font-size:14px}
.leaflet-popup-content dl{margin:6px 0 0;display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:12px}
.leaflet-popup-content dt{color:var(--nx-grey)}
.leaflet-popup-content a{color:var(--nx-green);font-weight:600;text-decoration:none}

/* Outage markers */
.nx-bull{position:relative;width:22px;height:22px}
.nx-bull::before,.nx-bull::after{content:"";position:absolute;inset:0;border-radius:50%}
.nx-bull::before{background:currentColor;opacity:.25;animation:pulse 1.8s ease-out infinite}
.nx-bull::after{inset:6px;background:currentColor;box-shadow:0 0 0 2px #fff}
.nx-bull.unplanned{color:var(--nx-red)}
.nx-bull.planned{color:var(--nx-amber)}
.nx-bull.restored{color:var(--nx-mute)}
@keyframes pulse{0%{transform:scale(.8);opacity:.6}100%{transform:scale(1.8);opacity:0}}

/* User location dot */
.nx-userdot{width:18px;height:18px;border-radius:50%;background:#1a73e8;border:3px solid #fff;box-shadow:0 0 0 2px #1a73e8,0 2px 6px rgba(0,0,0,.25)}

/* Lead-gen */
.nx-leadgen{background:var(--nx-ink-2);color:var(--nx-white);padding:56px 0}
.nx-leadgen-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:36px;align-items:center}
.nx-h1{margin:8px 0 14px;font-size:clamp(24px,3vw,36px);font-weight:800;line-height:1.1}
.nx-lead{color:#c9ced6;max-width:560px;font-size:16px;margin:0 0 22px}
.nx-cta-row{display:flex;gap:12px;flex-wrap:wrap}
.nx-leadgen-aside{background:#0b0d10;border:1px solid #20242b;border-radius:var(--nx-radius);padding:20px;color:#c9ced6}

/* Footer */
.nx-foot{padding:28px 0 40px;background:var(--nx-white);border-top:1px solid var(--nx-line)}
.nx-disclaimer{color:var(--nx-grey);font-size:13px;max-width:980px;margin:0 0 14px;line-height:1.55}
.nx-sources{color:var(--nx-grey);font-size:12px;margin:0}
.nx-sources a{color:var(--nx-grey);text-decoration:underline;text-underline-offset:2px}

/* ===================== Responsive ===================== */

/* Large tablet / small desktop */
@media (max-width: 1080px){
  .nx-hero-grid{grid-template-columns:1fr;gap:20px;align-items:start}
  .nx-hero{padding:32px 0 24px}
  .nx-search-stack{max-width:640px}
}

/* Tablet */
@media (max-width: 960px){
  .nx-stats-grid{grid-template-columns:repeat(4,1fr);gap:12px;padding:14px 0}
  .nx-stat-num{font-size:20px}
  .nx-stat-lbl{font-size:10px}
  .nx-map-grid{grid-template-columns:1fr;gap:0}
  .nx-map{height:56vh;min-height:380px;border-radius:0;border-left:0;border-right:0}
  .nx-side{border-radius:14px 14px 0 0;border-left:0;border-right:0;border-bottom:0;margin-top:-14px;position:relative;z-index:1;box-shadow:0 -8px 24px rgba(15,17,21,.08)}
  .nx-side::before{content:"";display:block;width:40px;height:4px;border-radius:2px;background:var(--nx-line);margin:0 auto 10px}
  .nx-results{max-height:none}
  .nx-map-section{padding:16px 0 24px}
  .nx-wrap{padding:0 16px}
}

/* Phone */
@media (max-width: 640px){
  .nx-hero{padding:24px 0 20px}
  .nx-hero h1{font-size:clamp(22px,7vw,30px);margin-bottom:6px}
  .nx-sub{font-size:14px}
  .nx-eyebrow{font-size:11px;margin-bottom:8px}
  .nx-search{flex-direction:column;padding:8px;gap:8px}
  .nx-search input{width:100%;padding:12px 10px}
  .nx-search .nx-btn{width:100%}
  .nx-btn-loc{width:100%;padding:12px 14px}
  .nx-loc-row{flex-direction:column;align-items:stretch;gap:8px}
  .nx-loc-note{flex:none;font-size:11px;text-align:center}
  .nx-hero-cta{font-size:12px}
  .nx-stats-grid{grid-template-columns:repeat(2,1fr);gap:10px;padding:12px 0}
  .nx-stat-num{font-size:18px}
  .nx-leadgen{padding:36px 0}
  .nx-leadgen-grid{grid-template-columns:1fr;gap:20px}
  .nx-map{height:54vh;min-height:340px}
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  .nx-bull::before{animation:none}
  .nx-btn,.nx-card{transition:none}
}

/* Phone refinement: shrink last-data-refresh stat to fit one line */
@media (max-width: 640px){
  .nx-stat-num{font-size:clamp(14px,4.2vw,18px);line-height:1.2}
  .nx-stat-lbl{font-size:10px}
  .nx-stats-grid{gap:8px 12px}
}


/* === Generator Hire CTAs === */
.nx-btn-sm{padding:8px 14px;font-size:13px;border-radius:8px}
.nx-side-cta{
  margin:0 0 14px;
  padding:12px 14px;
  background:#f3f7f4;
  border:1px solid #e1ebe5;
  border-left:3px solid var(--nx-green,#2bb673);
  border-radius:10px;
  color:#1f2a23;
}
.nx-side-cta-title{margin:0 0 4px;font-size:13.5px;font-weight:700;color:#0f1115;letter-spacing:.1px}
.nx-side-cta-body{margin:0 0 10px;font-size:12.5px;line-height:1.45;color:#4a544d}
.nx-side-cta .nx-btn{display:inline-block}
.nx-popup-cta{margin:8px 0 0;padding-top:8px;border-top:1px solid #e6ece8;font-size:12.5px;color:#4a544d}
.nx-popup-cta a.nexus-outage-popup-cta-generator-hire{color:#1f9d63;font-weight:600;text-decoration:none}
.nx-popup-cta a.nexus-outage-popup-cta-generator-hire:hover{text-decoration:underline}
.nx-side-cta + .nx-list-header{margin-top:4px}
@media (max-width: 960px){.nx-side-cta{margin:8px 0 12px}}
@media (max-width: 640px){
  .nx-side-cta{padding:12px}
  .nx-side-cta-title{font-size:13.5px}
  .nx-side-cta-body{font-size:12px}
}
