/* Groundline — professional motion layer. Honors the site's "Pause animations" toggle and prefers-reduced-motion. */

/* ---------- Hero entrance ---------- */
@keyframes gl-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes gl-fade{from{opacity:0}to{opacity:1}}

body:not(.animations-paused) .buyer-hero-copy>*{opacity:0;animation:gl-rise .85s cubic-bezier(.22,.8,.3,1) forwards}
body:not(.animations-paused) .buyer-hero-copy>*:nth-child(1){animation-delay:.05s}
body:not(.animations-paused) .buyer-hero-copy>*:nth-child(2){animation-delay:.14s}
body:not(.animations-paused) .buyer-hero-copy>*:nth-child(3){animation-delay:.23s}
body:not(.animations-paused) .buyer-hero-copy>*:nth-child(4){animation-delay:.32s}
body:not(.animations-paused) .buyer-hero-copy>*:nth-child(5){animation-delay:.41s}
body:not(.animations-paused) .buyer-hero-copy>*:nth-child(6){animation-delay:.50s}
body:not(.animations-paused) .buyer-hero-image{opacity:0;animation:gl-fade 1.1s ease .3s forwards}

/* Gentle float on the hero shipment note */
@keyframes gl-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
body:not(.animations-paused) .shipment-note{animation:gl-float 6s ease-in-out 1.4s infinite}

/* ---------- Trust strip counters ---------- */
.trust-strip strong{font-variant-numeric:tabular-nums}

/* ---------- Card hover lift ---------- */
.review-card{transition:transform .35s cubic-bezier(.22,.8,.3,1),box-shadow .35s ease}
body:not(.animations-paused) .review-card:hover{transform:translateY(-7px);box-shadow:0 20px 44px -20px rgba(20,35,25,.35)}

/* ---------- Nav underline ---------- */
nav a{position:relative}
nav a::after{content:"";position:absolute;left:0;bottom:-5px;height:2px;width:0;background:currentColor;transition:width .28s ease}
body:not(.animations-paused) nav a:hover::after{width:100%}

/* ---------- Buttons ---------- */
.btn{transition:transform .25s ease,box-shadow .25s ease}
body:not(.animations-paused) .btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px -12px rgba(20,35,25,.5)}

/* ---------- Team photo zoom ---------- */
.team-photo img{transition:transform .7s cubic-bezier(.22,.8,.3,1)}
body:not(.animations-paused) .team-photo:hover img{transform:scale(1.045)}

/* ---------- Trust strip pop-in ---------- */
@keyframes gl-pop{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
body:not(.animations-paused) .trust-strip>div{opacity:0;animation:gl-pop .6s cubic-bezier(.22,.8,.3,1) forwards}
body:not(.animations-paused) .trust-strip>div:nth-child(1){animation-delay:.55s}
body:not(.animations-paused) .trust-strip>div:nth-child(2){animation-delay:.68s}
body:not(.animations-paused) .trust-strip>div:nth-child(3){animation-delay:.81s}

/* ---------- Motion-off fallbacks ---------- */
body.animations-paused .buyer-hero-copy>*,
body.animations-paused .buyer-hero-image,
body.animations-paused .trust-strip>div{opacity:1!important;animation:none!important}
body.animations-paused .shipment-note{animation:none!important}

@media (prefers-reduced-motion: reduce){
  .buyer-hero-copy>*,.buyer-hero-image,.trust-strip>div{opacity:1!important;animation:none!important}
  .shipment-note{animation:none!important}
  .review-card,.btn,nav a::after,.team-photo img{transition:none!important}
}
