/*
 * Shared metric-story layout primitives.
 *
 * Education, Employment and Population deliberately reuse the same sticky
 * story, map and chapter-card scaffold. These rules belong to the Data Room
 * engine so every metric renders correctly when installed on its own.
 */
.pi-context{position:sticky;top:0;z-index:6;background:rgba(244,246,247,.97);backdrop-filter:blur(6px);border-bottom:1px solid #e7ebee;padding:11px 26px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.pi-ctx-txt{font-size:15px;color:#414142}
.pi-year{display:flex;align-items:center;gap:9px;font-size:12px;color:#6b7780}
.pi-year input[type=range]{width:220px;accent-color:#018399;cursor:pointer}
.pi-year b{color:#018399;font-size:15px}
.pi-placeholder{background:#fff;border:1px dashed #cdd6da;border-radius:14px;padding:60px 20px;text-align:center;color:#8a969c}

.pi-scrolly{position:relative}
.pi-graphic{position:sticky;top:58px;height:var(--pih);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1;padding:0 8%;text-align:center}
.pi-graphic::before{content:"";position:absolute;width:660px;height:660px;border-radius:50%;background:radial-gradient(circle,rgba(1,131,153,.11),transparent 62%);z-index:-1;pointer-events:none;transition:background .9s ease}
.pi-graphic[data-accent="market"]::before{background:radial-gradient(circle,rgba(1,98,119,.13),transparent 62%)}
.pi-graphic[data-accent="twist"]::before{background:radial-gradient(circle,rgba(0,52,61,.16),transparent 60%)}
.pig-dots{position:absolute;right:22px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px}
.pig-dots span{width:9px;height:9px;border-radius:50%;background:#c7d4d7;transition:all .3s;cursor:pointer}
.pig-dots span.on{background:#018399;transform:scale(1.4)}
.pig-dots span:hover{background:#3aa0ad}
.pig-num{font-size:82px;font-weight:800;color:#1f2a2e;line-height:1;letter-spacing:-2px;transition:color .4s;min-height:82px}
.pig-cap{font-size:22px;color:#414142;margin-top:8px;margin-bottom:34px;min-height:28px}
.pig-hover{margin-top:20px;font-size:15px;color:#6b7780;min-height:24px}
.pig-hover b{color:#018399}
.pi-steps{position:relative;z-index:2;margin-top:calc(-1 * var(--pih));pointer-events:none}
.pi-step{min-height:var(--pih);display:flex;align-items:center;pointer-events:none}
.pi-step:last-child{min-height:calc(var(--pih) + 12vh)}
.pi-step-card{pointer-events:auto;max-width:400px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);padding:22px 26px;border-radius:16px;margin-left:7%;box-shadow:0 8px 30px rgba(0,0,0,.12);opacity:.32;transform:translateY(10px);transition:opacity .45s,transform .45s;border:1px solid rgba(1,131,153,.10)}
.pi-step-card.on{opacity:1;transform:translateY(0)}
.pi-step-card h3{font-size:25px;color:#1f2a2e;margin:5px 0 10px;line-height:1.2}
.pi-step-card p{font-size:16px;color:#414142;line-height:1.55;margin:0 0 8px}
.pi-step-card b{color:#016277}
.pi-step-eyebrow{color:#018399;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em}
.pi-step-cue{color:#018399;font-weight:600;font-size:13px}

.pop-embed{--pih:calc(100vh - 210px)}
.pop-graphic .pig-num{font-size:58px;min-height:58px}
.pop-mapwrap{position:relative;display:flex;justify-content:center;width:100%}
.pop-map{height:min(52vh,520px);width:auto;display:block;overflow:visible}
.pop-prov{fill:#dfeaec;stroke:#fff;stroke-width:1;transition:fill .5s,opacity .3s}
.pop-prov.hot{stroke:#016277;stroke-width:2}
.pop-dot{transition:fill .5s,opacity .25s;filter:drop-shadow(0 0 3px rgba(1,131,153,.35));pointer-events:none}
.pop-legend{position:absolute;left:8px;bottom:6px;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);border:1px solid #e6edee;border-radius:12px;padding:9px 11px;min-width:230px;display:none}
.pop-leg{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:12.5px;color:#33474d;cursor:pointer}
.pop-leg:hover{color:#016277}
.pop-sw{width:11px;height:11px;border-radius:3px;flex:0 0 11px}
.pop-leg-name{flex:0 0 100px}
.pop-leg-bar{flex:1;height:7px;background:#eef2f3;border-radius:4px;overflow:hidden}
.pop-leg-bar i{display:block;height:100%;border-radius:4px;transition:width .5s}
.pop-leg-pct{flex:0 0 44px;text-align:right;font-variant-numeric:tabular-nums}
.pop-overlay{position:absolute;inset:0;display:none;align-items:center;justify-content:center}

/* the "there is more below" cue, shared by every metric overview */
.pi-graphic.pi-cued{padding-bottom:46px}
.pi-scrollcue{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);z-index:5;
  display:flex;align-items:center;gap:9px;pointer-events:none;white-space:nowrap;
  background:rgba(255,255,255,.93);backdrop-filter:blur(6px);border:1px solid #dbeaec;
  border-radius:22px;padding:7px 16px;font-size:13px;font-weight:600;color:#016277;
  box-shadow:0 6px 22px rgba(0,0,0,.10);animation:pi-cue-in .55s ease .9s both}
.pi-scrollcue i{font-style:normal;font-size:15px;animation:pi-cue-bob 1.7s ease-in-out infinite}
.pi-scrollcue.pi-cue-gone{opacity:0;transform:translate(-50%,10px);
  transition:opacity .45s ease,transform .45s ease}
@keyframes pi-cue-in{from{opacity:0;transform:translate(-50%,12px)}
                     to{opacity:1;transform:translate(-50%,0)}}
@keyframes pi-cue-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}
@media (prefers-reduced-motion:reduce){
  .pi-scrollcue,.pi-scrollcue i{animation:none}
}
