/* Base-state transitions keep both hover entry and exit smooth. */
@media(prefers-reduced-motion:no-preference){
 body:is(.blue-sales,.dedicated-offer) :is(.button,.cta,.nav-cta),body.dedicated-offer .offer-ribbon>a{transition:box-shadow 260ms ease,filter 260ms ease,opacity 260ms ease,transform 260ms ease,color 260ms ease!important}
 body:is(.blue-sales,.dedicated-offer) :is(.button,.cta,.nav-cta)::before,body:is(.blue-sales,.dedicated-offer) :is(.button,.cta,.nav-cta)::after{transition:opacity 260ms ease,filter 260ms ease!important}
 /* Keep the flowing gradient; a box-shadow pulse would override interpolation. */
 body.blue-sales .button,body.blue-sales .blue-hero header .nav-cta{animation:blushFlow 6s ease-in-out infinite!important}
 body.blue-sales :is(.button,.nav-cta)::after{display:block;opacity:0}
 body.blue-sales :is(.button,.nav-cta):is(:hover,:focus-visible)::after{opacity:1}
}
@media(prefers-reduced-motion:reduce){
 body:is(.blue-sales,.dedicated-offer) :is(.button,.cta,.nav-cta),body.dedicated-offer .offer-ribbon>a,body:is(.blue-sales,.dedicated-offer) :is(.button,.cta,.nav-cta)::before,body:is(.blue-sales,.dedicated-offer) :is(.button,.cta,.nav-cta)::after{transition:none!important;animation:none!important}
}
