/* Shared responsive corrections verified at 320–768 CSS pixels. */
.software>*,.locations>*,.contactgrid>*,.companygrid>*{min-width:0}
.mapframe{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.mapframe .map{display:block}
.maphint{display:none}
@media(max-width:800px){
 html{scroll-padding-top:170px}
 header nav{gap:0 12px;padding:10px 5%;align-items:center}
 header nav .brand{flex:0 0 calc(100% - 132px);min-width:0;margin-right:0}
 header nav .brand img{width:120px;height:45px}
 header nav .login{flex:0 0 120px;width:120px;display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 12px;font-size:12px}
 header nav .navlink{display:inline-flex;align-items:center;min-height:36px;font-size:11px;line-height:1.3;padding:4px 0}
 .software h2{overflow-wrap:anywhere;hyphens:auto}
 .software .privacybadge{width:100%;max-width:360px}
 .privacybadge svg{flex-shrink:0}
 .privacybadge span{min-width:0}
 .regionlist button,.contactchoices button,#mapreset{min-height:44px}
 .regionlist button{padding:10px 12px}
 .contactchoices button{padding:10px 12px}
 .alllocations summary{min-height:44px;padding:10px 0}
 .foot>a{display:inline-flex;align-items:center;min-height:36px}
 .mapframe:has(.map[data-detail="true"])+.maphint{display:block;margin:8px 0;text-align:center;font-size:11px;color:#b9b5a8}
 .mapframe .map[data-detail="true"]{width:440px;max-width:none;height:510px}
}
@media(max-width:359px){.software h2{font-size:30px}.hero .eyebrow{font-size:10px;letter-spacing:1.5px}}
/* Let the header leave the viewport while reading on mobile. */
@media(max-width:800px){
 header{position:static}
 html{scroll-padding-top:18px}
}

/* Compact persistent mobile header; desktop links keep their original layout. */
.navlinks{display:contents}.navtoggle{display:none}
@media(min-width:801px){header nav .brand{order:0}header nav .navlinks{order:1}header nav .navlinks .navlink{order:1}header nav .login{order:2}}
@media(max-width:800px){
 header{position:sticky;top:0;z-index:20}
 html{scroll-padding-top:88px}
 header nav{position:relative;flex-wrap:wrap;gap:0 10px;padding:8px 5%;min-height:65px}
 header nav .brand{order:0;flex:1 1 0;min-width:0;display:flex;align-items:center}
 header nav .brand img{width:clamp(94px,28vw,120px);height:45px;max-width:100%}
 header nav .login{order:1;flex:0 0 auto;width:auto;min-height:42px;padding:8px 10px;font-size:11px;white-space:nowrap}
 header nav .navtoggle{order:2;display:none;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid #807354;border-radius:3px;color:#d2bc96;background:transparent;cursor:pointer;flex:0 0 42px}
 .nav-enhanced header nav .navtoggle{display:inline-flex}
 header nav .navlinks{order:3;display:flex;flex-basis:100%;flex-direction:column;padding:8px 0}
 header nav .navlinks .navlink{display:flex;align-items:center;min-height:44px;padding:10px 16px;font-size:14px;line-height:1.4}
 .nav-enhanced header nav .navlinks{display:none;position:absolute;left:0;right:0;top:100%;background:#20251f;border-bottom:1px solid #5e5b48;box-shadow:0 10px 20px #0004;max-height:calc(100dvh - 70px);overflow:auto;padding:8px 5% 12px}
 .nav-enhanced header nav .navlinks[data-open="true"]{display:flex}
 header nav .navtoggle[aria-expanded="true"]{background:#b99e72;color:#181b1a}
}
