/* Phone/tablet layouts prioritize readable content over a forced viewport fit. */
@media(max-width:900px),(max-height:500px){
.hero.hero-b{height:auto;min-height:calc(100svh - 78px);display:block;padding:30px 24px 45px;text-align:left;overflow:visible}
.hero h1{font-size:clamp(38px,9.7vw,70px);line-height:1.05;margin:0 0 20px;max-width:700px}.hero .lead{font-size:18px;max-width:440px;margin:0}.hero .actions{justify-content:flex-start;margin-top:24px}.hero .b-stage{position:relative;inset:auto!important;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px;width:100%;max-width:720px;height:auto;min-height:0;margin:45px auto 0;flex:none}
.hero .b-node.service-card{position:relative;inset:auto;width:auto;height:auto!important;min-height:205px;padding:18px 16px;border-radius:20px;justify-content:flex-start}.hero .b-node.service-card strong{font-size:19px;margin-top:20px;line-height:1.15;letter-spacing:-.025em}.hero .b-node.service-card p{display:block;font-size:14px;margin-top:10px;line-height:1.4}.hero .service-card .tool-icon{display:grid;width:34px;height:34px;margin:0}.hero .service-card .tool-icon svg{width:22px;height:22px}.hero .b-line{display:none}
.hero .scattered .b-node:nth-of-type(2){transform:translateY(-3px) rotate(-3deg)}.hero .scattered .b-node:nth-of-type(3){transform:translateY(5px) rotate(3deg)}.hero .scattered .b-node:nth-of-type(4){transform:translateY(2px) rotate(2deg)}.hero .scattered .b-node:nth-of-type(5){transform:translateY(5px) rotate(-3deg)}
.workflow-story{padding-top:80px}.inquiry-close{width:44px;height:44px}.nav .menu-toggle{width:44px;min-width:44px}.routing-stage select{min-height:44px}.footer-brand{min-height:44px}
}
@media(min-width:541px) and (max-width:900px){.hero.hero-b{padding-inline:32px}.hero .b-node.service-card{min-height:205px;padding:24px}.hero .b-node.service-card strong{font-size:24px}.hero .b-node.service-card p{font-size:16px}.hero h1{font-size:clamp(52px,8vw,70px)}.hero .b-stage{margin-top:55px}}
@media(max-width:380px){.hero.hero-b{padding-inline:20px}.hero h1{font-size:clamp(34px,10.5vw,40px)}.hero .b-node.service-card{padding:16px 12px;min-height:205px}.hero .b-node.service-card strong{font-size:17px}.hero .b-node.service-card p{font-size:13px}.hero .b-stage{gap:20px 14px}.services-tabs{grid-template-columns:repeat(2,minmax(0,1fr));margin-inline:14px}.services-tabs button{font-size:14px;padding:15px 6px;min-height:48px}.services-stage-footer>span:last-child{display:none}.service-slide{padding-inline:18px}.mapping-apps{gap:8px}.mapping-apps strong{font-size:14px}.outcome-scene{padding-inline:18px}.inquiry-card{padding:17px;gap:7px 11px;grid-template-columns:36px 1fr}.inquiry-card .scene-icon{width:36px;height:36px}.inquiry-card select{font-size:16px}.bundle-heading strong{font-size:18px}.bundle-files{gap:6px}.bundle-files>span{font-size:12px;padding:10px 7px}.attention-ticket{margin-left:0}.attention-ticket strong{font-size:16px}.attention-ticket .attention-icon{width:30px;height:30px}.faq-heading h2{font-size:42px}.faq-item summary{font-size:20px}.cta-content h2{font-size:43px}.cta-button{font-size:16px;padding-inline:19px;gap:14px}.footer-links>a,.footer-links>button{font-size:15px}.trust-card{padding-inline:18px}.trust-ui{padding:15px}.trust-ui-heading{gap:8px}.trust-ui-heading>strong{font-size:15px}.trust-badge{padding:6px}.rule-row>strong{font-size:13px}.trust-avatar{width:34px;height:34px}.alert-message{gap:8px;padding-inline:11px}}
@media(pointer:coarse) and (min-width:900px){.trust-card{min-height:0}.trust-ui{margin-top:25px}.services-window{touch-action:pan-y}}
@media(max-height:500px){.inquiry-dialog{max-height:calc(100svh - 16px)}.hero.hero-b{padding-top:24px}.hero h1{font-size:48px}.hero .b-stage{max-width:760px}.workflow-story{padding-top:70px}}

/* Keep the approved desktop composition proportional on wider displays. */
@media(min-width:1441px) and (min-height:650px){
.hero.hero-b{max-width:2560px;padding-inline:3.89vw;padding-top:clamp(48px,5.1vh,78px)}
.hero h1{font-size:clamp(96px,6.667vw,171px);max-width:54.2vw;margin:24px auto 25px}
.hero .lead{font-size:clamp(21px,1.46vw,32px);max-width:50vw}
.hero .actions{margin-top:clamp(27px,1.875vw,42px)}
.hero .actions .primary{font-size:clamp(16px,1.111vw,25px);padding:1.25vw 1.875vw;border-radius:50px}
.hero .b-stage{left:3.89vw;right:3.89vw;max-width:none;height:20vw}
.hero .b-node.service-card{min-height:16.4vw;padding:1.74vw;border-radius:1.67vw}
.hero .b-node.service-card strong{font-size:clamp(26px,1.806vw,43px);margin-top:1vw}
.hero .b-node.service-card p{font-size:clamp(16px,1.111vw,26px);margin-top:.625vw}
.hero .service-card .tool-icon{width:3.06vw;height:3.06vw;border-radius:.76vw}
.hero .service-card .tool-icon svg{width:1.74vw;height:1.74vw}
.nav{max-width:2560px;padding-inline:3.89vw}
}

/* Header follows the same wide-screen proportions as the hero. */
@media(min-width:1441px) and (min-height:650px){
.nav{max-width:none;width:100%;height:clamp(88px,6.111vw,132px);padding-inline:3.89vw}
.nav .brand{font-size:clamp(30px,2.083vw,45px);gap:clamp(9px,.625vw,14px)}
.nav .brand-logo{width:clamp(40px,2.778vw,60px);height:clamp(30px,2.083vw,45px)}
.nav .brand-logo img{width:149.3%;height:auto;left:-24.3%;top:-47.97%}
.header-links a{font-size:clamp(15px,1.042vw,22px);padding:clamp(13px,.903vw,20px) clamp(16px,1.111vw,24px)}
.navlinks{gap:clamp(17px,1.18vw,26px)}
.nav .contact{font-size:clamp(15px,1.042vw,22px);padding:clamp(12px,.833vw,18px) clamp(23px,1.597vw,35px);border-radius:50px}
.hero.hero-b{height:calc(100svh - clamp(88px,6.111vw,132px))}
}

/* Animated hero geometry must not move the browser scroll anchor. */
.hero,.hero-scroll-space{overflow-anchor:none}
