/* FLYING CONNECT M4 — stage 1 interactive motion (2026-10-14).
   Home-only. Real links/cards only; no checkout, CRM, admin or preview mutations.
   Stage 2 hero entrance and Stage 3 scroll-reveal are deliberately not implemented. */

.fc-motion-s1 main{
  --fc-s1-ease:cubic-bezier(.22,1,.36,1);
  --fc-s1-green-shadow:0 19px 42px rgba(35,64,41,.18),0 4px 12px rgba(35,64,41,.07);
}

/* Card surfaces retain their existing borders, content layouts and links. */
.fc-motion-s1 main :is(
 .steps .fc-step-link,
 .price-grid .price-card,
 .expertise .tile-grid>a.fc-service-card,
 .benefits-grid .fc-benefit-link,
 .fc-blog-discovery .fc-blog-discovery-card
){
 position:relative;
 isolation:isolate;
 transition:transform .35s var(--fc-s1-ease),
            box-shadow .35s var(--fc-s1-ease),
            border-color .28s ease,
            background-color .28s ease!important;
 will-change:auto;
 -webkit-tap-highlight-color:rgba(113,153,116,.16);
}
.fc-motion-s1 main :is(
 .steps .fc-step-link,
 .price-grid .price-card,
 .expertise .tile-grid>a.fc-service-card,
 .benefits-grid .fc-benefit-link,
 .fc-blog-discovery .fc-blog-discovery-card
)::after{
 content:"";
 position:absolute;
 inset:0;
 z-index:3;
 pointer-events:none!important;
 border-radius:inherit;
 background:linear-gradient(110deg,
   transparent 22%,
   rgba(255,255,255,.04) 39%,
   rgba(255,255,255,.30) 49%,
   rgba(202,235,204,.13) 55%,
   transparent 72%);
 opacity:0;
 transform:translate3d(-115%,0,0);
}
/* Avoid touch hover sticking; give mouse and keyboard their own states. */
@media (hover:hover) and (pointer:fine){
 .fc-motion-s1 main :is(
   .steps .fc-step-link,
   .price-grid .price-card,
   .expertise .tile-grid>a.fc-service-card,
   .benefits-grid .fc-benefit-link,
   .fc-blog-discovery .fc-blog-discovery-card
 ):hover{
   transform:translateY(-5px) scale(1.022)!important;
   border-color:#98b69b!important;
   box-shadow:var(--fc-s1-green-shadow)!important;
 }
 .fc-motion-s1 main :is(
   .steps .fc-step-link,
   .price-grid .price-card,
   .expertise .tile-grid>a.fc-service-card,
   .benefits-grid .fc-benefit-link,
   .fc-blog-discovery .fc-blog-discovery-card
 ):hover::after{
   opacity:1;
   animation:fc-s1-shine .82s ease-out 1 both;
 }
 .fc-motion-s1 main :is(.hero-points>a,.fc-start-price):hover{
   transform:translateY(-3px) scale(1.025)!important;
   box-shadow:0 10px 24px rgba(46,84,51,.13)!important;
   border-color:#9db89d!important;
 }
 .fc-motion-s1 main :is(.hero-actions .btn,.price-grid .btn,.cta-copy .btn):hover{
   transform:translateY(-2px) scale(1.035)!important;
   box-shadow:0 11px 24px rgba(42,75,47,.16)!important;
   background-position:0% 0;
 }
 .fc-motion-s1 main .play-link:hover .play-circle{
   transform:scale(1.12) rotate(5deg);
   box-shadow:0 7px 17px rgba(46,77,48,.14);
 }
 .fc-motion-s1 main :is(.fc-service-card,.fc-step-link,.fc-benefit-link,.price-card):hover :is(.fc-tile-arrow,.fc-step-arrow,.fc-benefit-arrow),
 .fc-motion-s1 main :is(.hero-points>a,.fc-start-price,.hero-actions .btn):hover .fc-ui-arrow,
 .fc-motion-s1 main .fc-blog-discovery-card:hover .fc-blog-discovery-more span[aria-hidden="true"],
 .fc-motion-s1 main .hero-actions .btn:hover span[aria-hidden="true"]{
   transform:translate(3px,-2px);
 }
 .fc-motion-s1 main .steps .fc-step-link:hover .step-icon{
   transform:scale(1.09);
   box-shadow:0 9px 18px rgba(69,105,73,.11);
 }
 .fc-motion-s1 main .benefits-grid .fc-benefit-link:hover .benefit-icon{
   transform:translateY(-3px) scale(1.07);
 }
 .fc-motion-s1 main .expertise .fc-service-card:hover img{
   transform:scale(1.035);
   filter:saturate(1.05);
 }
}

