/* Responsive and browser-zoom safeguards, October 2026.
   Existing colors, hover effects, transitions and desktop scroll animations are preserved. */
html{max-width:100%;overflow-x:clip}
body{max-width:100%;overflow-x:clip}
*,*::before,*::after{box-sizing:border-box}
.container{max-width:100%}
.topbar{height:auto;min-height:38px}
.topbar .container{min-width:0;flex-wrap:wrap;row-gap:6px;padding-block:7px}
.topbar-links,.topbar-meta{min-width:0;flex-wrap:wrap;gap:8px 18px}
.topbar a,.topbar span{overflow-wrap:anywhere}
.site-header .nav-wrap{min-width:0}
.site-header .nav-wrap>*{min-width:0}
.hero .display,.page-hero .display{overflow-wrap:break-word;hyphens:none;text-wrap:balance}
.hero-copy,.page-hero-content,.page-hero-content>div{min-width:0}
.hero .hero-grid,.page-hero-content{position:relative;z-index:2}
.hero .hero-copy,.page-hero-content>div{width:100%;min-width:0}
.hero .hero-copy .lead,.page-hero-side{max-width:100%;overflow-wrap:break-word}
.hero-actions{display:flex;flex-wrap:wrap}
.hero-actions .btn{max-width:100%}
/* Switch navigation before the combined logo, links and CTA can collide. */
@media(max-width:1490px){
 .site-header .nav-wrap{grid-template-columns:minmax(0,1fr) auto!important;gap:clamp(12px,2vw,28px)!important}
 .site-header .nav-menu,.site-header .nav-cta{display:none!important}
 .site-header .menu-toggle{display:grid!important;place-items:center!important;position:relative!important;justify-self:end!important;z-index:1305!important}
 .site-header .brand{max-width:260px!important;min-width:0!important}
 .hero .hero-grid{grid-template-columns:minmax(0,1fr)!important}
 .hero .hero-copy{max-width:min(960px,100%)!important}
 .hero .display{font-size:clamp(2.8rem,7.2vw,6.8rem)!important;line-height:1.03!important}
 .page-hero .display{font-size:clamp(2.8rem,7vw,6.5rem)!important;line-height:1.05!important}
 .page-hero-content{grid-template-columns:minmax(0,1fr)!important;gap:24px!important}
 .page-hero-side{max-width:690px!important}
 .mobile-menu{display:flex!important;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;max-height:100dvh;justify-content:flex-start;gap:26px;padding-top:clamp(130px,22vh,185px)}
}
/* 150%-200% browser zoom on common laptop and desktop screens. */
@media(max-width:1190px){
 .topbar{display:none!important}
 .site-header{top:0!important}
 .site-header .nav-wrap{width:calc(100% - 48px)!important;min-height:128px!important;padding-block:8px!important}
 .site-header .brand{max-width:min(240px,65vw)!important}
 .site-header .brand .site-logo{max-width:195px!important;max-height:88px!important}
 .site-header .brand .header-partner-logo{max-width:170px!important;max-height:55px!important}
 .hero{padding-top:clamp(190px,24vh,245px)!important;padding-bottom:55px!important;min-height:100svh!important}
 .page-hero{padding-top:clamp(185px,23vh,245px)!important;padding-bottom:65px!important;min-height:max(570px,82svh)!important}
 .hero .display,.page-hero .display{font-size:clamp(2.5rem,7.5vw,5.4rem)!important;line-height:1.06!important}
 .hero .hero-grid{width:calc(100% - 48px)!important;padding-bottom:32px!important}
 .page-hero-content{width:calc(100% - 48px)!important}
 /* Let the hero and welcome occupy their intrinsic heights instead of clipping
    content inside a fixed 100vh scroll pin when the screen is zoomed. */
 .hero-welcome-sequence{height:auto!important;min-height:0!important}
 .hero-welcome-pin{position:relative!important;top:auto!important;height:auto!important;min-height:0!important;overflow:visible!important}
 .hero-welcome-pin>.hero{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;min-height:100svh!important}
 .hero-welcome-pin>.home-welcome{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;min-height:0!important;transform:none!important;overflow:visible!important;padding:0!important}
 .hero-welcome-pin .welcome-horizontal-stage,.hero-welcome-pin .welcome-sticky,.hero-welcome-pin .welcome-horizontal-shell{width:100%!important;height:auto!important;min-height:0!important;overflow:visible!important}
 .hero-welcome-pin .welcome-track{width:100%!important;min-width:0!important;height:auto!important;min-height:0!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:clamp(35px,5vw,70px)!important;overflow:visible!important}
 .hero-welcome-pin .welcome-panel-media{min-width:0!important}
 .hero-welcome-pin .welcome-panel-media .media-stack{min-height:350px!important}
 .home-service-story-section .service-story{grid-template-columns:minmax(0,1fr)!important;gap:30px!important}
 .home-service-story-section .service-visual{position:relative!important;top:auto!important;height:clamp(280px,55vw,520px)!important;min-height:0!important}
 .home-service-story-section .service-panel{min-height:0!important;opacity:1!important;transform:none!important;margin-bottom:24px}
}
@media(max-width:760px){
 .site-header .nav-wrap{width:calc(100% - 32px)!important;min-height:116px!important;gap:12px!important}
 .site-header .brand{max-width:min(210px,65vw)!important}
 .site-header .brand .site-logo{max-width:170px!important;max-height:78px!important}
 .site-header .brand .header-partner-logo{max-width:145px!important;max-height:48px!important}
 .site-header .menu-toggle{width:46px!important;height:46px!important;min-width:46px!important}
 .hero{padding-top:clamp(165px,24svh,205px)!important;padding-bottom:35px!important;min-height:100svh!important}
 .page-hero{padding-top:clamp(165px,24svh,210px)!important;padding-bottom:50px!important;min-height:max(480px,75svh)!important}
 .hero .hero-grid,.page-hero-content{width:calc(100% - 34px)!important}
 .hero .display,.page-hero .display{font-size:clamp(2.05rem,9.3vw,4.15rem)!important;line-height:1.07!important}
 .hero-copy .lead{font-size:clamp(1rem,3.4vw,1.25rem)!important}
 .hero-welcome-pin .welcome-track{grid-template-columns:minmax(0,1fr)!important;padding:38px 18px!important}
 .hero-welcome-pin .welcome-panel-copy{padding:8px!important}
 .hero-welcome-pin .welcome-panel-media{padding:15px 0 0!important;height:auto!important}
 .hero-welcome-pin .welcome-panel-media .media-stack{min-height:310px!important}
 .mobile-menu{padding:clamp(130px,21svh,170px) 20px 30px!important;overflow:auto!important}
 .mobile-menu nav a{font-size:clamp(1.3rem,6vw,2.5rem)!important;overflow-wrap:anywhere}
}
@media(max-width:400px){
 .site-header .nav-wrap{width:calc(100% - 24px)!important;min-height:105px!important}
 .site-header .brand{max-width:calc(100vw - 90px)!important}
 .site-header .brand .site-logo{max-width:143px!important;max-height:64px!important}
 .site-header .brand .header-partner-logo{max-width:120px!important;max-height:40px!important}
 .hero{padding-top:155px!important}
 .page-hero{padding-top:157px!important}
 .hero .display,.page-hero .display{font-size:clamp(1.83rem,9.2vw,2.7rem)!important}
}
@media(max-height:540px) and (max-width:1490px){
 .hero,.page-hero{height:auto!important;min-height:0!important;padding-top:160px!important;padding-bottom:45px!important}
 .hero-welcome-pin>.hero{height:auto!important;min-height:0!important}
}

