/* Sparse, geometric blue accents share the hero's connected-line language. */
#roadmap,#programs,#free-diagnosis{position:relative;isolation:isolate;overflow:clip}
#roadmap>.container,#programs>.container,#free-diagnosis>.container{position:relative;z-index:1}
.section-art{position:absolute;pointer-events:none;z-index:0;color:#0068be;transform:translate3d(0,var(--art-y,0px),0);width:510px;height:510px}
.section-art svg{width:100%;height:100%;stroke:currentColor;stroke-width:.8}
.orbit{right:-290px;top:25px;opacity:.24;rotate:-25deg}
.ribbon{right:-165px;top:-50px;opacity:.36;color:#3d99ed;width:620px;height:510px;rotate:-10deg;mask-image:linear-gradient(90deg,transparent,#000 65%)}
.orbit-small{left:-270px;top:10px;opacity:.2;rotate:22deg}
.services .eyebrow{color:#acd4fa}
.motion-enter{animation:airun-enter .85s cubic-bezier(.2,.65,.25,1) both}
@keyframes airun-enter{from{opacity:.45;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:800px){.section-art{width:340px;height:340px}.orbit{right:-240px;top:5px;opacity:.19}.ribbon{right:-230px;top:0;width:460px;height:350px;opacity:.28}.orbit-small{left:-255px;top:30px;opacity:.18}@keyframes airun-enter{from{opacity:.65;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}
@media(prefers-reduced-motion:reduce){.section-art{transform:none!important}.motion-enter{animation:none}}
html.motion-paused .section-art{transform:none}html.motion-paused .motion-enter{animation:none}
@media(max-width:400px){.diagnosis h2{font-size:26px;text-wrap:balance}}

/* The only colour gradients are reserved for conversion buttons. */
.button:not(.button-secondary),.nav-cta,.contact .button{background:linear-gradient(115deg,#004582 0%,#0068be 52%,#247de0 100%);border-color:#0068be;color:#fff;box-shadow:0 5px 16px #0059ac16;transition:filter .25s,box-shadow .25s,transform .25s}
.button:not(.button-secondary):hover,.nav-cta:hover,.contact .button:hover{background:linear-gradient(115deg,#003c73,#005dad 52%,#1c70d0);color:#fff;box-shadow:0 8px 22px #0059ac26;transform:translateY(-2px)}
.concept-photo{overflow:hidden}.concept-photo img{transform:translate3d(0,var(--photo-y,0px),0) scale(1.12);will-change:transform}
.motion-enter{animation:airun-enter 1s cubic-bezier(.2,.65,.25,1) both}
@keyframes airun-enter{from{opacity:.08;transform:translateY(48px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:800px){@keyframes airun-enter{from{opacity:.12;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}}
html.motion-paused .film-picture img,html.motion-paused .concept-photo img{transform:scale(1.1)}
@media(prefers-reduced-motion:reduce){.film-picture img,.concept-photo img{transform:scale(1.1)!important}.motion-enter{animation:none!important}}

/* Two phrases enter in reading order; no scroll interception. */
.hero-line{display:block;animation:hero-line-in 1.1s cubic-bezier(.2,.65,.25,1) both}
.hero-line:first-child{animation-delay:.15s}.hero-line:last-child{animation-delay:.95s}
@keyframes hero-line-in{from{opacity:0;transform:translateY(22px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
html.motion-paused .hero-line{animation:none}
@media(prefers-reduced-motion:reduce){.hero-line{animation:none}}

/* Slightly stronger CTA typography. */
body .button:not(.button-secondary),body .nav-cta{font-size:15px;font-weight:600}
body .film-actions .button,body .nav-cta{font-size:14px}
@media(max-width:800px){body .button:not(.button-secondary),body .film-actions .button,body .nav-cta{font-size:13px;font-weight:600}}