/* Focus-within highlights without unexpected jumps during keyboard navigation. */
.fc-motion-s1 main :is(
 .steps .fc-step-link,
 .price-grid .price-card,
 .expertise .tile-grid>a.fc-service-card,
 .benefits-grid .fc-benefit-link,
 .fc-blog-discovery .fc-blog-discovery-card
 ):focus-within{
 border-color:#7fa886!important;
 box-shadow:0 0 0 2px rgba(111,159,117,.14),0 9px 25px rgba(33,68,41,.08);
}
.fc-motion-s1 main :is(.fc-step-arrow,.fc-benefit-arrow,.fc-tile-arrow,.fc-ui-arrow,.benefit-icon,.step-icon,.fc-blog-discovery-more span[aria-hidden="true"],.hero-actions .btn span[aria-hidden="true"]){
 transition:transform .28s var(--fc-s1-ease),box-shadow .28s ease;
}
.fc-motion-s1 main .expertise .fc-service-card img{
 transition:transform .45s var(--fc-s1-ease),filter .3s ease!important;
}

/* Subtle reflected light on pill-shaped interactive buttons (not fake links). */
.fc-motion-s1 main :is(.hero-actions .btn,.price-grid .btn,.cta-copy .btn,.hero-points>a,.fc-start-price){
 transition:transform .28s var(--fc-s1-ease),
            box-shadow .28s var(--fc-s1-ease),
            background-color .25s ease,
            border-color .25s ease,
            background-position .5s ease!important;
 background-image:linear-gradient(108deg,
    transparent 27%,rgba(255,255,255,.23) 45%,
    rgba(229,250,231,.17) 53%,transparent 70%);
 background-size:240% 100%;
 background-position:100% 0;
}
.fc-motion-s1 main :is(.hero-actions .btn,.price-grid .btn,.cta-copy .btn,.hero-points>a,.fc-start-price):focus-visible{
 outline:3px solid #608d69!important;
 outline-offset:4px!important;
}
.fc-motion-s1 main .play-link .play-circle{
 transition:transform .28s var(--fc-s1-ease),box-shadow .28s ease;
}
/* Do not position the package .btn: its existing ::before must retain
   the entire .price-card as the containing block for whole-card click. */

/* Physical press feedback. .fc-s1-pressed is set by pointerdown without
   cancelling clicks, delaying navigation, or touching checkout/payment logic. */
.fc-motion-s1 main :is(
 .steps .fc-step-link,
 .price-grid .price-card,
 .expertise .tile-grid>a.fc-service-card,
 .benefits-grid .fc-benefit-link,
 .fc-blog-discovery .fc-blog-discovery-card,
 .hero-points>a,.fc-start-price,.hero-actions .btn,.price-grid .btn,.cta-copy .btn
):is(:active,.fc-s1-pressed){
 transform:translateY(1px) scale(.982)!important;
 box-shadow:0 4px 12px rgba(35,64,41,.12)!important;
 transition-duration:.12s!important;
}
.fc-motion-s1 main :is(.fc-step-link,.fc-benefit-link,.fc-service-card,.price-card,.fc-blog-discovery-card):is(:active,.fc-s1-pressed)::after{
 opacity:.28;
 animation:none!important;
 transform:translate3d(0,0,0)!important;
}

/* Ensure small touchscreens never receive fake persistent hover states. */
@media (hover:none), (pointer:coarse){
 .fc-motion-s1 main :is(
   .steps .fc-step-link,
   .price-grid .price-card,
   .expertise .tile-grid>a.fc-service-card,
   .benefits-grid .fc-benefit-link,
   .fc-blog-discovery .fc-blog-discovery-card,
   .hero-points>a,.fc-start-price,.hero-actions .btn,.price-grid .btn,.cta-copy .btn
 ):hover:not(:active):not(.fc-s1-pressed){transform:none!important}
 .fc-motion-s1 main .expertise .fc-service-card:hover:not(:active) img{transform:none!important}
 .fc-motion-s1 main :is(.steps .fc-step-link,.price-grid .price-card,.expertise .tile-grid>a.fc-service-card,.benefits-grid .fc-benefit-link,.fc-blog-discovery .fc-blog-discovery-card):hover:not(:active):not(.fc-s1-pressed)::after{opacity:0!important;animation:none!important}
}
@keyframes fc-s1-shine{
  0%{transform:translate3d(-115%,0,0)}
  100%{transform:translate3d(115%,0,0)}
}
@media (prefers-reduced-motion:reduce){
 .fc-motion-s1 main :is(
   .steps .fc-step-link,
   .price-grid .price-card,
   .expertise .tile-grid>a.fc-service-card,
   .benefits-grid .fc-benefit-link,
   .fc-blog-discovery .fc-blog-discovery-card,
   .hero-points>a,.fc-start-price,.hero-actions .btn,.price-grid .btn,.cta-copy .btn
 ),
 .fc-motion-s1 main :is(
   .steps .fc-step-link,
   .price-grid .price-card,
   .expertise .tile-grid>a.fc-service-card,
   .benefits-grid .fc-benefit-link,
   .fc-blog-discovery .fc-blog-discovery-card
 )::after,
 .fc-motion-s1 main :is(.fc-step-arrow,.fc-benefit-arrow,.fc-tile-arrow,.fc-ui-arrow,.benefit-icon,.step-icon,.fc-blog-discovery-more span[aria-hidden="true"],.play-circle){
   transform:none!important;
   animation:none!important;
   transition:none!important;
 }
 .fc-motion-s1 main .fc-service-card img{transform:none!important;transition:none!important}
}