/* v2: prevent header/logo and hero collisions at desktop zoom 125-250%. */
@media (max-width:1490px){
 .site-header{top:0!important;pointer-events:none!important}
 .site-header .nav-wrap{pointer-events:auto!important;grid-template-columns:minmax(0,1fr) 52px!important;width:calc(100% - 56px)!important;min-height:0!important;height:auto!important;padding:18px 0 10px!important;align-items:start!important}
 .site-header .brand{width:min(100%,210px)!important;max-width:210px!important;align-items:center!important;gap:0!important}
 .site-header .brand .site-logo{width:100%!important;max-width:195px!important;height:auto!important;max-height:110px!important;object-fit:contain!important}
 .site-header .brand .header-partner-logo{width:100%!important;max-width:180px!important;height:auto!important;max-height:65px!important;object-fit:contain!important}
 .site-header .menu-toggle{margin-top:25px!important;align-self:start!important}
 .hero-welcome-pin>.hero,.hero{height:auto!important;min-height:100svh!important;max-height:none!important;align-items:flex-start!important;padding:245px 0 65px!important;overflow:hidden!important}
 .hero .hero-grid{width:calc(100% - 80px)!important;grid-template-columns:minmax(0,1fr)!important;padding-bottom:0!important;margin-inline:auto!important}
 .hero .hero-copy{max-width:850px!important}
 .hero .hero-copy .display{font-size:clamp(2.7rem,4.5vw,4.8rem)!important;line-height:1.07!important;letter-spacing:-.05em!important;max-width:100%!important}
 .hero .hero-copy .eyebrow{font-size:clamp(.65rem,1vw,.83rem)!important;letter-spacing:.13em!important;margin-bottom:18px!important}
 .hero .hero-copy .lead{font-size:clamp(.95rem,1.4vw,1.12rem)!important;margin:20px 0 24px!important;max-width:66ch!important}
 .hero-aside{justify-content:flex-start!important}
 .page-hero{height:auto!important;max-height:none!important;min-height:65svh!important;padding:245px 0 65px!important}
 .page-hero .display{font-size:clamp(2.8rem,5vw,5.3rem)!important;line-height:1.06!important}
 .scroll-cue{right:12px!important}
}
@media (min-width:1191px) and (max-width:1490px){
 .topbar{display:none!important}
 .hero .hero-grid,.page-hero-content{width:calc(100% - 80px)!important}
}
@media (max-width:1190px){
 .site-header .nav-wrap{width:calc(100% - 48px)!important;padding:14px 0 8px!important;min-height:0!important}
 .site-header .brand{width:min(100%,180px)!important;max-width:180px!important}
 .site-header .brand .site-logo{max-width:165px!important;max-height:96px!important}
 .site-header .brand .header-partner-logo{max-width:155px!important;max-height:54px!important}
 .site-header .menu-toggle{margin-top:18px!important}
 .hero-welcome-pin>.hero,.hero{padding-top:218px!important;padding-bottom:55px!important;min-height:100svh!important}
 .hero .hero-grid,.page-hero-content{width:calc(100% - 56px)!important}
 .hero .hero-copy .display{font-size:clamp(2.4rem,5vw,3.9rem)!important;line-height:1.08!important}
 .page-hero{padding-top:225px!important;padding-bottom:55px!important;min-height:60svh!important}
 .page-hero .display{font-size:clamp(2.5rem,5.5vw,4rem)!important}
}
@media (max-width:760px){
 .site-header .nav-wrap{width:calc(100% - 32px)!important;padding:12px 0 6px!important;grid-template-columns:minmax(0,1fr) 46px!important}
 .site-header .brand{width:min(100%,148px)!important;max-width:148px!important}
 .site-header .brand .site-logo{max-width:140px!important;max-height:78px!important}
 .site-header .brand .header-partner-logo{max-width:130px!important;max-height:43px!important}
 .site-header .menu-toggle{margin-top:15px!important}
 .hero-welcome-pin>.hero,.hero{padding-top:185px!important;padding-bottom:42px!important;min-height:100svh!important}
 .hero .hero-grid,.page-hero-content{width:calc(100% - 36px)!important}
 .hero .hero-copy .display{font-size:clamp(2rem,7.8vw,3.25rem)!important;line-height:1.12!important;letter-spacing:-.045em!important}
 .hero .hero-copy .eyebrow{font-size:.64rem!important;letter-spacing:.08em!important;gap:5px!important}
 .hero .hero-copy .eyebrow:before{width:13px!important}
 .page-hero{padding-top:190px!important;min-height:0!important}
 .page-hero .display{font-size:clamp(2rem,8vw,3.4rem)!important;line-height:1.12!important}
 .scroll-cue{display:none!important}
}
@media(max-width:400px){
 .site-header .brand{max-width:125px!important}
 .site-header .brand .site-logo{max-width:120px!important;max-height:65px!important}
 .site-header .brand .header-partner-logo{max-width:112px!important;max-height:38px!important}
 .hero-welcome-pin>.hero,.hero{padding-top:165px!important}
 .page-hero{padding-top:172px!important}
 .hero .hero-copy .display,.page-hero .display{font-size:clamp(1.8rem,7.6vw,2.7rem)!important}
}
@media(max-height:550px) and (max-width:1490px){
 .hero-welcome-pin>.hero,.hero{height:auto!important;min-height:0!important}
 .page-hero{height:auto!important;min-height:0!important}
}

