/* x26-hero-14: homepage hero slideshow that blends into the page (EN + FR). Replaces the 12g15 framed slides. */
html body .x-hero.xh14{background:#04060c!important;background-image:radial-gradient(70% 60% at 12% 38%,rgba(26,79,184,.16) 0,rgba(4,6,12,0) 70%)!important;overflow:hidden}
html body .x-hero .x-hero__media.xh14-media{overflow:hidden!important;background:transparent!important}
html body .x-hero .xh14-stage{position:absolute;inset:0;z-index:0}
html body .x-hero .xh14-s{position:absolute!important;inset:0!important;margin:0!important;opacity:0;visibility:hidden;z-index:0;transition:opacity 1.6s cubic-bezier(.4,0,.2,1);
 -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 9%,#000 60%,rgba(0,0,0,.55) 80%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 9%,#000 60%,rgba(0,0,0,.55) 80%,transparent 100%)}
html body .x-hero .xh14-s.is-active{opacity:1;visibility:visible;z-index:2}
html body .x-hero .xh14-s.is-leaving{opacity:1;visibility:visible;z-index:1;transition:none}
html body .x-hero .xh14-s picture{display:block!important;position:absolute!important;inset:0!important;overflow:hidden;transform:scale(1.01);transform-origin:var(--kbo,50% 30%);will-change:transform}
html body .x-hero.xh14 .xh14-media .xh14-s img{position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;object-position:var(--opm,50% 30%)!important;
 border:0!important;border-radius:0!important;box-shadow:none!important;transform:none!important;animation:none!important;-webkit-user-drag:none;user-select:none}
/* slow Ken Burns zoom: keeps running while the slide fades out, so nothing jumps */
@keyframes xh14-kb{from{transform:scale(1.01) translate3d(0,0,0)}to{transform:scale(1.1) translate3d(var(--kx,-1.2%),var(--ky,-.8%),0)}}
html.js:not(.x-rm) body .x-hero[data-xh14-on="1"] .xh14-s.is-active picture,html.js:not(.x-rm) body .x-hero[data-xh14-on="1"] .xh14-s.is-leaving picture{animation:xh14-kb 9s cubic-bezier(.3,.1,.3,1) both}
html.js body .x-hero[data-xh14-hold="1"] .xh14-s.is-active picture{animation-play-state:paused}
html.x-rm body .x-hero .xh14-s{transition:opacity .25s linear}
/* soft shade (not masked) so the photo always sinks into the page and the copy keeps AA contrast */
html body .x-hero .xh14-shade{position:absolute;inset:0;z-index:3;pointer-events:none;
 background:linear-gradient(180deg,rgba(4,6,12,.55) 0,rgba(4,6,12,0) 16%,rgba(4,6,12,0) 62%,rgba(4,6,12,.7) 88%,#04060c 100%)}
/* controls: dots with progress, pause/play, caption */
html body .x-hero .xh14-bar{position:absolute;z-index:5;left:max(21px,4vw);right:max(21px,4vw);bottom:12px;display:none;align-items:center;gap:.55rem;color:#eef3fb}
html.js body .x-hero[data-xh14-on="1"] .xh14-bar{display:flex}
html body .x-hero .xh14-cap{flex:1 1 auto;min-width:0;margin:0!important;font-size:.8rem;line-height:1.3;letter-spacing:.02em;color:#e6ecf7;text-shadow:0 1px 6px rgba(0,0,0,.8);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
html body .x-hero .xh14-dots{display:flex;gap:2px;flex:0 0 auto}
html body .x-hero .xh14-dot{all:unset;box-sizing:border-box;position:relative;width:24px;height:24px;cursor:pointer;border-radius:4px}
html body .x-hero .xh14-dot::before{content:"";position:absolute;left:3px;right:3px;top:10px;height:4px;border-radius:2px;background:rgba(255,255,255,.38)}
html body .x-hero .xh14-fill{position:absolute;left:3px;top:10px;height:4px;width:0;border-radius:2px;background:#fff}
html body .x-hero .xh14-dot[aria-current="true"] .xh14-fill{animation:xh14-fill var(--xh14-dur,5.6s) linear both;animation-play-state:paused}
html body .x-hero[data-xh14-play="1"][data-xh14-hold="0"] .xh14-dot[aria-current="true"] .xh14-fill{animation-play-state:running}
html body .x-hero[data-xh14-play="0"] .xh14-dot[aria-current="true"] .xh14-fill{animation:none;width:calc(100% - 6px)}
@keyframes xh14-fill{from{width:0}to{width:calc(100% - 6px)}}
html body .x-hero .xh14-dot:focus-visible,html body .x-hero .xh14-pp:focus-visible{outline:2px solid #fff;outline-offset:2px}
html body .x-hero .xh14-pp{all:unset;box-sizing:border-box;flex:0 0 36px;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;cursor:pointer;color:#fff;background:rgba(4,6,12,.55);border:1px solid rgba(255,255,255,.35)}
html body .x-hero .xh14-pp svg{width:14px;height:14px}
html body .x-hero .xh14-pp .xh14-i-play{display:none}
html body .x-hero[data-xh14-play="0"] .xh14-pp .xh14-i-play{display:block}
html body .x-hero[data-xh14-play="0"] .xh14-pp .xh14-i-pause{display:none}
html body .x-hero .xh14-live{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
html body .x-hero .x-hero__caption{display:none!important}
/* tablet + desktop: photo sits right of the copy and fades into the page on the left, top and bottom */
@media (min-width:700px){
 html body .x-hero.xh14{height:auto!important;min-height:clamp(640px,96svh,980px)!important;aspect-ratio:auto!important}
 html body .x-hero .x-hero__media.xh14-media{position:absolute!important;top:0!important;bottom:0!important;right:0!important;left:46%!important;width:auto!important;height:auto!important;margin:0!important;max-height:none!important;aspect-ratio:auto!important}
 html body .x-hero .xh14-s{-webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.5) calc(var(--fx,22%) * .55),#000 var(--fx,22%)),linear-gradient(180deg,transparent 0,#000 13%,#000 70%,transparent 100%);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.5) calc(var(--fx,22%) * .55),#000 var(--fx,22%)),linear-gradient(180deg,transparent 0,#000 13%,#000 70%,transparent 100%);mask-composite:intersect}
 html body .x-hero.xh14 .xh14-media .xh14-s img{object-position:var(--opd,70% 30%)!important}
 html body .x-hero .xh14-shade{background:linear-gradient(90deg,rgba(4,6,12,.45) 0,rgba(4,6,12,0) 14%),linear-gradient(180deg,rgba(4,6,12,.5) 0,rgba(4,6,12,0) 14%,rgba(4,6,12,0) 72%,#04060c 100%)}
 html body .x-hero .x-hero__in{position:relative;z-index:4;pointer-events:none}
 html body .x-hero .x-hero__copy{pointer-events:auto}
 html body .x-hero .x-hero__copy{background:transparent!important;border:0!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border-radius:0!important;padding-left:0!important;padding-right:0!important}
 html body .x-hero .xh14-bar{left:24px;right:max(24px,calc((100vw - 1336px)/2 + 48px));bottom:28px;justify-content:flex-end}
 html body .x-hero .xh14-cap{flex:0 1 auto;text-align:right}
}
@media (min-width:1280px){html body .x-hero .x-hero__media.xh14-media{left:40%!important}}
/* other homepage photo cards: no hard bottom edge, the photo fades into the card */
html body .x-services .x-card--photo .x-card__img{-webkit-mask-image:linear-gradient(180deg,#000 0,#000 45%,rgba(0,0,0,.6) 72%,transparent 100%);mask-image:linear-gradient(180deg,#000 0,#000 45%,rgba(0,0,0,.6) 72%,transparent 100%);border-radius:inherit}
html body .x-services .x-card--photo .x-card__img img{width:100%!important;height:100%!important;max-height:none!important;object-fit:cover!important}
html body .x-services .x-card--w.x-card--photo .x-card__img{-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.25) 0,rgba(0,0,0,.75) 35%,#000 60%),linear-gradient(180deg,#000 0,#000 70%,rgba(0,0,0,.4) 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,rgba(0,0,0,.25) 0,rgba(0,0,0,.75) 35%,#000 60%),linear-gradient(180deg,#000 0,#000 70%,rgba(0,0,0,.4) 100%);mask-composite:intersect}
@media (min-width:700px){html body .x-services .x-card--xl.x-card--photo .x-card__img{bottom:auto!important;height:64%!important}}
/* academy certificate preview: soft glow instead of a pasted-in box */
html body .x-acad .x-acad__fig img{border:0!important;border-radius:10px!important;box-shadow:0 30px 80px -20px rgba(26,79,184,.45),0 10px 40px rgba(0,0,0,.35)!important}
html body .x-acad .x-acad__fig{background:transparent!important;border:0!important;box-shadow:none!important}
/* r5 phones: copy starts on the photo's faded bottom (no gap), slimmer dots */
@media (max-width:699px){
 html body .x-hero .xh14-bar{bottom:44px}
 html body .x-hero .x-hero__in{margin-top:-34px!important;background:transparent!important;position:relative;z-index:4}
 html body .x-hero .xh14-dot{width:18px}
 html body .x-hero .xh14-cap{font-size:.78rem}
}
