.planning-experience{background:var(--navy);color:white;padding:75px 5%;--map-ink:#e6edf5;--map-soft:#aab9cb;--map-accent:#ff6370}.planning-intro{max-width:1400px;margin:0 auto 55px}.planning-intro .eyebrow,.planning-beat .eyebrow{color:#ff8992}.planning-intro h2{font-size:clamp(2.8rem,5.3vw,5.5rem);margin-bottom:25px}.planning-intro>p:last-child{color:#c4cfdc;max-width:460px}.planning-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:6%;max-width:1400px;margin:auto;align-items:start}.planning-sticky{position:relative;min-width:0}.planning-map-header{display:flex;justify-content:space-between;gap:16px;font-size:10px;letter-spacing:.12em;padding:16px 0;border-block:1px solid #ffffff35}.planning-map{display:block;width:100%;height:auto;aspect-ratio:1000/650}.map-terrain{fill:none;stroke:#aab9cb;stroke-width:1;opacity:.14}.map-roads{fill:none;stroke:#70819a;stroke-opacity:.2;stroke-width:23;stroke-linecap:round}.map-road-centres{fill:none;stroke:#b7c6d9;stroke-opacity:.35;stroke-width:1;stroke-dasharray:5 8}.map-erfs{fill:#ffffff08;stroke:#8d9bb1;stroke-width:1}.map-roof{fill:#dce7f019;stroke:#aab9cb66}.map-zones rect{fill:#ff637009;stroke:#ff8992;stroke-dasharray:7 7;stroke-width:1.5}.map-zones text{fill:#ffc0c5;font:11px Arial;letter-spacing:2px}.map-demand{fill:#fff;stroke:none}.map-demand .demand-ring{fill:none;stroke:#fff;stroke-opacity:.35;stroke-width:1}.map-fibre{fill:none;stroke-linecap:round;stroke-linejoin:round}.map-feeder{stroke:var(--map-accent);stroke-width:5}.map-distribution{stroke:#fff;stroke-width:2.5}.map-nodes{fill:var(--navy);stroke:#fff;stroke-width:3}.map-nodes rect{fill:var(--map-accent);stroke:var(--map-accent)}.map-nodes .route-node{fill:#fff;stroke-width:1}.map-labels,.map-final{font:12px Arial;letter-spacing:1.5px;fill:var(--map-soft)}.map-final path{fill:none;stroke:var(--map-soft)}.planning-experience figcaption{font-size:11px;color:#b6c4d5;max-width:660px;padding-bottom:18px}.planning-legend{display:flex;flex-wrap:wrap;gap:12px 20px;padding:15px 0;margin:0;list-style:none;border-top:1px solid #ffffff25;font-size:11px;color:#d5dfeb}.planning-legend li{display:flex;align-items:center;gap:7px}.planning-legend i{display:inline-block;width:14px;height:10px;border:1px solid #b6c4d5}.planning-legend .legend-demand{width:7px;height:7px;background:white;border-radius:50%}.planning-legend .legend-feeder{height:3px;background:var(--map-accent);border:0}.planning-legend .legend-distribution{height:2px;background:#fff;border:0}.planning-legend .legend-zone{border:1px dashed #ff8992}.planning-legend .legend-splitter{width:10px;height:10px;border:2px solid white;border-radius:50%}.planning-controls{display:grid;grid-template-columns:repeat(5,1fr);border-block:1px solid #ffffff35}.planning-controls button,.planning-actions button{font:inherit;color:white;background:transparent;border:0;cursor:pointer;min-height:48px;text-align:left}.planning-controls button{font-size:11px;padding:12px 6px;border-top:2px solid transparent}.planning-controls button span{display:block;color:#b6c4d5;font-size:10px;margin-bottom:8px}.planning-controls button[aria-pressed=true]{background:#ffffff0d;border-top-color:var(--map-accent)}.planning-experience button:focus-visible{outline:3px solid #fff;outline-offset:3px}.planning-experience button:hover{background:#ffffff16}.planning-actions{display:flex;flex-wrap:wrap;gap:5px 20px;align-items:center;margin-top:10px}.planning-actions button{font-size:12px}.planning-scroll-cue{font-size:10px;color:#b6c4d5}.planning-beat{padding:40px 0;border-top:1px solid #ffffff25}.planning-beat h3{font-size:clamp(2rem,3vw,3.1rem);margin-bottom:22px;line-height:1.08}.planning-beat>p:last-child{color:#c4cfdc;font-size:16px}.planning-beat .eyebrow{font-size:10px;margin-bottom:20px}.planning-experience [data-layer]{opacity:1}.planning-enhanced [data-layer]{transition:opacity .35s}.planning-enhanced [data-layer].layer-hidden{opacity:0}.planning-enhanced .draw-route{stroke-dasharray:1;stroke-dashoffset:var(--route-offset,0);transition:stroke-dashoffset .6s ease}.planning-enhanced.planning-scroll .planning-sticky{position:sticky;top:20px}.planning-scroll .planning-beat{min-height:78vh;display:flex;flex-direction:column;justify-content:center;border:0}.planning-scroll .planning-beat:last-child{min-height:95vh}.planning-static .planning-scroll-cue{display:none}.planning-static #planning-replay{display:none}@media(max-width:1000px),(max-height:640px){.planning-layout{display:block}.planning-beats{display:grid;grid-template-columns:1fr 1fr;gap:15px 35px;margin-top:40px}.planning-beat{padding:25px 0}.planning-scroll-cue{display:none}}@media(max-width:600px){.planning-experience{padding:50px 6%;overflow-x:clip}.planning-intro{margin-bottom:30px}.planning-enhanced.planning-scroll .planning-sticky{top:0;background:var(--navy);z-index:2;padding-bottom:8px}.planning-beats{grid-template-columns:1fr;gap:0;margin-top:28px}.planning-scroll .planning-beat,.planning-scroll .planning-beat:last-child{min-height:72svh;padding:28px 0;justify-content:flex-end}.planning-controls{grid-template-columns:repeat(5,minmax(82px,1fr));overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-inline:contain}.planning-controls button{font-size:12px;min-height:62px;scroll-snap-align:start}.planning-map-header{font-size:10px;letter-spacing:.04em}.map-labels,.map-final{font-size:26px;letter-spacing:.5px}.map-zones text{font-size:24px;letter-spacing:.5px}.planning-experience figcaption{font-size:11px}.planning-legend{gap:12px;font-size:10px}.planning-actions{gap:8px}.planning-actions button{font-size:12px;padding-right:15px}}@media(prefers-reduced-motion:reduce){.planning-experience *{transition:none!important;animation:none!important}.planning-layout{grid-template-columns:1fr}.planning-beats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:30px}.planning-beat{min-height:0!important;padding:25px 0}.planning-sticky{position:relative!important}.planning-scroll-cue{display:none}}