/* v3 - extra breathing room at 125% browser zoom (1920px/1.25 = 1536 CSS px).
   Activate compact navigation BEFORE the desktop items crowd the logo/CTA. */
@media (min-width:1491px) and (max-width:1750px){
 .topbar{display:none!important}
 .site-header{top:0!important;pointer-events:none!important}
 .site-header .nav-wrap{display:grid!important;grid-template-columns:minmax(0,1fr) 56px!important;width:calc(100% - 96px)!important;height:auto!important;min-height:0!important;gap:34px!important;padding:24px 0 16px!important;align-items:start!important;pointer-events:auto!important}
 .site-header .brand{width:215px!important;min-width:0!important;max-width:215px!important;gap:0!important}
 .site-header .brand .site-logo{width:205px!important;max-width:205px!important;height:auto!important;max-height:115px!important;object-fit:contain!important}
 .site-header .brand .header-partner-logo{width:190px!important;max-width:190px!important;height:auto!important;max-height:65px!important;object-fit:contain!important}
 .site-header .nav-menu,.site-header .nav-cta{display:none!important}
 .site-header .menu-toggle{display:grid!important;place-items:center!important;position:relative!important;justify-self:end!important;align-self:start!important;margin-top:24px!important;z-index:1305!important}
 .mobile-menu{display:flex!important;flex-direction:column!important;overflow-y:auto!important;overscroll-behavior:contain!important;max-height:100dvh!important;justify-content:flex-start!important;gap:26px!important;padding-top:clamp(130px,22vh,185px)!important}
 .hero,.hero-welcome-pin>.hero{height:auto!important;min-height:100svh!important;max-height:none!important;align-items:flex-start!important;padding:290px 0 85px!important}
 .hero .hero-grid{grid-template-columns:minmax(0,1fr)!important;width:calc(100% - 110px)!important;max-width:1160px!important;margin-inline:auto!important;padding-bottom:0!important}
 .hero .hero-copy{max-width:950px!important}
 .hero .hero-copy .display{font-size:clamp(3.25rem,4vw,4.65rem)!important;line-height:1.12!important;letter-spacing:-.04em!important;max-width:100%!important}
 .hero .hero-copy .eyebrow{font-size:.78rem!important;line-height:1.5!important;letter-spacing:.13em!important;margin-bottom:24px!important}
 .hero .hero-copy .lead{font-size:clamp(1rem,1.15vw,1.2rem)!important;line-height:1.7!important;margin:27px 0 32px!important;max-width:65ch!important}
 .hero .hero-actions{gap:16px 20px!important}
 .page-hero{height:auto!important;min-height:70svh!important;max-height:none!important;padding:280px 0 85px!important}
 .page-hero-content{grid-template-columns:minmax(0,1fr)!important;gap:32px!important;width:calc(100% - 110px)!important;margin-inline:auto!important}
 .page-hero .display{font-size:clamp(3rem,4.5vw,5rem)!important;line-height:1.1!important}
 .page-hero-side{max-width:700px!important}
}
/* More air at 125% on 1536/1600px screens and at greater zoom levels. */
@media (min-width:761px) and (max-width:1490px){
 .site-header .nav-wrap{padding-top:25px!important;gap:30px!important}
 .site-header .brand{min-width:0!important}
 .hero,.hero-welcome-pin>.hero{padding-top:285px!important;padding-bottom:80px!important}
 .hero .hero-grid{width:calc(100% - 100px)!important}
 .hero .hero-copy .display{font-size:clamp(2.8rem,4.2vw,4.4rem)!important;line-height:1.14!important;letter-spacing:-.035em!important}
 .hero .hero-copy .eyebrow{margin-bottom:25px!important;line-height:1.5!important}
 .hero .hero-copy .lead{margin:27px 0 34px!important;line-height:1.7!important}
 .hero .hero-actions{gap:15px 20px!important}
 .page-hero{padding-top:275px!important;padding-bottom:80px!important}
 .page-hero-content{width:calc(100% - 100px)!important;gap:34px!important}
 .page-hero .display{line-height:1.12!important}
}
@media (min-width:761px) and (max-width:1190px){
 .hero,.hero-welcome-pin>.hero{padding-top:248px!important}
 .page-hero{padding-top:248px!important}
 .hero .hero-grid,.page-hero-content{width:calc(100% - 68px)!important}
}

