/* ============ build22: accessibility, trust and conversion pass (loaded last, after every page stylesheet) ============ */
:root{--muted:#566175}
main:focus{outline:none}

/* WCAG 1.4.3 contrast: keep copy on a calm surface instead of running over the moving hero tiles */
.page-intro .intro-clip:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#f4f7fd 0,rgba(244,247,253,.97) 52%,rgba(244,247,253,.88) 72%,rgba(244,247,253,.45) 100%)}
@media(min-width:1000px){.page-intro .intro-copy{max-width:660px}}
@media(max-width:850px){.page-intro .intro-clip:after{background:linear-gradient(180deg,rgba(244,247,253,.97),rgba(244,247,253,.93))}}

/* labels that sit on the sample video cards */
.hero .hero-film small,.hero .hero-film .film-bottom small{color:#dbe7fb!important}
.hero .hero-film .film-top,.hero .hero-film .film-top span{color:#fff!important}

/* WCAG 2.5.8 target size: header navigation links */
header nav a{display:inline-flex;align-items:center;min-height:44px}

/* decorative art may never sit on top of a link */
.onset-art{pointer-events:none}
.onset-link{position:relative;z-index:5}

/* WCAG 2.4.11 focus not obscured: the sticky mobile call bar must not hide the focused control */
@media(max-width:850px){html{scroll-padding-bottom:92px}body{padding-bottom:72px}}

/* WCAG 1.4.12 text spacing: cards grow instead of clipping their text */
.bt-phone{overflow:visible}

/* fold: trust line under the hero buttons */
.fold-trust{margin:18px 0 0;font-size:14px;line-height:1.55;color:#3b4a6b}
.page-intro .button-row{margin-top:28px}

/* FAQ block reused on inner pages */
.faq-sec .faq-list summary{min-height:44px}

/* WCAG 2.2.2 pause, stop, hide: sitewide control for moving decoration */
html.motion-paused *,html.motion-paused *:before,html.motion-paused *:after{animation-play-state:paused!important}
.motion-toggle{font:inherit;font-size:14px;font-weight:600;line-height:1.2;cursor:pointer;border-radius:3px;min-height:44px;padding:10px 16px;border:1px solid currentColor;background:transparent;color:inherit}
.mt-skip{position:fixed;left:210px;top:-70px;z-index:100;background:#fff;color:#001048;border-color:#001048}
.mt-skip:focus{top:8px}
.mt-skip[aria-pressed="true"],.mt-skip[aria-pressed="true"]:focus{background:#001048;color:#fff}
.mt-foot{margin:0 0 0 auto;color:#001048;border-color:#001048}
.mt-foot[aria-pressed="true"]{background:#001048;color:#fff;border-color:#001048}
.footer-bottom{flex-wrap:wrap;gap:14px 28px;align-items:center}

/* landing pages: pale-on-pale and blue-on-blue fixes found in the contrast scan */
.so .so-lead .so-kicker{color:#fff}
.so-lead .lead-embed .fine a{color:#fff;text-decoration:underline}
.oss-lead .lead-embed .fine{color:#3b4a6b}
.oss-lead .lead-embed .fine a{color:#001048;text-decoration:underline;font-weight:600}
/* photo captions: solid scrim behind the whole line of text */
.lp-whypic figcaption{padding-top:70px;background:linear-gradient(rgba(0,16,72,0),rgba(0,16,72,.9) 42%,rgba(0,16,72,.96))}
.bb-strip{background:linear-gradient(0deg,rgba(0,16,72,.97) 50%,rgba(0,16,72,0))}

/* lead popup: give the form as much of the screen as possible */
dialog.lead-dialog{max-height:98vh}
.lead-top{padding:6px 16px}
.lead-top h2{font-size:17px}
.lead-top button{min-height:40px;padding:6px 14px}
.lead-body{padding:4px 12px 0}
.lead-foot{padding:6px 16px 8px}
.lead-foot p{font-size:12.5px;line-height:1.4}
.lead-foot p+p{font-size:12px}
@media(max-width:700px){.lead-body{padding:2px 8px 0}.lead-foot{padding:6px 12px calc(8px + env(safe-area-inset-bottom))}}
