.threat-page{background:#f3f8f6;color:#173b4b;padding-bottom:76px}
.threat-page .threat-hero{padding-top:64px;padding-bottom:38px}
.threat-page h1{font-size:clamp(36px,4.7vw,62px);line-height:1.08;max-width:850px;margin:16px 0 22px}
.threat-page h1 em{color:#185070;font-style:normal}
.threat-lead{font-size:20px;line-height:1.6;max-width:790px}
.threat-badges{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}
.threat-badges span{font-size:12px;padding:7px 11px;border:1px solid #b8d0d8;border-radius:40px;background:#fff;font-weight:600}
.threat-note{max-width:900px;font-size:14px;line-height:1.7;color:#405c69}
.threat-controls{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 20px;padding:20px;border:1px solid #c6d8df;border-radius:14px;background:white}
.threat-controls label{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:600;flex:1;min-width:190px}
.threat-controls select{min-height:44px;background:#f8fbfa;border:1px solid #aac1cc;border-radius:7px;padding:10px;color:#173b4b;font:inherit;width:100%}
.threat-controls button{align-self:end;min-height:44px;background:#eaf3f5;border:1px solid #aac1cc;border-radius:7px;padding:10px 16px;font:inherit;cursor:pointer;color:#173b4b}
.threat-status{font-size:14px;margin:0 0 18px;line-height:1.7}
.threat-map-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(310px,.8fr);gap:24px;align-items:start}
.threat-map-card{background:#102e40;border-radius:18px;overflow:hidden;color:#e4f3f5;border:1px solid #234b5c}
.threat-map-top{display:flex;justify-content:space-between;gap:16px;padding:21px 24px;font-size:13px;line-height:1.7}
.threat-map-top strong{color:white;font-size:17px}
.threat-map-stage{position:relative;width:100%;aspect-ratio:2/1}
.threat-map-stage img{display:block;width:100%;height:auto}
.threat-pin{position:absolute;left:var(--pin-x);top:var(--pin-y);transform:translate(-50%,-50%);width:44px;height:44px;display:grid;place-items:center;border:0;background:transparent;color:#fff;cursor:pointer}
.threat-pin::after{content:'';width:13px;height:13px;border-radius:50%;background:#2cdbed;border:2px solid #fff;box-shadow:0 0 0 5px #2cdbed20}
.threat-pin[aria-pressed=true]::after{background:#ffc55e;box-shadow:0 0 0 8px #ffc55e30}
.threat-pin span{position:absolute;font:600 11px Arial,sans-serif;white-space:nowrap;top:38px;text-shadow:0 1px 4px #102e40}
.threat-pin[data-country=Norway] span{top:-13px}
.threat-pin[data-country=Ukraine] span{top:10px;left:40px}
.threat-small-dot{display:none;position:absolute;left:var(--pin-x);top:var(--pin-y);transform:translate(-50%,-50%);width:9px;height:9px;border-radius:50%;background:#2cdbed;border:1px solid white;pointer-events:none}
.threat-small-dot.selected{background:#ffc55e}
.threat-legend{padding:10px 24px 20px;display:flex;gap:18px;flex-wrap:wrap;font-size:12px}
.threat-legend span::before{content:'';display:inline-block;width:9px;height:9px;border-radius:50%;background:#2cdbed;margin-right:7px}
.threat-legend span:last-child::before{background:#ffc55e}
.threat-country-choices{display:flex;gap:8px;flex-wrap:wrap;padding:0 24px 24px}
.threat-country-choices button{border:1px solid #517588;background:#173d50;color:#e4f3f5;border-radius:7px;min-height:44px;padding:9px 13px;font:inherit;font-size:13px;cursor:pointer}
.threat-country-choices button[aria-pressed=true]{border-color:#ffc55e;color:#ffdc98;background:#3c3e35}
.threat-map-credit{font-size:12px;line-height:1.6;margin:13px 4px 20px;color:#405c69}
.threat-detail{background:white;border:1px solid #bad2dc;border-radius:18px;padding:26px;min-width:0}
.threat-detail h2{font-size:27px;line-height:1.2;margin:14px 0}
.threat-kind{display:inline-block;font-size:12px;font-weight:600;border-radius:5px;background:#e5f7f8;color:#175664;padding:6px 9px}
.threat-kind.ransomware{background:#fff2d6;color:#684400}
.threat-detail p{font-size:14px;line-height:1.8}
.threat-detail dl{margin:22px 0;font-size:13px}
.threat-detail dt{font-weight:700;margin-top:14px}
.threat-detail dd{margin:4px 0;line-height:1.7;color:#405c69}
.threat-source-list{display:flex;gap:10px;flex-wrap:wrap;font-size:13px;line-height:1.8}
.threat-page a{overflow-wrap:anywhere}
.threat-page a:not(.button){text-decoration:underline;text-underline-offset:4px}
.threat-page a:focus-visible,.threat-page button:focus-visible,.threat-page select:focus-visible{outline:3px solid #1976b9;outline-offset:4px}
.threat-map-card button:focus-visible{outline-color:#fff}
.threat-records{margin-top:24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.threat-record-button{font:inherit;text-align:left;cursor:pointer;border:1px solid #bfd1da;background:white;color:#173b4b;padding:18px;border-radius:12px;min-height:108px;display:flex;flex-direction:column;gap:9px}
.threat-record-button strong{font-size:16px;line-height:1.4}
.threat-record-button span{font-size:12px;line-height:1.5;color:#4a6471}
.threat-record-button[aria-pressed=true]{border:2px solid #185c83;background:#edf7fa;padding:17px}
.threat-case-study{padding-top:68px}
.threat-case-study h2{font-size:clamp(30px,3.3vw,43px);line-height:1.17;max-width:760px;margin:15px 0 22px}
.threat-case-intro{max-width:800px;font-size:17px;line-height:1.8}
.threat-impact{display:flex;gap:30px;flex-wrap:wrap;margin:26px 0;padding:24px;background:#153f55;border-radius:14px;color:#fff}
.threat-impact div{flex:1;min-width:200px}
.threat-impact strong{display:block;font-size:35px;color:#67e3ee;line-height:1.2;margin-bottom:9px}
.threat-impact span{font-size:14px;line-height:1.6}
.threat-step-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0}
.threat-step-controls button{min-height:100px;border:1px solid #b3cbd7;border-radius:12px;background:#fff;color:#173b4b;padding:18px;text-align:left;font:600 15px/1.5 Arial,sans-serif;cursor:pointer}
.threat-step-controls button span{display:block;font-size:12px;color:#406887;margin-bottom:8px}
.threat-step-controls button[aria-pressed=true]{background:#153f55;color:#fff;border-color:#153f55}
.threat-step-controls button[aria-pressed=true] span{color:#67e3ee}
.threat-step-detail{border-left:4px solid #16c3d7;background:white;padding:24px;border-radius:0 12px 12px 0;min-height:150px}
.threat-step-detail h3{margin:0 0 12px;font-size:21px}
.threat-step-detail p{font-size:15px;line-height:1.8;margin:0;max-width:850px}
.threat-lessons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:36px}
.threat-lessons article{padding:25px;background:#e8f1ef;border-radius:12px}
.threat-lessons h3{font-size:20px;line-height:1.4;margin:0 0 12px}
.threat-lessons p{font-size:14px;line-height:1.8}
.threat-methodology{margin-top:40px;border-top:1px solid #c6d8df;padding-top:25px}
.threat-methodology summary{font-size:18px;font-weight:700;cursor:pointer;padding:12px 0}
.threat-methodology p,.threat-methodology li{font-size:14px;line-height:1.8}
.threat-methodology li{margin:10px 0}
.threat-cta{margin-top:38px;padding:30px;border-radius:14px;background:#fff;border:1px solid #c6d8df;display:flex;justify-content:space-between;align-items:center;gap:25px}
.threat-cta h3{margin:0 0 10px;font-size:24px;line-height:1.3}
.threat-cta p{font-size:15px;line-height:1.7;max-width:600px}
.threat-fallback details{background:#fff;padding:18px;border:1px solid #bfd1da;border-radius:10px;margin:12px 0}
.threat-fallback summary{font-weight:700;cursor:pointer}
.threat-fallback p{font-size:14px;line-height:1.8}
.threat-page [hidden]{display:none!important}
@media(max-width:1050px){.threat-map-layout{grid-template-columns:1fr}.threat-records{grid-template-columns:repeat(2,minmax(0,1fr))}.threat-detail{min-height:0}}
@media(max-width:760px){.threat-page .threat-hero{padding-top:38px}.threat-lead{font-size:17px}.threat-step-controls,.threat-lessons{grid-template-columns:repeat(2,minmax(0,1fr))}.threat-cta{display:block}.threat-cta .button{margin-top:12px}.threat-pin{display:none}.threat-map-top{padding:18px}.threat-country-choices{padding:0 18px 20px}.threat-map-top{flex-direction:column;gap:4px}.threat-records{grid-template-columns:1fr}.threat-controls{padding:16px}.threat-controls label{min-width:100%}.threat-step-controls button{padding:13px;font-size:14px;min-height:92px}}
@media(max-width:480px){.threat-lessons{grid-template-columns:1fr}.threat-detail{padding:20px}.threat-impact{gap:22px}.threat-cta{padding:22px}.threat-page h1{font-size:36px}}
@media(max-width:760px){.threat-small-dot{display:block}}