/* V4: keep BOTH original header logos visible at every browser zoom.
   Overrides earlier width-based layout rules without touching animations. */
.site-header .brand{
  display:flex!important;
  flex-direction:column!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:center!important;
  gap:clamp(2px,.35vw,7px)!important;
  overflow:visible!important;
}
.site-header .brand .site-logo,
.site-header .brand .header-partner-logo{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  height:auto!important;
  min-height:0!important;
  flex:none!important;
  object-fit:contain!important;
  object-position:center!important;
}
.site-header .brand .header-partner-logo{
  width:min(90%,190px)!important;
  max-width:190px!important;
  max-height:66px!important;
}
@media (min-width:1491px) and (max-width:1750px){
 .site-header .brand .site-logo{width:205px!important;max-width:205px!important}
 .site-header .brand .header-partner-logo{width:185px!important;max-width:185px!important;max-height:62px!important}
}
@media (min-width:761px) and (max-width:1490px){
 .site-header .brand .header-partner-logo{width:min(92%,170px)!important;max-width:170px!important;max-height:58px!important}
 .site-header .brand{gap:5px!important}
}
@media (max-width:760px){
 .site-header .brand .header-partner-logo{width:min(92%,125px)!important;max-width:125px!important;max-height:43px!important}
 .site-header .brand{gap:3px!important}
}
@media (max-width:400px){
 .site-header .brand .header-partner-logo{width:min(92%,108px)!important;max-width:108px!important;max-height:36px!important}
}
