/* FLYING CONNECT M4 — stage 2 / hero entrance and image depth.
   Loaded only on the public homepage. No new JS, fonts, assets or dependencies.
   All text and links remain accessible without animations. Stage 3 stays untouched. */

.fc-motion-s2 .hero{
  --fc-s2-easing:cubic-bezier(.21,.8,.28,1);
}
/* One-time choreography. backwards holds the start only during the delay
   and releases transform after finish, preserving the Stage 1 hover motions. */
@media (prefers-reduced-motion:no-preference){
 .fc-motion-s2 .hero-copy>.eyebrow{
   animation:fc-s2-rise .58s var(--fc-s2-easing) .06s backwards;
 }
 .fc-motion-s2 .hero-copy>h1{
   animation:fc-s2-title .94s cubic-bezier(.18,.73,.27,1) .15s backwards;
 }
 .fc-motion-s2 .hero-copy>p{
   animation:fc-s2-rise .66s var(--fc-s2-easing) .38s backwards;
 }
 .fc-motion-s2 .hero-copy>.fc-start-price{
   animation:fc-s2-rise .63s var(--fc-s2-easing) .50s backwards;
 }
 .fc-motion-s2 .hero-copy>.hero-actions{
   animation:fc-s2-rise .64s var(--fc-s2-easing) .58s backwards;
 }
 .fc-motion-s2 .hero-copy>.hero-points>a{
   animation:fc-s2-rise-small .54s var(--fc-s2-easing) backwards;
 }
 .fc-motion-s2 .hero-copy>.hero-points>a:nth-child(1){animation-delay:.72s}
 .fc-motion-s2 .hero-copy>.hero-points>a:nth-child(2){animation-delay:.83s}
 .fc-motion-s2 .hero-copy>.hero-points>a:nth-child(3){animation-delay:.94s}

 /* Reuse the hero's existing CMS image and its background size/position.
    The original background is retained behind this layer as an immediate
    fallback, so the hero never disappears if motion is disabled or delayed. */
 .fc-motion-s2 .hero-media::before{
   animation:fc-s2-image-depth 16s cubic-bezier(.16,.52,.3,1) .05s forwards;
 }
 .fc-motion-s2 .hero-media>.hero-script{
   animation:fc-s2-decoration .95s var(--fc-s2-easing) .43s backwards;
 }
 .fc-motion-s2 .hero-media>.hero-poster{
   animation:fc-s2-poster .85s var(--fc-s2-easing) .75s backwards;
 }
}

/* The animated layer is always just visual; original overlays stay on top.
   inherit uses the existing inline background-image from the CMS. */
.fc-motion-s2 .hero-media{
 isolation:isolate;
}
.fc-motion-s2 .hero-media::before{
 content:"";
 position:absolute;
 inset:0;
 z-index:0;
 pointer-events:none;
 display:block;
 border-radius:inherit;
 background-image:inherit;
 background-size:inherit;
 background-position:inherit;
 background-repeat:inherit;
 transform:scale(1);
 transform-origin:50% 52%;
}
.fc-motion-s2 .hero-media>.hero-script,
.fc-motion-s2 .hero-media>.hero-poster{
 z-index:1;
}
@keyframes fc-s2-rise{
 0%{opacity:0;transform:translate3d(0,17px,0)}
 100%{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes fc-s2-rise-small{
 0%{opacity:0;transform:translate3d(0,11px,0)}
 100%{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes fc-s2-title{
 0%{opacity:.35;clip-path:inset(0 0 100% 0);transform:translate3d(0,17px,0)}
 100%{opacity:1;clip-path:inset(0 0 0 0);transform:translate3d(0,0,0)}
}
@keyframes fc-s2-decoration{
 0%{opacity:0;transform:translate3d(-12px,11px,0)}
 100%{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes fc-s2-poster{
 0%{opacity:0;transform:translate3d(12px,-8px,0)}
 100%{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes fc-s2-image-depth{
 0%{transform:scale(1)}
 100%{transform:scale(1.065)}
}
/* Reduce the photo's compositing footprint on smaller touch devices. */
@media (max-width:670px) and (prefers-reduced-motion:no-preference){
 .fc-motion-s2 .hero-media::before{
   animation-name:fc-s2-image-depth-mobile;
   animation-duration:12s;
 }
 .fc-motion-s2 .hero-copy>.hero-points>a:nth-child(2){animation-delay:.77s}
 .fc-motion-s2 .hero-copy>.hero-points>a:nth-child(3){animation-delay:.84s}
}
@keyframes fc-s2-image-depth-mobile{
 0%{transform:scale(1)}
 100%{transform:scale(1.035)}
}
/* Never conceal content for reduced-motion users, including the CMS image. */
@media (prefers-reduced-motion:reduce){
 .fc-motion-s2 .hero :is(.eyebrow,h1,p,.fc-start-price,.hero-actions,.hero-points>a,.hero-script,.hero-poster){
   animation:none!important;
   opacity:1!important;
 }
 .fc-motion-s2 .hero-media::before{content:none!important;animation:none!important}
}
