diff --git a/odex30_base/expert_theme/__manifest__.py b/odex30_base/expert_theme/__manifest__.py
index 0a5f8d3..0f4b5e9 100644
--- a/odex30_base/expert_theme/__manifest__.py
+++ b/odex30_base/expert_theme/__manifest__.py
@@ -24,6 +24,8 @@
'views/expert_theme_config_views.xml',
'views/expert_home_views.xml',
'views/expert_menu_views.xml',
+ 'views/web_layout.xml',
+ 'views/res_config_settings_views.xml',
],
'assets': {
'web.assets_frontend': [
@@ -33,6 +35,8 @@
'expert_theme/static/src/js/expert_login_template.js',
],
'web.assets_backend': [
+ 'expert_theme/static/src/fonts/en_fonts.scss',
+ 'expert_theme/static/src/fonts/ar_fonts.scss',
'expert_theme/static/src/scss/expert_theme_config.scss',
'expert_theme/static/src/scss/expert_theme.scss',
'expert_theme/static/src/js/expert_theme_dynamic.js',
@@ -40,6 +44,11 @@
'expert_theme/static/src/js/expert_home.js',
'expert_theme/static/src/js/expert_login_template_list.js',
'expert_theme/static/src/xml/expert_home.xml',
+ 'expert_theme/static/src/language_menu/language_menu.js',
+ 'expert_theme/static/src/language_menu/language_menu.xml',
+ 'expert_theme/static/src/language_menu/language_menu.scss',
+ 'expert_theme/static/src/scss/intro_loader.scss',
+ 'expert_theme/static/src/js/intro_loader.js',
]
},
'installable': True,
diff --git a/odex30_base/expert_theme/controllers/__init__.py b/odex30_base/expert_theme/controllers/__init__.py
index 2b4d723..6b5f334 100644
--- a/odex30_base/expert_theme/controllers/__init__.py
+++ b/odex30_base/expert_theme/controllers/__init__.py
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
from . import expert_controller
+from . import main
\ No newline at end of file
diff --git a/odex30_base/expert_theme/controllers/main.py b/odex30_base/expert_theme/controllers/main.py
new file mode 100644
index 0000000..fc6cbac
--- /dev/null
+++ b/odex30_base/expert_theme/controllers/main.py
@@ -0,0 +1,18 @@
+import base64
+from odoo import http
+from odoo.http import request
+
+class IntroLoaderController(http.Controller):
+
+ @http.route('/intro_loader/image', type='http', auth="none")
+ def intro_loader_image(self, **kwargs):
+ # Fetch image from config
+ img_b64 = request.env['ir.config_parameter'].sudo().get_param('intro_loader.image_data')
+
+ if not img_b64:
+ # Return a 1x1 transparent pixel or default Odoo logo if none set
+ return request.redirect('/web/static/img/logo2.png')
+
+ image_data = base64.b64decode(img_b64)
+ headers = [('Content-Type', 'image/png')]
+ return request.make_response(image_data, headers)
\ No newline at end of file
diff --git a/odex30_base/expert_theme/i18n/ar_001.po b/odex30_base/expert_theme/i18n/ar_001.po
new file mode 100644
index 0000000..7231d7f
--- /dev/null
+++ b/odex30_base/expert_theme/i18n/ar_001.po
@@ -0,0 +1,1528 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * expert_theme
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 18.2a1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2026-01-06 05:42+0000\n"
+"PO-Revision-Date: 2026-01-06 05:42+0000\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_minimal_page
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_modern_page
+msgid "Expert"
+msgstr "خبير"
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_minimal_page
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_modern_page
+msgid "E"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid ""
+"Editing Existing Template: You are editing an existing template. \n"
+" To create a NEW template, go back to the list and click \"New\" button."
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid ""
+"Note: Logo and image will be used across all three pages "
+"(Login, Signup, Reset Password) when Corporate template is active."
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid ""
+"Note: Logo and image will be used across all three pages "
+"(Login, Signup, Reset Password) when Minimal template is active."
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid ""
+"Note: Logo and image will be used across all three pages "
+"(Login, Signup, Reset Password) when Modern template is active."
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid ""
+"Note: Only one template can be active at a time. \n"
+" Activating this template will deactivate all others. \n"
+" Each template has a completely different HTML structure and design."
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid ""
+"Template Types:
\n"
+" • Default: Standard Odoo login page
\n"
+" • Modern: Card design with gradient background
\n"
+" • Minimal: Clean minimal design
\n"
+" • Corporate: Professional dark theme"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_corporate_page
+msgid "Access Portal"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_tree
+msgid "Activate"
+msgstr "تفعيل"
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__active
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__active
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_search
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_search
+msgid "Active"
+msgstr "نشط"
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__arabic_fonts_style__almarai
+msgid "Almarai"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_form
+msgid "Apply Theme"
+msgstr "تطبيق المظهر"
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__arabic_fonts_style
+msgid "Arabic Fonts Style"
+msgstr "نمط الخطوط العربية"
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_tree
+msgid ""
+"Are you sure you want to activate this template? It will deactivate all "
+"other templates."
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.ui.menu,name:expert_theme.menu_expert_login_templates
+msgid "Auth Pages Templates"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.ui.menu,name:expert_theme.menu_expert_theme_colors
+msgid "Backend Themes"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__background_color
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Background Color"
+msgstr "لون الخلفية"
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_form
+msgid "Background Colors"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_login_button_bg_color
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_login_button_bg_color
+msgid "Background color for login button"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_login_button_bg_hover
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_login_button_bg_hover
+msgid "Background color for login button on hover"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_signup_button_bg_color
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_signup_button_bg_color
+msgid "Background color for signup button"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_signup_button_bg_hover
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_signup_button_bg_hover
+msgid "Background color for signup button on hover"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__background_color
+msgid "Background color for the login page"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Background color for the login page (used for CSS customization)"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__arabic_fonts_style__beiruti
+msgid "Beiruti"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__border_color
+msgid "Border Color"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_form
+msgid "Border Colors"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_form
+msgid "Button Colors"
+msgstr "ألوان الأزرار"
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_login_button_text
+msgid "Button text for Minimal template login page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_signup_button_text
+msgid "Button text for Minimal template signup page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_login_button_text
+msgid "Button text for Modern template login page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_signup_button_text
+msgid "Button text for Modern template signup page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__arabic_fonts_style__cairo
+msgid "Cairo"
+msgstr ""
+
+#. module: expert_theme
+#. odoo-javascript
+#: code:addons/expert_theme/static/src/xml/expert_home.xml:0
+msgid "Check the browser console for debugging information"
+msgstr ""
+
+#. module: expert_theme
+#: model:expert.login.template,description:expert_theme.expert_login_template_minimal
+msgid "Clean minimal design template"
+msgstr ""
+
+#. module: expert_theme
+#. odoo-javascript
+#: code:addons/expert_theme/static/src/xml/expert_home.xml:0
+msgid "Click to open"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__home_banner_bg_type__color
+msgid "Color"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__navbar_brand_color
+msgid "Color of the brand/logo text in the navbar"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__navbar_link_color
+msgid "Color of the links in the navbar"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_corporate_page
+msgid ""
+"Company\n"
+" Portal"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_minimal_page
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_modern_page
+msgid "Company Logo"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__corporate_template_logo
+msgid ""
+"Company logo to display on Corporate login, signup, and reset password pages"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_template_logo
+msgid ""
+"Company logo to display on Minimal login, signup, and reset password pages"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_template_logo
+msgid ""
+"Company logo to display on Modern login, signup, and reset password pages"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__name
+msgid "Configuration Name"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.actions.act_window,help:expert_theme.action_expert_login_template
+msgid ""
+"Configure different login page templates and switch between them.\n"
+" Each template can have different colors, backgrounds, and styles."
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__bg_content
+msgid "Content Background"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_login_template__template_type__corporate
+msgid "Corporate Design"
+msgstr ""
+
+#. module: expert_theme
+#: model:expert.login.template,name:expert_theme.expert_login_template_corporate
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Corporate Template"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__corporate_template_image
+msgid "Corporate Template Image"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__corporate_template_logo
+msgid "Corporate Template Logo"
+msgstr ""
+
+#. module: expert_theme
+#: model:expert.login.template,minimal_signup_button_text:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,minimal_signup_button_text:expert_theme.expert_login_template_default
+#: model:expert.login.template,minimal_signup_button_text:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,minimal_signup_button_text:expert_theme.expert_login_template_modern
+#: model:expert.login.template,minimal_signup_title:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,minimal_signup_title:expert_theme.expert_login_template_default
+#: model:expert.login.template,minimal_signup_title:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,minimal_signup_title:expert_theme.expert_login_template_modern
+#: model:expert.login.template,modern_signup_button_text:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,modern_signup_button_text:expert_theme.expert_login_template_default
+#: model:expert.login.template,modern_signup_button_text:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,modern_signup_button_text:expert_theme.expert_login_template_modern
+#: model:expert.login.template,modern_signup_title:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,modern_signup_title:expert_theme.expert_login_template_default
+#: model:expert.login.template,modern_signup_title:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,modern_signup_title:expert_theme.expert_login_template_modern
+msgid "Create an account"
+msgstr "إنشاء حساب"
+
+#. module: expert_theme
+#: model_terms:ir.actions.act_window,help:expert_theme.action_expert_login_template
+msgid "Create your first login page template!"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.actions.act_window,help:expert_theme.action_expert_theme_config
+msgid "Create your first theme configuration!"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__create_uid
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__create_date
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__create_date
+msgid "Created on"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.actions.act_window,help:expert_theme.action_expert_theme_config
+msgid ""
+"Customize the colors of your Expert Theme by creating a new configuration.\n"
+" You can set primary colors, button colors, backgrounds, and more."
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__danger_color
+msgid "Danger Color"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__danger_color
+msgid "Danger/Error state (red)"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__arabic_fonts_style__default
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__english_fonts_style__default
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_search
+msgid "Default"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_login_template__template_type__default
+msgid "Default Odoo Login"
+msgstr ""
+
+#. module: expert_theme
+#: model:expert.login.template,name:expert_theme.expert_login_template_default
+msgid "Default Template"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__border_color
+msgid "Default border color"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__is_default
+msgid "Default template to use"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Describe this template..."
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__description
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Description"
+msgstr "الوصف"
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__description
+msgid "Description of this template"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__display_name
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__display_name
+#: model:ir.model.fields,field_description:expert_theme.field_ir_http__display_name
+msgid "Display Name"
+msgstr "الاسم المعروض"
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_tree
+msgid "Duplicate"
+msgstr "تكرار"
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__english_fonts_style
+msgid "English Fonts Style"
+msgstr "نمط الخطوط الإنجليزية"
+
+#. module: expert_theme
+#: model:expert.login.template,minimal_reset_subtitle:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,minimal_reset_subtitle:expert_theme.expert_login_template_default
+#: model:expert.login.template,minimal_reset_subtitle:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,minimal_reset_subtitle:expert_theme.expert_login_template_modern
+#: model:expert.login.template,modern_reset_subtitle:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,modern_reset_subtitle:expert_theme.expert_login_template_default
+#: model:expert.login.template,modern_reset_subtitle:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,modern_reset_subtitle:expert_theme.expert_login_template_modern
+msgid "Enter your email to receive reset instructions"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_corporate_page
+msgid "Enter your password"
+msgstr "أدخل كلمة المرور"
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_corporate_page
+msgid "Enter your username"
+msgstr "أدخل اسم المستخدم"
+
+#. module: expert_theme
+#. odoo-javascript
+#: code:addons/expert_theme/static/src/xml/expert_home.xml:0
+msgid "Error:"
+msgstr "خطأ:"
+
+#. module: expert_theme
+#: model:ir.actions.client,name:expert_theme.action_expert_home
+msgid "Expert Home"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model,name:expert_theme.model_expert_login_template
+msgid "Expert Login Page Template"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model,name:expert_theme.model_expert_theme_config
+msgid "Expert Theme Color Configuration"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_form
+msgid "Expert Theme Configuration"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_tree
+msgid "Expert Theme Configurations"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_form
+msgid "Fonts Settings"
+msgstr "إعدادات الخطوط"
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__bg_gradient_end
+msgid "Gradient End"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__bg_gradient_start
+msgid "Gradient Start"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_search
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_search
+msgid "Group By"
+msgstr "تجميع حسب"
+
+#. module: expert_theme
+#: model:ir.model,name:expert_theme.model_ir_http
+msgid "HTTP Routing"
+msgstr "مسار HTTP"
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__home_banner_bg_image
+msgid "Home Banner Background"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__home_banner_bg_type
+msgid "Home Banner Background Type"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_form
+msgid "Home Banner Settings"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__home_banner_text
+msgid "Home Banner Text"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__navbar_link_hover
+msgid "Hover color for navbar links"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__primary_hover
+msgid "Hover state for primary elements"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__secondary_hover
+msgid "Hover state for secondary elements"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__arabic_fonts_style__ibm_plex_sans_arabic
+msgid "IBM Plex Sans Arabic"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__id
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__id
+#: model:ir.model.fields,field_description:expert_theme.field_ir_http__id
+msgid "ID"
+msgstr "المُعرف"
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__home_banner_bg_type__image
+msgid "Image"
+msgstr "صورة"
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__home_banner_bg_image_filename
+msgid "Image Filename"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__corporate_template_image
+msgid ""
+"Image to display on the right side of Corporate login, signup, and reset "
+"password pages"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_template_image
+msgid ""
+"Image to display on the right side of Minimal login, signup, and reset "
+"password pages"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_template_image
+msgid ""
+"Image to display on the right side of Modern login, signup, and reset "
+"password pages"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_search
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_search
+msgid "Inactive"
+msgstr "غير نشط"
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__info_color
+msgid "Info Color"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__info_color
+msgid "Info state (blue)"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__english_fonts_style__inter
+msgid "Inter"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__is_default
+msgid "Is Default Template"
+msgstr ""
+
+#. module: expert_theme
+#: model:expert.login.template,minimal_signup_subtitle:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,minimal_signup_subtitle:expert_theme.expert_login_template_default
+#: model:expert.login.template,minimal_signup_subtitle:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,minimal_signup_subtitle:expert_theme.expert_login_template_modern
+#: model:expert.login.template,modern_signup_subtitle:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,modern_signup_subtitle:expert_theme.expert_login_template_default
+#: model:expert.login.template,modern_signup_subtitle:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,modern_signup_subtitle:expert_theme.expert_login_template_modern
+msgid "Join us today and get started"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_modern_page
+msgid ""
+"Kindly fill in your details below to sign in to your\n"
+" account"
+msgstr ""
+
+#. module: expert_theme
+#: model:expert.login.template,minimal_login_subtitle:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,minimal_login_subtitle:expert_theme.expert_login_template_default
+#: model:expert.login.template,minimal_login_subtitle:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,minimal_login_subtitle:expert_theme.expert_login_template_modern
+#: model:expert.login.template,modern_login_subtitle:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,modern_login_subtitle:expert_theme.expert_login_template_default
+#: model:expert.login.template,modern_login_subtitle:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,modern_login_subtitle:expert_theme.expert_login_template_modern
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_minimal_page
+msgid "Kindly fill in your details below to sign in to your account"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__write_uid
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__write_date
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__english_fonts_style__libertinus_serif_display
+msgid "Libertinus Serif Display"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__english_fonts_style__libre_baskerville
+msgid "Libre Baskerville"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__border_light
+msgid "Light Border"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__btn_light
+msgid "Light Button"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__btn_light_hover
+msgid "Light Button Hover"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__btn_light_text
+msgid "Light Button Text"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__text_light
+msgid "Light Text"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__border_light
+msgid "Light border color"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__btn_light_hover
+msgid "Light button hover state"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__btn_light_text
+msgid "Light button text color"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__btn_light
+msgid "Light buttons (like \"Learn More\" buttons)"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__text_light
+msgid "Light text (for dark backgrounds)"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__primary_light
+msgid "Light version of primary color"
+msgstr ""
+
+#. module: expert_theme
+#. odoo-javascript
+#: code:addons/expert_theme/static/src/xml/expert_home.xml:0
+msgid "Loading your modules..."
+msgstr ""
+
+#. module: expert_theme
+#. odoo-javascript
+#: code:addons/expert_theme/static/src/xml/expert_home.xml:0
+msgid "Loading..."
+msgstr "جارٍ التحميل..."
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_login_button_bg_hover
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_login_button_bg_hover
+msgid "Login Button BG Hover"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_login_button_bg_color
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_login_button_bg_color
+msgid "Login Button Background"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_login_button_text
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_login_button_text
+msgid "Login Button Text"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_login_button_text_color
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_login_button_text_color
+msgid "Login Button Text Color"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_login_button_text_hover
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_login_button_text_hover
+msgid "Login Button Text Hover"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Login Page"
+msgstr "صفحة تسجيل الدخول"
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Login Page Template"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.actions.act_window,name:expert_theme.action_expert_login_template
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_tree
+msgid "Login Page Templates"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_login_subtitle
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_login_subtitle
+msgid "Login Subtitle"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_login_title
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_login_title
+msgid "Login Title"
+msgstr "عنوان تسجيل الدخول"
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__primary_color
+msgid "Main brand color - affects navbar, primary buttons, and accents"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__bg_content
+msgid "Main content background"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__text_primary
+msgid "Main text color (dark)"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_login_template__template_type__minimal
+msgid "Minimal Design"
+msgstr ""
+
+#. module: expert_theme
+#: model:expert.login.template,name:expert_theme.expert_login_template_minimal
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Minimal Template"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_template_image
+msgid "Minimal Template Image"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_template_logo
+msgid "Minimal Template Logo"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Minimal Template Text"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_login_template__template_type__modern
+msgid "Modern Card Design"
+msgstr ""
+
+#. module: expert_theme
+#: model:expert.login.template,name:expert_theme.expert_login_template_modern
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Modern Template"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_template_image
+msgid "Modern Template Image"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_template_logo
+msgid "Modern Template Logo"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Modern Template Text"
+msgstr ""
+
+#. module: expert_theme
+#: model:expert.login.template,description:expert_theme.expert_login_template_modern
+msgid "Modern card design with gradient background"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__name
+msgid "Name of the login page template"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__navbar_brand_color
+msgid "Navbar Brand Color"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_form
+msgid "Navbar Colors"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__navbar_link_color
+msgid "Navbar Link Color"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__navbar_link_hover
+msgid "Navbar Link Hover"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__bg_primary
+msgid "Navbar background"
+msgstr ""
+
+#. module: expert_theme
+#. odoo-javascript
+#: code:addons/expert_theme/static/src/xml/expert_home.xml:0
+msgid "No installed modules found."
+msgstr ""
+
+#. module: expert_theme
+#. odoo-javascript
+#: code:addons/expert_theme/static/src/xml/expert_home.xml:0
+msgid "No modules are currently installed"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__arabic_fonts_style__noto_kufi_arabic
+msgid "Noto Kufi Arabic"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__arabic_fonts_style__noto_sans_arabic
+msgid "Noto Sans Arabic"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.ui.menu,name:expert_theme.menu_expert_root
+msgid "Odex Theme"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__active
+msgid ""
+"Only one template can be active at a time. Activate this template to use it "
+"on the login page."
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__sequence
+msgid "Order of display"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__english_fonts_style__oswald
+msgid "Oswald"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__bg_gradient_end
+msgid "Page gradient end color"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__bg_gradient_start
+msgid "Page gradient start color"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_corporate_page
+msgid "Password"
+msgstr "كلمة المرور"
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__bg_primary
+msgid "Primary Background"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__btn_primary
+msgid "Primary Button"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__btn_primary_hover
+msgid "Primary Button Hover"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__primary_color
+msgid "Primary Color"
+msgstr "اللون الأساسي"
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_form
+msgid "Primary Colors"
+msgstr "الألوان الأساسية"
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__primary_hover
+msgid "Primary Hover"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__primary_light
+msgid "Primary Light"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__text_primary
+msgid "Primary Text"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__btn_primary_hover
+msgid "Primary button hover state"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__btn_primary
+msgid "Primary buttons (like \"Activate\" buttons)"
+msgstr ""
+
+#. module: expert_theme
+#: model:expert.login.template,description:expert_theme.expert_login_template_corporate
+msgid "Professional corporate dark theme"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__english_fonts_style__quicksand
+msgid "Quicksand"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__english_fonts_style__raleway
+msgid "Raleway"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Reset Password Page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_reset_subtitle
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_reset_subtitle
+msgid "Reset Password Subtitle"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_reset_title
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_reset_title
+msgid "Reset Password Title"
+msgstr ""
+
+#. module: expert_theme
+#: model:expert.login.template,minimal_reset_title:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,minimal_reset_title:expert_theme.expert_login_template_default
+#: model:expert.login.template,minimal_reset_title:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,minimal_reset_title:expert_theme.expert_login_template_modern
+#: model:expert.login.template,modern_reset_title:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,modern_reset_title:expert_theme.expert_login_template_default
+#: model:expert.login.template,modern_reset_title:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,modern_reset_title:expert_theme.expert_login_template_modern
+msgid "Reset your password"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__english_fonts_style__roboto
+msgid "Roboto"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__arabic_fonts_style__rubik
+msgid "Rubik"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Save"
+msgstr "حفظ"
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_search
+msgid "Search Login Templates"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_search
+msgid "Search Theme Configurations"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__bg_secondary
+msgid "Secondary Background"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__btn_secondary
+msgid "Secondary Button"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__btn_secondary_hover
+msgid "Secondary Button Hover"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__secondary_color
+msgid "Secondary Color"
+msgstr "اللون الثانوي"
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_form
+msgid "Secondary Colors"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__secondary_hover
+msgid "Secondary Hover"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__text_secondary
+msgid "Secondary Text"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__secondary_color
+msgid "Secondary brand color - affects upgrade buttons and secondary elements"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__btn_secondary_hover
+msgid "Secondary button hover state"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__btn_secondary
+msgid "Secondary buttons (like \"Upgrade\" buttons)"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__text_secondary
+msgid "Secondary text color (gray)"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_corporate_page
+msgid "Secure Login Access"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__template_type
+msgid ""
+"Select the login page template design. Each design has a completely "
+"different HTML structure and layout."
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__sequence
+msgid "Sequence"
+msgstr "التسلسل"
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__bg_secondary
+msgid "Sidebar background"
+msgstr ""
+
+#. module: expert_theme
+#: model:expert.login.template,minimal_login_button_text:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,minimal_login_button_text:expert_theme.expert_login_template_default
+#: model:expert.login.template,minimal_login_button_text:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,minimal_login_button_text:expert_theme.expert_login_template_modern
+#: model:expert.login.template,modern_login_button_text:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,modern_login_button_text:expert_theme.expert_login_template_default
+#: model:expert.login.template,modern_login_button_text:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,modern_login_button_text:expert_theme.expert_login_template_modern
+msgid "Sign In"
+msgstr "تسجيل الدخول"
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_signup_button_bg_hover
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_signup_button_bg_hover
+msgid "Signup Button BG Hover"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_signup_button_bg_color
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_signup_button_bg_color
+msgid "Signup Button Background"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_signup_button_text
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_signup_button_text
+msgid "Signup Button Text"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_signup_button_text_color
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_signup_button_text_color
+msgid "Signup Button Text Color"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_signup_button_text_hover
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_signup_button_text_hover
+msgid "Signup Button Text Hover"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_minimal_page
+msgid "Signup Illustration"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Signup Page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_signup_subtitle
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_signup_subtitle
+msgid "Signup Subtitle"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__minimal_signup_title
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__modern_signup_title
+msgid "Signup Title"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__english_fonts_style__space_grotesk
+msgid "Space Grotesk"
+msgstr ""
+
+#. module: expert_theme
+#: model:expert.login.template,description:expert_theme.expert_login_template_default
+msgid "Standard Odoo login page template"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_search
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_search
+msgid "Status"
+msgstr "الحالة"
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_form
+msgid "Status Colors"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__english_fonts_style__story_script
+msgid "Story Script"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_login_subtitle
+msgid "Subtitle text for Minimal template login page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_reset_subtitle
+msgid "Subtitle text for Minimal template reset password page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_signup_subtitle
+msgid "Subtitle text for Minimal template signup page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_login_subtitle
+msgid "Subtitle text for Modern template login page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_reset_subtitle
+msgid "Subtitle text for Modern template reset password page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_signup_subtitle
+msgid "Subtitle text for Modern template signup page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__success_color
+msgid "Success Color"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__success_color
+msgid "Success/Active state (green)"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__arabic_fonts_style__tajawal
+msgid "Tajawal"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__template_type
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Template Design"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Template Images & Logo"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_login_template__name
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Template Name"
+msgstr "اسم القالب"
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "Template Settings"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_form
+msgid "Text Colors"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_login_button_text_color
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_login_button_text_color
+msgid "Text color for login button"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_login_button_text_hover
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_login_button_text_hover
+msgid "Text color for login button on hover"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_signup_button_text_color
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_signup_button_text_color
+msgid "Text color for signup button"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_signup_button_text_hover
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_signup_button_text_hover
+msgid "Text color for signup button on hover"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__home_banner_text
+msgid "Text color for the home screen banner"
+msgstr ""
+
+#. module: expert_theme
+#. odoo-javascript
+#: code:addons/expert_theme/static/src/xml/expert_home.xml:0
+msgid "The module detection is not working properly"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.actions.act_window,name:expert_theme.action_expert_theme_config
+msgid "Theme Colors"
+msgstr "ألوان المظهر"
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_theme_config_form
+msgid "Theme Name"
+msgstr "اسم المظهر"
+
+#. module: expert_theme
+#. odoo-javascript
+#: code:addons/expert_theme/static/src/xml/expert_home.xml:0
+msgid "This could mean:"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_login_title
+msgid "Title text for Minimal template login page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_reset_title
+msgid "Title text for Minimal template reset password page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__minimal_signup_title
+msgid "Title text for Minimal template signup page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_login_title
+msgid "Title text for Modern template login page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_reset_title
+msgid "Title text for Modern template reset password page"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_login_template__modern_signup_title
+msgid "Title text for Modern template signup page"
+msgstr ""
+
+#. module: expert_theme
+#. odoo-javascript
+#: code:addons/expert_theme/static/src/xml/expert_home.xml:0
+msgid ""
+"Try refreshing the page or check if modules are properly installed in Odoo."
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields.selection,name:expert_theme.selection__expert_theme_config__english_fonts_style__ubuntu
+msgid "Ubuntu"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid ""
+"Upload an image to display on the right side of Corporate login, signup, and"
+" reset password pages"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid ""
+"Upload an image to display on the right side of Minimal login, signup, and "
+"reset password pages"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid ""
+"Upload an image to display on the right side of Modern login, signup, and "
+"reset password pages"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid ""
+"Upload your company logo (recommended size: 40x40px). This will replace the "
+"default 'E' icon."
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_corporate_page
+msgid "Username"
+msgstr "اسم المستخدم"
+
+#. module: expert_theme
+#: model:ir.model.fields,field_description:expert_theme.field_expert_theme_config__warning_color
+msgid "Warning Color"
+msgstr ""
+
+#. module: expert_theme
+#: model:ir.model.fields,help:expert_theme.field_expert_theme_config__warning_color
+msgid "Warning state (yellow)"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_modern_page
+msgid ""
+"Welcome to Expert \n"
+" 👋"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.login_template_minimal_page
+msgid "Welcome to Expert 👋"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_home
+msgid "Welcome to Expert Theme"
+msgstr ""
+
+#. module: expert_theme
+#: model:expert.login.template,minimal_login_title:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,minimal_login_title:expert_theme.expert_login_template_default
+#: model:expert.login.template,minimal_login_title:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,minimal_login_title:expert_theme.expert_login_template_modern
+#: model:expert.login.template,modern_login_title:expert_theme.expert_login_template_corporate
+#: model:expert.login.template,modern_login_title:expert_theme.expert_login_template_default
+#: model:expert.login.template,modern_login_title:expert_theme.expert_login_template_minimal
+#: model:expert.login.template,modern_login_title:expert_theme.expert_login_template_modern
+msgid "Welcome to Expert 👋"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_home
+msgid "Your installed modules are listed below"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "e.g., Create an account"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "e.g., Enter your email to receive reset instructions"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "e.g., Join us today and get started"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "e.g., Kindly fill in your details below to sign in to your account"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "e.g., Reset your password"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "e.g., Sign In"
+msgstr ""
+
+#. module: expert_theme
+#: model_terms:ir.ui.view,arch_db:expert_theme.view_expert_login_template_form
+msgid "e.g., Welcome to Expert 👋"
+msgstr ""
+
+#. module: expert_theme
+#. odoo-javascript
+#: code:addons/expert_theme/static/src/xml/expert_home.xml:0
+msgid "🎨 Customize Theme Colors"
+msgstr ""
diff --git a/odex30_base/expert_theme/models/__init__.py b/odex30_base/expert_theme/models/__init__.py
index 6878437..51fd383 100644
--- a/odex30_base/expert_theme/models/__init__.py
+++ b/odex30_base/expert_theme/models/__init__.py
@@ -2,3 +2,5 @@
from . import expert_theme_config
from . import expert_login_template
+from . import ir_http
+from . import res_config_settings
\ No newline at end of file
diff --git a/odex30_base/expert_theme/models/expert_theme_config.py b/odex30_base/expert_theme/models/expert_theme_config.py
index 6d0060d..faa6960 100644
--- a/odex30_base/expert_theme/models/expert_theme_config.py
+++ b/odex30_base/expert_theme/models/expert_theme_config.py
@@ -12,8 +12,8 @@ class ExpertThemeConfig(models.Model):
active = fields.Boolean(string='Active', default=True)
# Primary Colors
- primary_color = fields.Char(string='Primary Color', default='#875A7B', help='Main brand color - affects navbar, primary buttons, and accents')
- primary_hover = fields.Char(string='Primary Hover', default='#6B4C6B', help='Hover state for primary elements')
+ primary_color = fields.Char(string='Primary Color', default='#194571', help='Main brand color - affects navbar, primary buttons, and accents')
+ primary_hover = fields.Char(string='Primary Hover', default="#1A3958", help='Hover state for primary elements')
primary_light = fields.Char(string='Primary Light', default='#A67B9B', help='Light version of primary color')
# Secondary Colors
@@ -21,8 +21,8 @@ class ExpertThemeConfig(models.Model):
secondary_hover = fields.Char(string='Secondary Hover', default='#008B8A', help='Hover state for secondary elements')
# Button Colors
- btn_primary = fields.Char(string='Primary Button', default='#875A7B', help='Primary buttons (like "Activate" buttons)')
- btn_primary_hover = fields.Char(string='Primary Button Hover', default='#6B4C6B', help='Primary button hover state')
+ btn_primary = fields.Char(string='Primary Button', default='#194571', help='Primary buttons (like "Activate" buttons)')
+ btn_primary_hover = fields.Char(string='Primary Button Hover', default='#1A3958', help='Primary button hover state')
btn_secondary = fields.Char(string='Secondary Button', default='#00A09D', help='Secondary buttons (like "Upgrade" buttons)')
btn_secondary_hover = fields.Char(string='Secondary Button Hover', default='#008B8A', help='Secondary button hover state')
btn_light = fields.Char(string='Light Button', default='#F8F9FA', help='Light buttons (like "Learn More" buttons)')
@@ -30,8 +30,8 @@ class ExpertThemeConfig(models.Model):
btn_light_text = fields.Char(string='Light Button Text', default='#6C757D', help='Light button text color')
# Background Colors
- bg_primary = fields.Char(string='Primary Background', default='#875A7B', help='Navbar background')
- bg_secondary = fields.Char(string='Secondary Background', default='#F8F9FA', help='Sidebar background')
+ bg_primary = fields.Char(string='Primary Background', default='#194571', help='Navbar background')
+ bg_secondary = fields.Char(string='Secondary Background', default='#194571', help='Sidebar background')
bg_content = fields.Char(string='Content Background', default='#FFFFFF', help='Main content background')
bg_gradient_start = fields.Char(string='Gradient Start', default='#f5f7fa', help='Page gradient start color')
bg_gradient_end = fields.Char(string='Gradient End', default='#c3cfe2', help='Page gradient end color')
@@ -50,7 +50,49 @@ class ExpertThemeConfig(models.Model):
warning_color = fields.Char(string='Warning Color', default='#FFC107', help='Warning state (yellow)')
danger_color = fields.Char(string='Danger Color', default='#DC3545', help='Danger/Error state (red)')
info_color = fields.Char(string='Info Color', default='#17A2B8', help='Info state (blue)')
+
+ # Navbar Colors
+ navbar_brand_color = fields.Char(string='Navbar Brand Color', default='#FFFFFF', help='Color of the brand/logo text in the navbar')
+ navbar_link_color = fields.Char(string='Navbar Link Color', default='#FFFFFF', help='Color of the links in the navbar')
+ navbar_link_hover = fields.Char(string='Navbar Link Hover', default='#194571', help='Hover color for navbar links')
+
+ # home screen banner
+ home_banner_bg_type = fields.Selection([
+ ('color', 'Color'),
+ ('image', 'Image')
+ ], string='Home Banner Background Type', default='color', required=True)
+ home_banner_bg_image = fields.Binary(string='Home Banner Background', attachment=True)
+ home_banner_bg_image_filename = fields.Char(string='Image Filename')
+ home_banner_text = fields.Char(string='Home Banner Text', default='#212529', help='Text color for the home screen banner')
+
+ # Font Styles
+ arabic_fonts_style = fields.Selection([
+ ('default', 'Default'),
+ ('rubik', 'Rubik'),
+ ('cairo', 'Cairo'),
+ ('tajawal', 'Tajawal'),
+ ('noto_sans_arabic', 'Noto Sans Arabic'),
+ ('almarai', 'Almarai'),
+ ('ibm_plex_sans_arabic', 'IBM Plex Sans Arabic'),
+ ('noto_kufi_arabic', 'Noto Kufi Arabic'),
+ ('beiruti', 'Beiruti'),
+ ], string='Arabic Fonts Style', default='default')
+ english_fonts_style = fields.Selection([
+ ('default', 'Default'),
+ ('roboto', 'Roboto'),
+ ('roboto', 'Roboto'),
+ ('inter', 'Inter'),
+ ('story_script', 'Story Script'),
+ ('oswald', 'Oswald'),
+ ('raleway','Raleway'),
+ ('libertinus_serif_display', 'Libertinus Serif Display'),
+ ('ubuntu','Ubuntu'),
+ ('quicksand', 'Quicksand'),
+ ('libre_baskerville', 'Libre Baskerville'),
+ ('space_grotesk', 'Space Grotesk'),
+ ], string='English Fonts Style', default='default')
+
@api.model
def get_active_config(self):
"""Get the active configuration or create a default one"""
@@ -66,6 +108,23 @@ class ExpertThemeConfig(models.Model):
def get_css_variables(self):
"""Get CSS variables for the active configuration"""
config = self.get_active_config()
+
+ banner_bg = "url('/expert_theme/static/src/img/home/background-light.png') no-repeat center / cover"
+ # check home banner bg type
+ if config.home_banner_bg_type == 'color':
+ banner_bg = config.primary_color
+ else:
+ if config.home_banner_bg_image:
+ banner_bg = f"url('/web/content/{config._name}/{config.id}/home_banner_bg_image') no-repeat center / cover"
+
+ # get font styles
+ arabic_font_label = 'var(--font-sans-serif)'
+ english_font_label = 'var(--font-sans-serif)'
+ if self.arabic_fonts_style != 'default':
+ arabic_font_label = dict(self.fields_get(allfields=['arabic_fonts_style'])['arabic_fonts_style']['selection']).get(self.arabic_fonts_style, self.arabic_fonts_style)
+ if self.english_fonts_style != 'default':
+ english_font_label = dict(self.fields_get(allfields=['english_fonts_style'])['english_fonts_style']['selection']).get(self.english_fonts_style, self.english_fonts_style)
+
return {
'--expert-primary-color': config.primary_color,
'--expert-primary-hover': config.primary_hover,
@@ -93,6 +152,13 @@ class ExpertThemeConfig(models.Model):
'--expert-warning': config.warning_color,
'--expert-danger': config.danger_color,
'--expert-info': config.info_color,
+ '--expert-home-banner-bg': banner_bg,
+ '--homeMenuCaption-color': config.home_banner_text,
+ '--NavBar-brand-color': config.navbar_brand_color,
+ '--NavBar-entry-color': config.navbar_link_color,
+ '--NavBar-entry-color--hover': config.navbar_link_hover,
+ '--expert-ar-font-family': arabic_font_label,
+ '--expert-en-font-family': english_font_label
}
def apply_theme(self):
diff --git a/odex30_base/expert_theme/models/ir_http.py b/odex30_base/expert_theme/models/ir_http.py
new file mode 100644
index 0000000..44cb022
--- /dev/null
+++ b/odex30_base/expert_theme/models/ir_http.py
@@ -0,0 +1,19 @@
+# models/ir_http.py
+from odoo import models
+
+class IrHttp(models.AbstractModel):
+ _inherit = 'ir.http'
+
+ def session_info(self):
+ result = super().session_info()
+ # Fetch all active languages
+ languages = self.env['res.lang'].search_read(
+ [('active', '=', True)],
+ ['code', 'name', 'flag_image_url']
+ )
+ # Sort them: Current user's lang first, then by name
+ current_lang = self.env.user.lang
+ languages.sort(key=lambda x: (x['code'] != current_lang, x['name']))
+
+ result['available_languages'] = languages
+ return result
\ No newline at end of file
diff --git a/odex30_base/expert_theme/models/res_config_settings.py b/odex30_base/expert_theme/models/res_config_settings.py
new file mode 100644
index 0000000..d6023cc
--- /dev/null
+++ b/odex30_base/expert_theme/models/res_config_settings.py
@@ -0,0 +1,37 @@
+from odoo import models, fields, api
+
+class ResConfigSettings(models.TransientModel):
+ _inherit = 'res.config.settings'
+
+ intro_loader_active = fields.Boolean(string="Enable Intro Loader", config_parameter='intro_loader.active')
+
+ # Text Configuration
+ intro_loader_text = fields.Char(string="Loader Text", config_parameter='intro_loader.text', default="Loading...")
+ intro_loader_show_text = fields.Boolean(string="Show Text", config_parameter='intro_loader.show_text')
+
+ # Spinner Configuration
+ intro_loader_show_spinner = fields.Boolean(string="Show Spinner", config_parameter='intro_loader.show_spinner')
+
+ # Image Configuration
+ intro_loader_image = fields.Binary(string="Loader Image", attachment=True)
+ intro_loader_animation = fields.Selection([
+ ('pulse', 'Pulse'),
+ ('spin', 'Spin'),
+ ('bounce', 'Bounce'),
+ ('none', 'Static')
+ ], string="Image Animation", config_parameter='intro_loader.animation', default='pulse')
+
+ @api.model
+ def get_values(self):
+ res = super(ResConfigSettings, self).get_values()
+ # Retrieve the image manually since config_parameter doesn't store binaries well
+ params = self.env['ir.config_parameter'].sudo()
+ image = params.get_param('intro_loader.image_data')
+ res.update(intro_loader_image=image)
+ return res
+
+ def set_values(self):
+ super(ResConfigSettings, self).set_values()
+ # Save the image as a string parameter (or handle via attachment for larger files)
+ params = self.env['ir.config_parameter'].sudo()
+ params.set_param('intro_loader.image_data', self.intro_loader_image or False)
\ No newline at end of file
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrI0FFlKp.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrI0FFlKp.woff2
new file mode 100644
index 0000000..d0edc13
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrI0FFlKp.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrJ8FFlKp.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrJ8FFlKp.woff2
new file mode 100644
index 0000000..a241ebb
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrJ8FFlKp.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrO0FFlKp.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrO0FFlKp.woff2
new file mode 100644
index 0000000..4b37cf3
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrO0FFlKp.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrOMFFg.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrOMFFg.woff2
new file mode 100644
index 0000000..e6b33e2
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrOMFFg.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrOYFFlKp.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrOYFFlKp.woff2
new file mode 100644
index 0000000..5755070
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrOYFFlKp.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Iura6YBj_oCad4k1nzGBCw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Iura6YBj_oCad4k1nzGBCw.woff2
new file mode 100644
index 0000000..d62192f
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Iura6YBj_oCad4k1nzGBCw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Iura6YBj_oCad4k1nzSBC45I.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Iura6YBj_oCad4k1nzSBC45I.woff2
new file mode 100644
index 0000000..bd8cd1f
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Iura6YBj_oCad4k1nzSBC45I.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l4qkHrFpiQ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l4qkHrFpiQ.woff2
new file mode 100644
index 0000000..05d3a6e
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l4qkHrFpiQ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l4qkHrRpiYlJ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l4qkHrRpiYlJ.woff2
new file mode 100644
index 0000000..da5472e
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l4qkHrRpiYlJ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l5anHrFpiQ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l5anHrFpiQ.woff2
new file mode 100644
index 0000000..0a11d0e
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l5anHrFpiQ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l5anHrRpiYlJ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l5anHrRpiYlJ.woff2
new file mode 100644
index 0000000..af73b03
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l5anHrRpiYlJ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l5qjHrFpiQ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l5qjHrFpiQ.woff2
new file mode 100644
index 0000000..ddd5d6b
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l5qjHrFpiQ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l5qjHrRpiYlJ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l5qjHrRpiYlJ.woff2
new file mode 100644
index 0000000..677481a
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l5qjHrRpiYlJ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l7KmHrFpiQ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l7KmHrFpiQ.woff2
new file mode 100644
index 0000000..3825bb3
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l7KmHrFpiQ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l7KmHrRpiYlJ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l7KmHrRpiYlJ.woff2
new file mode 100644
index 0000000..f6d28c2
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l7KmHrRpiYlJ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l8KiHrFpiQ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l8KiHrFpiQ.woff2
new file mode 100644
index 0000000..c7b63d3
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l8KiHrFpiQ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l8KiHrRpiYlJ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l8KiHrRpiYlJ.woff2
new file mode 100644
index 0000000..3e5c444
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l8KiHrRpiYlJ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l_6gHrFpiQ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l_6gHrFpiQ.woff2
new file mode 100644
index 0000000..28249eb
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l_6gHrFpiQ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l_6gHrRpiYlJ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l_6gHrRpiYlJ.woff2
new file mode 100644
index 0000000..e1970f0
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Iurf6YBj_oCad4k1l_6gHrRpiYlJ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/JTUXjIU69Cmr9FGcSA1t4FZA.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/JTUXjIU69Cmr9FGcSA1t4FZA.woff2
new file mode 100644
index 0000000..32f64c2
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/JTUXjIU69Cmr9FGcSA1t4FZA.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/JTUXjIU69Cmr9FGcSAZt4FZA.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/JTUXjIU69Cmr9FGcSAZt4FZA.woff2
new file mode 100644
index 0000000..75c0bba
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/JTUXjIU69Cmr9FGcSAZt4FZA.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/JTUXjIU69Cmr9FGcSAdt4FZA.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/JTUXjIU69Cmr9FGcSAdt4FZA.woff2
new file mode 100644
index 0000000..b854f33
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/JTUXjIU69Cmr9FGcSAdt4FZA.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/JTUXjIU69Cmr9FGcSAht4A.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/JTUXjIU69Cmr9FGcSAht4A.woff2
new file mode 100644
index 0000000..02d1a1c
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/JTUXjIU69Cmr9FGcSAht4A.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ys43PWrfQ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ys43PWrfQ.woff2
new file mode 100644
index 0000000..fb4678c
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ys43PWrfQ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ys93PU.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ys93PU.woff2
new file mode 100644
index 0000000..f929295
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ys93PU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ysw3PWrfQ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ysw3PWrfQ.woff2
new file mode 100644
index 0000000..92d42d5
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ysw3PWrfQ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ysz3PWrfQ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ysz3PWrfQ.woff2
new file mode 100644
index 0000000..d5b551f
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ysz3PWrfQ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PKzeflA.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PKzeflA.woff2
new file mode 100644
index 0000000..5421e8e
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PKzeflA.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PezeQ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PezeQ.woff2
new file mode 100644
index 0000000..57d3778
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PezeQ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PmzeflA.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PmzeflA.woff2
new file mode 100644
index 0000000..c3fe27c
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PmzeflA.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PqzeflA.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PqzeflA.woff2
new file mode 100644
index 0000000..5cfddef
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PqzeflA.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCRXMR5Kw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCRXMR5Kw.woff2
new file mode 100644
index 0000000..f8bd4ea
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCRXMR5Kw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCUXMQ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCUXMQ.woff2
new file mode 100644
index 0000000..0711030
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCUXMQ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCZXMR5Kw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCZXMR5Kw.woff2
new file mode 100644
index 0000000..95295d8
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCZXMR5Kw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCaXMR5Kw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCaXMR5Kw.woff2
new file mode 100644
index 0000000..51035a3
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCaXMR5Kw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCRXMR5Kw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCRXMR5Kw.woff2
new file mode 100644
index 0000000..97085a8
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCRXMR5Kw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCUXMQ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCUXMQ.woff2
new file mode 100644
index 0000000..133e653
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCUXMQ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCZXMR5Kw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCZXMR5Kw.woff2
new file mode 100644
index 0000000..ca0cb2e
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCZXMR5Kw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCaXMR5Kw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCaXMR5Kw.woff2
new file mode 100644
index 0000000..225e993
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCaXMR5Kw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CRXMR5Kw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CRXMR5Kw.woff2
new file mode 100644
index 0000000..3d03f7b
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CRXMR5Kw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CUXMQ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CUXMQ.woff2
new file mode 100644
index 0000000..5a2b601
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CUXMQ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CZXMR5Kw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CZXMR5Kw.woff2
new file mode 100644
index 0000000..73d2838
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CZXMR5Kw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CaXMR5Kw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CaXMR5Kw.woff2
new file mode 100644
index 0000000..a986c7e
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CaXMR5Kw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCRXMR5Kw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCRXMR5Kw.woff2
new file mode 100644
index 0000000..86fefef
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCRXMR5Kw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCUXMQ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCUXMQ.woff2
new file mode 100644
index 0000000..fd0d7f3
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCUXMQ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCZXMR5Kw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCZXMR5Kw.woff2
new file mode 100644
index 0000000..9d22c2e
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCZXMR5Kw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCaXMR5Kw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCaXMR5Kw.woff2
new file mode 100644
index 0000000..53a59fe
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCaXMR5Kw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCRXMR5Kw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCRXMR5Kw.woff2
new file mode 100644
index 0000000..112a24e
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCRXMR5Kw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCUXMQ.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCUXMQ.woff2
new file mode 100644
index 0000000..8520239
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCUXMQ.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCZXMR5Kw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCZXMR5Kw.woff2
new file mode 100644
index 0000000..c588249
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCZXMR5Kw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCaXMR5Kw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCaXMR5Kw.woff2
new file mode 100644
index 0000000..668e8c4
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCaXMR5Kw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/SLXVc1nY6HkvangtZmpQdkhzfH5lkSscQyyS4J0.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/SLXVc1nY6HkvangtZmpQdkhzfH5lkSscQyyS4J0.woff2
new file mode 100644
index 0000000..98ece7b
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/SLXVc1nY6HkvangtZmpQdkhzfH5lkSscQyyS4J0.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/SLXVc1nY6HkvangtZmpQdkhzfH5lkSscRiyS.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/SLXVc1nY6HkvangtZmpQdkhzfH5lkSscRiyS.woff2
new file mode 100644
index 0000000..bb04766
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/SLXVc1nY6HkvangtZmpQdkhzfH5lkSscRiyS.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/SLXVc1nY6HkvangtZmpQdkhzfH5lkSscSCyS4J0.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/SLXVc1nY6HkvangtZmpQdkhzfH5lkSscSCyS4J0.woff2
new file mode 100644
index 0000000..5b6a642
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/SLXVc1nY6HkvangtZmpQdkhzfH5lkSscSCyS4J0.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnX661A.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnX661A.woff2
new file mode 100644
index 0000000..c39379c
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnX661A.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnXC61F3f.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnXC61F3f.woff2
new file mode 100644
index 0000000..2eb28bc
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnXC61F3f.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnXO61F3f.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnXO61F3f.woff2
new file mode 100644
index 0000000..8228bc4
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnXO61F3f.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnXq61F3f.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnXq61F3f.woff2
new file mode 100644
index 0000000..fc8a409
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnXq61F3f.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnXu61F3f.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnXu61F3f.woff2
new file mode 100644
index 0000000..1a6b967
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnXu61F3f.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnXy61F3f.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnXy61F3f.woff2
new file mode 100644
index 0000000..1f1306a
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/iJWEBXyIfDnIV7nEnXy61F3f.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nBrXw.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nBrXw.woff2
new file mode 100644
index 0000000..42fc52a
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nBrXw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nDrXyi0A.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nDrXyi0A.woff2
new file mode 100644
index 0000000..e445d06
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nDrXyi0A.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nErXyi0A.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nErXyi0A.woff2
new file mode 100644
index 0000000..557cbb7
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nErXyi0A.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nFrXyi0A.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nFrXyi0A.woff2
new file mode 100644
index 0000000..1becf8a
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nFrXyi0A.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nMrXyi0A.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nMrXyi0A.woff2
new file mode 100644
index 0000000..16abe42
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nMrXyi0A.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nPrXyi0A.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nPrXyi0A.woff2
new file mode 100644
index 0000000..55166f7
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/iJWKBXyIfDnIV7nPrXyi0A.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj41v4o.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj41v4o.woff2
new file mode 100644
index 0000000..83ea034
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj41v4o.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj47v4r4xA.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj47v4r4xA.woff2
new file mode 100644
index 0000000..61d55c2
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj47v4r4xA.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj4wv4r4xA.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj4wv4r4xA.woff2
new file mode 100644
index 0000000..0563cb3
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj4wv4r4xA.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj5Jv4r4xA.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj5Jv4r4xA.woff2
new file mode 100644
index 0000000..f965e8e
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj5Jv4r4xA.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj5bv4r4xA.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj5bv4r4xA.woff2
new file mode 100644
index 0000000..840022e
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj5bv4r4xA.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS-agtn-Wow.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS-agtn-Wow.woff2
new file mode 100644
index 0000000..449417c
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS-agtn-Wow.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS-agtnqWo572.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS-agtnqWo572.woff2
new file mode 100644
index 0000000..6a6ebe1
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS-agtnqWo572.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS_antn-Wow.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS_antn-Wow.woff2
new file mode 100644
index 0000000..a88bb36
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS_antn-Wow.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS_antnqWo572.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS_antnqWo572.woff2
new file mode 100644
index 0000000..c588799
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS_antnqWo572.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS_qjtn-Wow.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS_qjtn-Wow.woff2
new file mode 100644
index 0000000..e6d1169
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS_qjtn-Wow.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS_qjtnqWo572.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS_qjtnqWo572.woff2
new file mode 100644
index 0000000..f684f26
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/tssoApxBaigK_hnnS_qjtnqWo572.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/tsstApxBaigK_hnnQ12Fow.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/tsstApxBaigK_hnnQ12Fow.woff2
new file mode 100644
index 0000000..053147a
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/tsstApxBaigK_hnnQ12Fow.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar/tsstApxBaigK_hnnQ1iFo0C3.woff2 b/odex30_base/expert_theme/static/src/fonts/ar/tsstApxBaigK_hnnQ1iFo0C3.woff2
new file mode 100644
index 0000000..1209342
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/ar/tsstApxBaigK_hnnQ1iFo0C3.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/ar_fonts.scss b/odex30_base/expert_theme/static/src/fonts/ar_fonts.scss
new file mode 100644
index 0000000..3751f0f
--- /dev/null
+++ b/odex30_base/expert_theme/static/src/fonts/ar_fonts.scss
@@ -0,0 +1,716 @@
+/* arabic */
+@font-face {
+ font-family: 'Almarai';
+ font-style: normal;
+ font-weight: 300;
+ font-display: swap;
+ src: url(ar/tssoApxBaigK_hnnS_antnqWo572.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* latin */
+@font-face {
+ font-family: 'Almarai';
+ font-style: normal;
+ font-weight: 300;
+ font-display: swap;
+ src: url(ar/tssoApxBaigK_hnnS_antn-Wow.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Almarai';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(ar/tsstApxBaigK_hnnQ1iFo0C3.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* latin */
+@font-face {
+ font-family: 'Almarai';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(ar/tsstApxBaigK_hnnQ12Fow.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Almarai';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url(ar/tssoApxBaigK_hnnS-agtnqWo572.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* latin */
+@font-face {
+ font-family: 'Almarai';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url(ar/tssoApxBaigK_hnnS-agtn-Wow.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Almarai';
+ font-style: normal;
+ font-weight: 800;
+ font-display: swap;
+ src: url(ar/tssoApxBaigK_hnnS_qjtnqWo572.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* latin */
+@font-face {
+ font-family: 'Almarai';
+ font-style: normal;
+ font-weight: 800;
+ font-display: swap;
+ src: url(ar/tssoApxBaigK_hnnS_qjtn-Wow.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Beiruti';
+ font-style: normal;
+ font-weight: 200 900;
+ font-display: swap;
+ src: url(ar/JTUXjIU69Cmr9FGcSA1t4FZA.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Beiruti';
+ font-style: normal;
+ font-weight: 200 900;
+ font-display: swap;
+ src: url(ar/JTUXjIU69Cmr9FGcSAdt4FZA.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Beiruti';
+ font-style: normal;
+ font-weight: 200 900;
+ font-display: swap;
+ src: url(ar/JTUXjIU69Cmr9FGcSAZt4FZA.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Beiruti';
+ font-style: normal;
+ font-weight: 200 900;
+ font-display: swap;
+ src: url(ar/JTUXjIU69Cmr9FGcSAht4A.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Cairo';
+ font-style: normal;
+ font-weight: 200 1000;
+ font-display: swap;
+ src: url(ar/SLXVc1nY6HkvangtZmpQdkhzfH5lkSscQyyS4J0.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Cairo';
+ font-style: normal;
+ font-weight: 200 1000;
+ font-display: swap;
+ src: url(ar/SLXVc1nY6HkvangtZmpQdkhzfH5lkSscSCyS4J0.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Cairo';
+ font-style: normal;
+ font-weight: 200 1000;
+ font-display: swap;
+ src: url(ar/SLXVc1nY6HkvangtZmpQdkhzfH5lkSscRiyS.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 100;
+ font-display: swap;
+ src: url(ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PKzeflA.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 100;
+ font-display: swap;
+ src: url(ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PqzeflA.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 100;
+ font-display: swap;
+ src: url(ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PmzeflA.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 100;
+ font-display: swap;
+ src: url(ar/Qw3MZRtWPQCuHme67tEYUIx3Kh0PHR9N6YNe7PezeQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 200;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCRXMR5Kw.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 200;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCZXMR5Kw.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 200;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCaXMR5Kw.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 200;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPy_eCUXMQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 300;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCRXMR5Kw.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 300;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCZXMR5Kw.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 300;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCaXMR5Kw.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 300;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOW_uCUXMQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ys43PWrfQ.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ysw3PWrfQ.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ysz3PWrfQ.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(ar/Qw3CZRtWPQCuHme67tEYUIx3Kh0PHR9N6Ys93PU.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 500;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CRXMR5Kw.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 500;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CZXMR5Kw.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 500;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CaXMR5Kw.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 500;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPO_-CUXMQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 600;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCRXMR5Kw.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 600;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCZXMR5Kw.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 600;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCaXMR5Kw.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 600;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YPi-OCUXMQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCRXMR5Kw.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCZXMR5Kw.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCaXMR5Kw.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'IBM Plex Sans Arabic';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url(ar/Qw3NZRtWPQCuHme67tEYUIx3Kh0PHR9N6YOG-eCUXMQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Noto Kufi Arabic';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrOYFFlKp.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* math */
+@font-face {
+ font-family: 'Noto Kufi Arabic';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrJ8FFlKp.woff2) format('woff2');
+ unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
+}
+/* symbols */
+@font-face {
+ font-family: 'Noto Kufi Arabic';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrI0FFlKp.woff2) format('woff2');
+ unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Noto Kufi Arabic';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrO0FFlKp.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Noto Kufi Arabic';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(ar/CSRk4ydQnPyaDxEXLFF6LZVLKrodrOMFFg.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Noto Sans Arabic';
+ font-style: normal;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj4wv4r4xA.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* math */
+@font-face {
+ font-family: 'Noto Sans Arabic';
+ font-style: normal;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj5Jv4r4xA.woff2) format('woff2');
+ unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
+}
+/* symbols */
+@font-face {
+ font-family: 'Noto Sans Arabic';
+ font-style: normal;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj5bv4r4xA.woff2) format('woff2');
+ unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Noto Sans Arabic';
+ font-style: normal;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj47v4r4xA.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Noto Sans Arabic';
+ font-style: normal;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(ar/nwpCtLGrOAZMl5nJ_wfgRg3DrWFZWsnVBJ_sS6tlqHHFlj41v4o.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Rubik';
+ font-style: italic;
+ font-weight: 300 900;
+ font-display: swap;
+ src: url(ar/iJWEBXyIfDnIV7nEnXu61F3f.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Rubik';
+ font-style: italic;
+ font-weight: 300 900;
+ font-display: swap;
+ src: url(ar/iJWEBXyIfDnIV7nEnXO61F3f.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Rubik';
+ font-style: italic;
+ font-weight: 300 900;
+ font-display: swap;
+ src: url(ar/iJWEBXyIfDnIV7nEnXq61F3f.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Rubik';
+ font-style: italic;
+ font-weight: 300 900;
+ font-display: swap;
+ src: url(ar/iJWEBXyIfDnIV7nEnXy61F3f.woff2) format('woff2');
+ unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Rubik';
+ font-style: italic;
+ font-weight: 300 900;
+ font-display: swap;
+ src: url(ar/iJWEBXyIfDnIV7nEnXC61F3f.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Rubik';
+ font-style: italic;
+ font-weight: 300 900;
+ font-display: swap;
+ src: url(ar/iJWEBXyIfDnIV7nEnX661A.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Rubik';
+ font-style: normal;
+ font-weight: 300 900;
+ font-display: swap;
+ src: url(ar/iJWKBXyIfDnIV7nErXyi0A.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Rubik';
+ font-style: normal;
+ font-weight: 300 900;
+ font-display: swap;
+ src: url(ar/iJWKBXyIfDnIV7nMrXyi0A.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Rubik';
+ font-style: normal;
+ font-weight: 300 900;
+ font-display: swap;
+ src: url(ar/iJWKBXyIfDnIV7nFrXyi0A.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Rubik';
+ font-style: normal;
+ font-weight: 300 900;
+ font-display: swap;
+ src: url(ar/iJWKBXyIfDnIV7nDrXyi0A.woff2) format('woff2');
+ unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Rubik';
+ font-style: normal;
+ font-weight: 300 900;
+ font-display: swap;
+ src: url(ar/iJWKBXyIfDnIV7nPrXyi0A.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Rubik';
+ font-style: normal;
+ font-weight: 300 900;
+ font-display: swap;
+ src: url(ar/iJWKBXyIfDnIV7nBrXw.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Tajawal';
+ font-style: normal;
+ font-weight: 200;
+ font-display: swap;
+ src: url(ar/Iurf6YBj_oCad4k1l_6gHrRpiYlJ.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* latin */
+@font-face {
+ font-family: 'Tajawal';
+ font-style: normal;
+ font-weight: 200;
+ font-display: swap;
+ src: url(ar/Iurf6YBj_oCad4k1l_6gHrFpiQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Tajawal';
+ font-style: normal;
+ font-weight: 300;
+ font-display: swap;
+ src: url(ar/Iurf6YBj_oCad4k1l5qjHrRpiYlJ.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* latin */
+@font-face {
+ font-family: 'Tajawal';
+ font-style: normal;
+ font-weight: 300;
+ font-display: swap;
+ src: url(ar/Iurf6YBj_oCad4k1l5qjHrFpiQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Tajawal';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(ar/Iura6YBj_oCad4k1nzSBC45I.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* latin */
+@font-face {
+ font-family: 'Tajawal';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(ar/Iura6YBj_oCad4k1nzGBCw.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Tajawal';
+ font-style: normal;
+ font-weight: 500;
+ font-display: swap;
+ src: url(ar/Iurf6YBj_oCad4k1l8KiHrRpiYlJ.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* latin */
+@font-face {
+ font-family: 'Tajawal';
+ font-style: normal;
+ font-weight: 500;
+ font-display: swap;
+ src: url(ar/Iurf6YBj_oCad4k1l8KiHrFpiQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Tajawal';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url(ar/Iurf6YBj_oCad4k1l4qkHrRpiYlJ.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* latin */
+@font-face {
+ font-family: 'Tajawal';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url(ar/Iurf6YBj_oCad4k1l4qkHrFpiQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Tajawal';
+ font-style: normal;
+ font-weight: 800;
+ font-display: swap;
+ src: url(ar/Iurf6YBj_oCad4k1l5anHrRpiYlJ.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* latin */
+@font-face {
+ font-family: 'Tajawal';
+ font-style: normal;
+ font-weight: 800;
+ font-display: swap;
+ src: url(ar/Iurf6YBj_oCad4k1l5anHrFpiQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* arabic */
+@font-face {
+ font-family: 'Tajawal';
+ font-style: normal;
+ font-weight: 900;
+ font-display: swap;
+ src: url(ar/Iurf6YBj_oCad4k1l7KmHrRpiYlJ.woff2) format('woff2');
+ unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
+}
+/* latin */
+@font-face {
+ font-family: 'Tajawal';
+ font-style: normal;
+ font-weight: 900;
+ font-display: swap;
+ src: url(ar/Iurf6YBj_oCad4k1l7KmHrFpiQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
\ No newline at end of file
diff --git a/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbgMdhLhU.woff2 b/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbgMdhLhU.woff2
new file mode 100644
index 0000000..b6d60d7
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbgMdhLhU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_Gpgcbh8dhLhU.woff2 b/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_Gpgcbh8dhLhU.woff2
new file mode 100644
index 0000000..48d17de
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_Gpgcbh8dhLhU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbhMdh.woff2 b/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbhMdh.woff2
new file mode 100644
index 0000000..98e8bec
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbhMdh.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_Gpgcbi8dhLhU.woff2 b/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_Gpgcbi8dhLhU.woff2
new file mode 100644
index 0000000..76efc58
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_Gpgcbi8dhLhU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbiMdhLhU.woff2 b/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbiMdhLhU.woff2
new file mode 100644
index 0000000..e11a48a
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbiMdhLhU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbicdhLhU.woff2 b/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbicdhLhU.woff2
new file mode 100644
index 0000000..5680d55
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbicdhLhU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbisdhLhU.woff2 b/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbisdhLhU.woff2
new file mode 100644
index 0000000..6572594
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbisdhLhU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/1Ptsg8zYS_SKggPNyCg4Q4FqPfE.woff2 b/odex30_base/expert_theme/static/src/fonts/en/1Ptsg8zYS_SKggPNyCg4Q4FqPfE.woff2
new file mode 100644
index 0000000..be83fa7
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/1Ptsg8zYS_SKggPNyCg4Q4FqPfE.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/1Ptsg8zYS_SKggPNyCg4QIFqPfE.woff2 b/odex30_base/expert_theme/static/src/fonts/en/1Ptsg8zYS_SKggPNyCg4QIFqPfE.woff2
new file mode 100644
index 0000000..fa536ca
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/1Ptsg8zYS_SKggPNyCg4QIFqPfE.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/1Ptsg8zYS_SKggPNyCg4QoFqPfE.woff2 b/odex30_base/expert_theme/static/src/fonts/en/1Ptsg8zYS_SKggPNyCg4QoFqPfE.woff2
new file mode 100644
index 0000000..e01bb3a
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/1Ptsg8zYS_SKggPNyCg4QoFqPfE.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/1Ptsg8zYS_SKggPNyCg4SYFqPfE.woff2 b/odex30_base/expert_theme/static/src/fonts/en/1Ptsg8zYS_SKggPNyCg4SYFqPfE.woff2
new file mode 100644
index 0000000..78b07f2
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/1Ptsg8zYS_SKggPNyCg4SYFqPfE.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/1Ptsg8zYS_SKggPNyCg4TYFq.woff2 b/odex30_base/expert_theme/static/src/fonts/en/1Ptsg8zYS_SKggPNyCg4TYFq.woff2
new file mode 100644
index 0000000..e42c392
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/1Ptsg8zYS_SKggPNyCg4TYFq.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/1Ptug8zYS_SKggPNyC0ITw.woff2 b/odex30_base/expert_theme/static/src/fonts/en/1Ptug8zYS_SKggPNyC0ITw.woff2
new file mode 100644
index 0000000..67a3b53
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/1Ptug8zYS_SKggPNyC0ITw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/1Ptug8zYS_SKggPNyCAIT5lu.woff2 b/odex30_base/expert_theme/static/src/fonts/en/1Ptug8zYS_SKggPNyCAIT5lu.woff2
new file mode 100644
index 0000000..dee82d4
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/1Ptug8zYS_SKggPNyCAIT5lu.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/1Ptug8zYS_SKggPNyCIIT5lu.woff2 b/odex30_base/expert_theme/static/src/fonts/en/1Ptug8zYS_SKggPNyCIIT5lu.woff2
new file mode 100644
index 0000000..b566478
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/1Ptug8zYS_SKggPNyCIIT5lu.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/1Ptug8zYS_SKggPNyCMIT5lu.woff2 b/odex30_base/expert_theme/static/src/fonts/en/1Ptug8zYS_SKggPNyCMIT5lu.woff2
new file mode 100644
index 0000000..24cc256
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/1Ptug8zYS_SKggPNyCMIT5lu.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/1Ptug8zYS_SKggPNyCkIT5lu.woff2 b/odex30_base/expert_theme/static/src/fonts/en/1Ptug8zYS_SKggPNyCkIT5lu.woff2
new file mode 100644
index 0000000..1005b7c
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/1Ptug8zYS_SKggPNyCkIT5lu.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/6xKtdSZaM9iE8KbpRA_hJFQNcOM.woff2 b/odex30_base/expert_theme/static/src/fonts/en/6xKtdSZaM9iE8KbpRA_hJFQNcOM.woff2
new file mode 100644
index 0000000..4ac6270
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/6xKtdSZaM9iE8KbpRA_hJFQNcOM.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/6xKtdSZaM9iE8KbpRA_hJVQNcOM.woff2 b/odex30_base/expert_theme/static/src/fonts/en/6xKtdSZaM9iE8KbpRA_hJVQNcOM.woff2
new file mode 100644
index 0000000..47ab264
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/6xKtdSZaM9iE8KbpRA_hJVQNcOM.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/6xKtdSZaM9iE8KbpRA_hK1QN.woff2 b/odex30_base/expert_theme/static/src/fonts/en/6xKtdSZaM9iE8KbpRA_hK1QN.woff2
new file mode 100644
index 0000000..2240e40
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/6xKtdSZaM9iE8KbpRA_hK1QN.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2
new file mode 100644
index 0000000..ab38fd5
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBXkaWzU.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBXkaWzU.woff2
new file mode 100644
index 0000000..db65849
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBXkaWzU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBnka.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBnka.woff2
new file mode 100644
index 0000000..7c9cbed
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBnka.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2
new file mode 100644
index 0000000..e0aa393
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2
new file mode 100644
index 0000000..b677130
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2
new file mode 100644
index 0000000..669ba79
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2
new file mode 100644
index 0000000..6cc1de8
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkaHkaWzU.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkaHkaWzU.woff2
new file mode 100644
index 0000000..ded8a41
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkaHkaWzU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2
new file mode 100644
index 0000000..dbac481
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2
new file mode 100644
index 0000000..8e0eec6
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2
new file mode 100644
index 0000000..0ddf16c
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2
new file mode 100644
index 0000000..7bd3c2e
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2
new file mode 100644
index 0000000..8e43aa4
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2
new file mode 100644
index 0000000..2c6ba19
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2
new file mode 100644
index 0000000..2f8b493
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2
new file mode 100644
index 0000000..7c16c79
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2
new file mode 100644
index 0000000..c2788c7
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2
new file mode 100644
index 0000000..528b3bf
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/TK3iWkUHHAIjg752FD8Ghe4.woff2 b/odex30_base/expert_theme/static/src/fonts/en/TK3iWkUHHAIjg752FD8Ghe4.woff2
new file mode 100644
index 0000000..22e18a3
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/TK3iWkUHHAIjg752FD8Ghe4.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/TK3iWkUHHAIjg752Fj8Ghe4.woff2 b/odex30_base/expert_theme/static/src/fonts/en/TK3iWkUHHAIjg752Fj8Ghe4.woff2
new file mode 100644
index 0000000..d3738f6
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/TK3iWkUHHAIjg752Fj8Ghe4.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/TK3iWkUHHAIjg752Fz8Ghe4.woff2 b/odex30_base/expert_theme/static/src/fonts/en/TK3iWkUHHAIjg752Fz8Ghe4.woff2
new file mode 100644
index 0000000..1ca5ca1
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/TK3iWkUHHAIjg752Fz8Ghe4.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/TK3iWkUHHAIjg752GT8G.woff2 b/odex30_base/expert_theme/static/src/fonts/en/TK3iWkUHHAIjg752GT8G.woff2
new file mode 100644
index 0000000..a8e119e
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/TK3iWkUHHAIjg752GT8G.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/TK3iWkUHHAIjg752HT8Ghe4.woff2 b/odex30_base/expert_theme/static/src/fonts/en/TK3iWkUHHAIjg752HT8Ghe4.woff2
new file mode 100644
index 0000000..1244b7a
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/TK3iWkUHHAIjg752HT8Ghe4.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwAT9nA2.woff2 b/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwAT9nA2.woff2
new file mode 100644
index 0000000..6c2ce2d
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwAT9nA2.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwQT9g.woff2 b/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwQT9g.woff2
new file mode 100644
index 0000000..39eb636
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwQT9g.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwcT9nA2.woff2 b/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwcT9nA2.woff2
new file mode 100644
index 0000000..e8b4994
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwcT9nA2.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwgT9nA2.woff2 b/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwgT9nA2.woff2
new file mode 100644
index 0000000..2be522a
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwgT9nA2.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwkT9nA2.woff2 b/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwkT9nA2.woff2
new file mode 100644
index 0000000..57fdf36
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwkT9nA2.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwoT9nA2.woff2 b/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwoT9nA2.woff2
new file mode 100644
index 0000000..fb8e67e
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwoT9nA2.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwsT9nA2.woff2 b/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwsT9nA2.woff2
new file mode 100644
index 0000000..db25457
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/UcCm3FwrK3iLTcvnUwsT9nA2.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvhYwYL8g.woff2 b/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvhYwYL8g.woff2
new file mode 100644
index 0000000..612258d
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvhYwYL8g.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcviYwY.woff2 b/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcviYwY.woff2
new file mode 100644
index 0000000..b0d0e2e
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcviYwY.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvmYwYL8g.woff2 b/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvmYwYL8g.woff2
new file mode 100644
index 0000000..17ec069
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvmYwYL8g.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvsYwYL8g.woff2 b/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvsYwYL8g.woff2
new file mode 100644
index 0000000..a0125fa
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvsYwYL8g.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvtYwYL8g.woff2 b/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvtYwYL8g.woff2
new file mode 100644
index 0000000..79ac1ef
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvtYwYL8g.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvuYwYL8g.woff2 b/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvuYwYL8g.woff2
new file mode 100644
index 0000000..afb0394
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvuYwYL8g.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvvYwYL8g.woff2 b/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvvYwYL8g.woff2
new file mode 100644
index 0000000..2f90b7d
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/UcCo3FwrK3iLTcvvYwYL8g.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2 b/odex30_base/expert_theme/static/src/fonts/en/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2
new file mode 100644
index 0000000..ce97d0f
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.woff2 b/odex30_base/expert_theme/static/src/fonts/en/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.woff2
new file mode 100644
index 0000000..db732c2
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.woff2 b/odex30_base/expert_theme/static/src/fonts/en/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.woff2
new file mode 100644
index 0000000..ce2ec21
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/kmKhZrc3Hgbbcjq75U4uslyuy4kn0qNcWx8QDP2V.woff2 b/odex30_base/expert_theme/static/src/fonts/en/kmKhZrc3Hgbbcjq75U4uslyuy4kn0qNcWx8QDP2V.woff2
new file mode 100644
index 0000000..365d344
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/kmKhZrc3Hgbbcjq75U4uslyuy4kn0qNcWx8QDP2V.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/kmKhZrc3Hgbbcjq75U4uslyuy4kn0qNcWxEQDA.woff2 b/odex30_base/expert_theme/static/src/fonts/en/kmKhZrc3Hgbbcjq75U4uslyuy4kn0qNcWxEQDA.woff2
new file mode 100644
index 0000000..e74536b
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/kmKhZrc3Hgbbcjq75U4uslyuy4kn0qNcWxEQDA.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/kmKiZrc3Hgbbcjq75U4uslyuy4kn0qviTgY3KcA.woff2 b/odex30_base/expert_theme/static/src/fonts/en/kmKiZrc3Hgbbcjq75U4uslyuy4kn0qviTgY3KcA.woff2
new file mode 100644
index 0000000..443efad
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/kmKiZrc3Hgbbcjq75U4uslyuy4kn0qviTgY3KcA.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/kmKiZrc3Hgbbcjq75U4uslyuy4kn0qviTgY5KcCsww.woff2 b/odex30_base/expert_theme/static/src/fonts/en/kmKiZrc3Hgbbcjq75U4uslyuy4kn0qviTgY5KcCsww.woff2
new file mode 100644
index 0000000..2334975
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/kmKiZrc3Hgbbcjq75U4uslyuy4kn0qviTgY5KcCsww.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/kmKnZrc3Hgbbcjq75U4uslyuy4kn0qNXaxMICA.woff2 b/odex30_base/expert_theme/static/src/fonts/en/kmKnZrc3Hgbbcjq75U4uslyuy4kn0qNXaxMICA.woff2
new file mode 100644
index 0000000..b15ae0d
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/kmKnZrc3Hgbbcjq75U4uslyuy4kn0qNXaxMICA.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/kmKnZrc3Hgbbcjq75U4uslyuy4kn0qNZaxM.woff2 b/odex30_base/expert_theme/static/src/fonts/en/kmKnZrc3Hgbbcjq75U4uslyuy4kn0qNZaxM.woff2
new file mode 100644
index 0000000..350b569
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/kmKnZrc3Hgbbcjq75U4uslyuy4kn0qNZaxM.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/mem5YaSw02SQ0OlzDuR8IskOUuhp.woff2 b/odex30_base/expert_theme/static/src/fonts/en/mem5YaSw02SQ0OlzDuR8IskOUuhp.woff2
new file mode 100644
index 0000000..107ca6a
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/mem5YaSw02SQ0OlzDuR8IskOUuhp.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/mem5YaSw02SQ0OlzDuR8IskOXOhpOqc.woff2 b/odex30_base/expert_theme/static/src/fonts/en/mem5YaSw02SQ0OlzDuR8IskOXOhpOqc.woff2
new file mode 100644
index 0000000..add6659
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/mem5YaSw02SQ0OlzDuR8IskOXOhpOqc.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/mem5YaSw02SQ0OlzDuR8IskOXehpOqc.woff2 b/odex30_base/expert_theme/static/src/fonts/en/mem5YaSw02SQ0OlzDuR8IskOXehpOqc.woff2
new file mode 100644
index 0000000..0ce4e7e
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/mem5YaSw02SQ0OlzDuR8IskOXehpOqc.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2
new file mode 100644
index 0000000..0fb066c
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2
new file mode 100644
index 0000000..bc2aea0
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2
new file mode 100644
index 0000000..fcce594
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2
new file mode 100644
index 0000000..ffc8e9c
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2
new file mode 100644
index 0000000..6375e9c
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2
new file mode 100644
index 0000000..2e849f6
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2
new file mode 100644
index 0000000..5d9194c
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2
new file mode 100644
index 0000000..e5c936b
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2
new file mode 100644
index 0000000..5cf8aff
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2
new file mode 100644
index 0000000..f7e9995
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2
new file mode 100644
index 0000000..4e8b905
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2
new file mode 100644
index 0000000..bed5b67
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2
new file mode 100644
index 0000000..9164ccb
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2
new file mode 100644
index 0000000..08bed85
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2
new file mode 100644
index 0000000..307b214
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2
new file mode 100644
index 0000000..0b0b3a4
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2
new file mode 100644
index 0000000..4bce1d0
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2
new file mode 100644
index 0000000..5bd7b8f
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2
new file mode 100644
index 0000000..b969602
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2 b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2
new file mode 100644
index 0000000..1f7d08c
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/wlpwgwvFAVdoq2_v-6QU.woff2 b/odex30_base/expert_theme/static/src/fonts/en/wlpwgwvFAVdoq2_v-6QU.woff2
new file mode 100644
index 0000000..066c517
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/wlpwgwvFAVdoq2_v-6QU.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/wlpwgwvFAVdoq2_v9KQU4Wc.woff2 b/odex30_base/expert_theme/static/src/fonts/en/wlpwgwvFAVdoq2_v9KQU4Wc.woff2
new file mode 100644
index 0000000..8398212
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/wlpwgwvFAVdoq2_v9KQU4Wc.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en/wlpwgwvFAVdoq2_v9aQU4Wc.woff2 b/odex30_base/expert_theme/static/src/fonts/en/wlpwgwvFAVdoq2_v9aQU4Wc.woff2
new file mode 100644
index 0000000..80eeee8
Binary files /dev/null and b/odex30_base/expert_theme/static/src/fonts/en/wlpwgwvFAVdoq2_v9aQU4Wc.woff2 differ
diff --git a/odex30_base/expert_theme/static/src/fonts/en_fonts.scss b/odex30_base/expert_theme/static/src/fonts/en_fonts.scss
new file mode 100644
index 0000000..2fb2e1c
--- /dev/null
+++ b/odex30_base/expert_theme/static/src/fonts/en_fonts.scss
@@ -0,0 +1,866 @@
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/UcCm3FwrK3iLTcvnUwkT9nA2.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/UcCm3FwrK3iLTcvnUwAT9nA2.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/UcCm3FwrK3iLTcvnUwgT9nA2.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/UcCm3FwrK3iLTcvnUwcT9nA2.woff2) format('woff2');
+ unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/UcCm3FwrK3iLTcvnUwsT9nA2.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/UcCm3FwrK3iLTcvnUwoT9nA2.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/UcCm3FwrK3iLTcvnUwQT9g.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/UcCo3FwrK3iLTcvvYwYL8g.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/UcCo3FwrK3iLTcvmYwYL8g.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/UcCo3FwrK3iLTcvuYwYL8g.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/UcCo3FwrK3iLTcvhYwYL8g.woff2) format('woff2');
+ unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/UcCo3FwrK3iLTcvtYwYL8g.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/UcCo3FwrK3iLTcvsYwYL8g.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/UcCo3FwrK3iLTcviYwY.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Lexend';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/wlpwgwvFAVdoq2_v9KQU4Wc.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Lexend';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/wlpwgwvFAVdoq2_v9aQU4Wc.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Lexend';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/wlpwgwvFAVdoq2_v-6QU.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Libertinus Serif Display';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbicdhLhU.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Libertinus Serif Display';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbgMdhLhU.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Libertinus Serif Display';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbiMdhLhU.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Libertinus Serif Display';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_Gpgcbh8dhLhU.woff2) format('woff2');
+ unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Libertinus Serif Display';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_Gpgcbi8dhLhU.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Libertinus Serif Display';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbisdhLhU.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Libertinus Serif Display';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(en/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_GpgcbhMdh.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Libre Baskerville';
+ font-style: italic;
+ font-weight: 400;
+ font-display: swap;
+ src: url(en/kmKhZrc3Hgbbcjq75U4uslyuy4kn0qNcWx8QDP2V.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Libre Baskerville';
+ font-style: italic;
+ font-weight: 400;
+ font-display: swap;
+ src: url(en/kmKhZrc3Hgbbcjq75U4uslyuy4kn0qNcWxEQDA.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Libre Baskerville';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(en/kmKnZrc3Hgbbcjq75U4uslyuy4kn0qNXaxMICA.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Libre Baskerville';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(en/kmKnZrc3Hgbbcjq75U4uslyuy4kn0qNZaxM.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Libre Baskerville';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url(en/kmKiZrc3Hgbbcjq75U4uslyuy4kn0qviTgY5KcCsww.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Libre Baskerville';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url(en/kmKiZrc3Hgbbcjq75U4uslyuy4kn0qviTgY3KcA.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2) format('woff2');
+ unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2) format('woff2');
+ unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* math */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2) format('woff2');
+ unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
+}
+/* symbols */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2) format('woff2');
+ unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2) format('woff2');
+ unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
+}
+/* hebrew */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2) format('woff2');
+ unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
+}
+/* math */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2) format('woff2');
+ unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
+}
+/* symbols */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2) format('woff2');
+ unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 300 800;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Oswald';
+ font-style: normal;
+ font-weight: 200 700;
+ font-display: swap;
+ src: url(en/TK3iWkUHHAIjg752FD8Ghe4.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Oswald';
+ font-style: normal;
+ font-weight: 200 700;
+ font-display: swap;
+ src: url(en/TK3iWkUHHAIjg752HT8Ghe4.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Oswald';
+ font-style: normal;
+ font-weight: 200 700;
+ font-display: swap;
+ src: url(en/TK3iWkUHHAIjg752Fj8Ghe4.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Oswald';
+ font-style: normal;
+ font-weight: 200 700;
+ font-display: swap;
+ src: url(en/TK3iWkUHHAIjg752Fz8Ghe4.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Oswald';
+ font-style: normal;
+ font-weight: 200 700;
+ font-display: swap;
+ src: url(en/TK3iWkUHHAIjg752GT8G.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Quicksand';
+ font-style: normal;
+ font-weight: 300 700;
+ font-display: swap;
+ src: url(en/6xKtdSZaM9iE8KbpRA_hJFQNcOM.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Quicksand';
+ font-style: normal;
+ font-weight: 300 700;
+ font-display: swap;
+ src: url(en/6xKtdSZaM9iE8KbpRA_hJVQNcOM.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Quicksand';
+ font-style: normal;
+ font-weight: 300 700;
+ font-display: swap;
+ src: url(en/6xKtdSZaM9iE8KbpRA_hK1QN.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Raleway';
+ font-style: italic;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/1Ptsg8zYS_SKggPNyCg4QIFqPfE.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Raleway';
+ font-style: italic;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/1Ptsg8zYS_SKggPNyCg4SYFqPfE.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Raleway';
+ font-style: italic;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/1Ptsg8zYS_SKggPNyCg4QoFqPfE.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Raleway';
+ font-style: italic;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/1Ptsg8zYS_SKggPNyCg4Q4FqPfE.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Raleway';
+ font-style: italic;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/1Ptsg8zYS_SKggPNyCg4TYFq.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Raleway';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/1Ptug8zYS_SKggPNyCAIT5lu.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Raleway';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/1Ptug8zYS_SKggPNyCkIT5lu.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Raleway';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/1Ptug8zYS_SKggPNyCIIT5lu.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Raleway';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/1Ptug8zYS_SKggPNyCMIT5lu.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Raleway';
+ font-style: normal;
+ font-weight: 100 900;
+ font-display: swap;
+ src: url(en/1Ptug8zYS_SKggPNyC0ITw.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Roboto';
+ font-style: italic;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkC3kaWzU.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Roboto';
+ font-style: italic;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkAnkaWzU.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Roboto';
+ font-style: italic;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCnkaWzU.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Roboto';
+ font-style: italic;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBXkaWzU.woff2) format('woff2');
+ unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
+}
+/* math */
+@font-face {
+ font-family: 'Roboto';
+ font-style: italic;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkenkaWzU.woff2) format('woff2');
+ unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
+}
+/* symbols */
+@font-face {
+ font-family: 'Roboto';
+ font-style: italic;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkaHkaWzU.woff2) format('woff2');
+ unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Roboto';
+ font-style: italic;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCXkaWzU.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Roboto';
+ font-style: italic;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkCHkaWzU.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Roboto';
+ font-style: italic;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO5CnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmkBnka.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+}
+/* cyrillic */
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2) format('woff2');
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+}
+/* greek-ext */
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2) format('woff2');
+ unicode-range: U+1F00-1FFF;
+}
+/* greek */
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2) format('woff2');
+ unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
+}
+/* math */
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2) format('woff2');
+ unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
+}
+/* symbols */
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2) format('woff2');
+ unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 100 900;
+ font-stretch: 100%;
+ font-display: swap;
+ src: url(en/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Space Grotesk';
+ font-style: normal;
+ font-weight: 300 700;
+ font-display: swap;
+ src: url(en/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Space Grotesk';
+ font-style: normal;
+ font-weight: 300 700;
+ font-display: swap;
+ src: url(en/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Space Grotesk';
+ font-style: normal;
+ font-weight: 300 700;
+ font-display: swap;
+ src: url(en/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+/* vietnamese */
+@font-face {
+ font-family: 'Story Script';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(en/mem5YaSw02SQ0OlzDuR8IskOXehpOqc.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+/* latin-ext */
+@font-face {
+ font-family: 'Story Script';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(en/mem5YaSw02SQ0OlzDuR8IskOXOhpOqc.woff2) format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+/* latin */
+@font-face {
+ font-family: 'Story Script';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url(en/mem5YaSw02SQ0OlzDuR8IskOUuhp.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
\ No newline at end of file
diff --git a/odex30_base/expert_theme/static/src/img/home/background-dark.png b/odex30_base/expert_theme/static/src/img/home/background-dark.png
new file mode 100644
index 0000000..ac94fc4
Binary files /dev/null and b/odex30_base/expert_theme/static/src/img/home/background-dark.png differ
diff --git a/odex30_base/expert_theme/static/src/img/home/background-light.png b/odex30_base/expert_theme/static/src/img/home/background-light.png
new file mode 100644
index 0000000..63ffa6c
Binary files /dev/null and b/odex30_base/expert_theme/static/src/img/home/background-light.png differ
diff --git a/odex30_base/expert_theme/static/src/js/intro_loader.js b/odex30_base/expert_theme/static/src/js/intro_loader.js
new file mode 100644
index 0000000..9996b41
--- /dev/null
+++ b/odex30_base/expert_theme/static/src/js/intro_loader.js
@@ -0,0 +1,35 @@
+/** @odoo-module **/
+
+import { WebClient } from "@web/webclient/webclient";
+import { patch } from "@web/core/utils/patch";
+import { onMounted } from "@odoo/owl";
+
+patch(WebClient.prototype, {
+ setup() {
+ super.setup();
+
+ onMounted(() => {
+ // Select the loader element
+ const loader = document.getElementById("o_intro_loader");
+
+ if (loader) {
+ // Optional: Check sessionStorage if you want it ONCE per browser session
+ // const hasLoaded = sessionStorage.getItem('odoo_intro_shown');
+
+ // Add the hidden class to trigger CSS transition
+ // We add a small delay (e.g., 500ms) to ensure the UI is visually stable behind it
+ setTimeout(() => {
+ loader.classList.add("o_hidden");
+
+ // Cleanup DOM after animation finishes (optional but cleaner)
+ setTimeout(() => {
+ loader.remove();
+ }, 1000);
+
+ }, 500);
+
+ // sessionStorage.setItem('odoo_intro_shown', 'true');
+ }
+ });
+ }
+});
\ No newline at end of file
diff --git a/odex30_base/expert_theme/static/src/js/user_menu_language.js b/odex30_base/expert_theme/static/src/js/user_menu_language.js
new file mode 100644
index 0000000..55dae3b
--- /dev/null
+++ b/odex30_base/expert_theme/static/src/js/user_menu_language.js
@@ -0,0 +1,69 @@
+/** @odoo-module **/
+
+import { registry } from "@web/core/registry";
+import { session } from "@web/session";
+import { browser } from "@web/core/browser/browser";
+import { _t } from "@web/core/l10n/translation";
+
+const userMenuRegistry = registry.category("user_menuitems");
+
+/**
+ * Service to handle the language switch logic
+ */
+async function switchLanguage(env, langCode) {
+ // 1. Write the new language to the user's preference
+ await env.services.orm.write("res.users", [session.uid], {
+ lang: langCode,
+ });
+
+ // 2. Reload the page to apply changes
+ browser.location.reload();
+}
+
+/**
+ * Function to generate language menu items
+ */
+function languageSwitchItems(env) {
+ console.log("Generating language switcher menu items");
+ const activeLanguages = session.available_languages || [];
+ const currentLang = session.bundle_params.lang || 'en';
+ console.log("Active languages:", activeLanguages);
+ console.log("Current language:", userMenuRegistry);
+
+ // Use a separator to visually group languages if you have many items
+ // If you prefer a flat list, you can remove the separator logic.
+ const items = [
+ {
+ type: "separator",
+ id: "language_separator",
+ },
+ ];
+
+ console.log(items);
+
+ activeLanguages.forEach((lang) => {
+ // Skip adding the currently active language to the list (optional UX choice)
+ // OR add it but mark it as checked. Here we just add all.
+ const isCurrent = lang.code === currentLang;
+ console.log("Adding language menu item for:", lang.code, "Current:", isCurrent);
+ items.push({
+ type: "item",
+ id: `lang_switch_${lang.code}`,
+ description: `${lang.name} ${isCurrent ? "✓" : ""}`,
+ callback: async () => {
+ if (!isCurrent) {
+ await switchLanguage(env, lang.code);
+ }
+ },
+ });
+ });
+
+ return items;
+}
+
+// Add the languages to the registry
+// We wrap it in a function because the registry expects a function that returns the item(s)
+// userMenuRegistry.add("language_switcher", languageSwitchItems, { sequence: 10,force: true });
+userMenuRegistry.remove("documentation");
+userMenuRegistry.remove("support");
+userMenuRegistry.remove("odoo_account");
diff --git a/odex30_base/expert_theme/static/src/language_menu/language_menu.js b/odex30_base/expert_theme/static/src/language_menu/language_menu.js
new file mode 100755
index 0000000..17f7923
--- /dev/null
+++ b/odex30_base/expert_theme/static/src/language_menu/language_menu.js
@@ -0,0 +1,115 @@
+import { Dropdown } from "@web/core/dropdown/dropdown";
+import { DropdownGroup } from "@web/core/dropdown/dropdown_group";
+import { DropdownItem } from "@web/core/dropdown/dropdown_item";
+import { CheckBox } from "@web/core/checkbox/checkbox";
+import { registry } from "@web/core/registry";
+import { user } from "@web/core/user";
+import { session } from "@web/session";
+import { browser } from "@web/core/browser/browser";
+import { Component } from "@odoo/owl";
+import { imageUrl } from "@web/core/utils/urls";
+
+const languageMenuRegistry = registry.category("language_menuitems");
+
+export class LanguageMenu extends Component {
+ static template = "web.LanguageMenu";
+ static components = { DropdownGroup, Dropdown, DropdownItem, CheckBox };
+ static props = {};
+
+ setup() {
+ console.log("LanguageMenu setup called", session);
+ this.activeLanguage = session.bundle_params.lang_code || 'en_US';
+ this.availableLanguages = session.available_languages || [];
+ const { partnerId, writeDate } = user;
+ console.log("User info:", user);
+ this.languageSwitchItems();
+ }
+
+ getElements() {
+ const sortedItems = languageMenuRegistry
+ .getAll()
+ .map((element) => element(this.env))
+ .filter((element) => (element.show ? element.show() : true))
+ .sort((x, y) => {
+ const xSeq = x.sequence ? x.sequence : 100;
+ const ySeq = y.sequence ? y.sequence : 100;
+ return xSeq - ySeq;
+ });
+ return sortedItems;
+ }
+
+ getCurrentLanguageFlag() {
+ const currentLang = this.availableLanguages.find(
+ (lang) => lang.code === this.activeLanguage
+ );
+ if (currentLang && currentLang.flag_image_url) {
+ return currentLang.flag_image_url;
+ }
+ return null;
+ }
+
+ /**
+ * Service to handle the language switch logic
+ */
+ async switchLanguage(langCode) {
+ console.log("Switching language to:", user);
+ // 1. Write the new language to the user's preference
+ await this.env.services.orm.write("res.users", [user.userId], {
+ lang: langCode,
+ });
+
+ // 2. Reload the page to apply changes
+ browser.location.reload();
+ }
+
+ /**
+ * Function to generate language menu items
+ */
+ languageSwitchItems() {
+ const activeLanguages = session.available_languages || [];
+ const currentLang = session.bundle_params.lang || 'en_US';
+ // Use a separator to visually group languages if you have many items
+ // If you prefer a flat list, you can remove the separator logic.
+ const items = [];
+ let self = this;
+
+ activeLanguages.forEach((lang) => {
+ // Skip adding the currently active language to the list (optional UX choice)
+ // OR add it but mark it as checked. Here we just add all.
+ const isCurrent = lang.code === currentLang;
+ console.log(isCurrent)
+ console.log("Adding language menu item for:", lang.code, "Current:", isCurrent);
+ languageMenuRegistry.add(`lang_switch_${lang.code}`, () => {
+ return {
+ type: "item",
+ id: `lang_switch_${lang.code}`,
+ icon: lang.flag_image_url,
+ description: `${lang.name}`,
+ currentLang: isCurrent,
+ callback: async () => {
+ if (!isCurrent) {
+ await self.switchLanguage(lang.code);
+ }
+ },
+ };
+ });
+ // items.push({
+ // type: "item",
+ // id: `lang_switch_${lang.code}`,
+ // description: `${lang.name} ${isCurrent ? "✓" : ""}`,
+ // callback: async () => {
+ // if (!isCurrent) {
+ // await this.switchLanguage(lang.code);
+ // }
+ // },
+ // });
+ });
+
+ return items;
+ }
+}
+
+export const systrayItem = {
+ Component: LanguageMenu,
+};
+registry.category("systray").add("web.language_menu", systrayItem, { sequence: 0 });
diff --git a/odex30_base/expert_theme/static/src/language_menu/language_menu.scss b/odex30_base/expert_theme/static/src/language_menu/language_menu.scss
new file mode 100755
index 0000000..4bfa5df
--- /dev/null
+++ b/odex30_base/expert_theme/static/src/language_menu/language_menu.scss
@@ -0,0 +1,19 @@
+.o_user_menu .dropdown-toggle {
+ --NavBar-entry-padding-right: #{$o-horizontal-padding};
+
+ .o_user_avatar {
+ height: calc(var(--o-navbar-height) - 20px);
+ }
+}
+
+.o_menu_icon{
+ height: 16px;
+ width: 20px;
+ object-fit: cover;
+}
+.o_menu_item_icon{
+ height: 25px;
+ width: 25px;
+ object-fit: cover;
+ border-radius: 100%;
+}
\ No newline at end of file
diff --git a/odex30_base/expert_theme/static/src/language_menu/language_menu.xml b/odex30_base/expert_theme/static/src/language_menu/language_menu.xml
new file mode 100755
index 0000000..916ebab
--- /dev/null
+++ b/odex30_base/expert_theme/static/src/language_menu/language_menu.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
diff --git a/odex30_base/expert_theme/static/src/scss/expert_theme.scss b/odex30_base/expert_theme/static/src/scss/expert_theme.scss
index 13c2eb4..026ff27 100644
--- a/odex30_base/expert_theme/static/src/scss/expert_theme.scss
+++ b/odex30_base/expert_theme/static/src/scss/expert_theme.scss
@@ -3,44 +3,80 @@
/* CSS Variables for Customizable Colors */
:root {
/* Primary Colors */
- --expert-primary-color: #875A7B; /* Main brand color (Odoo purple) */
- --expert-primary-hover: #6B4C6B; /* Primary hover state */
- --expert-primary-light: #A67B9B; /* Light primary */
-
+ --expert-primary-color: #875A7B;
+ /* Main brand color (Odoo purple) */
+ --expert-primary-hover: #6B4C6B;
+ /* Primary hover state */
+ --expert-primary-light: #A67B9B;
+ /* Light primary */
+
/* Secondary Colors */
- --expert-secondary-color: #00A09D; /* Teal for upgrades */
- --expert-secondary-hover: #008B8A; /* Teal hover */
-
+ --expert-secondary-color: #00A09D;
+ /* Teal for upgrades */
+ --expert-secondary-hover: #008B8A;
+ /* Teal hover */
+
/* Button Colors */
- --expert-btn-primary: #875A7B; /* Primary button (Activate) */
- --expert-btn-primary-hover: #6B4C6B; /* Primary button hover */
- --expert-btn-secondary: #00A09D; /* Secondary button (Upgrade) */
- --expert-btn-secondary-hover: #008B8A; /* Secondary button hover */
- --expert-btn-light: #F8F9FA; /* Light button (Learn More) */
- --expert-btn-light-hover: #E9ECEF; /* Light button hover */
- --expert-btn-light-text: #6C757D; /* Light button text */
-
+ --expert-btn-primary: #875A7B;
+ /* Primary button (Activate) */
+ --expert-btn-primary-hover: #6B4C6B;
+ /* Primary button hover */
+ --expert-btn-secondary: #00A09D;
+ /* Secondary button (Upgrade) */
+ --expert-btn-secondary-hover: #008B8A;
+ /* Secondary button hover */
+ --expert-btn-light: #F8F9FA;
+ /* Light button (Learn More) */
+ --expert-btn-light-hover: #E9ECEF;
+ /* Light button hover */
+ --expert-btn-light-text: #6C757D;
+ /* Light button text */
+
/* Background Colors */
- --expert-bg-primary: #875A7B; /* Navbar background */
- --expert-bg-secondary: #F8F9FA; /* Sidebar background */
- --expert-bg-content: #FFFFFF; /* Main content background */
- --expert-bg-gradient-start: #f5f7fa; /* Gradient start */
- --expert-bg-gradient-end: #c3cfe2; /* Gradient end */
-
+ --expert-bg-primary: #875A7B;
+ /* Navbar background */
+ --expert-bg-secondary: #F8F9FA;
+ /* Sidebar background */
+ --expert-bg-content: #FFFFFF;
+ /* Main content background */
+ --expert-bg-gradient-start: #f5f7fa;
+ /* Gradient start */
+ --expert-bg-gradient-end: #c3cfe2;
+ /* Gradient end */
+
/* Text Colors */
- --expert-text-primary: #212529; /* Primary text */
- --expert-text-secondary: #6C757D; /* Secondary text */
- --expert-text-light: #FFFFFF; /* Light text (on dark backgrounds) */
-
+ --expert-text-primary: #212529;
+ /* Primary text */
+ --expert-text-secondary: #6C757D;
+ /* Secondary text */
+ --expert-text-light: #FFFFFF;
+ /* Light text (on dark backgrounds) */
+
/* Border Colors */
- --expert-border-color: #DEE2E6; /* Default border */
- --expert-border-light: #E9ECEF; /* Light border */
-
+ --expert-border-color: #DEE2E6;
+ /* Default border */
+ --expert-border-light: #E9ECEF;
+ /* Light border */
+
/* Status Colors */
- --expert-success: #28A745; /* Success/Active state */
- --expert-warning: #FFC107; /* Warning state */
- --expert-danger: #DC3545; /* Danger/Error state */
- --expert-info: #17A2B8; /* Info state */
+ --expert-success: #28A745;
+ /* Success/Active state */
+ --expert-warning: #FFC107;
+ /* Warning state */
+ --expert-danger: #DC3545;
+ /* Danger/Error state */
+ --expert-info: #17A2B8;
+ /* Info state */
+
+ /* Home Banner Background */
+ --expert-home-banner-bg: #875A7B;
+ /* Home banner background color */
+ --expert-home-banner-text: #FFFFFF;
+ /* Home banner text color */
+
+ /* Font Families */
+ --expert-en-font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ --expert-ar-font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
/* Apply gradient to the entire page background */
@@ -50,6 +86,11 @@ body {
// min-height: 100vh !important;
// margin: 0 !important;
// padding: 0 !important;
+ font-family: var(--expert-en-font-family, 'Helvetica Neue', Helvetica, Arial, sans-serif) !important;
+
+ &.o_rtl{
+ font-family: var(--expert-ar-font-family, 'Helvetica Neue', Helvetica, Arial, sans-serif) !important;
+ }
}
/* Ensure the gradient shows on the main content area */
@@ -65,6 +106,20 @@ body {
.o_web_client {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%) !important;
background: linear-gradient(135deg, var(--expert-bg-gradient-start, #f5f7fa) 0%, var(--expert-bg-gradient-end, #c3cfe2) 100%) !important;
+
+ &.o_home_menu_background {
+ background: var(--expert-home-banner-bg) !important;
+ // color: var(--expert-home-banner-text) !important;
+
+ .o_action_manager {
+ background: transparent !important;
+ }
+
+ .o_main_navbar{
+ background-color: transparent !important;
+ border-bottom: none !important;
+ }
+ }
}
.expert-home-container {
@@ -89,12 +144,12 @@ body {
font-weight: 500;
cursor: pointer;
transition: all 0.3s ease;
- box-shadow: 0 4px 15px rgba(0,0,0,0.1);
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}
.expert-theme-btn:hover {
transform: translateY(-2px);
- box-shadow: 0 6px 20px rgba(0,0,0,0.15);
+ box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
background: linear-gradient(135deg, var(--expert-primary-hover) 0%, var(--expert-primary-color) 100%);
}
@@ -105,7 +160,7 @@ body {
background: linear-gradient(135deg, var(--expert-primary-color) 0%, var(--expert-primary-hover) 100%);
color: var(--expert-text-light);
border-radius: 10px;
- box-shadow: 0 4px 15px rgba(0,0,0,0.1);
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}
.expert-home-header h1 {
@@ -132,7 +187,7 @@ body {
border-radius: 10px;
padding: 20px;
text-align: center;
- box-shadow: 0 2px 10px rgba(0,0,0,0.1);
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
transition: all 0.3s ease;
cursor: pointer;
border: 1px solid var(--expert-border-light);
@@ -140,7 +195,7 @@ body {
.expert-module-card:hover {
transform: translateY(-5px);
- box-shadow: 0 8px 25px rgba(0,0,0,0.15);
+ box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
border-color: var(--expert-primary-color);
}
@@ -185,7 +240,9 @@ body {
}
@keyframes spinner-border {
- to { transform: rotate(360deg); }
+ to {
+ transform: rotate(360deg);
+ }
}
.expert-error,
@@ -216,14 +273,14 @@ body {
/* Override Odoo's default colors */
.o_main_navbar {
background-color: var(--expert-bg-primary) !important;
- border-bottom: 1px solid var(--expert-border-color) !important;
+ // border-bottom: 1px solid var(--expert-border-color) !important;
}
-.o_main_navbar .o_menu_item > a {
+.o_main_navbar .o_menu_item>a {
color: var(--expert-text-light) !important;
}
-.o_main_navbar .o_menu_item > a:hover {
+.o_main_navbar .o_menu_item>a:hover {
background-color: var(--expert-primary-hover) !important;
color: var(--expert-text-light) !important;
}
@@ -266,11 +323,11 @@ body {
background-color: var(--expert-bg-secondary) !important;
}
-.o_main_navbar .o_menu_sections .o_menu_item > a {
+.o_main_navbar .o_menu_sections .o_menu_item>a {
color: var(--expert-text-primary) !important;
}
-.o_main_navbar .o_menu_sections .o_menu_item > a:hover {
+.o_main_navbar .o_menu_sections .o_menu_item>a:hover {
background-color: var(--expert-primary-light) !important;
color: var(--expert-text-light) !important;
}
@@ -297,18 +354,26 @@ body {
color: var(--expert-info) !important;
}
+.o_main_navbar {
+ .o_menu_sections {
+ .dropdown-toggle ,.o_nav_entry{
+ background: transparent;
+ }
+ }
+}
+
/* Responsive design */
@media (max-width: 768px) {
.expert-modules-grid {
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 15px;
}
-
+
.expert-home-header h1 {
font-size: 2rem;
}
-
+
.expert-home-container {
padding: 15px;
}
-}
+}
\ No newline at end of file
diff --git a/odex30_base/expert_theme/static/src/scss/intro_loader.scss b/odex30_base/expert_theme/static/src/scss/intro_loader.scss
new file mode 100644
index 0000000..f416be7
--- /dev/null
+++ b/odex30_base/expert_theme/static/src/scss/intro_loader.scss
@@ -0,0 +1,56 @@
+.o_intro_loader {
+ position: fixed;
+ top: 0; left: 0; width: 100vw; height: 100vh;
+ background-color: #ffffff;
+ z-index: 99999;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ transition: opacity 0.8s ease-out, visibility 0.8s;
+
+ .o_loader_content {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ }
+
+ .o_loader_logo {
+ max-width: 150px;
+ height: auto;
+ }
+
+ /* --- Animations --- */
+ .anim-pulse { animation: loader-pulse 2s infinite; }
+ .anim-spin { animation: loader-spin 2s linear infinite; }
+ .anim-bounce { animation: loader-bounce 2s infinite; }
+ .anim-none { /* No animation */ }
+
+ .o_loader_spinner {
+ width: 50px; height: 50px;
+ border: 5px solid #f3f3f3;
+ border-top: 5px solid #714B67;
+ border-radius: 50%;
+ animation: loader-spin 1s linear infinite;
+ }
+
+ &.o_hidden {
+ opacity: 0;
+ visibility: hidden;
+ pointer-events: none;
+ }
+}
+
+@keyframes loader-spin {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(360deg); }
+}
+@keyframes loader-pulse {
+ 0% { transform: scale(1); }
+ 50% { transform: scale(1.05); }
+ 100% { transform: scale(1); }
+}
+@keyframes loader-bounce {
+ 0%, 20%, 50%, 80%, 100% {transform: translateY(0);}
+ 40% {transform: translateY(-20px);}
+ 60% {transform: translateY(-10px);}
+}
\ No newline at end of file
diff --git a/odex30_base/expert_theme/views/expert_menu_views.xml b/odex30_base/expert_theme/views/expert_menu_views.xml
index c4158ff..8aef122 100644
--- a/odex30_base/expert_theme/views/expert_menu_views.xml
+++ b/odex30_base/expert_theme/views/expert_menu_views.xml
@@ -14,13 +14,13 @@
sequence="1" /> -->
diff --git a/odex30_base/expert_theme/views/expert_theme_config_views.xml b/odex30_base/expert_theme/views/expert_theme_config_views.xml
index b4719f3..e15033f 100644
--- a/odex30_base/expert_theme/views/expert_theme_config_views.xml
+++ b/odex30_base/expert_theme/views/expert_theme_config_views.xml
@@ -68,6 +68,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/odex30_base/expert_theme/views/res_config_settings_views.xml b/odex30_base/expert_theme/views/res_config_settings_views.xml
new file mode 100644
index 0000000..b7c294d
--- /dev/null
+++ b/odex30_base/expert_theme/views/res_config_settings_views.xml
@@ -0,0 +1,34 @@
+
+
+
+ res.config.settings.view.form.inherit.intro.loader
+ res.config.settings
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/odex30_base/expert_theme/views/web_layout.xml b/odex30_base/expert_theme/views/web_layout.xml
new file mode 100644
index 0000000..3f26ec8
--- /dev/null
+++ b/odex30_base/expert_theme/views/web_layout.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file