
/* PMI State Campaign Services directory */
.states-map-hero{background:linear-gradient(135deg,#f6f8fb 0%,#fff 55%,#f0f3f8 100%);border-bottom:1px solid var(--line);padding:68px 0 54px;overflow:hidden}
.states-map-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:54px;align-items:center}.states-map-copy h1,.state-hero h1,.state-intro h2,.state-services-section h2,.state-reach h2{font-family:Oswald,sans-serif;text-transform:uppercase}.states-map-copy h1{font-size:clamp(3.2rem,6vw,5.2rem);line-height:.98;margin:10px 0 20px;color:var(--navy)}.states-map-copy p{color:#465269;font-size:1.02rem;max-width:560px}.states-map-note{font-weight:700;color:var(--navy)!important}.prototype-badge{display:inline-flex;margin-top:12px;padding:8px 12px;border-radius:999px;background:#f8e9ea;color:var(--red);font-weight:800;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.us-map-shell{position:relative;min-height:500px;border-radius:14px;background:#fff;border:1px solid #dfe5ee;box-shadow:0 18px 50px rgba(18,27,52,.09);padding:18px}.us-state-map svg{width:100%;height:auto;display:block}.us-state-map .state-shape{fill:#213c72;stroke:#fff;stroke-width:1.2;cursor:default;transition:fill .18s ease,filter .18s ease}.us-state-map .state-shape.is-ready{fill:#b13439;cursor:pointer}.us-state-map .state-shape.is-ready:hover{fill:#d14349;filter:drop-shadow(0 3px 5px rgba(0,0,0,.22))}.map-tooltip{position:absolute;pointer-events:none;background:#0d1934;color:#fff;padding:8px 11px;border-radius:6px;font-size:.78rem;font-weight:700;box-shadow:0 8px 22px rgba(0,0,0,.2);z-index:5}.map-noscript{padding:40px;color:var(--muted)}.state-directory-section{background:#fff}.state-directory-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px 14px;margin-top:28px}.state-directory-link{min-height:58px;border:1px solid var(--line);border-radius:8px;padding:11px 12px;display:flex;flex-direction:column;justify-content:center;background:#fff}.state-directory-link span{font-weight:800;color:var(--navy);font-size:.85rem}.state-directory-link small{font-size:.68rem;color:#8793a7;margin-top:2px}.state-directory-link.is-ready{border-color:#d5a4a7;background:#fff9f9}.state-directory-link.is-ready span,.state-directory-link.is-ready small{color:var(--red)}.state-directory-link.is-ready:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(18,27,52,.08)}
.state-hero{position:relative;min-height:500px;display:flex;align-items:center;color:#fff;overflow:hidden;background:#101d3b}.state-hero:before{content:'';position:absolute;inset:0;background-image:var(--state-hero);background-size:cover;background-position:center;transform:scale(1.015)}.state-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,25,52,.98) 0%,rgba(18,35,72,.95) 43%,rgba(18,35,72,.62) 66%,rgba(18,35,72,.28) 100%)}.state-hero-inner{position:relative;z-index:2;padding:78px 0;max-width:100%}.state-hero .breadcrumbs{color:#d8dfeb}.state-hero .eyebrow{color:#e2a6aa;margin-top:24px}.state-hero h1{font-size:clamp(3.3rem,6vw,5.8rem);line-height:.98;max-width:760px;margin:10px 0 18px}.state-hero p{font-size:1.06rem;color:#dce4f1;max-width:640px}.state-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.state-hero .btn-outline{border-color:rgba(255,255,255,.48);color:#fff}.photo-credit{position:absolute;right:18px;bottom:13px;color:rgba(255,255,255,.72);font-size:.62rem;z-index:3;background:rgba(5,12,27,.5);padding:5px 7px;border-radius:4px}.photo-credit:hover{color:#fff}.state-two-col{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:64px;align-items:start}.state-intro h2,.state-services-section h2,.state-reach h2{font-size:clamp(2.5rem,4vw,3.7rem);margin:10px 0 16px}.state-intro p,.state-reach p{color:#465269}.state-locality{margin-top:24px;background:#f6f8fb;border-left:4px solid var(--red);padding:16px 18px;color:#465269}.state-capital-card{background:var(--navy2);color:#fff;border-radius:10px;padding:28px;border-top:5px solid var(--red)}.state-capital-card span{display:block;color:#9fabc0;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}.state-capital-card strong{display:block;font-family:Oswald,sans-serif;font-size:2.4rem;text-transform:uppercase;margin:4px 0 10px}.state-capital-card p{color:#c7d0df;font-size:.86rem}.state-capital-card a{font-weight:800;color:#fff}.state-services-section{background:#f4f6f9}.state-services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:34px}.state-service-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:22px;min-height:190px;display:flex;flex-direction:column;transition:.22s}.state-service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:transparent}.state-service-card h3{font-size:1.02rem;color:var(--navy);margin:0 0 8px}.state-service-card p{font-size:.82rem;color:var(--muted);margin:0 0 14px}.state-service-card span{margin-top:auto;color:var(--red);font-size:.76rem;font-weight:800}.state-reach-grid{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:58px}.state-keywords-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:28px;border-top:5px solid var(--red)}.state-keywords-card ul{margin:16px 0 0;padding-left:20px;color:#465269}.state-keywords-card li{margin:8px 0}.state-contact-section{background:#fff}.state-other{background:#eef2f6;border-top:1px solid var(--line);padding:16px 0;color:#607087;font-size:.8rem}.state-other span{font-weight:800;color:var(--navy)}.state-other a{color:var(--red);font-weight:800}
@media(max-width:980px){.states-map-grid,.state-two-col,.state-reach-grid{grid-template-columns:1fr}.us-map-shell{min-height:420px}.state-directory-grid{grid-template-columns:repeat(3,1fr)}.state-services-grid{grid-template-columns:repeat(2,1fr)}.state-hero-overlay{background:linear-gradient(90deg,rgba(13,25,52,.97),rgba(18,35,72,.75))}}
@media(max-width:680px){.states-map-hero{padding:42px 0 34px}.states-map-grid{gap:28px}.states-map-copy h1{font-size:3.1rem}.us-map-shell{min-height:290px;padding:8px}.state-directory-grid{grid-template-columns:1fr 1fr}.state-services-grid{grid-template-columns:1fr}.state-hero{min-height:560px}.state-hero:before{background-position:62% center}.state-hero-overlay{background:linear-gradient(90deg,rgba(13,25,52,.96),rgba(13,25,52,.72))}.state-hero-inner{padding:64px 0}.state-hero h1{font-size:3.45rem}.state-hero-actions{display:grid}.photo-credit{left:14px;right:auto;max-width:85%}}

/* V2: map-first navigation + PMI-style state heroes */
.states-map-grid{grid-template-columns:.62fr 1.38fr;gap:42px}
.us-map-shell{min-height:0;padding:12px;background:transparent;border:0;box-shadow:none}
.us-state-map .state-shape{fill:#213c72;stroke:#fff;stroke-width:1.1;cursor:default;transition:fill .18s ease,filter .18s ease,transform .18s ease}
.us-state-map .state-shape.is-ready{fill:#b13439;cursor:pointer}
.us-state-map .state-shape.is-ready:hover,.us-state-map .state-shape.is-ready:focus{fill:#d14349;filter:drop-shadow(0 4px 7px rgba(0,0,0,.25));outline:none}
.state-labels text{fill:#fff;font:700 17px Arial,sans-serif;text-shadow:0 1px 2px rgba(0,0,0,.4)}
.map-instructions{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:36px 0}
.map-instructions-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:52px;align-items:end}
.map-instructions h2{font-family:Oswald,sans-serif;text-transform:uppercase;font-size:2.5rem;margin:7px 0 0;color:var(--navy)}
.map-instructions p{margin:0;color:#59657a;max-width:760px}
.state-directory-section{display:none!important}

.state-hero{position:relative;min-height:500px;display:flex;align-items:center;overflow:hidden;background:#101d3b;color:#fff}
.state-hero:before{content:'';position:absolute;top:0;right:0;bottom:0;left:42%;background-image:var(--state-hero);background-size:cover;background-position:center center;transform:none;filter:saturate(.82) contrast(1.04)}
.state-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#101d3b 0%,#101d3b 38%,rgba(16,29,59,.98) 44%,rgba(16,29,59,.86) 53%,rgba(16,29,59,.52) 66%,rgba(16,29,59,.18) 82%,rgba(16,29,59,.08) 100%);z-index:1}
.state-hero-overlay{display:none}
.state-hero-inner{position:relative;z-index:2;padding:76px 0;max-width:100%}
.state-hero-inner>*{max-width:590px}
.state-hero .breadcrumbs,.state-hero .breadcrumbs a{color:#d8dfeb}
.state-hero .breadcrumbs a:hover{color:#fff}
.state-hero .eyebrow{color:#e8aeb1;margin-top:24px}
.state-hero h1{color:#fff!important;font-size:clamp(3.3rem,5.6vw,5.4rem);line-height:.98;max-width:620px;margin:10px 0 18px;text-shadow:0 2px 16px rgba(0,0,0,.18)}
.state-hero p{font-size:1.06rem;color:#dce4f1;max-width:540px}
.state-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.state-hero .btn-outline{border-color:rgba(255,255,255,.48);color:#fff}
.photo-credit{right:16px;bottom:12px;z-index:3;background:rgba(7,14,31,.62);color:rgba(255,255,255,.76)}

@media(max-width:980px){
  .states-map-grid{grid-template-columns:1fr;gap:24px}
  .map-instructions-grid{grid-template-columns:1fr;gap:14px}
  .state-hero:before{left:28%}
  .state-hero:after{background:linear-gradient(90deg,#101d3b 0%,rgba(16,29,59,.98) 43%,rgba(16,29,59,.78) 66%,rgba(16,29,59,.3) 100%)}
}
@media(max-width:680px){
  .states-map-copy h1{font-size:3rem}
  .us-map-shell{padding:0}
  .state-labels text{font-size:13px}
  .state-hero{min-height:600px}
  .state-hero:before{left:0;top:43%;background-position:center center;opacity:.72}
  .state-hero:after{background:linear-gradient(180deg,#101d3b 0%,#101d3b 45%,rgba(16,29,59,.88) 61%,rgba(16,29,59,.44) 100%)}
  .state-hero-inner{align-self:start;padding:58px 0 260px}
  .state-hero h1{font-size:3.3rem}
  .photo-credit{left:14px;right:auto;bottom:10px;max-width:88%}
}


/* V3 self-contained states directory */
.us-map-shell{position:relative}
.map-fallback{position:relative;width:100%;z-index:1}
.map-fallback img{display:block;width:100%;height:auto;filter:sepia(.08) saturate(.72) hue-rotate(175deg) brightness(.88);opacity:.98}
.us-state-map{position:absolute;inset:0;z-index:2}
.us-state-map:empty{pointer-events:none}
.map-hotspot{position:absolute;z-index:3;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(177,52,57,.92);border:2px solid #fff;border-radius:50%;font:800 12px/1 Arial,sans-serif;box-shadow:0 4px 12px rgba(0,0,0,.18);transition:.18s}
.map-hotspot:hover{transform:scale(1.12);background:#d14349}
.map-hotspot span{pointer-events:none}
.map-hotspot-tx{left:47.5%;top:64%;width:38px;height:38px}
.map-hotspot-ga{left:76.5%;top:61%;width:31px;height:31px}
.map-hotspot-fl{left:83.5%;top:72%;width:34px;height:34px}

/* When the real SVG map loads on the web, let it visually replace the fallback. */
.us-map-shell.map-loaded .map-fallback{display:none!important}
.us-map-shell.map-loaded .map-hotspot{pointer-events:none}
.us-map-shell.map-loaded .us-state-map{position:relative;inset:auto}


/* V4 — compact PMI-style states index hero */
.states-map-hero-dark{
  background:
    radial-gradient(circle at 88% 20%,rgba(65,103,165,.18),transparent 34%),
    linear-gradient(105deg,#101d3b 0%,#14294f 46%,#102345 100%);
  border-bottom:3px solid var(--red);
  padding:54px 0 50px;
  color:#fff;
}
.states-map-hero-dark .states-map-grid{
  grid-template-columns:minmax(330px,.78fr) minmax(560px,1.22fr);
  gap:54px;
  align-items:center;
}
.states-map-hero-dark .states-map-copy{
  align-self:center;
}
.states-map-hero-dark .states-map-copy .eyebrow{
  color:#e7a6aa;
}
.states-map-hero-dark .states-map-copy h1{
  color:#fff;
  font-size:clamp(3.5rem,5vw,5.05rem);
  line-height:.96;
  max-width:560px;
  margin:10px 0 20px;
}
.states-map-hero-dark .states-map-copy p{
  color:#dce4f1;
  max-width:520px;
  font-size:1rem;
  line-height:1.65;
}
.states-map-hero-dark .states-map-note{
  color:#fff!important;
  margin-top:16px;
}
.states-active-note{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:18px;
  color:#aebbd0;
  font-size:.78rem;
  font-weight:700;
}
.states-active-note span{
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--red);
  box-shadow:0 0 0 5px rgba(177,52,57,.16);
  flex:0 0 auto;
}
.states-map-hero-dark .us-map-shell{
  width:100%;
  max-width:800px;
  justify-self:end;
  margin:0;
  padding:0;
}
.states-map-hero-dark .us-state-map svg{
  width:100%;
  height:auto;
}
.states-map-hero-dark .us-state-map .state-shape{
  fill:#294878;
  stroke:#dce6f3;
  stroke-width:1.25;
}
.states-map-hero-dark .us-state-map .state-shape.is-ready{
  fill:#b13439;
}
.states-map-hero-dark .us-state-map .state-shape.is-ready:hover,
.states-map-hero-dark .us-state-map .state-shape.is-ready:focus{
  fill:#e04a50;
}
.states-map-hero-dark .state-labels text{
  fill:#fff;
}
.states-map-hero-dark .map-fallback img{
  filter:brightness(.56) sepia(.08) saturate(1.35) hue-rotate(178deg);
  opacity:.9;
}
.states-map-hero-dark .map-hotspot{
  background:#b13439;
}

@media(max-width:1100px){
  .states-map-hero-dark .states-map-grid{
    grid-template-columns:minmax(300px,.8fr) minmax(500px,1.2fr);
    gap:34px;
  }
  .states-map-hero-dark .states-map-copy h1{
    font-size:4rem;
  }
}
@media(max-width:900px){
  .states-map-hero-dark{
    padding:46px 0 40px;
  }
  .states-map-hero-dark .states-map-grid{
    grid-template-columns:1fr;
    gap:32px;
  }
  .states-map-hero-dark .states-map-copy{
    max-width:700px;
  }
  .states-map-hero-dark .states-map-copy h1{
    max-width:700px;
  }
  .states-map-hero-dark .us-map-shell{
    max-width:760px;
    justify-self:center;
  }
}
@media(max-width:680px){
  .states-map-hero-dark{
    padding:38px 0 32px;
  }
  .states-map-hero-dark .states-map-copy h1{
    font-size:3.15rem;
  }
  .states-map-hero-dark .states-map-copy p{
    font-size:.94rem;
  }
}


/* V5 — interactive map height correction */
.us-map-shell.map-loaded .map-fallback{
  display:none!important;
}
.us-map-shell.map-loaded .us-state-map{
  position:relative!important;
  inset:auto!important;
  width:100%;
}
.states-map-hero-dark .us-map-shell.map-loaded{
  min-height:0!important;
}


/* V6 — map labels + CTA polish */
.state-callouts .callout-line{
  fill:none;
  stroke:#dce6f3;
  stroke-width:1.25;
  vector-effect:non-scaling-stroke;
}
.state-callouts .callout-box{
  fill:#294878;
  stroke:#dce6f3;
  stroke-width:1.1;
}
.state-callouts .callout-text{
  fill:#fff;
  font:800 15px/1 Arial,sans-serif;
  pointer-events:none;
}
.state-callout.is-ready{
  cursor:pointer;
}
.state-callout.is-ready .callout-box{
  fill:#b13439;
}
.state-callout.is-ready:hover .callout-box,
.state-callout.is-ready:focus .callout-box{
  fill:#df474e;
}
.cta-flex .btn{
  white-space:nowrap!important;
  flex:0 0 auto;
}


/* FINAL 50-state rollout */
.states-map-hero-dark .us-state-map .state-shape.is-ready{
  fill:#294878!important;
  cursor:pointer;
}
.states-map-hero-dark .us-state-map .state-shape.is-ready:hover,
.states-map-hero-dark .us-state-map .state-shape.is-ready:focus{
  fill:#b13439!important;
}
.state-callout.is-ready .callout-box{
  fill:#294878!important;
}
.state-callout.is-ready:hover .callout-box,
.state-callout.is-ready:focus .callout-box{
  fill:#b13439!important;
}
.cta-flex .btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  min-width:175px;
  white-space:nowrap!important;
}
