
/* MAS: global typography, contact readability, and true platform glyphs.
   Overrides are intentionally in the last linked stylesheet, instead of more
   conflicting rules appended to the already complex theme. */
body:is(.v1,.v2,.v3){
  font-family: "Segoe UI", Inter, Arial, system-ui, sans-serif;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
body:is(.v1,.v2,.v3) h1,
body:is(.v1,.v2,.v3) h2,
body:is(.v1,.v2,.v3) h3{
  font-family:"Segoe UI", Inter, Arial, system-ui, sans-serif !important;
  letter-spacing:-.035em !important;
  font-weight:750 !important;
  text-wrap:balance;
  overflow-wrap:break-word;
}
/* All inner pages: small enough to read comfortably, including V3 BMS titles. */
body.v1 .inner-hero .inner-copy h1,
body.v2 .inner-hero .inner-copy h1,
body.v3 .inner-hero .inner-copy h1{
  font-size:clamp(2rem,3.55vw,3.65rem) !important;
  line-height:1.09 !important;
  letter-spacing:-.04em !important;
  max-width:100% !important;
  width:auto !important;
  margin:0 0 18px !important;
  word-break:normal !important;
}
body:is(.v1,.v2,.v3) .inner-hero .inner-copy{
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
}
body:is(.v1,.v2,.v3) .inner-hero .inner-copy p{
  font-size:clamp(.96rem,1.05vw,1.08rem) !important;
  line-height:1.65 !important;
  max-width:60ch !important;
}
body.v1 .inner-hero .inner-copy h1{color:#fff !important}
body.v2 .inner-hero .inner-copy h1,
body.v3 .inner-hero .inner-copy h1{color:#17324a !important}
body:is(.v1,.v2,.v3) :is(.section-heading h2,.story-copy h2,.detail-main h2,.inner-copy h2,.category-story h2){
  font-size:clamp(1.65rem,2.9vw,3.15rem) !important;
  line-height:1.13 !important;
}
body:is(.v1,.v2,.v3) :is(.service-card h3,.subservice-text h3,.detail-related h3){
  font-size:clamp(1.15rem,1.5vw,1.65rem) !important;
  line-height:1.2 !important;
}
body:is(.v1,.v2,.v3) .section-special .special-text h3{
  font-size:clamp(1.25rem,1.85vw,2rem) !important;
  line-height:1.12 !important;
  color:#fff !important;
  text-shadow:0 2px 12px rgba(0,0,0,.45);
}
body:is(.v1,.v2,.v3) .section-special .special-text .eyebrow{color:#f5c56b !important}
body:is(.v1,.v2,.v3) .section-special .section-heading h2{color:#fff !important}
body:is(.v1,.v2,.v3) .section-special .section-heading p{color:#d8e6ef !important}
/* Stop inherited muted text from disappearing on blue contact panels. */
body:is(.v1,.v2,.v3) .contact-panel{
  background:#0c4f83 !important;
  color:#fff !important;
}
body:is(.v1,.v2,.v3) .contact-panel :is(h2,h3,.eyebrow,.contact-list b){
  color:#fff !important;
  opacity:1 !important;
}
body:is(.v1,.v2,.v3) .contact-panel .contact-list :is(p,a){
  color:#f0f8ff !important;
  opacity:1 !important;
  font-size:clamp(.95rem,1.14vw,1.06rem) !important;
  font-weight:450 !important;
  line-height:1.64 !important;
  text-decoration-color:rgba(255,255,255,.35);
}
body:is(.v1,.v2,.v3) .contact-panel .contact-list .line-icon{color:#e5bb55 !important}
body:is(.v1,.v2,.v3) .contact-panel .contact-list>div{min-width:0}
body:is(.v1,.v2,.v3) .contact-panel .contact-list>div>div{min-width:0}
body:is(.v1,.v2,.v3) .contact-panel .contact-list a{overflow-wrap:anywhere}
body:is(.v1,.v2,.v3) .contact-panel h2{
 font-size:clamp(1.8rem,2.75vw,3rem) !important;
 line-height:1.15 !important;
}
/* Platform SVGs: crisp recognizable icons, informative only when no URL provided. */
body:is(.v1,.v2,.v3) .mas-platform-icons{
 display:flex !important;flex-wrap:wrap !important;gap:10px !important;
 margin:10px 0 17px !important;align-items:center !important;
}
body:is(.v1,.v2,.v3) .mas-platform-icon{
 width:43px !important;height:43px !important;flex:0 0 43px !important;
 display:inline-flex !important;align-items:center !important;justify-content:center !important;
 background:#eff5fa !important;border:1px solid #cadde9 !important;
 border-radius:12px !important;color:#155784 !important;
 cursor:default !important;
}
body:is(.v1,.v2,.v3) .mas-platform-icon svg{
 width:22px !important;height:22px !important;display:block !important;
 overflow:visible !important;
}
body:is(.v1,.v2,.v3) .mas-social-stack{
 display:flex !important;flex-direction:column !important;align-items:flex-start !important;
}
body:is(.v1,.v2,.v3) .mas-social-stack .mas-social-cta{
 display:inline-flex !important;align-items:center !important;gap:9px !important;
 border-radius:999px !important;
 padding:12px 14px !important;white-space:normal !important;
 text-decoration:none !important;background:#13784e !important;
 color:#fff !important;border:0 !important;font-size:.88rem !important;
 font-weight:650 !important;line-height:1.3 !important;
}
body:is(.v1,.v2,.v3) .mas-social-stack .mas-social-cta svg{
 width:19px !important;height:19px !important;flex:0 0 19px !important;
 color:#fff !important;fill:currentColor !important;
}
body:is(.v1,.v2,.v3) .mas-social-stack .mas-social-cta:hover{background:#0f6540 !important}
body:is(.v1,.v2,.v3) .site-footer h3{font-size:1rem !important;letter-spacing:-.015em !important}
/* Keep styled homepage heroes, while preventing massive subheading text. */
body:is(.v1,.v2,.v3) .hero :is(h1,h2),
body:is(.v1,.v2,.v3) :is(.hero-v1,.hero-v2,.hero-v3) h1{
 max-width:100% !important;
 font-size:clamp(2.6rem,5.4vw,5.25rem) !important;
 line-height:1.03 !important;
}
@media(max-width:920px){
 body:is(.v1,.v2,.v3) .inner-hero .inner-copy h1{font-size:clamp(1.9rem,5vw,3.05rem) !important}
}
@media(max-width:650px){
 body:is(.v1,.v2,.v3) .inner-hero .inner-copy h1{
   font-size:clamp(1.85rem,7vw,2.43rem) !important;
   line-height:1.13 !important;
 }
 body:is(.v1,.v2,.v3) .inner-hero{padding-top:39px !important;padding-bottom:39px !important}
 body:is(.v1,.v2,.v3) :is(.section-heading h2,.story-copy h2,.detail-main h2){font-size:clamp(1.65rem,6.4vw,2.25rem) !important}
 body:is(.v1,.v2,.v3) .contact-panel h2{font-size:clamp(1.65rem,6vw,2.1rem) !important}
 body:is(.v1,.v2,.v3) .mas-platform-icon{width:42px !important;height:42px !important;flex-basis:42px !important}
}
@media(prefers-reduced-motion:reduce){body:is(.v1,.v2,.v3) *{scroll-behavior:auto!important}}
