/* ACS targeted visual contrast repair — 2026-05-13
   Purpose: fix verified text visibility regressions without reintroducing broad dark-surface overrides. */

/* Header/nav: when the global nav is on a Midnight/tinted surface, foreground must be light. */
html body .acs-topbar.acs-nav-on-tint,
html body .acs-topbar.acs-nav-on-tint :is(a,span,li,div):not(.acs-btn):not(.acs-btn *){
  color:var(--black,#0B0C0C)!important;
}
html body .acs-topbar .acs-navlinks > a:not(.acs-btn),
html body .acs-topbar.acs-nav-on-tint .acs-navlinks > a:not(.acs-btn){
  color:var(--black,#0B0C0C)!important;
}
html body .acs-topbar.acs-nav-on-tint .acs-mega-trigger,
html body .acs-topbar .acs-mega-trigger.acs-mega-trigger.acs-mega-trigger,
html body .acs-topbar.acs-nav-on-tint .acs-btn,
html body .acs-topbar.acs-nav-on-tint a.acs-btn{
  color:#fff!important;
}
html body .acs-topbar.acs-nav-on-tint .acs-btn,
html body .acs-topbar.acs-nav-on-tint a.acs-btn{
  background:var(--midnight,#011043)!important;
  border-color:rgba(255,255,255,.72)!important;
}
html body .acs-topbar:not(.acs-nav-on-tint) .acs-btn,
html body .acs-topbar:not(.acs-nav-on-tint) a.acs-btn{
  color:#fff!important;
}
html body .acs-topbar.acs-nav-on-dark .acs-mega-trigger.acs-mega-trigger.acs-mega-trigger,
html body .acs-topbar.acs-nav-on-dark .acs-mega-trigger.acs-mega-trigger.acs-mega-trigger:link,
html body .acs-topbar.acs-nav-on-dark .acs-mega-trigger.acs-mega-trigger.acs-mega-trigger:visited{
  background:transparent!important;
  color:#fff!important;
  border-radius:999px!important;
  background-clip:padding-box!important;
  box-shadow:none!important;
}
html body .acs-topbar.acs-nav-on-dark .acs-mega-trigger.acs-mega-trigger.acs-mega-trigger::after{
  border-right-color:#fff!important;
  border-bottom-color:#fff!important;
}
html body .acs-topbar.acs-nav-on-dark .acs-mega-wrap:hover .acs-mega-trigger.acs-mega-trigger,
html body .acs-topbar.acs-nav-on-dark .acs-mega-wrap:focus-within .acs-mega-trigger.acs-mega-trigger,
html body .acs-topbar.acs-nav-on-dark .acs-mega-wrap.acs-mega-open .acs-mega-trigger.acs-mega-trigger{
  background:rgba(255,255,255,.14)!important;
  color:#fff!important;
  border-radius:999px!important;
}

/* Homepage capability catalog is rendered as a light section in this build. */
main .catalog{
  background:#fff!important;
  color:var(--black,#0B0C0C)!important;
}
main .catalog .section-head :is(.eyebrow,h2,p),
main .catalog .capability-expand p{
  color:var(--black,#0B0C0C)!important;
}
main .catalog .section-head p{
  border-color:rgba(1,16,67,.16)!important;
}
main .catalog .section-head .rule{
  background:rgba(1,16,67,.18)!important;
}
main .catalog .service{
  background:var(--midnight,#011043)!important;
  color:#fff!important;
}
main .catalog .service :is(h3,small,p,li,span,strong){
  color:#fff!important;
}

/* Light proof/metrics strips, especially Team, must remain dark text on light/sage/ice. */
body.team main .proof,
body.team main .proof *,
html body main > div.proof.proof.proof,
html body main > div.proof.proof.proof strong,
html body main > div.proof.proof.proof span,
html body main > div.proof.proof.proof b,
html body main > div.proof.proof.proof p{
  color:#011043!important;
}
body.team main .proof span,
body.team main .proof p,
html body main > div.proof.proof.proof span,
html body main > div.proof.proof.proof p{
  color:rgba(1,16,67,.72)!important;
}
html body main > div.proof.proof.proof{
  background:#F0F8FF!important;
}

/* Business Email Exposure: route-card is a light card inside a dark section. */
html body main section.dark.dark aside.route-card.route-card,
html body main section.dark.dark aside.route-card.route-card h1,
html body main section.dark.dark aside.route-card.route-card h2,
html body main section.dark.dark aside.route-card.route-card h3,
html body main section.dark.dark aside.route-card.route-card h4,
html body main section.dark.dark aside.route-card.route-card h5,
html body main section.dark.dark aside.route-card.route-card h6,
html body main section.dark.dark aside.route-card.route-card p,
html body main section.dark.dark aside.route-card.route-card li,
html body main section.dark.dark aside.route-card.route-card strong,
html body main section.dark.dark aside.route-card.route-card span,
html body main section.dark.dark aside.route-card.route-card small,
html body main section.dark.dark aside.route-card.route-card a{
  color:var(--black,#0B0C0C)!important;
}
html body main section.dark.dark aside.route-card.route-card{
  background:#fff!important;
}
html body main section.dark .safe-item > span{
  color:var(--midnight,#011043)!important;
}

/* Contact form label sits on sage/light form panel, not a dark surface. */
html body main .form-card span.form-label,
html body main .contact-card span.form-label,
html body main .contact-form span.form-label,
html body main span.form-label{
  color:var(--black,#0B0C0C)!important;
}

/* Sage brand-unification sections must use black text, not inherited dark-surface white. */
html body main section.legacy.legacy,
html body main section.legacy.legacy :is(h1,h2,h3,h4,h5,h6,p,li,strong,span,small,.eyebrow,.kicker),
html body main section.legacy.legacy .featured-press,
html body main section.legacy.legacy .featured-press :is(h1,h2,h3,h4,h5,h6,p,li,strong,span,small,.eyebrow,.kicker){
  color:var(--black,#0B0C0C)!important;
}
html body main section.legacy.legacy .featured-press .rule{
  background:var(--black,#0B0C0C)!important;
  opacity:1!important;
}

/* Canonical ACS footer — one visual footer system across every page. */
html body footer.footer,
html body .footer{
  background:var(--midnight,#011043)!important;
  color:#fff!important;
  padding:56px 0 30px!important;
  border:0!important;
  box-shadow:none!important;
}
html body .footer .container{
  width:min(var(--max,1616px),calc(100% - var(--pad,20px)*2))!important;
  margin:0 auto!important;
  padding-left:var(--container-pad,clamp(24px,5vw,64px))!important;
  padding-right:var(--container-pad,clamp(24px,5vw,64px))!important;
}
html body .footer .footer-grid{
  display:grid!important;
  grid-template-columns:1.4fr repeat(3,minmax(0,1fr))!important;
  gap:34px!important;
  align-items:start!important;
  padding:0 0 38px!important;
  margin:0!important;
  border:0!important;
  border-bottom:1px solid rgba(255,255,255,.13)!important;
}
html body .footer .footer-logo{
  width:196px!important;
  max-width:min(196px,70vw)!important;
  height:auto!important;
  margin:0 0 20px!important;
  filter:brightness(0) invert(1)!important;
}
html body .footer h3{
  margin:0 0 12px!important;
  color:rgba(255,255,255,.62)!important;
  font:900 12px/1 var(--sans,TTNorms,Arial,sans-serif)!important;
  letter-spacing:.13em!important;
  text-transform:uppercase!important;
}
html body .footer p,
html body .footer a,
html body .footer span{
  display:block!important;
  margin:8px 0!important;
  color:rgba(255,255,255,.76)!important;
  font:400 14px/1.55 var(--sans,TTNorms,Arial,sans-serif)!important;
  text-decoration:none!important;
}
html body .footer p{
  max-width:360px!important;
}
html body .footer a:hover{
  color:#fff!important;
}
html body .footer .legal{
  display:flex!important;
  justify-content:space-between!important;
  align-items:flex-start!important;
  gap:24px!important;
  flex-wrap:wrap!important;
  margin:0!important;
  padding:24px 0 0!important;
  border:0!important;
  color:rgba(255,255,255,.58)!important;
}
html body .footer .legal div{
  display:flex!important;
  gap:18px!important;
  flex-wrap:wrap!important;
}
html body .footer .legal span,
html body .footer .legal a{
  margin:0!important;
  color:rgba(255,255,255,.58)!important;
  font-size:13px!important;
}
@media(max-width:1020px){
  html body .footer .footer-grid{grid-template-columns:1fr 1fr!important;gap:30px 28px!important}
}
@media(max-width:640px){
  html body footer.footer,
  html body .footer{padding:38px 0 24px!important}
  html body .footer .container{width:calc(100% - 28px)!important;padding-left:16px!important;padding-right:16px!important}

  /* 2026-05-29 mobile footer redesign: compact always-open directory, not accordion/collapsible rows. */
  html body footer.footer .footer-grid,
  html body .footer .footer-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    align-items:stretch!important;
    padding:0 0 22px!important;
    margin:0!important;
    border-bottom:1px solid rgba(255,255,255,.14)!important;
    visibility:visible!important;
    opacity:1!important;
    max-height:none!important;
    height:auto!important;
    overflow:visible!important;
    transform:none!important;
  }
  html body footer.footer .footer-grid > div,
  html body .footer .footer-grid > div{
    visibility:visible!important;
    opacity:1!important;
    max-height:none!important;
    height:auto!important;
    overflow:visible!important;
    transform:none!important;
  }
  html body footer.footer .footer-grid > div:first-child,
  html body .footer .footer-grid > div:first-child{
    display:block!important;
    padding:0 0 8px!important;
    border:0!important;
    background:transparent!important;
  }
  html body .footer .footer-logo{width:174px!important;margin:0 0 14px!important}
  html body .footer .footer-grid > div:first-child p{max-width:none!important;margin:0!important;font-size:13.5px!important;line-height:1.5!important;color:rgba(255,255,255,.78)!important}
  html body .footer .footer-social{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;margin:16px 0 0!important}
  html body .footer .footer-social a{display:inline-grid!important;place-items:center!important;width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;margin:0!important;border:1px solid rgba(255,255,255,.22)!important;background:rgba(255,255,255,.07)!important;color:#fff!important}
  html body .footer .footer-social .social-label{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

  html body footer.footer .footer-grid > div:not(:first-child),
  html body .footer .footer-grid > div:not(:first-child){
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    padding:16px!important;
    border:1px solid rgba(255,255,255,.14)!important;
    background:rgba(255,255,255,.045)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important;
  }
  html body .footer .footer-grid > div:not(:first-child) h3{
    grid-column:1/-1!important;
    margin:0 0 4px!important;
    color:rgba(231,237,220,.82)!important;
    font-size:10px!important;
    line-height:1!important;
    letter-spacing:.14em!important;
  }
  html body .footer .footer-grid > div:not(:first-child) a{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    min-height:42px!important;
    padding:10px 11px!important;
    margin:0!important;
    border:1px solid rgba(255,255,255,.12)!important;
    background:rgba(255,255,255,.04)!important;
    color:rgba(255,255,255,.88)!important;
    font-size:13px!important;
    line-height:1.16!important;
    visibility:visible!important;
    opacity:1!important;
    max-height:none!important;
    height:auto!important;
    overflow:visible!important;
    transform:none!important;
  }
  html body .footer .footer-grid > div:not(:first-child) a::after{content:'→';margin-left:8px;color:var(--sage,#C6D3AD)!important;font-size:13px!important;line-height:1!important}
  html body .footer .legal{display:grid!important;gap:12px!important;margin:0!important;padding:18px 0 0!important;border:0!important}
  html body .footer .legal div{display:flex!important;gap:8px 14px!important;flex-wrap:wrap!important}
  html body .footer .legal span,
  html body .footer .legal a{display:inline-flex!important;align-items:center!important;min-height:30px!important;margin:0!important;padding:0!important;color:rgba(255,255,255,.58)!important;font-size:12.5px!important;line-height:1.25!important;visibility:visible!important;opacity:1!important;max-height:none!important;height:auto!important;overflow:visible!important;transform:none!important}
}

/* Industries: dark challenge and final CTA bands sit on Midnight surfaces; keep all nested copy readable. */
html body main section.challenge.challenge,
html body main section.cta.cta,
html body main section.challenge.challenge :is(h1,h2,h3,h4,h5,h6,strong,b,span,small,.eyebrow),
html body main section.cta.cta :is(h1,h2,h3,h4,h5,h6,strong,b,span,small,.eyebrow){
  color:#fff!important;
}
html body main section.challenge.challenge :is(p,li,dd,em,i,cite,blockquote),
html body main section.cta.cta :is(p,li,dd,em,i,cite,blockquote){
  color:rgba(255,255,255,.84)!important;
}
html body main section.challenge.challenge .risk b{
  color:var(--sage,#C6D3AD)!important;
}
html body main section.challenge.challenge .rule,
html body main section.cta.cta .rule{
  background:rgba(255,255,255,.34)!important;
  opacity:1!important;
}
html body main section.cta.cta .btn.light,
html body main section.cta.cta a.btn.light{
  background:#fff!important;
  color:var(--midnight,#011043)!important;
  border-color:#fff!important;
}

/* Final CTA/card variants that render light should use dark text; dark action cards stay light. */
main .final-card:not(.dark):not(.midnight),
main .final-card:not(.dark):not(.midnight) :is(h1,h2,h3,h4,h5,h6,p,li,strong,span,small,.eyebrow,a.final-secondary){
  color:var(--black,#0B0C0C)!important;
}
main .final-card:not(.dark):not(.midnight) .btn:not(.light):not(.sage):not(.ghost),
main .cta-action-card .btn:not(.light):not(.sage):not(.ghost),
main .hero .btn:not(.light):not(.sage):not(.ghost){
  color:#fff!important;
  background:var(--midnight,#011043)!important;
  border-color:var(--midnight,#011043)!important;
}
main .final-card:not(.dark):not(.midnight) .btn.light,
main .final-card:not(.dark):not(.midnight) .btn.ghost,
main .final-card:not(.dark):not(.midnight) a.final-secondary{
  color:var(--black,#0B0C0C)!important;
  border-color:var(--black,#0B0C0C)!important;
}

/* If a CTA action card is explicitly Midnight/dark, preserve readable foreground. */
main .cta-action-card,
main .cta-action-card :is(h1,h2,h3,h4,h5,h6,p,li,strong,span,small,.eyebrow){
  color:#fff!important;
}

/* Service-page scroll reveal must not be globally overridden here.
   Page-level motion CSS owns entrance transforms; no-JS states remain visible because
   the `motion-ready` class is only added when JavaScript executes. */

/* About final CTA visual is a dark panel nested inside a light final-card. */
main .final-card .final-visual,
main .final-card .final-visual :is(h1,h2,h3,h4,h5,h6,strong,span,small,.eyebrow,.final-visual-label){
  color:#fff!important;
}
main .final-card .final-visual p{
  color:rgba(255,255,255,.84)!important;
}

/* Strong override: dark final-visual panel lives inside a light final-card. */
html body main .final-card.final-card .final-visual.final-visual,
html body main .final-card.final-card .final-visual.final-visual h1,
html body main .final-card.final-card .final-visual.final-visual h2,
html body main .final-card.final-card .final-visual.final-visual h3,
html body main .final-card.final-card .final-visual.final-visual h4,
html body main .final-card.final-card .final-visual.final-visual h5,
html body main .final-card.final-card .final-visual.final-visual h6,
html body main .final-card.final-card .final-visual.final-visual strong,
html body main .final-card.final-card .final-visual.final-visual span,
html body main .final-card.final-card .final-visual.final-visual small,
html body main .final-card.final-card .final-visual.final-visual .final-visual-label{
  color:#fff!important;
}
html body main .final-card.final-card .final-visual.final-visual p{
  color:rgba(255,255,255,.84)!important;
}

/* About final CTA hard repair: light CTA copy/link stays dark while nested final visual stays white. */
html body main section.final .final-card.final-card .final-copy,
html body main section.final .final-card.final-card .final-copy :is(.eyebrow,h1,h2,h3,h4,h5,h6,p,li,strong,span,small,a.final-secondary,.final-secondary),
html body main section.final .final-card.final-card .final-proof,
html body main section.final .final-card.final-card .final-proof span{
  color:var(--black,#0B0C0C)!important;
}
html body main section.final .final-card.final-card .final-copy a.final-secondary.final-secondary,
html body main section.final .final-card.final-card .final-actions a.final-secondary.final-secondary{
  color:var(--black,#0B0C0C)!important;
  border-color:var(--black,#0B0C0C)!important;
  text-shadow:none!important;
}
html body main section.final .final-card.final-card .final-visual.final-visual,
html body main section.final .final-card.final-card .final-visual.final-visual :is(h1,h2,h3,h4,h5,h6,strong,span,small,.final-visual-label){
  color:#fff!important;
}
html body main section.final .final-card.final-card .final-visual.final-visual p{
  color:rgba(255,255,255,.84)!important;
}

/* Contact page Midnight form band: protect against broad black-text normalizers and stuck reveal opacity. */
html body main#main#main#main section.contact-band.contact-band.contact-band,
html body main#main#main#main section.contact-band.contact-band.contact-band .contact-panel.acs-motion-reveal,
html body main#main#main#main section.contact-band.contact-band.contact-band .hubspot-form-card.acs-motion-reveal{
  opacity:1!important;
  transform:none!important;
  visibility:visible!important;
}
html body main#main#main#main section.contact-band.contact-band.contact-band,
html body main#main#main#main section.contact-band.contact-band.contact-band .form-copy,
html body main#main#main#main section.contact-band.contact-band.contact-band .form-copy :is(.eyebrow,h1,h2,h3,h4,h5,h6,strong,b,a:not(.btn)),
html body main#main#main#main section.contact-band.contact-band.contact-band .proof-list,
html body main#main#main#main section.contact-band.contact-band.contact-band .form-card span.form-label{
  color:#fff!important;
}
html body main#main#main#main section.contact-band.contact-band.contact-band .form-copy :is(p,li,small,span,em,i,dd,dt,figcaption,label,legend,blockquote,cite),
html body main#main#main#main section.contact-band.contact-band.contact-band .proof-list span{
  color:rgba(255,255,255,.84)!important;
}
html body main#main#main#main section.contact-band.contact-band.contact-band .proof-list span::before{
  color:var(--midnight,#011043)!important;
  background:var(--sage,#C6D3AD)!important;
}

/* 2026-06-01 Insights/blog article width repair: align article body and sidebar
   with the same container rhythm as the rest of the site, eliminating the unused
   right gutter while keeping right-side support cards on desktop. */
html body main .article-shell .container.article-grid{
  width:min(var(--max,1616px),calc(100% - var(--pad,20px)*2))!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:var(--container-pad,clamp(24px,5vw,64px))!important;
  padding-right:var(--container-pad,clamp(24px,5vw,64px))!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(280px,320px)!important;
  gap:clamp(30px,3.4vw,52px)!important;
  justify-content:stretch!important;
  align-items:start!important;
}
html body main .article-shell .article-content{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}
html body main .article-shell .article-content :is(p,ul,ol,blockquote,figure,table){
  max-width:none!important;
}
html body main .article-shell .side{
  width:100%!important;
  max-width:320px!important;
  min-width:0!important;
  justify-self:stretch!important;
}
html body main .article-shell .side-card{
  width:100%!important;
  max-width:none!important;
}
@media(max-width:1020px){
  html body main .article-shell .container.article-grid{
    grid-template-columns:minmax(0,1fr)!important;
    gap:clamp(28px,5vw,44px)!important;
  }
  html body main .article-shell .side{
    max-width:none!important;
    position:relative!important;
    top:auto!important;
  }
}
@media(max-width:640px){
  html body main .article-shell .container.article-grid{
    width:calc(100% - 32px)!important;
    padding-left:16px!important;
    padding-right:16px!important;
  }
}
