Skip to content
Book Consult / Ask a Lawyer
Shop Legal Services
Review Your Contract
Legal Contract Services
Start-Up, Business, Corporate Law
GDPR Compliance
Employment Law
Intellectual Property
Trade Marks
General Intellectual Property
Software & Cyber Law
Property Law
Template Agreements
Regulatory Compliance
Ask a Solicitor / Book Consult
Custom Quote Request
Become a Premium Member
Our Story
Our Team
Contact Us
My Profile
Search services
×
$
0.00
0
Cart
Search
×
Book Consult / Ask a Lawyer
Shop Legal Services
Review Your Contract
Legal Contract Services
Start-Up, Business, Corporate Law
GDPR Compliance
Employment Law
Intellectual Property
Trade Marks
General Intellectual Property
Software & Cyber Law
Property Law
Template Agreements
Regulatory Compliance
Ask a Solicitor / Book Consult
Custom Quote Request
Become a Premium Member
Our Story
Our Team
Contact Us
My Profile
$
0.00
0
Cart
Software
Add to cart
£
450.00
Add to cart
$
800.00
Add to cart
$
500.00
Add to cart
£
400.00
Add to cart
£
600.00
Add to cart
$
900.00
Go to Top
Top
{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this._animateElement(t)}catch(t){}})}_animateElement(t){const e=JSON.parse(t.dataset.settings),i=e._animation_delay||e.animation_delay||0,n=e[this.animationSettingKeys.find(t=>e[t])];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let s=setTimeout(()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this._removeAnimationSettings(t,e)},i);window.addEventListener("rocket-startLoading",function(){clearTimeout(s)})}_listAnimationSettingsKeys(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach(t=>{e.forEach(e=>{i.push(t+e)})}),i}_removeAnimationSettings(t,e){this._listAnimationSettingsKeys().forEach(t=>delete e[t]),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorAnimation;requestAnimationFrame(t._detectAnimations.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorAnimation.run);