Compare commits
116 Commits
cfe37ec57d
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| f6f4bfa2ab | |||
| f625537b6f | |||
| 794d5e810d | |||
| a5c0985093 | |||
| 70b481480f | |||
| a37e009109 | |||
| 191ceaca36 | |||
| 53ec69d27c | |||
| 26f29e4353 | |||
| e1f239d6ee | |||
| 355abb1add | |||
| a3795dd267 | |||
| 90ffcd090c | |||
| acb52aef73 | |||
| fa04e5275f | |||
| 0288c05e2b | |||
| 9c96d8c253 | |||
| 423394a9d9 | |||
| 3b0e1f6524 | |||
| c57eec05c9 | |||
| 197f910b82 | |||
| a940f2ff0d | |||
| 66a1170221 | |||
| 5f403710d1 | |||
| 529fb3fc5d | |||
| cae627f0b0 | |||
| 5ff75a4a80 | |||
| 80deab3c42 | |||
| 6030998018 | |||
| abaff023cd | |||
| 4dbe424f84 | |||
| 7488a9f8c8 | |||
| b759ce2d5a | |||
| 84c88ba406 | |||
| b2f7612452 | |||
| 09769542f9 | |||
| a90d7c06a9 | |||
| 4ce12a5428 | |||
| 7ba65e73ae | |||
| 4a58a47a8e | |||
| e8506e1b4e | |||
| 61805df66b | |||
| e98d426324 | |||
| 6c062ce3c8 | |||
| 8f47d4fb65 | |||
| 63e507d0ff | |||
| 5a16466766 | |||
| 4b0c923ec0 | |||
| 87f67aa24a | |||
| 93e48f3cbc | |||
| baadc67fcf | |||
| bc16aea3a4 | |||
| 8041e3eb4d | |||
| 3e4c0b2ab5 | |||
| 960c9ba5b0 | |||
| 3efec91d74 | |||
| 9e48c72245 | |||
| 4dac9a5eec | |||
| bf25c67f1e | |||
| 1245899c07 | |||
| 66f25b6937 | |||
| 2d44edf5ab | |||
| 7062c756b6 | |||
| 7c173c9195 | |||
| e070ab15ac | |||
| 400498c6fa | |||
| 3c5331c2d3 | |||
| 800b7ba493 | |||
| bc2689d1cf | |||
| ce9be11c0a | |||
| 43ba192496 | |||
| ee410315ee | |||
| f3c78f0575 | |||
| b98a4a5364 | |||
| 68aad97e46 | |||
| 8de6676b40 | |||
| 7a345a6c80 | |||
| e3adbeeea4 | |||
| b0db3534f2 | |||
| 6f646264dc | |||
| d83940b47d | |||
| 4996d02f71 | |||
| da6f47f439 | |||
| 54fbc3f4b2 | |||
| 6e2c54eccf | |||
| 89166100e3 | |||
| 3d28a1ee86 | |||
| 034d5faa0d | |||
| f58038ab90 | |||
| ad25cc67ec | |||
| 384d1e8aec | |||
| b0a1007a76 | |||
| 0419ba7847 | |||
| c52dbca9a1 | |||
| 43153a9fdf | |||
| c23dd1ff4c | |||
| 67d9528614 | |||
| 1151744247 | |||
| 9dd3fbe47d | |||
| f42e155f2b | |||
| f5a084684a | |||
| b22adac365 | |||
| a329720f1c | |||
| e03f4a015a | |||
| 94f677ae6f | |||
| 8afdfc87c5 | |||
| cc3739f701 | |||
| dbee8dabb1 | |||
| cfb7acfddb | |||
| e14072e829 | |||
| f80f8d8c7e | |||
| e9b3dc1da9 | |||
| 63137188e5 | |||
|
|
07031d693c | ||
| 531955bdc7 | |||
| 2cfa314c3c |
4
.gitignore
vendored
@@ -415,3 +415,7 @@ fabric.properties
|
||||
# Android studio 3.1+ serialized cache file
|
||||
.idea/caches/build_file_checksums.ser
|
||||
|
||||
# packages for node
|
||||
package.json
|
||||
package-lock.json
|
||||
|
||||
|
||||
@@ -314,7 +314,11 @@ def send_message_ajax(request):
|
||||
html = render_to_string('mail/m_request_offer.html', Dict, request)
|
||||
from BaseModels.mailSender import admin_send_mail_by_SMTPlib
|
||||
mail_sets = get_mail_send_options()
|
||||
to = [mail_sets['sender_email']]
|
||||
opts = get_options_by_opt_types('support_email', only_vals=True)
|
||||
if opts and 'support_email' in opts:
|
||||
to = [opts['support_email']]
|
||||
else:
|
||||
to = [mail_sets['sender_email']]
|
||||
res = admin_send_mail_by_SMTPlib(
|
||||
mail_sets,
|
||||
subject=subject,
|
||||
@@ -711,6 +715,7 @@ def registration_ajax(request):
|
||||
}
|
||||
|
||||
res = send_check_email_after_registration(mail_Dict, user)
|
||||
print(str(res))
|
||||
# res = send_registration_mail(mail_Dict, user)
|
||||
|
||||
res_Dict = {
|
||||
|
||||
@@ -29,12 +29,31 @@ class BaseModel(models.Model):
|
||||
|
||||
json_data = models.JSONField(verbose_name=_('Дополнительные данные'), default=dict, blank=True)
|
||||
|
||||
media_items = GenericRelation('GeneralApp.MediaItem', related_query_name='grel_%(class)s_for_media_item')
|
||||
|
||||
def __str__(self):
|
||||
if self.name:
|
||||
return self.name
|
||||
else:
|
||||
return str(self.id)
|
||||
|
||||
def get_media_items(self, exclude_kwargs=None):
|
||||
if not exclude_kwargs:
|
||||
exclude_kwargs = {}
|
||||
return self.media_items.exclude(
|
||||
**exclude_kwargs
|
||||
).filter(
|
||||
enable=True
|
||||
).order_by('order')
|
||||
|
||||
def get_video_items(self):
|
||||
exclude_kwargs = {'video': None}
|
||||
return self.get_media_items(exclude_kwargs=exclude_kwargs)
|
||||
|
||||
def get_picture_items(self):
|
||||
exclude_kwargs = {'picture': None}
|
||||
return self.get_media_items(exclude_kwargs=exclude_kwargs)
|
||||
|
||||
def pop_node_by_name(self, node_name):
|
||||
if not self.json_data or not node_name in self.json_data:
|
||||
return None
|
||||
@@ -108,7 +127,6 @@ class BaseModelViewPage(BaseModel):
|
||||
FAQ_title = models.CharField(max_length=250, verbose_name=_(u'FAQ Заголовок'), null=True, blank=True)
|
||||
FAQ_items = GenericRelation('GeneralApp.FAQitem', related_query_name='grel_%(class)s_for_faq_item')
|
||||
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
|
||||
@@ -145,8 +145,8 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
|
||||
res = None
|
||||
|
||||
if type(to) in (list, tuple):
|
||||
if sets['sender_email'] in to:
|
||||
to.remove(sets['sender_email'])
|
||||
# if sets['sender_email'] in to:
|
||||
# to.remove(sets['sender_email'])
|
||||
|
||||
if len(to) > 1:
|
||||
to_str = u', '.join(to)
|
||||
|
||||
18
BillingApp/migrations/0006_alter_subscribeorder_currency.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 4.2.2 on 2024-07-12 17:23
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('BillingApp', '0005_subscribeorder_last_operation_status'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='subscribeorder',
|
||||
name='currency',
|
||||
field=models.CharField(default='KZT', max_length=3, verbose_name='Валюта'),
|
||||
),
|
||||
]
|
||||
@@ -3,6 +3,8 @@ from .models import *
|
||||
from django.contrib import admin
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
|
||||
|
||||
class Admin_StaticPage(Admin_Trans_BaseModelViewPage):
|
||||
|
||||
fieldsets = [
|
||||
|
||||
41
GeneralApp/migrations/0006_mediaitem.py
Normal file
@@ -0,0 +1,41 @@
|
||||
# Generated by Django 4.2.2 on 2024-11-15 14:50
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('contenttypes', '0002_remove_content_type_name'),
|
||||
('GeneralApp', '0005_option_name_en_option_name_ru_option_prefix_en_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='MediaItem',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||
('name_ru', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||
('name_en', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
|
||||
('name_plural', models.TextField(blank=True, null=True, verbose_name='Название (множественное число)')),
|
||||
('order', models.IntegerField(blank=True, null=True, verbose_name='Очередность отображения')),
|
||||
('createDT', models.DateTimeField(auto_now_add=True, verbose_name='Дата и время создания')),
|
||||
('modifiedDT', models.DateTimeField(blank=True, null=True, verbose_name='Дата и время последнего изменения')),
|
||||
('enable', models.BooleanField(db_index=True, default=True, verbose_name='Включено')),
|
||||
('json_data', models.JSONField(blank=True, default=dict, verbose_name='Дополнительные данные')),
|
||||
('object_id', models.PositiveIntegerField()),
|
||||
('picture', models.ImageField(blank=True, null=True, upload_to='media/', verbose_name='Фото')),
|
||||
('video', models.FileField(blank=True, null=True, upload_to='media/video/', verbose_name='Видео')),
|
||||
('comment', models.TextField(blank=True, null=True, verbose_name='Комментарий')),
|
||||
('comment_ru', models.TextField(blank=True, null=True, verbose_name='Комментарий')),
|
||||
('comment_en', models.TextField(blank=True, null=True, verbose_name='Комментарий')),
|
||||
('content_type', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='contenttypes.contenttype')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Медиа элемент',
|
||||
'verbose_name_plural': 'Медиа элементы',
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 4.2.2 on 2024-11-15 15:58
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('GeneralApp', '0006_mediaitem'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='mediaitem',
|
||||
name='picture',
|
||||
field=models.ImageField(blank=True, null=True, upload_to='uploads/', verbose_name='Фото'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='mediaitem',
|
||||
name='video',
|
||||
field=models.FileField(blank=True, null=True, upload_to='uploads/video/', verbose_name='Видео'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 4.2.2 on 2024-11-15 15:59
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('GeneralApp', '0007_alter_mediaitem_picture_alter_mediaitem_video'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='mediaitem',
|
||||
name='picture',
|
||||
field=models.ImageField(blank=True, null=True, upload_to='media_items/photo/', verbose_name='Фото'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='mediaitem',
|
||||
name='video',
|
||||
field=models.FileField(blank=True, null=True, upload_to='media_items/video/', verbose_name='Видео'),
|
||||
),
|
||||
]
|
||||
@@ -3,6 +3,26 @@ from BaseModels.base_models import BaseModelViewPage, BaseModel
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
# from ckeditor.fields import RichTextField
|
||||
from ckeditor_uploader.fields import RichTextUploadingField
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.contrib.contenttypes.fields import GenericForeignKey
|
||||
|
||||
|
||||
class MediaItem(BaseModel):
|
||||
|
||||
content_type = models.ForeignKey(ContentType, on_delete=models.SET_NULL, null=True)
|
||||
object_id = models.PositiveIntegerField()
|
||||
content_object = GenericForeignKey('content_type', 'object_id')
|
||||
|
||||
picture = models.ImageField(upload_to='media_items/photo/', verbose_name=_('Фото'), null=True, blank=True)
|
||||
video = models.FileField(upload_to='media_items/video/', verbose_name=_('Видео'), null=True, blank=True)
|
||||
|
||||
comment = models.TextField(verbose_name=_('Комментарий'), null=True, blank=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Медиа элемент')
|
||||
verbose_name_plural = _('Медиа элементы')
|
||||
|
||||
|
||||
|
||||
class StaticPage(BaseModelViewPage):
|
||||
promo_header = models.BooleanField(verbose_name=_('Промо-хэдер'), default=False)
|
||||
@@ -29,9 +49,6 @@ class Option(BaseModel):
|
||||
|
||||
class FAQitem(BaseModel):
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.contrib.contenttypes.fields import GenericForeignKey
|
||||
|
||||
content_type = models.ForeignKey(ContentType, on_delete=models.SET_NULL, null=True)
|
||||
object_id = models.PositiveIntegerField()
|
||||
content_object = GenericForeignKey('content_type', 'object_id')
|
||||
|
||||
@@ -27,3 +27,9 @@ class FAQitem_TranslationOptions(TranslationOptions):
|
||||
)
|
||||
translator.register(FAQitem, FAQitem_TranslationOptions)
|
||||
|
||||
class MediaItem_TranslationOptions(TranslationOptions):
|
||||
fields = (
|
||||
'name', 'comment',
|
||||
)
|
||||
translator.register(MediaItem, MediaItem_TranslationOptions)
|
||||
|
||||
|
||||
@@ -6,6 +6,11 @@ from .views import *
|
||||
|
||||
urlpatterns = [
|
||||
path('', MainPage, name='main'),
|
||||
path('mover_landing_page/', LandingMoverPage, name='mover_landing_page'),
|
||||
path('customer_landing_page/', LandingCustomerPage, name='customer_landing_page'),
|
||||
|
||||
|
||||
path('page/<str:url>/', StaticPageView, name='static_page'),
|
||||
path('test_code', test_code, name='test_code'),
|
||||
path('generate_routes/<int:routes_count>/', generate_routes, name='generate_routes'),
|
||||
]
|
||||
@@ -1,8 +1,9 @@
|
||||
import json
|
||||
|
||||
from django.http import HttpResponse, Http404, FileResponse
|
||||
from django.http import HttpResponse, Http404, FileResponse, HttpResponseRedirect
|
||||
from django.template import loader, RequestContext
|
||||
from django.contrib.auth.decorators import login_required
|
||||
|
||||
from .models import *
|
||||
from django.conf import settings
|
||||
from .funcs import get_inter_http_response
|
||||
@@ -14,9 +15,9 @@ from django.views.decorators.csrf import csrf_exempt
|
||||
from webpush import send_user_notification
|
||||
import json
|
||||
from datetime import datetime, timedelta
|
||||
from django.urls import reverse
|
||||
|
||||
def test_code(request):
|
||||
|
||||
def generate_routes(request, routes_count):
|
||||
if (not request.user
|
||||
or not request.user.is_active
|
||||
or not request.user.is_authenticated
|
||||
@@ -45,9 +46,60 @@ def test_code(request):
|
||||
weight=item,
|
||||
phone='0987654321',
|
||||
owner=request.user
|
||||
) for item in range(100)
|
||||
) for item in range(routes_count)
|
||||
]
|
||||
|
||||
Route.objects.bulk_create(routes)
|
||||
|
||||
if res:
|
||||
if type(res) == str:
|
||||
return HttpResponse(res)
|
||||
else:
|
||||
return res
|
||||
|
||||
return HttpResponse('finished')
|
||||
|
||||
|
||||
|
||||
def test_code(request):
|
||||
|
||||
if (not request.user
|
||||
or not request.user.is_active
|
||||
or not request.user.is_authenticated
|
||||
or not request.user.is_staff
|
||||
):
|
||||
raise Http404
|
||||
|
||||
res = ''
|
||||
|
||||
from RoutesApp.search_matches import search_matches
|
||||
from RoutesApp.models import Route
|
||||
search_matches(Route.objects.filter(id=17158))
|
||||
|
||||
# from RoutesApp.funcs import get_city_by_type_transport_and_address_point
|
||||
# from RoutesApp.models import Route
|
||||
# from ReferenceDataApp.models import Airport, City
|
||||
#
|
||||
# res = None
|
||||
#
|
||||
# from_air = Airport.objects.get(iata_code='MSQ')
|
||||
# to_air = Airport.objects.get(iata_code='SVO')
|
||||
#
|
||||
# routes = [
|
||||
# Route(
|
||||
# type_transport='road',
|
||||
# departure_DT=datetime.now() + timedelta(days=7),
|
||||
# arrival_DT=datetime.now() + timedelta(days=8),
|
||||
# from_address_point=to_air.city.id,
|
||||
# to_address_point=from_air.city.id,
|
||||
# from_city=to_air.city,
|
||||
# to_city=from_air.city,
|
||||
# weight=item,
|
||||
# phone='0987654321',
|
||||
# owner=request.user
|
||||
# ) for item in range(100)
|
||||
# ]
|
||||
|
||||
# routes = [
|
||||
# Route(
|
||||
# type_transport='avia',
|
||||
@@ -62,8 +114,8 @@ def test_code(request):
|
||||
# owner = request.user
|
||||
# ) for item in range(1000)
|
||||
# ]
|
||||
|
||||
Route.objects.bulk_create(routes)
|
||||
#
|
||||
# Route.objects.bulk_create(routes)
|
||||
|
||||
|
||||
# from RoutesApp.search_matches import search_matches
|
||||
@@ -97,7 +149,52 @@ def Page404(request, exeption=None):
|
||||
except Exception as e:
|
||||
return HttpResponse(str(e))
|
||||
|
||||
def LandingMoverPage(request):
|
||||
|
||||
from .init_options import init_options
|
||||
init_options()
|
||||
|
||||
|
||||
print(f'LOCALE_PATHS = {str(settings.LOCALE_PATHS)}')
|
||||
|
||||
page, is_created = StaticPage.objects.get_or_create(url='landing_mover')
|
||||
|
||||
Dict = {
|
||||
'page': page,
|
||||
}
|
||||
|
||||
|
||||
|
||||
breadcrumbs_Dict = {
|
||||
}
|
||||
Dict.update({'breadcrumbs': breadcrumbs_Dict})
|
||||
|
||||
t = loader.get_template('pages/p_mover_landing_page.html')
|
||||
return get_inter_http_response(t, Dict, request)
|
||||
|
||||
|
||||
def LandingCustomerPage(request):
|
||||
|
||||
from .init_options import init_options
|
||||
init_options()
|
||||
|
||||
|
||||
print(f'LOCALE_PATHS = {str(settings.LOCALE_PATHS)}')
|
||||
|
||||
page, is_created = StaticPage.objects.get_or_create(url='landing_customer')
|
||||
|
||||
Dict = {
|
||||
'page': page,
|
||||
}
|
||||
|
||||
|
||||
|
||||
breadcrumbs_Dict = {
|
||||
}
|
||||
Dict.update({'breadcrumbs': breadcrumbs_Dict})
|
||||
|
||||
t = loader.get_template('pages/p_customer_landing_page.html')
|
||||
return get_inter_http_response(t, Dict, request)
|
||||
|
||||
|
||||
def MainPage(request):
|
||||
@@ -152,6 +249,12 @@ def StaticPageView(request, url):
|
||||
'route_form': RouteForm(),
|
||||
'owner_type': 'mover'
|
||||
})
|
||||
elif url in ['landing_customer', 'landing_mover']:
|
||||
raise Http404
|
||||
# return HttpResponseRedirect(reverse('customer_landing_page'))
|
||||
# elif url == 'landing_mover':
|
||||
# return HttpResponseRedirect(reverse('mover_landing_page'))
|
||||
|
||||
# elif url == 'works':
|
||||
# return WorksPage(request)
|
||||
elif url in ['main']:
|
||||
|
||||
@@ -3,7 +3,10 @@ from .models import *
|
||||
from django.contrib import admin
|
||||
|
||||
class Admin_Route(Admin_Trans_BaseModel):
|
||||
readonly_fields = ['highlight_end_DT', 'rising_DT']
|
||||
readonly_fields = [
|
||||
# 'highlight_end_DT',
|
||||
'rising_DT'
|
||||
]
|
||||
list_display = [
|
||||
'id', 'owner_type',
|
||||
'rising_DT',
|
||||
@@ -27,6 +30,6 @@ class Admin_Route(Admin_Trans_BaseModel):
|
||||
search_fields = [
|
||||
'owner__first_name', 'owner__last_name', 'from_city__name', 'to_city__name', 'owner__email'
|
||||
]
|
||||
raw_id_fields = ['from_city', 'to_city']
|
||||
raw_id_fields = ['from_city', 'to_city', 'owner']
|
||||
|
||||
admin.site.register(Route,Admin_Route)
|
||||
admin.site.register(Route, Admin_Route)
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
from BaseModels.mailSender import techSendMail
|
||||
from GeneralApp.funcs_options import get_mail_send_options
|
||||
from .models import *
|
||||
from .forms import *
|
||||
from django.utils.translation import gettext as _
|
||||
@@ -170,6 +172,7 @@ def get_routes_Dict(user=None, data=None):
|
||||
'owner': user
|
||||
})
|
||||
|
||||
|
||||
from_el = None
|
||||
to_el = None
|
||||
|
||||
|
||||
@@ -305,6 +305,14 @@ def get_my_routes_ajax(request):
|
||||
data = json.loads(request.body)
|
||||
|
||||
try:
|
||||
|
||||
if not request.user or request.user.is_anonymous:
|
||||
msg = (f'get_my_routes_ajax not have user - user={str(request.user)}<br>'
|
||||
f'data={str(data)}<br>'
|
||||
f'request={str(request)}')
|
||||
mail_sets = get_mail_send_options()
|
||||
techSendMail(mail_sets, msg)
|
||||
|
||||
routes_Dict = get_routes_Dict(request.user, data)
|
||||
if 'errors' in routes_Dict:
|
||||
return JsonResponse(routes_Dict, status=400)
|
||||
|
||||
18
RoutesApp/migrations/0009_alter_route_phone.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 4.2.2 on 2024-11-12 10:51
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('RoutesApp', '0008_route_highlight_end_dt'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='route',
|
||||
name='phone',
|
||||
field=models.CharField(blank=True, null=True, verbose_name='Укажите номер для связи'),
|
||||
),
|
||||
]
|
||||
@@ -57,7 +57,7 @@ class Route(BaseModel):
|
||||
verbose_name=_('Куда можете доставить?'))
|
||||
cargo_type = models.CharField(choices=cargo_type_choices, default='parcel', verbose_name=_('Могу перевезти'))
|
||||
weight = models.IntegerField(verbose_name=_('Укажите вес до (кг)'))
|
||||
phone = models.CharField(verbose_name=_('Укажите номер для связи'))
|
||||
phone = models.CharField(verbose_name=_('Укажите номер для связи'), blank=True, null=True)
|
||||
extra_phone = models.CharField(verbose_name=_('Дополнительный номер'), blank=True, null=True)
|
||||
receive_msg_by_email = models.BooleanField(default=False, verbose_name=_('Получать уведомления по E-mail'))
|
||||
receive_msg_by_sms = models.BooleanField(default=False, verbose_name=_('Получать уведомления по SMS'))
|
||||
|
||||
@@ -47,7 +47,7 @@ def send_push_message_for_found_matches_routes(route, data_Dict):
|
||||
|
||||
|
||||
|
||||
def send_mail_found_matches_routes(route, data_Dict):
|
||||
def send_mail_found_matches_routes(route, matched_route, data_Dict):
|
||||
print(f'send_mail_found_matches_routes to route id = {route.id}')
|
||||
|
||||
Dict = {
|
||||
@@ -67,7 +67,9 @@ def send_mail_found_matches_routes(route, data_Dict):
|
||||
from_email=mail_sets['sender_email'], to=to,
|
||||
html_content=html
|
||||
)
|
||||
to = ['web@syncsystems.net']
|
||||
|
||||
subject = f'route matches {route.id} <> {matched_route.id} send to {route.owner.email}'
|
||||
to = ['web@syncsystems.net', 'sa@a3-global.com']
|
||||
res = admin_send_mail_by_SMTPlib(
|
||||
mail_sets,
|
||||
subject=subject,
|
||||
@@ -78,6 +80,56 @@ def send_mail_found_matches_routes(route, data_Dict):
|
||||
return res
|
||||
|
||||
|
||||
def user_notify_by_result_search_matches(route_for_send, founded_route, params):
|
||||
log = ''
|
||||
|
||||
data_Dict = None
|
||||
try:
|
||||
data_Dict = get_Dict_for_send_msgs(params, founded_route.owner_type)
|
||||
except Exception as e:
|
||||
msg = f'<br>\n! search_matches Error get_Dict_for_send_msgs = {str(e)}'
|
||||
print(msg)
|
||||
log += msg
|
||||
|
||||
if data_Dict and check_option_in_cur_user_subscribe(
|
||||
route_for_send.owner, 'push уведомления'
|
||||
):
|
||||
try:
|
||||
msg = send_push_message_for_found_matches_routes(route_for_send, data_Dict)
|
||||
if msg:
|
||||
log += msg
|
||||
except Exception as e:
|
||||
msg = f'<br>\n! search_matches Error send_push_message_for_found_matches_routes = {str(e)}'
|
||||
print(msg)
|
||||
log += msg
|
||||
|
||||
if data_Dict and check_option_in_cur_user_subscribe(
|
||||
route_for_send.owner,
|
||||
'уведомление на e-mail о появлении перевозчика по заданным критериям'
|
||||
):
|
||||
try:
|
||||
msg = send_mail_found_matches_routes(route_for_send, founded_route, data_Dict)
|
||||
if msg:
|
||||
log += msg
|
||||
except Exception as e:
|
||||
msg = f'<br>\n! search_matches Error send_mail_found_matches_routes = {str(e)}'
|
||||
print(msg)
|
||||
log += msg
|
||||
|
||||
return log
|
||||
|
||||
|
||||
|
||||
def users_notify_by_result_search_matches(source_route, found_routes, params):
|
||||
log = ''
|
||||
log += user_notify_by_result_search_matches(source_route, found_routes[0], params)
|
||||
|
||||
for route in found_routes:
|
||||
log += user_notify_by_result_search_matches(route, source_route, params)
|
||||
|
||||
return log
|
||||
|
||||
|
||||
def search_matches(for_routes=None):
|
||||
print('search_matches')
|
||||
|
||||
@@ -91,8 +143,11 @@ def search_matches(for_routes=None):
|
||||
)
|
||||
|
||||
check_fields = [
|
||||
'type_transport', 'departure_DT', 'arrival_DT', 'from_address_point', 'to_address_point',
|
||||
'from_place', 'to_place', 'cargo_type', 'weight'
|
||||
'type_transport', 'departure_DT', 'arrival_DT',
|
||||
# 'from_address_point', 'to_address_point',
|
||||
'from_place', 'to_place',
|
||||
'cargo_type', 'weight',
|
||||
'from_city', 'to_city',
|
||||
]
|
||||
|
||||
if for_routes:
|
||||
@@ -113,11 +168,20 @@ def search_matches(for_routes=None):
|
||||
kwargs.update({f"{field_name}__date": field_val.date()})
|
||||
elif field_name == 'weight':
|
||||
# print(field_name)
|
||||
params.update({f"{field_name}": field_val})
|
||||
if route.owner_type == 'mover':
|
||||
# params.update({f"{field_name}__lte": field_val})
|
||||
kwargs.update({f"{field_name}__lte": field_val})
|
||||
else:
|
||||
# params.update({f"{field_name}__gte": field_val})
|
||||
kwargs.update({f"{field_name}__gte": field_val})
|
||||
elif field_name == 'from_city':
|
||||
params.update({'from_address_point': field_val.id})
|
||||
kwargs.update({field_name: field_val})
|
||||
elif field_name == 'to_city':
|
||||
params.update({'to_address_point': field_val.id})
|
||||
kwargs.update({field_name: field_val})
|
||||
# elif field_name in ['from_address_point', 'to_address_point']:
|
||||
# kwargs.update({field_name: field_val})
|
||||
else:
|
||||
kwargs.update({field_name: field_val})
|
||||
params.update({field_name: field_val})
|
||||
@@ -135,39 +199,9 @@ def search_matches(for_routes=None):
|
||||
|
||||
if found_routes:
|
||||
msg = f'found routes for send messages = {found_routes.count()}'
|
||||
print(msg)
|
||||
|
||||
data_Dict = None
|
||||
try:
|
||||
data_Dict = get_Dict_for_send_msgs(params, found_routes[0].owner_type)
|
||||
except Exception as e:
|
||||
msg = f'<br>\n! search_matches Error get_Dict_for_send_msgs = {str(e)}'
|
||||
print(msg)
|
||||
log += msg
|
||||
|
||||
if data_Dict and check_option_in_cur_user_subscribe(
|
||||
route.owner, 'push уведомления'
|
||||
):
|
||||
try:
|
||||
msg = send_push_message_for_found_matches_routes(route, data_Dict)
|
||||
if msg:
|
||||
log += msg
|
||||
except Exception as e:
|
||||
msg = f'<br>\n! search_matches Error send_push_message_for_found_matches_routes = {str(e)}'
|
||||
print(msg)
|
||||
log += msg
|
||||
|
||||
if data_Dict and check_option_in_cur_user_subscribe(
|
||||
route.owner,
|
||||
'уведомление на e-mail о появлении перевозчика по заданным критериям'
|
||||
):
|
||||
try:
|
||||
msg = send_mail_found_matches_routes(route, data_Dict)
|
||||
if msg:
|
||||
log += msg
|
||||
except Exception as e:
|
||||
msg = f'<br>\n! search_matches Error send_mail_found_matches_routes = {str(e)}'
|
||||
print(msg)
|
||||
log += msg
|
||||
log += users_notify_by_result_search_matches(route, found_routes, params)
|
||||
|
||||
except Exception as e:
|
||||
msg = f'<br>\n! search_matches Error = {str(e)}'
|
||||
|
||||
14
SubscribesApp/migrations/0008_merge_20250217_1748.py
Normal file
@@ -0,0 +1,14 @@
|
||||
# Generated by Django 4.2.2 on 2025-02-17 17:48
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('SubscribesApp', '0004_alter_subscribe_bg_color_alter_subscribe_text_color'),
|
||||
('SubscribesApp', '0007_subscribeoption_route_highlight_hours'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
]
|
||||
@@ -1,6 +1,10 @@
|
||||
from BaseModels.admin_utils import Admin_GenericBaseIconStackedInline, Admin_BaseIconModel, GenericStackedInline
|
||||
from BaseModels.admin_utils import (
|
||||
Admin_GenericBaseIconStackedInline, Admin_BaseIconModel, GenericStackedInline,
|
||||
AdminImageWidget, get_image_thumb
|
||||
)
|
||||
from copy import deepcopy
|
||||
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
|
||||
class Admin_BaseModel(Admin_BaseIconModel):
|
||||
@@ -86,12 +90,17 @@ class AdminTranslationBase(TranslationAdmin):
|
||||
'screen': ('modeltranslation/css/tabbed_translation_fields.css',),
|
||||
}
|
||||
|
||||
from modeltranslation.admin import TranslationGenericStackedInline
|
||||
class AdminStacked_FAQitem(TranslationGenericStackedInline):
|
||||
from GeneralApp.models import FAQitem
|
||||
model = FAQitem
|
||||
extra = 0
|
||||
fields = ['order', 'question', 'answer']
|
||||
from modeltranslation.admin import TranslationGenericStackedInline, TranslationGenericTabularInline
|
||||
class TranslationGenericTabularInlineCustom(TranslationGenericTabularInline):
|
||||
formfield_overrides = {
|
||||
models.ImageField: {'widget': AdminImageWidget},
|
||||
}
|
||||
|
||||
def image_thumb(self, obj):
|
||||
return get_image_thumb(self, obj)
|
||||
|
||||
image_thumb.short_description = _('Миниатюра')
|
||||
image_thumb.allow_tags = True
|
||||
|
||||
class Media:
|
||||
|
||||
@@ -105,6 +114,46 @@ class AdminStacked_FAQitem(TranslationGenericStackedInline):
|
||||
'screen': ('modeltranslation/css/tabbed_translation_fields.css',),
|
||||
}
|
||||
|
||||
class TranslationGenericStackedInlineCustom(TranslationGenericStackedInline):
|
||||
formfield_overrides = {
|
||||
models.ImageField: {'widget': AdminImageWidget},
|
||||
}
|
||||
|
||||
def image_thumb(self, obj):
|
||||
return get_image_thumb(self, obj)
|
||||
|
||||
image_thumb.short_description = _('Миниатюра')
|
||||
image_thumb.allow_tags = True
|
||||
|
||||
class Media:
|
||||
|
||||
js = (
|
||||
'modeltranslation/js/force_jquery.js',
|
||||
'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js',
|
||||
'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js',
|
||||
'modeltranslation/js/tabbed_translation_fields.js',
|
||||
)
|
||||
css = {
|
||||
'screen': ('modeltranslation/css/tabbed_translation_fields.css',),
|
||||
}
|
||||
|
||||
|
||||
class AdminStacked_FAQitem(TranslationGenericStackedInlineCustom):
|
||||
from GeneralApp.models import FAQitem
|
||||
model = FAQitem
|
||||
extra = 0
|
||||
fields = ['order', 'question', 'answer']
|
||||
|
||||
|
||||
|
||||
class AdminTabular_Mediaitem(TranslationGenericTabularInlineCustom):
|
||||
from GeneralApp.models import MediaItem
|
||||
model = MediaItem
|
||||
extra = 0
|
||||
fields = ['order', 'video', 'picture']
|
||||
|
||||
|
||||
|
||||
class Admin_BaseModelViewPage(Admin_BaseIconModel):
|
||||
pass
|
||||
# def get_fieldsets(self, request, obj=None):
|
||||
@@ -129,7 +178,7 @@ class Admin_BaseModelViewPage(Admin_BaseIconModel):
|
||||
# else:
|
||||
# return {}
|
||||
#
|
||||
inlines = [AdminStacked_FAQitem]
|
||||
inlines = [AdminStacked_FAQitem, AdminTabular_Mediaitem]
|
||||
|
||||
|
||||
|
||||
|
||||
2
static/css/moover.css
Normal file
178
static/css/moover/about.css
Normal file
@@ -0,0 +1,178 @@
|
||||
.about {
|
||||
margin-bottom: 168px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.about {
|
||||
margin-bottom: 188px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.about {
|
||||
margin-bottom: 138px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.about {
|
||||
margin-bottom: 110px;
|
||||
}
|
||||
}
|
||||
|
||||
.about .title {
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.about .title {
|
||||
margin-bottom: 49px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.about .title {
|
||||
margin-bottom: 39px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.about .title {
|
||||
margin-bottom: 48px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.about .title {
|
||||
margin-bottom: 37px;
|
||||
}
|
||||
}
|
||||
|
||||
.about__grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.about__grid {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.about__img {
|
||||
box-shadow: inset 18.19px 1.21px 18.19px 0 #FFFFFFCC, inset -18.19px -1.21px 18.19px 0 #4052801A, 48.5px 36.38px 36.38px 0 #6B7F9933;
|
||||
border-radius: 31px;
|
||||
margin-left: -20px;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.about__img {
|
||||
margin-top: 19px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.about__img {
|
||||
margin-left: -10px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.about__img {
|
||||
margin-left: 0;
|
||||
margin-bottom: 49px;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.about__img {
|
||||
margin-bottom: 38px;
|
||||
}
|
||||
}
|
||||
|
||||
.about__right {
|
||||
text-align: left;
|
||||
padding-top: 43px;
|
||||
padding-left: 50px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.about__right {
|
||||
padding-top: 90px;
|
||||
padding-left: 21px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.about__right {
|
||||
padding-left: 11px;
|
||||
padding-top: 19px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.about__right {
|
||||
padding: 0 8px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.about__right {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.about__right::after {
|
||||
content: '';
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.about__half {
|
||||
max-width: 50%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.about__half {
|
||||
max-width: initial;
|
||||
}
|
||||
}
|
||||
|
||||
.about__half:last-child {
|
||||
padding-left: 16px;
|
||||
max-width: 47%;
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.about__half:last-child {
|
||||
max-width: initial;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.about b {
|
||||
letter-spacing: 0.4px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.about b {
|
||||
font-weight: 700;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.about b {
|
||||
letter-spacing: 0.9px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.about p {
|
||||
margin-bottom: 39px;
|
||||
}
|
||||
}
|
||||
1
static/css/moover/animate.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.animate{padding:60px 40px 49px;opacity:0;background-color:var(--color-black2);border-radius:30px;color:white;margin-bottom:160px}@media (min-width: 1720px){.animate{padding-top:100px;padding-bottom:89px;margin-bottom:180px}}@media (max-width: 1304.98px){.animate{margin-bottom:141px}}@media (max-width: 991.98px){.animate{padding-top:40px;padding-bottom:29px;margin-bottom:121px}}@media (max-width: 479.98px){.animate{padding:30px 7px 19px}}.animate.left{transform:scale(0);opacity:0}.animate.right{opacity:0;transform:scale(0)}.animate.right .title{margin-bottom:17px}@media (min-width: 1720px){.animate.right .title{max-width:80%;margin-bottom:40px}}@media (max-width: 1304.98px){.animate.right .title{margin-bottom:25px}}@media (max-width: 991.98px){.animate.right .title{margin-bottom:31px}}@media (max-width: 479.98px){.animate.right .title{margin-bottom:20px}}@media (max-width: 991.98px){.animate.right .subtitle{margin-bottom:31px}}@media (max-width: 479.98px){.animate.right .use__btn{margin-top:-11px}}.animate__link{color:var(--color-orange);text-decoration:underline !important}.animate .title{margin-bottom:25px;max-width:87%}@media (min-width: 1720px){.animate .title{margin-bottom:40px}}@media (max-width: 1304.98px){.animate .title{max-width:99%}}@media (max-width: 991.98px){.animate .title{max-width:85%;font-size:24px;line-height:29.05px}}@media (max-width: 767.98px){.animate .title{max-width:100%;margin-bottom:14px}}.animate .subtitle{width:47%;margin:0 auto 23px}@media (min-width: 1720px){.animate .subtitle{line-height:26px;letter-spacing:0.1px;margin-bottom:40px}}@media (max-width: 1304.98px){.animate .subtitle{width:54%}}@media (max-width: 991.98px){.animate .subtitle{width:102%;margin-bottom:26px}}@media (max-width: 479.98px){.animate .use__btn{margin-top:-6px;padding-left:15px;padding-right:15px;display:flex}}
|
||||
157
static/css/moover/benefits.css
Normal file
@@ -0,0 +1,157 @@
|
||||
.benefits {
|
||||
margin-bottom: 132px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.benefits {
|
||||
margin-bottom: 147px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.benefits {
|
||||
margin-bottom: 101px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.benefits {
|
||||
margin-bottom: 93px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.benefits {
|
||||
margin-bottom: 103px;
|
||||
}
|
||||
}
|
||||
|
||||
.benefits__grid {
|
||||
text-align: left;
|
||||
display: grid;
|
||||
grid-template-columns: 1.5fr 3fr 1.5fr;
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.benefits__grid {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.benefits__grid {
|
||||
grid-template-columns: 1fr;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.benefits__item {
|
||||
min-height: 122px;
|
||||
padding-right: 7px;
|
||||
margin-bottom: 22px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.benefits__item {
|
||||
min-height: 145px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.benefits__item {
|
||||
padding-right: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.benefits__item {
|
||||
padding-right: 0;
|
||||
margin-bottom: 19px;
|
||||
min-height: 90px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.benefits__second {
|
||||
grid-column: 1 / 3;
|
||||
order: -1;
|
||||
margin-bottom: 56px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.benefits__second {
|
||||
grid-column: 1/2;
|
||||
margin-bottom: 31px;
|
||||
}
|
||||
}
|
||||
|
||||
.benefits__third {
|
||||
padding-left: 16px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.benefits__third {
|
||||
padding-left: 31px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.benefits__third {
|
||||
padding-left: 11px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.benefits__third {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.benefits .title {
|
||||
margin-bottom: 76px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.benefits .title {
|
||||
margin-bottom: 93px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.benefits .title {
|
||||
margin-bottom: 19px;
|
||||
}
|
||||
}
|
||||
|
||||
.benefits img {
|
||||
position: relative;
|
||||
top: 14px;
|
||||
right: -11px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.benefits img {
|
||||
top: -33px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.benefits img {
|
||||
top: 20px;
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.benefits h2 {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.benefits p {
|
||||
margin-bottom: 13px;
|
||||
}
|
||||
}
|
||||
194
static/css/moover/cards.css
Normal file
@@ -0,0 +1,194 @@
|
||||
.cards__list {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
}
|
||||
|
||||
.cards__item {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.cards__item {
|
||||
max-width: 270px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.cards__item {
|
||||
max-width: 251px;
|
||||
margin-right: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
.slick-active .cards__item .cards__desc, .cards__item:hover .cards__desc, .cards__item:focus .cards__desc {
|
||||
-webkit-line-clamp: initial;
|
||||
/* number of lines to show */
|
||||
line-clamp: initial;
|
||||
max-height: 17em;
|
||||
}
|
||||
|
||||
.cards__img {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.cards__img {
|
||||
width: 100%;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.cards__img {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.cards__img {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.cards__img {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.cards__img:hover {
|
||||
scale: 1.05;
|
||||
transition: scale 0.15s linear;
|
||||
}
|
||||
|
||||
.cards__desc {
|
||||
font-weight: 500;
|
||||
line-height: 22px;
|
||||
padding: 0 5px;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 7;
|
||||
/* number of lines to show */
|
||||
line-clamp: 7;
|
||||
-webkit-box-orient: vertical;
|
||||
transition: all 0.3s ease-in-out;
|
||||
max-height: 10em;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.cards__desc {
|
||||
font-size: 20px;
|
||||
line-height: 26px;
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1279.98px) {
|
||||
.cards__desc {
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.cards__desc {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.slick-active .cards__desc, .cards__desc:hover, .cards__desc:focus {
|
||||
-webkit-line-clamp: initial;
|
||||
/* number of lines to show */
|
||||
line-clamp: initial;
|
||||
max-height: 999em;
|
||||
}
|
||||
|
||||
.cards__desc a {
|
||||
color: var(--color-orange);
|
||||
}
|
||||
|
||||
.cards__arrow {
|
||||
width: 62px;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
right: -30px;
|
||||
top: -21px;
|
||||
background-image: url("/static/img/svg/Arrow23.svg");
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.cards__arrow {
|
||||
right: -45px;
|
||||
top: -29px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.cards__arrow {
|
||||
top: -8%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.cards__arrow {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.cards .slick-list {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.cards .slick-list {
|
||||
margin-bottom: 1px;
|
||||
padding-left: 58px;
|
||||
}
|
||||
}
|
||||
|
||||
.cards .slick-dots {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
padding: 1rem 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.cards .slick-dots li {
|
||||
margin: 0 0.25rem;
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.cards .slick-dots li {
|
||||
margin: 0 0.31rem;
|
||||
}
|
||||
}
|
||||
|
||||
.cards .slick-dots button {
|
||||
display: block;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
padding: 0;
|
||||
border: none;
|
||||
border-radius: 100%;
|
||||
background-color: #D9D9D9;
|
||||
text-indent: -9999px;
|
||||
}
|
||||
|
||||
.cards .slick-dots li.slick-active button {
|
||||
background-color: var(--color-orange);
|
||||
}
|
||||
|
||||
.cards--cstmr .cards__desc {
|
||||
padding: 0 50px;
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.cards--cstmr .cards__desc {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
}
|
||||
1
static/css/moover/chatterbox.css
Normal file
@@ -0,0 +1 @@
|
||||
.chatterbox{margin-bottom:160px}@media (min-width: 1720px){.chatterbox{margin-bottom:180px}}@media (max-width: 1304.98px){.chatterbox{margin-bottom:142px}}@media (max-width: 991.98px){.chatterbox{margin-left:-50vw;margin-right:-50vw;margin-bottom:122px}}@media (max-width: 767.98px){.chatterbox{max-width:100vw;margin:0 auto 121px;position:relative}}.chatterbox__slider{max-width:1200px;margin:0 auto}@media (min-width: 1720px){.chatterbox__slider{max-width:1640px}}@media (max-width: 1304.98px){.chatterbox__slider{max-width:1100px}}@media (max-width: 991.98px){.chatterbox__slider{max-width:720px}}@media (max-width: 767.98px){.chatterbox__slider{max-width:830px;width:830px;left:50%;transform:translateX(-50%)}}@media (max-width: 479.98px){.chatterbox__slider{max-width:initial}}.chatterbox__slide{width:335px;height:615px;background:url("/static/img/webp/phone-border.webp") center no-repeat;transition:scale 0.2s ease-in-out;margin:auto;position:relative}@media (min-width: 1720px){.chatterbox__slide{width:456px;height:836px;background-size:456px 836px}}@media (max-width: 1304.98px){.chatterbox__slide{width:308px;height:565px;background-size:308px 565px}}@media (max-width: 991.98px){.chatterbox__slide{width:206px;height:377px;background-size:206px 377px}}@media (max-width: 767.98px){.chatterbox__slide{width:234px;height:429px;background-size:234px 429px}}.chatterbox__slide.loaded video{opacity:1}.chatterbox__slide.loaded img{z-index:-10}.chatterbox__slide video{max-width:100%;opacity:0;transition:opacity 0.2s ease-in-out;pointer-events:none;position:relative}@media (min-width: 1720px){.chatterbox__slide video{top:-2px}}@media (max-width: 1304.98px){.chatterbox__slide video{top:10px}}@media (max-width: 991.98px){.chatterbox__slide video{top:-4px}}@media (max-width: 767.98px){.chatterbox__slide video{top:22px}}.chatterbox__slide img{position:absolute;scale:1.32;top:11%}.chatterbox__wrap{position:absolute;left:8px;right:8px;top:8px;bottom:8px;border-radius:25px;background-color:grey;overflow:hidden}@media (min-width: 1720px){.chatterbox__wrap{border-radius:50px}}.chatterbox__vbtn{position:absolute;left:0;right:0;top:0;bottom:0;opacity:0;transition:opacity 0.2s ease-in-out;pointer-events:none}.loaded .chatterbox__vbtn{display:none}.chatterbox__vbtn::before{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border:0;border-radius:50%;transition:opacity 100ms linear}@media (min-width: 1720px){.chatterbox__vbtn::before{width:109px;height:109px}}@media (max-width: 991.98px){.chatterbox__vbtn::before{width:48px;height:48px}}@media (max-width: 767.98px){.chatterbox__vbtn::before{width:55px;height:55px}}.chatterbox__vbtn::before,.chatterbox__vbtn::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);cursor:pointer}.chatterbox__vbtn::after{border-color:transparent transparent transparent #ffffff;border-style:solid;border-width:15px 0 15px 25px;display:inline-block;margin-left:2px}@media (min-width: 1720px){.chatterbox__vbtn::after{border-width:23px 0 23px 35px;margin-left:4px}}@media (max-width: 991.98px){.chatterbox__vbtn::after{border-width:10px 0 10px 14px}}.chatterbox__vbox{position:relative;display:flex;justify-content:center;align-items:center;height:600px}@media (min-width: 1720px){.chatterbox__vbox{height:827px}}@media (max-width: 1304.98px){.chatterbox__vbox{height:530px}}@media (max-width: 991.98px){.chatterbox__vbox{height:370px}}.chatterbox__mbtns{position:absolute;top:58%;transform:translateY(-50%);left:0;right:0}@media (max-width: 479.98px){.chatterbox__mbtns{top:61.6%}}.chatterbox .title{margin-bottom:60px}@media (max-width: 1304.98px){.chatterbox .title{margin-bottom:39px}}@media (max-width: 767.98px){.chatterbox .title{margin-bottom:50px}}.chatterbox .slick-next{right:-40px}@media (max-width: 1304.98px){.chatterbox .slick-next{right:-10px}}@media (max-width: 991.98px){.chatterbox .slick-next{width:40px;height:40px;background-size:32%;right:5%}}@media (max-width: 479.98px){.chatterbox .slick-next{right:0}}.chatterbox .slick-prev{left:-40px}@media (max-width: 1304.98px){.chatterbox .slick-prev{left:-10px}}@media (max-width: 991.98px){.chatterbox .slick-prev{width:40px;height:40px;background-size:32%;left:5%}}@media (max-width: 479.98px){.chatterbox .slick-prev{left:0}}@media (max-width: 991.98px){.chatterbox .slick-list{overflow:visible}}.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.72}@media (max-width: 1304.98px){.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.69}}@media (max-width: 991.98px){.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.8}}@media (max-width: 479.98px){.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.85}}.slick-center .chatterbox__vbtn{opacity:1;pointer-events:initial;z-index:1}.slick-center .chatterbox__vbox video{pointer-events:initial;cursor:pointer}
|
||||
347
static/css/moover/diff.css
Normal file
@@ -0,0 +1,347 @@
|
||||
.diff {
|
||||
margin-bottom: 179px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.diff {
|
||||
margin-bottom: 172px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.diff {
|
||||
margin-bottom: 140px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.diff {
|
||||
margin-bottom: 125px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.diff {
|
||||
margin-bottom: 139px;
|
||||
}
|
||||
}
|
||||
|
||||
.diff .title {
|
||||
width: 60%;
|
||||
margin-bottom: 65px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.diff .title {
|
||||
width: 49%;
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.diff .title {
|
||||
width: 73%;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.diff .title {
|
||||
width: 90%;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.diff .title {
|
||||
width: 100%;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
.diff__grid {
|
||||
display: flex;
|
||||
position: relative;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.diff__grid::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
height: 96%;
|
||||
width: 5px;
|
||||
border-radius: 5px;
|
||||
background-color: #EDEDED;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.diff__grid::before {
|
||||
height: 90%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.diff__grid::before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.diff__grid {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.diff__coll {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.diff__coll {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.diff__coll.left {
|
||||
margin-right: 29px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.diff__coll.left {
|
||||
margin-right: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.diff__coll.left {
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.diff__coll.left {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.diff__coll.left .diff__coll-title {
|
||||
padding-left: 39px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.diff__coll.left .diff__coll-title {
|
||||
padding-left: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.diff__coll.left .diff__coll-title {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.diff__coll.left .diff__coll-title {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.diff__coll.right {
|
||||
margin-left: 29px;
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.diff__coll.right {
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.diff__coll.right {
|
||||
margin-left: 0;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.diff__coll.right .diff__coll-title {
|
||||
padding-right: 39px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.diff__coll.right .diff__coll-title {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.diff__coll.right .diff__coll-title {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.diff__coll.right .diff__coll-title {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.diff__coll-title {
|
||||
margin-bottom: 38px;
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.diff__coll-title {
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.diff__coll-title {
|
||||
margin-bottom: 19px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.diff__coll-title {
|
||||
margin-bottom: 29px;
|
||||
}
|
||||
}
|
||||
|
||||
.diff__item {
|
||||
position: relative;
|
||||
text-align: left;
|
||||
padding-left: 10px;
|
||||
padding-top: 11px;
|
||||
padding-bottom: 11px;
|
||||
display: flex;
|
||||
gap: 11px;
|
||||
align-items: center;
|
||||
background-color: #FFFFFF;
|
||||
border-radius: 15px;
|
||||
font-weight: 500;
|
||||
font-size: 20px;
|
||||
line-height: 28px;
|
||||
margin-bottom: 35px;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.diff__item {
|
||||
padding: 20px;
|
||||
gap: 20px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.diff__item {
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.diff__item {
|
||||
font-size: 18px;
|
||||
margin-bottom: 25px;
|
||||
padding-bottom: 9px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.diff__item {
|
||||
font-size: 16px;
|
||||
line-height: 19.36px;
|
||||
padding-right: 15px;
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
.diff__item:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.diff__item:hover .diff__status::before {
|
||||
scale: 1.2;
|
||||
}
|
||||
|
||||
.diff__status {
|
||||
position: relative;
|
||||
height: 48px;
|
||||
width: 48px;
|
||||
border-radius: 5px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.diff__status {
|
||||
border-radius: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.diff__status {
|
||||
border-radius: 13px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.diff__status {
|
||||
border-radius: 11px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.diff__status {
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
}
|
||||
}
|
||||
|
||||
.diff__status::before {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
transform-origin: 0% 15%;
|
||||
}
|
||||
|
||||
.diff__status::before {
|
||||
content: '';
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
}
|
||||
|
||||
.diff__item--done .diff__status {
|
||||
background-color: #CCF9D9;
|
||||
}
|
||||
|
||||
.diff__item--done .diff__status::before {
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAyNiAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI0IDJMOS4zMzMzMyAyNEwyIDEzLjAwMDUiIHN0cm9rZT0iIzQ1QzIyNiIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==);
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.diff__item--done .diff__status::before {
|
||||
scale: 0.7;
|
||||
}
|
||||
}
|
||||
|
||||
.diff__item--error .diff__status {
|
||||
background-color: #F9CCCC;
|
||||
}
|
||||
|
||||
.diff__item--error .diff__status::before {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI4LjEyNSA3Ljg3NUw3Ljg3NSAyOC4xMjUiIHN0cm9rZT0iI0ZGMDAwMCIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTI4LjEyNSAyOC4xMjVMNy44NzUgNy44NzUiIHN0cm9rZT0iI0ZGMDAwMCIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==);
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.diff__item--error .diff__status::before {
|
||||
scale: 0.7;
|
||||
}
|
||||
}
|
||||
418
static/css/moover/easy.css
Normal file
@@ -0,0 +1,418 @@
|
||||
.easy {
|
||||
margin-bottom: 162px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.easy {
|
||||
margin-bottom: 180px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.easy {
|
||||
margin-bottom: 140px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.easy {
|
||||
margin-bottom: 121px;
|
||||
}
|
||||
}
|
||||
|
||||
.easy .title {
|
||||
max-width: 55%;
|
||||
margin-bottom: 21px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.easy .title {
|
||||
max-width: 45%;
|
||||
margin-bottom: 23px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.easy .title {
|
||||
max-width: 75%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.easy .title {
|
||||
max-width: 95%;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
.easy .subtitle {
|
||||
margin-bottom: 41px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.easy .subtitle {
|
||||
margin-bottom: 59px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.easy .subtitle {
|
||||
max-width: 90%;
|
||||
margin: 0 auto 23px;
|
||||
}
|
||||
}
|
||||
|
||||
.easy__grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-rows: repeat(2, minmax(186px, auto));
|
||||
grid-template-areas: 'a b' 'a c';
|
||||
grid-column-gap: 20px;
|
||||
grid-row-gap: 80px;
|
||||
margin-bottom: 46px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.easy__grid {
|
||||
grid-column-gap: 147px;
|
||||
grid-template-rows: repeat(2, minmax(245px, auto));
|
||||
grid-row-gap: 136px;
|
||||
margin-bottom: 63px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.easy__grid {
|
||||
grid-column-gap: 69px;
|
||||
grid-template-rows: repeat(2, minmax(172px, auto));
|
||||
margin-bottom: 41px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.easy__grid {
|
||||
display: block;
|
||||
margin-bottom: 37px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.easy__grid {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
.easy__item {
|
||||
border-radius: 30px;
|
||||
background-color: var(--color-grey);
|
||||
/*background-color: #a72525;*/
|
||||
text-align: left;
|
||||
padding: 21px;
|
||||
box-shadow: var(--box-shadow-primary);
|
||||
}
|
||||
|
||||
.easy__item--fir {
|
||||
grid-area: a;
|
||||
margin-right: 60px;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.easy__item--fir {
|
||||
margin-right: -10px;
|
||||
padding-top: 31px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.easy__item--fir {
|
||||
margin-right: 13px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.easy__item--fir {
|
||||
padding-top: 17px;
|
||||
margin-right: 0;
|
||||
margin-bottom: 49px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.easy__item--fir {
|
||||
margin-bottom: 42px;
|
||||
}
|
||||
}
|
||||
|
||||
.easy__item--fir p {
|
||||
width: 93%;
|
||||
margin-bottom: 29px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.easy__item--fir p {
|
||||
width: 89%;
|
||||
margin-bottom: 53px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.easy__item--fir p {
|
||||
max-width: 78%;
|
||||
}
|
||||
}
|
||||
|
||||
.easy__item--sec {
|
||||
grid-area: b;
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 0;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.easy__item--sec {
|
||||
padding-left: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.easy__item--sec {
|
||||
padding-top: 35px;
|
||||
padding-bottom: 37px;
|
||||
margin-bottom: 46px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.easy__item--sec {
|
||||
display: block;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 49px;
|
||||
}
|
||||
}
|
||||
|
||||
.easy__item--sec img {
|
||||
margin-bottom: -10px;
|
||||
margin-right: -5px;
|
||||
max-width: 50.1%;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.easy__item--sec img {
|
||||
max-width: 53%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.easy__item--sec img {
|
||||
max-width: 42%;
|
||||
margin-bottom: -4px;
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.easy__item--sec img {
|
||||
margin-right: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.easy__item--sec img {
|
||||
max-width: 104%;
|
||||
position: relative;
|
||||
left: -6px;
|
||||
top: -4px;
|
||||
}
|
||||
}
|
||||
|
||||
.easy__item--sec p {
|
||||
margin-bottom: 0;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.easy__item--sec p {
|
||||
margin-bottom: 22px;
|
||||
}
|
||||
}
|
||||
|
||||
.easy__item--thr {
|
||||
grid-area: c;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 0;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.easy__item--thr {
|
||||
padding-left: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.easy__item--thr {
|
||||
padding-top: 42px;
|
||||
padding-bottom: 46px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.easy__item--thr {
|
||||
display: block;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.easy__item--thr .img {
|
||||
margin-bottom: -10px;
|
||||
margin-right: 24px;
|
||||
max-width: 80%;
|
||||
}
|
||||
|
||||
@media (max-width: 1279.98px) {
|
||||
.easy__item--thr .img {
|
||||
max-width: 35%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.easy__item--thr .img {
|
||||
margin-right: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.easy__item--thr .img {
|
||||
margin-right: 0;
|
||||
max-width: 34%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.easy__item--thr .img img {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
.easy__item--thr p {
|
||||
max-width: 50%;
|
||||
margin-bottom: 0;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.easy__item--thr p {
|
||||
max-width: 60%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.easy__item--thr p {
|
||||
margin-bottom: 22px;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.easy__arrow {
|
||||
width: 68px;
|
||||
height: 18px;
|
||||
background-image: url("/static/img/svg/Arrow08.svg");
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.easy__arrow {
|
||||
scale: 1.4;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.easy__arrow {
|
||||
scale: 0.8;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.easy__arrow {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.easy__arrow--fir {
|
||||
top: 46%;
|
||||
right: 101%;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.easy__arrow--fir {
|
||||
right: 105%;
|
||||
top: 34%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.easy__arrow--fir {
|
||||
top: 48%;
|
||||
}
|
||||
}
|
||||
|
||||
.easy__arrow--sec {
|
||||
top: 117%;
|
||||
left: 30%;
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.easy__arrow--sec {
|
||||
left: 45%;
|
||||
top: 124%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.easy__arrow--sec {
|
||||
left: 38%;
|
||||
}
|
||||
}
|
||||
|
||||
.easy__btn {
|
||||
margin-top: -21px;
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.easy__btn {
|
||||
margin-top: -20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.easy__btn {
|
||||
margin-top: -19px;
|
||||
padding-left: 54px;
|
||||
padding-right: 54px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.easy__btn {
|
||||
padding-left: 50px;
|
||||
padding-right: 50px;
|
||||
margin-top: -8px;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
1
static/css/moover/header.css
Normal file
@@ -0,0 +1 @@
|
||||
.header{margin-top:0;position:fixed;display:block;left:0;top:0;width:100vw;padding:15px 5px;transition:all 0.1s ease-in-out;background-color:white}@media (max-width: 991.98px){.header{padding-top:7px;padding-bottom:7px}}.header.scrolled{padding-top:7px;padding-bottom:7px;box-shadow:var(--box-shadow-primary);border-bottom:1px solid var(--color-grey)}.header__grid,.header__list{display:flex;align-items:center;justify-content:space-between}.header__logo{width:48px;height:48px;position:relative;left:5px}@media (max-width: 1304.98px){.header__logo{left:6px}}@media (max-width: 991.98px){.header__logo{left:0}}@media (max-width: 767.98px){.header__logo{left:-3px}}.header__nav{flex-grow:1;max-width:41%;margin-left:auto}@media (min-width: 1720px){.header__nav{max-width:34%}}@media (max-width: 1304.98px){.header__nav{max-width:46.5%}}.header__link{color:var(--color-black2);text-decoration:none}.header__btn{padding:8px 0 6px;font-size:16px;margin-left:61px;margin-right:-3px}@media (min-width: 1720px){.header__btn{margin-left:81px}}@media (max-width: 1304.98px){.header__btn{margin-right:0}}@media (max-width: 991.98px){.header__btn{display:none}}.header .dropdown{left:-4px}@media (max-width: 767.98px){.header .dropdown{left:-8px}}.header .dropdown-content{right:0;height:initial}@media (max-width: 575px){.header .dropdown-content{right:0;left:initial}}
|
||||
189
static/css/moover/presentation.css
Normal file
@@ -0,0 +1,189 @@
|
||||
.presentation {
|
||||
margin: 12px -65px 140px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.presentation {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
margin-bottom: 160px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.presentation {
|
||||
margin-bottom: 118px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.presentation {
|
||||
margin-bottom: 105px;
|
||||
}
|
||||
}
|
||||
|
||||
.presentation__top {
|
||||
position: relative;
|
||||
min-height: 270px;
|
||||
margin: 0 auto 116px;
|
||||
padding: 29px 0 40px;
|
||||
background-image: url(/static/img/png/Box9.png), url(/static/img/png/Box10.png), url(/static/img/png/Box11.png), url(/static/img/png/Box12.png);
|
||||
background-position: top -4px left 46px, top -30px right -14px, bottom 73px left 278px, bottom 71px right 276px;
|
||||
background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
|
||||
background-size: 17.5%, 21.8%, 8.5%, 8.8%;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.presentation__top {
|
||||
background-size: 18.5%, 22%, 9%, 10.1%;
|
||||
background-position: top -47px left 58px, top -31px right 20px, bottom 8px left 347px, bottom -5px right 352px;
|
||||
padding-top: 95px;
|
||||
margin-bottom: 176px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.presentation__top {
|
||||
background-size: 16%, 20%, 9.5%, 10.1%;
|
||||
background-position: top -2.8% left 6.5%, top -19% right 3.5%, bottom 32% left 23%, bottom 29% right 22.6%;
|
||||
margin-bottom: 96px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.presentation__top {
|
||||
background-size: 14.5%, 17%, 8.3%, 9.1%;
|
||||
background-position: top 9% left 7%, top 5% right 6%, bottom 51% left 14.8%, bottom 47.5% right 13.8%;
|
||||
padding-top: 31px;
|
||||
margin-bottom: 76px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.presentation__top {
|
||||
margin-bottom: 77px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.presentation__bottom .subtitle {
|
||||
max-width: 40%;
|
||||
margin: 0 auto 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.presentation__bottom .subtitle {
|
||||
max-width: 65%;
|
||||
margin-bottom: 21px;
|
||||
}
|
||||
}
|
||||
|
||||
.presentation__title {
|
||||
margin-bottom: 23px;
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.presentation__title {
|
||||
max-width: 75%;
|
||||
margin: 0 auto 19px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.presentation__title {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.presentation__subtitle {
|
||||
margin-bottom: 41px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.presentation__subtitle {
|
||||
max-width: 55%;
|
||||
margin: 0 auto 40px;
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.presentation__subtitle {
|
||||
margin-bottom: 30px;
|
||||
max-width: 77%;
|
||||
}
|
||||
}
|
||||
|
||||
.presentation__btn {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.presentation__btn {
|
||||
padding-left: 82px;
|
||||
padding-right: 82px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.presentation__btn {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
.presentation__next {
|
||||
font-weight: 500;
|
||||
line-height: 22px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.presentation__arrows {
|
||||
padding-top: 2px;
|
||||
animation: jump 2s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.presentation__cards {
|
||||
max-width: 1300px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.presentation__cards {
|
||||
max-width: initial;
|
||||
margin-left: -10px;
|
||||
margin-right: -10px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.presentation__cards {
|
||||
max-width: 1140px;
|
||||
}
|
||||
}
|
||||
|
||||
.presentation__bottom .presentation__title {
|
||||
margin-bottom: 13px;
|
||||
}
|
||||
|
||||
@keyframes jump {
|
||||
0% {
|
||||
transform: translateY(0px);
|
||||
}
|
||||
50% {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
60% {
|
||||
transform: translateY(20px);
|
||||
}
|
||||
70% {
|
||||
transform: translateY(0px);
|
||||
}
|
||||
80% {
|
||||
transform: translateY(20px);
|
||||
}
|
||||
100% {
|
||||
transform: translateY(0px);
|
||||
}
|
||||
}
|
||||
2
static/css/moover/root.css
Normal file
@@ -0,0 +1,2 @@
|
||||
.container{margin:0 auto;width:1280px;position:relative}@media (min-width: 1720px){.container{width:1720px}}@media (max-width: 1304.98px){.container{width:1120px;max-width:88vw}}@media (max-width: 991.98px){.container{width:640px;max-width:100vw}}@media (max-width: 767.98px){.container{margin:0 16px;width:auto}}:root{--color-primary: #FF613A;--color-white: #FFFFFF;--color-black: #000000;--color-black2: #272424;--color-grey: #F1F1F1;--color-grey2: #7A7979;--color-orange: #FF613A;--box-shadow-primary: -1px 4px 10px 0 rgba(198, 199, 203, 0.20),
|
||||
0 -1px 10px 0 rgba(198, 199, 203, 0.20);text-align:center;color:var(--color-black2)}html,body{max-width:100vw;max-height:initial}body{height:100%;position:relative}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-weight:700}h1,.h1{font-size:44px;line-height:52px}@media (min-width: 1720px){h1,.h1{font-size:48px;line-height:52px}}h2,.h2{font-size:24px;line-height:36px;margin-bottom:10px}@media (min-width: 1720px){h2,.h2{font-size:28px;margin-bottom:20px}}h3,.h3{font-size:20px;line-height:28px;margin-bottom:12px}@media (max-width: 1304.98px){h3,.h3{margin-bottom:13px}}h4,.h4{font-size:18px;line-height:26px;margin-bottom:20px}p{line-height:22px;margin-bottom:20px}@media (min-width: 1720px){p{font-size:20px;line-height:26px}}@media (max-width: 991.98px){p{margin-bottom:18px}}@media (max-width: 479.98px){p{margin-bottom:14px}}b{font-weight:500}@media (max-width: 991.98px){b{font-size:16px;line-height:22px}}.btn{display:inline-flex;text-decoration:none;color:black;line-height:22px;border-radius:10px;padding:20px 76px 18px;justify-content:center;align-items:center;margin:0 3px;letter-spacing:0.2px;font-size:18px}.btn--primary{background:var(--color-primary);color:var(--color-white)}.title{font-size:44px;font-weight:700;line-height:52px;margin-bottom:13px;margin-left:auto;margin-right:auto}@media (min-width: 1720px){.title{font-size:48px;margin-bottom:22px}}@media (max-width: 1304.98px){.title{margin-bottom:20px}}@media (max-width: 991.98px){.title{font-size:32px;line-height:38.73px}}@media (max-width: 767.98px){.title{margin-bottom:14px}}.subtitle{margin-bottom:81px;line-height:22px}@media (min-width: 1720px){.subtitle{font-size:20px;margin-bottom:105px}}@media (max-width: 1304.98px){.subtitle{margin-bottom:71px}}.hide{display:none}.hide__xxl{display:inline-flex}@media (min-width: 1720px){.hide__xxl{display:none}}@media (max-width: 991.98px){.hide__md{display:none}}@media (max-width: 479.98px){.hide__xs{display:none}}.show__xxl{display:none}@media (min-width: 1720px){.show__xxl{display:block}}.show__md{display:none}@media (max-width: 991.98px){.show__md{display:initial}}@media (min-width: 480px){.show__xs{display:none}}@media (min-width: 1440px){.br--xxl{display:none}}@media (max-width: 991.98px){.br--md{display:none}}@media (max-width: 767.98px){.br--sm{display:none}}.is-container.wrapper_main{overflow-x:hidden}.is-container.wrapper_main>.container{padding-top:129px}@media (max-width: 1304.98px){.is-container.wrapper_main>.container{padding-top:126px}}@media (max-width: 991.98px){.is-container.wrapper_main>.container{padding-top:85px}}@media (max-width: 767.98px){.is-container.wrapper_main>.container{padding-top:57px}}@media (min-width: 1440px){.is-container.wrapper_main{max-width:initial}}.is-container.wrapper_main>.container{position:relative;left:15px}@media (min-width: 1720px){.is-container.wrapper_main>.container{left:17px}}@media (max-width: 767.98px){.is-container.wrapper_main>.container{left:0}}
|
||||
1
static/css/moover/sore.css
Normal file
@@ -0,0 +1 @@
|
||||
.sore{margin-bottom:160px;margin-top:1px}@media (min-width: 1720px){.sore{margin-bottom:178px}}@media (max-width: 1304.98px){.sore{margin-bottom:140px}}@media (max-width: 991.98px){.sore{margin-bottom:60px}}@media (max-width: 479.98px){.sore{margin-bottom:40px}}.sore__img{margin:0 auto 13px;position:relative;left:-17px;top:-13px}@media (min-width: 1720px){.sore__img{margin-bottom:40px;top:-5px;left:-21px}}@media (max-width: 1304.98px){.sore__img{left:2px;top:-22px;margin-bottom:4px}}@media (max-width: 991.98px){.sore__img{top:-8px;left:-15px;margin-bottom:18px}}@media (max-width: 479.98px){.sore__img{max-width:108.5%;top:-26px;left:-18px;margin-bottom:-9px}}.sore .title{margin-bottom:40px}@media (min-width: 1720px){.sore .title{margin-bottom:61px}}@media (max-width: 991.98px){.sore .title{margin-bottom:20px}}@media (max-width: 479.98px){.sore .title{margin-bottom:29px}}.sore .subtitle{max-width:62%;margin:0 auto 10px}@media (min-width: 1720px){.sore .subtitle{line-height:26px;max-width:60%}}@media (max-width: 1304.98px){.sore .subtitle{max-width:65%}}@media (max-width: 991.98px){.sore .subtitle{max-width:85%}}@media (max-width: 479.98px){.sore .subtitle{max-width:99%}}.sore .h3{max-width:47%;margin:0 auto 19px}@media (min-width: 1720px){.sore .h3{max-width:38%}}@media (max-width: 1304.98px){.sore .h3{max-width:50%}}@media (max-width: 991.98px){.sore .h3{max-width:65%;margin-bottom:21px}}@media (max-width: 479.98px){.sore .h3{max-width:100%;margin-bottom:17px}}@media (max-width: 767.98px){.sore__btn{padding-left:50px;padding-right:50px}}@media (max-width: 479.98px){.sore__btn{box-sizing:border-box;padding:8px 15px;min-height:60px;display:flex}}
|
||||
1
static/css/moover/use.css
Normal file
@@ -0,0 +1 @@
|
||||
.use{margin-bottom:123px}@media (min-width: 1720px){.use{margin-bottom:184px}}@media (max-width: 1304.98px){.use{margin-bottom:142px}}@media (max-width: 991.98px){.use{margin-bottom:121px}}.use__img{width:67.5%;margin-left:16px;margin-bottom:31px}@media (min-width: 1720px){.use__img{width:50.2%;margin-left:15px;margin-bottom:46px}}@media (max-width: 1304.98px){.use__img{width:77%;margin-left:10px;margin-bottom:34px}}@media (max-width: 991.98px){.use__img{margin-left:0;width:100%;margin-bottom:40px}}@media (max-width: 767.98px){.use__img{margin-bottom:30px}}.use__btn{margin-bottom:11px;text-align:center}@media (max-width: 767.98px){.use__btn{max-width:100%;padding-left:50px;padding-right:50px}}.use__link{font-size:18px;font-weight:600;line-height:26px;color:var(--color-grey2)}.use .title{max-width:80%;margin-bottom:49px}@media (min-width: 1720px){.use .title{max-width:40%}}@media (max-width: 991.98px){.use .title{margin-bottom:40px}}@media (max-width: 767.98px){.use .title{max-width:100%;margin-bottom:29px}}.use--lett{margin-bottom:120px}@media (min-width: 1720px){.use--lett{margin-bottom:126px}}@media (max-width: 1304.98px){.use--lett{margin-bottom:106px}}@media (max-width: 991.98px){.use--lett{margin-bottom:79px}}@media (max-width: 767.98px){.use--lett{margin-bottom:81px}}.use--lett .title{margin-bottom:51px}@media (max-width: 1304.98px){.use--lett .title{margin-bottom:39px}}@media (max-width: 767.98px){.use--lett .title{margin-bottom:10px}}.use--lett .use__img{margin-left:-5px;margin-right:-5px;max-width:110%;width:1290px}@media (min-width: 1720px){.use--lett .use__img{width:initial}}@media (max-width: 1304.98px){.use--lett .use__img{margin-left:0;margin-right:0;max-width:100%;width:1120px}}@media (max-width: 767.98px){.use--lett .use__img{max-width:103%;margin-left:-5px;margin-top:-6px}}@media (max-width: 479.98px){.use--lett .use__img{margin-bottom:3px}}@media (max-width: 991.98px){.use .h3{max-width:75%;margin:0 auto 22px}}@media (max-width: 767.98px){.use .h3{max-width:100%;margin-bottom:16px}}
|
||||
189
static/css/moover/uses.css
Normal file
@@ -0,0 +1,189 @@
|
||||
.uses {
|
||||
margin-bottom: 120px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.uses {
|
||||
margin-bottom: 136px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.uses {
|
||||
margin-bottom: 125px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.uses {
|
||||
margin-bottom: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.uses {
|
||||
margin-bottom: 199px;
|
||||
}
|
||||
}
|
||||
|
||||
.uses__grid {
|
||||
text-align: left;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
/* max-width: 101.5%; */
|
||||
/* width: 101.5%; */
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.uses__grid {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
column-gap: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.uses__grid {
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.uses__item {
|
||||
min-height: 50px;
|
||||
margin-bottom: 19px;
|
||||
padding: 0 50px 0 2px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.uses__item {
|
||||
margin-bottom: 22px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.uses__item {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.uses__item p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.uses__icon {
|
||||
margin-bottom: 11px;
|
||||
}
|
||||
|
||||
@media (min-width: 1720px) {
|
||||
.uses__icon {
|
||||
width: 147px;
|
||||
height: 147px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.uses .title {
|
||||
max-width: 50%;
|
||||
margin: 0 auto 60px;
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.uses .title {
|
||||
max-width: 70%;
|
||||
margin-bottom: 39px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.uses .title {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
.uses__title {
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
line-height: 36px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.uses--cstmr .uses__item {
|
||||
text-align: center;
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.uses--cstmr .uses__item {
|
||||
margin-bottom: 42px;
|
||||
min-height: 255px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.uses--cstmr .uses__item {
|
||||
margin-bottom: 25px;
|
||||
min-height: 194px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.uses--cstmr .uses__item p {
|
||||
max-width: 90%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.uses--cstmr .uses__item p {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.uses--cstmr .uses__icon {
|
||||
width: 118px;
|
||||
height: 118px;
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.uses--cstmr .uses__icon {
|
||||
width: 142px;
|
||||
height: 142px;
|
||||
margin-bottom: 23px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.uses--cstmr .uses__icon {
|
||||
width: 117px;
|
||||
height: 117px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.uses--cstmr .uses__grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1304.98px) {
|
||||
.uses--cstmr .title {
|
||||
margin-bottom: 61px;
|
||||
max-width: 80%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.uses--cstmr .title {
|
||||
margin-bottom: 44px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 479.98px) {
|
||||
.uses--cstmr .title {
|
||||
max-width: 90%;
|
||||
margin-bottom: 31px;
|
||||
}
|
||||
}
|
||||
204
static/css/slick-theme.css
Normal file
@@ -0,0 +1,204 @@
|
||||
@charset 'UTF-8';
|
||||
/* Slider */
|
||||
.slick-loading .slick-list
|
||||
{
|
||||
background: #fff url('./ajax-loader.gif') center center no-repeat;
|
||||
}
|
||||
|
||||
/* Icons */
|
||||
@font-face
|
||||
{
|
||||
font-family: 'slick';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
|
||||
src: url('./fonts/slick.eot');
|
||||
src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg');
|
||||
}
|
||||
/* Arrows */
|
||||
.slick-prev,
|
||||
.slick-next
|
||||
{
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
|
||||
display: block;
|
||||
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
padding: 0;
|
||||
-webkit-transform: translate(0, -50%);
|
||||
-ms-transform: translate(0, -50%);
|
||||
transform: translate(0, -50%);
|
||||
|
||||
cursor: pointer;
|
||||
|
||||
color: transparent;
|
||||
border: none;
|
||||
outline: none;
|
||||
background: transparent;
|
||||
}
|
||||
.slick-prev:hover,
|
||||
.slick-prev:focus,
|
||||
.slick-next:hover,
|
||||
.slick-next:focus
|
||||
{
|
||||
color: transparent;
|
||||
outline: none;
|
||||
background: transparent;
|
||||
}
|
||||
.slick-prev:hover:before,
|
||||
.slick-prev:focus:before,
|
||||
.slick-next:hover:before,
|
||||
.slick-next:focus:before
|
||||
{
|
||||
opacity: 1;
|
||||
}
|
||||
.slick-prev.slick-disabled:before,
|
||||
.slick-next.slick-disabled:before
|
||||
{
|
||||
opacity: .25;
|
||||
}
|
||||
|
||||
.slick-prev:before,
|
||||
.slick-next:before
|
||||
{
|
||||
font-family: 'slick';
|
||||
font-size: 20px;
|
||||
line-height: 1;
|
||||
|
||||
opacity: .75;
|
||||
color: white;
|
||||
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.slick-prev
|
||||
{
|
||||
left: -25px;
|
||||
}
|
||||
[dir='rtl'] .slick-prev
|
||||
{
|
||||
right: -25px;
|
||||
left: auto;
|
||||
}
|
||||
.slick-prev:before
|
||||
{
|
||||
content: '←';
|
||||
}
|
||||
[dir='rtl'] .slick-prev:before
|
||||
{
|
||||
content: '→';
|
||||
}
|
||||
|
||||
.slick-next
|
||||
{
|
||||
right: -25px;
|
||||
}
|
||||
[dir='rtl'] .slick-next
|
||||
{
|
||||
right: auto;
|
||||
left: -25px;
|
||||
}
|
||||
.slick-next:before
|
||||
{
|
||||
content: '→';
|
||||
}
|
||||
[dir='rtl'] .slick-next:before
|
||||
{
|
||||
content: '←';
|
||||
}
|
||||
|
||||
/* Dots */
|
||||
.slick-dotted.slick-slider
|
||||
{
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.slick-dots
|
||||
{
|
||||
position: absolute;
|
||||
bottom: -25px;
|
||||
|
||||
display: block;
|
||||
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
|
||||
list-style: none;
|
||||
|
||||
text-align: center;
|
||||
}
|
||||
.slick-dots li
|
||||
{
|
||||
position: relative;
|
||||
|
||||
display: inline-block;
|
||||
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin: 0 5px;
|
||||
padding: 0;
|
||||
|
||||
cursor: pointer;
|
||||
}
|
||||
.slick-dots li button
|
||||
{
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
|
||||
display: block;
|
||||
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
padding: 5px;
|
||||
|
||||
cursor: pointer;
|
||||
|
||||
color: transparent;
|
||||
border: 0;
|
||||
outline: none;
|
||||
background: transparent;
|
||||
}
|
||||
.slick-dots li button:hover,
|
||||
.slick-dots li button:focus
|
||||
{
|
||||
outline: none;
|
||||
}
|
||||
.slick-dots li button:hover:before,
|
||||
.slick-dots li button:focus:before
|
||||
{
|
||||
opacity: 1;
|
||||
}
|
||||
.slick-dots li button:before
|
||||
{
|
||||
font-family: 'slick';
|
||||
font-size: 6px;
|
||||
line-height: 20px;
|
||||
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
|
||||
content: '•';
|
||||
text-align: center;
|
||||
|
||||
opacity: .25;
|
||||
color: black;
|
||||
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
.slick-dots li.slick-active button:before
|
||||
{
|
||||
opacity: .75;
|
||||
color: black;
|
||||
}
|
||||
146
static/css/slick.css
Normal file
@@ -0,0 +1,146 @@
|
||||
/* Slider */
|
||||
.slick-slider {
|
||||
position: relative;
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-touch-callout: none;
|
||||
-khtml-user-select: none;
|
||||
-ms-touch-action: pan-y;
|
||||
touch-action: pan-y;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
|
||||
.slick-list {
|
||||
position: relative;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.slick-list:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.slick-list.dragging {
|
||||
cursor: pointer;
|
||||
cursor: hand;
|
||||
}
|
||||
|
||||
.slick-slider .slick-track,
|
||||
.slick-slider .slick-list {
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
-moz-transform: translate3d(0, 0, 0);
|
||||
-ms-transform: translate3d(0, 0, 0);
|
||||
-o-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
|
||||
.slick-track {
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.slick-track:before,
|
||||
.slick-track:after {
|
||||
display: table;
|
||||
content: '';
|
||||
}
|
||||
|
||||
.slick-track:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.slick-loading .slick-track {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.slick-slide {
|
||||
display: none;
|
||||
float: left;
|
||||
height: 100%;
|
||||
min-height: 1px;
|
||||
}
|
||||
|
||||
[dir='rtl'] .slick-slide {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.slick-slide img {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.slick-slide.slick-loading img {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.slick-slide.dragging img {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.slick-initialized .slick-slide {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.slick-loading .slick-slide {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.slick-vertical .slick-slide {
|
||||
display: block;
|
||||
|
||||
height: auto;
|
||||
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
|
||||
.slick-arrow.slick-hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
.slick-prev, .slick-next {
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
display: block;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
padding: 0;
|
||||
-webkit-transform: translate(0, -50%);
|
||||
-ms-transform: translate(0, -50%);
|
||||
transform: translate(0, -50%);
|
||||
cursor: pointer;
|
||||
color: transparent;
|
||||
outline: none;
|
||||
background: transparent;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
border: 1px solid var(--color-primary);
|
||||
outline: 0;
|
||||
border-radius: 50%;
|
||||
box-sizing: border-box;
|
||||
text-indent: -9999px;
|
||||
z-index: 1;
|
||||
background: var(--color-primary) url("/static/img/svg/slick-arrow.svg") no-repeat center;
|
||||
transition: background-color .2s ease-in-out;
|
||||
}
|
||||
|
||||
.slick-next {
|
||||
right: 0;
|
||||
transform: rotate(180deg) translate(0, 50%);
|
||||
}
|
||||
|
||||
.slick-disabled {
|
||||
display: none !important;
|
||||
}
|
||||
@@ -253,6 +253,7 @@ footer {
|
||||
height: 318px;
|
||||
background: #272424;
|
||||
margin-top: 50px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
section.register>h1 {
|
||||
@@ -419,6 +420,7 @@ footer>div {
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 22px;
|
||||
|
||||
}
|
||||
|
||||
.footer_text_contact {
|
||||
@@ -3380,6 +3382,11 @@ details[open] summary ~ *{
|
||||
display: none;
|
||||
}
|
||||
|
||||
input.error::placeholder {
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
BIN
static/img/png/Box10.png
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
static/img/png/Box11.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
static/img/png/Box12.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
static/img/png/Box9.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
static/img/png/customer/sender-card2.png
Normal file
|
After Width: | Height: | Size: 844 KiB |
BIN
static/img/png/customer/sender-card3-md.png
Normal file
|
After Width: | Height: | Size: 326 KiB |
BIN
static/img/png/customer/sender-card3.png
Normal file
|
After Width: | Height: | Size: 467 KiB |
BIN
static/img/png/customer/use-1120.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
static/img/png/customer/use-1280.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
static/img/png/customer/use-1720.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
static/img/png/customer/use-328.png
Normal file
|
After Width: | Height: | Size: 777 KiB |
BIN
static/img/png/customer/use-640.png
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
BIN
static/img/png/mover/about-1120.png
Normal file
|
After Width: | Height: | Size: 605 KiB |
BIN
static/img/png/mover/about-1280.png
Normal file
|
After Width: | Height: | Size: 706 KiB |
BIN
static/img/png/mover/about-1720.png
Normal file
|
After Width: | Height: | Size: 884 KiB |
BIN
static/img/png/mover/about-328.png
Normal file
|
After Width: | Height: | Size: 305 KiB |
BIN
static/img/png/mover/about-640.png
Normal file
|
After Width: | Height: | Size: 689 KiB |
BIN
static/img/png/mover/benefits-1120.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
static/img/png/mover/benefits-1280.png
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
static/img/png/mover/benefits-1720.png
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
static/img/png/mover/benefits-328.png
Normal file
|
After Width: | Height: | Size: 558 KiB |
BIN
static/img/png/mover/benefits-640.png
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
static/img/png/mover/image1.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
static/img/png/mover/image2.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
static/img/png/mover/image3.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
static/img/png/mover/image4.png
Normal file
|
After Width: | Height: | Size: 99 KiB |
BIN
static/img/png/mover/sender-card1.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
static/img/png/mover/sender-card2.png
Normal file
|
After Width: | Height: | Size: 967 KiB |
BIN
static/img/png/mover/sender-card3-md.png
Normal file
|
After Width: | Height: | Size: 380 KiB |
BIN
static/img/png/mover/sender-card3.png
Normal file
|
After Width: | Height: | Size: 501 KiB |
BIN
static/img/png/mover/sore-1120.png
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
static/img/png/mover/sore-1280.png
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
static/img/png/mover/sore-1720.png
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
static/img/png/mover/sore-328.png
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
static/img/png/mover/sore-640.png
Normal file
|
After Width: | Height: | Size: 2.7 MiB |
BIN
static/img/png/mover/use-1120.png
Normal file
|
After Width: | Height: | Size: 2.9 MiB |
BIN
static/img/png/mover/use-1280.png
Normal file
|
After Width: | Height: | Size: 2.9 MiB |
BIN
static/img/png/mover/use-1720.png
Normal file
|
After Width: | Height: | Size: 2.9 MiB |
BIN
static/img/png/mover/use-328.png
Normal file
|
After Width: | Height: | Size: 767 KiB |
BIN
static/img/png/mover/use-640.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
static/img/png/mover/use-letters-1120.png
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
static/img/png/mover/use-letters-1280.png
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
BIN
static/img/png/mover/use-letters-1739.png
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
static/img/png/mover/use-letters-328.png
Normal file
|
After Width: | Height: | Size: 663 KiB |
BIN
static/img/png/mover/use-letters-640.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
static/img/png/mover/use-letters-s1.png
Normal file
|
After Width: | Height: | Size: 190 KiB |
BIN
static/img/png/mover/use-letters-s2.png
Normal file
|
After Width: | Height: | Size: 231 KiB |
BIN
static/img/png/mover/use-letters-s3.png
Normal file
|
After Width: | Height: | Size: 245 KiB |
BIN
static/img/png/mover/use-letters-s4.png
Normal file
|
After Width: | Height: | Size: 426 KiB |
BIN
static/img/png/mover/use-letters-s5.png
Normal file
|
After Width: | Height: | Size: 321 KiB |
BIN
static/img/png/mover/use-letters-s6.png
Normal file
|
After Width: | Height: | Size: 307 KiB |
BIN
static/img/png/mover/use-letters-s7.png
Normal file
|
After Width: | Height: | Size: 695 KiB |
BIN
static/img/png/mover/use-letters-s8.png
Normal file
|
After Width: | Height: | Size: 127 KiB |
3
static/img/svg/Arrow08.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="68" height="18" viewBox="0 0 68 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M54.5455 2.94981C52.766 1.91497 50.7812 0.832029 50.1346 0.543456C48.2971 -0.276928 46.5619 -0.157082 46.0488 0.825723C45.351 2.16215 46.6527 3.4895 50.8124 5.68494C52.8468 6.75803 54.4597 7.6888 54.3974 7.75267C54.2493 7.90445 35.6219 5.73738 28.188 4.70333C25.0146 4.26219 18.1492 3.28688 12.9317 2.53588C7.71422 1.78488 2.84561 1.17067 2.11246 1.17067C0.627678 1.17067 -0.472054 2.11365 0.203789 2.80631C1.35891 3.99017 43.0138 10.8158 56.6476 12.0552L59.7199 12.3347L58.0351 13.068C55.8895 14.0019 52.6137 16.4548 52.6137 17.1277C52.6137 18.5099 56.4795 18.2249 61.8455 16.4473C66.0379 15.0585 68 13.4902 68 11.5286C68 9.87083 66.8087 8.92115 61.9936 6.7399C59.6768 5.69008 56.3249 3.98465 54.5455 2.94981Z" fill="#FF613A" fill-opacity="0.8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 860 B |
3
static/img/svg/Arrow23.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="62" height="20" viewBox="0 0 62 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M31.2431 4.90696C27.074 4.72772 20.6916 5.46692 17.9124 6.45061C16.4661 6.96259 2.08303 11.0406 1.39753 11.9377C-0.140762 13.9508 1.29118 14.408 3.1617 13.1727C5.89172 11.37 27.1619 8.69633 35.062 10.0591C39.9082 10.8948 47.4586 13.1603 47.564 13.8104C47.5892 13.9643 46.8851 14.2956 46.0002 14.5464C43.7152 15.1933 40.1182 17.1925 39.6148 18.0955C39.308 18.6451 39.3898 18.9582 39.9052 19.2102C41.3022 19.8922 46.7352 20.1339 50.668 19.6888C52.8608 19.4402 55.7454 19.2598 57.0782 19.2876C60.8168 19.3653 62.6554 17.5634 61.518 14.9368C60.4219 12.4061 53.0751 3.8059 50.2101 1.69982C48.7444 0.62243 48.2982 0.471218 47.3165 0.719869C46.1556 1.01364 45.5481 1.89888 45.6075 3.20956C45.6224 3.54513 46.1962 4.82242 46.8823 6.04822L48.1296 8.27667L45.3967 7.42798C41.3929 6.18448 35.1664 5.07533 31.2431 4.90696Z" fill="#FF613A" fill-opacity="0.8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 960 B |
4
static/img/svg/airplane_takeoff.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="147" height="147" viewBox="0 0 147 147" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.7812 124.031H96.4688" stroke="#FF613A" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M9.7043 80.6205L31.3523 100.89C34.2389 103.596 37.9217 105.298 41.8531 105.743C45.7845 106.188 49.7545 105.352 53.1727 103.36L140.109 52.8283L129.429 39.7362C126.651 36.3429 122.75 34.0553 118.433 33.2865C114.115 32.5177 109.665 33.3186 105.886 35.5444L80.3906 50.5315L45.9375 39.0471L36.4629 43.124C35.7541 43.4278 35.1331 43.9052 34.6573 44.5121C34.1815 45.1189 33.8661 45.8359 33.7402 46.5967C33.6144 47.3576 33.6821 48.1379 33.9371 48.8656C34.1922 49.5934 34.6264 50.2453 35.1996 50.7612L52.8281 66.6096L36.75 75.7971L20.6719 68.9065L11.025 73.0408C10.3232 73.3423 9.70757 73.8141 9.23395 74.4134C8.76033 75.0127 8.44363 75.7206 8.31251 76.4731C8.18139 77.2256 8.23999 77.999 8.48301 78.7231C8.72602 79.4473 9.14578 80.0994 9.7043 80.6205V80.6205Z" stroke="#FF613A" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
8
static/img/svg/bax.svg
Normal file
@@ -0,0 +1,8 @@
|
||||
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M58 16H6C4.89543 16 4 16.8954 4 18V46C4 47.1046 4.89543 48 6 48H58C59.1046 48 60 47.1046 60 46V18C60 16.8954 59.1046 16 58 16Z" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M32 40C36.4183 40 40 36.4183 40 32C40 27.5817 36.4183 24 32 24C27.5817 24 24 27.5817 24 32C24 36.4183 27.5817 40 32 40Z" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M44 16L60 30" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M44 48L60 34" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M20 16L4 30" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M20 48L4 34" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 958 B |
6
static/img/svg/books.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M56 44.3253V19.6753C55.9981 19.3193 55.9023 18.97 55.7224 18.6627C55.5424 18.3555 55.2846 18.1011 54.975 17.9253L32.975 5.55031C32.6786 5.37916 32.3423 5.28906 32 5.28906C31.6577 5.28906 31.3214 5.37916 31.025 5.55031L9.025 17.9253C8.71538 18.1011 8.45759 18.3555 8.27763 18.6627C8.09768 18.97 8.00191 19.3193 8 19.6753V44.3253C8.00191 44.6814 8.09768 45.0306 8.27763 45.3379C8.45759 45.6451 8.71538 45.8995 9.025 46.0753L31.025 58.4503C31.3214 58.6215 31.6577 58.7116 32 58.7116C32.3423 58.7116 32.6786 58.6215 32.975 58.4503L54.975 46.0753C55.2846 45.8995 55.5424 45.6451 55.7224 45.3379C55.9023 45.0306 55.9981 44.6814 56 44.3253V44.3253Z" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M44.25 38.125V25.125L20 11.75" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M55.7249 18.6504L32.2249 32.0004L8.2749 18.6504" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M32.225 32L32 58.7" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
5
static/img/svg/box.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M56 14H8C6.89543 14 6 14.8954 6 16V22C6 23.1046 6.89543 24 8 24H56C57.1046 24 58 23.1046 58 22V16C58 14.8954 57.1046 14 56 14Z" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M54 24V48C54 48.5304 53.7893 49.0391 53.4142 49.4142C53.0391 49.7893 52.5304 50 52 50H12C11.4696 50 10.9609 49.7893 10.5858 49.4142C10.2107 49.0391 10 48.5304 10 48V24" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M26 34H38" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 687 B |
6
static/img/svg/briefcase.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg width="147" height="147" viewBox="0 0 147 147" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M124.031 41.3438H22.9688C20.4317 41.3438 18.375 43.4004 18.375 45.9375V119.438C18.375 121.975 20.4317 124.031 22.9688 124.031H124.031C126.568 124.031 128.625 121.975 128.625 119.438V45.9375C128.625 43.4004 126.568 41.3438 124.031 41.3438Z" stroke="#FF613A" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M96.4688 41.3438V32.1562C96.4688 29.7196 95.5008 27.3827 93.7778 25.6597C92.0548 23.9367 89.7179 22.9688 87.2812 22.9688H59.7188C57.2821 22.9688 54.9452 23.9367 53.2222 25.6597C51.4992 27.3827 50.5312 29.7196 50.5312 32.1562V41.3438" stroke="#FF613A" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M128.625 72.5234C111.871 82.2129 92.8542 87.3039 73.5 87.2809C54.1422 87.3312 35.1185 82.2384 18.375 72.5234" stroke="#FF613A" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M66.6094 68.9062H80.3906" stroke="#FF613A" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
5
static/img/svg/earth.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M32 56C45.2548 56 56 45.2548 56 32C56 18.7452 45.2548 8 32 8C18.7452 8 8 18.7452 8 32C8 45.2548 18.7452 56 32 56Z" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M12.3999 45.8504L15.3249 44.0754C15.615 43.8965 15.8545 43.6464 16.0208 43.3488C16.1871 43.0513 16.2745 42.7162 16.2749 42.3754L16.3249 33.3504C16.3289 32.9762 16.4418 32.6114 16.6499 32.3004L21.5999 24.5254C21.7484 24.2957 21.942 24.0984 22.1688 23.9456C22.3957 23.7927 22.6512 23.6874 22.9199 23.636C23.1886 23.5846 23.4649 23.5882 23.7321 23.6465C23.9994 23.7049 24.2521 23.8167 24.4749 23.9754L29.3749 27.5254C29.7977 27.8201 30.3122 27.9532 30.8249 27.9004L38.6999 26.8254C39.1777 26.7596 39.6141 26.5191 39.9249 26.1504L45.4749 19.7504C45.804 19.3603 45.9737 18.8602 45.9499 18.3504L45.6749 12.2754" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M46.7752 50.9246L44.0752 48.2246C43.8254 47.975 43.5154 47.7942 43.1751 47.6996L37.8001 46.2996C37.3281 46.1704 36.9198 45.8726 36.6525 45.4625C36.3853 45.0525 36.2777 44.5587 36.3501 44.0746L36.9251 40.0246C36.9822 39.684 37.1245 39.3633 37.3386 39.0923C37.5528 38.8213 37.8319 38.6089 38.1502 38.4746L45.7501 35.2996C46.1031 35.1524 46.4909 35.1095 46.8676 35.1759C47.2442 35.2424 47.5939 35.4155 47.8751 35.6746L54.1001 41.3746" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
6
static/img/svg/files.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M42 56H14C13.4696 56 12.9609 55.7893 12.5858 55.4142C12.2107 55.0391 12 54.5304 12 54V18C12 17.4696 12.2107 16.9609 12.5858 16.5858C12.9609 16.2107 13.4696 16 14 16H34L44 26V54C44 54.5304 43.7893 55.0391 43.4142 55.4142C43.0391 55.7893 42.5304 56 42 56Z" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M20 16V10C20 9.46957 20.2107 8.96086 20.5858 8.58579C20.9609 8.21071 21.4696 8 22 8H42L52 18V46C52 46.5304 51.7893 47.0391 51.4142 47.4142C51.0391 47.7893 50.5304 48 50 48H44" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M22 38H34" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M22 46H34" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 924 B |