/* FLYING CONNECT M4 — stage 3: scroll choreography, process line and featured rim.
   Progressive enhancement: no JavaScript, all page content remains visible.
   Scoped to the homepage; Stage 1 card interactions and Stage 2 hero stay intact. */

/* Scroll reveal is enabled only after the observer has registered targets.
   This prevents blank sections when JavaScript is unavailable. */
@media (prefers-reduced-motion:no-preference){
 html.fc-s3-ready body.fc-motion-s3 main .fc-s3-reveal{
   opacity:0;
   transform:translate3d(0,20px,0);
   transition:
     opacity .74s cubic-bezier(.22,.8,.27,1),
     transform .63s cubic-bezier(.22,1,.36,1),
     box-shadow .32s ease,
     border-color .28s ease!important;
   transition-delay:var(--fc-s3-delay,0ms)!important;
 }
 html.fc-s3-ready body.fc-motion-s3 main .fc-s3-reveal.fc-s3-visible{
   opacity:1;
   transform:translate3d(0,0,0);
 }
 /* Stage 1 mouse-hover and pointer press override only the final transform.
    Cards stay clickable during reveal and do not block pointer events. */
 html.fc-s3-ready body.fc-motion-s3 main .fc-s3-reveal:is(:hover,:focus-visible,:focus-within){
   opacity:1;
 }
 /* The decorative photo remains anchored and doesn't shift independently. */
 html.fc-s3-ready body.fc-motion-s3 main #contact .cta-photo.fc-s3-reveal{
   transition-duration:1s,.85s!important;
 }
}

/* Five-step timeline: the original neutral guide line remains beneath it. */
@media (min-width:921px) and (prefers-reduced-motion:no-preference){
 html.fc-s3-ready body.fc-motion-s3 main #process .steps::after{
   content:"";
   display:block;
   position:absolute;
   z-index:0;
   left:9%;
   right:9%;
   top:33px;
   width:auto;
   height:2px;
   background:linear-gradient(90deg,#83ab89,#7da585 46%,#d5e8d3);
   box-shadow:0 0 10px rgba(87,146,96,.17);
   pointer-events:none;
   transform-origin:left center;
   transform:scaleX(var(--fc-s3-progress,0));
   transition:transform .42s cubic-bezier(.18,.75,.3,1);
 }
 html.fc-s3-ready body.fc-motion-s3 main #process .steps>.fc-step-link{
   position:relative;
   z-index:1;
 }
}
/* Tablet has a wrapped multi-row process grid; never draw a misleading
   single straight line through the rows. Individual steps still reveal. */
@media (min-width:671px) and (max-width:920px){
 html.fc-s3-ready body.fc-motion-s3 main #process .steps::after{content:none!important}
}
/* Single-column phone layout: a vertical progress guide behind the icons. */
@media (max-width:670px) and (prefers-reduced-motion:no-preference){
 html.fc-s3-ready body.fc-motion-s3 main #process .steps::after{
   content:"";
   display:block;
   position:absolute;
   z-index:0;
   left:39px;
   top:43px;
   bottom:43px;
   width:2px;
   height:auto;
   background:linear-gradient(180deg,#80a98a,#83b48d,#d4e7d0);
   box-shadow:0 0 7px rgba(77,126,86,.15);
   pointer-events:none;
   transform-origin:center top;
   transform:scaleY(var(--fc-s3-progress,0));
   transition:transform .42s cubic-bezier(.18,.75,.3,1);
 }
 html.fc-s3-ready body.fc-motion-s3 main #process .steps>.fc-step-link{
   position:relative;
   z-index:1;
 }
}

/* Only the currently configured featured package gets a refined green
   animated border. Do not replace the existing .price-card::after Stage 1
   shine, its full-card CTA overlay, or its secondary link. */
body.fc-motion-s3 main .price-grid .price-card.featured{
 border-color:#86a68c!important;
}
@supports ((-webkit-mask-composite:xor) or (mask-composite:exclude)){
 body.fc-motion-s3 main .price-grid .price-card.featured::before{
   content:"";
   box-sizing:border-box;
   position:absolute;
   z-index:0;
   inset:0;
   border-radius:inherit;
   padding:2px;
   pointer-events:none!important;
   background:linear-gradient(115deg,#7a9d7c 5%,#d5edd0 22%,#8dac93 38%,#679276 55%,#d5edd0 73%,#7a9d7c 94%);
   background-size:240% 240%;
   -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
   -webkit-mask-composite:xor;
   mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
   mask-composite:exclude;
   opacity:.85;
 }
 @media (prefers-reduced-motion:no-preference){
   body.fc-motion-s3 main .price-grid .price-card.featured::before{
     animation:fc-s3-featured-rim 9s ease-in-out infinite alternate;
   }
 }
}
@keyframes fc-s3-featured-rim{
  0%{background-position:0 35%;opacity:.65}
  100%{background-position:100% 65%;opacity:.93}
}
@media (prefers-reduced-motion:reduce){
 body.fc-motion-s3 main .price-grid .price-card.featured::before{
   animation:none!important;
 }
 html.fc-s3-ready body.fc-motion-s3 main .fc-s3-reveal{
   transform:none!important;
   opacity:1!important;
   transition:none!important;
 }
 html.fc-s3-ready body.fc-motion-s3 main #process .steps::after{
   display:none!important;
 }
}
