/* Cross-device responsive corrections, loaded after the page and refinement CSS. */

/* Match Bebas Neue metrics during font swap to prevent first-paint reflow. */
@font-face{
  font-family:'Bebas Fallback';
  src:local('Arial'),local('Helvetica');
  size-adjust:56%;
  ascent-override:145%;
  descent-override:25%;
  line-gap-override:0%
}
:root{--f-head:'Bebas Neue','Bebas Fallback',sans-serif}

/* Scale headline type from the actual hero column, including the 900px split. */
.hero__col-l{container-type:inline-size}
.hero .hero__3w-l,.hero--compact .hero__3w-l{font-size:clamp(3.5rem,min(24cqw,9.6vw),10.2rem);line-height:.84}
@media(max-width:900px){.hero--compact .hero__3w-l{font-size:clamp(3.5rem,min(24cqw,9.6vw),10.2rem)}}
.hero--contact .hero__3w-l{font-size:clamp(3rem,min(20cqw,8vw),9rem)}
.sec-h,.hero__cycle-pre{font-size:clamp(2rem,calc(14px + 2.9vw),3.5rem)}

/* Add stable intermediate layouts without changing the Client Words carousel. */
@media(min-width:700px) and (max-width:1023px){
  .cs-bottom{grid-template-columns:repeat(2,1fr)!important}
  .ftr__g{grid-template-columns:repeat(2,1fr)!important;gap:2.5rem 3rem}
  .fw__grid{grid-template-columns:1fr!important;max-width:620px;margin-inline:auto}
  .vp__split,.founder-sec__inner{grid-template-columns:1fr!important;max-width:680px;margin-inline:auto}
}
@media(min-width:1024px) and (max-width:1099px){.fw__grid{grid-template-columns:1fr!important;max-width:760px;margin-inline:auto}}

/* Stable viewport units avoid jumps when mobile browser chrome appears. */
.hero--full{min-height:100vh;min-height:100svh}
.hero--contact .hero__col-l{min-height:100vh;min-height:100svh}
.hero,.hero--compact{min-height:clamp(420px,56vh,560px);min-height:clamp(420px,56svh,560px)}
.opcrm-modal{max-height:calc(100vh - 2rem);max-height:calc(100svh - 2rem)}

/* Fluid text and form controls that do not trigger iOS input zoom. */
.hero__copy{font-size:clamp(.95rem,.88rem + .35vw,1.06rem);line-height:1.7}
body{font-size:clamp(.95rem,.9rem + .25vw,1.05rem)}
input[type="text"],input[type="email"],input[type="tel"],input[type="url"],input[type="search"],input[type="number"],textarea,select{font-size:max(16px,1rem);font-family:inherit}

html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
img{max-width:100%;height:auto}

/* Let the homepage breathe on ultrawide and 4K displays. */
@media(min-width:1600px){
  .home .hero--compact .hero__col-l{padding-left:calc((100vw - var(--max))/2 + 2.5rem)}
  .home .vp__split{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
  .home .vp__l{padding-block:clamp(4.75rem,5vw,6.5rem);padding-right:clamp(3rem,4vw,5rem)}
  .home .vp__r{padding-block:clamp(4.75rem,5vw,6.5rem);padding-left:clamp(3rem,4vw,5rem)}
  .home .team-card__img{min-height:clamp(440px,27vw,620px)}
  .home .sec-body{font-size:clamp(.98rem,.25vw + .72rem,1.12rem)}
  .home .vp__tagline{font-size:clamp(1.45rem,1.25vw,1.8rem)}
}
@media(min-width:2400px){
  body.home{font-size:1.08rem}
  .home .team-card__img{min-height:620px}
}
