/* ASI: a visitor's choice, route lines and a quiet brand signature. */
.needs-selector{position:relative;overflow:clip}.needs-selector .section-heading{margin-bottom:35px}.needs-selector .section-heading h2{font-size:clamp(36px,4.4vw,62px);line-height:1.08;letter-spacing:-.055em}.needs-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #ccd7e5;gap:20px;margin-bottom:36px}
.needs-tabs button{position:relative;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:21px 0 22px;min-height:68px;border:0;background:none;color:#6a7c91;font:500 17px Sora,sans-serif;letter-spacing:-.025em;text-align:left;cursor:pointer;transition:color .25s}
.needs-tabs button:after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:3px;background:#102d56;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-out)}
.needs-tabs button[aria-selected=true]{color:#102d56}.needs-tabs button[aria-selected=true]:after{transform:scaleX(1)}.needs-tabs button>span{font-size:21px;opacity:.5;transition:translate .3s,opacity .3s}.needs-tabs button:hover{color:#102d56}.needs-tabs button:hover>span,.needs-tabs button[aria-selected=true]>span{opacity:1;translate:2px -2px}.needs-tabs button:focus-visible{outline:3px solid #78b2ff;outline-offset:5px;border-radius:3px}
.needs-panel{display:grid;grid-template-columns:1.12fr 1fr;gap:clamp(35px,6vw,85px);align-items:center;outline-offset:8px}.needs-panel:focus-visible{outline:3px solid #78b2ff;border-radius:20px}.needs-photo{height:500px;position:relative;overflow:hidden;border-radius:24px;background:#dfe7f1;box-shadow:0 24px 50px #102d5617}.needs-photo img{width:100%;height:100%;object-fit:cover;object-position:center center;transition:object-position .5s}
.needs-copy{padding:15px 0}.needs-copy h3{font-size:clamp(29px,3vw,42px);line-height:1.16;letter-spacing:-.045em;font-weight:500;margin:0 0 24px;text-wrap:balance}.needs-copy>p{font-size:14px;line-height:1.85;color:#52647a;max-width:445px}.needs-copy ul{list-style:none;padding:0;margin:26px 0 30px;display:grid;gap:14px}.needs-copy li{font-size:12px;line-height:1.7;display:flex;gap:13px;align-items:baseline}.needs-copy li:before{content:'';width:7px;height:7px;flex-shrink:0;border-radius:50%;background:#7d9dbf;align-self:center}.needs-copy .button{margin-top:3px}.needs-status{height:0;width:1px;overflow:hidden;clip-path:inset(50%);position:absolute}
.process{position:relative}
.footer-scene{position:relative;z-index:1}.footer-top,.footer-bottom{z-index:1}
@media(max-width:1000px){.needs-photo{height:440px}.needs-panel{gap:35px}.needs-copy h3{font-size:33px}.needs-copy>p{font-size:13px}}
@media(max-width:800px){.needs-panel{grid-template-columns:1fr;gap:30px}.needs-photo{height:390px}.needs-copy{padding-top:0}.needs-copy h3{max-width:520px}.needs-tabs{gap:15px}.needs-tabs button{font-size:14px}.needs-copy>p{max-width:560px}}
@media(max-width:520px){.needs-tabs{grid-template-columns:repeat(2,1fr);gap:0 20px;border-bottom:0;margin-bottom:26px}.needs-tabs button{font-size:14px;border-bottom:1px solid #ccd7e5;padding:17px 0;min-height:58px}.needs-tabs button:after{bottom:-1px;height:2px}.needs-selector .section-heading h2{font-size:37px;max-width:300px}.needs-selector .section-heading p{font-size:13px}.needs-photo{height:320px;border-radius:20px}.needs-copy h3{font-size:31px}.needs-copy>p{font-size:13px}.needs-copy ul{margin-block:22px 25px;gap:12px}.needs-copy li{font-size:12px}}
@media(prefers-reduced-motion:reduce){.coverage-route circle,.needs-tabs button,.needs-tabs button:after,.needs-tabs button>span,.needs-photo img{transition:none}.needs-tabs button:hover>span,.needs-tabs button[aria-selected=true]>span{translate:none}}

/* Perimeter routes run edge to edge and replay on each deliberate re-entry. */
.coverage-route{position:absolute;inset:8px 0 auto;width:100%;height:88px;max-width:none;pointer-events:none;opacity:1;overflow:hidden}
.coverage-route.route-reverse{transform:scaleX(-1)}
.coverage-route .route-base{stroke:#c5d4e6;stroke-width:1;opacity:.45}
.coverage-route .route-draw{stroke:#4d80bb;stroke-width:1.7;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:none}
.coverage-route circle{fill:#4d80bb;opacity:.55}
.coverage-route.route-visible .route-draw{animation:draw-perimeter 3.1s .15s cubic-bezier(.3,.05,.3,1) both}
@keyframes draw-perimeter{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@media(max-width:800px){.coverage-route{inset:5px 0 auto;width:100%;height:54px}.coverage-route .route-draw{stroke-width:1.4}}
@media(prefers-reduced-motion:reduce){.coverage-route .route-draw,.coverage-route.route-visible .route-draw{animation:none;stroke-dashoffset:0;transition:none}}
