Keystone Framework Plugin License Agreement
Effective Date: 03/02/2025

This License Agreement ("Agreement") is a legal agreement between you (the "Licensee" or "User") and Keystone Themes ("Licensor"), regarding the use of the Keystone Framework Plugin ("Plugin"). By installing, activating, or using this Plugin, you agree to be bound by the terms and conditions set forth in this Agreement.

If you do not agree to these terms, do not install, activate, or use the Plugin.

1. License Grant
Keystone Themes grants you a non-exclusive, non-transferable license to use the Keystone Framework Plugin (the "Plugin") in conjunction with the themes purchased from Keystone Themes (the "Theme") under the following terms:

Single Site License: You may use the Plugin on one website or domain that you own or control.
Multiple Sites: If you wish to use the Plugin on additional websites, you must purchase an additional license for each website.
Personal and Commercial Use: You may use the Plugin for both personal and commercial projects, including client websites, as long as the Plugin is only used with Keystone Themes.

2. Restrictions
No Redistribution: You may not redistribute, sell, sublicense, or transfer the Plugin or any portion of it without prior written consent from Keystone Themes.
No Modification: You may not modify, decompile, disassemble, or reverse-engineer the Plugin in any way.
No Removal of Copyright: You may not remove, obscure, or alter any copyright or trademark notices that appear in the Plugin files or documentation.

3. Updates and Support
Plugin Updates: You will receive updates for the Plugin as long as you maintain an active license for the related Keystone Theme. Updates are delivered through the official website or platform where you purchased the theme.
Support: Keystone Themes will provide basic support for the Plugin, which is limited to technical assistance related to installation, compatibility, and configuration. Support does not cover issues caused by third-party software or customizations.

4. Ownership and Copyright
The Plugin is owned by Keystone Themes, and all rights, title, and interest in and to the Plugin, including all intellectual property rights, remain with Keystone Themes. This Agreement does not transfer any ownership rights to you.
All content and code included in the Plugin are protected by copyright laws and international treaties.

5. Termination
This License will terminate automatically if you fail to comply with any of the terms and conditions outlined in this Agreement. Upon termination, you must cease using the Plugin and remove it from all websites where it is installed.

6. Disclaimer of Warranties
The Plugin is provided "as-is" without any warranties or guarantees of any kind. Keystone Themes makes no representations about the reliability, functionality, or fitness of the Plugin for any specific purpose.
Keystone Themes will not be liable for any damages or losses that result from the use or inability to use the Plugin, including but not limited to, loss of data, revenue, or business.

7. Limitation of Liability
To the maximum extent permitted by applicable law, Keystone Themes shall not be liable for any indirect, incidental, special, consequential, or punitive damages arising out of or related to this Agreement or the Plugin, even if advised of the possibility of such damages. In no event shall Keystone Themes' total liability to you exceed the amount you paid for the Plugin.

8. Indemnification
You agree to indemnify, defend, and hold harmless Keystone Themes, its affiliates, employees, and agents from any claims, damages, or liabilities arising out of your use of the Plugin, including any violations of this Agreement.

9. Governing Law
This Agreement shall be governed by and construed in accordance with the laws of [Your Country or State], without regard to its conflict of law principles.

10. Entire Agreement
This Agreement constitutes the entire understanding between the parties with respect to the Plugin and supersedes any prior agreements or understandings, whether written or oral, regarding the Plugin.

11. Contact Information
If you have any questions about this License Agreement or need to request permissions beyond the scope of this Agreement, please contact Keystone Themes at:
Email: hikeystonethemes@gmail.com
Website: https://keystonethemes.com

By using the Keystone Framework Plugin, you acknowledge that you have read, understood, and agree to the terms and conditions of this License Agreement.