.improvement-section {padding:100px 0 40px; background:var(--paper); overflow:clip}
.improvement-intro {margin-bottom:30px}
.improvement-intro h2 {max-width:600px}
.improvement-explorer {display:grid; grid-template-columns:minmax(0,1.7fr) minmax(270px,.8fr); gap:55px; align-items:center}
.improvement-map {position:relative; width:100%; aspect-ratio:1.2; isolation:isolate}
.map-connections {position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none}
.map-perimeter {fill:none; stroke:var(--line); stroke-width:1; stroke-dasharray:2 10; opacity:.7; vector-effect:non-scaling-stroke}
.map-secondary path {fill:none; stroke:var(--line); stroke-width:1; vector-effect:non-scaling-stroke}
.map-branch {color:var(--focus); opacity:.65; transition:color .45s,opacity .45s}
.map-branch>path {fill:none; stroke:currentColor; stroke-width:1; vector-effect:non-scaling-stroke}
.map-branch.is-active {color:var(--teal); opacity:1}
.map-branch.is-active>path {stroke-width:1.8}
.map-particle {fill:currentColor}
.map-centre {position:absolute; top:47.5%; left:50%; transform:translate(-50%,-50%); text-align:center; pointer-events:none; color:var(--blue); width:220px; background:var(--paper); padding:16px 12px}
.map-centre>span {display:block; font-size:36px; letter-spacing:-.035em; line-height:1.15; font-weight:300}
.map-centre strong {font-weight:500}
.map-centre>svg {width:17px; height:17px; margin:20px auto -24px; fill:var(--teal)}
.map-areas {position:absolute; inset:0; pointer-events:none}
.area-node {position:absolute; transform:translate(-50%,-10px); display:flex; flex-direction:column; align-items:center; gap:13px; width:155px; min-height:76px; border:0; padding:0 7px 8px; background:transparent; color:var(--body); font-size:16px; line-height:1.4; font-weight:400; pointer-events:auto; border-radius:6px; transition:color .2s}
.area-customers {left:50%; top:10%}
.area-flow {left:83.333%; top:30%}
.area-capacity {left:83.333%; top:68.333%}
.area-quality {left:50%; top:85.833%}
.area-causes {left:16.667%; top:68.333%}
.area-decisions {left:16.667%; top:30%}
.area-dot {display:block; width:10px; height:10px; margin-top:5px; border-radius:50%; background:var(--focus); position:relative; flex:none; transition:background .3s,transform .3s}
.area-dot:after {content:""; position:absolute; inset:-7px; border:1px solid var(--focus); border-radius:50%; transform:scale(.5); opacity:0; transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .3s}
.area-label {background:var(--paper); padding:2px 5px; max-width:100%}
.area-node[aria-selected=true] {color:var(--ink); font-weight:550}
.area-node[aria-selected=true] .area-dot {background:var(--teal); transform:scale(1.05)}
.area-node[aria-selected=true] .area-dot:after {transform:scale(1); opacity:1}
.area-node:hover {color:var(--blue)}
.area-node:hover .area-dot {background:var(--teal); transform:scale(1.2)}
.area-insight {border-top:1px solid var(--line); padding-top:31px; min-height:388px; display:flex; flex-direction:column; justify-content:space-between; gap:28px; min-width:0}
.area-insight h3 {font-size:32px; line-height:1.2; max-width:345px; margin:0 0 24px; text-wrap:balance}
.area-detail {font-size:15px; color:var(--body); line-height:1.85; margin:0 0 27px; max-width:42ch}
.area-tools {display:flex; flex-wrap:wrap; gap:6px 18px; font-size:12px; font-weight:500; color:var(--body); margin-bottom:15px}
.area-tools span {padding:0 0 6px; border-bottom:1px solid var(--line)}
.area-insight .text-link {font-size:14px}
.map-guide-link {display:inline-flex; gap:12px; align-items:center; min-height:44px; font-size:13px; color:var(--body); text-decoration:none; align-self:flex-start}
.map-guide-link svg {width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round}
.map-guide-link:hover {text-decoration:underline}
.map-guide-link svg,.area-insight .text-link svg {transition:transform .25s cubic-bezier(.16,1,.3,1)}
.map-guide-link:is(:hover,:focus-visible) svg,.area-insight .text-link:is(:hover,:focus-visible) svg {transform:translateX(4px)}
.map-footnote {padding-top:24px; margin-top:10px; border-top:1px solid var(--line)}
.map-footnote p {font-size:13px; color:var(--muted); margin:0}
@media(max-width:1100px) {
  .improvement-section {padding-top:85px}
  .improvement-explorer {grid-template-columns:minmax(0,1.4fr) minmax(245px,.8fr); gap:25px}
  .area-node {width:135px; font-size:14px}
  .map-centre {width:175px}
  .map-centre>span {font-size:29px}
  .area-insight h3 {font-size:29px}
  .area-detail {font-size:14px}
}
@media(max-width:900px) {
  .improvement-explorer {grid-template-columns:1fr}
  .improvement-map {max-width:700px; justify-self:center}
  .area-insight {display:grid; grid-template-columns:1fr auto; min-height:0; gap:35px; padding-top:30px; align-items:end; margin-top:15px}
  .area-insight h3 {max-width:550px}
  .area-detail {max-width:60ch}
  .map-guide-link {margin-bottom:0}
  .map-footnote {margin-top:30px}
}
@media(max-width:760px) {
  .improvement-section {padding:65px 0 20px}
  .improvement-intro {margin-bottom:18px}
  .improvement-intro h2 {font-size:36px; max-width:440px}
  .improvement-explorer {gap:20px}
  .improvement-map {height:410px; aspect-ratio:auto; max-width:470px}
  .area-node {width:116px; font-size:14px; gap:11px; min-height:72px; padding-inline:2px}
  .area-label {padding:2px 3px}
  .map-centre {width:151px; padding:14px 6px}
  .map-centre>span {font-size:26px}
  .map-centre>svg {width:13px; height:13px; margin:16px auto -20px}
  .area-insight {display:block; margin-top:5px; padding-top:28px}
  .area-insight h3 {font-size:31px; max-width:450px; margin-bottom:20px}
  .area-detail {font-size:15px; max-width:500px; margin-bottom:24px}
  .area-tools {font-size:12px; margin-bottom:15px}
  .map-guide-link {margin-top:16px}
  .map-footnote {margin-top:25px; padding-top:19px}
  .map-footnote p {font-size:12px}
}
@media(max-width:400px) {
  .area-node {width:106px; font-size:13px}
  .map-centre {width:135px}
  .map-centre>span {font-size:24px}
}
@media(prefers-reduced-motion:reduce) {
  .map-particle {display:none}
}
